Snap for 5860054 from 2d709131ba
to qt-qpr1-release
Change-Id: Ia99f1552eded6677164e513d08b2e737e1e2abbc
This commit is contained in:
@@ -910,6 +910,10 @@
|
||||
<string name="security_settings_face_enroll_introduction_accessibility_vision"></string>
|
||||
<!-- Button text to cancel enrollment from the introduction [CHAR LIMIT=22] -->
|
||||
<string name="security_settings_face_enroll_introduction_cancel">Cancel</string>
|
||||
<!-- Button text to cancel enrollment [CHAR LIMIT=30] -->
|
||||
<string name="security_settings_face_enroll_introduction_no_thanks">No thanks</string>
|
||||
<!-- Button text to start enrollment [CHAR LIMIT=30] -->
|
||||
<string name="security_settings_face_enroll_introduction_agree">Agree</string>
|
||||
<!-- Introduction title shown in face enrollment to introduce the face unlock feature [CHAR LIMIT=40] -->
|
||||
<string name="security_settings_face_enroll_introduction_title">Unlock with your face</string>
|
||||
<!-- Introduction title shown in face enrollment to introduce the face unlock feature, when face unlock is disabled by device admin [CHAR LIMIT=60] -->
|
||||
@@ -975,7 +979,7 @@
|
||||
<!-- Dialog title shown when the user removes an enrollment [CHAR LIMIT=35] -->
|
||||
<string name="security_settings_face_settings_remove_dialog_title">Delete face data?</string>
|
||||
<!-- Dialog contents shown when the user removes an enrollment [CHAR LIMIT=NONE] -->
|
||||
<string name="security_settings_face_settings_remove_dialog_details">The images and biometric data used by face unlock will be permanently and securely deleted. After removal, you will need your PIN, pattern, or password to unlock your phone, sign in to apps, and confirm payments.</string>
|
||||
<string name="security_settings_face_settings_remove_dialog_details">The images and face model used by face unlock will be permanently and securely deleted. After removal, you will need your PIN, pattern, or password to unlock your phone, sign in to apps, and confirm payments.</string>
|
||||
<!-- Subtitle shown for contextual setting face enrollment [CHAR LIMIT=NONE] -->
|
||||
<string name="security_settings_face_settings_context_subtitle">Use face unlock to unlock your phone</string>
|
||||
|
||||
|
@@ -160,7 +160,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
// TODO(b/37313605): Re-enable once this controller supports instant apps
|
||||
return isInstantApp() || isSystemModule() ? DISABLED_FOR_USER : AVAILABLE;
|
||||
return mFinishing || isInstantApp() || isSystemModule() ? DISABLED_FOR_USER : AVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -189,7 +189,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (isAvailable() && !mFinishing) {
|
||||
if (isAvailable()) {
|
||||
mAppsControlDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(
|
||||
mActivity, UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
||||
mAppsControlDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
|
||||
|
@@ -47,29 +47,19 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
mFaceManager = Utils.getFaceManagerOrNull(this);
|
||||
|
||||
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
|
||||
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
|
||||
mFooterBarMixin.setSecondaryButton(
|
||||
new FooterButton.Builder(this)
|
||||
.setText(R.string.skip_label)
|
||||
.setListener(this::onSkipButtonClick)
|
||||
.setButtonType(FooterButton.ButtonType.SKIP)
|
||||
.setTheme(R.style.SudGlifButton_Secondary)
|
||||
.build()
|
||||
);
|
||||
} else {
|
||||
mFooterBarMixin.setSecondaryButton(
|
||||
new FooterButton.Builder(this)
|
||||
.setText(R.string.security_settings_face_enroll_introduction_cancel)
|
||||
.setListener(this::onCancelButtonClick)
|
||||
.setButtonType(FooterButton.ButtonType.CANCEL)
|
||||
.setTheme(R.style.SudGlifButton_Secondary)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
mFooterBarMixin.setSecondaryButton(
|
||||
new FooterButton.Builder(this)
|
||||
.setText(R.string.security_settings_face_enroll_introduction_no_thanks)
|
||||
.setListener(this::onCancelButtonClick)
|
||||
.setButtonType(FooterButton.ButtonType.CANCEL)
|
||||
.setTheme(R.style.SudGlifButton_Secondary)
|
||||
.build()
|
||||
);
|
||||
|
||||
mFooterBarMixin.setPrimaryButton(
|
||||
new FooterButton.Builder(this)
|
||||
.setText(R.string.wizard_next)
|
||||
.setText(R.string.security_settings_face_enroll_introduction_agree)
|
||||
.setListener(this::onNextButtonClick)
|
||||
.setButtonType(FooterButton.ButtonType.NEXT)
|
||||
.setTheme(R.style.SudGlifButton_Primary)
|
||||
|
@@ -19,8 +19,8 @@ package com.android.settings.applications.appinfo;
|
||||
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.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
@@ -39,8 +39,8 @@ import android.app.admin.DevicePolicyManager;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.om.OverlayManager;
|
||||
import android.content.om.OverlayInfo;
|
||||
import android.content.om.OverlayManager;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -49,6 +49,8 @@ import android.os.UserManager;
|
||||
import android.util.ArraySet;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
||||
@@ -59,7 +61,6 @@ import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.ActionButtonsPreference;
|
||||
|
||||
import java.util.Set;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -70,12 +71,15 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.annotation.Implementation;
|
||||
import org.robolectric.annotation.Implements;
|
||||
import org.robolectric.annotation.Resetter;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class AppButtonsPreferenceControllerTest {
|
||||
|
||||
@@ -112,10 +116,9 @@ public class AppButtonsPreferenceControllerTest {
|
||||
@Mock
|
||||
private UserManager mUserManager;
|
||||
@Mock
|
||||
private Application mApplication;
|
||||
@Mock
|
||||
private PackageInfo mPackageInfo;
|
||||
|
||||
private Context mContext;
|
||||
private Intent mUninstallIntent;
|
||||
private ActionButtonsPreference mButtonPrefs;
|
||||
private AppButtonsPreferenceController mController;
|
||||
@@ -125,14 +128,15 @@ public class AppButtonsPreferenceControllerTest {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
FakeFeatureFactory.setupForTest();
|
||||
mContext = RuntimeEnvironment.application;
|
||||
doReturn(mDpm).when(mSettingsActivity).getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
doReturn(mUserManager).when(mSettingsActivity).getSystemService(Context.USER_SERVICE);
|
||||
doReturn(mPackageManger).when(mSettingsActivity).getPackageManager();
|
||||
doReturn(mAm).when(mSettingsActivity).getSystemService(Context.ACTIVITY_SERVICE);
|
||||
doReturn(mOverlayManager).when(mSettingsActivity).
|
||||
getSystemService(OverlayManager.class);
|
||||
getSystemService(OverlayManager.class);
|
||||
doReturn(mAppEntry).when(mState).getEntry(anyString(), anyInt());
|
||||
when(mSettingsActivity.getApplication()).thenReturn(mApplication);
|
||||
doReturn(mContext).when(mSettingsActivity).getApplicationContext();
|
||||
when(mSettingsActivity.getResources().getString(anyInt())).thenReturn(RESOURCE_STRING);
|
||||
|
||||
mController = spy(new AppButtonsPreferenceController(mSettingsActivity, mFragment,
|
||||
@@ -161,6 +165,21 @@ public class AppButtonsPreferenceControllerTest {
|
||||
ShadowAppUtils.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowAppUtils.class)
|
||||
public void isAvailable_validPackageName_isTrue() {
|
||||
assertThat(mController.isAvailable()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_nullPackageName_isFalse() {
|
||||
final AppButtonsPreferenceController controller = spy(
|
||||
new AppButtonsPreferenceController(mSettingsActivity, mFragment,
|
||||
mLifecycle, null, mState, REQUEST_UNINSTALL, REQUEST_REMOVE_DEVICE_ADMIN));
|
||||
|
||||
assertThat(controller.isAvailable()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void retrieveAppEntry_hasAppEntry_notNull()
|
||||
throws PackageManager.NameNotFoundException {
|
||||
@@ -306,10 +325,10 @@ public class AppButtonsPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateUninstallButton_isNonSystemRro_setButtonDisable()
|
||||
throws RemoteException {
|
||||
throws RemoteException {
|
||||
when(mAppInfo.isResourceOverlay()).thenReturn(true);
|
||||
when(mOverlayManager.getOverlayInfo(anyString(), any()))
|
||||
.thenReturn(OVERLAY_ENABLED);
|
||||
.thenReturn(OVERLAY_ENABLED);
|
||||
|
||||
mController.updateUninstallButton();
|
||||
|
||||
@@ -318,10 +337,10 @@ public class AppButtonsPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateUninstallButton_isNonSystemRro_setButtonEnable()
|
||||
throws RemoteException {
|
||||
throws RemoteException {
|
||||
when(mAppInfo.isResourceOverlay()).thenReturn(true);
|
||||
when(mOverlayManager.getOverlayInfo(anyString(), any()))
|
||||
.thenReturn(OVERLAY_DISABLED);
|
||||
.thenReturn(OVERLAY_DISABLED);
|
||||
|
||||
mController.updateUninstallButton();
|
||||
|
||||
@@ -423,7 +442,7 @@ public class AppButtonsPreferenceControllerTest {
|
||||
@Test
|
||||
public void onPackageListChanged_available_shouldRefreshUi() {
|
||||
doReturn(AppButtonsPreferenceController.AVAILABLE)
|
||||
.when(mController).getAvailabilityStatus();
|
||||
.when(mController).getAvailabilityStatus();
|
||||
doReturn(true).when(mController).refreshUi();
|
||||
|
||||
mController.onPackageListChanged();
|
||||
@@ -434,7 +453,7 @@ public class AppButtonsPreferenceControllerTest {
|
||||
@Test
|
||||
public void onPackageListChanged_notAvailable_shouldNotRefreshUiAndNoCrash() {
|
||||
doReturn(AppButtonsPreferenceController.DISABLED_FOR_USER)
|
||||
.when(mController).getAvailabilityStatus();
|
||||
.when(mController).getAvailabilityStatus();
|
||||
|
||||
mController.onPackageListChanged();
|
||||
|
||||
|
Reference in New Issue
Block a user