From 13fdea05b39c836f232ab57c5eec64d1bc36cb57 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Thu, 11 Feb 2016 10:10:10 -0800 Subject: [PATCH] Start saving iconified state of SearchView. Bug: 27113484 Change-Id: Ifbde47c9af7c5460390e278a5af674f0c8654c2a --- core/java/android/widget/SearchView.java | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java index 45fc6c3d4c7a..3796df78ff7f 100644 --- a/core/java/android/widget/SearchView.java +++ b/core/java/android/widget/SearchView.java @@ -36,6 +36,8 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; import android.speech.RecognizerIntent; import android.text.Editable; import android.text.InputType; @@ -1332,6 +1334,48 @@ public class SearchView extends LinearLayout implements CollapsibleActionView { setIconified(false); } + static class SavedState extends BaseSavedState { + boolean isIconified; + + SavedState(Parcelable superState) { + super(superState); + } + + public SavedState(Parcel source) { + super(source); + isIconified = (Boolean) source.readValue(null); + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + super.writeToParcel(dest, flags); + dest.writeValue(isIconified); + } + + @Override + public String toString() { + return "SearchView.SavedState{" + + Integer.toHexString(System.identityHashCode(this)) + + " isIconified=" + isIconified + "}"; + } + } + + @Override + protected Parcelable onSaveInstanceState() { + Parcelable superState = super.onSaveInstanceState(); + SavedState ss = new SavedState(superState); + ss.isIconified = isIconified(); + return ss; + } + + @Override + protected void onRestoreInstanceState(Parcelable state) { + SavedState ss = (SavedState) state; + super.onRestoreInstanceState(ss.getSuperState()); + updateViewsVisibility(ss.isIconified); + requestLayout(); + } + @Override public CharSequence getAccessibilityClassName() { return SearchView.class.getName(); -- 2.11.0