diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java index 055e15da5..49f5578b5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java @@ -242,10 +242,6 @@ class AndroidNotificationManagerImpl implements AndroidNotificationManager, ContactAddedEvent c = (ContactAddedEvent) e; // Don't show notifications for contacts added in person if (!c.isVerified()) showContactAddedNotification(); - } else if (e instanceof RemoteWipeActivatedEvent) { - Intent i = new Intent(appContext, RemoteWipeActivatedActivity.class); - i.addFlags(FLAG_ACTIVITY_NEW_TASK); - appContext.startActivity(i); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java index 6e36b1390..89020956f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java @@ -18,14 +18,19 @@ import com.bumptech.glide.Glide; import org.briarproject.bramble.api.account.AccountManager; import org.briarproject.bramble.api.crypto.SecretKey; +import org.briarproject.bramble.api.event.Event; +import org.briarproject.bramble.api.event.EventBus; +import org.briarproject.bramble.api.event.EventListener; import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult; import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.bramble.api.system.AndroidWakeLockManager; import org.briarproject.briar.R; import org.briarproject.briar.android.logout.HideUiActivity; +import org.briarproject.briar.android.remotewipe.RemoteWipeActivatedActivity; import org.briarproject.briar.api.android.AndroidNotificationManager; import org.briarproject.briar.api.android.LockManager; +import org.briarproject.briar.api.remotewipe.RemoteWipeActivatedEvent; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; @@ -62,7 +67,7 @@ import static org.briarproject.briar.api.android.AndroidNotificationManager.ONGO import static org.briarproject.briar.api.android.LockManager.ACTION_LOCK; import static org.briarproject.briar.api.android.LockManager.EXTRA_PID; -public class BriarService extends Service { +public class BriarService extends Service implements EventListener { public static String EXTRA_START_RESULT = "org.briarproject.briar.START_RESULT"; @@ -96,6 +101,8 @@ public class BriarService extends Service { @Inject volatile AndroidExecutor androidExecutor; private volatile boolean started = false; + @Inject + volatile EventBus eventBus; @Override public void onCreate() { @@ -173,6 +180,8 @@ public class BriarService extends Service { filter.addAction("android.intent.action.QUICKBOOT_POWEROFF"); filter.addAction("com.htc.intent.action.QUICKBOOT_POWEROFF"); registerReceiver(receiver, filter); + + eventBus.addListener(this); }, "LifecycleStartup"); } @@ -239,6 +248,7 @@ public class BriarService extends Service { wakeLockManager.executeWakefully(() -> { if (started) lifecycleManager.stopServices(); }, "LifecycleShutdown"); + eventBus.removeListener(this); }, "LifecycleShutdown"); } @@ -327,6 +337,19 @@ public class BriarService extends Service { stopSelf(); // This will call onDestroy() } + /** + * Listens for the remote wipe event + */ + @Override + public void eventOccurred(Event e) { + if (e instanceof RemoteWipeActivatedEvent) { + Intent i = new Intent(this, RemoteWipeActivatedActivity.class); + i.addFlags(FLAG_ACTIVITY_NEW_TASK + | FLAG_ACTIVITY_CLEAR_TASK); + startActivity(i); + } + } + public class BriarBinder extends Binder { /** diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java index f6f6a6f6d..c7f3a6385 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java @@ -52,7 +52,6 @@ import org.briarproject.briar.android.conversation.ConversationVisitor.TextCache import org.briarproject.briar.android.forum.ForumActivity; import org.briarproject.briar.android.introduction.IntroductionActivity; import org.briarproject.briar.android.privategroup.conversation.GroupActivity; -import org.briarproject.briar.android.remotewipe.RemoteWipeActivatedActivity; import org.briarproject.briar.android.remotewipe.activate.ActivateRemoteWipeActivity; import org.briarproject.briar.android.socialbackup.recover.CustodianReturnShardActivity; import org.briarproject.briar.android.util.BriarSnackbarBuilder; @@ -79,7 +78,6 @@ import org.briarproject.briar.api.introduction.IntroductionManager; import org.briarproject.briar.api.messaging.MessagingManager; import org.briarproject.briar.api.messaging.PrivateMessageHeader; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager; -import org.briarproject.briar.api.remotewipe.RemoteWipeActivatedEvent; import java.util.ArrayList; import java.util.Collection;