Merge "Fix PanelSlicesAdapterTest" into main
diff --git a/aconfig/settings_connecteddevice_flag_declarations.aconfig b/aconfig/settings_connecteddevice_flag_declarations.aconfig
index 1a3afed..5ba2129 100644
--- a/aconfig/settings_connecteddevice_flag_declarations.aconfig
+++ b/aconfig/settings_connecteddevice_flag_declarations.aconfig
@@ -27,3 +27,10 @@
description: "Gates whether to require an auth challenge for changing USB preferences"
bug: "317367746"
}
+
+flag {
+ name: "enable_saved_devices_order_by_recency"
+ namespace: "pixel_cross_device_control"
+ description: "Order the saved bluetooth devices by most recently connected."
+ bug: "306160434"
+}
\ No newline at end of file
diff --git a/res/values/config.xml b/res/values/config.xml
index f3e2a7a..433620d 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -42,6 +42,10 @@
<string name="config_avatar_picker_action" translatable="false">
com.android.avatarpicker.FULL_SCREEN_ACTIVITY
</string>
+ <!-- User avatar dialog result broadcast explicit package -->
+ <string name="config_avatar_picker_package" translatable="false">
+ com.android.avatarpicker
+ </string>
<!-- Package name and fully-qualified class name for the wallpaper picker activity. -->
<string name="config_wallpaper_picker_package" translatable="false">com.android.settings</string>
diff --git a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
index 7a2ae04..33f8b73 100644
--- a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
@@ -17,6 +17,7 @@
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -36,13 +37,16 @@
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
public class PreviouslyConnectedDevicePreferenceController extends BasePreferenceController
implements LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback {
@@ -56,11 +60,12 @@
private final List<Preference> mDevicesList = new ArrayList<>();
private final List<Preference> mDockDevicesList = new ArrayList<>();
+ private final Map<BluetoothDevice, Preference> mDevicePreferenceMap = new HashMap<>();
+ private final BluetoothAdapter mBluetoothAdapter;
private PreferenceGroup mPreferenceGroup;
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
private DockUpdater mSavedDockUpdater;
- private BluetoothAdapter mBluetoothAdapter;
@VisibleForTesting
Preference mSeeAllPreference;
@@ -81,7 +86,11 @@
mSavedDockUpdater = FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider()
.getSavedDockUpdater(context, this);
mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
- mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
+ } else {
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ }
}
@Override
@@ -114,6 +123,9 @@
mContext.registerReceiver(mReceiver, mIntentFilter,
Context.RECEIVER_EXPORTED_UNAUDITED);
mBluetoothDeviceUpdater.refreshPreference();
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ updatePreferenceGroup();
+ }
}
@Override
@@ -131,19 +143,37 @@
@Override
public void onDeviceAdded(Preference preference) {
- final List<BluetoothDevice> bluetoothDevices =
- mBluetoothAdapter.getMostRecentlyConnectedDevices();
- final int index = preference instanceof BluetoothDevicePreference
- ? bluetoothDevices.indexOf(((BluetoothDevicePreference) preference)
- .getBluetoothDevice().getDevice()) : DOCK_DEVICE_INDEX;
- if (DEBUG) {
- Log.d(TAG, "onDeviceAdded() " + preference.getTitle() + ", index of : " + index);
- for (BluetoothDevice device : bluetoothDevices) {
- Log.d(TAG, "onDeviceAdded() most recently device : " + device.getName());
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ if (preference instanceof BluetoothDevicePreference) {
+ mDevicePreferenceMap.put(
+ ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+ preference);
+ } else {
+ mDockDevicesList.add(preference);
}
+ if (DEBUG) {
+ Log.d(TAG, "onDeviceAdded() " + preference.getTitle());
+ }
+ updatePreferenceGroup();
+ } else {
+ final List<BluetoothDevice> bluetoothDevices =
+ mBluetoothAdapter.getMostRecentlyConnectedDevices();
+ final int index =
+ preference instanceof BluetoothDevicePreference
+ ? bluetoothDevices.indexOf(
+ ((BluetoothDevicePreference) preference)
+ .getBluetoothDevice()
+ .getDevice())
+ : DOCK_DEVICE_INDEX;
+ if (DEBUG) {
+ Log.d(TAG, "onDeviceAdded() " + preference.getTitle() + ", index of : " + index);
+ for (BluetoothDevice device : bluetoothDevices) {
+ Log.d(TAG, "onDeviceAdded() most recently device : " + device.getName());
+ }
+ }
+ addPreference(index, preference);
+ updatePreferenceVisibility();
}
- addPreference(index, preference);
- updatePreferenceVisibility();
}
private void addPreference(int index, Preference preference) {
@@ -194,13 +224,57 @@
@Override
public void onDeviceRemoved(Preference preference) {
- if (preference instanceof BluetoothDevicePreference) {
- mDevicesList.remove(preference);
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ if (preference instanceof BluetoothDevicePreference) {
+ mDevicePreferenceMap.remove(
+ ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+ preference);
+ } else {
+ mDockDevicesList.remove(preference);
+ }
+ if (DEBUG) {
+ Log.d(TAG, "onDeviceRemoved() " + preference.getTitle());
+ }
+ updatePreferenceGroup();
} else {
- mDockDevicesList.remove(preference);
- }
+ if (preference instanceof BluetoothDevicePreference) {
+ mDevicesList.remove(preference);
+ } else {
+ mDockDevicesList.remove(preference);
+ }
- addPreference();
+ addPreference();
+ updatePreferenceVisibility();
+ }
+ }
+
+ /** Sort the preferenceGroup by most recently used. */
+ public void updatePreferenceGroup() {
+ mPreferenceGroup.removeAll();
+ mPreferenceGroup.addPreference(mSeeAllPreference);
+ if (mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()) {
+ // Bluetooth is supported
+ int order = 0;
+ for (BluetoothDevice device : mBluetoothAdapter.getMostRecentlyConnectedDevices()) {
+ Preference preference = mDevicePreferenceMap.getOrDefault(device, null);
+ if (preference != null) {
+ preference.setOrder(order);
+ mPreferenceGroup.addPreference(preference);
+ order += 1;
+ }
+ if (order == MAX_DEVICE_NUM) {
+ break;
+ }
+ }
+ for (Preference preference : mDockDevicesList) {
+ if (order == MAX_DEVICE_NUM) {
+ break;
+ }
+ preference.setOrder(order);
+ mPreferenceGroup.addPreference(preference);
+ order += 1;
+ }
+ }
updatePreferenceVisibility();
}
diff --git a/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java b/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java
index fb35dd9..c73481d 100644
--- a/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java
@@ -15,6 +15,9 @@
*/
package com.android.settings.connecteddevice;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -23,18 +26,25 @@
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
+import com.android.settings.bluetooth.BluetoothDevicePreference;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
import com.android.settings.overlay.DockUpdaterFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* Controller to maintain the {@link PreferenceGroup} for all
* saved devices. It uses {@link DevicePreferenceCallback} to add/remove {@link Preference}
@@ -45,6 +55,10 @@
private static final String KEY = "saved_device_list";
+ private final Map<BluetoothDevice, Preference> mDevicePreferenceMap = new HashMap<>();
+ private final List<Preference> mDockDevicesList = new ArrayList<>();
+ private final BluetoothAdapter mBluetoothAdapter;
+
@VisibleForTesting
PreferenceGroup mPreferenceGroup;
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -57,6 +71,7 @@
FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider();
mSavedDockUpdater =
dockUpdaterFeatureProvider.getSavedDockUpdater(context, this);
+ mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
}
@Override
@@ -64,6 +79,9 @@
mBluetoothDeviceUpdater.registerCallback();
mSavedDockUpdater.registerCallback();
mBluetoothDeviceUpdater.refreshPreference();
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ updatePreferenceGroup();
+ }
}
@Override
@@ -101,17 +119,63 @@
@Override
public void onDeviceAdded(Preference preference) {
- if (mPreferenceGroup.getPreferenceCount() == 0) {
- mPreferenceGroup.setVisible(true);
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ mPreferenceGroup.addPreference(preference);
+ if (preference instanceof BluetoothDevicePreference) {
+ mDevicePreferenceMap.put(
+ ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+ preference);
+ } else {
+ mDockDevicesList.add(preference);
+ }
+ updatePreferenceGroup();
+ } else {
+ if (mPreferenceGroup.getPreferenceCount() == 0) {
+ mPreferenceGroup.setVisible(true);
+ }
+ mPreferenceGroup.addPreference(preference);
}
- mPreferenceGroup.addPreference(preference);
}
@Override
public void onDeviceRemoved(Preference preference) {
- mPreferenceGroup.removePreference(preference);
- if (mPreferenceGroup.getPreferenceCount() == 0) {
+ if (Flags.enableSavedDevicesOrderByRecency()) {
+ mPreferenceGroup.removePreference(preference);
+ if (preference instanceof BluetoothDevicePreference) {
+ mDevicePreferenceMap.remove(
+ ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+ preference);
+ } else {
+ mDockDevicesList.remove(preference);
+ }
+ updatePreferenceGroup();
+ } else {
+ mPreferenceGroup.removePreference(preference);
+ if (mPreferenceGroup.getPreferenceCount() == 0) {
+ mPreferenceGroup.setVisible(false);
+ }
+ }
+ }
+
+ /** Sort the preferenceGroup by most recently used. */
+ public void updatePreferenceGroup() {
+ if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
+ // Bluetooth is unsupported or disabled
mPreferenceGroup.setVisible(false);
+ } else {
+ mPreferenceGroup.setVisible(true);
+ int order = 0;
+ for (BluetoothDevice device : mBluetoothAdapter.getMostRecentlyConnectedDevices()) {
+ Preference preference = mDevicePreferenceMap.getOrDefault(device, null);
+ if (preference != null) {
+ preference.setOrder(order);
+ order += 1;
+ }
+ }
+ for (Preference preference : mDockDevicesList) {
+ preference.setOrder(order);
+ order += 1;
+ }
}
}
@@ -130,4 +194,9 @@
public void setSavedDockUpdater(DockUpdater savedDockUpdater) {
mSavedDockUpdater = savedDockUpdater;
}
+
+ @VisibleForTesting
+ void setPreferenceGroup(PreferenceGroup preferenceGroup) {
+ mPreferenceGroup = preferenceGroup;
+ }
}
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.kt b/src/com/android/settings/network/NetworkProviderCallsSmsController.kt
index 7346e23..67247c1 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsController.kt
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.kt
@@ -28,6 +28,7 @@
import androidx.preference.PreferenceScreen
import com.android.settings.R
import com.android.settings.core.BasePreferenceController
+import com.android.settings.flags.Flags
import com.android.settingslib.RestrictedPreference
import com.android.settingslib.Utils
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
@@ -62,6 +63,7 @@
}
override fun getAvailabilityStatus() = when {
+ Flags.isDualSimOnboardingEnabled() -> UNSUPPORTED_ON_DEVICE
!SubscriptionUtil.isSimHardwareVisible(mContext) -> UNSUPPORTED_ON_DEVICE
!mContext.userManager.isAdminUser -> DISABLED_FOR_USER
else -> AVAILABLE
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java b/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
index b5ad65a..ffe5b05 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
@@ -24,6 +24,7 @@
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
import com.android.settings.network.telephony.CallsDefaultSubscriptionController;
import com.android.settings.network.telephony.NetworkProviderWifiCallingPreferenceController;
import com.android.settings.network.telephony.SmsDefaultSubscriptionController;
@@ -91,8 +92,9 @@
@Override
protected boolean isPageSearchEnabled(Context context) {
- return SubscriptionUtil.isSimHardwareVisible(context) &&
- context.getSystemService(UserManager.class).isAdminUser();
+ return !Flags.isDualSimOnboardingEnabled()
+ && SubscriptionUtil.isSimHardwareVisible(context)
+ && context.getSystemService(UserManager.class).isAdminUser();
}
};
}
diff --git a/src/com/android/settings/network/WepNetworkDialogActivity.kt b/src/com/android/settings/network/WepNetworkDialogActivity.kt
index 2fa8784..d69630f 100644
--- a/src/com/android/settings/network/WepNetworkDialogActivity.kt
+++ b/src/com/android/settings/network/WepNetworkDialogActivity.kt
@@ -51,23 +51,24 @@
confirmButton = AlertDialogButton(
getString(R.string.wifi_settings_ssid_block_button_close)
) { finish() },
- dismissButton = AlertDialogButton(
- getString(R.string.wifi_settings_wep_networks_button_allow)
- ) {
- SubSettingLauncher(context)
- .setTitleText(context.getText(R.string.network_and_internet_preferences_title))
- .setSourceMetricsCategory(SettingsEnums.CONFIGURE_WIFI)
- .setDestination(ConfigureWifiSettings::class.java.getName())
- .launch()
- finish()
- },
+ dismissButton = if (wifiManager?.isWepSupported == true)
+ AlertDialogButton(
+ getString(R.string.wifi_settings_wep_networks_button_allow)
+ ) {
+ SubSettingLauncher(context)
+ .setTitleText(context.getText(R.string.network_and_internet_preferences_title))
+ .setSourceMetricsCategory(SettingsEnums.CONFIGURE_WIFI)
+ .setDestination(ConfigureWifiSettings::class.java.getName())
+ .launch()
+ finish()
+ } else null,
title = String.format(
getString(R.string.wifi_settings_wep_networks_blocked_title),
intent.getStringExtra(SSID) ?: SSID
),
text = {
Text(
- if (wifiManager?.isWepSupported == false)
+ if (wifiManager?.isWepSupported == true)
getString(R.string.wifi_settings_wep_networks_summary_toggle_off)
else getString(R.string.wifi_settings_wep_networks_summary_blocked_by_carrier),
modifier = Modifier.fillMaxWidth(),
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index cce12ec..47515d8 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -358,7 +358,8 @@
.createForSubscriptionId(subId);
final SubscriptionManager subscriptionManager = context.getSystemService(
SubscriptionManager.class).createForAllUserProfiles();
- telephonyManager.setDataEnabled(enabled);
+ telephonyManager.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
+ enabled);
if (disableOtherSubscriptions) {
final List<SubscriptionInfo> subInfoList =
@@ -367,8 +368,10 @@
for (SubscriptionInfo subInfo : subInfoList) {
// We never disable mobile data for opportunistic subscriptions.
if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) {
- context.getSystemService(TelephonyManager.class).createForSubscriptionId(
- subInfo.getSubscriptionId()).setDataEnabled(false);
+ context.getSystemService(TelephonyManager.class)
+ .createForSubscriptionId(subInfo.getSubscriptionId())
+ .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
+ false);
}
}
}
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 29d136f..d39d980 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -35,6 +35,7 @@
import android.graphics.BlendMode;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
+import android.multiuser.Flags;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -892,13 +893,24 @@
UserIcons.convertToBitmapAtUserIconSize(
activity.getResources(), newUserIcon)));
mMePreference.setIcon(newUserIcon);
+ if (Flags.avatarSync()) {
+ final String pkg = getString(R.string.config_avatar_picker_package);
+ final String action = pkg + ".set.confirm";
+ activity.sendBroadcast(new Intent(action).setPackage(pkg));
+ }
}
if (!TextUtils.isEmpty(newUserName) && !newUserName.equals(user.name)) {
mMePreference.setTitle(newUserName);
mUserManager.setUserName(user.id, newUserName);
}
- }, null);
+ }, () -> {
+ if (Flags.avatarSync()) {
+ final String pkg = getString(R.string.config_avatar_picker_package);
+ final String action = pkg + ".set.cancel";
+ activity.sendBroadcast(new Intent(action).setPackage(pkg));
+ }
+ });
}
private Dialog buildAddUserDialog(int userType) {
diff --git a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
index 783eebe..59e656c 100644
--- a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
@@ -23,6 +23,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
+import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
@@ -35,6 +36,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -44,33 +46,38 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class,
ShadowRestrictedLockUtilsInternal.class})
public class ChooseAccountPreferenceControllerTest {
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
private Context mContext;
private ChooseAccountPreferenceController mController;
private Activity mActivity;
private PreferenceManager mPreferenceManager;
private PreferenceScreen mPreferenceScreen;
+ private ShadowAccountManager mAccountManager;
@Before
public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = spy(new ChooseAccountPreferenceController(mContext, "controller_key"));
mActivity = Robolectric.setupActivity(FragmentActivity.class);
mPreferenceManager = new PreferenceManager(mContext);
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+ mAccountManager = (ShadowAccountManager) Shadows.shadowOf(AccountManager.get(mContext));
}
@After
@@ -108,7 +115,7 @@
final AuthenticatorDescription authDesc = new AuthenticatorDescription("com.acct1",
"com.android.settings",
R.string.header_add_an_account, 0, 0, 0, false);
- ShadowAccountManager.addAuthenticator(authDesc);
+ mAccountManager.addAuthenticator(authDesc);
final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
"com.acct1" /* accountType */, false /* userVisible */,
@@ -133,7 +140,7 @@
final AuthenticatorDescription authDesc = new AuthenticatorDescription("com.acct1",
"com.android.settings",
R.string.header_add_an_account, 0, 0, 0, false);
- ShadowAccountManager.addAuthenticator(authDesc);
+ mAccountManager.addAuthenticator(authDesc);
final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
"com.acct1" /* accountType */, false /* userVisible */,
@@ -158,7 +165,7 @@
final AuthenticatorDescription authDesc = new AuthenticatorDescription("com.acct1",
"com.android.settings",
R.string.header_add_an_account, 0, 0, 0, false);
- ShadowAccountManager.addAuthenticator(authDesc);
+ mAccountManager.addAuthenticator(authDesc);
final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
"com.acct1" /* accountType */, false /* userVisible */,
@@ -184,8 +191,8 @@
final AuthenticatorDescription authDesc2 = new AuthenticatorDescription("com.acct2",
"com.android.settings",
R.string.header_add_an_account, 0, 0, 0, false);
- ShadowAccountManager.addAuthenticator(authDesc);
- ShadowAccountManager.addAuthenticator(authDesc2);
+ mAccountManager.addAuthenticator(authDesc);
+ mAccountManager.addAuthenticator(authDesc2);
final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
"com.acct1" /* accountType */, false /* userVisible */,
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
index e351b71..005c131 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
@@ -27,9 +27,14 @@
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.util.Pair;
import androidx.preference.Preference;
@@ -42,11 +47,13 @@
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.widget.SingleTargetGearPreference;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -70,6 +77,9 @@
private static final String FAKE_ADDRESS_4 = "AA:AA:AA:AA:AA:04";
private static final String FAKE_ADDRESS_5 = "AA:AA:AA:AA:AA:05";
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
@Mock
private DashboardFragment mDashboardFragment;
@Mock
@@ -105,6 +115,9 @@
@Mock
private Drawable mDrawable;
+ @Mock private BluetoothManager mBluetoothManager;
+ @Mock private BluetoothAdapter mBluetoothAdapter;
+
private Context mContext;
private PreviouslyConnectedDevicePreferenceController mPreConnectedDeviceController;
private PreferenceGroup mPreferenceGroup;
@@ -117,10 +130,8 @@
mContext = spy(RuntimeEnvironment.application);
doReturn(mContext).when(mDashboardFragment).getContext();
doReturn(mPackageManager).when(mContext).getPackageManager();
- mPreConnectedDeviceController =
- new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
- mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
- mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
+ when(mContext.getSystemService(BluetoothManager.class)).thenReturn(mBluetoothManager);
+ when(mBluetoothManager.getAdapter()).thenReturn(mBluetoothAdapter);
mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
@@ -145,7 +156,13 @@
mMostRecentlyConnectedDevices.add(mBluetoothDevice4);
mMostRecentlyConnectedDevices.add(mBluetoothDevice3);
mShadowBluetoothAdapter.setMostRecentlyConnectedDevices(mMostRecentlyConnectedDevices);
+ when(mBluetoothAdapter.getMostRecentlyConnectedDevices())
+ .thenReturn(mMostRecentlyConnectedDevices);
+ mPreConnectedDeviceController =
+ new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
+ mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
+ mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
mPreferenceGroup = spy(new PreferenceCategory(mContext));
doReturn(mPreferenceManager).when(mPreferenceGroup).getPreferenceManager();
mPreferenceGroup.setVisible(false);
@@ -249,6 +266,7 @@
}
@Test
+ @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_noCrash() {
final BluetoothDevicePreference preference = new BluetoothDevicePreference(
mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
@@ -260,6 +278,18 @@
}
@Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+ public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_doNothing() {
+ final BluetoothDevicePreference preference = new BluetoothDevicePreference(
+ mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+
+ mPreConnectedDeviceController.onDeviceAdded(preference);
+
+ // 1 see all preference
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
+ }
+
+ @Test
public void onDeviceRemoved_removeLastDevice_showSeeAllPreference() {
final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
mContext, mCachedDevice1, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
@@ -277,6 +307,7 @@
@Test
public void updatePreferenceVisibility_bluetoothIsEnable_shouldShowCorrectText() {
mShadowBluetoothAdapter.setEnabled(true);
+ when(mBluetoothAdapter.isEnabled()).thenReturn(true);
mPreConnectedDeviceController.updatePreferenceVisibility();
verify(mSeeAllPreference).setSummary("");
@@ -285,9 +316,78 @@
@Test
public void updatePreferenceVisibility_bluetoothIsDisable_shouldShowCorrectText() {
mShadowBluetoothAdapter.setEnabled(false);
+ when(mBluetoothAdapter.isEnabled()).thenReturn(false);
mPreConnectedDeviceController.updatePreferenceVisibility();
verify(mSeeAllPreference).setSummary(
mContext.getString(R.string.connected_device_see_all_summary));
}
+
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+ public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() {
+ when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+ final BluetoothDevicePreference preference4 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice4,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference3 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice3,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference2 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice2,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ mPreConnectedDeviceController.onDeviceAdded(preference4);
+ mPreConnectedDeviceController.onDeviceAdded(preference3);
+ mPreConnectedDeviceController.onDeviceAdded(preference2);
+
+ mPreConnectedDeviceController.updatePreferenceGroup();
+
+ // Refer to the order of {@link #mMostRecentlyConnectedDevices}, the first one is see all
+ // preference
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(4);
+ assertThat(preference2.getOrder()).isEqualTo(0);
+ assertThat(preference4.getOrder()).isEqualTo(1);
+ assertThat(preference3.getOrder()).isEqualTo(2);
+ }
+
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+ public void updatePreferenceGroup_bluetoothIsDisable_shouldShowOnlySeeAllPreference() {
+ when(mBluetoothAdapter.isEnabled()).thenReturn(false);
+ final BluetoothDevicePreference preference4 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice4,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference3 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice3,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference2 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice2,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ mPreConnectedDeviceController.onDeviceAdded(preference4);
+ mPreConnectedDeviceController.onDeviceAdded(preference3);
+ mPreConnectedDeviceController.onDeviceAdded(preference2);
+
+ mPreConnectedDeviceController.updatePreferenceGroup();
+
+ // 1 see all preference
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java
index d2c44f9..81c0c35 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java
@@ -25,29 +25,52 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.util.Pair;
import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceManager;
+import com.android.settings.bluetooth.BluetoothDevicePreference;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(RobolectricTestRunner.class)
public class SavedDeviceGroupControllerTest {
+ private static final String FAKE_ADDRESS_1 = "AA:AA:AA:AA:AA:01";
+ private static final String FAKE_ADDRESS_2 = "AA:AA:AA:AA:AA:02";
+ private static final String FAKE_ADDRESS_3 = "AA:AA:AA:AA:AA:03";
+
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
@Mock
private DashboardFragment mDashboardFragment;
@Mock
@@ -56,23 +79,57 @@
private DockUpdater mSavedDockUpdater;
@Mock
private PackageManager mPackageManager;
+ @Mock private BluetoothManager mBluetoothManager;
+ @Mock private BluetoothAdapter mBluetoothAdapter;
+ @Mock private CachedBluetoothDevice mCachedDevice1;
+ @Mock private CachedBluetoothDevice mCachedDevice2;
+ @Mock private CachedBluetoothDevice mCachedDevice3;
+ @Mock private BluetoothDevice mBluetoothDevice1;
+ @Mock private BluetoothDevice mBluetoothDevice2;
+ @Mock private BluetoothDevice mBluetoothDevice3;
+ @Mock private Drawable mDrawable;
+ @Mock private PreferenceManager mPreferenceManager;
private Context mContext;
private SavedDeviceGroupController mSavedDeviceGroupController;
private LifecycleOwner mLifecycleOwner;
private Lifecycle mLifecycle;
+ private PreferenceGroup mPreferenceGroup;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
mContext = spy(RuntimeEnvironment.application);
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
doReturn(mContext).when(mDashboardFragment).getContext();
doReturn(mPackageManager).when(mContext).getPackageManager();
+
+ when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
+ when(mCachedDevice1.getAddress()).thenReturn(FAKE_ADDRESS_1);
+ when(mCachedDevice1.getDrawableWithDescription()).thenReturn(pairs);
+ when(mCachedDevice2.getDevice()).thenReturn(mBluetoothDevice2);
+ when(mCachedDevice2.getAddress()).thenReturn(FAKE_ADDRESS_2);
+ when(mCachedDevice2.getDrawableWithDescription()).thenReturn(pairs);
+ when(mCachedDevice3.getDevice()).thenReturn(mBluetoothDevice3);
+ when(mCachedDevice3.getAddress()).thenReturn(FAKE_ADDRESS_3);
+ when(mCachedDevice3.getDrawableWithDescription()).thenReturn(pairs);
+ final List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
+ mMostRecentlyConnectedDevices.add(mBluetoothDevice1);
+ mMostRecentlyConnectedDevices.add(mBluetoothDevice2);
+ mMostRecentlyConnectedDevices.add(mBluetoothDevice3);
+ when(mContext.getSystemService(BluetoothManager.class)).thenReturn(mBluetoothManager);
+ when(mBluetoothManager.getAdapter()).thenReturn(mBluetoothAdapter);
+ when(mBluetoothAdapter.getMostRecentlyConnectedDevices())
+ .thenReturn(mMostRecentlyConnectedDevices);
+
+ mPreferenceGroup = spy(new PreferenceCategory(mContext));
+ when(mPreferenceGroup.getPreferenceManager()).thenReturn(mPreferenceManager);
mSavedDeviceGroupController = new SavedDeviceGroupController(mContext);
mSavedDeviceGroupController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
mSavedDeviceGroupController.setSavedDockUpdater(mSavedDockUpdater);
+ mSavedDeviceGroupController.setPreferenceGroup(mPreferenceGroup);
}
@Test
@@ -118,4 +175,71 @@
assertThat(mSavedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
AVAILABLE);
}
+
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+ public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() {
+ when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+ final BluetoothDevicePreference preference3 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice3,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference2 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice2,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference1 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice1,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ mSavedDeviceGroupController.onDeviceAdded(preference3);
+ mSavedDeviceGroupController.onDeviceAdded(preference2);
+ mSavedDeviceGroupController.onDeviceAdded(preference1);
+
+ mSavedDeviceGroupController.updatePreferenceGroup();
+
+ // Refer to the order of {@link #mMostRecentlyConnectedDevices}
+ assertThat(mPreferenceGroup.isVisible()).isTrue();
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
+ assertThat(preference1.getOrder()).isEqualTo(0);
+ assertThat(preference2.getOrder()).isEqualTo(1);
+ assertThat(preference3.getOrder()).isEqualTo(2);
+ }
+
+ @Test
+ @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+ public void updatePreferenceGroup_bluetoothIsDisable_shouldShowNoPreference() {
+ when(mBluetoothAdapter.isEnabled()).thenReturn(false);
+ final BluetoothDevicePreference preference3 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice3,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference2 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice2,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ final BluetoothDevicePreference preference1 =
+ new BluetoothDevicePreference(
+ mContext,
+ mCachedDevice2,
+ true,
+ BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+ mSavedDeviceGroupController.onDeviceAdded(preference3);
+ mSavedDeviceGroupController.onDeviceAdded(preference2);
+ mSavedDeviceGroupController.onDeviceAdded(preference1);
+
+ mSavedDeviceGroupController.updatePreferenceGroup();
+
+ assertThat(mPreferenceGroup.isVisible()).isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
index 5a679ad..86ceadc 100644
--- a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
+++ b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
@@ -41,7 +41,8 @@
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.test.core.app.ApplicationProvider;
import com.android.internal.compat.CompatibilityChangeConfig;
import com.android.internal.compat.CompatibilityChangeInfo;
@@ -51,13 +52,13 @@
import com.android.settings.R;
import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
import java.util.Arrays;
@@ -67,6 +68,8 @@
@RunWith(RobolectricTestRunner.class)
public class PlatformCompatDashboardTest {
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
private PlatformCompatDashboard mDashboard;
@Mock
@@ -87,7 +90,6 @@
@Before
public void setUp() throws RemoteException, NameNotFoundException {
- MockitoAnnotations.initMocks(this);
mChanges = new CompatibilityChangeInfo[5];
mChanges[0] = new CompatibilityChangeInfo(
1L, "Default_Enabled", 0, 0, false, false, "", false);
@@ -104,7 +106,7 @@
// By default, allow any change
when(mOverrideValidator.getOverrideAllowedState(anyLong(),anyString()))
.thenReturn(new OverrideAllowedState(ALLOWED, -1, -1));
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(ApplicationProvider.getApplicationContext());
mPreferenceManager = new PreferenceManager(mContext);
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
mApplicationInfo.packageName = APP_NAME;
@@ -141,7 +143,6 @@
R.string.platform_compat_selected_app_summary, APP_NAME, 1));
}
- @Ignore("b/313591873")
@Test
public void createPreferenceForChange_defaultEnabledChange_createCheckedEntry() {
CompatibilityChangeInfo enabledChange = mChanges[0];
@@ -152,15 +153,14 @@
Preference enabledPreference = mDashboard.createPreferenceForChange(mContext, enabledChange,
config);
- SwitchPreference enabledSwitchPreference = (SwitchPreference) enabledPreference;
+ SwitchPreferenceCompat enabledSwitchPreference = (SwitchPreferenceCompat) enabledPreference;
assertThat(enabledPreference.getSummary()).isEqualTo(mChanges[0].getName());
- assertThat(enabledPreference instanceof SwitchPreference).isTrue();
+ assertThat(enabledPreference instanceof SwitchPreferenceCompat).isTrue();
assertThat(enabledSwitchPreference.isChecked()).isTrue();
assertThat(enabledSwitchPreference.isEnabled()).isTrue();
}
- @Ignore("b/313591873")
@Test
public void createPreferenceForChange_defaultDisabledChange_createUncheckedEntry() {
CompatibilityChangeInfo disabledChange = mChanges[1];
@@ -172,12 +172,12 @@
disabledChange, config);
assertThat(disabledPreference.getSummary()).isEqualTo(mChanges[1].getName());
- SwitchPreference disabledSwitchPreference = (SwitchPreference) disabledPreference;
+ SwitchPreferenceCompat disabledSwitchPreference =
+ (SwitchPreferenceCompat) disabledPreference;
assertThat(disabledSwitchPreference.isChecked()).isFalse();
assertThat(disabledSwitchPreference.isEnabled()).isTrue();
}
- @Ignore("b/313591873")
@Test
public void createPreferenceForChange_cannotOverride_createDisabledEntry()
throws RemoteException {
@@ -191,15 +191,14 @@
Preference preference = mDashboard.createPreferenceForChange(mContext, enabledChange,
config);
- SwitchPreference switchPreference = (SwitchPreference) preference;
+ SwitchPreferenceCompat switchPreference = (SwitchPreferenceCompat) preference;
assertThat(preference.getSummary()).isEqualTo(mChanges[0].getName());
- assertThat(preference instanceof SwitchPreference).isTrue();
+ assertThat(preference instanceof SwitchPreferenceCompat).isTrue();
assertThat(switchPreference.isChecked()).isTrue();
assertThat(switchPreference.isEnabled()).isFalse();
}
- @Ignore("b/313591873")
@Test
public void createChangeCategoryPreference_enabledAndDisabled_hasTitleAndEntries() {
Set<Long> enabledChanges = new HashSet<>();
@@ -226,7 +225,7 @@
assertThat(category.getPreferenceCount()).isEqualTo(mChanges.length);
for (int i = 0; i < mChanges.length; ++i) {
Preference childPreference = category.getPreference(i);
- assertThat(childPreference instanceof SwitchPreference).isTrue();
+ assertThat(childPreference instanceof SwitchPreferenceCompat).isTrue();
}
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java
index 247d68e..5c3b5b8 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java
@@ -30,9 +30,8 @@
import android.provider.Settings;
import android.service.notification.ZenModeConfig;
-import com.android.settings.R;
-
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -190,6 +189,7 @@
}
}
+ @Ignore
@Test
public void saveConversationSenders_importantToNone() {
when(mNotificationManager.getNotificationPolicy()).thenReturn(
@@ -215,6 +215,7 @@
assertEquals(expected, captor.getValue());
}
+ @Ignore
@Test
public void saveConversationSenders_noneToAll() {
when(mNotificationManager.getNotificationPolicy()).thenReturn(new Policy(
@@ -239,6 +240,7 @@
assertEquals(expected, captor.getValue());
}
+ @Ignore
@Test
public void saveSenders_doesNotChangeConversations() {
when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java
index 71f896d..8b76004 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java
@@ -37,6 +37,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -95,6 +96,7 @@
assertThat(primaryAction.getIcon()).isNull();
}
+ @Ignore
@Test
public void handleUriChange_turnOn_zenModeTurnsOn() {
final Intent intent = new Intent();
@@ -107,6 +109,7 @@
assertThat(zenMode).isEqualTo(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
}
+ @Ignore
@Test
public void handleUriChange_turnOff_zenModeTurnsOff() {
final Intent intent = new Intent();
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java
index 257eaaf..6063efb 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java
@@ -21,8 +21,7 @@
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_SCREEN_ON;
import static com.android.settings.notification.zen.ZenOnboardingActivity.ALWAYS_SHOW_THRESHOLD;
-import static com.android.settings.notification.zen.ZenOnboardingActivity
- .PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME;
+import static com.android.settings.notification.zen.ZenOnboardingActivity.PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME;
import static com.android.settings.notification.zen.ZenOnboardingActivity.isSuggestionComplete;
import static com.google.common.truth.Truth.assertThat;
@@ -40,10 +39,10 @@
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.notification.zen.ZenOnboardingActivity;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -92,6 +91,7 @@
verify(mMetricsLogger).visible(MetricsEvent.SETTINGS_ZEN_ONBOARDING);
}
+ @Ignore
@Test
public void saveNewSetting() {
Policy policy = new Policy(PRIORITY_CATEGORY_ALARMS, 0, 0, SUPPRESSED_EFFECT_SCREEN_ON);
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
index dae17bc..aa2961c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
@@ -31,7 +31,7 @@
import java.util.Map;
@Implements(AccountManager.class)
-public class ShadowAccountManager {
+public class ShadowAccountManager extends org.robolectric.shadows.ShadowAccountManager {
private static final Map<String, AuthenticatorDescription> sAuthenticators = new HashMap<>();
private static final Map<Integer, List<Account>> sAccountsByUserId = new HashMap<>();
@@ -41,7 +41,8 @@
return sAuthenticators.values().toArray(new AuthenticatorDescription[sAuthenticators.size()]);
}
- public static void addAuthenticator(AuthenticatorDescription authenticator) {
+ @Override
+ public void addAuthenticator(AuthenticatorDescription authenticator) {
sAuthenticators.put(authenticator.type, authenticator);
}
diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
index c23b53e..947ba75 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
@@ -148,24 +148,30 @@
public void setMobileDataEnabled_setEnabled_enabled() {
MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, false);
- verify(mTelephonyManager).setDataEnabled(true);
- verify(mTelephonyManager2, never()).setDataEnabled(anyBoolean());
+ verify(mTelephonyManager)
+ .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
+ verify(mTelephonyManager2, never())
+ .setDataEnabledForReason(anyInt(), anyBoolean());
}
@Test
public void setMobileDataEnabled_setDisabled_disabled() {
MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_2, true, false);
- verify(mTelephonyManager2).setDataEnabled(true);
- verify(mTelephonyManager, never()).setDataEnabled(anyBoolean());
+ verify(mTelephonyManager2)
+ .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
+ verify(mTelephonyManager, never())
+ .setDataEnabledForReason(anyInt(), anyBoolean());
}
@Test
public void setMobileDataEnabled_disableOtherSubscriptions() {
MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, true);
- verify(mTelephonyManager).setDataEnabled(true);
- verify(mTelephonyManager2).setDataEnabled(false);
+ verify(mTelephonyManager)
+ .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
+ verify(mTelephonyManager2)
+ .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, false);
}
@Test