diff --git a/Android.mk b/Android.mk
index f10b3ec2d08..3610e7774fb 100644
--- a/Android.mk
+++ b/Android.mk
@@ -41,6 +41,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
androidx.lifecycle_lifecycle-extensions \
guava \
jsr305 \
+ settings-contextual-card-protos-lite \
contextualcards \
settings-logtags \
diff --git a/libs/contextualcards.aar b/libs/contextualcards.aar
index a44a26c38b1..5e855fa0dec 100755
Binary files a/libs/contextualcards.aar and b/libs/contextualcards.aar differ
diff --git a/protos/Android.bp b/protos/Android.bp
new file mode 100644
index 00000000000..533dbca6564
--- /dev/null
+++ b/protos/Android.bp
@@ -0,0 +1,8 @@
+java_library_static {
+ name: "settings-contextual-card-protos-lite",
+ host_supported: true,
+ proto: {
+ type: "lite",
+ },
+ srcs: ["contextual_card_list.proto"],
+}
\ No newline at end of file
diff --git a/protos/contextual_card_list.proto b/protos/contextual_card_list.proto
new file mode 100644
index 00000000000..89e6c138640
--- /dev/null
+++ b/protos/contextual_card_list.proto
@@ -0,0 +1,19 @@
+syntax = "proto2";
+
+package com.android.settings.intelligence;
+option java_outer_classname = "ContextualCardProto";
+
+message ContextualCardList {
+ repeated ContextualCard card = 1;
+}
+
+message ContextualCard {
+ // Slice uri of the contextual card
+ optional string sliceUri = 1;
+
+ // {@link ContextualCardCategory}.
+ optional int32 category = 2;
+
+ // Name of the card. It should be identical in every app
+ optional string cardName = 3;
+}
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9843b800259..b52bfea6481 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -10088,7 +10088,7 @@
All Settings
- Your Settings
+ Suggestions
CBRS Data
diff --git a/src/com/android/settings/MonitoringCertInfoActivity.java b/src/com/android/settings/MonitoringCertInfoActivity.java
index 6785b4be541..eadebc1f4fe 100644
--- a/src/com/android/settings/MonitoringCertInfoActivity.java
+++ b/src/com/android/settings/MonitoringCertInfoActivity.java
@@ -46,10 +46,17 @@ public class MonitoringCertInfoActivity extends Activity implements OnClickListe
mUserId = getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ final UserHandle user;
+ if (mUserId == UserHandle.USER_NULL) {
+ user = null;
+ } else {
+ user = UserHandle.of(mUserId);
+ }
+
DevicePolicyManager dpm = getSystemService(DevicePolicyManager.class);
final int numberOfCertificates = getIntent().getIntExtra(
Settings.EXTRA_NUMBER_OF_CERTIFICATES, 1);
- final int titleId = RestrictedLockUtils.getProfileOrDeviceOwner(this, mUserId) != null
+ final int titleId = RestrictedLockUtils.getProfileOrDeviceOwner(this, user) != null
? R.plurals.ssl_ca_cert_settings_button // Check certificate
: R.plurals.ssl_ca_cert_dialog_title; // Trust or remove certificate
final CharSequence title = getResources().getQuantityText(titleId, numberOfCertificates);
diff --git a/src/com/android/settings/RestrictedSettingsFragment.java b/src/com/android/settings/RestrictedSettingsFragment.java
index df438d54069..13bc9c51147 100644
--- a/src/com/android/settings/RestrictedSettingsFragment.java
+++ b/src/com/android/settings/RestrictedSettingsFragment.java
@@ -222,8 +222,8 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
public EnforcedAdmin getRestrictionEnforcedAdmin() {
mEnforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(getActivity(),
mRestrictionKey, UserHandle.myUserId());
- if (mEnforcedAdmin != null && mEnforcedAdmin.userId == UserHandle.USER_NULL) {
- mEnforcedAdmin.userId = UserHandle.myUserId();
+ if (mEnforcedAdmin != null && mEnforcedAdmin.user == null) {
+ mEnforcedAdmin.user = UserHandle.of(UserHandle.myUserId());
}
return mEnforcedAdmin;
}
diff --git a/src/com/android/settings/TrustedCredentialsDialogBuilder.java b/src/com/android/settings/TrustedCredentialsDialogBuilder.java
index 6fd846d0135..806da92099b 100644
--- a/src/com/android/settings/TrustedCredentialsDialogBuilder.java
+++ b/src/com/android/settings/TrustedCredentialsDialogBuilder.java
@@ -229,7 +229,7 @@ class TrustedCredentialsDialogBuilder extends AlertDialog.Builder {
&& !mDpm.isCaCertApproved(certHolder.getAlias(), certHolder.getUserId());
final boolean isProfileOrDeviceOwner = RestrictedLockUtils.getProfileOrDeviceOwner(
- mActivity, certHolder.getUserId()) != null;
+ mActivity, UserHandle.of(certHolder.getUserId())) != null;
// Show trust button only when it requires consumer user (non-PO/DO) to approve
CharSequence displayText = mActivity.getText(!isProfileOrDeviceOwner && mNeedsApproval
diff --git a/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java b/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java
index 9500fd5ae34..ee58bfea799 100644
--- a/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java
+++ b/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java
@@ -14,9 +14,9 @@
package com.android.settings.applications.autofill;
import android.app.Activity;
+import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
-import android.os.UserHandle;
import android.view.autofill.AutofillManager;
import com.android.settings.applications.defaultapps.DefaultAutofillPicker;
@@ -34,23 +34,23 @@ public class AutofillPickerTrampolineActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- // First check if the current user's service already belongs to the app...
- final Intent intent = getIntent();
- final String packageName = intent.getData().getSchemeSpecificPart();
- final String currentService = DefaultAutofillPicker.getDefaultKey(
- this, UserHandle.myUserId());
- if (currentService != null && currentService.startsWith(packageName)) {
- // ...and succeed right away if it does.
- setResult(RESULT_OK);
+ final AutofillManager afm = getSystemService(AutofillManager.class);
+
+ // First check if the Autofill is available for the current user...
+ if (afm == null || !afm.hasAutofillFeature() || !afm.isAutofillSupported()) {
+ // ... and fail right away if it is not.
+ setResult(RESULT_CANCELED);
finish();
return;
}
- // Then check if the Autofill is available for the current user...
- final AutofillManager afm = getSystemService(AutofillManager.class);
- if (afm == null || !afm.hasAutofillFeature() || !afm.isAutofillSupported()) {
- // ... and fail right away if it is not.
- setResult(RESULT_CANCELED);
+ // Then check if the current user's service already belongs to the app...
+ final Intent intent = getIntent();
+ final String packageName = intent.getData().getSchemeSpecificPart();
+ final ComponentName currentService = afm.getAutofillServiceComponentName();
+ if (currentService != null && currentService.getPackageName().equals(packageName)) {
+ // ...and succeed right away if it does.
+ setResult(RESULT_OK);
finish();
return;
}
diff --git a/src/com/android/settings/dashboard/RestrictedDashboardFragment.java b/src/com/android/settings/dashboard/RestrictedDashboardFragment.java
index ca30247e2f2..f43445ba5dd 100644
--- a/src/com/android/settings/dashboard/RestrictedDashboardFragment.java
+++ b/src/com/android/settings/dashboard/RestrictedDashboardFragment.java
@@ -215,8 +215,8 @@ public abstract class RestrictedDashboardFragment extends DashboardFragment {
public EnforcedAdmin getRestrictionEnforcedAdmin() {
mEnforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(getActivity(),
mRestrictionKey, UserHandle.myUserId());
- if (mEnforcedAdmin != null && mEnforcedAdmin.userId == UserHandle.USER_NULL) {
- mEnforcedAdmin.userId = UserHandle.myUserId();
+ if (mEnforcedAdmin != null && mEnforcedAdmin.user == null) {
+ mEnforcedAdmin.user = UserHandle.of(UserHandle.myUserId());
}
return mEnforcedAdmin;
}
diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index 2d96fe92092..45997f8efc3 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -73,7 +73,8 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
static final String KEY_SET_DATA_LIMIT = "set_data_limit";
private static final String KEY_DATA_LIMIT = "data_limit";
- private NetworkTemplate mNetworkTemplate;
+ @VisibleForTesting
+ NetworkTemplate mNetworkTemplate;
private Preference mBillingCycle;
private Preference mDataWarning;
private SwitchPreference mEnableDataWarning;
@@ -100,10 +101,15 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
- mDataUsageController = new DataUsageController(getContext());
+ final Context context = getContext();
+ mDataUsageController = new DataUsageController(context);
Bundle args = getArguments();
mNetworkTemplate = args.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE);
+ if (mNetworkTemplate == null) {
+ mNetworkTemplate = DataUsageUtils.getDefaultTemplate(context,
+ DataUsageUtils.getDefaultSubscriptionId(context));
+ }
mBillingCycle = findPreference(KEY_BILLING_CYCLE);
mEnableDataWarning = (SwitchPreference) findPreference(KEY_SET_DATA_WARNING);
diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java
index 3001d2e3f1e..53565ac803e 100644
--- a/src/com/android/settings/datausage/DataUsageUtils.java
+++ b/src/com/android/settings/datausage/DataUsageUtils.java
@@ -172,8 +172,7 @@ public final class DataUsageUtils {
return SystemProperties.get(TEST_RADIOS_PROP).contains("wifi");
}
- ConnectivityManager connectivityManager =
- context.getSystemService(ConnectivityManager.class);
+ final ConnectivityManager connectivityManager = ConnectivityManager.from(context);
return connectivityManager != null && connectivityManager.isNetworkSupported(TYPE_WIFI);
}
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
index 104b216b604..11427661cdb 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
@@ -53,12 +53,18 @@ public class ActionDisabledByAdminDialog extends Activity
@androidx.annotation.VisibleForTesting
EnforcedAdmin getAdminDetailsFromIntent(Intent intent) {
- final EnforcedAdmin admin = new EnforcedAdmin(null, UserHandle.myUserId());
+ final EnforcedAdmin admin = new EnforcedAdmin(null, UserHandle.of(UserHandle.myUserId()));
if (intent == null) {
return admin;
}
admin.component = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN);
- admin.userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+
+ int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ if (userId == UserHandle.USER_NULL) {
+ admin.user = null;
+ } else {
+ admin.user = UserHandle.of(userId);
+ }
return admin;
}
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
index ac1939ceed0..f5010f9d5d4 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
@@ -16,6 +16,7 @@
package com.android.settings.enterprise;
+import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
@@ -60,6 +61,14 @@ public class ActionDisabledByAdminDialogHelper {
mActivity = activity;
}
+ private @UserIdInt int getEnforcementAdminUserId() {
+ if (mEnforcedAdmin.user == null) {
+ return UserHandle.USER_NULL;
+ } else {
+ return mEnforcedAdmin.user.getIdentifier();
+ }
+ }
+
public AlertDialog.Builder prepareDialogBuilder(String restriction,
EnforcedAdmin enforcedAdmin) {
mEnforcedAdmin = enforcedAdmin;
@@ -68,7 +77,7 @@ public class ActionDisabledByAdminDialogHelper {
final AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
mDialogView = (ViewGroup) LayoutInflater.from(builder.getContext()).inflate(
R.layout.admin_support_details_dialog, null);
- initializeDialogViews(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId,
+ initializeDialogViews(mDialogView, mEnforcedAdmin.component, getEnforcementAdminUserId(),
mRestriction);
return builder
.setPositiveButton(R.string.okay, null)
@@ -86,7 +95,7 @@ public class ActionDisabledByAdminDialogHelper {
}
mEnforcedAdmin = admin;
mRestriction = restriction;
- initializeDialogViews(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId,
+ initializeDialogViews(mDialogView, mEnforcedAdmin.component, getEnforcementAdminUserId(),
mRestriction);
}
@@ -108,7 +117,15 @@ public class ActionDisabledByAdminDialogHelper {
}
setAdminSupportTitle(root, restriction);
- setAdminSupportDetails(mActivity, root, new EnforcedAdmin(admin, userId));
+
+ final UserHandle user;
+ if (userId == UserHandle.USER_NULL) {
+ user = null;
+ } else {
+ user = UserHandle.of(userId);
+ }
+
+ setAdminSupportDetails(mActivity, root, new EnforcedAdmin(admin, user));
}
@VisibleForTesting
@@ -152,20 +169,27 @@ public class ActionDisabledByAdminDialogHelper {
if (enforcedAdmin == null || enforcedAdmin.component == null) {
return;
}
+
+ final int userId;
+ if (enforcedAdmin.user == null) {
+ userId = UserHandle.USER_NULL;
+ } else {
+ userId = enforcedAdmin.user.getIdentifier();
+ }
+
final DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService(
Context.DEVICE_POLICY_SERVICE);
if (!RestrictedLockUtilsInternal.isAdminInCurrentUserOrProfile(activity,
enforcedAdmin.component) || !RestrictedLockUtils.isCurrentUserOrProfile(
- activity, enforcedAdmin.userId)) {
+ activity, userId)) {
enforcedAdmin.component = null;
} else {
- if (enforcedAdmin.userId == UserHandle.USER_NULL) {
- enforcedAdmin.userId = UserHandle.myUserId();
+ if (enforcedAdmin.user == null) {
+ enforcedAdmin.user = UserHandle.of(UserHandle.myUserId());
}
CharSequence supportMessage = null;
if (UserHandle.isSameApp(Process.myUid(), Process.SYSTEM_UID)) {
- supportMessage = dpm.getShortSupportMessageForUser(
- enforcedAdmin.component, enforcedAdmin.userId);
+ supportMessage = dpm.getShortSupportMessageForUser(enforcedAdmin.component, userId);
}
if (supportMessage != null) {
final TextView textView = root.findViewById(R.id.admin_support_msg);
@@ -183,8 +207,7 @@ public class ActionDisabledByAdminDialogHelper {
enforcedAdmin.component);
intent.putExtra(DeviceAdminAdd.EXTRA_CALLED_FROM_SUPPORT_DIALOG, true);
// DeviceAdminAdd class may need to run as managed profile.
- activity.startActivityAsUser(intent,
- new UserHandle(enforcedAdmin.userId));
+ activity.startActivityAsUser(intent, enforcedAdmin.user);
} else {
intent.setClass(activity, Settings.DeviceAdminSettingsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
index 44705c59522..2dede95e758 100644
--- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -21,14 +21,12 @@ import static android.provider.SettingsSlicesContract.KEY_WIFI;
import android.annotation.Nullable;
import com.android.settings.homepage.deviceinfo.DataUsageSlice;
+import com.android.settings.intelligence.ContextualCardProto.ContextualCard;
+import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
import com.android.settings.wifi.WifiSlice;
-import com.google.android.settings.intelligence.libs.contextualcards.ContextualCard;
import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
-import java.util.ArrayList;
-import java.util.List;
-
/** Provides dynamic card for SettingsIntelligence. */
public class SettingsContextualCardProvider extends ContextualCardProvider {
@@ -36,21 +34,22 @@ public class SettingsContextualCardProvider extends ContextualCardProvider {
@Override
@Nullable
- public List getContextualCards() {
- final List cards = new ArrayList<>();
+ public ContextualCardList getContextualCards() {
final ContextualCard wifiCard =
- new ContextualCard.Builder()
+ ContextualCard.newBuilder()
.setSliceUri(WifiSlice.WIFI_URI.toString())
- .setName(KEY_WIFI)
+ .setCardName(KEY_WIFI)
.build();
final ContextualCard dataUsageCard =
- new ContextualCard.Builder()
+ ContextualCard.newBuilder()
.setSliceUri(DataUsageSlice.DATA_USAGE_CARD_URI.toString())
- .setName(DataUsageSlice.PATH_DATA_USAGE_CARD)
+ .setCardName(DataUsageSlice.PATH_DATA_USAGE_CARD)
.build();
+ final ContextualCardList cards = ContextualCardList.newBuilder()
+ .addCard(wifiCard)
+ .addCard(dataUsageCard)
+ .build();
- cards.add(wifiCard);
- cards.add(dataUsageCard);
return cards;
}
}
diff --git a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java
index 7d5ebf13347..7b37855c6f7 100644
--- a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java
+++ b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java
@@ -25,6 +25,7 @@ import androidx.preference.Preference;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.utils.ThreadUtils;
public abstract class RingtonePreferenceControllerBase extends AbstractPreferenceController
implements PreferenceControllerMixin {
@@ -45,11 +46,17 @@ public abstract class RingtonePreferenceControllerBase extends AbstractPreferenc
@Override
public void updateState(Preference preference) {
+ ThreadUtils.postOnBackgroundThread(() -> updateSummary(preference));
+ }
+
+ private void updateSummary(Preference preference) {
Uri ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(mContext, getRingtoneType());
final CharSequence summary = Ringtone.getTitle(
mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */);
if (summary != null) {
- preference.setSummary(summary);
+ ThreadUtils.postOnMainThread(() -> {
+ preference.setSummary(summary);
+ });
}
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java
index 6c78c65c889..fe10d3e28c8 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java
@@ -31,6 +31,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.os.UserHandle;
import android.os.UserManager;
import android.view.View;
@@ -67,7 +68,8 @@ public class BluetoothEnablerTest {
@BeforeClass
public static void beforeClass() {
- sFakeEnforcedAdmin = new EnforcedAdmin(new ComponentName("test.package", "test.Class"), 10);
+ sFakeEnforcedAdmin = new EnforcedAdmin(new ComponentName("test.package", "test.Class"),
+ UserHandle.of(10));
}
@Mock
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java
index bfbdd7f78a4..faab3bd39a3 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java
@@ -19,14 +19,11 @@ package com.android.settings.bluetooth;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -61,11 +58,6 @@ public class BluetoothSliceBuilderTest {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
}
@@ -98,4 +90,4 @@ public class BluetoothSliceBuilderTest {
assertThat(adapter.isEnabled()).isTrue();
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
index eb5e4911664..1560af3261b 100644
--- a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
@@ -16,14 +16,17 @@
package com.android.settings.datausage;
import static android.net.NetworkPolicy.CYCLE_NONE;
+import static com.google.common.truth.Truth.assertThat;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-
+import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.nullable;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -32,14 +35,20 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.net.ConnectivityManager;
+import android.net.NetworkPolicyManager;
import android.os.Bundle;
+import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.SwitchPreference;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.NetworkPolicyEditor;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.FooterPreferenceMixinCompat;
import org.junit.Before;
import org.junit.Test;
@@ -47,6 +56,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
public class BillingCycleSettingsTest {
@@ -60,6 +70,10 @@ public class BillingCycleSettingsTest {
PreferenceManager mMockPreferenceManager;
@Mock
private NetworkPolicyEditor mNetworkPolicyEditor;
+ @Mock
+ private ConnectivityManager mConnectivityManager;
+ @Mock
+ private NetworkPolicyManager mNetworkPolicyManager;
private Context mContext;
@Mock
@@ -96,7 +110,8 @@ public class BillingCycleSettingsTest {
public void testDataUsageLimit_shouldNotBeSetOnCancel() {
mConfirmLimitFragment.onClick(null, DialogInterface.BUTTON_NEGATIVE);
- assertFalse(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, true));
+ assertThat(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, true))
+ .isFalse();
verify(mMockBillingCycleSettings, never()).setPolicyLimitBytes(anyLong());
}
@@ -104,7 +119,8 @@ public class BillingCycleSettingsTest {
public void testDataUsageLimit_shouldBeSetOnConfirmation() {
mConfirmLimitFragment.onClick(null, DialogInterface.BUTTON_POSITIVE);
- assertTrue(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, false));
+ assertThat(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, false))
+ .isTrue();
verify(mMockBillingCycleSettings).setPolicyLimitBytes(LIMIT_BYTES);
}
@@ -124,4 +140,32 @@ public class BillingCycleSettingsTest {
verify(mBillingCycle).setSummary(null);
}
+
+ @Test
+ public void onCreate_emptyArguments_shouldSetDefaultNetworkTemplate() {
+ final BillingCycleSettings billingCycleSettings = spy(new BillingCycleSettings());
+ when(billingCycleSettings.getContext()).thenReturn(mContext);
+ when(billingCycleSettings.getArguments()).thenReturn(Bundle.EMPTY);
+ final FragmentActivity activity = mock(FragmentActivity.class);
+ when(billingCycleSettings.getActivity()).thenReturn(activity);
+ final Resources.Theme theme = mContext.getTheme();
+ when(activity.getTheme()).thenReturn(theme);
+ doNothing().when(billingCycleSettings)
+ .onCreatePreferences(any(Bundle.class), nullable(String.class));
+ when(mContext.getSystemService(Context.NETWORK_POLICY_SERVICE))
+ .thenReturn(mNetworkPolicyManager);
+ when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
+ .thenReturn(mConnectivityManager);
+ when(mConnectivityManager.isNetworkSupported(anyInt())).thenReturn(true);
+ final SwitchPreference preference = mock(SwitchPreference.class);
+ when(billingCycleSettings.findPreference(anyString())).thenReturn(preference);
+ final FooterPreferenceMixinCompat footer = mock(FooterPreferenceMixinCompat.class);
+ ReflectionHelpers.setField(billingCycleSettings, "mFooterPreferenceMixin", footer);
+ when(footer.createFooterPreference()).thenReturn(mock(FooterPreference.class));
+
+ billingCycleSettings.onCreate(Bundle.EMPTY);
+
+ assertThat(billingCycleSettings.mNetworkTemplate).isNotNull();
+ }
+
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 254e4f6f654..517154867c5 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -121,7 +121,7 @@ public class DataUsageSummaryPreferenceControllerTest {
mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
- when(mActivity.getSystemService(ConnectivityManager.class))
+ when(mActivity.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(mConnectivityManager);
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
index 9b138a657a3..0a265a11fe3 100644
--- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
@@ -27,6 +27,7 @@ import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.os.Process;
+import android.os.UserHandle;
import android.os.UserManager;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@@ -76,7 +77,7 @@ public class ActionDisabledByAdminDialogHelperTest {
final int userId = 123;
final ComponentName component = new ComponentName("some.package.name",
"some.package.name.SomeClass");
- final EnforcedAdmin admin = new EnforcedAdmin(component, userId);
+ final EnforcedAdmin admin = new EnforcedAdmin(component, UserHandle.of(userId));
mHelper.showAdminPolicies(admin, mActivity);
@@ -90,7 +91,7 @@ public class ActionDisabledByAdminDialogHelperTest {
@Test
public void testShowAdminPoliciesWithoutComponent() {
final int userId = 123;
- final EnforcedAdmin admin = new EnforcedAdmin(null, userId);
+ final EnforcedAdmin admin = new EnforcedAdmin(null, UserHandle.of(userId));
mHelper.showAdminPolicies(admin, mActivity);
final Intent intent = mActivityShadow.getNextStartedActivity();
assertEquals(intent.getComponent(), new ComponentName(mActivity,
@@ -146,7 +147,7 @@ public class ActionDisabledByAdminDialogHelperTest {
final ViewGroup view = new FrameLayout(mActivity);
final ComponentName component = new ComponentName("some.package.name",
"some.package.name.SomeClass");
- final EnforcedAdmin admin = new EnforcedAdmin(component, 123);
+ final EnforcedAdmin admin = new EnforcedAdmin(component, UserHandle.of(123));
final TextView textView = new TextView(mActivity);
textView.setId(R.id.admin_support_msg);
@@ -169,7 +170,7 @@ public class ActionDisabledByAdminDialogHelperTest {
final ShadowUserManager userManagerShadow = Shadow.extract(userManager);
final ComponentName component = new ComponentName("some.package.name",
"some.package.name.SomeClass");
- final EnforcedAdmin admin = new EnforcedAdmin(component, 123);
+ final EnforcedAdmin admin = new EnforcedAdmin(component, UserHandle.of(123));
dpmShadow.setShortSupportMessageForUser(component, 123, "some message");
dpmShadow.setIsAdminActiveAsUser(false);
diff --git a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogTest.java
index ebdfad695fb..e016a06990c 100644
--- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogTest.java
@@ -43,7 +43,7 @@ public class ActionDisabledByAdminDialogTest {
public void testGetAdminDetailsFromIntent() {
final int userId = 123;
final ComponentName component = new ComponentName("com.some.package", ".SomeClass");
- final EnforcedAdmin expectedAdmin = new EnforcedAdmin(component, userId);
+ final EnforcedAdmin expectedAdmin = new EnforcedAdmin(component, UserHandle.of(userId));
final Intent intent = new Intent();
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, component);
@@ -54,7 +54,7 @@ public class ActionDisabledByAdminDialogTest {
@Test
public void testGetAdminDetailsFromNullIntent() {
final int userId = UserHandle.myUserId();
- final EnforcedAdmin expectedAdmin = new EnforcedAdmin(null, userId);
+ final EnforcedAdmin expectedAdmin = new EnforcedAdmin(null, UserHandle.of(userId));
Assert.assertEquals(expectedAdmin, mDialog.getAdminDetailsFromIntent(null));
}
diff --git a/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java b/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java
index 07296e652c5..6bea0312a71 100644
--- a/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java
@@ -19,12 +19,9 @@ package com.android.settings.flashlight;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
-import android.content.res.Resources;
import android.provider.Settings;
import androidx.slice.Slice;
@@ -55,11 +52,6 @@ public class FlashlightSliceBuilderTest {
public void setUp() {
mContext = spy(RuntimeEnvironment.application);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
}
diff --git a/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
index 865989d3765..defe0d9f759 100644
--- a/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
@@ -23,6 +23,7 @@ import android.net.Uri;
import com.android.settings.homepage.deviceinfo.DataUsageSlice;
import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
+import com.android.settings.homepage.deviceinfo.StorageSlice;
import com.android.settings.slices.SettingsSliceProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -56,14 +57,15 @@ public class CardContentLoaderTest {
public void createStaticCards_shouldReturnTwoCards() {
final List defaultData = mCardContentLoader.createStaticCards();
- assertThat(defaultData).hasSize(2);
+ assertThat(defaultData).hasSize(3);
}
@Test
public void createStaticCards_shouldContainDataUsageAndDeviceInfo() {
final Uri dataUsage = DataUsageSlice.DATA_USAGE_CARD_URI;
final Uri deviceInfo = DeviceInfoSlice.DEVICE_INFO_CARD_URI;
- final List expectedUris = Arrays.asList(dataUsage, deviceInfo);
+ final Uri storageInfo = StorageSlice.STORAGE_CARD_URI;
+ final List expectedUris = Arrays.asList(dataUsage, deviceInfo, storageInfo);
final List actualCardUris = mCardContentLoader.createStaticCards().stream().map(
ContextualCard::getSliceUri).collect(Collectors.toList());
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
index 80d94977607..a80b963c594 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
@@ -24,9 +24,9 @@ import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
+import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.google.android.settings.intelligence.libs.contextualcards.ContextualCard;
import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
import org.junit.Before;
@@ -34,8 +34,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
-import java.util.ArrayList;
-
@RunWith(SettingsRobolectricTestRunner.class)
public class SettingsContextualCardProviderTest {
@@ -54,11 +52,12 @@ public class SettingsContextualCardProviderTest {
}
@Test
- public void contentProviderCall_returnCorrectSize() {
+ public void contentProviderCall_returnCorrectSize() throws Exception {
final Bundle returnValue =
mResolver.call(mUri, ContextualCardProvider.METHOD_GET_CARD_LIST, "", null);
- final ArrayList cards =
- returnValue.getParcelableArrayList(ContextualCardProvider.BUNDLE_CARD_LIST);
- assertThat(cards.size()).isEqualTo(2);
+ final ContextualCardList cards =
+ ContextualCardList.parseFrom(
+ returnValue.getByteArray(ContextualCardProvider.BUNDLE_CARD_LIST));
+ assertThat(cards.getCardCount()).isEqualTo(2);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java b/tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java
index c03070c5363..c0af3d811dc 100644
--- a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java
@@ -19,12 +19,10 @@ package com.android.settings.homepage.deviceinfo;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
-import android.content.res.Resources;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -60,11 +58,6 @@ public class DataUsageSliceTest {
public void setUp() {
mContext = spy(RuntimeEnvironment.application);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java b/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java
index 65b2e878d6a..90222caf2b1 100644
--- a/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java
@@ -2,12 +2,9 @@ package com.android.settings.location;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
-import android.content.res.Resources;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -37,11 +34,6 @@ public class LocationSliceBuilderTest {
public void setUp() {
mContext = spy(RuntimeEnvironment.application);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
}
diff --git a/tests/robotests/src/com/android/settings/mobilenetwork/Enhanced4gLteSliceHelperTest.java b/tests/robotests/src/com/android/settings/mobilenetwork/Enhanced4gLteSliceHelperTest.java
index 6d983816040..1943b3630ac 100644
--- a/tests/robotests/src/com/android/settings/mobilenetwork/Enhanced4gLteSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/mobilenetwork/Enhanced4gLteSliceHelperTest.java
@@ -23,7 +23,6 @@ import static android.app.slice.SliceItem.FORMAT_TEXT;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -32,7 +31,6 @@ import static org.mockito.Mockito.when;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import android.telephony.CarrierConfigManager;
import androidx.slice.Slice;
@@ -98,11 +96,6 @@ public class Enhanced4gLteSliceHelperTest {
//setup for SliceBroadcastReceiver test
mReceiver = spy(new SliceBroadcastReceiver());
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
mEnhanced4gLteSliceHelper = new FakeEnhanced4gLteSliceHelper(mContext);
// Set-up specs for SliceMetadata.
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java
index bfc5c428f05..6c43736b816 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java
@@ -20,14 +20,11 @@ import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import android.provider.Settings;
import androidx.slice.Slice;
@@ -60,11 +57,6 @@ public class ZenModeSliceBuilderTest {
public void setUp() {
mContext = spy(RuntimeEnvironment.application);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
index 16e9cb737a5..078186af6c8 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
@@ -18,7 +18,6 @@ package com.android.settings.slices;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@@ -27,7 +26,6 @@ import static org.mockito.Mockito.verify;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import android.net.Uri;
import android.provider.Settings;
import android.provider.SettingsSlicesContract;
@@ -85,11 +83,6 @@ public class SliceBuilderUtilsTest {
mFeatureFactory = FakeFeatureFactory.setupForTest();
mLoggingArgumentCatpor = ArgumentCaptor.forClass(Pair.class);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
index a68c5d38bac..bd21cdc3cb3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -30,18 +30,12 @@ import org.robolectric.android.XmlResourceParserImpl;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
-import org.robolectric.res.StyleData;
-import org.robolectric.res.StyleResolver;
-import org.robolectric.res.ThemeStyleSet;
import org.robolectric.shadows.ShadowAssetManager;
import org.robolectric.shadows.ShadowResources;
import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.ReflectionHelpers.ClassParameter;
import org.w3c.dom.Node;
-import java.util.List;
-import java.util.Map;
-
/**
* Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
* handle because they are too new or private.
@@ -207,46 +201,10 @@ public class SettingsShadowResources extends ShadowResources {
if (attributeValue.contains("attr/fingerprint_layout_theme")) {
// Workaround for https://github.com/robolectric/robolectric/issues/2641
node.setNodeValue("@style/FingerprintLayoutTheme");
- } else if (attributeValue.startsWith("@*android:string")) {
- node.setNodeValue("PLACEHOLDER");
- } else if (attributeValue.startsWith("@*android:dimen")) {
- node.setNodeValue("321dp");
- } else if (attributeValue.startsWith("@*android:drawable")) {
- node.setNodeValue("");
}
}
}
}
-
- // Track down all styles and remove all inheritance from private styles.
- final Map appliedStylesList =
- ReflectionHelpers.getField(mAssetManager, "nativeThemes");
- synchronized (appliedStylesList) {
- for (Long idx : appliedStylesList.keySet()) {
- final ThemeStyleSet appliedStyles = ReflectionHelpers.getField(
- appliedStylesList.get(idx), "themeStyleSet");
- // The Object's below are actually ShadowAssetManager.OverlayedStyle.
- // We can't use
-
- // it here because it's private.
- final List overlayedStyles =
- ReflectionHelpers.getField(appliedStyles, "styles");
- for (Object appliedStyle : overlayedStyles) {
- final StyleResolver styleResolver = ReflectionHelpers.getField(appliedStyle,
- "style");
- final List styleDatas =
- ReflectionHelpers.getField(styleResolver, "styles");
- for (StyleData styleData : styleDatas) {
- if (styleData.getParent() != null &&
- styleData.getParent().startsWith("@*android:style")) {
- ReflectionHelpers.setField(StyleData.class, styleData, "parent",
- null);
- }
- }
- }
-
- }
- }
return super.obtainStyledAttributes(set, attrs, defStyleAttr, defStyleRes);
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyValueListParser.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyValueListParser.java
deleted file mode 100644
index 5dce99096c3..00000000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyValueListParser.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils.shadow;
-
-import android.util.KeyValueListParser;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-/**
- * Shadow for {@link KeyValueListParser} so we could implement
- * {@link #getBoolean(String, boolean)} that doesn't support in the current
- * robolectric
- */
-@Implements(KeyValueListParser.class)
-public class ShadowKeyValueListParser {
-
- @Implementation
- public boolean getBoolean(String key, boolean defaultValue) {
- return defaultValue;
- }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java
index dda5d8fc8f9..5a2f546236d 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java
@@ -19,13 +19,10 @@ package com.android.settings.wifi;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import android.net.wifi.WifiManager;
import androidx.core.graphics.drawable.IconCompat;
@@ -58,11 +55,6 @@ public class WifiSliceTest {
public void setUp() {
mContext = spy(RuntimeEnvironment.application);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
index 7e8771188c7..c5c4b672ca5 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
@@ -23,7 +23,6 @@ import static android.app.slice.SliceItem.FORMAT_TEXT;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@@ -33,7 +32,6 @@ import static org.mockito.Mockito.when;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.content.res.Resources;
import android.telephony.CarrierConfigManager;
import androidx.slice.Slice;
@@ -104,11 +102,6 @@ public class WifiCallingSliceHelperTest {
when(mSlicesFeatureProvider.getCustomSliceManager(any(Context.class)))
.thenReturn(manager);
- // Prevent crash in SliceMetadata.
- Resources resources = spy(mContext.getResources());
- doReturn(60).when(resources).getDimensionPixelSize(anyInt());
- doReturn(resources).when(mContext).getResources();
-
mWfcSliceHelper = new FakeWifiCallingSliceHelper(mContext);
// Set-up specs for SliceMetadata.