Merge "Inaccurate auto dark theme time"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e5e55c6..7e1f46e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2352,7 +2352,7 @@
<!-- Title for the panel of add Wi-Fi network from APP [CHAR LIMIT=50] -->
<string name="wifi_add_app_single_network_title">Save this network?</string>
<!-- Summary for the panel of add Wi-Fi network from APP [CHAR LIMIT=NONE] -->
- <string name="wifi_add_app_single_network_summary"><xliff:g id="appName" example="ThirdPartyAppName">%1$s</xliff:g> would like to save a network to your phone</string>
+ <string name="wifi_add_app_single_network_summary"><xliff:g id="appName" example="ThirdPartyAppName">%1$s</xliff:g> wants to save a network to your phone</string>
<!-- Summary for saving status when saving single network [CHAR LIMIT=30] -->
<string name="wifi_add_app_single_network_saving_summary">Saving\u2026</string>
<!-- Summary for saved status when saving single network [CHAR LIMIT=30] -->
@@ -2362,7 +2362,7 @@
<!-- Title for the panel of add multiple Wi-Fi networks from APP [CHAR LIMIT=50] -->
<string name="wifi_add_app_networks_title">Save networks?</string>
<!-- Summary for the panel of add multiple Wi-Fi networks from APP [CHAR LIMIT=NONE] -->
- <string name="wifi_add_app_networks_summary"><xliff:g id="appName" example="ThirdPartyAppName">%1$s</xliff:g> would like to save these networks to your phone</string>
+ <string name="wifi_add_app_networks_summary"><xliff:g id="appName" example="ThirdPartyAppName">%1$s</xliff:g> wants to save these networks to your phone</string>
<!-- Summary for the panel of add Wi-Fi networks from APP [CHAR LIMIT=NONE] -->
<string name="wifi_add_app_networks_saving_summary">Saving <xliff:g id="number" example="3">%d</xliff:g> networks\u2026</string>
<!-- Summary for saved status when saving multiple networks [CHAR LIMIT=NONE] -->
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
index 93b937b..4c0ddc9 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
@@ -17,17 +17,18 @@
package com.android.settings.homepage.contextualcards.conditional;
import android.app.settings.SettingsEnums;
-import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.net.ConnectivityManager;
+import android.telephony.PhoneStateListener;
+import android.telephony.PreciseDataConnectionState;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.network.GlobalSettingsChangeListener;
import java.util.Objects;
@@ -35,22 +36,35 @@
static final int ID = Objects.hash("CellularDataConditionController");
- private static final IntentFilter DATA_CONNECTION_FILTER =
- new IntentFilter(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
-
private final Context mAppContext;
private final ConditionManager mConditionManager;
- private final Receiver mReceiver;
- private final TelephonyManager mTelephonyManager;
+ private final GlobalSettingsChangeListener mDefaultDataSubscriptionIdListener;
private final ConnectivityManager mConnectivityManager;
+ private int mSubId;
+ private TelephonyManager mTelephonyManager;
+ private boolean mIsListeningConnectionChange;
+
public CellularDataConditionController(Context appContext, ConditionManager conditionManager) {
mAppContext = appContext;
mConditionManager = conditionManager;
- mReceiver = new Receiver();
+ mSubId = getDefaultDataSubscriptionId(appContext);
+ mTelephonyManager = getTelephonyManager(appContext, mSubId);
+ mDefaultDataSubscriptionIdListener = new GlobalSettingsChangeListener(appContext,
+ android.provider.Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION) {
+ public void onChanged(String field) {
+ final int subId = getDefaultDataSubscriptionId(mAppContext);
+ if (subId == mSubId) {
+ return;
+ }
+ mSubId = subId;
+ if (mIsListeningConnectionChange) {
+ restartPhoneStateListener(mAppContext, subId);
+ }
+ }
+ };
mConnectivityManager = appContext.getSystemService(
ConnectivityManager.class);
- mTelephonyManager = appContext.getSystemService(TelephonyManager.class);
}
@Override
@@ -95,21 +109,50 @@
@Override
public void startMonitoringStateChange() {
- mAppContext.registerReceiver(mReceiver, DATA_CONNECTION_FILTER);
+ restartPhoneStateListener(mAppContext, mSubId);
}
@Override
public void stopMonitoringStateChange() {
- mAppContext.unregisterReceiver(mReceiver);
+ stopPhoneStateListener();
}
- public class Receiver extends BroadcastReceiver {
+ private int getDefaultDataSubscriptionId(Context context) {
+ final SubscriptionManager subscriptionManager =
+ context.getSystemService(SubscriptionManager.class);
+ return subscriptionManager.getDefaultDataSubscriptionId();
+ }
+
+ private TelephonyManager getTelephonyManager(Context context, int subId) {
+ final TelephonyManager telephonyManager =
+ context.getSystemService(TelephonyManager.class);
+ return telephonyManager.createForSubscriptionId(subId);
+ }
+
+ private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
@Override
- public void onReceive(Context context, Intent intent) {
- if (TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED.equals(
- intent.getAction())) {
- mConditionManager.onConditionChanged();
- }
+ public void onPreciseDataConnectionStateChanged(
+ PreciseDataConnectionState dataConnectionState) {
+ mConditionManager.onConditionChanged();
}
+ };
+
+ private void stopPhoneStateListener() {
+ mIsListeningConnectionChange = false;
+ mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+ }
+
+ // restart monitoring when subscription has been changed
+ private void restartPhoneStateListener(Context context, int subId) {
+ stopPhoneStateListener();
+ mIsListeningConnectionChange = true;
+
+ // switch mTelephonyManager only when subscription been updated to valid ones
+ if (SubscriptionManager.isValidSubscriptionId(subId)) {
+ mTelephonyManager = getTelephonyManager(context, subId);
+ }
+
+ mTelephonyManager.listen(mPhoneStateListener,
+ PhoneStateListener.LISTEN_PRECISE_DATA_CONNECTION_STATE);
}
}
diff --git a/src/com/android/settings/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index e7aab17..2d9a736 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -146,6 +146,19 @@
return mTopDevice;
}
+ /**
+ * Request to set volume.
+ *
+ * @param device for the targeted device.
+ * @param volume for the new value.
+ *
+ */
+ public void adjustVolume(MediaDevice device, int volume) {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ device.requestSetVolume(volume);
+ });
+ }
+
private class DevicesChangedBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index 47a5d7a..36dba22 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -16,6 +16,8 @@
package com.android.settings.media;
+import static android.app.slice.Slice.EXTRA_RANGE_VALUE;
+
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
import android.app.PendingIntent;
@@ -49,6 +51,7 @@
private static final String TAG = "MediaOutputSlice";
private static final String MEDIA_DEVICE_ID = "media_device_id";
+ private static final int NON_SLIDER_VALUE = -1;
public static final String MEDIA_PACKAGE_NAME = "media_package_name";
@@ -86,7 +89,7 @@
final MediaDevice topDevice = isTouched ? worker.getTopDevice() : connectedDevice;
if (topDevice != null) {
- listBuilder.addRow(getActiveDeviceHeaderRow(topDevice));
+ listBuilder.addInputRange(getActiveDeviceHeaderRow(topDevice));
worker.setTopDevice(topDevice);
}
@@ -100,7 +103,7 @@
return listBuilder.build();
}
- private ListBuilder.RowBuilder getActiveDeviceHeaderRow(MediaDevice device) {
+ private ListBuilder.InputRangeBuilder getActiveDeviceHeaderRow(MediaDevice device) {
final String title = device.getName();
final IconCompat icon = getDeviceIconCompat(device);
@@ -108,14 +111,23 @@
getBroadcastIntent(mContext, device.getId(), device.hashCode());
final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
ListBuilder.ICON_IMAGE, title);
-
- final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
+ final ListBuilder.InputRangeBuilder builder = new ListBuilder.InputRangeBuilder()
.setTitleItem(icon, ListBuilder.ICON_IMAGE)
.setTitle(title)
- .setSubtitle(device.getSummary())
- .setPrimaryAction(primarySliceAction);
+ .setPrimaryAction(primarySliceAction)
+ .setInputAction(getSliderInputAction(device.hashCode(), device.getId()))
+ .setMax(device.getMaxVolume())
+ .setValue(device.getCurrentVolume());
+ return builder;
+ }
- return rowBuilder;
+ private PendingIntent getSliderInputAction(int requestCode, String id) {
+ final Intent intent = new Intent(getUri().toString())
+ .setData(getUri())
+ .putExtra(MEDIA_DEVICE_ID, id)
+ .setClass(mContext, SliceBroadcastReceiver.class);
+
+ return PendingIntent.getBroadcast(mContext, requestCode, intent, 0);
}
private IconCompat getDeviceIconCompat(MediaDevice device) {
@@ -152,7 +164,7 @@
.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
ListBuilder.ICON_IMAGE, title))
.setTitle(title)
- .setSubtitle(device.getSummary());
+ .setSubtitle(device.isConnected() ? null : device.getSummary());
return rowBuilder;
}
@@ -162,7 +174,7 @@
intent.setClass(context, SliceBroadcastReceiver.class);
intent.putExtra(MEDIA_DEVICE_ID, id);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
- return PendingIntent.getBroadcast(context, requestCode /* requestCode */, intent,
+ return PendingIntent.getBroadcast(context, requestCode, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
}
@@ -175,11 +187,22 @@
public void onNotifyChange(Intent intent) {
final MediaDeviceUpdateWorker worker = getWorker();
final String id = intent != null ? intent.getStringExtra(MEDIA_DEVICE_ID) : "";
+ if (TextUtils.isEmpty(id)) {
+ return;
+ }
final MediaDevice device = worker.getMediaDeviceById(id);
- if (device != null) {
+ if (device == null) {
+ return;
+ }
+ final int newPosition = intent.getIntExtra(EXTRA_RANGE_VALUE, NON_SLIDER_VALUE);
+ if (newPosition == NON_SLIDER_VALUE) {
+ // Intent for device connection
Log.d(TAG, "onNotifyChange() device name : " + device.getName());
worker.setIsTouched(true);
worker.connectDevice(device);
+ } else {
+ // Intent for volume adjustment
+ worker.adjustVolume(device, newPosition);
}
}
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index a8b3250..626e4f3 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -304,11 +304,12 @@
}
mPrivacySettingsSpinner.setSelection(prefMacValue);
- if (config.getIpAssignment() == IpAssignment.STATIC) {
+ if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
mIpSettingsSpinner.setSelection(STATIC_IP);
showAdvancedFields = true;
// Display IP address.
- StaticIpConfiguration staticConfig = config.getStaticIpConfiguration();
+ StaticIpConfiguration staticConfig = config.getIpConfiguration()
+ .getStaticIpConfiguration();
if (staticConfig != null && staticConfig.ipAddress != null) {
addRow(group, R.string.wifi_ip_address,
staticConfig.ipAddress.getAddress().getHostAddress());
@@ -322,10 +323,11 @@
showAdvancedFields = true;
}
- if (config.getProxySettings() == ProxySettings.STATIC) {
+ ProxySettings proxySettings = config.getIpConfiguration().getProxySettings();
+ if (proxySettings == ProxySettings.STATIC) {
mProxySettingsSpinner.setSelection(PROXY_STATIC);
showAdvancedFields = true;
- } else if (config.getProxySettings() == ProxySettings.PAC) {
+ } else if (proxySettings == ProxySettings.PAC) {
mProxySettingsSpinner.setSelection(PROXY_PAC);
showAdvancedFields = true;
} else {
@@ -1332,7 +1334,8 @@
mDns2View.addTextChangedListener(this);
}
if (config != null) {
- StaticIpConfiguration staticConfig = config.getStaticIpConfiguration();
+ StaticIpConfiguration staticConfig = config.getIpConfiguration()
+ .getStaticIpConfiguration();
if (staticConfig != null) {
if (staticConfig.ipAddress != null) {
mIpAddressView.setText(
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index add37dd..26042f5 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -304,11 +304,12 @@
}
mPrivacySettingsSpinner.setSelection(prefMacValue);
- if (config.getIpAssignment() == IpAssignment.STATIC) {
+ if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
mIpSettingsSpinner.setSelection(STATIC_IP);
showAdvancedFields = true;
// Display IP address.
- StaticIpConfiguration staticConfig = config.getStaticIpConfiguration();
+ StaticIpConfiguration staticConfig = config.getIpConfiguration()
+ .getStaticIpConfiguration();
if (staticConfig != null && staticConfig.ipAddress != null) {
addRow(group, R.string.wifi_ip_address,
staticConfig.ipAddress.getAddress().getHostAddress());
@@ -322,10 +323,11 @@
showAdvancedFields = true;
}
- if (config.getProxySettings() == ProxySettings.STATIC) {
+ ProxySettings proxySettings = config.getIpConfiguration().getProxySettings();
+ if (proxySettings == ProxySettings.STATIC) {
mProxySettingsSpinner.setSelection(PROXY_STATIC);
showAdvancedFields = true;
- } else if (config.getProxySettings() == ProxySettings.PAC) {
+ } else if (proxySettings == ProxySettings.PAC) {
mProxySettingsSpinner.setSelection(PROXY_PAC);
showAdvancedFields = true;
} else {
@@ -1328,7 +1330,8 @@
mDns2View.addTextChangedListener(this);
}
if (config != null) {
- StaticIpConfiguration staticConfig = config.getStaticIpConfiguration();
+ StaticIpConfiguration staticConfig = config.getIpConfiguration()
+ .getStaticIpConfiguration();
if (staticConfig != null) {
if (staticConfig.ipAddress != null) {
mIpAddressView.setText(
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index c48e739..225e68c 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -77,7 +77,6 @@
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
-import com.android.wifitrackerlib.WifiEntry.ConnectCallback.ConnectStatus;
import com.android.wifitrackerlib.WifiPickerTracker;
import java.time.Clock;
@@ -540,7 +539,7 @@
if (selectedEntry.isSaved()) {
if (!selectedEntry.getWifiConfiguration().getNetworkSelectionStatus()
- .getHasEverConnected()) {
+ .hasEverConnected()) {
launchConfigNewNetworkFragment(selectedEntry);
return true;
}
diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java
index 9b3c1b3..4faf11f 100644
--- a/src/com/android/settings/wifi/WifiUtils.java
+++ b/src/com/android/settings/wifi/WifiUtils.java
@@ -272,7 +272,7 @@
return CONNECT_TYPE_OPEN_NETWORK;
} else if (accessPoint.isSaved() && config != null
&& config.getNetworkSelectionStatus() != null
- && config.getNetworkSelectionStatus().getHasEverConnected()) {
+ && config.getNetworkSelectionStatus().hasEverConnected()) {
return CONNECT_TYPE_SAVED_NETWORK;
} else if (accessPoint.isPasspoint()) {
// Access point provided by an installed Passpoint provider, connect using
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
index be3c685..d179cae 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
@@ -33,14 +33,19 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
import android.util.ArrayMap;
import android.util.FeatureFlagUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardController;
import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard;
@@ -58,8 +63,9 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowSubscriptionManager;
+import org.robolectric.shadows.ShadowTelephonyManager;
import java.util.ArrayList;
import java.util.Arrays;
@@ -67,8 +73,9 @@
import java.util.Map;
import java.util.stream.Collectors;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ContextualCardManagerTest {
+ private static final int SUB_ID = 2;
private static final String TEST_SLICE_URI = "context://test/test";
private static final String TEST_SLICE_NAME = "test_name";
@@ -79,6 +86,8 @@
Lifecycle mLifecycle;
private Context mContext;
+ private ShadowSubscriptionManager mShadowSubscriptionManager;
+ private ShadowTelephonyManager mShadowTelephonyManager;
private ContextualCardManager mManager;
@Before
@@ -86,6 +95,16 @@
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.CONDITIONAL_CARDS, true);
+
+ mShadowSubscriptionManager = shadowOf(
+ mContext.getSystemService(SubscriptionManager.class));
+ mShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID);
+
+ final TelephonyManager telephonyManager =
+ mContext.getSystemService(TelephonyManager.class);
+ mShadowTelephonyManager = shadowOf(telephonyManager);
+ mShadowTelephonyManager.setTelephonyManagerForSubscriptionId(SUB_ID, telephonyManager);
+
mManager = new ContextualCardManager(mContext, mLifecycle, null /* bundle */);
}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java
index 0cb0598..ad2dd2a 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java
@@ -18,7 +18,13 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
import android.content.Context;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
import androidx.lifecycle.LifecycleOwner;
@@ -27,11 +33,17 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowSubscriptionManager;
+import org.robolectric.shadows.ShadowTelephonyManager;
@RunWith(RobolectricTestRunner.class)
public class ControllerRendererPoolTest {
+ private static final int SUB_ID = 1;
private static final int UNSUPPORTED_CARD_TYPE = -99999;
private static final int UNSUPPORTED_VIEW_TYPE = -99999;
@@ -41,12 +53,27 @@
private Lifecycle mLifecycle;
private LifecycleOwner mLifecycleOwner;
+ @Mock
+ private TelephonyManager mTelephonyMgr;
+
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
mContext = RuntimeEnvironment.application;
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
+ // SubscriptionManager and TelephonyManager for CellularDataConditionController
+ ShadowSubscriptionManager shadowSubscriptionMgr = shadowOf(
+ mContext.getSystemService(SubscriptionManager.class));
+ shadowSubscriptionMgr.setDefaultDataSubscriptionId(SUB_ID);
+
+ ShadowTelephonyManager shadowTelephonyMgr = Shadow.extract(
+ mContext.getSystemService(TelephonyManager.class));
+ shadowTelephonyMgr.setTelephonyManagerForSubscriptionId(SUB_ID, mTelephonyMgr);
+ when(mTelephonyMgr.createForSubscriptionId(anyInt())).thenReturn(mTelephonyMgr);
+
mPool = new ControllerRendererPool();
}
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
index c9b9ff9..adbd14d 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
@@ -17,6 +17,7 @@
package com.android.settings.media;
+import static android.app.slice.Slice.EXTRA_RANGE_VALUE;
import static android.app.slice.Slice.HINT_LIST_ITEM;
import static android.app.slice.SliceItem.FORMAT_SLICE;
@@ -144,6 +145,7 @@
final MediaDevice device = mock(MediaDevice.class);
when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
when(device.getIcon()).thenReturn(mTestDrawable);
+ when(device.getMaxVolume()).thenReturn(100);
when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
final Slice mediaSlice = mMediaOutputSlice.getSlice();
@@ -188,4 +190,23 @@
verify(mLocalMediaManager, never()).connectDevice(device);
}
+
+ @Test
+ public void onNotifyChange_adjustVolume() {
+ mDevices.clear();
+ final MediaDevice device = mock(MediaDevice.class);
+ when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
+ when(mLocalMediaManager.getMediaDeviceById(mDevices, TEST_DEVICE_1_ID)).thenReturn(device);
+ mDevices.add(device);
+
+ mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
+
+ final Intent intent = new Intent();
+ intent.putExtra("media_device_id", TEST_DEVICE_1_ID);
+ intent.putExtra(EXTRA_RANGE_VALUE, 30);
+
+ mMediaOutputSlice.onNotifyChange(intent);
+
+ verify(device).requestSetVolume(30);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
index a79ffd8..e0dc97f 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
@@ -24,6 +24,7 @@
import android.content.Context;
import android.content.res.Resources;
+import android.net.IpConfiguration;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiEnterpriseConfig.Eap;
@@ -391,6 +392,7 @@
private void checkSavedMacRandomizedValue(int macRandomizedValue) {
when(mWifiEntry.isSaved()).thenReturn(true);
final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
+ when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
mockWifiConfig.macRandomizationSetting = macRandomizedValue;
mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
@@ -505,6 +507,7 @@
when(mWifiEntry.isSaved()).thenReturn(true);
when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
+ when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
when(mockWifiEnterpriseConfig.getEapMethod()).thenReturn(Eap.PEAP);
mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig;
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index bf50742..3a17b6c 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -24,6 +24,7 @@
import android.content.Context;
import android.content.res.Resources;
+import android.net.IpConfiguration;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiEnterpriseConfig.Eap;
@@ -389,6 +390,7 @@
private void checkSavedMacRandomizedValue(int macRandomizedValue) {
when(mAccessPoint.isSaved()).thenReturn(true);
final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
+ when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
when(mAccessPoint.getConfig()).thenReturn(mockWifiConfig);
mockWifiConfig.macRandomizationSetting = macRandomizedValue;
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
@@ -503,6 +505,7 @@
when(mAccessPoint.isSaved()).thenReturn(true);
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
+ when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
when(mockWifiEnterpriseConfig.getEapMethod()).thenReturn(Eap.PEAP);
mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig ;
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/ConnectToWifiHandlerTest.java b/tests/robotests/src/com/android/settings/wifi/slice/ConnectToWifiHandlerTest.java
index 195bafc..ac1384f 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/ConnectToWifiHandlerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/ConnectToWifiHandlerTest.java
@@ -100,7 +100,7 @@
when(mAccessPoint.isSaved()).thenReturn(true);
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_PSK);
final NetworkSelectionStatus status = mock(NetworkSelectionStatus.class);
- when(status.getHasEverConnected()).thenReturn(true);
+ when(status.hasEverConnected()).thenReturn(true);
when(mWifiConfig.getNetworkSelectionStatus()).thenReturn(status);
mHandler.connect(mContext, mAccessPoint);