diff options
| author | Adam Powell <adamp@google.com> | 2013-06-14 01:28:25 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-06-14 01:28:25 +0000 |
| commit | 77b7c33a7a4e79022529ae18e39789adbcc86159 (patch) | |
| tree | 678046e7ba1f02cd3bd386f3ce47a61733567cb4 /core/java/android | |
| parent | d1f9aaa5d776a94907f9e5b632125648043c47b3 (diff) | |
| parent | 90f339a5a343f82c3c32e4467c54ded94a1807a1 (diff) | |
Merge "Don't save ScrollView/HorizontalScrollView saved state for old apps"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/widget/HorizontalScrollView.java | 14 | ||||
| -rw-r--r-- | core/java/android/widget/ScrollView.java | 12 |
2 files changed, 25 insertions, 1 deletions
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java index c89c91ee82fa..f0d80e6b2d0a 100644 --- a/core/java/android/widget/HorizontalScrollView.java +++ b/core/java/android/widget/HorizontalScrollView.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; +import android.os.Build; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; @@ -1467,7 +1468,7 @@ public class HorizontalScrollView extends FrameLayout { mIsLayoutDirty = false; // Give a child focus if it needs it if (mChildToScrollTo != null && isViewDescendantOf(mChildToScrollTo, this)) { - scrollToChild(mChildToScrollTo); + scrollToChild(mChildToScrollTo); } mChildToScrollTo = null; @@ -1641,6 +1642,12 @@ public class HorizontalScrollView extends FrameLayout { @Override protected void onRestoreInstanceState(Parcelable state) { + if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN_MR2) { + // Some old apps reused IDs in ways they shouldn't have. + // Don't break them, but they don't get scroll state restoration. + super.onRestoreInstanceState(state); + return; + } SavedState ss = (SavedState) state; super.onRestoreInstanceState(ss.getSuperState()); mSavedState = ss; @@ -1649,6 +1656,11 @@ public class HorizontalScrollView extends FrameLayout { @Override protected Parcelable onSaveInstanceState() { + if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN_MR2) { + // Some old apps reused IDs in ways they shouldn't have. + // Don't break them, but they don't get scroll state restoration. + return super.onSaveInstanceState(); + } Parcelable superState = super.onSaveInstanceState(); SavedState ss = new SavedState(superState); ss.scrollPosition = mScrollX; diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index b764c98843fb..b32cfbc04604 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -16,6 +16,7 @@ package android.widget; +import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import com.android.internal.R; @@ -1662,6 +1663,12 @@ public class ScrollView extends FrameLayout { @Override protected void onRestoreInstanceState(Parcelable state) { + if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN_MR2) { + // Some old apps reused IDs in ways they shouldn't have. + // Don't break them, but they don't get scroll state restoration. + super.onRestoreInstanceState(state); + return; + } SavedState ss = (SavedState) state; super.onRestoreInstanceState(ss.getSuperState()); mSavedState = ss; @@ -1670,6 +1677,11 @@ public class ScrollView extends FrameLayout { @Override protected Parcelable onSaveInstanceState() { + if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN_MR2) { + // Some old apps reused IDs in ways they shouldn't have. + // Don't break them, but they don't get scroll state restoration. + return super.onSaveInstanceState(); + } Parcelable superState = super.onSaveInstanceState(); SavedState ss = new SavedState(superState); ss.scrollPosition = mScrollY; |
