diff --git a/res/values/strings.xml b/res/values/strings.xml index fd6a084bdd6..bfac793bc50 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4458,15 +4458,15 @@ Pointer speed Pointer fill style - + Change pointer fill style to black - + Change pointer fill style to green - + Change pointer fill style to yellow - + Change pointer fill style to pink - + Change pointer fill style to blue Learn touchpad gestures @@ -8732,9 +8732,9 @@ More settings are available inside this app - Cooldown - Use Cooldown - When you get many notifications within a short time span, your device will minimize sound interruptions and pop-ups on the screen. Calls, alarms, and priority conversations will still alert as notmal, and all delivered notifications are easy to find in the Shade. + Adaptive Notifications + Use adaptive notifications + When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen. Apply to work profiles Apply to work profile apps diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml index 7fcf85e17f7..b673a0839b0 100644 --- a/res/xml/configure_notification_settings.xml +++ b/res/xml/configure_notification_settings.xml @@ -116,9 +116,19 @@ + + + + - diff --git a/src/com/android/settings/ResetNetworkRequest.java b/src/com/android/settings/ResetNetworkRequest.java index 4be8b3206a6..7632ea01d71 100644 --- a/src/com/android/settings/ResetNetworkRequest.java +++ b/src/com/android/settings/ResetNetworkRequest.java @@ -270,6 +270,7 @@ public class ResetNetworkRequest { if ((mResetOptions & RESET_IMS_STACK) != 0) { builder.resetIms(mSubscriptionIdToResetIms); } + // Reset phone process and RILD may impact above components, keep them at the end if ((mResetOptions & RESET_PHONE_PROCESS) != 0) { builder.restartPhoneProcess(); } diff --git a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java index b5101b7dd6d..2546d44d8a6 100644 --- a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java +++ b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java @@ -148,7 +148,7 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC // Check if another side of LE audio hearing aid is connected as a pair final Set memberDevices = device.getMemberDevice(); - if (memberDevices.stream().anyMatch(m -> m.isConnected())) { + if (memberDevices.stream().anyMatch(m -> m.getDevice().isConnected())) { return mContext.getString( R.string.accessibility_hearingaid_left_and_right_side_device_summary, name); @@ -156,7 +156,7 @@ public class AccessibilityHearingAidPreferenceController extends BasePreferenceC // Check if another side of ASHA hearing aid is connected as a pair final CachedBluetoothDevice subDevice = device.getSubDevice(); - if (subDevice != null && subDevice.isConnected()) { + if (subDevice != null && subDevice.getDevice().isConnected()) { return mContext.getString( R.string.accessibility_hearingaid_left_and_right_side_device_summary, name); } diff --git a/src/com/android/settings/development/AdbPreferenceController.java b/src/com/android/settings/development/AdbPreferenceController.java index 468c5bdd5c9..629dea17149 100644 --- a/src/com/android/settings/development/AdbPreferenceController.java +++ b/src/com/android/settings/development/AdbPreferenceController.java @@ -28,9 +28,10 @@ import com.android.settingslib.development.AbstractEnableAdbPreferenceController public class AdbPreferenceController extends AbstractEnableAdbPreferenceController implements PreferenceControllerMixin { - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; - public AdbPreferenceController(Context context, DevelopmentSettingsDashboardFragment fragment) { + public AdbPreferenceController(Context context, + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } diff --git a/src/com/android/settings/development/BackAnimationPreferenceController.java b/src/com/android/settings/development/BackAnimationPreferenceController.java index 09af27a8303..f87ee09ef4d 100644 --- a/src/com/android/settings/development/BackAnimationPreferenceController.java +++ b/src/com/android/settings/development/BackAnimationPreferenceController.java @@ -40,7 +40,7 @@ public class BackAnimationPreferenceController extends DeveloperOptionsPreferenc private static final int SETTING_VALUE_OFF = 0; private static final int SETTING_VALUE_ON = 1; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; @VisibleForTesting BackAnimationPreferenceController(Context context) { diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java index b43303befc9..f460b9e33fe 100644 --- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java +++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java @@ -21,6 +21,7 @@ import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferen import android.content.Context; import android.os.SystemProperties; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -32,7 +33,7 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String PREFERENCE_KEY = "bluetooth_disable_a2dp_hw_offload"; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; static final String A2DP_OFFLOAD_DISABLED_PROPERTY = "persist.bluetooth.a2dp_offload.disabled"; static final String A2DP_OFFLOAD_SUPPORTED_PROPERTY = "ro.bluetooth.a2dp_offload.supported"; @@ -41,7 +42,7 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions boolean mChanged = false; public BluetoothA2dpHwOffloadPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } diff --git a/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java index 51533e7d47e..4e9bd1d63ee 100644 --- a/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java +++ b/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java @@ -49,12 +49,8 @@ public class BluetoothLeAudioAllowListPreferenceController BluetoothAdapter mBluetoothAdapter; @VisibleForTesting boolean mLeAudioConnectionByDefault; - private final DevelopmentSettingsDashboardFragment mFragment; - - public BluetoothLeAudioAllowListPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + public BluetoothLeAudioAllowListPreferenceController(Context context) { super(context); - mFragment = fragment; mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter(); mLeAudioConnectionByDefault = SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true); diff --git a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java index 91b9eb8ec77..1890fbd9818 100644 --- a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java +++ b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java @@ -24,6 +24,7 @@ import android.bluetooth.BluetoothStatusCodes; import android.content.Context; import android.os.SystemProperties; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -39,7 +40,7 @@ public class BluetoothLeAudioHwOffloadPreferenceController implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String PREFERENCE_KEY = "bluetooth_disable_le_audio_hw_offload"; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; static final String LE_AUDIO_OFFLOAD_DISABLED_PROPERTY = "persist.bluetooth.leaudio_offload.disabled"; @@ -53,7 +54,7 @@ public class BluetoothLeAudioHwOffloadPreferenceController boolean mChanged = false; public BluetoothLeAudioHwOffloadPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter(); diff --git a/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java index 2a544f263e3..c3b491a4eb7 100644 --- a/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java +++ b/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java @@ -23,6 +23,7 @@ import android.content.Context; import android.os.SystemProperties; import android.sysprop.BluetoothProperties; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -45,7 +46,7 @@ public class BluetoothLeAudioPreferenceController static final String LE_AUDIO_SWITCHER_DISABLED_PROPERTY = "persist.bluetooth.leaudio_switcher.disabled"; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; @VisibleForTesting BluetoothAdapter mBluetoothAdapter; @@ -54,7 +55,7 @@ public class BluetoothLeAudioPreferenceController boolean mChanged = false; public BluetoothLeAudioPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter(); diff --git a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java index 1ef4810fb16..9e058913de3 100644 --- a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java +++ b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java @@ -22,6 +22,7 @@ import android.os.SystemProperties; import android.provider.Settings; import android.text.TextUtils; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.ListPreference; import androidx.preference.Preference; @@ -42,10 +43,10 @@ public class BluetoothSnoopLogPreferenceController extends DeveloperOptionsPrefe private final String[] mListValues; private final String[] mListEntries; - private DevelopmentSettingsDashboardFragment mFragment; + @Nullable private DevelopmentSettingsDashboardFragment mFragment; public BluetoothSnoopLogPreferenceController( - Context context, DevelopmentSettingsDashboardFragment fragment) { + Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mListValues = context.getResources() .getStringArray(com.android.settingslib.R.array.bt_hci_snoop_log_values); diff --git a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java index 69e6c690e6e..d1e797d46bb 100644 --- a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java +++ b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java @@ -25,6 +25,7 @@ import android.sysprop.AdbProperties; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -40,10 +41,10 @@ public class ClearAdbKeysPreferenceController extends DeveloperOptionsPreference private static final String CLEAR_ADB_KEYS = "clear_adb_keys"; private final IAdbManager mAdbManager; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; public ClearAdbKeysPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; diff --git a/src/com/android/settings/development/DesktopModePreferenceController.java b/src/com/android/settings/development/DesktopModePreferenceController.java index dcd0c14033d..c6b23975b33 100644 --- a/src/com/android/settings/development/DesktopModePreferenceController.java +++ b/src/com/android/settings/development/DesktopModePreferenceController.java @@ -22,6 +22,7 @@ import android.content.Context; import android.os.Build; import android.provider.Settings; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -41,10 +42,10 @@ public class DesktopModePreferenceController extends DeveloperOptionsPreferenceC @VisibleForTesting static final int SETTING_VALUE_ON = 1; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; public DesktopModePreferenceController( - Context context, DevelopmentSettingsDashboardFragment fragment) { + Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } diff --git a/src/com/android/settings/development/DevelopmentMemtagPagePreferenceController.java b/src/com/android/settings/development/DevelopmentMemtagPagePreferenceController.java index 240079b3255..f80ebc602e3 100644 --- a/src/com/android/settings/development/DevelopmentMemtagPagePreferenceController.java +++ b/src/com/android/settings/development/DevelopmentMemtagPagePreferenceController.java @@ -26,8 +26,7 @@ public class DevelopmentMemtagPagePreferenceController extends DeveloperOptionsP implements PreferenceControllerMixin { private static final String KEY_DEVELOPMENT_MEMTAG_PAGE = "development_memtag_page"; - public DevelopmentMemtagPagePreferenceController( - Context context, DevelopmentSettingsDashboardFragment fragment) { + public DevelopmentMemtagPagePreferenceController(Context context) { super(context); } diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index 65a23eb399f..38cb6c72e96 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -655,7 +655,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new BugReportPreferenceController(context)); controllers.add(new BugReportHandlerPreferenceController(context)); controllers.add(new SystemServerHeapDumpPreferenceController(context)); - controllers.add(new DevelopmentMemtagPagePreferenceController(context, fragment)); + controllers.add(new DevelopmentMemtagPagePreferenceController(context)); controllers.add(new LocalBackupPasswordPreferenceController(context)); controllers.add(new StayAwakePreferenceController(context, lifecycle)); controllers.add(new HdcpCheckingPreferenceController(context)); @@ -706,7 +706,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new BluetoothLeAudioPreferenceController(context, fragment)); controllers.add(new BluetoothLeAudioModePreferenceController(context, fragment)); controllers.add(new BluetoothLeAudioDeviceDetailsPreferenceController(context)); - controllers.add(new BluetoothLeAudioAllowListPreferenceController(context, fragment)); + controllers.add(new BluetoothLeAudioAllowListPreferenceController(context)); controllers.add(new BluetoothA2dpHwOffloadPreferenceController(context, fragment)); controllers.add(new BluetoothLeAudioHwOffloadPreferenceController(context, fragment)); controllers.add(new BluetoothMaxConnectedAudioDevicesPreferenceController(context)); diff --git a/src/com/android/settings/development/Enable16kPagesPreferenceController.java b/src/com/android/settings/development/Enable16kPagesPreferenceController.java index 0572b1b662d..b782788b5fe 100644 --- a/src/com/android/settings/development/Enable16kPagesPreferenceController.java +++ b/src/com/android/settings/development/Enable16kPagesPreferenceController.java @@ -34,6 +34,7 @@ import android.widget.ProgressBar; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; @@ -86,7 +87,7 @@ public class Enable16kPagesPreferenceController extends DeveloperOptionsPreferen private static final int OFFSET_TO_FILE_NAME = 30; public static final String EXPERIMENTAL_UPDATE_TITLE = "Android 16K Kernel Experimental Update"; - private @NonNull DevelopmentSettingsDashboardFragment mFragment; + private @Nullable DevelopmentSettingsDashboardFragment mFragment; private boolean mEnable16k; private final ListeningExecutorService mExecutorService = @@ -95,7 +96,7 @@ public class Enable16kPagesPreferenceController extends DeveloperOptionsPreferen private AlertDialog mProgressDialog; public Enable16kPagesPreferenceController( - @NonNull Context context, @NonNull DevelopmentSettingsDashboardFragment fragment) { + @NonNull Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); this.mFragment = fragment; mEnable16k = Enable16kUtils.isUsing16kbPages(); diff --git a/src/com/android/settings/development/FreeformWindowsPreferenceController.java b/src/com/android/settings/development/FreeformWindowsPreferenceController.java index 872c046545a..7cf7738f7b5 100644 --- a/src/com/android/settings/development/FreeformWindowsPreferenceController.java +++ b/src/com/android/settings/development/FreeformWindowsPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.Build; import android.provider.Settings; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -39,10 +40,10 @@ public class FreeformWindowsPreferenceController extends DeveloperOptionsPrefere @VisibleForTesting static final int SETTING_VALUE_ON = 1; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; public FreeformWindowsPreferenceController( - Context context, DevelopmentSettingsDashboardFragment fragment) { + Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } diff --git a/src/com/android/settings/development/LogPersistPreferenceController.java b/src/com/android/settings/development/LogPersistPreferenceController.java index 1386cec3706..66c128c1b8d 100644 --- a/src/com/android/settings/development/LogPersistPreferenceController.java +++ b/src/com/android/settings/development/LogPersistPreferenceController.java @@ -28,10 +28,10 @@ import com.android.settingslib.development.AbstractLogpersistPreferenceControlle public class LogPersistPreferenceController extends AbstractLogpersistPreferenceController implements PreferenceControllerMixin { - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; public LogPersistPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment, Lifecycle lifecycle) { + @Nullable DevelopmentSettingsDashboardFragment fragment, Lifecycle lifecycle) { super(context, lifecycle); mFragment = fragment; diff --git a/src/com/android/settings/development/MockLocationAppPreferenceController.java b/src/com/android/settings/development/MockLocationAppPreferenceController.java index d927c313d3b..51753fe7a4c 100644 --- a/src/com/android/settings/development/MockLocationAppPreferenceController.java +++ b/src/com/android/settings/development/MockLocationAppPreferenceController.java @@ -30,6 +30,7 @@ import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; @@ -45,12 +46,12 @@ public class MockLocationAppPreferenceController extends DeveloperOptionsPrefere private static final String MOCK_LOCATION_APP_KEY = "mock_location_app"; private static final int[] MOCK_LOCATION_APP_OPS = new int[]{AppOpsManager.OP_MOCK_LOCATION}; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; private final AppOpsManager mAppsOpsManager; private final PackageManager mPackageManager; public MockLocationAppPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; diff --git a/src/com/android/settings/development/NfcSnoopLogPreferenceController.java b/src/com/android/settings/development/NfcSnoopLogPreferenceController.java index 01fbb92ea7a..ce9d04d423f 100644 --- a/src/com/android/settings/development/NfcSnoopLogPreferenceController.java +++ b/src/com/android/settings/development/NfcSnoopLogPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.SystemProperties; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -45,10 +46,10 @@ public class NfcSnoopLogPreferenceController extends @VisibleForTesting boolean mChanged = false; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; public NfcSnoopLogPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } diff --git a/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java b/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java index d0f9d9ee0ef..2644bbd0160 100644 --- a/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java +++ b/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.SystemProperties; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -45,10 +46,10 @@ public class NfcVerboseVendorLogPreferenceController @VisibleForTesting boolean mChanged = false; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; public NfcVerboseVendorLogPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } diff --git a/src/com/android/settings/development/OemUnlockPreferenceController.java b/src/com/android/settings/development/OemUnlockPreferenceController.java index 2542a11ca2d..3053defac86 100644 --- a/src/com/android/settings/development/OemUnlockPreferenceController.java +++ b/src/com/android/settings/development/OemUnlockPreferenceController.java @@ -31,6 +31,7 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -54,11 +55,11 @@ public class OemUnlockPreferenceController extends DeveloperOptionsPreferenceCon private final UserManager mUserManager; private final TelephonyManager mTelephonyManager; private final Activity mActivity; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; private RestrictedSwitchPreference mPreference; public OemUnlockPreferenceController(Context context, Activity activity, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); if (!TextUtils.equals(SystemProperties.get(OEM_UNLOCK_SUPPORTED_KEY, UNSUPPORTED), diff --git a/src/com/android/settings/development/SelectDebugAppPreferenceController.java b/src/com/android/settings/development/SelectDebugAppPreferenceController.java index d691149526e..df524c45c31 100644 --- a/src/com/android/settings/development/SelectDebugAppPreferenceController.java +++ b/src/com/android/settings/development/SelectDebugAppPreferenceController.java @@ -28,6 +28,7 @@ import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; @@ -40,11 +41,11 @@ public class SelectDebugAppPreferenceController extends DeveloperOptionsPreferen private static final String DEBUG_APP_KEY = "debug_app"; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; private final PackageManager mPackageManager; public SelectDebugAppPreferenceController(Context context, - DevelopmentSettingsDashboardFragment fragment) { + @Nullable DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; mPackageManager = mContext.getPackageManager(); diff --git a/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreferenceController.java b/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreferenceController.java index b7b557464fb..6b29b8e85f3 100644 --- a/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreferenceController.java +++ b/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreferenceController.java @@ -22,6 +22,7 @@ import android.bluetooth.BluetoothDevice; import android.content.Context; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; @@ -41,11 +42,11 @@ public class BluetoothCodecDialogPreferenceController extends private static final String KEY = "bluetooth_audio_codec_settings"; private static final String TAG = "BtCodecCtr"; - private final Callback mCallback; + @Nullable private final Callback mCallback; public BluetoothCodecDialogPreferenceController(Context context, Lifecycle lifecycle, BluetoothA2dpConfigStore store, - Callback callback) { + @Nullable Callback callback) { super(context, lifecycle, store); mCallback = callback; } diff --git a/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java b/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java index feaa36e306f..878ddb66736 100644 --- a/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java +++ b/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java @@ -21,6 +21,7 @@ import android.bluetooth.BluetoothDevice; import android.content.Context; import android.util.Log; +import androidx.annotation.Nullable; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -36,11 +37,11 @@ public class BluetoothHDAudioPreferenceController extends AbstractBluetoothPrefe private static final String KEY = "bluetooth_hd_audio_settings"; private static final String TAG = "BtHDAudioCtr"; - private final Callback mCallback; + @Nullable private final Callback mCallback; public BluetoothHDAudioPreferenceController(Context context, Lifecycle lifecycle, BluetoothA2dpConfigStore store, - Callback callback) { + @Nullable Callback callback) { super(context, lifecycle, store); mCallback = callback; } diff --git a/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java index b107501e9c1..e7ee9e1c37e 100644 --- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java +++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java @@ -23,6 +23,7 @@ import android.os.SystemProperties; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.TwoStatePreference; @@ -45,7 +46,7 @@ public class GraphicsDriverEnableAngleAsSystemDriverController private static final String ENABLE_ANELE_AS_SYSTEM_DRIVER_KEY = "enable_angle_as_system_driver"; - private final DevelopmentSettingsDashboardFragment mFragment; + @Nullable private final DevelopmentSettingsDashboardFragment mFragment; private final GraphicsDriverSystemPropertiesWrapper mSystemProperties; @@ -83,7 +84,7 @@ public class GraphicsDriverEnableAngleAsSystemDriverController } public GraphicsDriverEnableAngleAsSystemDriverController( - Context context, DevelopmentSettingsDashboardFragment fragment) { + Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) { this(context, fragment, new Injector()); } @@ -96,7 +97,7 @@ public class GraphicsDriverEnableAngleAsSystemDriverController @VisibleForTesting GraphicsDriverEnableAngleAsSystemDriverController( - Context context, DevelopmentSettingsDashboardFragment fragment, Injector injector) { + Context context, @Nullable DevelopmentSettingsDashboardFragment fragment, Injector injector) { super(context); mFragment = fragment; mSystemProperties = injector.createSystemPropertiesWrapper(); diff --git a/src/com/android/settings/network/ResetNetworkOperationBuilder.java b/src/com/android/settings/network/ResetNetworkOperationBuilder.java index 4067fba5892..6f36074d145 100644 --- a/src/com/android/settings/network/ResetNetworkOperationBuilder.java +++ b/src/com/android/settings/network/ResetNetworkOperationBuilder.java @@ -256,16 +256,19 @@ public class ResetNetworkOperationBuilder { * @return this */ public ResetNetworkOperationBuilder restartPhoneProcess() { - try { - mContext.getContentResolver().call( - getResetTelephonyContentProviderAuthority(), - METHOD_RESTART_PHONE_PROCESS, - /* arg= */ null, - /* extras= */ null); - Log.i(TAG, "Phone process was restarted."); - } catch (IllegalArgumentException iae) { - Log.w(TAG, "Fail to restart phone process: " + iae); - } + Runnable runnable = () -> { + try { + mContext.getContentResolver().call( + getResetTelephonyContentProviderAuthority(), + METHOD_RESTART_PHONE_PROCESS, + /* arg= */ null, + /* extras= */ null); + Log.i(TAG, "Phone process was restarted."); + } catch (IllegalArgumentException iae) { + Log.w(TAG, "Fail to restart phone process: " + iae); + } + }; + mResetSequence.add(runnable); return this; } @@ -275,16 +278,19 @@ public class ResetNetworkOperationBuilder { * @return this */ public ResetNetworkOperationBuilder restartRild() { - try { - mContext.getContentResolver().call( - getResetTelephonyContentProviderAuthority(), - METHOD_RESTART_RILD, - /* arg= */ null, - /* extras= */ null); - Log.i(TAG, "RILD was restarted."); - } catch (IllegalArgumentException iae) { - Log.w(TAG, "Fail to restart RILD: " + iae); - } + Runnable runnable = () -> { + try { + mContext.getContentResolver().call( + getResetTelephonyContentProviderAuthority(), + METHOD_RESTART_RILD, + /* arg= */ null, + /* extras= */ null); + Log.i(TAG, "RILD was restarted."); + } catch (IllegalArgumentException iae) { + Log.w(TAG, "Fail to restart RILD: " + iae); + } + }; + mResetSequence.add(runnable); return this; } diff --git a/tests/Enable16KbTests/Android.bp b/tests/Enable16KbTests/Android.bp index ecb0357ea9e..781ea8f7667 100644 --- a/tests/Enable16KbTests/Android.bp +++ b/tests/Enable16KbTests/Android.bp @@ -33,7 +33,7 @@ android_test { ], platform_apis: true, certificate: "platform", - test_suites: ["general-tests"], + test_suites: ["device-tests"], libs: [ "android.test.runner", "android.test.base", @@ -57,6 +57,6 @@ java_test_host { data: [ ":test_16kb_app", ], - test_suites: ["general-tests"], + test_suites: ["device-tests"], test_config: "AndroidTest.xml", } diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp index 0521e52c5d2..83f4f2ef7e9 100644 --- a/tests/robotests/Android.bp +++ b/tests/robotests/Android.bp @@ -75,6 +75,7 @@ android_robolectric_test { //"src/com/android/settings/homepage/**/*.java", "src/com/android/settings/inputmethod/**/*.java", "src/com/android/settings/network/ShadowServiceManagerExtend.java", + "src/com/android/settings/notification/modes/**/*.java", "src/com/android/settings/password/**/*.java", "src/com/android/settings/search/DatabaseIndexingUtils.java", "src/com/android/settings/testutils/**/*.java", diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java index c521f2545e6..97faa63400e 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java @@ -19,6 +19,7 @@ package com.android.settings.accessibility; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; @@ -82,6 +83,8 @@ public class AccessibilityHearingAidPreferenceControllerTest { private BluetoothAdapter mBluetoothAdapter; private ShadowBluetoothAdapter mShadowBluetoothAdapter; private BluetoothDevice mBluetoothDevice; + + private BluetoothDevice mSubBluetoothDevice; private final Context mContext = ApplicationProvider.getApplicationContext(); private Preference mHearingAidPreference; @@ -143,8 +146,8 @@ public class AccessibilityHearingAidPreferenceControllerTest { public void getSummary_connectedAshaHearingAidBothSide_connectedBothSideSummary() { when(mCachedBluetoothDevice.getDeviceSide()).thenReturn( HearingAidInfo.DeviceSide.SIDE_LEFT); - when(mCachedSubBluetoothDevice.isConnected()).thenReturn(true); when(mCachedBluetoothDevice.getSubDevice()).thenReturn(mCachedSubBluetoothDevice); + when(mSubBluetoothDevice.isConnected()).thenReturn(true); when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList()); mPreferenceController.onStart(); @@ -211,8 +214,8 @@ public class AccessibilityHearingAidPreferenceControllerTest { @Test public void getSummary_connectedLeAudioHearingAidBothSide_connectedBothSideSummary() { when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(generateMemberDevices()); - when(mCachedSubBluetoothDevice.isConnected()).thenReturn(true); when(mHapClientProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList()); + when(mSubBluetoothDevice.isConnected()).thenReturn(true); mPreferenceController.onStart(); Intent intent = new Intent(BluetoothHapClient.ACTION_HAP_CONNECTION_STATE_CHANGED); @@ -288,7 +291,8 @@ public class AccessibilityHearingAidPreferenceControllerTest { mShadowBluetoothAdapter = Shadow.extract(mBluetoothAdapter); mShadowBluetoothAdapter.addSupportedProfiles(BluetoothProfile.HEARING_AID); mShadowBluetoothAdapter.addSupportedProfiles(BluetoothProfile.HAP_CLIENT); - mBluetoothDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS); + mBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS)); + mSubBluetoothDevice = spy(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2)); mBluetoothAdapter.enable(); doReturn(mEventManager).when(mLocalBluetoothManager).getEventManager(); @@ -299,8 +303,12 @@ public class AccessibilityHearingAidPreferenceControllerTest { when(mHearingAidProfile.isProfileReady()).thenReturn(true); when(mHapClientProfile.isProfileReady()).thenReturn(true); when(mCachedDeviceManager.findDevice(mBluetoothDevice)).thenReturn(mCachedBluetoothDevice); + when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice); when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS); when(mCachedBluetoothDevice.getName()).thenReturn(TEST_DEVICE_NAME); + when(mCachedDeviceManager.findDevice(mSubBluetoothDevice)).thenReturn( + mCachedSubBluetoothDevice); + when(mCachedSubBluetoothDevice.getDevice()).thenReturn(mSubBluetoothDevice); } private void sendIntent(Intent intent) { @@ -319,7 +327,7 @@ public class AccessibilityHearingAidPreferenceControllerTest { // Generates different Bluetooth devices for testing multiple devices final List deviceList = new ArrayList<>(2); deviceList.add(mBluetoothDevice); - deviceList.add(mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2)); + deviceList.add(mSubBluetoothDevice); return deviceList; } diff --git a/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java b/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java index 6213f8eeb33..5f544064924 100644 --- a/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java +++ b/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java @@ -188,7 +188,7 @@ public class ResetNetworkOperationBuilderTest { doThrow(new IllegalArgumentException()).when(mContentProvider).call( anyString(), anyString(), anyString(), any()); - mBuilder.restartPhoneProcess(); + mBuilder.restartPhoneProcess().build().run(); } @Test @@ -196,12 +196,12 @@ public class ResetNetworkOperationBuilderTest { doThrow(new IllegalArgumentException()).when(mContentProvider).call( anyString(), anyString(), anyString(), any()); - mBuilder.restartRild(); + mBuilder.restartRild().build().run(); } @Test public void restartPhoneProcess_withTelephonyContentProvider_shouldCallRestartPhoneProcess() { - mBuilder.restartPhoneProcess(); + mBuilder.restartPhoneProcess().build().run(); verify(mContentProvider).call( eq(mBuilder.getResetTelephonyContentProviderAuthority()), @@ -212,7 +212,7 @@ public class ResetNetworkOperationBuilderTest { @Test public void restartRild_withTelephonyContentProvider_shouldCallRestartRild() { - mBuilder.restartRild(); + mBuilder.restartRild().build().run(); verify(mContentProvider).call( eq(mBuilder.getResetTelephonyContentProviderAuthority()),