Disallow fragment transactions after onSaveInstanceState is called

Let's see if this takes care of the monkey bugs.

BUG:3156612
Change-Id: Ib941d947d034364f4d13f8e2aeb2b4c25655f100
diff --git a/src/com/android/calendar/AllInOneActivity.java b/src/com/android/calendar/AllInOneActivity.java
index b8221e8..57f5dff 100644
--- a/src/com/android/calendar/AllInOneActivity.java
+++ b/src/com/android/calendar/AllInOneActivity.java
@@ -69,6 +69,7 @@
     private static final int HANDLER_KEY = 0;
     private static CalendarController mController;
     private static boolean mIsMultipane;
+    private boolean mOnSaveInstanceStateCalled = false;
     private ContentResolver mContentResolver;
     private int mPreviousView;
     private int mCurrentView;
@@ -191,6 +192,7 @@
         }
         updateHomeClock();
         mPaused = false;
+        mOnSaveInstanceStateCalled = false;
     }
 
     @Override
@@ -218,6 +220,7 @@
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
+        mOnSaveInstanceStateCalled = true;
         super.onSaveInstanceState(outState);
 
         outState.putLong(BUNDLE_KEY_RESTORE_TIME, mController.getTime());
@@ -367,6 +370,9 @@
 
     private void setMainPane(FragmentTransaction ft, int viewId, int viewType, long timeMillis,
             boolean force, EventInfo e) {
+        if (mOnSaveInstanceStateCalled) {
+            return;
+        }
         if (!force && mCurrentView == viewType) {
             return;
         }