From 5a522d64dff3ccd2b34524ad8955d9581d9f8da4 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Thu, 8 Dec 2016 15:54:01 -0200
Subject: [PATCH] Don't show splash screen when signed in

This also removes the BriarFragmentActivity that was only really used by
the NavDrawerActivity.
---
 .../activity/BriarFragmentActivity.java       | 64 ---------------
 .../briar/android/blog/BlogActivity.java      |  4 -
 .../briar/android/blog/FeedFragment.java      |  3 +
 .../briar/android/blog/ReblogActivity.java    |  5 --
 .../android/contact/ContactListFragment.java  |  2 +
 .../ContactSelectorActivity.java              |  4 -
 .../android/forum/ForumListFragment.java      |  2 +
 .../briar/android/fragment/BaseFragment.java  |  5 --
 .../introduction/IntroductionActivity.java    |  5 --
 .../keyagreement/KeyAgreementActivity.java    |  5 +-
 .../android/navdrawer/NavDrawerActivity.java  | 79 ++++++++++++-------
 .../privategroup/list/GroupListFragment.java  |  2 +
 12 files changed, 64 insertions(+), 116 deletions(-)
 delete mode 100644 briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java

diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java
deleted file mode 100644
index fa211156d8..0000000000
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.briarproject.briar.android.activity;
-
-import android.support.v4.app.FragmentTransaction;
-
-import org.briarproject.briar.R;
-import org.briarproject.briar.android.contact.ContactListFragment;
-import org.briarproject.briar.android.fragment.BaseFragment;
-import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
-
-import static android.support.v4.app.FragmentManager.POP_BACK_STACK_INCLUSIVE;
-
-/**
- * This class should be extended by classes that wish to utilise fragments in
- * Briar, it encapsulates all fragment related code.
- */
-public abstract class BriarFragmentActivity extends BriarActivity {
-
-	protected void clearBackStack() {
-		getSupportFragmentManager().popBackStackImmediate(null,
-				POP_BACK_STACK_INCLUSIVE);
-	}
-
-	@Override
-	public void onBackPressed() {
-		if (this instanceof NavDrawerActivity &&
-				getSupportFragmentManager().getBackStackEntryCount() == 0 &&
-				getSupportFragmentManager()
-						.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());
-		} else {
-			super.onBackPressed();
-		}
-	}
-
-	public void onFragmentCreated(String tag) {
-	}
-
-	protected void startFragment(BaseFragment fragment) {
-		if (getSupportFragmentManager().getBackStackEntryCount() == 0)
-			startFragment(fragment, false);
-		else startFragment(fragment, true);
-	}
-
-	protected void startFragment(BaseFragment fragment,
-			boolean isAddedToBackStack) {
-		FragmentTransaction trans =
-				getSupportFragmentManager().beginTransaction()
-						.setCustomAnimations(R.anim.dialog_in,
-								R.anim.dialog_out, R.anim.dialog_in,
-								R.anim.dialog_out)
-						.replace(R.id.fragmentContainer, fragment,
-								fragment.getUniqueTag());
-		if (isAddedToBackStack) {
-			trans.addToBackStack(fragment.getUniqueTag());
-		}
-		trans.commit();
-	}
-}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java
index d6234db3c6..ef3f86651d 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java
@@ -72,8 +72,4 @@ public class BlogActivity extends BriarActivity implements
 		showNextFragment(f);
 	}
 
-	@Override
-	public void onFragmentCreated(String tag) {
-	}
-
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
index 42eadebbde..279e586685 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
@@ -70,6 +70,8 @@ public class FeedFragment extends BaseFragment implements
 			@Nullable ViewGroup container,
 			@Nullable Bundle savedInstanceState) {
 
+		getActivity().setTitle(R.string.blogs_button);
+
 		View v = inflater.inflate(R.layout.fragment_blog, container, false);
 
 		adapter = new BlogPostAdapter(getActivity(), this);
@@ -260,4 +262,5 @@ public class FeedFragment extends BaseFragment implements
 	public void onBlogRemoved() {
 		loadBlogPosts(true);
 	}
+
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java
index 27e8f19ad6..7d4ae21d8f 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java
@@ -54,9 +54,4 @@ public class ReblogActivity extends BriarActivity implements
 		component.inject(this);
 	}
 
