From 9c661a40c1f8adfbf84883fbf5efb51ed0cf2fe2 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Wed, 11 May 2016 14:46:29 -0700 Subject: [PATCH] Stop saving ActionMenuItemView state. There is no useful state to be saved for these views. This fixes a crash where we try to restore the state of an ActionView (that shares the same ID as ActionMenuItemView). Framework version of ag/1020805 Bug: 28110832 Change-Id: I4a09786a1c08bef1765fd8be3affb21dce296272 --- .../android/internal/view/menu/ActionMenuItemView.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/view/menu/ActionMenuItemView.java b/core/java/com/android/internal/view/menu/ActionMenuItemView.java index 4738f5ed58179..6989654c57cd9 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuItemView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuItemView.java @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Parcelable; import android.text.TextUtils; import android.util.AttributeSet; import android.view.Gravity; @@ -30,7 +31,6 @@ import android.view.View; import android.view.accessibility.AccessibilityEvent; import android.widget.ActionMenuView; import android.widget.ForwardingListener; -import android.widget.ListPopupWindow; import android.widget.TextView; import android.widget.Toast; @@ -86,6 +86,7 @@ public class ActionMenuItemView extends TextView setOnLongClickListener(this); mSavedPaddingLeft = -1; + setSaveEnabled(false); } @Override @@ -348,6 +349,13 @@ public class ActionMenuItemView extends TextView } } + @Override + public void onRestoreInstanceState(Parcelable state) { + // This might get called with the state of ActionView since it shares the same ID with + // ActionMenuItemView. Do not restore this state as ActionMenuItemView never saved it. + super.onRestoreInstanceState(null); + } + public static abstract class PopupCallback { public abstract ShowableListMenu getPopup(); }