Fix #1328 Missing notifications: initializeIncomingMessageNotifier() in ApplicationDcContext, not ApplicationContext

This commit is contained in:
Hocuri
2020-05-02 13:31:17 +02:00
parent 1203df4daf
commit 16dfd9f98c
2 changed files with 19 additions and 18 deletions
@@ -71,7 +71,6 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
initializeRandomNumberFix();
initializeLogging();
initializeJobManager();
initializeIncomingMessageNotifier();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
MessageNotifierCompat.init(this);
@@ -140,23 +139,6 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
SignalProtocolLoggerProvider.setProvider(new AndroidSignalProtocolLogger());
}
@SuppressLint("StaticFieldLeak")
private void initializeIncomingMessageNotifier() {
DcEventCenter dcEventCenter = dcContext.eventCenter;
dcEventCenter.addObserver(DcContext.DC_EVENT_INCOMING_MSG, new DcEventCenter.DcEventDelegate() {
@Override
public void handleEvent(int eventId, Object data1, Object data2) {
MessageNotifierCompat.updateNotification(((Long) data1).intValue(), ((Long) data2).intValue());
}
@Override
public boolean runOnMain() {
return false;
}
});
}
private void initializeJobManager() {
this.jobManager = JobManager.newBuilder(this)
.withName("TextSecureJobs")
@@ -1,5 +1,6 @@
package org.thoughtcrime.securesms.connect;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -26,6 +27,7 @@ import com.b44t.messenger.DcMsg;
import org.thoughtcrime.securesms.BuildConfig;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.database.model.ThreadRecord;
import org.thoughtcrime.securesms.notifications.MessageNotifierCompat;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.Util;
@@ -72,6 +74,7 @@ public class ApplicationDcContext extends DcContext {
Log.e(TAG, "Cannot create wakeLocks");
}
initializeIncomingMessageNotifier();
startThreads(0);
}
@@ -540,4 +543,20 @@ public class ApplicationDcContext extends DcContext {
return 0;
}
@SuppressLint("StaticFieldLeak")
private void initializeIncomingMessageNotifier() {
eventCenter.addObserver(DcContext.DC_EVENT_INCOMING_MSG, new DcEventCenter.DcEventDelegate() {
@Override
public void handleEvent(int eventId, Object data1, Object data2) {
MessageNotifierCompat.updateNotification(((Long) data1).intValue(), ((Long) data2).intValue());
}
@Override
public boolean runOnMain() {
return false;
}
});
}
}