[Settings] Should create header again when adding it to the listview
Bug: 291545021 Test: manual Flag: EXEMPT bugfix Change-Id: I9d76814d98b67b1eb0078765a2b5bd6949cff446
This commit is contained in:
@@ -33,6 +33,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.internal.app.LocaleHelper;
|
||||
@@ -62,6 +63,7 @@ public class AppLocaleDetails extends SettingsPreferenceFragment {
|
||||
private LayoutPreference mPrefOfDescription;
|
||||
private Preference mPrefOfDisclaimer;
|
||||
private ApplicationInfo mApplicationInfo;
|
||||
@Nullable private String mParentLocale;
|
||||
|
||||
/**
|
||||
* Create a instance of AppLocaleDetails.
|
||||
@@ -111,6 +113,12 @@ public class AppLocaleDetails extends SettingsPreferenceFragment {
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
refreshUi();
|
||||
final Activity activity = getActivity();
|
||||
if (mParentLocale != null) {
|
||||
activity.setTitle(mParentLocale);
|
||||
} else {
|
||||
activity.setTitle(R.string.app_locale_picker_title);
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshUi() {
|
||||
@@ -215,4 +223,8 @@ public class AppLocaleDetails extends SettingsPreferenceFragment {
|
||||
return LocaleHelper.getDisplayName(appLocale.stripExtensions(), appLocale, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void setParentLocale(@Nullable String localeName) {
|
||||
mParentLocale = localeName;
|
||||
}
|
||||
}
|
||||
|
@@ -37,6 +37,7 @@ import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ListView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
|
||||
@@ -67,6 +68,7 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
||||
private View mAppLocaleDetailContainer;
|
||||
private NotificationController mNotificationController;
|
||||
private MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
@Nullable private String mParentLocale;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -129,6 +131,11 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onParentLocaleSelected(LocaleStore.LocaleInfo localeInfo) {
|
||||
mParentLocale = localeInfo.getFullNameNative();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemActionCollapse(MenuItem item) {
|
||||
mAppBarLayout.setExpanded(false /*expanded*/, false /*animate*/);
|
||||
@@ -258,6 +265,12 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
||||
super.onFragmentViewCreated(fm, f, v, s);
|
||||
ListView listView = (ListView) v.findViewById(android.R.id.list);
|
||||
if (listView != null) {
|
||||
if (mParentLocale != null) {
|
||||
mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName,
|
||||
getUserId());
|
||||
mAppLocaleDetailContainer = launchAppLocaleDetailsPage();
|
||||
mAppLocaleDetails.setParentLocale(mParentLocale);
|
||||
}
|
||||
listView.addHeaderView(mAppLocaleDetailContainer);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user