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