diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java index 8c014237a2055cd6fbeefd59e2ff3a58ce46c057..6d122c6df6a5b79a096cd3ec6ccb7f336ac3f650 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java @@ -12,7 +12,7 @@ import javax.annotation.Nullable; public class SignOutFragment extends BaseFragment { - private static final String TAG = SignOutFragment.class.getName(); + public static final String TAG = SignOutFragment.class.getName(); @Override public View onCreateView(LayoutInflater inflater, @@ -30,5 +30,4 @@ public class SignOutFragment extends BaseFragment { public void injectFragment(ActivityComponent component) { // no need to inject } - } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java index 31840b8e2a34000d0629cc7aa9cf415544758b04..a42a1071c71586647d34691cf9c8c70004bdca39 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java @@ -7,6 +7,7 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.NavigationView; import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener; +import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.content.ContextCompat; import android.support.v4.widget.DrawerLayout; @@ -218,19 +219,23 @@ public class NavDrawerActivity extends BriarActivity implements public void onBackPressed() { if (drawerLayout.isDrawerOpen(START)) { drawerLayout.closeDrawer(START); - } else if (getSupportFragmentManager().getBackStackEntryCount() == 0 && - getSupportFragmentManager() - .findFragmentByTag(ContactListFragment.TAG) == null) { + } else { + FragmentManager fm = getSupportFragmentManager(); + if (fm.findFragmentByTag(SignOutFragment.TAG) != null) { + finish(); + } else if (fm.getBackStackEntryCount() == 0 + && fm.findFragmentByTag(ContactListFragment.TAG) == null) { /* * This makes sure that the first fragment (ContactListFragment) the * user sees is the same as the last fragment the user sees before * exiting. This models the typical Google navigation behaviour such * as in Gmail/Inbox. */ - startFragment(ContactListFragment.newInstance(), - R.id.nav_btn_contacts); - } else { - super.onBackPressed(); + startFragment(ContactListFragment.newInstance(), + R.id.nav_btn_contacts); + } else { + super.onBackPressed(); + } } }