Merge "[Panlingual][frameworks] Fix when tap search bar, will leave a big blank." into tm-dev

This commit is contained in:
Tom Hsu
2022-05-11 05:51:00 +00:00
committed by Android (Google) Code Review

View File

@@ -29,6 +29,7 @@ import android.util.Log;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.MenuItem.OnActionExpandListener;
import android.view.View; import android.view.View;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SearchView; import android.widget.SearchView;
@@ -64,6 +65,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O
private int mTopDistance = 0; private int mTopDistance = 0;
private String mAppPackageName; private String mAppPackageName;
private CharSequence mTitle = null; private CharSequence mTitle = null;
private OnActionExpandListener mOnActionExpandListener;
/** /**
* Other classes can register to be notified when a locale was selected. * Other classes can register to be notified when a locale was selected.
@@ -80,8 +82,10 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O
private static LocalePickerWithRegion createCountryPicker(Context context, private static LocalePickerWithRegion createCountryPicker(Context context,
LocaleSelectedListener listener, LocaleStore.LocaleInfo parent, LocaleSelectedListener listener, LocaleStore.LocaleInfo parent,
boolean translatedOnly, String appPackageName) { boolean translatedOnly, String appPackageName,
OnActionExpandListener onActionExpandListener) {
LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); LocalePickerWithRegion localePicker = new LocalePickerWithRegion();
localePicker.setOnActionExpandListener(onActionExpandListener);
boolean shouldShowTheList = localePicker.setListener(context, listener, parent, boolean shouldShowTheList = localePicker.setListener(context, listener, parent,
translatedOnly, appPackageName); translatedOnly, appPackageName);
return shouldShowTheList ? localePicker : null; return shouldShowTheList ? localePicker : null;
@@ -95,8 +99,10 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O
} }
public static LocalePickerWithRegion createLanguagePicker(Context context, public static LocalePickerWithRegion createLanguagePicker(Context context,
LocaleSelectedListener listener, boolean translatedOnly, String appPackageName) { LocaleSelectedListener listener, boolean translatedOnly, String appPackageName,
OnActionExpandListener onActionExpandListener) {
LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); LocalePickerWithRegion localePicker = new LocalePickerWithRegion();
localePicker.setOnActionExpandListener(onActionExpandListener);
localePicker.setListener( localePicker.setListener(
context, listener, /* parent */ null, translatedOnly, appPackageName); context, listener, /* parent */ null, translatedOnly, appPackageName);
return localePicker; return localePicker;
@@ -310,7 +316,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O
} else { } else {
LocalePickerWithRegion selector = LocalePickerWithRegion.createCountryPicker( LocalePickerWithRegion selector = LocalePickerWithRegion.createCountryPicker(
getContext(), mListener, locale, mTranslatedOnly /* translate only */, getContext(), mListener, locale, mTranslatedOnly /* translate only */,
mAppPackageName); mAppPackageName, mOnActionExpandListener);
if (selector != null) { if (selector != null) {
getFragmentManager().beginTransaction() getFragmentManager().beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
@@ -328,8 +334,11 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O
inflater.inflate(R.menu.language_selection_list, menu); inflater.inflate(R.menu.language_selection_list, menu);
final MenuItem searchMenuItem = menu.findItem(R.id.locale_search_menu); final MenuItem searchMenuItem = menu.findItem(R.id.locale_search_menu);
mSearchView = (SearchView) searchMenuItem.getActionView(); if (!mAppPackageName.isEmpty() && mOnActionExpandListener != null) {
searchMenuItem.setOnActionExpandListener(mOnActionExpandListener);
}
mSearchView = (SearchView) searchMenuItem.getActionView();
mSearchView.setQueryHint(getText(R.string.search_language_hint)); mSearchView.setQueryHint(getText(R.string.search_language_hint));
mSearchView.setOnQueryTextListener(this); mSearchView.setOnQueryTextListener(this);
@@ -363,4 +372,11 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O
} }
return false; return false;
} }
/**
* Sets OnActionExpandListener to LocalePickerWithRegion to dectect action of search bar.
*/
public void setOnActionExpandListener(OnActionExpandListener onActionExpandListener) {
mOnActionExpandListener = onActionExpandListener;
}
} }