am 46a1a4b2: am 8f90249d: am ca83e1d5: Merge "Saving and restoring current page when rotating in lockscreen. (Bug 7568412)" into jb-mr1.1-dev

* commit '46a1a4b2febc504a1ceb5429ac329264b158929c':
  Saving and restoring current page when rotating in lockscreen. (Bug 7568412)
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
index 94cd0b5..c47f89d 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
@@ -80,6 +80,7 @@
     private boolean mEnableFallback; // TODO: This should get the value from KeyguardPatternView
     private SecurityMode mCurrentSecuritySelection = SecurityMode.Invalid;
     private int mAppWidgetToShow;
+    private int mPreviousWidgetPage = -1;
 
     private boolean mCheckAppWidgetConsistencyOnBootCompleted = false;
     private boolean mCleanupAppWidgetsOnBootCompleted = false;
@@ -911,6 +912,7 @@
 
     public void clearAppWidgetToShow() {
         mAppWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
+        mPreviousWidgetPage = -1;
     }
 
     @Override
@@ -1298,10 +1300,22 @@
            showAppropriateWidgetPage();
         }
     };
+    Runnable mOnRestoreUpdatePageRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mSwitchPageRunnable.run();
+
+            // We need to update the alpha's of the hints and content after setting the current page
+            mViewStateManager.showUsabilityHints();
+        };
+    };
+
 
     static class SavedState extends BaseSavedState {
         int transportState;
         int appWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
+        // Note the appWidgetContainerPage is only used if the appWidgetToShow is invalid
+        int appWidgetContainerPage = -1;
 
         SavedState(Parcelable superState) {
             super(superState);
@@ -1311,6 +1325,7 @@
             super(in);
             this.transportState = in.readInt();
             this.appWidgetToShow = in.readInt();
+            this.appWidgetContainerPage = in.readInt();
         }
 
         @Override
@@ -1318,6 +1333,7 @@
             super.writeToParcel(out, flags);
             out.writeInt(this.transportState);
             out.writeInt(this.appWidgetToShow);
+            out.writeInt(this.appWidgetContainerPage);
         }
 
         public static final Parcelable.Creator<SavedState> CREATOR
@@ -1339,6 +1355,7 @@
         SavedState ss = new SavedState(superState);
         ss.transportState = mViewStateManager.getTransportState();
         ss.appWidgetToShow = mAppWidgetToShow;
+        ss.appWidgetContainerPage = mAppWidgetContainer.getCurrentPage();
         return ss;
     }
 
@@ -1353,7 +1370,8 @@
         super.onRestoreInstanceState(ss.getSuperState());
         mViewStateManager.setTransportState(ss.transportState);
         mAppWidgetToShow = ss.appWidgetToShow;
-        post(mSwitchPageRunnable);
+        mPreviousWidgetPage = ss.appWidgetContainerPage;
+        post(mOnRestoreUpdatePageRunnable);
     }
 
     @Override
@@ -1410,6 +1428,9 @@
             }
             mAppWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
         }
+        if (mPreviousWidgetPage > -1) {
+            return mPreviousWidgetPage;
+        }
         // if music playing, show transport
         if (isMusicPlaying) {
             if (DEBUG) Log.d(TAG, "Music playing, show transport");