From 27c84de32575b1d118aae6e8fb0f353a4f873ec1 Mon Sep 17 00:00:00 2001 From: tmfang Date: Thu, 28 Jun 2018 11:39:05 +0800 Subject: [PATCH] Settings Fragment Migration (Build pass app) This patch focused on fixing compile errors and some runtime errors. Test: We can't test it now. But we will have an integration test later. Bug: 110259478 Change-Id: I16c471ddcd0fa1460c665b7f74d86fcace5ee67b --- proguard.flags | 2 +- res/values/themes.xml | 4 +- .../android/settings/BugreportPreference.java | 7 +- .../android/settings/CredentialStorage.java | 7 +- .../settings/CustomListPreference.java | 14 +- .../android/settings/DateTimeSettings.java | 2 +- src/com/android/settings/DisplaySettings.java | 2 +- .../android/settings/EditPinPreference.java | 10 +- src/com/android/settings/ProxySelector.java | 2 +- .../settings/RestrictedListPreference.java | 8 +- .../settings/SeekBarDialogPreference.java | 4 +- .../android/settings/SettingsActivity.java | 17 +- .../settings/SettingsHomepageActivity.java | 11 +- .../settings/SettingsLicenseActivity.java | 10 +- .../settings/SettingsPreferenceFragment.java | 18 +- src/com/android/settings/TetherSettings.java | 2 +- ...ibilitySettingsForSetupWizardActivity.java | 3 +- .../accessibility/ListDialogPreference.java | 9 +- .../ShortcutServicePickerFragment.java | 7 +- .../accounts/AccountDashboardFragment.java | 2 +- .../AccountDetailDashboardFragment.java | 2 +- .../AccountHeaderPreferenceController.java | 5 +- .../accounts/AccountSyncSettings.java | 2 +- .../accounts/AccountTypePreferenceLoader.java | 5 +- ...erpriseDisclosurePreferenceController.java | 6 +- .../settings/applications/AppInfoBase.java | 2 +- .../applications/AppInfoWithHeader.java | 2 +- .../applications/DirectoryAccessDetails.java | 2 +- .../FetchPackageStorageAsyncLoader.java | 4 +- .../applications/ProcessStatsDetail.java | 2 +- .../AppButtonsPreferenceController.java | 2 +- .../AppDataUsagePreferenceController.java | 6 +- .../appinfo/AppInfoDashboardFragment.java | 4 +- .../applications/assist/ManageAssist.java | 2 +- .../defaultapps/DefaultAppPickerFragment.java | 6 +- .../DomainAppPreferenceController.java | 2 +- .../DeviceAdminListPreferenceController.java | 6 +- .../premiumsms/PremiumSmsAccess.java | 2 +- .../backup/BackupSettingsActivity.java | 6 +- .../biometrics/BiometricsEnrollEnrolling.java | 11 +- .../biometrics/face/FaceEnrollEnrolling.java | 4 +- .../FingerprintEnrollEnrolling.java | 4 +- .../FingerprintEnrollFindSensor.java | 7 +- .../SetupFingerprintEnrollFindSensor.java | 2 +- .../BluetoothDetailsButtonsController.java | 3 +- .../bluetooth/BluetoothDetailsController.java | 5 +- .../BluetoothDetailsHeaderController.java | 3 +- .../BluetoothDetailsMacAddressController.java | 9 +- .../BluetoothDetailsProfilesController.java | 3 +- .../BluetoothDeviceDetailsFragment.java | 2 +- .../bluetooth/BluetoothPairingDialog.java | 9 +- ...ancedConnectedDeviceDashboardFragment.java | 2 +- .../BluetoothDashboardFragment.java | 2 +- .../ConnectedDeviceDashboardFragment.java | 2 +- ...iscoverableFooterPreferenceController.java | 9 +- .../usb/UsbDefaultFragment.java | 5 +- .../usb/UsbDetailsFragment.java | 2 +- .../settings/core/InstrumentedActivity.java | 2 +- .../settings/core/InstrumentedFragment.java | 4 +- .../core/InstrumentedPreferenceFragment.java | 4 +- .../settings/dashboard/DashboardAdapter.java | 4 +- .../settings/dashboard/DashboardFragment.java | 2 +- .../settings/dashboard/DashboardSummary.java | 22 +- .../suggestions/SuggestionAdapter.java | 9 +- .../SuggestionFeatureProvider.java | 4 +- .../SuggestionFeatureProviderImpl.java | 4 +- .../settings/datausage/AppDataUsage.java | 8 +- .../settings/datausage/AppPrefLoader.java | 4 +- .../datausage/CellDataPreference.java | 12 +- .../settings/datausage/DataSaverSummary.java | 2 +- .../settings/datausage/DataUsageList.java | 12 +- .../settings/datausage/DataUsageSummary.java | 4 +- .../datausage/UnrestrictedDataAccess.java | 2 +- .../timezone/model/TimeZoneDataLoader.java | 4 +- .../BluetoothA2dpHwOffloadRebootDialog.java | 2 +- .../ClearAdbKeysWarningDialog.java | 2 +- .../DevelopmentSettingsDashboardFragment.java | 7 +- .../DisableLogPersistWarningDialog.java | 2 +- .../development/EnableAdbWarningDialog.java | 2 +- ...EnableDevelopmentSettingWarningDialog.java | 2 +- .../EnableOemUnlockSettingWarningDialog.java | 2 +- ...FeatureFlagFooterPreferenceController.java | 6 +- .../featureflags/FeatureFlagsDashboard.java | 2 +- .../deviceinfo/PrivateVolumeSettings.java | 2 +- .../deviceinfo/StorageDashboardFragment.java | 4 +- .../deviceinfo/StorageWizardBase.java | 5 +- .../StorageWizardFormatConfirm.java | 14 +- .../StorageWizardFormatProgress.java | 7 +- .../aboutphone/DeviceNameWarningDialog.java | 2 +- .../aboutphone/MyDeviceInfoFragment.java | 4 +- .../storage/StorageAsyncLoader.java | 4 +- .../deviceinfo/storage/UserIconLoader.java | 4 +- .../deviceinfo/storage/VolumeSizesLoader.java | 4 +- .../settings/display/DensityPreference.java | 4 +- .../display/TimeoutListPreference.java | 6 +- .../fuelgauge/AdvancedPowerUsageDetail.java | 4 +- .../BatteryHeaderPreferenceController.java | 5 +- .../settings/fuelgauge/BatteryInfoLoader.java | 4 +- .../fuelgauge/BatteryStatsHelperLoader.java | 4 +- .../fuelgauge/DebugEstimatesLoader.java | 4 +- .../fuelgauge/PowerUsageAdvanced.java | 2 +- .../settings/fuelgauge/PowerUsageSummary.java | 2 +- .../fuelgauge/RestrictedAppDetails.java | 6 +- .../fuelgauge/anomaly/AnomalyLoader.java | 4 +- .../batterysaver/BatterySaverSettings.java | 2 +- .../batterytip/BatteryTipLoader.java | 4 +- .../gestures/AssistGestureSettings.java | 2 +- .../AvailableVirtualKeyboardFragment.java | 6 +- ...tMethodAndSubtypePreferenceController.java | 11 +- .../KeyboardLayoutDialogFragment.java | 2 +- .../inputmethod/PhysicalKeyboardFragment.java | 2 +- .../inputmethod/SpellCheckerPreference.java | 2 +- .../SpellCheckerPreferenceController.java | 4 +- .../UserDictionaryCursorLoader.java | 2 +- .../inputmethod/VirtualKeyboardFragment.java | 4 +- .../language/LanguageAndInputSettings.java | 2 +- .../localepicker/LocaleListEditor.java | 1 - .../localepicker/LocalePickerWithRegion.java | 278 ++++++++++++++++++ .../settings/location/LocationSettings.java | 5 +- .../RecentLocationRequestSeeAllFragment.java | 2 +- .../network/NetworkDashboardFragment.java | 5 +- .../PrivateDnsModeDialogPreference.java | 4 +- .../settings/nfc/NfcPaymentPreference.java | 10 +- .../nfc/NfcPaymentPreferenceController.java | 4 +- .../ConfigureNotificationSettings.java | 4 +- .../HeaderPreferenceController.java | 5 +- .../NotificationLockscreenPreference.java | 4 +- .../NotificationSettingsBase.java | 2 +- .../settings/notification/SoundSettings.java | 6 +- ...tomaticRuleHeaderPreferenceController.java | 7 +- .../ZenModeAutomationSettings.java | 2 +- .../ZenModeBlockedEffectsSettings.java | 2 +- .../notification/ZenModeCallsSettings.java | 2 +- .../ZenModeEventRuleSettings.java | 5 +- .../ZenModeMsgEventReminderSettings.java | 2 +- .../ZenModeRestrictNotificationsSettings.java | 2 +- .../ZenModeScheduleRuleSettings.java | 5 +- .../notification/ZenModeSettings.java | 2 +- .../ZenModeSoundVibrationSettings.java | 2 +- .../ChooseLockTypeDialogFragment.java | 5 +- .../ConfirmDeviceCredentialBaseActivity.java | 2 +- .../password/ConfirmLockPassword.java | 2 +- .../password/SetupChooseLockGeneric.java | 3 +- .../print/PrintServiceSettingsFragment.java | 1 - .../settings/print/PrintServicesLoader.java | 126 ++++++++ .../settings/print/PrintSettingsFragment.java | 1 - .../actionbar/SearchMenuController.java | 4 +- .../security/EncryptionAndCredential.java | 2 +- .../security/LockscreenDashboardFragment.java | 2 +- .../settings/security/SecuritySettings.java | 2 +- .../screenlock/ScreenLockSettings.java | 2 +- .../support/actionbar/HelpMenuController.java | 4 +- .../system/ResetDashboardFragment.java | 2 +- .../MultiUserFooterPreferenceController.java | 7 +- .../android/settings/users/UserSettings.java | 2 +- ...UpdatableListPreferenceDialogFragment.java | 10 +- .../widget/ValidatedEditTextPreference.java | 4 +- .../settings/wifi/ConfigureWifiSettings.java | 11 +- .../settings/wifi/WifiPickerActivity.java | 4 +- .../settings/wifi/WifiScanModeActivity.java | 6 +- .../android/settings/wifi/WifiSettings.java | 2 +- .../wifi/calling/WifiCallingSettings.java | 2 +- .../details/WifiNetworkDetailsFragment.java | 2 +- .../wifi/tether/WifiTetherSettings.java | 2 +- 164 files changed, 792 insertions(+), 340 deletions(-) create mode 100644 src/com/android/settings/localepicker/LocalePickerWithRegion.java create mode 100644 src/com/android/settings/print/PrintServicesLoader.java diff --git a/proguard.flags b/proguard.flags index 75923704db7..298058d3b34 100644 --- a/proguard.flags +++ b/proguard.flags @@ -6,7 +6,7 @@ -keepattributes Exceptions # Keep all Fragments in this package, which are used by reflection. --keep public class com.android.settings.** extends android.app.Fragment +-keep public class com.android.settings.** extends androidx.fragment.app.Fragment # Keep all preference controllers needed by slice and DashboardFragment. -keep class * extends com.android.settings.core.BasePreferenceController { diff --git a/res/values/themes.xml b/res/values/themes.xml index 53aa026c18c..991bf47432e 100644 --- a/res/values/themes.xml +++ b/res/values/themes.xml @@ -239,8 +239,8 @@ @drawable/preference_background - - @style/Theme.AlertDialog + + @style/Theme.AppCompat.Light.Dialog.Alert @style/LockPatternStyle.Setup diff --git a/src/com/android/settings/BugreportPreference.java b/src/com/android/settings/BugreportPreference.java index 6371e3a57b2..d2b5ec1df1d 100644 --- a/src/com/android/settings/BugreportPreference.java +++ b/src/com/android/settings/BugreportPreference.java @@ -17,7 +17,6 @@ package com.android.settings; import android.app.ActivityManager; -import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.os.RemoteException; @@ -29,9 +28,11 @@ import android.widget.TextView; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.overlay.FeatureFactory; -import com.android.settingslib.CustomDialogPreference; +import com.android.settingslib.CustomDialogPreferenceCompat; -public class BugreportPreference extends CustomDialogPreference { +import androidx.appcompat.app.AlertDialog.Builder; + +public class BugreportPreference extends CustomDialogPreferenceCompat { private static final String TAG = "BugreportPreference"; diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java index 4bcf656ec42..7b39e4f7bf0 100644 --- a/src/com/android/settings/CredentialStorage.java +++ b/src/com/android/settings/CredentialStorage.java @@ -49,6 +49,7 @@ import com.android.settings.vpn2.VpnUtils; import java.io.ByteArrayInputStream; import java.io.IOException; +import androidx.fragment.app.FragmentActivity; import sun.security.util.ObjectIdentifier; import sun.security.x509.AlgorithmId; @@ -88,7 +89,7 @@ import sun.security.x509.AlgorithmId; * Action: normal unlock/install * Notes: this is the common case */ -public final class CredentialStorage extends Activity { +public final class CredentialStorage extends FragmentActivity { private static final String TAG = "CredentialStorage"; @@ -160,7 +161,7 @@ public final class CredentialStorage extends Activity { case UNLOCKED: { if (isActivePasswordQualityInsufficient()) { final ConfigureKeyGuardDialog dialog = new ConfigureKeyGuardDialog(); - dialog.show(getFragmentManager(), ConfigureKeyGuardDialog.TAG); + dialog.show(getSupportFragmentManager(), ConfigureKeyGuardDialog.TAG); return; } installIfAvailable(); @@ -180,7 +181,7 @@ public final class CredentialStorage extends Activity { if (isActivePasswordQualityInsufficient()) { // key guard not setup, doing so will initialize keystore final ConfigureKeyGuardDialog dialog = new ConfigureKeyGuardDialog(); - dialog.show(getFragmentManager(), ConfigureKeyGuardDialog.TAG); + dialog.show(getSupportFragmentManager(), ConfigureKeyGuardDialog.TAG); // will return to onResume after Activity return; } diff --git a/src/com/android/settings/CustomListPreference.java b/src/com/android/settings/CustomListPreference.java index 9047752e054..8838c10a416 100644 --- a/src/com/android/settings/CustomListPreference.java +++ b/src/com/android/settings/CustomListPreference.java @@ -28,9 +28,11 @@ import android.util.AttributeSet; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import androidx.appcompat.app.AlertDialog.Builder; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; import androidx.preference.ListPreference; +import androidx.preference.ListPreferenceDialogFragmentCompat; public class CustomListPreference extends ListPreference { @@ -43,7 +45,7 @@ public class CustomListPreference extends ListPreference { super(context, attrs, defStyleAttr, defStyleRes); } - protected void onPrepareDialogBuilder(AlertDialog.Builder builder, + protected void onPrepareDialogBuilder(Builder builder, DialogInterface.OnClickListener listener) { } @@ -72,15 +74,17 @@ public class CustomListPreference extends ListPreference { protected void onDialogStateRestored(Dialog dialog, Bundle savedInstanceState) { } - public static class CustomListPreferenceDialogFragment extends ListPreferenceDialogFragment { + public static class CustomListPreferenceDialogFragment extends + ListPreferenceDialogFragmentCompat { private static final java.lang.String KEY_CLICKED_ENTRY_INDEX = "settings.CustomListPrefDialog.KEY_CLICKED_ENTRY_INDEX"; private int mClickedDialogEntryIndex; - public static ListPreferenceDialogFragment newInstance(String key) { - final ListPreferenceDialogFragment fragment = new CustomListPreferenceDialogFragment(); + public static ListPreferenceDialogFragmentCompat newInstance(String key) { + final ListPreferenceDialogFragmentCompat fragment = + new CustomListPreferenceDialogFragment(); final Bundle b = new Bundle(1); b.putString(ARG_KEY, key); fragment.setArguments(b); @@ -92,7 +96,7 @@ public class CustomListPreference extends ListPreference { } @Override - protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { + protected void onPrepareDialogBuilder(Builder builder) { super.onPrepareDialogBuilder(builder); mClickedDialogEntryIndex = getCustomizablePreference() .findIndexOfValue(getCustomizablePreference().getValue()); diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java index 16c6ff5bcf4..bf4299bc7c0 100644 --- a/src/com/android/settings/DateTimeSettings.java +++ b/src/com/android/settings/DateTimeSettings.java @@ -71,7 +71,7 @@ public class DateTimeSettings extends DashboardFragment implements @Override public void onAttach(Context context) { super.onAttach(context); - getLifecycle().addObserver(new TimeChangeListenerMixin(context, this)); + getSettingsLifecycle().addObserver(new TimeChangeListenerMixin(context, this)); } @Override diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index ea9267ac843..236c7db3830 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -69,7 +69,7 @@ public class DisplaySettings extends DashboardFragment { @Override protected List createPreferenceControllers(Context context) { - return buildPreferenceControllers(context, getLifecycle()); + return buildPreferenceControllers(context, getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/EditPinPreference.java b/src/com/android/settings/EditPinPreference.java index 4efed4a30d9..611f520b4ac 100644 --- a/src/com/android/settings/EditPinPreference.java +++ b/src/com/android/settings/EditPinPreference.java @@ -23,19 +23,19 @@ import android.util.AttributeSet; import android.view.View; import android.widget.EditText; -import com.android.settingslib.CustomEditTextPreference; +import com.android.settingslib.CustomEditTextPreferenceCompat; /** * TODO: Add a soft dialpad for PIN entry. */ -class EditPinPreference extends CustomEditTextPreference { +class EditPinPreference extends CustomEditTextPreferenceCompat { interface OnPinEnteredListener { void onPinEntered(EditPinPreference preference, boolean positiveResult); } - + private OnPinEnteredListener mPinListener; - + public EditPinPreference(Context context, AttributeSet attrs) { super(context, attrs); } @@ -43,7 +43,7 @@ class EditPinPreference extends CustomEditTextPreference { public EditPinPreference(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } - + public void setOnPinEnteredListener(OnPinEnteredListener listener) { mPinListener = listener; } diff --git a/src/com/android/settings/ProxySelector.java b/src/com/android/settings/ProxySelector.java index 79767fb7aa3..1c51a98f6a1 100644 --- a/src/com/android/settings/ProxySelector.java +++ b/src/com/android/settings/ProxySelector.java @@ -113,7 +113,7 @@ public class ProxySelector extends InstrumentedFragment implements DialogCreatab Log.e(TAG, "Old dialog fragment not null!"); } mDialogFragment = new SettingsDialogFragment(this, dialogId); - mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId)); + mDialogFragment.show(getActivity().getSupportFragmentManager(), Integer.toString(dialogId)); } private void initView(View view) { diff --git a/src/com/android/settings/RestrictedListPreference.java b/src/com/android/settings/RestrictedListPreference.java index 7e4c456ff88..a5d241c9849 100644 --- a/src/com/android/settings/RestrictedListPreference.java +++ b/src/com/android/settings/RestrictedListPreference.java @@ -41,6 +41,8 @@ import com.android.settingslib.RestrictedPreferenceHelper; import java.util.ArrayList; import java.util.List; +import androidx.appcompat.app.AlertDialog.Builder; +import androidx.preference.ListPreferenceDialogFragmentCompat; import androidx.preference.PreferenceViewHolder; public class RestrictedListPreference extends CustomListPreference { @@ -168,7 +170,7 @@ public class RestrictedListPreference extends CustomListPreference { } @Override - protected void onPrepareDialogBuilder(AlertDialog.Builder builder, + protected void onPrepareDialogBuilder(Builder builder, DialogInterface.OnClickListener listener) { builder.setAdapter(createListAdapter(), listener); } @@ -218,8 +220,8 @@ public class RestrictedListPreference extends CustomListPreference { CustomListPreference.CustomListPreferenceDialogFragment { private int mLastCheckedPosition = AdapterView.INVALID_POSITION; - public static ListPreferenceDialogFragment newInstance(String key) { - final ListPreferenceDialogFragment fragment + public static ListPreferenceDialogFragmentCompat newInstance(String key) { + final ListPreferenceDialogFragmentCompat fragment = new RestrictedListPreferenceDialogFragment(); final Bundle b = new Bundle(1); b.putString(ARG_KEY, key); diff --git a/src/com/android/settings/SeekBarDialogPreference.java b/src/com/android/settings/SeekBarDialogPreference.java index 507c551caa5..d0c8134176b 100644 --- a/src/com/android/settings/SeekBarDialogPreference.java +++ b/src/com/android/settings/SeekBarDialogPreference.java @@ -23,13 +23,13 @@ import android.view.View; import android.widget.ImageView; import android.widget.SeekBar; -import com.android.settingslib.CustomDialogPreference; +import com.android.settingslib.CustomDialogPreferenceCompat; /** * Based on frameworks/base/core/java/android/preference/SeekBarDialogPreference.java * except uses support lib preferences. */ -public class SeekBarDialogPreference extends CustomDialogPreference { +public class SeekBarDialogPreference extends CustomDialogPreferenceCompat { private final Drawable mMyIcon; public SeekBarDialogPreference(Context context, AttributeSet attrs) { diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 7513e4391d0..cafe5cf9472 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -70,13 +70,13 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.Preference; -import androidx.preference.PreferenceFragment; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceManager; public class SettingsActivity extends SettingsBaseActivity implements PreferenceManager.OnPreferenceTreeClickListener, - PreferenceFragment.OnPreferenceStartFragmentCallback, + PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, ButtonBarHandler, FragmentManager.OnBackStackChangedListener { private static final String LOG_TAG = "SettingsActivity"; @@ -190,7 +190,7 @@ public class SettingsActivity extends SettingsBaseActivity } @Override - public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) { + public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) { new SubSettingLauncher(this) .setDestination(pref.getFragment()) .setArguments(pref.getExtras()) @@ -270,7 +270,7 @@ public class SettingsActivity extends SettingsBaseActivity mContent = findViewById(R.id.main_content); - getFragmentManager().addOnBackStackChangedListener(this); + getSupportFragmentManager().addOnBackStackChangedListener(this); if (savedState != null) { // We are restarting from a previous saved state; used that to initialize, instead @@ -430,7 +430,7 @@ public class SettingsActivity extends SettingsBaseActivity } private void setTitleFromBackStack() { - final int count = getFragmentManager().getBackStackEntryCount(); + final int count = getSupportFragmentManager().getBackStackEntryCount(); if (count == 0) { if (mInitialTitleResId > 0) { @@ -441,7 +441,8 @@ public class SettingsActivity extends SettingsBaseActivity return; } - FragmentManager.BackStackEntry bse = getFragmentManager().getBackStackEntryAt(count - 1); + FragmentManager.BackStackEntry bse = getSupportFragmentManager(). + getBackStackEntryAt(count - 1); setTitleFromBackStackEntry(bse); } @@ -581,7 +582,7 @@ public class SettingsActivity extends SettingsBaseActivity + fragmentName); } Fragment f = Fragment.instantiate(this, fragmentName, args); - FragmentTransaction transaction = getFragmentManager().beginTransaction(); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.main_content, f); if (withTransition) { TransitionManager.beginDelayedTransition(mContent); @@ -595,7 +596,7 @@ public class SettingsActivity extends SettingsBaseActivity transaction.setBreadCrumbTitle(title); } transaction.commitAllowingStateLoss(); - getFragmentManager().executePendingTransactions(); + getSupportFragmentManager().executePendingTransactions(); Log.d(LOG_TAG, "Executed frag manager pendingTransactions"); return f; } diff --git a/src/com/android/settings/SettingsHomepageActivity.java b/src/com/android/settings/SettingsHomepageActivity.java index eed3a7f4c21..6eef99c6d1b 100644 --- a/src/com/android/settings/SettingsHomepageActivity.java +++ b/src/com/android/settings/SettingsHomepageActivity.java @@ -16,9 +16,6 @@ package com.android.settings; -import android.app.Activity; -import android.app.Fragment; -import android.app.FragmentManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; @@ -28,6 +25,10 @@ import com.android.settings.core.FeatureFlags; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.homepage.HomepageFragment; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; + public class SettingsHomepageActivity extends SettingsBaseActivity { @Override @@ -51,10 +52,10 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { /** * Switch to a specific Fragment */ - public static void switchToFragment(Activity activity, int id, String fragmentName) { + public static void switchToFragment(FragmentActivity activity, int id, String fragmentName) { final Fragment f = Fragment.instantiate(activity, fragmentName, null /* args */); - FragmentManager manager = activity.getFragmentManager(); + FragmentManager manager = activity.getSupportFragmentManager(); manager.beginTransaction().replace(id, f).commitAllowingStateLoss(); manager.executePendingTransactions(); } diff --git a/src/com/android/settings/SettingsLicenseActivity.java b/src/com/android/settings/SettingsLicenseActivity.java index d3c3b48bd79..c1bf9e5e7cb 100644 --- a/src/com/android/settings/SettingsLicenseActivity.java +++ b/src/com/android/settings/SettingsLicenseActivity.java @@ -16,7 +16,6 @@ package com.android.settings; -import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ContentResolver; import android.content.Intent; @@ -28,19 +27,20 @@ import android.util.Log; import android.widget.Toast; import com.android.settings.users.RestrictedProfileSettings; -import com.android.settingslib.license.LicenseHtmlLoader; +import com.android.settingslib.license.LicenseHtmlLoaderCompat; import java.io.File; import androidx.annotation.VisibleForTesting; import androidx.core.content.FileProvider; +import androidx.fragment.app.FragmentActivity; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; /** * The "dialog" that shows from "License" in the Settings app. */ -public class SettingsLicenseActivity extends Activity implements +public class SettingsLicenseActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks { private static final String TAG = "SettingsLicenseActivity"; @@ -64,7 +64,7 @@ public class SettingsLicenseActivity extends Activity implements @Override public Loader onCreateLoader(int id, Bundle args) { - return new LicenseHtmlLoader(this); + return new LicenseHtmlLoaderCompat(this); } @Override @@ -77,7 +77,7 @@ public class SettingsLicenseActivity extends Activity implements } private void showHtmlFromDefaultXmlFiles() { - getLoaderManager().initLoader(LOADER_ID_LICENSE_HTML_LOADER, Bundle.EMPTY, this); + getSupportLoaderManager().initLoader(LOADER_ID_LICENSE_HTML_LOADER, Bundle.EMPTY, this); } @VisibleForTesting diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 74b14050e1e..7ad18fe4738 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -41,10 +41,10 @@ import com.android.settings.support.actionbar.HelpMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.widget.HighlightablePreferenceGroupAdapter; import com.android.settings.widget.LoadingViewController; -import com.android.settingslib.CustomDialogPreference; -import com.android.settingslib.CustomEditTextPreference; +import com.android.settingslib.CustomDialogPreferenceCompat; +import com.android.settingslib.CustomEditTextPreferenceCompat; import com.android.settingslib.core.instrumentation.Instrumentable; -import com.android.settingslib.widget.FooterPreferenceMixin; +import com.android.settingslib.widget.FooterPreferenceMixinCompat; import java.util.UUID; @@ -68,8 +68,8 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF private static final String SAVE_HIGHLIGHTED_KEY = "android:preference_highlighted"; - protected final FooterPreferenceMixin mFooterPreferenceMixin = - new FooterPreferenceMixin(this, getLifecycle()); + protected final FooterPreferenceMixinCompat mFooterPreferenceMixin = + new FooterPreferenceMixinCompat(this, getSettingsLifecycle()); private static final int ORDER_FIRST = -1; @@ -517,11 +517,11 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF } else if (preference instanceof CustomListPreference) { f = CustomListPreference.CustomListPreferenceDialogFragment .newInstance(preference.getKey()); - } else if (preference instanceof CustomDialogPreference) { - f = CustomDialogPreference.CustomPreferenceDialogFragment + } else if (preference instanceof CustomDialogPreferenceCompat) { + f = CustomDialogPreferenceCompat.CustomPreferenceDialogFragment .newInstance(preference.getKey()); - } else if (preference instanceof CustomEditTextPreference) { - f = CustomEditTextPreference.CustomPreferenceDialogFragment + } else if (preference instanceof CustomEditTextPreferenceCompat) { + f = CustomEditTextPreferenceCompat.CustomPreferenceDialogFragment .newInstance(preference.getKey()); } else { super.onDisplayPreferenceDialog(preference); diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index b703e4df58b..9515a1368cf 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -112,7 +112,7 @@ public class TetherSettings extends RestrictedSettingsFragment public void onAttach(Context context) { super.onAttach(context); mWifiTetherPreferenceController = - new WifiTetherPreferenceController(context, getLifecycle()); + new WifiTetherPreferenceController(context, getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java index 1d5f8f478ca..1b8e554dff4 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java +++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java @@ -27,6 +27,7 @@ import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settingslib.core.instrumentation.Instrumentable; import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity { @@ -70,7 +71,7 @@ public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivit } @Override - public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) { + public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) { Bundle args = pref.getExtras(); if (args == null) { args = new Bundle(); diff --git a/src/com/android/settings/accessibility/ListDialogPreference.java b/src/com/android/settings/accessibility/ListDialogPreference.java index cfb77bb3ea4..8a09512344f 100644 --- a/src/com/android/settings/accessibility/ListDialogPreference.java +++ b/src/com/android/settings/accessibility/ListDialogPreference.java @@ -16,7 +16,6 @@ package com.android.settings.accessibility; -import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; @@ -31,12 +30,14 @@ import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; -import com.android.settingslib.CustomDialogPreference; +import com.android.settingslib.CustomDialogPreferenceCompat; + +import androidx.appcompat.app.AlertDialog.Builder; /** * Abstract dialog preference that displays a set of values and optional titles. */ -public abstract class ListDialogPreference extends CustomDialogPreference { +public abstract class ListDialogPreference extends CustomDialogPreferenceCompat { private CharSequence[] mEntryTitles; private int[] mEntryValues; @@ -138,7 +139,7 @@ public abstract class ListDialogPreference 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/accessibility/ShortcutServicePickerFragment.java b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java index bca6195dfb8..08a62697279 100644 --- a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java +++ b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java @@ -22,7 +22,6 @@ import static com.android.internal.accessibility.AccessibilityShortcutController .DALTONIZER_COMPONENT_NAME; import android.accessibilityservice.AccessibilityServiceInfo; -import android.app.Activity; import android.app.Dialog; import android.content.ComponentName; import android.content.Context; @@ -55,6 +54,7 @@ import java.util.List; import java.util.Map; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; /** * Fragment for picking accessibility shortcut service @@ -135,10 +135,11 @@ public class ShortcutServicePickerFragment extends RadioButtonPickerFragment { // This is a framework feature. It doesn't need to be confirmed. onRadioButtonConfirmed(selectedKey); } else { - final Activity activity = getActivity(); + final FragmentActivity activity = getActivity(); if (activity != null) { ConfirmationDialogFragment.newInstance(this, selectedKey) - .show(activity.getFragmentManager(), ConfirmationDialogFragment.TAG); + .show(activity.getSupportFragmentManager(), + ConfirmationDialogFragment.TAG); } } } diff --git a/src/com/android/settings/accounts/AccountDashboardFragment.java b/src/com/android/settings/accounts/AccountDashboardFragment.java index fd15f4e4ab5..d8b1008111a 100644 --- a/src/com/android/settings/accounts/AccountDashboardFragment.java +++ b/src/com/android/settings/accounts/AccountDashboardFragment.java @@ -80,7 +80,7 @@ public class AccountDashboardFragment extends DashboardFragment { final AccountPreferenceController accountPrefController = new AccountPreferenceController(context, parent, authorities); if (parent != null) { - parent.getLifecycle().addObserver(accountPrefController); + parent.getSettingsLifecycle().addObserver(accountPrefController); } controllers.add(accountPrefController); controllers.add(new AutoSyncDataPreferenceController(context, parent)); diff --git a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java index 56d8763add1..709066aac67 100644 --- a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java +++ b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java @@ -117,7 +117,7 @@ public class AccountDetailDashboardFragment extends DashboardFragment { mRemoveAccountController = new RemoveAccountPreferenceController(context, this); controllers.add(mRemoveAccountController); controllers.add(new AccountHeaderPreferenceController( - context, getLifecycle(), getActivity(), this /* host */, getArguments())); + context, getSettingsLifecycle(), getActivity(), this /* host */, getArguments())); return controllers; } diff --git a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java index 54b042c70f4..25a902e44a5 100644 --- a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java +++ b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java @@ -35,6 +35,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnResume; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; public class AccountHeaderPreferenceController extends AbstractPreferenceController @@ -43,14 +44,14 @@ public class AccountHeaderPreferenceController extends AbstractPreferenceControl private static final String KEY_ACCOUNT_HEADER = "account_header"; private final Activity mActivity; - private final PreferenceFragment mHost; + private final PreferenceFragmentCompat mHost; private final Account mAccount; private final UserHandle mUserHandle; private LayoutPreference mHeaderPreference; public AccountHeaderPreferenceController(Context context, Lifecycle lifecycle, - Activity activity, PreferenceFragment host, Bundle args) { + Activity activity, PreferenceFragmentCompat host, Bundle args) { super(context); mActivity = activity; mHost = host; diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java index 66e8d2205c0..f90c3c68991 100644 --- a/src/com/android/settings/accounts/AccountSyncSettings.java +++ b/src/com/android/settings/accounts/AccountSyncSettings.java @@ -122,7 +122,7 @@ public class AccountSyncSettings extends AccountPreferenceBase { final Activity activity = getActivity(); final Preference pref = EntityHeaderController .newInstance(activity, this, null /* header */) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setIcon(getDrawableForType(mAccount.type)) .setLabel(mAccount.name) .setSummary(getLabelForType(mAccount.type)) diff --git a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java index 4598f769ecd..90bcb5e0ebc 100644 --- a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java +++ b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java @@ -41,6 +41,7 @@ import com.android.settingslib.core.instrumentation.Instrumentable; import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceClickListener; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; @@ -60,9 +61,9 @@ public class AccountTypePreferenceLoader { private AuthenticatorHelper mAuthenticatorHelper; private UserHandle mUserHandle; - private PreferenceFragment mFragment; + private PreferenceFragmentCompat mFragment; - public AccountTypePreferenceLoader(PreferenceFragment fragment, + public AccountTypePreferenceLoader(PreferenceFragmentCompat fragment, AuthenticatorHelper authenticatorHelper, UserHandle userHandle) { mFragment = fragment; mAuthenticatorHelper = authenticatorHelper; diff --git a/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java b/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java index 4fb8cf88470..aad1172ce12 100644 --- a/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java +++ b/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java @@ -22,7 +22,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider; import com.android.settings.overlay.FeatureFactory; 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.PreferenceScreen; @@ -30,7 +30,7 @@ import androidx.preference.PreferenceScreen; public class EnterpriseDisclosurePreferenceController extends BasePreferenceController { private final EnterprisePrivacyFeatureProvider mFeatureProvider; - private FooterPreferenceMixin mFooterPreferenceMixin; + private FooterPreferenceMixinCompat mFooterPreferenceMixin; private PreferenceScreen mScreen; public EnterpriseDisclosurePreferenceController(Context context) { @@ -41,7 +41,7 @@ public class EnterpriseDisclosurePreferenceController extends BasePreferenceCont .getEnterprisePrivacyFeatureProvider(mContext); } - public void setFooterPreferenceMixin(FooterPreferenceMixin footerPreferenceMixin) { + public void setFooterPreferenceMixin(FooterPreferenceMixinCompat footerPreferenceMixin) { mFooterPreferenceMixin = footerPreferenceMixin; } diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java index f5a34b12ae7..4ee2fd8e56e 100644 --- a/src/com/android/settings/applications/AppInfoBase.java +++ b/src/com/android/settings/applications/AppInfoBase.java @@ -93,7 +93,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment mApplicationFeatureProvider = FeatureFactory.getFactory(activity) .getApplicationFeatureProvider(activity); mState = ApplicationsState.getInstance(activity.getApplication()); - mSession = mState.newSession(this, getLifecycle()); + mSession = mState.newSession(this, getSettingsLifecycle()); mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE); mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE); mPm = activity.getPackageManager(); diff --git a/src/com/android/settings/applications/AppInfoWithHeader.java b/src/com/android/settings/applications/AppInfoWithHeader.java index 9b6b7080784..2a4aeb88cbd 100644 --- a/src/com/android/settings/applications/AppInfoWithHeader.java +++ b/src/com/android/settings/applications/AppInfoWithHeader.java @@ -44,7 +44,7 @@ public abstract class AppInfoWithHeader extends AppInfoBase { final Activity activity = getActivity(); final Preference pref = EntityHeaderController .newInstance(activity, this, null /* header */) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setIcon(IconDrawableFactory.newInstance(getContext()) .getBadgedIcon(mPackageInfo.applicationInfo)) .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm)) diff --git a/src/com/android/settings/applications/DirectoryAccessDetails.java b/src/com/android/settings/applications/DirectoryAccessDetails.java index 970a06d6a16..02c33c060ef 100644 --- a/src/com/android/settings/applications/DirectoryAccessDetails.java +++ b/src/com/android/settings/applications/DirectoryAccessDetails.java @@ -99,7 +99,7 @@ public class DirectoryAccessDetails extends AppInfoBase { final Activity activity = getActivity(); final Preference pref = EntityHeaderController .newInstance(activity, this, /* header= */ null ) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setIcon(IconDrawableFactory.newInstance(getPrefContext()) .getBadgedIcon(mPackageInfo.applicationInfo)) .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm)) diff --git a/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java b/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java index 9ff96c1f0b6..f3ad32655c6 100644 --- a/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java +++ b/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java @@ -26,14 +26,14 @@ import android.util.Log; import com.android.internal.util.Preconditions; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource.AppStorageStats; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import java.io.IOException; /** * Fetches the storage stats using the StorageStatsManager for a given package and user tuple. */ -public class FetchPackageStorageAsyncLoader extends AsyncLoader { +public class FetchPackageStorageAsyncLoader extends AsyncLoaderCompat { private static final String TAG = "FetchPackageStorage"; private final StorageStatsSource mSource; private final ApplicationInfo mInfo; diff --git a/src/com/android/settings/applications/ProcessStatsDetail.java b/src/com/android/settings/applications/ProcessStatsDetail.java index 1d5fcd9eda9..3331b1ca828 100644 --- a/src/com/android/settings/applications/ProcessStatsDetail.java +++ b/src/com/android/settings/applications/ProcessStatsDetail.java @@ -129,7 +129,7 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment { final Activity activity = getActivity(); final Preference pref = EntityHeaderController .newInstance(activity, this, null /* appHeader */) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setIcon(mApp.mUiTargetApp != null ? IconDrawableFactory.newInstance(activity).getBadgedIcon(mApp.mUiTargetApp) : new ColorDrawable(0)) diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java index a1aafede577..69fa71d835a 100644 --- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java @@ -568,7 +568,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp private void showDialogInner(@ButtonActionDialogFragment.DialogType int id) { ButtonActionDialogFragment newFragment = ButtonActionDialogFragment.newInstance(id); newFragment.setTargetFragment(mFragment, 0); - newFragment.show(mActivity.getFragmentManager(), "dialog " + id); + newFragment.show(mActivity.getSupportFragmentManager(), "dialog " + id); } /** Returns whether there is only one user on this device, not including the system-only user */ diff --git a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java index 925d982ea90..61502d0f4cd 100644 --- a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java @@ -37,7 +37,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.net.ChartData; -import com.android.settingslib.net.ChartDataLoader; +import com.android.settingslib.net.ChartDataLoaderCompat; import androidx.annotation.VisibleForTesting; import androidx.loader.app.LoaderManager; @@ -86,7 +86,7 @@ public class AppDataUsagePreferenceController extends AppInfoPreferenceControlle final AppItem app = new AppItem(uid); app.addUid(uid); mParent.getLoaderManager().restartLoader(mParent.LOADER_CHART_DATA, - ChartDataLoader.buildArgs(getTemplate(mContext), app), + ChartDataLoaderCompat.buildArgs(getTemplate(mContext), app), this); } } @@ -98,7 +98,7 @@ public class AppDataUsagePreferenceController extends AppInfoPreferenceControlle @Override public Loader onCreateLoader(int id, Bundle args) { - return new ChartDataLoader(mContext, mStatsSession, args); + return new ChartDataLoaderCompat(mContext, mStatsSession, args); } @Override diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 80f01fc2f11..4ef5b03c4e4 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -238,7 +238,7 @@ public class AppInfoDashboardFragment extends DashboardFragment } final String packageName = getPackageName(); final List controllers = new ArrayList<>(); - final Lifecycle lifecycle = getLifecycle(); + final Lifecycle lifecycle = getSettingsLifecycle(); // The following are controllers for preferences that needs to refresh the preference state // when app state changes. @@ -524,7 +524,7 @@ public class AppInfoDashboardFragment extends DashboardFragment } if (mState == null) { mState = ApplicationsState.getInstance(activity.getApplication()); - mSession = mState.newSession(this, getLifecycle()); + mSession = mState.newSession(this, getSettingsLifecycle()); } mUserId = UserHandle.myUserId(); mAppEntry = mState.getEntry(getPackageName(), UserHandle.myUserId()); diff --git a/src/com/android/settings/applications/assist/ManageAssist.java b/src/com/android/settings/applications/assist/ManageAssist.java index cd85aca897d..8eb6a7fbcf7 100644 --- a/src/com/android/settings/applications/assist/ManageAssist.java +++ b/src/com/android/settings/applications/assist/ManageAssist.java @@ -54,7 +54,7 @@ public class ManageAssist extends DashboardFragment { @Override protected List createPreferenceControllers(Context context) { - return buildPreferenceControllers(context, getLifecycle()); + return buildPreferenceControllers(context, getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java index 81606b85694..d0493e9706c 100644 --- a/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java +++ b/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java @@ -16,7 +16,6 @@ package com.android.settings.applications.defaultapps; -import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; @@ -36,6 +35,7 @@ import com.android.settingslib.widget.CandidateInfo; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; /** * A generic app picker fragment that shows a list of app as radio button group. @@ -54,13 +54,13 @@ public abstract class DefaultAppPickerFragment extends RadioButtonPickerFragment public void onRadioButtonClicked(RadioButtonPreference selected) { final String selectedKey = selected.getKey(); final CharSequence confirmationMessage = getConfirmationMessage(getCandidate(selectedKey)); - final Activity activity = getActivity(); + final FragmentActivity activity = getActivity(); if (TextUtils.isEmpty(confirmationMessage)) { super.onRadioButtonClicked(selected); } else if (activity != null) { final DialogFragment fragment = newConfirmationDialogFragment(selectedKey, confirmationMessage); - fragment.show(activity.getFragmentManager(), ConfirmationDialogFragment.TAG); + fragment.show(activity.getSupportFragmentManager(), ConfirmationDialogFragment.TAG); } } diff --git a/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceController.java b/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceController.java index a1b9ab5c136..cb89c9a95b7 100644 --- a/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceController.java +++ b/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceController.java @@ -81,7 +81,7 @@ public class DomainAppPreferenceController extends BasePreferenceController impl public void setFragment(ManageDomainUrls fragment) { mFragment = fragment; mMetricsCategory = fragment.getMetricsCategory(); - mSession = mApplicationsState.newSession(this, mFragment.getLifecycle()); + mSession = mApplicationsState.newSession(this, mFragment.getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java index 2c94acc07e9..fe4ae1d7f1e 100644 --- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java +++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java @@ -45,7 +45,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.widget.FooterPreference; -import com.android.settingslib.widget.FooterPreferenceMixin; +import com.android.settingslib.widget.FooterPreferenceMixinCompat; import java.util.ArrayList; import java.util.Collection; @@ -88,7 +88,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle }; private PreferenceGroup mPreferenceGroup; - private FooterPreferenceMixin mFooterPreferenceMixin; + private FooterPreferenceMixinCompat mFooterPreferenceMixin; static { FILTER.addAction(ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); @@ -103,7 +103,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle } public DeviceAdminListPreferenceController setFooterPreferenceMixin( - FooterPreferenceMixin mixin) { + FooterPreferenceMixinCompat mixin) { mFooterPreferenceMixin = mixin; return this; } diff --git a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java index dd940db492a..b768063a4d6 100644 --- a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java +++ b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java @@ -63,7 +63,7 @@ public class PremiumSmsAccess extends EmptyTextSettings super.onCreate(icicle); mApplicationsState = ApplicationsState.getInstance((Application) getContext().getApplicationContext()); - mSession = mApplicationsState.newSession(this, getLifecycle()); + mSession = mApplicationsState.newSession(this, getSettingsLifecycle()); mSmsBackend = new AppStateSmsPremBridge(getContext(), mApplicationsState, this); } diff --git a/src/com/android/settings/backup/BackupSettingsActivity.java b/src/com/android/settings/backup/BackupSettingsActivity.java index 3d48cdda933..c17d1e75da3 100644 --- a/src/com/android/settings/backup/BackupSettingsActivity.java +++ b/src/com/android/settings/backup/BackupSettingsActivity.java @@ -16,7 +16,6 @@ package com.android.settings.backup; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -34,6 +33,7 @@ import java.util.ArrayList; import java.util.List; import androidx.annotation.VisibleForTesting; +import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; @@ -42,7 +42,7 @@ import androidx.fragment.app.FragmentManager; * if the manufacturer provided their backup settings. */ @SearchIndexable -public class BackupSettingsActivity extends Activity implements Indexable { +public class BackupSettingsActivity extends FragmentActivity implements Indexable { private static final String TAG = "BackupSettingsActivity"; private FragmentManager mFragmentManager; @@ -81,7 +81,7 @@ public class BackupSettingsActivity extends Activity implements Indexable { } // mFragmentManager can be set by {@link #setFragmentManager()} for testing if (mFragmentManager == null) { - mFragmentManager = getFragmentManager(); + mFragmentManager = getSupportFragmentManager(); } mFragmentManager.beginTransaction() .replace(android.R.id.content, new BackupSettingsFragment()) diff --git a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java index ab3cd84e149..ec7d12084c6 100644 --- a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java @@ -73,7 +73,8 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase if (shouldFinishOnStop() && !isChangingConfigurations()) { if (mSidecar != null) { mSidecar.cancelEnrollment(); - getFragmentManager().beginTransaction().remove(mSidecar).commitAllowingStateLoss(); + getSupportFragmentManager() + .beginTransaction().remove(mSidecar).commitAllowingStateLoss(); } finish(); } @@ -84,7 +85,8 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase if (mSidecar != null) { mSidecar.setListener(null); mSidecar.cancelEnrollment(); - getFragmentManager().beginTransaction().remove(mSidecar).commitAllowingStateLoss(); + getSupportFragmentManager() + .beginTransaction().remove(mSidecar).commitAllowingStateLoss(); mSidecar = null; } super.onBackPressed(); @@ -103,10 +105,11 @@ public abstract class BiometricsEnrollEnrolling extends BiometricEnrollBase } public void startEnrollment() { - mSidecar = (BiometricEnrollSidecar) getFragmentManager().findFragmentByTag(TAG_SIDECAR); + mSidecar = (BiometricEnrollSidecar) getSupportFragmentManager() + .findFragmentByTag(TAG_SIDECAR); if (mSidecar == null) { mSidecar = getSidecar(); - getFragmentManager().beginTransaction().add(mSidecar, TAG_SIDECAR).commit(); + getSupportFragmentManager().beginTransaction().add(mSidecar, TAG_SIDECAR).commit(); } mSidecar.setListener(this); } diff --git a/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java b/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java index ad92c8d1322..9786363cbc1 100644 --- a/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java @@ -31,8 +31,8 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.biometrics.BiometricEnrollSidecar; -import com.android.settings.biometrics.BiometricsEnrollEnrolling; import com.android.settings.biometrics.BiometricErrorDialog; +import com.android.settings.biometrics.BiometricsEnrollEnrolling; import com.android.settings.password.ChooseLockSettingsHelper; @@ -166,7 +166,7 @@ public class FaceEnrollEnrolling extends BiometricsEnrollEnrolling { private void showErrorDialog(CharSequence msg, int msgId) { BiometricErrorDialog dialog = FaceErrorDialog.newInstance(msg, msgId); - dialog.show(getFragmentManager(), FaceErrorDialog.class.getName()); + dialog.show(getSupportFragmentManager(), FaceErrorDialog.class.getName()); } private void showError(CharSequence error) { diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index 3d4c5d45b77..56d96ce7edd 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -303,12 +303,12 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { private void showErrorDialog(CharSequence msg, int msgId) { BiometricErrorDialog dlg = FingerprintErrorDialog.newInstance(msg, msgId); - dlg.show(getFragmentManager(), FingerprintErrorDialog.class.getName()); + dlg.show(getSupportFragmentManager(), FingerprintErrorDialog.class.getName()); } private void showIconTouchDialog() { mIconTouchCount = 0; - new IconTouchDialog().show(getFragmentManager(), null /* tag */); + new IconTouchDialog().show(getSupportFragmentManager(), null /* tag */); } private void showError(CharSequence error) { diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java index 93a8d6e4a63..d2975ef8c87 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java @@ -78,11 +78,11 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase { } private void startLookingForFingerprint() { - mSidecar = (FingerprintEnrollSidecar) getFragmentManager().findFragmentByTag( + mSidecar = (FingerprintEnrollSidecar) getSupportFragmentManager().findFragmentByTag( FingerprintEnrollEnrolling.TAG_SIDECAR); if (mSidecar == null) { mSidecar = new FingerprintEnrollSidecar(); - getFragmentManager().beginTransaction() + getSupportFragmentManager().beginTransaction() .add(mSidecar, FingerprintEnrollEnrolling.TAG_SIDECAR).commit(); } mSidecar.setListener(new Listener() { @@ -148,7 +148,8 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase { return; } } - getFragmentManager().beginTransaction().remove(mSidecar).commitAllowingStateLoss(); + getSupportFragmentManager().beginTransaction().remove(mSidecar). + commitAllowingStateLoss(); mSidecar = null; startActivityForResult(getFingerprintEnrollingIntent(), ENROLLING); } diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java index 93e3b0d2155..4529277d5be 100644 --- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java +++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java @@ -54,7 +54,7 @@ public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSenso @Override protected void onSkipButtonClick() { - new SkipFingerprintDialog().show(getFragmentManager()); + new SkipFingerprintDialog().show(getSupportFragmentManager()); } @Override diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsButtonsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsButtonsController.java index 4993151627e..d7249b38210 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsButtonsController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsButtonsController.java @@ -23,6 +23,7 @@ import com.android.settings.widget.ActionButtonPreference; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.core.lifecycle.Lifecycle; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** @@ -36,7 +37,7 @@ public class BluetoothDetailsButtonsController extends BluetoothDetailsControlle private boolean mConnectButtonInitialized; private ActionButtonPreference mActionButtons; - public BluetoothDetailsButtonsController(Context context, PreferenceFragment fragment, + public BluetoothDetailsButtonsController(Context context, PreferenceFragmentCompat fragment, CachedBluetoothDevice device, Lifecycle lifecycle) { super(context, fragment, device, lifecycle); mIsConnected = device.isConnected(); diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsController.java index 623c433b599..deb38fdc269 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsController.java @@ -26,6 +26,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** @@ -37,10 +38,10 @@ public abstract class BluetoothDetailsController extends AbstractPreferenceContr OnPause, OnResume { protected final Context mContext; - protected final PreferenceFragment mFragment; + protected final PreferenceFragmentCompat mFragment; protected final CachedBluetoothDevice mCachedDevice; - public BluetoothDetailsController(Context context, PreferenceFragment fragment, + public BluetoothDetailsController(Context context, PreferenceFragmentCompat fragment, CachedBluetoothDevice device, Lifecycle lifecycle) { super(context); mContext = context; diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java index 16b54bbd842..9ff3dc2e2d3 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java @@ -30,6 +30,7 @@ import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.core.lifecycle.Lifecycle; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** @@ -42,7 +43,7 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController private LocalBluetoothManager mLocalManager; private CachedBluetoothDeviceManager mDeviceManager; - public BluetoothDetailsHeaderController(Context context, PreferenceFragment fragment, + public BluetoothDetailsHeaderController(Context context, PreferenceFragmentCompat fragment, CachedBluetoothDevice device, Lifecycle lifecycle, LocalBluetoothManager bluetoothManager) { super(context, fragment, device, lifecycle); diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java b/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java index 0cb73289cbe..b48a59f7afb 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java @@ -22,23 +22,24 @@ import com.android.settings.R; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.widget.FooterPreference; -import com.android.settingslib.widget.FooterPreferenceMixin; +import com.android.settingslib.widget.FooterPreferenceMixinCompat; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** * This class adds the device MAC address to a footer. */ public class BluetoothDetailsMacAddressController extends BluetoothDetailsController { - FooterPreferenceMixin mFooterPreferenceMixin; + FooterPreferenceMixinCompat mFooterPreferenceMixin; FooterPreference mFooterPreference; public BluetoothDetailsMacAddressController(Context context, - PreferenceFragment fragment, + PreferenceFragmentCompat fragment, CachedBluetoothDevice device, Lifecycle lifecycle) { super(context, fragment, device, lifecycle); - mFooterPreferenceMixin = new FooterPreferenceMixin(fragment, lifecycle); + mFooterPreferenceMixin = new FooterPreferenceMixinCompat(fragment, lifecycle); } @Override diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java index 22906495479..a26e9610429 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java @@ -36,6 +36,7 @@ import java.util.List; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; @@ -55,7 +56,7 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll private CachedBluetoothDevice mCachedDevice; private PreferenceCategory mProfilesContainer; - public BluetoothDetailsProfilesController(Context context, PreferenceFragment fragment, + public BluetoothDetailsProfilesController(Context context, PreferenceFragmentCompat fragment, LocalBluetoothManager manager, CachedBluetoothDevice device, Lifecycle lifecycle) { super(context, fragment, device, lifecycle); mManager = manager; diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java index 70831374d16..719a61bf99c 100644 --- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java @@ -120,7 +120,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment ArrayList controllers = new ArrayList<>(); if (mCachedDevice != null) { - Lifecycle lifecycle = getLifecycle(); + Lifecycle lifecycle = getSettingsLifecycle(); controllers.add(new BluetoothDetailsHeaderController(context, this, mCachedDevice, lifecycle, mManager)); controllers.add(new BluetoothDetailsButtonsController(context, this, mCachedDevice, diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java index 813300597e3..060c17491a1 100644 --- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java +++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java @@ -17,7 +17,6 @@ package com.android.settings.bluetooth; import android.annotation.Nullable; -import android.app.Activity; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; @@ -26,12 +25,13 @@ import android.content.IntentFilter; import android.os.Bundle; import androidx.annotation.VisibleForTesting; +import androidx.fragment.app.FragmentActivity; /** * BluetoothPairingDialog asks the user to enter a PIN / Passkey / simple confirmation * for pairing with a remote Bluetooth device. It is an activity that appears as a dialog. */ -public class BluetoothPairingDialog extends Activity { +public class BluetoothPairingDialog extends FragmentActivity { public static final String FRAGMENT_TAG = "bluetooth.pairing.fragment"; private BluetoothPairingController mBluetoothPairingController; @@ -70,7 +70,8 @@ public class BluetoothPairingDialog extends Activity { boolean fragmentFound = true; // check if the fragment has been preloaded BluetoothPairingDialogFragment bluetoothFragment = - (BluetoothPairingDialogFragment) getFragmentManager().findFragmentByTag(FRAGMENT_TAG); + (BluetoothPairingDialogFragment) getSupportFragmentManager(). + findFragmentByTag(FRAGMENT_TAG); // dismiss the fragment if it is already used if (bluetoothFragment != null && (bluetoothFragment.isPairingControllerSet() || bluetoothFragment.isPairingDialogActivitySet())) { @@ -86,7 +87,7 @@ public class BluetoothPairingDialog extends Activity { bluetoothFragment.setPairingDialogActivity(this); // pass the fragment to the manager when it is created from scratch if (!fragmentFound) { - bluetoothFragment.show(getFragmentManager(), FRAGMENT_TAG); + bluetoothFragment.show(getSupportFragmentManager(), FRAGMENT_TAG); } /* * Leave this registered through pause/resume since we still want to diff --git a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java index e9d291df833..e58ac1f176f 100644 --- a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java @@ -66,7 +66,7 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment @Override protected List createPreferenceControllers(Context context) { - return buildControllers(context, getLifecycle()); + return buildControllers(context, getSettingsLifecycle()); } private static List buildControllers(Context context, diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java index a8d92a93838..b5a9ffbd49f 100644 --- a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java @@ -92,7 +92,7 @@ public class BluetoothDashboardFragment extends DashboardFragment { mSwitchBar = activity.getSwitchBar(); mController = new BluetoothSwitchPreferenceController(activity, new SwitchBarController(mSwitchBar), mFooterPreference); - Lifecycle lifecycle = getLifecycle(); + Lifecycle lifecycle = getSettingsLifecycle(); if (lifecycle != null) { lifecycle.addObserver(mController); } diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java index 27dcac4c6a6..380e8a55a06 100644 --- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java @@ -66,7 +66,7 @@ public class ConnectedDeviceDashboardFragment 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/connecteddevice/DiscoverableFooterPreferenceController.java b/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceController.java index 384ec488806..e5e1a7028ae 100644 --- a/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceController.java +++ b/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceController.java @@ -36,7 +36,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; 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.PreferenceScreen; @@ -52,7 +52,7 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro BroadcastReceiver mBluetoothChangedReceiver; @VisibleForTesting LocalBluetoothManager mLocalManager; - private FooterPreferenceMixin mFooterPreferenceMixin; + private FooterPreferenceMixinCompat mFooterPreferenceMixin; private FooterPreference mPreference; private LocalBluetoothAdapter mLocalAdapter; private AlwaysDiscoverable mAlwaysDiscoverable; @@ -82,11 +82,12 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro } public void init(DashboardFragment fragment) { - mFooterPreferenceMixin = new FooterPreferenceMixin(fragment, fragment.getLifecycle()); + mFooterPreferenceMixin = new FooterPreferenceMixinCompat(fragment, + fragment.getSettingsLifecycle()); } @VisibleForTesting - void init(FooterPreferenceMixin footerPreferenceMixin, FooterPreference preference, + void init(FooterPreferenceMixinCompat footerPreferenceMixin, FooterPreference preference, AlwaysDiscoverable alwaysDiscoverable) { mFooterPreferenceMixin = footerPreferenceMixin; mPreference = preference; diff --git a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java index e1b3d70049d..a37a78c02d3 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java @@ -27,7 +27,7 @@ import com.android.settings.Utils; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settingslib.widget.CandidateInfo; import com.android.settingslib.widget.FooterPreference; -import com.android.settingslib.widget.FooterPreferenceMixin; +import com.android.settingslib.widget.FooterPreferenceMixinCompat; import com.google.android.collect.Lists; @@ -49,7 +49,8 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { super.onCreatePreferences(savedInstanceState, rootKey); - FooterPreferenceMixin footer = new FooterPreferenceMixin(this, this.getLifecycle()); + FooterPreferenceMixinCompat footer = new FooterPreferenceMixinCompat(this, + this.getSettingsLifecycle()); FooterPreference pref = footer.createFooterPreference(); pref.setTitle(R.string.usb_default_info); } diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java index 7b1026c4dca..8fd0902b2e9 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java @@ -85,7 +85,7 @@ public class UsbDetailsFragment extends DashboardFragment { mControllers = createControllerList(context, mUsbBackend, this); mUsbReceiver = new UsbConnectionBroadcastReceiver(context, mUsbConnectionListener, mUsbBackend); - this.getLifecycle().addObserver(mUsbReceiver); + this.getSettingsLifecycle().addObserver(mUsbReceiver); return new ArrayList<>(mControllers); } diff --git a/src/com/android/settings/core/InstrumentedActivity.java b/src/com/android/settings/core/InstrumentedActivity.java index 5ec8505bbb2..be350a8f3d8 100644 --- a/src/com/android/settings/core/InstrumentedActivity.java +++ b/src/com/android/settings/core/InstrumentedActivity.java @@ -32,7 +32,7 @@ public abstract class InstrumentedActivity extends ObservableActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Mixin that logs visibility change for activity. - getLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory(), + getSettingsLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory(), FeatureFactory.getFactory(this).getMetricsFeatureProvider())); } } diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java index b1215b9ac4a..427e33aab6e 100644 --- a/src/com/android/settings/core/InstrumentedFragment.java +++ b/src/com/android/settings/core/InstrumentedFragment.java @@ -37,8 +37,8 @@ public abstract class InstrumentedFragment extends ObservableFragment implements mVisibilityLoggerMixin = new VisibilityLoggerMixin(getMetricsCategory(), mMetricsFeatureProvider); // Mixin that logs visibility change for activity. - getLifecycle().addObserver(mVisibilityLoggerMixin); - getLifecycle().addObserver(new SurveyMixin(this, getClass().getSimpleName())); + getSettingsLifecycle().addObserver(mVisibilityLoggerMixin); + getSettingsLifecycle().addObserver(new SurveyMixin(this, getClass().getSimpleName())); super.onAttach(context); } diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java index 30157e97e51..2bcf89584f6 100644 --- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java +++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java @@ -53,8 +53,8 @@ public abstract class InstrumentedPreferenceFragment extends ObservablePreferenc // Mixin that logs visibility change for activity. mVisibilityLoggerMixin = new VisibilityLoggerMixin(getMetricsCategory(), mMetricsFeatureProvider); - getLifecycle().addObserver(mVisibilityLoggerMixin); - getLifecycle().addObserver(new SurveyMixin(this, getClass().getSimpleName())); + getSettingsLifecycle().addObserver(mVisibilityLoggerMixin); + getSettingsLifecycle().addObserver(new SurveyMixin(this, getClass().getSimpleName())); super.onAttach(context); } diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java index 936164c9bb2..a76414d39e3 100644 --- a/src/com/android/settings/dashboard/DashboardAdapter.java +++ b/src/com/android/settings/dashboard/DashboardAdapter.java @@ -45,7 +45,7 @@ import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.TileUtils; -import com.android.settingslib.suggestions.SuggestionControllerMixin; +import com.android.settingslib.suggestions.SuggestionControllerMixinCompat; import com.android.settingslib.utils.IconCache; import java.util.List; @@ -84,7 +84,7 @@ public class DashboardAdapter extends RecyclerView.Adapter conditions, SuggestionControllerMixin suggestionControllerMixin, + List conditions, SuggestionControllerMixinCompat suggestionControllerMixin, Lifecycle lifecycle) { DashboardCategory category = null; diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index 67ffb76b9f1..2a962c1acdb 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -89,7 +89,7 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment controllers.addAll(uniqueControllerFromXml); // And wire up with lifecycle. - final Lifecycle lifecycle = getLifecycle(); + final Lifecycle lifecycle = getSettingsLifecycle(); uniqueControllerFromXml .stream() .filter(controller -> controller instanceof LifecycleObserver) diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java index 00e18c5a715..c6b69e9953d 100644 --- a/src/com/android/settings/dashboard/DashboardSummary.java +++ b/src/com/android/settings/dashboard/DashboardSummary.java @@ -41,7 +41,7 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.ActionBarShadowController; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.DashboardCategory; -import com.android.settingslib.suggestions.SuggestionControllerMixin; +import com.android.settingslib.suggestions.SuggestionControllerMixinCompat; import com.android.settingslib.utils.ThreadUtils; import java.util.List; @@ -53,7 +53,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; public class DashboardSummary extends InstrumentedFragment implements CategoryListener, ConditionListener, - FocusListener, SuggestionControllerMixin.SuggestionControllerHost { + FocusListener, SuggestionControllerMixinCompat.SuggestionControllerHost { public static final boolean DEBUG = false; private static final boolean DEBUG_TIMING = false; private static final int MAX_WAIT_MILLIS = 3000; @@ -69,7 +69,7 @@ public class DashboardSummary extends InstrumentedFragment private SummaryLoader mSummaryLoader; private ConditionManager mConditionManager; private LinearLayoutManager mLayoutManager; - private SuggestionControllerMixin mSuggestionControllerMixin; + private SuggestionControllerMixinCompat mSuggestionControllerMixin; private DashboardFeatureProvider mDashboardFeatureProvider; @VisibleForTesting boolean mIsOnCategoriesChangedCalled; @@ -86,14 +86,14 @@ public class DashboardSummary extends InstrumentedFragment @Override public void onAttach(Context context) { super.onAttach(context); - Log.d(TAG, "Creating SuggestionControllerMixin"); + Log.d(TAG, "Creating SuggestionControllerMixinCompat"); final SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory .getFactory(context) .getSuggestionFeatureProvider(context); if (suggestionFeatureProvider.isSuggestionEnabled(context)) { - mSuggestionControllerMixin = new SuggestionControllerMixin(context, this /* host */, - getLifecycle(), suggestionFeatureProvider - .getSuggestionServiceComponent()); + mSuggestionControllerMixin = new SuggestionControllerMixinCompat( + context, this /* host */, getSettingsLifecycle(), + suggestionFeatureProvider.getSuggestionServiceComponent()); } } @@ -117,7 +117,7 @@ public class DashboardSummary extends InstrumentedFragment mSummaryLoader = new SummaryLoader(activity, CategoryKey.CATEGORY_HOMEPAGE); mConditionManager = ConditionManager.get(activity, false); - getLifecycle().addObserver(mConditionManager); + getSettingsLifecycle().addObserver(mConditionManager); if (savedInstanceState != null) { mIsOnCategoriesChangedCalled = savedInstanceState.getBoolean(STATE_CATEGORIES_CHANGE_CALLED); @@ -209,11 +209,13 @@ public class DashboardSummary extends InstrumentedFragment mDashboard.setListener(this); mDashboard.setItemAnimator(new DashboardItemAnimator()); mAdapter = new DashboardAdapter(getContext(), bundle, - mConditionManager.getConditions(), mSuggestionControllerMixin, getLifecycle()); + mConditionManager.getConditions(), mSuggestionControllerMixin, + getSettingsLifecycle()); mDashboard.setAdapter(mAdapter); mSummaryLoader.setSummaryConsumer(mAdapter); ActionBarShadowController.attachToRecyclerView( - getActivity().findViewById(R.id.search_bar_container), getLifecycle(), mDashboard); + getActivity().findViewById(R.id.search_bar_container), getSettingsLifecycle(), + mDashboard); rebuildUI(); if (DEBUG_TIMING) { Log.d(TAG, "onCreateView took " diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java index 9b964e104b6..95d150283a9 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java @@ -41,7 +41,7 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; -import com.android.settingslib.suggestions.SuggestionControllerMixin; +import com.android.settingslib.suggestions.SuggestionControllerMixinCompat; import com.android.settingslib.utils.IconCache; import java.util.ArrayList; @@ -63,7 +63,7 @@ public class SuggestionAdapter extends RecyclerView.Adapter private final IconCache mCache; private final ArrayList mSuggestionsShownLogged; private final SuggestionFeatureProvider mSuggestionFeatureProvider; - private final SuggestionControllerMixin mSuggestionControllerMixin; + private final SuggestionControllerMixinCompat mSuggestionControllerMixin; private final Callback mCallback; private final CardConfig mConfig; @@ -76,8 +76,9 @@ public class SuggestionAdapter extends RecyclerView.Adapter void onSuggestionClosed(Suggestion suggestion); } - public SuggestionAdapter(Context context, SuggestionControllerMixin suggestionControllerMixin, - Bundle savedInstanceState, Callback callback, Lifecycle lifecycle) { + public SuggestionAdapter(Context context, + SuggestionControllerMixinCompat suggestionControllerMixin, Bundle savedInstanceState, + Callback callback, Lifecycle lifecycle) { mContext = context; mSuggestionControllerMixin = suggestionControllerMixin; mCache = new IconCache(context); diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java index ce2d1185f0d..1564b9f23e5 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java @@ -23,7 +23,7 @@ import android.service.settings.suggestions.Suggestion; import android.util.Pair; import com.android.settingslib.drawer.Tile; -import com.android.settingslib.suggestions.SuggestionControllerMixin; +import com.android.settingslib.suggestions.SuggestionControllerMixinCompat; import java.util.List; @@ -63,7 +63,7 @@ public interface SuggestionFeatureProvider { /** * Dismisses a suggestion. */ - void dismissSuggestion(Context context, SuggestionControllerMixin suggestionMixin, + void dismissSuggestion(Context context, SuggestionControllerMixinCompat suggestionMixin, Suggestion suggestion); /** diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java index 14e4c369200..1601f19b577 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java @@ -39,7 +39,7 @@ import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wifi.calling.WifiCallingSuggestionActivity; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.drawer.Tile; -import com.android.settingslib.suggestions.SuggestionControllerMixin; +import com.android.settingslib.suggestions.SuggestionControllerMixinCompat; import java.util.List; @@ -119,7 +119,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider } @Override - public void dismissSuggestion(Context context, SuggestionControllerMixin mixin, + public void dismissSuggestion(Context context, SuggestionControllerMixinCompat mixin, Suggestion suggestion) { if (mixin == null || suggestion == null || context == null) { return; diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java index a7ec7de859f..ed1920ce7ed 100644 --- a/src/com/android/settings/datausage/AppDataUsage.java +++ b/src/com/android/settings/datausage/AppDataUsage.java @@ -45,7 +45,7 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.net.ChartData; -import com.android.settingslib.net.ChartDataLoader; +import com.android.settingslib.net.ChartDataLoaderCompat; import com.android.settingslib.net.UidDetail; import com.android.settingslib.net.UidDetailProvider; @@ -222,7 +222,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen } mPolicy = services.mPolicyEditor.getPolicy(mTemplate); getLoaderManager().restartLoader(LOADER_CHART_DATA, - ChartDataLoader.buildArgs(mTemplate, mAppItem), mChartDataCallbacks); + ChartDataLoaderCompat.buildArgs(mTemplate, mAppItem), mChartDataCallbacks); updatePrefs(); } @@ -345,7 +345,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen final Activity activity = getActivity(); final Preference pref = EntityHeaderController .newInstance(activity, this, null /* header */) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setUid(uid) .setHasAppInfoLink(showInfoButton) .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE, @@ -383,7 +383,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen new LoaderManager.LoaderCallbacks() { @Override public Loader onCreateLoader(int id, Bundle args) { - return new ChartDataLoader(getActivity(), mStatsSession, args); + return new ChartDataLoaderCompat(getActivity(), mStatsSession, args); } @Override diff --git a/src/com/android/settings/datausage/AppPrefLoader.java b/src/com/android/settings/datausage/AppPrefLoader.java index 63c5c53c90f..501d14242f3 100644 --- a/src/com/android/settings/datausage/AppPrefLoader.java +++ b/src/com/android/settings/datausage/AppPrefLoader.java @@ -21,11 +21,11 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.util.ArraySet; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import androidx.preference.Preference; -public class AppPrefLoader extends AsyncLoader> { +public class AppPrefLoader extends AsyncLoaderCompat> { private ArraySet mPackages; private PackageManager mPackageManager; private Context mPrefContext; diff --git a/src/com/android/settings/datausage/CellDataPreference.java b/src/com/android/settings/datausage/CellDataPreference.java index 508b2d0a89a..e46a235d985 100644 --- a/src/com/android/settings/datausage/CellDataPreference.java +++ b/src/com/android/settings/datausage/CellDataPreference.java @@ -14,7 +14,6 @@ package com.android.settings.datausage; -import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.database.ContentObserver; @@ -37,15 +36,16 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.overlay.FeatureFactory; -import com.android.settingslib.CustomDialogPreference; +import com.android.settingslib.CustomDialogPreferenceCompat; import java.util.List; import androidx.annotation.VisibleForTesting; +import androidx.appcompat.app.AlertDialog.Builder; import androidx.core.content.res.TypedArrayUtils; import androidx.preference.PreferenceViewHolder; -public class CellDataPreference extends CustomDialogPreference implements TemplatePreference { +public class CellDataPreference extends CustomDialogPreferenceCompat implements TemplatePreference { private static final String TAG = "CellDataPreference"; @@ -196,7 +196,7 @@ public class CellDataPreference extends CustomDialogPreference implements Templa } @Override - protected void onPrepareDialogBuilder(AlertDialog.Builder builder, + protected void onPrepareDialogBuilder(Builder builder, DialogInterface.OnClickListener listener) { if (mMultiSimDialog) { showMultiSimDialog(builder, listener); @@ -205,7 +205,7 @@ public class CellDataPreference extends CustomDialogPreference implements Templa } } - private void showDisableDialog(AlertDialog.Builder builder, + private void showDisableDialog(Builder builder, DialogInterface.OnClickListener listener) { builder.setTitle(null) .setMessage(R.string.data_usage_disable_mobile) @@ -213,7 +213,7 @@ public class CellDataPreference extends CustomDialogPreference implements Templa .setNegativeButton(android.R.string.cancel, null); } - private void showMultiSimDialog(AlertDialog.Builder builder, + private void showMultiSimDialog(Builder builder, DialogInterface.OnClickListener listener) { final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId); final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo(); diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java index 97334aa529a..24e8740ad70 100644 --- a/src/com/android/settings/datausage/DataSaverSummary.java +++ b/src/com/android/settings/datausage/DataSaverSummary.java @@ -70,7 +70,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment (Application) getContext().getApplicationContext()); mDataSaverBackend = new DataSaverBackend(getContext()); mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend); - mSession = mApplicationsState.newSession(this, getLifecycle()); + mSession = mApplicationsState.newSession(this, getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java index 032f33781b4..d9124628657 100644 --- a/src/com/android/settings/datausage/DataUsageList.java +++ b/src/com/android/settings/datausage/DataUsageList.java @@ -57,8 +57,8 @@ import com.android.settings.datausage.CycleAdapter.SpinnerInterface; import com.android.settings.widget.LoadingViewController; import com.android.settingslib.AppItem; import com.android.settingslib.net.ChartData; -import com.android.settingslib.net.ChartDataLoader; -import com.android.settingslib.net.SummaryForAllUidLoader; +import com.android.settingslib.net.ChartDataLoaderCompat; +import com.android.settingslib.net.SummaryForAllUidLoaderCompat; import com.android.settingslib.net.UidDetailProvider; import java.util.ArrayList; @@ -262,7 +262,7 @@ public class DataUsageList extends DataUsageBase { // TODO: consider chaining two loaders together instead of reloading // network history when showing app detail. getLoaderManager().restartLoader(LOADER_CHART_DATA, - ChartDataLoader.buildArgs(mTemplate, null), mChartDataCallbacks); + ChartDataLoaderCompat.buildArgs(mTemplate, null), mChartDataCallbacks); // detail mode can change visible menus, invalidate getActivity().invalidateOptionsMenu(); @@ -326,7 +326,7 @@ public class DataUsageList extends DataUsageBase { // kick off loader for detailed stats getLoaderManager().restartLoader(LOADER_SUMMARY, - SummaryForAllUidLoader.buildArgs(mTemplate, start, end), mSummaryCallbacks); + SummaryForAllUidLoaderCompat.buildArgs(mTemplate, start, end), mSummaryCallbacks); final long totalBytes = entry != null ? entry.rxBytes + entry.txBytes : 0; final CharSequence totalPhrase = DataUsageUtils.formatDataUsage(context, totalBytes); @@ -548,7 +548,7 @@ public class DataUsageList extends DataUsageBase { ChartData>() { @Override public Loader onCreateLoader(int id, Bundle args) { - return new ChartDataLoader(getActivity(), mStatsSession, args); + return new ChartDataLoaderCompat(getActivity(), mStatsSession, args); } @Override @@ -572,7 +572,7 @@ public class DataUsageList extends DataUsageBase { NetworkStats>() { @Override public Loader onCreateLoader(int id, Bundle args) { - return new SummaryForAllUidLoader(getActivity(), mStatsSession, args); + return new SummaryForAllUidLoaderCompat(getActivity(), mStatsSession, args); } @Override diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java index c1f9f52d0be..d8f8f02e1a0 100644 --- a/src/com/android/settings/datausage/DataUsageSummary.java +++ b/src/com/android/settings/datausage/DataUsageSummary.java @@ -141,9 +141,9 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage final Activity activity = getActivity(); final ArrayList controllers = new ArrayList<>(); mSummaryController = - new DataUsageSummaryPreferenceController(activity, getLifecycle(), this); + new DataUsageSummaryPreferenceController(activity, getSettingsLifecycle(), this); controllers.add(mSummaryController); - getLifecycle().addObserver(mSummaryController); + getSettingsLifecycle().addObserver(mSummaryController); return controllers; } diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccess.java b/src/com/android/settings/datausage/UnrestrictedDataAccess.java index b8d47b1a543..ff516eed800 100644 --- a/src/com/android/settings/datausage/UnrestrictedDataAccess.java +++ b/src/com/android/settings/datausage/UnrestrictedDataAccess.java @@ -93,7 +93,7 @@ public class UnrestrictedDataAccess extends DashboardFragment { super.onAttach(context); mFilter = mShowSystem ? ApplicationsState.FILTER_ALL_ENABLED : ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER; - use(UnrestrictedDataAccessPreferenceController.class).setSession(getLifecycle()); + use(UnrestrictedDataAccessPreferenceController.class).setSession(getSettingsLifecycle()); use(UnrestrictedDataAccessPreferenceController.class).setFilter(mFilter); } diff --git a/src/com/android/settings/datetime/timezone/model/TimeZoneDataLoader.java b/src/com/android/settings/datetime/timezone/model/TimeZoneDataLoader.java index fae3df63975..7ca157e29a4 100644 --- a/src/com/android/settings/datetime/timezone/model/TimeZoneDataLoader.java +++ b/src/com/android/settings/datetime/timezone/model/TimeZoneDataLoader.java @@ -19,12 +19,12 @@ package com.android.settings.datetime.timezone.model; import android.content.Context; import android.os.Bundle; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; -public class TimeZoneDataLoader extends AsyncLoader { +public class TimeZoneDataLoader extends AsyncLoaderCompat { public TimeZoneDataLoader(Context context) { super(context); diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadRebootDialog.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadRebootDialog.java index ddd9021ba35..03e1143545b 100644 --- a/src/com/android/settings/development/BluetoothA2dpHwOffloadRebootDialog.java +++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadRebootDialog.java @@ -35,7 +35,7 @@ public class BluetoothA2dpHwOffloadRebootDialog extends InstrumentedDialogFragme public static void show(DevelopmentSettingsDashboardFragment host, BluetoothA2dpHwOffloadPreferenceController controller) { - final FragmentManager manager = host.getActivity().getFragmentManager(); + final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final BluetoothA2dpHwOffloadRebootDialog dialog = new BluetoothA2dpHwOffloadRebootDialog(); diff --git a/src/com/android/settings/development/ClearAdbKeysWarningDialog.java b/src/com/android/settings/development/ClearAdbKeysWarningDialog.java index 43e7c8fb04f..e9307590f98 100644 --- a/src/com/android/settings/development/ClearAdbKeysWarningDialog.java +++ b/src/com/android/settings/development/ClearAdbKeysWarningDialog.java @@ -34,7 +34,7 @@ public class ClearAdbKeysWarningDialog extends InstrumentedDialogFragment implem public static final String TAG = "ClearAdbKeysDlg"; public static void show(Fragment host) { - final FragmentManager manager = host.getActivity().getFragmentManager(); + final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final ClearAdbKeysWarningDialog dialog = new ClearAdbKeysWarningDialog(); diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index c97ed52ef40..82ca54b05c8 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -166,7 +166,8 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra // Set up master switch mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar(); mSwitchBarController = new DevelopmentSwitchBarController( - this /* DevelopmentSettings */, mSwitchBar, mIsAvailable, getLifecycle()); + this /* DevelopmentSettings */, mSwitchBar, mIsAvailable, + getSettingsLifecycle()); mSwitchBar.show(); // Restore UI state based on whether developer options is enabled @@ -318,8 +319,8 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra mPreferenceControllers = new ArrayList<>(); return null; } - mPreferenceControllers = buildPreferenceControllers(context, getActivity(), getLifecycle(), - this /* devOptionsDashboardFragment */, + mPreferenceControllers = buildPreferenceControllers(context, getActivity(), + getSettingsLifecycle(), this /* devOptionsDashboardFragment */, new BluetoothA2dpConfigStore()); return mPreferenceControllers; } diff --git a/src/com/android/settings/development/DisableLogPersistWarningDialog.java b/src/com/android/settings/development/DisableLogPersistWarningDialog.java index 7223d8ec1be..fbe2b0526b3 100644 --- a/src/com/android/settings/development/DisableLogPersistWarningDialog.java +++ b/src/com/android/settings/development/DisableLogPersistWarningDialog.java @@ -38,7 +38,7 @@ public class DisableLogPersistWarningDialog extends InstrumentedDialogFragment i return; } final Fragment hostFragment = (Fragment) host; - final FragmentManager manager = hostFragment.getActivity().getFragmentManager(); + final FragmentManager manager = hostFragment.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final DisableLogPersistWarningDialog dialog = new DisableLogPersistWarningDialog(); diff --git a/src/com/android/settings/development/EnableAdbWarningDialog.java b/src/com/android/settings/development/EnableAdbWarningDialog.java index 1dac782c1b1..e1354ce3056 100644 --- a/src/com/android/settings/development/EnableAdbWarningDialog.java +++ b/src/com/android/settings/development/EnableAdbWarningDialog.java @@ -34,7 +34,7 @@ public class EnableAdbWarningDialog extends InstrumentedDialogFragment implement public static final String TAG = "EnableAdbDialog"; public static void show(Fragment host) { - final FragmentManager manager = host.getActivity().getFragmentManager(); + final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final EnableAdbWarningDialog dialog = new EnableAdbWarningDialog(); dialog.setTargetFragment(host, 0 /* requestCode */); diff --git a/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java b/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java index 667f6214f2f..51532f3281e 100644 --- a/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java +++ b/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java @@ -37,7 +37,7 @@ public class EnableDevelopmentSettingWarningDialog extends InstrumentedDialogFra final EnableDevelopmentSettingWarningDialog dialog = new EnableDevelopmentSettingWarningDialog(); dialog.setTargetFragment(host, 0 /* requestCode */); - final FragmentManager manager = host.getActivity().getFragmentManager(); + final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { dialog.show(manager, TAG); } diff --git a/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java b/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java index 64a1b6bba14..09d2ffed97a 100644 --- a/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java +++ b/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java @@ -34,7 +34,7 @@ public class EnableOemUnlockSettingWarningDialog extends InstrumentedDialogFragm public static final String TAG = "EnableOemUnlockDlg"; public static void show(Fragment host) { - final FragmentManager manager = host.getActivity().getFragmentManager(); + final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final EnableOemUnlockSettingWarningDialog dialog = new EnableOemUnlockSettingWarningDialog(); diff --git a/src/com/android/settings/development/featureflags/FeatureFlagFooterPreferenceController.java b/src/com/android/settings/development/featureflags/FeatureFlagFooterPreferenceController.java index a86b8bb12af..a0d7036740c 100644 --- a/src/com/android/settings/development/featureflags/FeatureFlagFooterPreferenceController.java +++ b/src/com/android/settings/development/featureflags/FeatureFlagFooterPreferenceController.java @@ -22,18 +22,18 @@ import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; -import com.android.settingslib.widget.FooterPreferenceMixin; +import com.android.settingslib.widget.FooterPreferenceMixinCompat; public class FeatureFlagFooterPreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart { - private FooterPreferenceMixin mFooterMixin; + private FooterPreferenceMixinCompat mFooterMixin; public FeatureFlagFooterPreferenceController(Context context) { super(context, "feature_flag_footer_pref"); } - public void setFooterMixin(FooterPreferenceMixin mixin) { + public void setFooterMixin(FooterPreferenceMixinCompat mixin) { mFooterMixin = mixin; } diff --git a/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java b/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java index 038b149fc05..0307727858a 100644 --- a/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java +++ b/src/com/android/settings/development/featureflags/FeatureFlagsDashboard.java @@ -65,7 +65,7 @@ public class FeatureFlagsDashboard extends DashboardFragment { @Override protected List createPreferenceControllers(Context context) { - return buildPrefControllers(context, getLifecycle()); + return buildPrefControllers(context, getSettingsLifecycle()); } private static List buildPrefControllers(Context context, diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java index a200c3ae025..8d6714d7c00 100644 --- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java @@ -203,7 +203,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { setTitle(); // Valid options may have changed - getFragmentManager().invalidateOptionsMenu(); + getActivity().invalidateOptionsMenu(); final Context context = getActivity(); final PreferenceScreen screen = getPreferenceScreen(); diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java index a44e9a9ddd4..03a2ada5492 100644 --- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java +++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java @@ -105,7 +105,7 @@ public class StorageDashboardFragment extends DashboardFragment void initializeOptionsMenu(Activity activity) { mOptionMenuController = new PrivateVolumeOptionMenuController( activity, mVolume, activity.getPackageManager()); - getLifecycle().addObserver(mOptionMenuController); + getSettingsLifecycle().addObserver(mOptionMenuController); setHasOptionsMenu(true); activity.invalidateOptionsMenu(); } @@ -119,7 +119,7 @@ public class StorageDashboardFragment extends DashboardFragment final Activity activity = getActivity(); EntityHeaderController.newInstance(activity, this /*fragment*/, null /* header view */) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .styleActionBar(activity); } diff --git a/src/com/android/settings/deviceinfo/StorageWizardBase.java b/src/com/android/settings/deviceinfo/StorageWizardBase.java index cae39e23f19..c6d0b2f675f 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardBase.java +++ b/src/com/android/settings/deviceinfo/StorageWizardBase.java @@ -22,7 +22,6 @@ import static com.android.settings.deviceinfo.StorageSettings.TAG; import android.annotation.LayoutRes; import android.annotation.NonNull; -import android.app.Activity; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -48,7 +47,9 @@ import java.text.NumberFormat; import java.util.List; import java.util.Objects; -public abstract class StorageWizardBase extends Activity { +import androidx.fragment.app.FragmentActivity; + +public abstract class StorageWizardBase extends FragmentActivity { protected static final String EXTRA_FORMAT_FORGET_UUID = "format_forget_uuid"; protected static final String EXTRA_FORMAT_PRIVATE = "format_private"; protected static final String EXTRA_FORMAT_SLOW = "format_slow"; diff --git a/src/com/android/settings/deviceinfo/StorageWizardFormatConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardFormatConfirm.java index 51e17c67612..85e59293950 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardFormatConfirm.java +++ b/src/com/android/settings/deviceinfo/StorageWizardFormatConfirm.java @@ -20,7 +20,6 @@ import static android.os.storage.DiskInfo.EXTRA_DISK_ID; import static com.android.settings.deviceinfo.StorageWizardBase.EXTRA_FORMAT_FORGET_UUID; import static com.android.settings.deviceinfo.StorageWizardBase.EXTRA_FORMAT_PRIVATE; -import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; @@ -34,22 +33,24 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import androidx.fragment.app.FragmentActivity; + public class StorageWizardFormatConfirm extends InstrumentedDialogFragment { private static final String TAG_FORMAT_WARNING = "format_warning"; - public static void showPublic(Activity activity, String diskId) { + public static void showPublic(FragmentActivity activity, String diskId) { show(activity, diskId, null, false); } - public static void showPublic(Activity activity, String diskId, String forgetUuid) { + public static void showPublic(FragmentActivity activity, String diskId, String forgetUuid) { show(activity, diskId, forgetUuid, false); } - public static void showPrivate(Activity activity, String diskId) { + public static void showPrivate(FragmentActivity activity, String diskId) { show(activity, diskId, null, true); } - private static void show(Activity activity, String diskId, String formatForgetUuid, + private static void show(FragmentActivity activity, String diskId, String formatForgetUuid, boolean formatPrivate) { final Bundle args = new Bundle(); args.putString(EXTRA_DISK_ID, diskId); @@ -58,7 +59,8 @@ public class StorageWizardFormatConfirm extends InstrumentedDialogFragment { final StorageWizardFormatConfirm fragment = new StorageWizardFormatConfirm(); fragment.setArguments(args); - fragment.showAllowingStateLoss(activity.getFragmentManager(), TAG_FORMAT_WARNING); + // TODO (b/111150236) : Need to check it again. + fragment.show(activity.getSupportFragmentManager(), TAG_FORMAT_WARNING); } @Override diff --git a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java index d7949a22d94..287cc3f0ec6 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java +++ b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java @@ -59,7 +59,8 @@ public class StorageWizardFormatProgress extends StorageWizardBase { setHeaderText(R.string.storage_wizard_format_progress_title, getDiskShortDescription()); setBodyText(R.string.storage_wizard_format_progress_body, getDiskDescription()); - mTask = (PartitionTask) getLastNonConfigurationInstance(); + // TODO (b/111151113) : Need to check it again. + mTask = (PartitionTask) getLastCustomNonConfigurationInstance(); if (mTask == null) { mTask = new PartitionTask(); mTask.setActivity(this); @@ -68,9 +69,9 @@ public class StorageWizardFormatProgress extends StorageWizardBase { mTask.setActivity(this); } } - + // TODO (b/111151113) : Need to check it again. @Override - public Object onRetainNonConfigurationInstance() { + public Object onRetainCustomNonConfigurationInstance() { return mTask; } diff --git a/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialog.java b/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialog.java index c016cb62c62..45f39d94275 100644 --- a/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialog.java +++ b/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialog.java @@ -36,7 +36,7 @@ public class DeviceNameWarningDialog extends InstrumentedDialogFragment public static final String TAG = "DeviceNameWarningDlg"; public static void show(MyDeviceInfoFragment host) { - final FragmentManager manager = host.getActivity().getFragmentManager(); + final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) != null) { return; } diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java index 00be8be0a01..976a2548d8b 100644 --- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java +++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java @@ -104,7 +104,7 @@ public class MyDeviceInfoFragment extends DashboardFragment @Override protected List createPreferenceControllers(Context context) { return buildPreferenceControllers(context, getActivity(), this /* fragment */, - getLifecycle()); + getSettingsLifecycle()); } private static List buildPreferenceControllers( @@ -156,7 +156,7 @@ public class MyDeviceInfoFragment extends DashboardFragment final Bundle bundle = getArguments(); final EntityHeaderController controller = EntityHeaderController .newInstance(context, this, appSnippet) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE, EntityHeaderController.ActionType.ACTION_NONE); diff --git a/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java b/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java index 50015481547..9d10a1daf0e 100644 --- a/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java +++ b/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java @@ -33,7 +33,7 @@ import android.util.Log; import android.util.SparseArray; import com.android.settingslib.applications.StorageStatsSource; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import java.io.IOException; import java.util.Collections; @@ -45,7 +45,7 @@ import java.util.List; * users */ public class StorageAsyncLoader - extends AsyncLoader> { + extends AsyncLoaderCompat> { private UserManager mUserManager; private static final String TAG = "StorageAsyncLoader"; diff --git a/src/com/android/settings/deviceinfo/storage/UserIconLoader.java b/src/com/android/settings/deviceinfo/storage/UserIconLoader.java index e85bf08a5ea..8273e684ca6 100644 --- a/src/com/android/settings/deviceinfo/storage/UserIconLoader.java +++ b/src/com/android/settings/deviceinfo/storage/UserIconLoader.java @@ -24,12 +24,12 @@ import android.util.SparseArray; import com.android.internal.util.Preconditions; import com.android.settings.Utils; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; /** * Fetches a user icon as a loader using a given icon loading lambda. */ -public class UserIconLoader extends AsyncLoader> { +public class UserIconLoader extends AsyncLoaderCompat> { private FetchUserIconTask mTask; /** diff --git a/src/com/android/settings/deviceinfo/storage/VolumeSizesLoader.java b/src/com/android/settings/deviceinfo/storage/VolumeSizesLoader.java index 844c195385b..2d3de8179d8 100644 --- a/src/com/android/settings/deviceinfo/storage/VolumeSizesLoader.java +++ b/src/com/android/settings/deviceinfo/storage/VolumeSizesLoader.java @@ -22,13 +22,13 @@ import android.os.storage.VolumeInfo; import com.android.settingslib.deviceinfo.PrivateStorageInfo; import com.android.settingslib.deviceinfo.StorageVolumeProvider; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import java.io.IOException; import androidx.annotation.VisibleForTesting; -public class VolumeSizesLoader extends AsyncLoader { +public class VolumeSizesLoader extends AsyncLoaderCompat { private StorageVolumeProvider mVolumeProvider; private StorageStatsManager mStats; private VolumeInfo mVolume; diff --git a/src/com/android/settings/display/DensityPreference.java b/src/com/android/settings/display/DensityPreference.java index e55e578996e..61c57294bf4 100644 --- a/src/com/android/settings/display/DensityPreference.java +++ b/src/com/android/settings/display/DensityPreference.java @@ -27,12 +27,12 @@ import android.widget.EditText; import com.android.settings.R; import com.android.settings.Utils; -import com.android.settingslib.CustomEditTextPreference; +import com.android.settingslib.CustomEditTextPreferenceCompat; import com.android.settingslib.display.DisplayDensityUtils; import java.text.NumberFormat; -public class DensityPreference extends CustomEditTextPreference { +public class DensityPreference extends CustomEditTextPreferenceCompat { private static final String TAG = "DensityPreference"; public DensityPreference(Context context, AttributeSet attrs) { diff --git a/src/com/android/settings/display/TimeoutListPreference.java b/src/com/android/settings/display/TimeoutListPreference.java index 7512a145986..34b2e11fe0c 100644 --- a/src/com/android/settings/display/TimeoutListPreference.java +++ b/src/com/android/settings/display/TimeoutListPreference.java @@ -18,7 +18,6 @@ package com.android.settings.display; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; -import android.app.AlertDialog; import android.app.Dialog; import android.app.admin.DevicePolicyManager; import android.content.Context; @@ -33,6 +32,9 @@ import com.android.settingslib.RestrictedLockUtils; import java.util.ArrayList; +import androidx.appcompat.app.AlertDialog.Builder; + + public class TimeoutListPreference extends RestrictedListPreference { private static final String TAG = "TimeoutListPreference"; private EnforcedAdmin mAdmin; @@ -46,7 +48,7 @@ public class TimeoutListPreference extends RestrictedListPreference { } @Override - protected void onPrepareDialogBuilder(AlertDialog.Builder builder, + protected void onPrepareDialogBuilder(Builder builder, DialogInterface.OnClickListener listener) { super.onPrepareDialogBuilder(builder, listener); if (mAdmin != null) { diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 1e48f5883da..c71468b10cd 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -246,7 +246,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements final Bundle bundle = getArguments(); EntityHeaderController controller = EntityHeaderController .newInstance(context, this, appSnippet) - .setRecyclerView(getListView(), getLifecycle()) + .setRecyclerView(getListView(), getSettingsLifecycle()) .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE, EntityHeaderController.ActionType.ACTION_NONE); @@ -327,7 +327,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements controllers.add(new BatteryOptimizationPreferenceController( (SettingsActivity) getActivity(), this, packageName)); mAppButtonsPreferenceController = new AppButtonsPreferenceController( - (SettingsActivity) getActivity(), this, getLifecycle(), packageName, mState, + (SettingsActivity) getActivity(), this, getSettingsLifecycle(), packageName, mState, REQUEST_UNINSTALL, REQUEST_REMOVE_DEVICE_ADMIN); controllers.add(mAppButtonsPreferenceController); diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java index 87fa13c4359..71eb554dfe2 100644 --- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java @@ -36,6 +36,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import androidx.annotation.VisibleForTesting; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** @@ -56,14 +57,14 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl TextView mSummary2; private final Activity mActivity; - private final PreferenceFragment mHost; + private final PreferenceFragmentCompat mHost; private final Lifecycle mLifecycle; private final PowerManager mPowerManager; private LayoutPreference mBatteryLayoutPref; public BatteryHeaderPreferenceController(Context context, Activity activity, - PreferenceFragment host, Lifecycle lifecycle) { + PreferenceFragmentCompat host, Lifecycle lifecycle) { super(context); mActivity = activity; mHost = host; diff --git a/src/com/android/settings/fuelgauge/BatteryInfoLoader.java b/src/com/android/settings/fuelgauge/BatteryInfoLoader.java index 22efaf6dec7..a03e797da11 100644 --- a/src/com/android/settings/fuelgauge/BatteryInfoLoader.java +++ b/src/com/android/settings/fuelgauge/BatteryInfoLoader.java @@ -19,14 +19,14 @@ import android.content.Context; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BatteryStatsHelper; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; /** * Loader that can be used by classes to load BatteryInfo in a background thread. This loader will * automatically grab enhanced battery estimates if available or fall back to the system estimate * when not available. */ -public class BatteryInfoLoader extends AsyncLoader{ +public class BatteryInfoLoader extends AsyncLoaderCompat{ BatteryStatsHelper mStatsHelper; private static final String LOG_TAG = "BatteryInfoLoader"; diff --git a/src/com/android/settings/fuelgauge/BatteryStatsHelperLoader.java b/src/com/android/settings/fuelgauge/BatteryStatsHelperLoader.java index cb260afecef..7369ed8b38e 100644 --- a/src/com/android/settings/fuelgauge/BatteryStatsHelperLoader.java +++ b/src/com/android/settings/fuelgauge/BatteryStatsHelperLoader.java @@ -20,14 +20,14 @@ import android.content.Context; import android.os.UserManager; import com.android.internal.os.BatteryStatsHelper; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import androidx.annotation.VisibleForTesting; /** * Loader to get new {@link BatteryStatsHelper} in the background */ -public class BatteryStatsHelperLoader extends AsyncLoader { +public class BatteryStatsHelperLoader extends AsyncLoaderCompat { @VisibleForTesting UserManager mUserManager; @VisibleForTesting diff --git a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java index f58ad960818..d27e4dcbcf7 100644 --- a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java +++ b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java @@ -23,13 +23,13 @@ import android.os.SystemClock; import com.android.internal.os.BatteryStatsHelper; import com.android.settings.overlay.FeatureFactory; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import com.android.settingslib.utils.PowerUtil; import java.util.ArrayList; import java.util.List; -public class DebugEstimatesLoader extends AsyncLoader> { +public class DebugEstimatesLoader extends AsyncLoaderCompat> { private BatteryStatsHelper mStatsHelper; public DebugEstimatesLoader(Context context, BatteryStatsHelper statsHelper) { diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java index 8e3c8defaa5..9e9e7aff94d 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java +++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java @@ -135,7 +135,7 @@ public class PowerUsageAdvanced extends PowerUsageBase { final List controllers = new ArrayList<>(); mBatteryAppListPreferenceController = new BatteryAppListPreferenceController(context, - KEY_APP_LIST, getLifecycle(), (SettingsActivity) getActivity(), this); + KEY_APP_LIST, getSettingsLifecycle(), (SettingsActivity) getActivity(), this); controllers.add(mBatteryAppListPreferenceController); return controllers; diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 6190b7b53a5..3d13d04960d 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -241,7 +241,7 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList @Override protected List createPreferenceControllers(Context context) { - final Lifecycle lifecycle = getLifecycle(); + final Lifecycle lifecycle = getSettingsLifecycle(); final SettingsActivity activity = (SettingsActivity) getActivity(); final List controllers = new ArrayList<>(); mBatteryHeaderPreferenceController = new BatteryHeaderPreferenceController( diff --git a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java index 5d92bfd61af..dd3d9dc94b0 100644 --- a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java +++ b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java @@ -38,7 +38,7 @@ import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip; import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip; import com.android.settings.widget.AppCheckBoxPreference; import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.widget.FooterPreferenceMixin; +import com.android.settingslib.widget.FooterPreferenceMixinCompat; import java.util.List; @@ -68,8 +68,8 @@ public class RestrictedAppDetails extends DashboardFragment implements BatteryUtils mBatteryUtils; @VisibleForTesting PackageManager mPackageManager; - private final FooterPreferenceMixin mFooterPreferenceMixin = - new FooterPreferenceMixin(this, getLifecycle()); + private final FooterPreferenceMixinCompat mFooterPreferenceMixin = + new FooterPreferenceMixinCompat(this, getSettingsLifecycle()); public static void startRestrictedAppDetails(InstrumentedPreferenceFragment fragment, List appInfos) { diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java index 8917e35f6bc..c7d6ba402c4 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java @@ -24,7 +24,7 @@ import android.os.UserManager; import android.util.Log; import com.android.internal.os.BatteryStatsHelper; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import java.util.ArrayList; import java.util.List; @@ -35,7 +35,7 @@ import androidx.annotation.VisibleForTesting; * Loader to compute which apps are anomaly and return a anomaly list. It will return * an empty list if there is no anomaly. */ -public class AnomalyLoader extends AsyncLoader> { +public class AnomalyLoader extends AsyncLoaderCompat> { private static final String TAG = "AnomalyLoader"; private static final boolean USE_FAKE_DATA = false; diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java index 52889700935..8b0409cc92a 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java +++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java @@ -62,7 +62,7 @@ public class BatterySaverSettings extends DashboardFragment { @Override protected List createPreferenceControllers(Context context) { - return buildPreferenceControllers(context, getLifecycle()); + return buildPreferenceControllers(context, getSettingsLifecycle()); } @Override diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java index b46c12eb551..916ee85daea 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java @@ -31,7 +31,7 @@ import com.android.settings.fuelgauge.batterytip.detectors.SummaryDetector; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip; import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; -import com.android.settingslib.utils.AsyncLoader; +import com.android.settingslib.utils.AsyncLoaderCompat; import java.util.ArrayList; import java.util.Collections; @@ -43,7 +43,7 @@ import androidx.annotation.VisibleForTesting; * Loader to compute and return a battery tip list. It will always return a full length list even * though some tips may have state {@code BaseBatteryTip.StateType.INVISIBLE}. */ -public class BatteryTipLoader extends AsyncLoader> { +public class BatteryTipLoader extends AsyncLoaderCompat> { private static final String TAG = "BatteryTipLoader"; private static final boolean USE_FAKE_DATA = false; diff --git a/src/com/android/settings/gestures/AssistGestureSettings.java b/src/com/android/settings/gestures/AssistGestureSettings.java index ffe223443ef..bbd148c7839 100644 --- a/src/com/android/settings/gestures/AssistGestureSettings.java +++ b/src/com/android/settings/gestures/AssistGestureSettings.java @@ -54,7 +54,7 @@ public class AssistGestureSettings 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/inputmethod/AvailableVirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java index 75bf724d5d0..0410176c40f 100644 --- a/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java +++ b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java @@ -38,7 +38,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settingslib.inputmethod.InputMethodAndSubtypeUtil; +import com.android.settingslib.inputmethod.InputMethodAndSubtypeUtilCompat; import com.android.settingslib.inputmethod.InputMethodPreference; import com.android.settingslib.inputmethod.InputMethodSettingValuesWrapper; import com.android.settingslib.search.SearchIndexable; @@ -79,7 +79,7 @@ public final class AvailableVirtualKeyboardFragment extends SettingsPreferenceFr public void onSaveInputMethodPreference(final InputMethodPreference pref) { final boolean hasHardwareKeyboard = getResources().getConfiguration().keyboard == Configuration.KEYBOARD_QWERTY; - InputMethodAndSubtypeUtil.saveInputMethodSubtypeList(this, getContentResolver(), + InputMethodAndSubtypeUtilCompat.saveInputMethodSubtypeList(this, getContentResolver(), mImm.getInputMethodList(), hasHardwareKeyboard); // Update input method settings and preference list. mInputMethodSettingValues.refreshAllInputMethodAndSubtypes(); @@ -164,7 +164,7 @@ public final class AvailableVirtualKeyboardFragment extends SettingsPreferenceFr final InputMethodPreference pref = mInputMethodPreferenceList.get(i); pref.setOrder(i); getPreferenceScreen().addPreference(pref); - InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference(pref); + InputMethodAndSubtypeUtilCompat.removeUnnecessaryNonPersistentPreference(pref); pref.updatePreferenceViews(); } } diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceController.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceController.java index 912b5cfd93c..4c08e017f5e 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceController.java +++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceController.java @@ -22,25 +22,26 @@ import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; -import com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManager; +import com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManagerCompat; +import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; public class InputMethodAndSubtypePreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop { - private PreferenceFragment mFragment; - private InputMethodAndSubtypeEnablerManager mManager; + private PreferenceFragmentCompat mFragment; + private InputMethodAndSubtypeEnablerManagerCompat mManager; private String mTargetImi; public InputMethodAndSubtypePreferenceController(Context context, String key) { super(context, key); } - public void initialize(PreferenceFragment fragment, String imi) { + public void initialize(PreferenceFragmentCompat fragment, String imi) { mFragment = fragment; mTargetImi = imi; - mManager = new InputMethodAndSubtypeEnablerManager(mFragment); + mManager = new InputMethodAndSubtypeEnablerManagerCompat(mFragment); } @Override diff --git a/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java b/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java index 6a03c2262e1..1a7fe229cc5 100644 --- a/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java +++ b/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java @@ -157,7 +157,7 @@ public class KeyboardLayoutDialogFragment extends InstrumentedDialogFragment @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - show(getActivity().getFragmentManager(), "layout"); + show(getActivity().getSupportFragmentManager(), "layout"); } private void onKeyboardLayoutClicked(int which) { diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java index 765a834484e..cc1978f4ba0 100644 --- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java +++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java @@ -182,7 +182,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment KeyboardLayoutDialogFragment fragment = new KeyboardLayoutDialogFragment( inputDeviceIdentifier); fragment.setTargetFragment(this, 0); - fragment.show(getActivity().getFragmentManager(), "keyboardLayout"); + fragment.show(getActivity().getSupportFragmentManager(), "keyboardLayout"); } private void registerShowVirtualKeyboardSettingsObserver() { diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreference.java b/src/com/android/settings/inputmethod/SpellCheckerPreference.java index 83d24d94299..8cd73f714e0 100644 --- a/src/com/android/settings/inputmethod/SpellCheckerPreference.java +++ b/src/com/android/settings/inputmethod/SpellCheckerPreference.java @@ -16,7 +16,6 @@ package com.android.settings.inputmethod; -import android.app.AlertDialog.Builder; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.DialogInterface; @@ -29,6 +28,7 @@ import android.view.textservice.SpellCheckerInfo; import com.android.settings.CustomListPreference; import com.android.settings.R; +import androidx.appcompat.app.AlertDialog.Builder; import androidx.preference.PreferenceViewHolder; /** diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java b/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java index 10d84141c18..cdc1c3a62cb 100644 --- a/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java +++ b/src/com/android/settings/inputmethod/SpellCheckerPreferenceController.java @@ -23,7 +23,7 @@ import android.view.textservice.TextServicesManager; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.inputmethod.InputMethodAndSubtypeUtil; +import com.android.settingslib.inputmethod.InputMethodAndSubtypeUtilCompat; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -46,7 +46,7 @@ public class SpellCheckerPreferenceController extends AbstractPreferenceControll super.displayPreference(screen); final Preference preference = screen.findPreference(KEY_SPELL_CHECKERS); if (preference != null) { - InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference(preference); + InputMethodAndSubtypeUtilCompat.removeUnnecessaryNonPersistentPreference(preference); } } diff --git a/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java b/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java index 73602dc80a3..5f134027355 100644 --- a/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java +++ b/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java @@ -17,7 +17,6 @@ package com.android.settings.inputmethod; import android.content.Context; -import android.content.CursorLoader; import android.database.Cursor; import android.database.MatrixCursor; import android.provider.UserDictionary; @@ -28,6 +27,7 @@ import java.util.Objects; import java.util.Set; import androidx.annotation.VisibleForTesting; +import androidx.loader.content.CursorLoader; public class UserDictionaryCursorLoader extends CursorLoader { diff --git a/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java index 939309d505c..024fe603ad0 100644 --- a/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java +++ b/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java @@ -33,7 +33,7 @@ import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; -import com.android.settingslib.inputmethod.InputMethodAndSubtypeUtil; +import com.android.settingslib.inputmethod.InputMethodAndSubtypeUtilCompat; import com.android.settingslib.inputmethod.InputMethodPreference; import com.android.settingslib.search.SearchIndexable; @@ -113,7 +113,7 @@ public final class VirtualKeyboardFragment extends SettingsPreferenceFragment im final InputMethodPreference pref = mInputMethodPreferenceList.get(i); pref.setOrder(i); getPreferenceScreen().addPreference(pref); - InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference(pref); + InputMethodAndSubtypeUtilCompat.removeUnnecessaryNonPersistentPreference(pref); pref.updatePreferenceViews(); } mAddVirtualKeyboardScreen.setIcon(R.drawable.ic_add_24dp); diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java index 507e6cb51c2..c983c071ba8 100644 --- a/src/com/android/settings/language/LanguageAndInputSettings.java +++ b/src/com/android/settings/language/LanguageAndInputSettings.java @@ -89,7 +89,7 @@ public class LanguageAndInputSettings extends DashboardFragment { @Override protected List createPreferenceControllers(Context context) { - return buildPreferenceControllers(context, getLifecycle()); + return buildPreferenceControllers(context, getSettingsLifecycle()); } private static List buildPreferenceControllers( diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java index 6b3ed395728..87c19dd1144 100644 --- a/src/com/android/settings/localepicker/LocaleListEditor.java +++ b/src/com/android/settings/localepicker/LocaleListEditor.java @@ -31,7 +31,6 @@ import android.view.ViewGroup; import android.widget.TextView; import com.android.internal.app.LocalePicker; -import com.android.internal.app.LocalePickerWithRegion; import com.android.internal.app.LocaleStore; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; diff --git a/src/com/android/settings/localepicker/LocalePickerWithRegion.java b/src/com/android/settings/localepicker/LocalePickerWithRegion.java new file mode 100644 index 00000000000..e8a91bcc847 --- /dev/null +++ b/src/com/android/settings/localepicker/LocalePickerWithRegion.java @@ -0,0 +1,278 @@ +/* + * 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.localepicker; + +import android.content.Context; +import android.os.Bundle; +import android.os.LocaleList; +import android.text.TextUtils; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.widget.ListView; +import android.widget.SearchView; + +import com.android.internal.R; +import com.android.internal.app.LocaleHelper; +import com.android.internal.app.LocalePicker; +import com.android.internal.app.LocaleStore; +import com.android.internal.app.SuggestedLocaleAdapter; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Locale; +import java.util.Set; + +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; +import androidx.fragment.app.ListFragment; + +/** + * A two-step locale picker. It shows a language, then a country. + * + *

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 getFragmentClass() { + /* package */ Class 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 getWifiSettingsClass() { + /* package */ Class 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(); }