-	@Override
-	public void onFragmentCreated(String tag) {
-
-	}
-
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java
index a8e7dd1f08..3ce6e7f1fd 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java
@@ -109,6 +109,8 @@ public class ContactListFragment extends BaseFragment implements EventListener {
 			@Nullable ViewGroup container,
 			@Nullable Bundle savedInstanceState) {
 
+		getActivity().setTitle(R.string.contact_list_button);
+
 		View contentView = inflater.inflate(R.layout.list, container, false);
 
 		OnContactClickListener<ContactListItem> onContactClickListener =
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java
index 809e8f66f8..4cf1a29a77 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java
@@ -95,9 +95,5 @@ public abstract class ContactSelectorActivity
 		return contacts;
 	}
 
-	@Override
-	public void onFragmentCreated(String tag) {
-
-	}
 
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java
index 5b40f28dc7..daf83ac123 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java
@@ -84,6 +84,8 @@ public class ForumListFragment extends BaseEventFragment implements
 			@Nullable ViewGroup container,
 			@Nullable Bundle savedInstanceState) {
 
+		getActivity().setTitle(R.string.forums_button);
+
 		View contentView =
 				inflater.inflate(R.layout.fragment_forum_list, container,
 						false);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java
index 4a3821aa11..46c7c01a91 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java
@@ -40,7 +40,6 @@ public abstract class BaseFragment extends Fragment
 	public void onActivityCreated(@Nullable Bundle savedInstanceState) {
 		super.onActivityCreated(savedInstanceState);
 		injectFragment(listener.getActivityComponent());
-		listener.onFragmentCreated(getUniqueTag());
 	}
 
 	@Override
@@ -61,7 +60,6 @@ public abstract class BaseFragment extends Fragment
 	}
 
 	public interface BaseFragmentListener {
-
 		@Deprecated
 		void runOnDbThread(Runnable runnable);
 
@@ -73,9 +71,6 @@ public abstract class BaseFragment extends Fragment
 
 		@UiThread
 		void showNextFragment(BaseFragment f);
-
-		@UiThread
-		void onFragmentCreated(String tag);
 	}
 
 	@CallSuper
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java
index 05c07d4b18..0f20cec687 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java
@@ -35,9 +35,4 @@ public class IntroductionActivity extends BriarActivity
 		component.inject(this);
 	}
 
-	@Override
-	public void onFragmentCreated(String tag) {
-
-	}
-
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java
index 9637668a07..00f9cf900b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java
@@ -20,7 +20,7 @@ import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
 import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
-import org.briarproject.briar.android.activity.BriarFragmentActivity;
+import org.briarproject.briar.android.activity.BriarActivity;
 import org.briarproject.briar.android.fragment.BaseFragment;
 import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener;
 import org.briarproject.briar.android.keyagreement.IntroFragment.IntroScreenSeenListener;
@@ -35,7 +35,7 @@ import static java.util.logging.Level.WARNING;
 
 @MethodsNotNullByDefault
 @ParametersNotNullByDefault
-public class KeyAgreementActivity extends BriarFragmentActivity implements
+public class KeyAgreementActivity extends BriarActivity implements
 		BaseFragmentListener, IntroScreenSeenListener, EventListener,
 		ContactExchangeListener {
 
@@ -189,4 +189,5 @@ public class KeyAgreementActivity extends BriarFragmentActivity implements
 			}
 		});
 	}
+
 }
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 25a02e6e5a..b431582d44 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
@@ -5,9 +5,9 @@ import android.content.res.Configuration;
 import android.os.Bundle;
 import android.support.design.widget.NavigationView;
 import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener;
+import android.support.v4.app.FragmentTransaction;
 import android.support.v4.content.ContextCompat;
 import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.ActionBar;
 import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.widget.Toolbar;
 import android.view.LayoutInflater;
@@ -25,10 +25,11 @@ import org.briarproject.bramble.api.plugin.TorConstants;
 import org.briarproject.bramble.api.plugin.TransportId;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
-import org.briarproject.briar.android.activity.BriarFragmentActivity;
+import org.briarproject.briar.android.activity.BriarActivity;
 import org.briarproject.briar.android.blog.FeedFragment;
 import org.briarproject.briar.android.contact.ContactListFragment;
 import org.briarproject.briar.android.forum.ForumListFragment;
+import org.briarproject.briar.android.fragment.BaseFragment;
 import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener;
 import org.briarproject.briar.android.fragment.SignOutFragment;
 import org.briarproject.briar.android.privategroup.list.GroupListFragment;
