From 550d8b61c787def350c207ce2e7d2587fc17f809 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Mon, 24 May 2021 15:31:46 +1000 Subject: [PATCH] Quick fix crash --- .../securesms/ApplicationContext.java | 21 +++++++++---------- .../messaging/MessagingModuleConfiguration.kt | 4 ++-- .../libsession/snode/OnionRequestAPI.kt | 4 ++-- .../session/libsession/snode/SnodeModule.kt | 4 +++- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 18d859d2db..1cec07395b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -155,12 +155,11 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc broadcaster = new Broadcaster(this); threadNotificationHandler = new Handler(Looper.getMainLooper()); LokiAPIDatabase apiDB = DatabaseFactory.getLokiAPIDatabase(this); - String userPublicKey = TextSecurePreferences.getLocalNumber(this); MessagingModuleConfiguration.Companion.configure(this, DatabaseFactory.getStorage(this), DatabaseFactory.getAttachmentProvider(this)); SnodeModule.Companion.configure(apiDB, broadcaster); - resubmitProfilePictureIfNeeded(); + String userPublicKey = TextSecurePreferences.getLocalNumber(this); if (userPublicKey != null) { registerForFCMIfNeeded(false); } @@ -175,6 +174,7 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc initializeJobManager(); initializeWebRtc(); initializeBlobProvider(); + resubmitProfilePictureIfNeeded(); } @Override @@ -313,13 +313,13 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc private void initializeJobManager() { this.jobManager = new JobManager(this, new JobManager.Configuration.Builder() - .setDataSerializer(new JsonDataSerializer()) - .setJobFactories(JobManagerFactories.getJobFactories(this)) - .setConstraintFactories(JobManagerFactories.getConstraintFactories(this)) - .setConstraintObservers(JobManagerFactories.getConstraintObservers(this)) - .setJobStorage(new FastJobStorage(DatabaseFactory.getJobDatabase(this))) - .setDependencyInjector(this) - .build()); + .setDataSerializer(new JsonDataSerializer()) + .setJobFactories(JobManagerFactories.getJobFactories(this)) + .setConstraintFactories(JobManagerFactories.getConstraintFactories(this)) + .setConstraintObservers(JobManagerFactories.getConstraintObservers(this)) + .setJobStorage(new FastJobStorage(DatabaseFactory.getJobDatabase(this))) + .setDependencyInjector(this) + .build()); } private void initializeDependencyInjection() { @@ -327,7 +327,6 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc this.objectGraph = ObjectGraph.create(communicationModule); } - private void initializeExpiringMessageManager() { this.expiringMessageManager = new ExpiringMessageManager(this); } @@ -349,7 +348,7 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc } private void initializePeriodicTasks() { - BackgroundPollWorker.schedulePeriodic(this); // Loki + BackgroundPollWorker.schedulePeriodic(this); if (BuildConfig.PLAY_STORE_DISABLED) { UpdateApkRefreshListener.schedule(this); diff --git a/libsession/src/main/java/org/session/libsession/messaging/MessagingModuleConfiguration.kt b/libsession/src/main/java/org/session/libsession/messaging/MessagingModuleConfiguration.kt index 03349369dc..f6e4445dde 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/MessagingModuleConfiguration.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/MessagingModuleConfiguration.kt @@ -14,8 +14,8 @@ class MessagingModuleConfiguration( lateinit var shared: MessagingModuleConfiguration fun configure(context: Context, - storage: StorageProtocol, - messageDataProvider: MessageDataProvider + storage: StorageProtocol, + messageDataProvider: MessageDataProvider ) { if (Companion::shared.isInitialized) { return } shared = MessagingModuleConfiguration(context, storage, messageDataProvider) diff --git a/libsession/src/main/java/org/session/libsession/snode/OnionRequestAPI.kt b/libsession/src/main/java/org/session/libsession/snode/OnionRequestAPI.kt index d2e33b64d9..4f6aca389d 100644 --- a/libsession/src/main/java/org/session/libsession/snode/OnionRequestAPI.kt +++ b/libsession/src/main/java/org/session/libsession/snode/OnionRequestAPI.kt @@ -373,8 +373,8 @@ object OnionRequestAPI { } val promise = deferred.promise promise.fail { exception -> - val path = paths.firstOrNull { it.contains(guardSnode) } - if (exception is HTTP.HTTPRequestFailedException) { + if (exception is HTTP.HTTPRequestFailedException && SnodeModule.isInitialized) { + val path = paths.firstOrNull { it.contains(guardSnode) } fun handleUnspecificError() { if (path == null) { return } var pathFailureCount = OnionRequestAPI.pathFailureCount[path] ?: 0 diff --git a/libsession/src/main/java/org/session/libsession/snode/SnodeModule.kt b/libsession/src/main/java/org/session/libsession/snode/SnodeModule.kt index 049c536027..2deb30998e 100644 --- a/libsession/src/main/java/org/session/libsession/snode/SnodeModule.kt +++ b/libsession/src/main/java/org/session/libsession/snode/SnodeModule.kt @@ -8,8 +8,10 @@ class SnodeModule(val storage: LokiAPIDatabaseProtocol, val broadcaster: Broadca companion object { lateinit var shared: SnodeModule + val isInitialized: Boolean get() = Companion::shared.isInitialized + fun configure(storage: LokiAPIDatabaseProtocol, broadcaster: Broadcaster) { - if (Companion::shared.isInitialized) { return } + if (isInitialized) { return } shared = SnodeModule(storage, broadcaster) } }