Snap for 5778854 from 37b38f872f to qt-c2f2-release

Change-Id: I65f2c3f99c9767109fb4aa653b2e4afcfeedfa51
This commit is contained in:
android-build-team Robot
2019-08-03 23:02:29 +00:00
8 changed files with 54 additions and 29 deletions

View File

@@ -72,6 +72,13 @@
android:summary="@string/lock_screen_notifs_redact_work_summary" android:summary="@string/lock_screen_notifs_redact_work_summary"
settings:controller="com.android.settings.notification.RedactNotificationPreferenceController" /> settings:controller="com.android.settings.notification.RedactNotificationPreferenceController" />
<SwitchPreference
android:key="notification_lockscreen_bypass"
android:title="@string/lockscreen_bypass_title"
android:summary="@string/lockscreen_bypass_summary"
settings:searchable="false"
settings:controller="com.android.settings.biometrics.face.FaceSettingsLockscreenBypassPreferenceController" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory

View File

@@ -30,6 +30,13 @@
android:summary="@string/summary_placeholder" android:summary="@string/summary_placeholder"
settings:keywords="@string/keywords_lock_screen_notif"/> settings:keywords="@string/keywords_lock_screen_notif"/>
<SwitchPreference
android:key="security_dispaly_lockscreen_bypass"
android:title="@string/lockscreen_bypass_title"
android:summary="@string/lockscreen_bypass_summary"
settings:searchable="false"
settings:controller="com.android.settings.biometrics.face.FaceSettingsLockscreenBypassPreferenceController" />
<com.android.settingslib.RestrictedSwitchPreference <com.android.settingslib.RestrictedSwitchPreference
android:key="security_lockscreen_add_users_when_locked" android:key="security_lockscreen_add_users_when_locked"
android:title="@string/user_add_on_lockscreen_menu" android:title="@string/user_add_on_lockscreen_menu"

View File

