diff --git a/res/values/strings.xml b/res/values/strings.xml index 675de83916b..44342f47dbc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1955,6 +1955,8 @@ Failed to connect to network Forget + + Modify Failed to forget network @@ -6835,6 +6837,10 @@ Make sound and pop on screen + + Pop on screen + diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml index 1d36c48728f..21904e671a9 100644 --- a/res/xml/configure_notification_settings.xml +++ b/res/xml/configure_notification_settings.xml @@ -22,16 +22,11 @@ android:key="dashboard_tile_placeholder" android:order="1"/> - - - - - + + - - - + + + + + diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml index abbeda67384..4ca92bfd71b 100644 --- a/res/xml/connected_devices.xml +++ b/res/xml/connected_devices.xml @@ -42,6 +42,7 @@ android:key="sms_mirroring" android:title="@string/sms_mirroring_pref" android:icon="@drawable/ic_compare_arrows_24dp" + android:summary="@string/summary_placeholder" android:order="-3"/> (); - mAdminDisallowedTetherConfig = checkIfRestrictionEnforced( - mContext, DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()) != null; + mAdminDisallowedTetherConfig = isTetherConfigDisallowed(context); mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); @@ -170,6 +169,11 @@ public class TetherPreferenceController extends AbstractPreferenceController imp } } + public static boolean isTetherConfigDisallowed(Context context) { + return checkIfRestrictionEnforced( + context, DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()) != null; + } + @VisibleForTesting void updateSummary() { if (mPreference == null) { diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java index 2fde357584f..59b918a936f 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java @@ -17,8 +17,17 @@ package com.android.settings.dashboard.suggestions; -import android.app.ActivityManager; +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; +import android.app.ActivityManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -59,18 +68,6 @@ import org.robolectric.annotation.Config; import java.util.ArrayList; import java.util.List; -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; -import static org.mockito.Mockito.when; - @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, @@ -337,7 +334,7 @@ public class SuggestionFeatureProviderImplTest { @Test public void dismissSuggestion_hasMoreDismissCount_shouldNotDisableComponent() { - when(mSuggestionParser.dismissSuggestion(any(Tile.class), anyBoolean())) + when(mSuggestionParser.dismissSuggestion(any(Tile.class))) .thenReturn(false); mProvider.dismissSuggestion(mContext, mSuggestionParser, mSuggestion); @@ -348,25 +345,6 @@ public class SuggestionFeatureProviderImplTest { verify(mContext, never()).getPackageManager(); } - @Test - public void dismissSuggestion_isShowingFirstImpressionType_dismissWithoutSmartSuggestionRule() { - mProvider = spy(mProvider); - when(mProvider.isSmartSuggestionEnabled(any(Context.class))).thenReturn(true); - final SharedPreferences pref = RuntimeEnvironment.application.getSharedPreferences( - "test_pref", Context.MODE_PRIVATE); - when(mProvider.getSharedPrefs(mContext)).thenReturn(pref); - when(mSuggestionParser.dismissSuggestion(any(Tile.class), anyBoolean())) - .thenReturn(false); - - mProvider.dismissSuggestion(mContext, mSuggestionParser, mSuggestion); - - verify(mFactory.metricsFeatureProvider).action( - eq(mContext), - eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_DISMISS_SUGGESTION), - anyString()); - verify(mSuggestionParser).dismissSuggestion(any(Tile.class), eq(false)); - } - @Test public void dismissSuggestion_noContext_shouldDoNothing() { mProvider.dismissSuggestion(null, mSuggestionParser, mSuggestion); @@ -376,7 +354,7 @@ public class SuggestionFeatureProviderImplTest { @Test public void dismissSuggestion_hasNoMoreDismissCount_shouldDisableComponent() { - when(mSuggestionParser.dismissSuggestion(any(Tile.class), anyBoolean())) + when(mSuggestionParser.dismissSuggestion(any(Tile.class))) .thenReturn(true); mProvider.dismissSuggestion(mContext, mSuggestionParser, mSuggestion); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java index c7eebc84e6c..54d043c419d 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -368,6 +368,16 @@ public class AdvancedPowerUsageDetailTest { "0%"); } + @Test + public void testStartBatteryDetailPage_batteryEntryNotExisted_extractUidFromPackageName() throws + PackageManager.NameNotFoundException{ + doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */); + + AdvancedPowerUsageDetail.startBatteryDetailPage(mTestActivity, null, PACKAGE_NAME[0]); + + assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); + } + @Test public void testStartBatteryDetailPage_defaultPackageNull_chooseFromBatterySipper() { mBatteryEntry.defaultPackageName = null; diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java index 1ae5398657e..0f61a5d816e 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java @@ -89,6 +89,32 @@ public class ShadowSecureSettings { } } + @Implementation + public static boolean putFloatForUser( + ContentResolver resolver, String name, float value, int userHandle) { + final Table userTable = getUserTable(resolver); + synchronized (userTable) { + userTable.put(userHandle, name, value); + return true; + } + } + + @Implementation + public static float getFloatForUser( + ContentResolver resolver, String name, float def, int userHandle) { + final Table userTable = getUserTable(resolver); + synchronized (userTable) { + final Object object = userTable.get(userHandle, name); + return object instanceof Float ? (Float) object : def; + } + } + + public static void clear() { + synchronized (sUserDataMap) { + sUserDataMap.clear(); + } + } + private static Table getUserTable(ContentResolver contentResolver) { synchronized (sUserDataMap) { Table table = sUserDataMap.get(contentResolver);