Snap for 5060940 from 04434eb662 to qt-release
Change-Id: Idcb9cc1666b0697edf6a017f48b29dc19715230e
This commit is contained in:
@@ -41,6 +41,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
|
||||
androidx.lifecycle_lifecycle-extensions \
|
||||
guava \
|
||||
jsr305 \
|
||||
settings-contextual-card-protos-lite \
|
||||
contextualcards \
|
||||
settings-logtags \
|
||||
|
||||
|
||||
Binary file not shown.
8
protos/Android.bp
Normal file
8
protos/Android.bp
Normal file
@@ -0,0 +1,8 @@
|
||||
java_library_static {
|
||||
name: "settings-contextual-card-protos-lite",
|
||||
host_supported: true,
|
||||
proto: {
|
||||
type: "lite",
|
||||
},
|
||||
srcs: ["contextual_card_list.proto"],
|
||||
}
|
||||
19
protos/contextual_card_list.proto
Normal file
19
protos/contextual_card_list.proto
Normal file
@@ -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;
|
||||
}
|
||||
@@ -10088,7 +10088,7 @@
|
||||
<string name="homepage_all_settings">All Settings</string>
|
||||
|
||||
<!-- Homepage bottom menu. Title for display personalized Settings [CHAR LIMIT=30] -->
|
||||
<string name="homepage_personal_settings">Your Settings</string>
|
||||
<string name="homepage_personal_settings">Suggestions</string>
|
||||
|
||||
<!-- Setting Checkbox title whether to enable CBRS data. [CHAR LIMIT=40] -->
|
||||
<string name="cbrs_data_switch">CBRS Data</string>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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<ContextualCard> getContextualCards() {
|
||||
final List<ContextualCard> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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<ContextualCard> 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<Uri> expectedUris = Arrays.asList(dataUsage, deviceInfo);
|
||||
final Uri storageInfo = StorageSlice.STORAGE_CARD_URI;
|
||||
final List<Uri> expectedUris = Arrays.asList(dataUsage, deviceInfo, storageInfo);
|
||||
|
||||
final List<Uri> actualCardUris = mCardContentLoader.createStaticCards().stream().map(
|
||||
ContextualCard::getSliceUri).collect(Collectors.toList());
|
||||
|
||||
@@ -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<ContextualCard> 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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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<Long, Object /* NativeTheme */> 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<Object /* OverlayedStyle */> overlayedStyles =
|
||||
ReflectionHelpers.getField(appliedStyles, "styles");
|
||||
for (Object appliedStyle : overlayedStyles) {
|
||||
final StyleResolver styleResolver = ReflectionHelpers.getField(appliedStyle,
|
||||
"style");
|
||||
final List<StyleData> 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user