It shows suggestions at the top, then the rest of the locales.
+ * Allows the user to search for locales using both their native name and their name in the
+ * default locale.
+ */
+public class LocalePickerWithRegion extends ListFragment implements SearchView.OnQueryTextListener {
+ private static final String PARENT_FRAGMENT_NAME = "localeListEditor";
+
+ private SuggestedLocaleAdapter mAdapter;
+ private LocaleSelectedListener mListener;
+ private Set mLocaleList;
+ private LocaleStore.LocaleInfo mParentLocale;
+ private boolean mTranslatedOnly = false;
+ private SearchView mSearchView = null;
+ private CharSequence mPreviousSearch = null;
+ private boolean mPreviousSearchHadFocus = false;
+ private int mFirstVisiblePosition = 0;
+ private int mTopDistance = 0;
+
+ /**
+ * Other classes can register to be notified when a locale was selected.
+ *
+ * This is the mechanism to "return" the result of the selection.
+ */
+ public interface LocaleSelectedListener {
+ /**
+ * The classes that want to retrieve the locale picked should implement this method.
+ * @param locale the locale picked.
+ */
+ void onLocaleSelected(LocaleStore.LocaleInfo locale);
+ }
+
+ private static LocalePickerWithRegion createCountryPicker(Context context,
+ LocaleSelectedListener listener, LocaleStore.LocaleInfo parent,
+ boolean translatedOnly) {
+ LocalePickerWithRegion
+ localePicker = new LocalePickerWithRegion();
+ boolean shouldShowTheList = localePicker.setListener(context, listener, parent,
+ translatedOnly);
+ return shouldShowTheList ? localePicker : null;
+ }
+
+ public static LocalePickerWithRegion createLanguagePicker(Context context,
+ LocaleSelectedListener listener, boolean translatedOnly) {
+ LocalePickerWithRegion
+ localePicker = new LocalePickerWithRegion();
+ localePicker.setListener(context, listener, /* parent */ null, translatedOnly);
+ return localePicker;
+ }
+
+ /**
+ * Sets the listener and initializes the locale list.
+ *
+ * Returns true if we need to show the list, false if not.
+ *
+ * Can return false because of an error, trying to show a list of countries,
+ * but no parent locale was provided.
+ *
+ * It can also return false if the caller tries to show the list in country mode and
+ * there is only one country available (i.e. Japanese => Japan).
+ * In this case we don't even show the list, we call the listener with that locale,
+ * "pretending" it was selected, and return false.
+ */
+ private boolean setListener(Context context, LocaleSelectedListener listener,
+ LocaleStore.LocaleInfo parent, boolean translatedOnly) {
+ this.mParentLocale = parent;
+ this.mListener = listener;
+ this.mTranslatedOnly = translatedOnly;
+ setRetainInstance(true);
+
+ final HashSet langTagsToIgnore = new HashSet<>();
+ if (!translatedOnly) {
+ final LocaleList userLocales = LocalePicker.getLocales();
+ final String[] langTags = userLocales.toLanguageTags().split(",");
+ Collections.addAll(langTagsToIgnore, langTags);
+ }
+
+ if (parent != null) {
+ mLocaleList = LocaleStore.getLevelLocales(context,
+ langTagsToIgnore, parent, translatedOnly);
+ if (mLocaleList.size() <= 1) {
+ if (listener != null && (mLocaleList.size() == 1)) {
+ listener.onLocaleSelected(mLocaleList.iterator().next());
+ }
+ return false;
+ }
+ } else {
+ mLocaleList = LocaleStore.getLevelLocales(context, langTagsToIgnore,
+ null /* no parent */, translatedOnly);
+ }
+
+ return true;
+ }
+
+ private void returnToParentFrame() {
+ getFragmentManager().popBackStack(PARENT_FRAGMENT_NAME,
+ FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setHasOptionsMenu(true);
+
+ if (mLocaleList == null) {
+ // The fragment was killed and restored by the FragmentManager.
+ // At this point we have no data, no listener. Just return, to prevend a NPE.
+ // Fixes b/28748150. Created b/29400003 for a cleaner solution.
+ returnToParentFrame();
+ return;
+ }
+
+ final boolean countryMode = mParentLocale != null;
+ final Locale sortingLocale = countryMode ? mParentLocale.getLocale() : Locale.getDefault();
+ mAdapter = new SuggestedLocaleAdapter(mLocaleList, countryMode);
+ final LocaleHelper.LocaleInfoComparator comp =
+ new LocaleHelper.LocaleInfoComparator(sortingLocale, countryMode);
+ mAdapter.sort(comp);
+ setListAdapter(mAdapter);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem menuItem) {
+ int id = menuItem.getItemId();
+ switch (id) {
+ case android.R.id.home:
+ getFragmentManager().popBackStack();
+ return true;
+ }
+ return super.onOptionsItemSelected(menuItem);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ if (mParentLocale != null) {
+ getActivity().setTitle(mParentLocale.getFullNameNative());
+ } else {
+ getActivity().setTitle(R.string.language_selection_title);
+ }
+
+ getListView().requestFocus();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+
+ // Save search status
+ if (mSearchView != null) {
+ mPreviousSearchHadFocus = mSearchView.hasFocus();
+ mPreviousSearch = mSearchView.getQuery();
+ } else {
+ mPreviousSearchHadFocus = false;
+ mPreviousSearch = null;
+ }
+
+ // Save scroll position
+ final ListView list = getListView();
+ final View firstChild = list.getChildAt(0);
+ mFirstVisiblePosition = list.getFirstVisiblePosition();
+ mTopDistance = (firstChild == null) ? 0 : (firstChild.getTop() - list.getPaddingTop());
+ }
+
+ @Override
+ public void onListItemClick(ListView l, View v, int position, long id) {
+ final LocaleStore.LocaleInfo locale =
+ (LocaleStore.LocaleInfo) getListAdapter().getItem(position);
+
+ if (locale.getParent() != null) {
+ if (mListener != null) {
+ mListener.onLocaleSelected(locale);
+ }
+ returnToParentFrame();
+ } else {
+ LocalePickerWithRegion
+ selector = LocalePickerWithRegion.createCountryPicker(
+ getContext(), mListener, locale, mTranslatedOnly /* translate only */);
+ if (selector != null) {
+ getFragmentManager().beginTransaction()
+ .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
+ .replace(getId(), selector).addToBackStack(null)
+ .commit();
+ } else {
+ returnToParentFrame();
+ }
+ }
+ }
+
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ if (mParentLocale == null) {
+ inflater.inflate(R.menu.language_selection_list, menu);
+
+ final MenuItem searchMenuItem = menu.findItem(R.id.locale_search_menu);
+ mSearchView = (SearchView) searchMenuItem.getActionView();
+
+ mSearchView.setQueryHint(getText(R.string.search_language_hint));
+ mSearchView.setOnQueryTextListener(this);
+
+ // Restore previous search status
+ if (!TextUtils.isEmpty(mPreviousSearch)) {
+ searchMenuItem.expandActionView();
+ mSearchView.setIconified(false);
+ mSearchView.setActivated(true);
+ if (mPreviousSearchHadFocus) {
+ mSearchView.requestFocus();
+ }
+ mSearchView.setQuery(mPreviousSearch, true /* submit */);
+ } else {
+ mSearchView.setQuery(null, false /* submit */);
+ }
+
+ // Restore previous scroll position
+ getListView().setSelectionFromTop(mFirstVisiblePosition, mTopDistance);
+ }
+ }
+
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ return false;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ if (mAdapter != null) {
+ mAdapter.getFilter().filter(newText);
+ }
+ return false;
+ }
+}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 638518c7eee..18b1033d408 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -81,7 +81,8 @@ public class LocationSettings extends DashboardFragment {
final SwitchBar switchBar = activity.getSwitchBar();
switchBar.setSwitchBarText(R.string.location_settings_master_switch_title,
R.string.location_settings_master_switch_title);
- mSwitchBarController = new LocationSwitchBarController(activity, switchBar, getLifecycle());
+ mSwitchBarController = new LocationSwitchBarController(activity, switchBar,
+ getSettingsLifecycle());
switchBar.show();
}
@@ -97,7 +98,7 @@ public class LocationSettings extends DashboardFragment {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, this, getLifecycle());
+ return buildPreferenceControllers(context, this, getSettingsLifecycle());
}
static void addPreferencesSorted(List prefs, PreferenceGroup container) {
diff --git a/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java b/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java
index 8a15734c3ab..d256b9b804e 100644
--- a/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java
+++ b/src/com/android/settings/location/RecentLocationRequestSeeAllFragment.java
@@ -59,7 +59,7 @@ public class RecentLocationRequestSeeAllFragment extends DashboardFragment {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle(), this);
+ return buildPreferenceControllers(context, getSettingsLifecycle(), this);
}
private static List buildPreferenceControllers(
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index f270627de02..31a8435652f 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -81,9 +81,8 @@ public class NetworkDashboardFragment extends DashboardFragment implements
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle(), mMetricsFeatureProvider, this
- /* fragment */,
- this /* mobilePlanHost */);
+ return buildPreferenceControllers(context, getSettingsLifecycle(), mMetricsFeatureProvider,
+ this /* fragment */, this /* mobilePlanHost */);
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 7bdc14e8fd0..3a04adef2c8 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -45,7 +45,7 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.utils.AnnotationSpan;
-import com.android.settingslib.CustomDialogPreference;
+import com.android.settingslib.CustomDialogPreferenceCompat;
import com.android.settingslib.HelpUtils;
import java.util.HashMap;
@@ -56,7 +56,7 @@ import androidx.annotation.VisibleForTesting;
/**
* Dialog to set the Private DNS
*/
-public class PrivateDnsModeDialogPreference extends CustomDialogPreference implements
+public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat implements
DialogInterface.OnClickListener, RadioGroup.OnCheckedChangeListener, TextWatcher {
public static final String ANNOTATION_URL = "url";
diff --git a/src/com/android/settings/nfc/NfcPaymentPreference.java b/src/com/android/settings/nfc/NfcPaymentPreference.java
index 456115ad670..f5275ecc6e2 100644
--- a/src/com/android/settings/nfc/NfcPaymentPreference.java
+++ b/src/com/android/settings/nfc/NfcPaymentPreference.java
@@ -15,23 +15,23 @@
*/
package com.android.settings.nfc;
-import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.AttributeSet;
-import com.android.settingslib.CustomDialogPreference;
+import com.android.settingslib.CustomDialogPreferenceCompat;
+import androidx.appcompat.app.AlertDialog.Builder;
import androidx.preference.PreferenceViewHolder;
-public class NfcPaymentPreference extends CustomDialogPreference {
+public class NfcPaymentPreference extends CustomDialogPreferenceCompat {
private Listener mListener;
interface Listener {
void onBindViewHolder(PreferenceViewHolder view);
- void onPrepareDialogBuilder(AlertDialog.Builder builder,
+ void onPrepareDialogBuilder(Builder builder,
DialogInterface.OnClickListener listener);
}
@@ -62,7 +62,7 @@ public class NfcPaymentPreference extends CustomDialogPreference {
}
@Override
- protected void onPrepareDialogBuilder(AlertDialog.Builder builder,
+ protected void onPrepareDialogBuilder(Builder builder,
DialogInterface.OnClickListener listener) {
super.onPrepareDialogBuilder(builder, listener);
diff --git a/src/com/android/settings/nfc/NfcPaymentPreferenceController.java b/src/com/android/settings/nfc/NfcPaymentPreferenceController.java
index 39f019506a0..8996cb19dd2 100644
--- a/src/com/android/settings/nfc/NfcPaymentPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcPaymentPreferenceController.java
@@ -13,7 +13,6 @@
*/
package com.android.settings.nfc;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.Context;
@@ -39,6 +38,7 @@ import com.android.settingslib.core.lifecycle.events.OnStop;
import java.util.List;
+import androidx.appcompat.app.AlertDialog.Builder;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
@@ -134,7 +134,7 @@ public class NfcPaymentPreferenceController extends BasePreferenceController imp
}
@Override
- public void onPrepareDialogBuilder(AlertDialog.Builder builder,
+ public void onPrepareDialogBuilder(Builder builder,
DialogInterface.OnClickListener listener) {
builder.setSingleChoiceItems(mAdapter, 0, listener);
}
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index adcd393db1b..2b5a8abc9df 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -87,7 +87,7 @@ public class ConfigureNotificationSettings extends DashboardFragment {
} else {
app = null;
}
- return buildPreferenceControllers(context, getLifecycle(), app, this);
+ return buildPreferenceControllers(context, getSettingsLifecycle(), app, this);
}
private static List buildPreferenceControllers(Context context,
@@ -119,7 +119,7 @@ public class ConfigureNotificationSettings extends DashboardFragment {
if (preference instanceof RingtonePreference) {
mRequestPreference = (RingtonePreference) preference;
mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent());
- startActivityForResultAsUser(
+ getActivity().startActivityForResultAsUser(
mRequestPreference.getIntent(),
REQUEST_CODE,
null,
diff --git a/src/com/android/settings/notification/HeaderPreferenceController.java b/src/com/android/settings/notification/HeaderPreferenceController.java
index 89a312f6667..6ddafc31ef4 100644
--- a/src/com/android/settings/notification/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/HeaderPreferenceController.java
@@ -34,15 +34,16 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
public class HeaderPreferenceController extends NotificationPreferenceController
implements PreferenceControllerMixin, LifecycleObserver {
- private final PreferenceFragment mFragment;
+ private final PreferenceFragmentCompat mFragment;
private EntityHeaderController mHeaderController;
private boolean mStarted = false;
- public HeaderPreferenceController(Context context, PreferenceFragment fragment) {
+ public HeaderPreferenceController(Context context, PreferenceFragmentCompat fragment) {
super(context, null);
mFragment = fragment;
}
diff --git a/src/com/android/settings/notification/NotificationLockscreenPreference.java b/src/com/android/settings/notification/NotificationLockscreenPreference.java
index b3f39f9a739..af912af3f60 100644
--- a/src/com/android/settings/notification/NotificationLockscreenPreference.java
+++ b/src/com/android/settings/notification/NotificationLockscreenPreference.java
@@ -36,6 +36,8 @@ import com.android.settings.RestrictedListPreference;
import com.android.settings.Utils;
import com.android.settingslib.RestrictedLockUtils;
+import androidx.appcompat.app.AlertDialog.Builder;
+
public class NotificationLockscreenPreference extends RestrictedListPreference {
private boolean mAllowRemoteInput;
@@ -72,7 +74,7 @@ public class NotificationLockscreenPreference extends RestrictedListPreference {
}
@Override
- protected void onPrepareDialogBuilder(AlertDialog.Builder builder,
+ protected void onPrepareDialogBuilder(Builder builder,
DialogInterface.OnClickListener innerListener) {
mListener = new Listener(innerListener);
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index ccef26279e7..44f77cfe4f4 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -120,7 +120,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
loadChannelGroup();
collectConfigActivities();
- getLifecycle().addObserver(use(HeaderPreferenceController.class));
+ getSettingsLifecycle().addObserver(use(HeaderPreferenceController.class));
for (NotificationPreferenceController controller : mControllers) {
controller.onResume(mAppRow, mChannel, mChannelGroup, mSuspendedAppsAdmin);
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index dbac1c264c6..dafc5389074 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -117,7 +117,7 @@ public class SoundSettings extends DashboardFragment {
if (preference instanceof RingtonePreference) {
mRequestPreference = (RingtonePreference) preference;
mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent());
- startActivityForResultAsUser(
+ getActivity().startActivityForResultAsUser(
mRequestPreference.getIntent(),
REQUEST_CODE,
null,
@@ -156,7 +156,7 @@ public class SoundSettings extends DashboardFragment {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, this, getLifecycle());
+ return buildPreferenceControllers(context, this, getSettingsLifecycle());
}
@Override
@@ -195,7 +195,7 @@ public class SoundSettings extends DashboardFragment {
for (VolumeSeekBarPreferenceController controller : volumeControllers) {
controller.setCallback(mVolumeCallback);
- getLifecycle().addObserver(controller);
+ getSettingsLifecycle().addObserver(controller);
}
}
diff --git a/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java b/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java
index 4b1c8c5ce71..6468f1d02d1 100644
--- a/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java
@@ -36,18 +36,19 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModePreferenceController
implements PreferenceControllerMixin {
private final String KEY = PREF_KEY_APP_HEADER;
- private final PreferenceFragment mFragment;
+ private final PreferenceFragmentCompat mFragment;
private AutomaticZenRule mRule;
private String mId;
private EntityHeaderController mController;
- public ZenAutomaticRuleHeaderPreferenceController(Context context, PreferenceFragment fragment,
- Lifecycle lifecycle) {
+ public ZenAutomaticRuleHeaderPreferenceController(Context context,
+ PreferenceFragmentCompat fragment, Lifecycle lifecycle) {
super(context, PREF_KEY_APP_HEADER, lifecycle);
mFragment = fragment;
}
diff --git a/src/com/android/settings/notification/ZenModeAutomationSettings.java b/src/com/android/settings/notification/ZenModeAutomationSettings.java
index 196b4e76364..ee85c4e40c9 100644
--- a/src/com/android/settings/notification/ZenModeAutomationSettings.java
+++ b/src/com/android/settings/notification/ZenModeAutomationSettings.java
@@ -43,7 +43,7 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase {
protected List createPreferenceControllers(Context context) {
ZenServiceListing serviceListing = new ZenServiceListing(getContext(), CONFIG);
serviceListing.reloadApprovedServices();
- return buildPreferenceControllers(context, this, serviceListing, getLifecycle());
+ return buildPreferenceControllers(context, this, serviceListing, getSettingsLifecycle());
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java b/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java
index 2bda243e6e7..c105a1a6d55 100644
--- a/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java
+++ b/src/com/android/settings/notification/ZenModeBlockedEffectsSettings.java
@@ -51,7 +51,7 @@ public class ZenModeBlockedEffectsSettings extends ZenModeSettingsBase implement
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/notification/ZenModeCallsSettings.java b/src/com/android/settings/notification/ZenModeCallsSettings.java
index d771ef27344..bff1c9f298a 100644
--- a/src/com/android/settings/notification/ZenModeCallsSettings.java
+++ b/src/com/android/settings/notification/ZenModeCallsSettings.java
@@ -37,7 +37,7 @@ public class ZenModeCallsSettings extends ZenModeSettingsBase implements Indexab
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/notification/ZenModeEventRuleSettings.java b/src/com/android/settings/notification/ZenModeEventRuleSettings.java
index 9d1d49bd06d..a6aba11d057 100644
--- a/src/com/android/settings/notification/ZenModeEventRuleSettings.java
+++ b/src/com/android/settings/notification/ZenModeEventRuleSettings.java
@@ -82,8 +82,9 @@ public class ZenModeEventRuleSettings extends ZenModeRuleSettingsBase {
protected List createPreferenceControllers(Context context) {
List controllers = new ArrayList<>();
mHeader = new ZenAutomaticRuleHeaderPreferenceController(context, this,
- getLifecycle());
- mSwitch = new ZenAutomaticRuleSwitchPreferenceController(context, this, getLifecycle());
+ getSettingsLifecycle());
+ mSwitch = new ZenAutomaticRuleSwitchPreferenceController(context, this,
+ getSettingsLifecycle());
controllers.add(mHeader);
controllers.add(mSwitch);
return controllers;
diff --git a/src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java b/src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java
index e3a721f11fb..b61b76e97a1 100644
--- a/src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java
+++ b/src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java
@@ -37,7 +37,7 @@ public class ZenModeMsgEventReminderSettings extends ZenModeSettingsBase impleme
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java b/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java
index 737c646f929..bf170df9603 100644
--- a/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java
+++ b/src/com/android/settings/notification/ZenModeRestrictNotificationsSettings.java
@@ -42,7 +42,7 @@ public class ZenModeRestrictNotificationsSettings extends ZenModeSettingsBase im
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
@Override
diff --git a/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java b/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
index 5043e278bf4..56f9081e745 100644
--- a/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
+++ b/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
@@ -200,8 +200,9 @@ public class ZenModeScheduleRuleSettings extends ZenModeRuleSettingsBase {
protected List createPreferenceControllers(Context context) {
List controllers = new ArrayList<>();
mHeader = new ZenAutomaticRuleHeaderPreferenceController(context, this,
- getLifecycle());
- mSwitch = new ZenAutomaticRuleSwitchPreferenceController(context, this, getLifecycle());
+ getSettingsLifecycle());
+ mSwitch = new ZenAutomaticRuleSwitchPreferenceController(context, this,
+ getSettingsLifecycle());
controllers.add(mHeader);
controllers.add(mSwitch);
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index b209ac83068..ce8fe4d2afc 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -71,7 +71,7 @@ public class ZenModeSettings extends ZenModeSettingsBase {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle(), getFragmentManager());
+ return buildPreferenceControllers(context, getSettingsLifecycle(), getFragmentManager());
}
@Override
diff --git a/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java b/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
index b72460c8a34..32ff2d1d30e 100644
--- a/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
+++ b/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
@@ -35,7 +35,7 @@ public class ZenModeSoundVibrationSettings extends ZenModeSettingsBase implement
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/password/ChooseLockTypeDialogFragment.java b/src/com/android/settings/password/ChooseLockTypeDialogFragment.java
index 99921b29043..8969eec7d6a 100644
--- a/src/com/android/settings/password/ChooseLockTypeDialogFragment.java
+++ b/src/com/android/settings/password/ChooseLockTypeDialogFragment.java
@@ -17,8 +17,6 @@
package com.android.settings.password;
import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
@@ -42,6 +40,7 @@ import com.android.setupwizardlib.util.WizardManagerHelper;
import java.util.List;
+import androidx.appcompat.app.AlertDialog.Builder;
import androidx.fragment.app.Fragment;
/**
@@ -133,7 +132,7 @@ public class ChooseLockTypeDialogFragment extends InstrumentedDialogFragment
mAdapter = new ScreenLockAdapter(context, locks, mController);
builder.setAdapter(mAdapter, this);
builder.setTitle(R.string.setup_lock_settings_options_dialog_title);
- AlertDialog alertDialog = builder.create();
+ Dialog alertDialog = builder.create();
return alertDialog;
}
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
index 4dd4a97c4ea..3818ac9017f 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
@@ -124,7 +124,7 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi
}
private ConfirmDeviceCredentialBaseFragment getFragment() {
- Fragment fragment = getFragmentManager().findFragmentById(R.id.main_content);
+ Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.main_content);
if (fragment != null && fragment instanceof ConfirmDeviceCredentialBaseFragment) {
return (ConfirmDeviceCredentialBaseFragment) fragment;
}
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index fd22b1e4062..b38122663c1 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -85,7 +85,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
- Fragment fragment = getFragmentManager().findFragmentById(R.id.main_content);
+ Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.main_content);
if (fragment != null && fragment instanceof ConfirmLockPasswordFragment) {
((ConfirmLockPasswordFragment)fragment).onWindowFocusChanged(hasFocus);
}
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 9384236d204..6ca0916cd3a 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -36,6 +36,7 @@ import com.android.settings.utils.SettingsDividerItemDecoration;
import com.android.setupwizardlib.GlifPreferenceLayout;
import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
import androidx.recyclerview.widget.RecyclerView;
/**
@@ -55,7 +56,7 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
}
@Override
- /* package */ Class extends PreferenceFragment> getFragmentClass() {
+ /* package */ Class extends PreferenceFragmentCompat> getFragmentClass() {
return SetupChooseLockGenericFragment.class;
}
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index e05bea6cb0e..46293602f47 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -28,7 +28,6 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.print.PrintManager;
-import android.print.PrintServicesLoader;
import android.print.PrinterDiscoverySession;
import android.print.PrinterDiscoverySession.OnPrintersChangeListener;
import android.print.PrinterId;
diff --git a/src/com/android/settings/print/PrintServicesLoader.java b/src/com/android/settings/print/PrintServicesLoader.java
new file mode 100644
index 00000000000..57cddb9b167
--- /dev/null
+++ b/src/com/android/settings/print/PrintServicesLoader.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.print;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+import android.print.PrintManager;
+import android.printservice.PrintServiceInfo;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.List;
+
+import androidx.loader.content.Loader;
+
+/**
+ * Loader for the list of print services. Can be parametrized to select a subset.
+ *
+ */
+public class PrintServicesLoader extends Loader> {
+ /** What type of services to load. */
+ private final int mSelectionFlags;
+
+ /** The print manager to be used by this object */
+ private final @NonNull PrintManager mPrintManager;
+
+ /** Handler to sequentialize the delivery of the results to the main thread */
+ private final @NonNull Handler mHandler;
+
+ /** Listens for updates to the data from the platform */
+ private PrintManager.PrintServicesChangeListener mListener;
+
+ /**
+ * Create a new PrintServicesLoader.
+ *
+ * @param printManager The print manager supplying the data
+ * @param context Context of the using object
+ * @param selectionFlags What type of services to load.
+ */
+ public PrintServicesLoader(@NonNull PrintManager printManager, @NonNull Context context,
+ int selectionFlags) {
+ super(Preconditions.checkNotNull(context));
+ mHandler = new MyHandler();
+ mPrintManager = Preconditions.checkNotNull(printManager);
+ mSelectionFlags = Preconditions.checkFlagsArgument(selectionFlags,
+ PrintManager.ALL_SERVICES);
+ }
+
+ @Override
+ protected void onForceLoad() {
+ queueNewResult();
+ }
+
+ /**
+ * Read the print services and queue it to be delivered on the main thread.
+ */
+ private void queueNewResult() {
+ Message m = mHandler.obtainMessage(0);
+ m.obj = mPrintManager.getPrintServices(mSelectionFlags);
+ mHandler.sendMessage(m);
+ }
+
+ @Override
+ protected void onStartLoading() {
+ mListener = new PrintManager.PrintServicesChangeListener() {
+ @Override public void onPrintServicesChanged() {
+ queueNewResult();
+ }
+ };
+
+ mPrintManager.addPrintServicesChangeListener(mListener, null);
+
+ // Immediately deliver a result
+ deliverResult(mPrintManager.getPrintServices(mSelectionFlags));
+ }
+
+ @Override
+ protected void onStopLoading() {
+ if (mListener != null) {
+ mPrintManager.removePrintServicesChangeListener(mListener);
+ mListener = null;
+ }
+
+ mHandler.removeMessages(0);
+ }
+
+ @Override
+ protected void onReset() {
+ onStopLoading();
+ }
+
+ /**
+ * Handler to sequentialize all the updates to the main thread.
+ */
+ private class MyHandler extends Handler {
+ /**
+ * Create a new handler on the main thread.
+ */
+ public MyHandler() {
+ super(getContext().getMainLooper());
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (isStarted()) {
+ deliverResult((List) msg.obj);
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/print/PrintSettingsFragment.java b/src/com/android/settings/print/PrintSettingsFragment.java
index 844f9f19a6b..a6b3d7eea07 100644
--- a/src/com/android/settings/print/PrintSettingsFragment.java
+++ b/src/com/android/settings/print/PrintSettingsFragment.java
@@ -32,7 +32,6 @@ import android.print.PrintJobId;
import android.print.PrintJobInfo;
import android.print.PrintManager;
import android.print.PrintManager.PrintJobStateChangeListener;
-import android.print.PrintServicesLoader;
import android.printservice.PrintServiceInfo;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index a3bb2344cfa..2fcc0487e18 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -40,11 +40,11 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM
private final Fragment mHost;
public static void init(@NonNull ObservablePreferenceFragment host) {
- host.getLifecycle().addObserver(new SearchMenuController(host));
+ host.getSettingsLifecycle().addObserver(new SearchMenuController(host));
}
public static void init(@NonNull ObservableFragment host) {
- host.getLifecycle().addObserver(new SearchMenuController(host));
+ host.getSettingsLifecycle().addObserver(new SearchMenuController(host));
}
private SearchMenuController(@NonNull Fragment host) {
diff --git a/src/com/android/settings/security/EncryptionAndCredential.java b/src/com/android/settings/security/EncryptionAndCredential.java
index 90964864660..7f50c5dff29 100644
--- a/src/com/android/settings/security/EncryptionAndCredential.java
+++ b/src/com/android/settings/security/EncryptionAndCredential.java
@@ -56,7 +56,7 @@ public class EncryptionAndCredential extends DashboardFragment {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
@Override
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index eaaf51d9acc..e2147209eac 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -100,7 +100,7 @@ public class LockscreenDashboardFragment extends DashboardFragment
@Override
protected List createPreferenceControllers(Context context) {
final List controllers = new ArrayList<>();
- final Lifecycle lifecycle = getLifecycle();
+ final Lifecycle lifecycle = getSettingsLifecycle();
final LockScreenNotificationPreferenceController notificationController =
new LockScreenNotificationPreferenceController(context,
KEY_LOCK_SCREEN_NOTIFICATON,
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index ed6b4e921ca..effbd513e7f 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -79,7 +79,7 @@ public class SecuritySettings extends DashboardFragment {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle(), this /* host*/);
+ return buildPreferenceControllers(context, getSettingsLifecycle(), this /* host*/);
}
/**
diff --git a/src/com/android/settings/security/screenlock/ScreenLockSettings.java b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
index ec147d4fe25..abb4b333376 100644
--- a/src/com/android/settings/security/screenlock/ScreenLockSettings.java
+++ b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
@@ -65,7 +65,7 @@ public class ScreenLockSettings extends DashboardFragment
@Override
protected List createPreferenceControllers(Context context) {
mLockPatternUtils = new LockPatternUtils(context);
- return buildPreferenceControllers(context, this /* parent */, getLifecycle(),
+ return buildPreferenceControllers(context, this /* parent */, getSettingsLifecycle(),
mLockPatternUtils);
}
diff --git a/src/com/android/settings/support/actionbar/HelpMenuController.java b/src/com/android/settings/support/actionbar/HelpMenuController.java
index 8ea98aa8d66..3ac248c7167 100644
--- a/src/com/android/settings/support/actionbar/HelpMenuController.java
+++ b/src/com/android/settings/support/actionbar/HelpMenuController.java
@@ -40,11 +40,11 @@ public class HelpMenuController implements LifecycleObserver, OnCreateOptionsMen
private final Fragment mHost;
public static void init(@NonNull ObservablePreferenceFragment host) {
- host.getLifecycle().addObserver(new HelpMenuController(host));
+ host.getSettingsLifecycle().addObserver(new HelpMenuController(host));
}
public static void init(@NonNull ObservableFragment host) {
- host.getLifecycle().addObserver(new HelpMenuController(host));
+ host.getSettingsLifecycle().addObserver(new HelpMenuController(host));
}
private HelpMenuController(@NonNull Fragment host) {
diff --git a/src/com/android/settings/system/ResetDashboardFragment.java b/src/com/android/settings/system/ResetDashboardFragment.java
index 153177a4ac7..772f18b4f17 100644
--- a/src/com/android/settings/system/ResetDashboardFragment.java
+++ b/src/com/android/settings/system/ResetDashboardFragment.java
@@ -55,7 +55,7 @@ public class ResetDashboardFragment extends DashboardFragment {
@Override
protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getLifecycle());
+ return buildPreferenceControllers(context, getSettingsLifecycle());
}
private static List buildPreferenceControllers(Context context,
diff --git a/src/com/android/settings/users/MultiUserFooterPreferenceController.java b/src/com/android/settings/users/MultiUserFooterPreferenceController.java
index 877df581ee8..f42f1909d9c 100644
--- a/src/com/android/settings/users/MultiUserFooterPreferenceController.java
+++ b/src/com/android/settings/users/MultiUserFooterPreferenceController.java
@@ -21,7 +21,7 @@ import android.content.Context;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.widget.FooterPreference;
-import com.android.settingslib.widget.FooterPreferenceMixin;
+import com.android.settingslib.widget.FooterPreferenceMixinCompat;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
@@ -31,14 +31,15 @@ public class MultiUserFooterPreferenceController extends BasePreferenceControlle
@VisibleForTesting
final UserCapabilities mUserCaps;
- private FooterPreferenceMixin mFooterMixin;
+ private FooterPreferenceMixinCompat mFooterMixin;
public MultiUserFooterPreferenceController(Context context) {
super(context, "dummy_key");
mUserCaps = UserCapabilities.create(context);
}
- public MultiUserFooterPreferenceController setFooterMixin(FooterPreferenceMixin footerMixin) {
+ public MultiUserFooterPreferenceController setFooterMixin(
+ FooterPreferenceMixinCompat footerMixin) {
mFooterMixin = footerMixin;
return this;
}
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 931fdcf28c7..7d84d9903ba 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -216,7 +216,7 @@ public class UserSettings extends SettingsPreferenceFragment
final SwitchBar switchBar = activity.getSwitchBar();
mSwitchBarController = new MultiUserSwitchBarController(activity,
new SwitchBarController(switchBar), this /* listener */);
- getLifecycle().addObserver(mSwitchBarController);
+ getSettingsLifecycle().addObserver(mSwitchBarController);
switchBar.show();
}
diff --git a/src/com/android/settings/widget/UpdatableListPreferenceDialogFragment.java b/src/com/android/settings/widget/UpdatableListPreferenceDialogFragment.java
index 5877078f8e6..4d541928687 100644
--- a/src/com/android/settings/widget/UpdatableListPreferenceDialogFragment.java
+++ b/src/com/android/settings/widget/UpdatableListPreferenceDialogFragment.java
@@ -15,7 +15,6 @@
*/
package com.android.settings.widget;
-import android.app.AlertDialog;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.widget.ArrayAdapter;
@@ -25,14 +24,15 @@ import com.android.settingslib.core.instrumentation.Instrumentable;
import java.util.ArrayList;
import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AlertDialog.Builder;
import androidx.preference.ListPreference;
-import androidx.preference.PreferenceDialogFragment;
+import androidx.preference.PreferenceDialogFragmentCompat;
/**
- * {@link PreferenceDialogFragment} that updates the available options
+ * {@link PreferenceDialogFragmentCompat} that updates the available options
* when {@code onListPreferenceUpdated} is called."
*/
-public class UpdatableListPreferenceDialogFragment extends PreferenceDialogFragment implements
+public class UpdatableListPreferenceDialogFragment extends PreferenceDialogFragmentCompat implements
Instrumentable {
private static final String SAVE_STATE_INDEX = "UpdatableListPreferenceDialogFragment.index";
@@ -115,7 +115,7 @@ public class UpdatableListPreferenceDialogFragment extends PreferenceDialogFragm
}
@Override
- protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+ protected void onPrepareDialogBuilder(Builder builder) {
super.onPrepareDialogBuilder(builder);
final TypedArray a = getContext().obtainStyledAttributes(
null,
diff --git a/src/com/android/settings/widget/ValidatedEditTextPreference.java b/src/com/android/settings/widget/ValidatedEditTextPreference.java
index 35be5023be5..aec362fd4f0 100644
--- a/src/com/android/settings/widget/ValidatedEditTextPreference.java
+++ b/src/com/android/settings/widget/ValidatedEditTextPreference.java
@@ -27,7 +27,7 @@ import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
-import com.android.settingslib.CustomEditTextPreference;
+import com.android.settingslib.CustomEditTextPreferenceCompat;
import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceViewHolder;
@@ -35,7 +35,7 @@ import androidx.preference.PreferenceViewHolder;
/**
* {@code EditTextPreference} that supports input validation.
*/
-public class ValidatedEditTextPreference extends CustomEditTextPreference {
+public class ValidatedEditTextPreference extends CustomEditTextPreferenceCompat {
public interface Validator {
boolean isTextValid(String value);
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index e0e63cc3c8c..1d1c30c8d7a 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -76,15 +76,18 @@ public class ConfigureWifiSettings extends DashboardFragment {
protected List createPreferenceControllers(Context context) {
mWifiWakeupPreferenceController = new WifiWakeupPreferenceController(context, this);
mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this,
- getLifecycle());
+ getSettingsLifecycle());
final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
final List controllers = new ArrayList<>();
controllers.add(mWifiWakeupPreferenceController);
- controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));
+ controllers.add(new NotifyOpenNetworksPreferenceController(context,
+ getSettingsLifecycle()));
controllers.add(mUseOpenWifiPreferenceController);
- controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), wifiManager));
+ controllers.add(new WifiInfoPreferenceController(context, getSettingsLifecycle(),
+ wifiManager));
controllers.add(new CellularFallbackPreferenceController(context));
- controllers.add(new WifiP2pPreferenceController(context, getLifecycle(), wifiManager));
+ controllers.add(new WifiP2pPreferenceController(context, getSettingsLifecycle(),
+ wifiManager));
return controllers;
}
diff --git a/src/com/android/settings/wifi/WifiPickerActivity.java b/src/com/android/settings/wifi/WifiPickerActivity.java
index d035a807aca..ca392ce534d 100644
--- a/src/com/android/settings/wifi/WifiPickerActivity.java
+++ b/src/com/android/settings/wifi/WifiPickerActivity.java
@@ -22,6 +22,8 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.wifi.p2p.WifiP2pSettings;
+import androidx.preference.PreferenceFragmentCompat;
+
public class WifiPickerActivity extends SettingsActivity implements ButtonBarHandler {
@Override
@@ -44,7 +46,7 @@ public class WifiPickerActivity extends SettingsActivity implements ButtonBarHan
return false;
}
- /* package */ Class extends PreferenceFragment> getWifiSettingsClass() {
+ /* package */ Class extends PreferenceFragmentCompat> getWifiSettingsClass() {
return WifiSettings.class;
}
}
diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java
index 704c6fd6fe6..4742f63f208 100644
--- a/src/com/android/settings/wifi/WifiScanModeActivity.java
+++ b/src/com/android/settings/wifi/WifiScanModeActivity.java
@@ -16,7 +16,6 @@
package com.android.settings.wifi;
-import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
@@ -32,11 +31,12 @@ import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.FragmentActivity;
/**
* This activity requests users permission to allow scanning even when Wi-Fi is turned off
*/
-public class WifiScanModeActivity extends Activity {
+public class WifiScanModeActivity extends FragmentActivity {
private DialogFragment mDialog;
private String mApp;
@@ -67,7 +67,7 @@ public class WifiScanModeActivity extends Activity {
private void createDialog() {
if (mDialog == null) {
mDialog = AlertDialogFragment.newInstance(mApp);
- mDialog.show(getFragmentManager(), "dialog");
+ mDialog.show(getSupportFragmentManager(), "dialog");
}
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 5397eae6851..e5ff3d97b07 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -243,7 +243,7 @@ public class WifiSettings extends RestrictedSettingsFragment
super.onActivityCreated(savedInstanceState);
mWifiTracker = WifiTrackerFactory.create(
- getActivity(), this, getLifecycle(), true, true);
+ getActivity(), this, getSettingsLifecycle(), true, true);
mWifiManager = mWifiTracker.getManager();
final Activity activity = getActivity();
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java
index ec27bac2f65..5762b7be273 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java
@@ -38,7 +38,7 @@ import java.util.List;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
-import androidx.legacy.app.FragmentPagerAdapter;
+import androidx.fragment.app.FragmentPagerAdapter;
/**
* "Wi-Fi Calling settings" screen. This is the container fragment which holds
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index 34380359e63..d114e06a03b 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -128,7 +128,7 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
context,
this,
new Handler(Looper.getMainLooper()), // UI thread.
- getLifecycle(),
+ getSettingsLifecycle(),
context.getSystemService(WifiManager.class),
mMetricsFeatureProvider);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index b6db02ce931..16908d62a1a 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -110,7 +110,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
final SwitchBar switchBar = activity.getSwitchBar();
mSwitchBarController = new WifiTetherSwitchBarController(activity,
new SwitchBarController(switchBar));
- getLifecycle().addObserver(mSwitchBarController);
+ getSettingsLifecycle().addObserver(mSwitchBarController);
switchBar.show();
}