Fix back navigation from initial fragment

Clicking on the hardware back button while the initial fragment was
shown resulted in showing an empty screen and only on a second click
the app was moved to the background.

This was because the initial fragment was wrongly added to the back
stack.

Change-Id: I482842b8a578c715ce5ee0d1396b3e683d098b16
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/app/src/main/java/com/google/reviewit/MainActivity.java b/app/src/main/java/com/google/reviewit/MainActivity.java
index 4960f72..13705fd 100644
--- a/app/src/main/java/com/google/reviewit/MainActivity.java
+++ b/app/src/main/java/com/google/reviewit/MainActivity.java
@@ -22,6 +22,7 @@
 import android.support.annotation.StringRes;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
 import android.support.v4.widget.DrawerLayout;
 import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.widget.Toolbar;
@@ -139,15 +140,15 @@
     });
 
     if (getApp().getPrefs().showIntro) {
-      displayView(new IntroFragment1());
+      displayInitialView(new IntroFragment1());
     } else if (savedInstanceState == null) {
       switch (getApp().getPrefs().startScreen) {
         case REVIEW_SCREEN:
-          displayView(1);
+          displayInitialView(newFragmentInstance(items.get(1).fragmentClass));
           break;
         case SORT_SCREEN:
         default:
-          displayView(0);
+          displayInitialView(newFragmentInstance(items.get(0).fragmentClass));
           break;
       }
     }
@@ -173,12 +174,24 @@
     drawer.closeDrawer(list);
   }
 
+  private void displayInitialView(Fragment fragment) {
+    displayView(fragment, false);
+  }
+
   private void displayView(Fragment fragment) {
+    displayView(fragment, true);
+  }
+
+  private void displayView(Fragment fragment, boolean addToBackStack) {
     FragmentManager fragmentManager = getSupportFragmentManager();
-    fragmentManager.beginTransaction()
-        .replace(R.id.mainFrame, fragment)
-        .addToBackStack(null)
-        .commit();
+    FragmentTransaction t = fragmentManager.beginTransaction()
+        .replace(R.id.mainFrame, fragment);
+
+    if (addToBackStack) {
+      t.addToBackStack(null);
+    }
+
+    t.commit();
   }
 
   private Fragment newFragmentInstance(