diff --git a/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java index 65c3efec4..cc486dee1 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java @@ -146,6 +146,11 @@ public class BriarControllerImpl implements BriarController { // Shut down the service and wait for it to shut down LOG.info("Shutting down service"); service.shutdown(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } service.waitForShutdown(); } catch (InterruptedException e) { LOG.warning("Interrupted while waiting for service"); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java index 747bc9895..27b4634ec 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsActivity.java @@ -118,4 +118,9 @@ public class SettingsActivity extends BriarActivity { ConfirmAvatarDialogFragment.TAG); } + void languageChanged() { + signOut(false, false); + finishAffinity(); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index 7412b213f..bebd33382 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -54,7 +54,6 @@ import androidx.preference.SwitchPreference; import static android.app.Activity.RESULT_OK; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; -import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.media.RingtoneManager.ACTION_RINGTONE_PICKER; import static android.media.RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI; @@ -89,7 +88,6 @@ import static org.briarproject.bramble.util.LogUtils.now; import static org.briarproject.briar.android.BriarApplication.ENTRY_ACTIVITY; import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_RINGTONE; -import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.SIGN_OUT_URI; import static org.briarproject.briar.android.util.UiUtils.getCountryDisplayName; import static org.briarproject.briar.android.util.UiUtils.hasScreenLock; import static org.briarproject.briar.android.util.UiUtils.triggerFeedback; @@ -638,11 +636,7 @@ public class SettingsFragment extends PreferenceFragmentCompat builder.setPositiveButton(R.string.sign_out_button, (dialogInterface, i) -> { language.setValue(newValue); - Intent intent = new Intent(getContext(), ENTRY_ACTIVITY); - intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP); - intent.setData(SIGN_OUT_URI); - requireActivity().startActivity(intent); - requireActivity().finish(); + listener.languageChanged(); }); builder.setNegativeButton(R.string.cancel, null); builder.setCancelable(false);