[Settings] Save query status of search view

Bug: 394494567
Test: manual
Flag: EXEMPT bugfix
Change-Id: Ic82d9ae98c843d96378427aa9e8c9d5e3aa3b5ac
This commit is contained in:
Zoey Chen
2025-03-10 07:45:23 +00:00
parent 2380c5d1e4
commit ba7eab896f
2 changed files with 26 additions and 0 deletions

View File

@@ -76,6 +76,7 @@ public class AppLocalePickerFragment extends DashboardFragment implements
private static final String TAG = "AppLocalePickerFragment";
private static final String EXTRA_EXPAND_SEARCH_VIEW = "expand_search_view";
private static final String EXTRA_SEARCH_VIEW_QUERY = "search_view_query";
private static final String KEY_PREFERENCE_APP_LOCALE_LIST = "app_locale_list";
private static final String KEY_PREFERENCE_APP_LOCALE_SUGGESTED_LIST =
"app_locale_suggested_list";
@@ -108,6 +109,7 @@ public class AppLocalePickerFragment extends DashboardFragment implements
@Nullable
private ApplicationInfo mApplicationInfo;
private boolean mIsNumberingMode;
private CharSequence mPreviousSearch = null;
@Override
public void onCreate(@NonNull Bundle icicle) {
@@ -137,6 +139,7 @@ public class AppLocalePickerFragment extends DashboardFragment implements
mExpandSearch = mActivity.getIntent().getBooleanExtra(EXTRA_EXPAND_SEARCH_VIEW, false);
if (icicle != null) {
mExpandSearch = icicle.getBoolean(EXTRA_EXPAND_SEARCH_VIEW);
mPreviousSearch = icicle.getCharSequence(EXTRA_SEARCH_VIEW_QUERY);
}
AppLocaleCollector appLocaleCollector = new AppLocaleCollector(mActivity, mPackageName);
@@ -163,6 +166,7 @@ public class AppLocalePickerFragment extends DashboardFragment implements
super.onSaveInstanceState(outState);
if (mSearchView != null) {
outState.putBoolean(EXTRA_EXPAND_SEARCH_VIEW, !mSearchView.isIconified());
outState.putCharSequence(EXTRA_SEARCH_VIEW_QUERY, mSearchView.getQuery());
}
}
@@ -181,6 +185,15 @@ public class AppLocalePickerFragment extends DashboardFragment implements
if (mExpandSearch) {
searchMenuItem.expandActionView();
}
// Restore previous search status
if (!TextUtils.isEmpty(mPreviousSearch)) {
searchMenuItem.expandActionView();
mSearchView.setIconified(false);
mSearchView.setActivated(true);
mSearchView.setQuery(mPreviousSearch, true /* submit */);
} else {
mSearchView.setQuery(null, false /* submit */);
}
}
}

View File

@@ -69,6 +69,7 @@ public class SystemLocalePickerFragment extends DashboardFragment implements
private static final String TAG = "SystemLocalePickerFragment";
private static final String EXTRA_EXPAND_SEARCH_VIEW = "expand_search_view";
private static final String EXTRA_SEARCH_VIEW_QUERY = "search_view_query";
private static final String KEY_PREFERENCE_SYSTEM_LOCALE_LIST = "system_locale_list";
private static final String KEY_PREFERENCE_SYSTEM_LOCALE_SUGGESTED_LIST =
"system_locale_suggested_list";
@@ -90,6 +91,7 @@ public class SystemLocalePickerFragment extends DashboardFragment implements
private RecyclerView mRecyclerView;
private Activity mActivity;
private boolean mExpandSearch;
private CharSequence mPreviousSearch = null;
@Override
public void onCreate(@NonNull Bundle icicle) {
@@ -103,6 +105,7 @@ public class SystemLocalePickerFragment extends DashboardFragment implements
mExpandSearch = mActivity.getIntent().getBooleanExtra(EXTRA_EXPAND_SEARCH_VIEW, false);
if (icicle != null) {
mExpandSearch = icicle.getBoolean(EXTRA_EXPAND_SEARCH_VIEW);
mPreviousSearch = icicle.getCharSequence(EXTRA_SEARCH_VIEW_QUERY);
}
SystemLocaleCollector systemLocaleCollector = new SystemLocaleCollector(getContext(), null);
@@ -135,6 +138,7 @@ public class SystemLocalePickerFragment extends DashboardFragment implements
super.onSaveInstanceState(outState);
if (mSearchView != null) {
outState.putBoolean(EXTRA_EXPAND_SEARCH_VIEW, !mSearchView.isIconified());
outState.putCharSequence(EXTRA_SEARCH_VIEW_QUERY, mSearchView.getQuery());
}
}
@@ -153,6 +157,15 @@ public class SystemLocalePickerFragment extends DashboardFragment implements
if (mExpandSearch) {
searchMenuItem.expandActionView();
}
// Restore previous search status
if (!TextUtils.isEmpty(mPreviousSearch)) {
searchMenuItem.expandActionView();
mSearchView.setIconified(false);
mSearchView.setActivated(true);
mSearchView.setQuery(mPreviousSearch, true /* submit */);
} else {
mSearchView.setQuery(null, false /* submit */);
}
}
}