@@ -149,7 +149,6 @@ public class FaceSettings extends DashboardFragment {
// Don't show keyguard controller for work profile settings. // Don't show keyguard controller for work profile settings.
if (mUserManager.isManagedProfile(mUserId)) { if (mUserManager.isManagedProfile(mUserId)) {
removePreference(FaceSettingsKeyguardPreferenceController.KEY); removePreference(FaceSettingsKeyguardPreferenceController.KEY);
removePreference(FaceSettingsLockscreenBypassPreferenceController.KEY);
} }
if (savedInstanceState != null) { if (savedInstanceState != null) {
@@ -261,7 +260,6 @@ public class FaceSettings extends DashboardFragment {
final List<AbstractPreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new FaceSettingsVideoPreferenceController(context)); controllers.add(new FaceSettingsVideoPreferenceController(context));
controllers.add(new FaceSettingsKeyguardPreferenceController(context)); controllers.add(new FaceSettingsKeyguardPreferenceController(context));
controllers.add(new FaceSettingsLockscreenBypassPreferenceController(context));
controllers.add(new FaceSettingsAppPreferenceController(context)); controllers.add(new FaceSettingsAppPreferenceController(context));
controllers.add(new FaceSettingsAttentionPreferenceController(context)); controllers.add(new FaceSettingsAttentionPreferenceController(context));
controllers.add(new FaceSettingsRemoveButtonPreferenceController(context)); controllers.add(new FaceSettingsRemoveButtonPreferenceController(context));

View File

@@ -19,6 +19,8 @@ package com.android.settings.biometrics.face;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.hardware.face.FaceManager; import android.hardware.face.FaceManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings; import android.provider.Settings;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -32,16 +34,15 @@ public class FaceSettingsLockscreenBypassPreferenceController
@VisibleForTesting @VisibleForTesting
protected FaceManager mFaceManager; protected FaceManager mFaceManager;
private UserManager mUserManager;
public FaceSettingsLockscreenBypassPreferenceController(Context context) {
this(context, KEY);
}
public FaceSettingsLockscreenBypassPreferenceController(Context context, String preferenceKey) { public FaceSettingsLockscreenBypassPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) {
mFaceManager = context.getSystemService(FaceManager.class); mFaceManager = context.getSystemService(FaceManager.class);
} }
mUserManager = context.getSystemService(UserManager.class);
} }
@Override @Override
@@ -75,6 +76,10 @@ public class FaceSettingsLockscreenBypassPreferenceController
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (mUserManager.isManagedProfile(UserHandle.myUserId())) {
return UNSUPPORTED_ON_DEVICE;
}
if (mFaceManager != null && mFaceManager.isHardwareDetected()) { if (mFaceManager != null && mFaceManager.isHardwareDetected()) {
return mFaceManager.hasEnrolledTemplates() ? AVAILABLE : DISABLED_DEPENDENT_SETTING; return mFaceManager.hasEnrolledTemplates() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
} else { } else {

View File

@@ -61,16 +61,12 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
PhoneAccountHandle mSimCallManager; PhoneAccountHandle mSimCallManager;
private PhoneCallStateListener mPhoneStateListener; private PhoneCallStateListener mPhoneStateListener;
private Preference mPreference; private Preference mPreference;
private boolean mEditableWfcRoamingMode;
private boolean mUseWfcHomeModeForRoaming;
public WifiCallingPreferenceController(Context context, String key) { public WifiCallingPreferenceController(Context context, String key) {
super(context, key); super(context, key);
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
mTelephonyManager = context.getSystemService(TelephonyManager.class); mTelephonyManager = context.getSystemService(TelephonyManager.class);
mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper()); mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
mEditableWfcRoamingMode = true;
mUseWfcHomeModeForRoaming = false;
} }
@Override @Override
@@ -129,9 +125,18 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
preference.setTitle(title); preference.setTitle(title);
int resId = com.android.internal.R.string.wifi_calling_off_summary; int resId = com.android.internal.R.string.wifi_calling_off_summary;
if (mImsManager.isWfcEnabledByUser()) { if (mImsManager.isWfcEnabledByUser()) {
boolean wfcRoamingEnabled = mEditableWfcRoamingMode && !mUseWfcHomeModeForRoaming; boolean useWfcHomeModeForRoaming = false;
if (mCarrierConfigManager != null) {
final PersistableBundle carrierConfig =
mCarrierConfigManager.getConfigForSubId(mSubId);
if (carrierConfig != null) {
useWfcHomeModeForRoaming = carrierConfig.getBoolean(
CarrierConfigManager
.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL);
}
}
final boolean isRoaming = mTelephonyManager.isNetworkRoaming(); final boolean isRoaming = mTelephonyManager.isNetworkRoaming();
int wfcMode = mImsManager.getWfcMode(isRoaming && wfcRoamingEnabled); int wfcMode = mImsManager.getWfcMode(isRoaming && !useWfcHomeModeForRoaming);
switch (wfcMode) { switch (wfcMode) {
case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY: case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary; resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
@@ -159,16 +164,6 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId)); mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
mSimCallManager = mContext.getSystemService(TelecomManager.class) mSimCallManager = mContext.getSystemService(TelecomManager.class)
.getSimCallManagerForSubscription(mSubId); .getSimCallManagerForSubscription(mSubId);
if (mCarrierConfigManager != null) {
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
if (carrierConfig != null) {
mEditableWfcRoamingMode = carrierConfig.getBoolean(
CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL);
mUseWfcHomeModeForRoaming = carrierConfig.getBoolean(
CarrierConfigManager
.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL);
}
}
} }
private class PhoneCallStateListener extends PhoneStateListener { private class PhoneCallStateListener extends PhoneStateListener {

View File

@@ -55,7 +55,7 @@ public abstract class RingtonePreferenceControllerBase extends AbstractPreferenc
final CharSequence summary; final CharSequence summary;
if (ringtoneUri == null) { if (ringtoneUri == null) {
summary = null; summary = mContext.getString(com.android.internal.R.string.ringtone_silent);
} else { } else {
summary = Ringtone.getTitle( summary = Ringtone.getTitle(
mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */); mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */);

View File

@@ -18,10 +18,12 @@ package com.android.settings.biometrics.face;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.hardware.face.FaceManager; import android.hardware.face.FaceManager;
import android.os.UserManager;
import android.provider.Settings; import android.provider.Settings;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
@@ -41,6 +43,8 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
@Mock @Mock
private FaceManager mFaceManager; private FaceManager mFaceManager;
private SwitchPreference mPreference; private SwitchPreference mPreference;
@Mock
private UserManager mUserManager;
private Context mContext; private Context mContext;
private FaceSettingsLockscreenBypassPreferenceController mController; private FaceSettingsLockscreenBypassPreferenceController mController;
@@ -51,8 +55,9 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
mPreference = new SwitchPreference(mContext); mPreference = new SwitchPreference(mContext);
mController = new FaceSettingsLockscreenBypassPreferenceController(mContext); mController = new FaceSettingsLockscreenBypassPreferenceController(mContext, "test_key");
ReflectionHelpers.setField(mController, "mFaceManager", mFaceManager); ReflectionHelpers.setField(mController, "mFaceManager", mFaceManager);
ReflectionHelpers.setField(mController, "mUserManager", mUserManager);
} }
@Test @Test
@@ -62,6 +67,13 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test
public void isAvailable_isManagedProfile_shouldReturnUnsupported() {
when(mUserManager.isManagedProfile(anyInt())).thenReturn(true);
assertThat(mController.isAvailable()).isFalse();
}
@Test @Test
public void onPreferenceChange_settingIsUpdated() { public void onPreferenceChange_settingIsUpdated() {
boolean defaultValue = mContext.getResources().getBoolean( boolean defaultValue = mContext.getResources().getBoolean(

View File

@@ -127,10 +127,10 @@ public class WifiCallingPreferenceControllerTest {
} }
@Test @Test
public void updateState_wfcNonRoaming() { public void updateState_nonRoaming_wfcCellularPreferred() {
assertNull(mController.mSimCallManager); assertNull(mController.mSimCallManager);
mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false); mCarrierConfig.putBoolean(
// update the config value by calling init again. CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
mController.init(SUB_ID); mController.init(SUB_ID);
mController.mImsManager = mImsManager; mController.mImsManager = mImsManager;
@@ -147,9 +147,10 @@ public class WifiCallingPreferenceControllerTest {
} }
@Test @Test
public void updateState_wfcRoaming() { public void updateState_roaming_wfcWifiPreferred() {
assertNull(mController.mSimCallManager); assertNull(mController.mSimCallManager);
// useWfcHomeModeForRoaming is false by default. In order to check wfc in roaming mode. We
// need the device roaming, and not using home mode in roaming network.
when(mImsManager.getWfcMode(true)).thenReturn( when(mImsManager.getWfcMode(true)).thenReturn(
ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED); ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
when(mImsManager.getWfcMode(false)).thenReturn( when(mImsManager.getWfcMode(false)).thenReturn(