@@ -40,10 +41,11 @@ import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
+import static android.support.v4.app.FragmentManager.POP_BACK_STACK_INCLUSIVE;
 import static android.support.v4.view.GravityCompat.START;
 import static android.support.v4.widget.DrawerLayout.LOCK_MODE_LOCKED_CLOSED;
 
-public class NavDrawerActivity extends BriarFragmentActivity implements
+public class NavDrawerActivity extends BriarActivity implements
 		BaseFragmentListener, TransportStateListener,
 		OnNavigationItemSelectedListener {
 
@@ -160,24 +162,6 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
 		}
 	}
 
-	@Override
-	public void onFragmentCreated(String tag) {
-		super.onFragmentCreated(tag);
-
-		ActionBar actionBar = getSupportActionBar();
-		if (actionBar == null) return;
-
-		if (tag.equals(ContactListFragment.TAG)) {
-			actionBar.setTitle(R.string.contact_list_button);
-		} else if (tag.equals(GroupListFragment.TAG)) {
-			actionBar.setTitle(R.string.groups_button);
-		} else if (tag.equals(ForumListFragment.TAG)) {
-			actionBar.setTitle(R.string.forums_button);
-		} else if (tag.equals(FeedFragment.TAG)) {
-			actionBar.setTitle(R.string.blogs_button);
-		}
-	}
-
 	@Override
 	public boolean onNavigationItemSelected(MenuItem item) {
 		drawerLayout.closeDrawer(START);
@@ -192,14 +176,29 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
 
 	@Override
 	public void onBackPressed() {
-		if (getSupportFragmentManager().getBackStackEntryCount() == 0
-				&& drawerLayout.isDrawerOpen(START)) {
+		if (drawerLayout.isDrawerOpen(START)) {
 			drawerLayout.closeDrawer(START);
-			return;
+		} else if (getSupportFragmentManager().getBackStackEntryCount() == 0 &&
+				getSupportFragmentManager()
+						.findFragmentByTag(ContactListFragment.TAG) != null) {
+			Intent i = new Intent(Intent.ACTION_MAIN);
+			i.addCategory(Intent.CATEGORY_HOME);
+			i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+			startActivity(i);
+		} else if (getSupportFragmentManager().getBackStackEntryCount() == 0 &&
+				getSupportFragmentManager()
+						.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.
+			 */
+			navigation.setCheckedItem(R.id.nav_btn_contacts);
+			startFragment(ContactListFragment.newInstance());
+		} else {
+			super.onBackPressed();
 		}
-		// Check the Contacts item because we always return to Contacts here
-		navigation.setCheckedItem(R.id.nav_btn_contacts);
-		super.onBackPressed();
 	}
 
 	@Override
@@ -221,6 +220,32 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
 		super.signOut();
 	}
 
+	private void startFragment(BaseFragment fragment) {
+		if (getSupportFragmentManager().getBackStackEntryCount() == 0)
+			startFragment(fragment, false);
+		else startFragment(fragment, true);
+	}
+
+	private void startFragment(BaseFragment fragment,
+			boolean isAddedToBackStack) {
+		FragmentTransaction trans =
+				getSupportFragmentManager().beginTransaction()
+						.setCustomAnimations(R.anim.dialog_in,
+								R.anim.dialog_out, R.anim.dialog_in,
+								R.anim.dialog_out)
+						.replace(R.id.fragmentContainer, fragment,
+								fragment.getUniqueTag());
+		if (isAddedToBackStack) {
+			trans.addToBackStack(fragment.getUniqueTag());
+		}
+		trans.commit();
+	}
+
+	private void clearBackStack() {
+		getSupportFragmentManager().popBackStackImmediate(null,
+				POP_BACK_STACK_INCLUSIVE);
+	}
+
 	private void initializeTransports(final LayoutInflater inflater) {
 		transports = new ArrayList<>(3);
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java
index ccb0c5acf2..bea0ff2359 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java
@@ -63,6 +63,8 @@ public class GroupListFragment extends BaseFragment implements
 			@Nullable ViewGroup container,
 			@Nullable Bundle savedInstanceState) {
 
+		getActivity().setTitle(R.string.groups_button);
+
 		View v = inflater.inflate(R.layout.list, container, false);
 
 		adapter = new GroupListAdapter(getContext(), this);
-- 
GitLab