Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 491bc21f authored by Mill Chen's avatar Mill Chen
Browse files

Remove the duplicated skip lock screen setting

Fix: 187366696
Test: robotests
Change-Id: I063ef7c1a43e16aee6d141389896cadecfd3738f
parent bbab97c9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@
            android:title="@string/lockscreen_bypass_title"
            android:summary="@string/lockscreen_bypass_summary"
            settings:keywords="@string/keywords_lockscreen_bypass"
            settings:controller="com.android.settings.biometrics.face.FaceSettingsLockscreenBypassPreferenceController" />
            settings:controller="com.android.settings.biometrics.face.BiometricLockscreenBypassPreferenceController" />
    </PreferenceCategory>

    <com.android.settingslib.widget.LayoutPreference
+41 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 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.biometrics.face;

import android.content.Context;

import com.android.settings.Utils;

/**
 * Preference controller that controls whether unlocking directly to home.
 */
public class BiometricLockscreenBypassPreferenceController extends
        FaceSettingsLockscreenBypassPreferenceController {
    public BiometricLockscreenBypassPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
    }

    @Override
    public int getAvailabilityStatus() {
        // When the device supports multiple biometrics auth, this preference will be shown
        // in face unlock category.
        if (Utils.isMultipleBiometricsSupported(mContext)) {
            return AVAILABLE;
        }
        return UNSUPPORTED_ON_DEVICE;
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -83,10 +83,10 @@ public class FaceSettingsLockscreenBypassPreferenceController

    @Override
    public int getAvailabilityStatus() {
        // When the device supports multiple biometrics auth, this preference will be shown
        // When the device supports multiple biometrics auth, this preference won't be shown
        // in face unlock category.
        if (Utils.isMultipleBiometricsSupported(mContext)) {
            return AVAILABLE;
            return UNSUPPORTED_ON_DEVICE;
        }
        if (mUserManager.isManagedProfile(UserHandle.myUserId())) {
            return UNSUPPORTED_ON_DEVICE;
+59 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 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.biometrics.face;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;

import android.content.Context;

import com.android.settings.testutils.shadow.ShadowUtils;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowUtils.class})
public class BiometricLockscreenBypassPreferenceControllerTest {

    private Context mContext;
    private BiometricLockscreenBypassPreferenceController mController;

    @Before
    public void setUp() {
        mContext = spy(RuntimeEnvironment.application);
        mController = spy(new BiometricLockscreenBypassPreferenceController(mContext, "test_key"));
    }

    @After
    public void tearDown() {
        ShadowUtils.reset();
    }

    @Test
    public void isAvailable_multipleBiometricsSupported_shouldReturnAvailable() {
        ShadowUtils.setIsMultipleBiometricsSupported(true);

        assertThat(mController.isAvailable()).isTrue();
    }
}
+15 −0
Original line number Diff line number Diff line
@@ -31,9 +31,11 @@ import android.hardware.face.FaceManager;
import android.os.UserManager;
import android.provider.Settings;

import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,9 +43,11 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowUtils.class})
public class FaceSettingsLockscreenBypassPreferenceControllerTest {

    @Mock
@@ -69,7 +73,11 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
                "test_key"));
        ReflectionHelpers.setField(mController, "mFaceManager", mFaceManager);
        ReflectionHelpers.setField(mController, "mUserManager", mUserManager);
    }

    @After
    public void tearDown() {
        ShadowUtils.reset();
    }

    @Test
@@ -86,6 +94,13 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void isAvailable_multipleBiometricsSupported_shouldReturnUnsupported() {
        ShadowUtils.setIsMultipleBiometricsSupported(true);

        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void onPreferenceChange_settingIsUpdated() {
        boolean defaultValue = mContext.getResources().getBoolean(
Loading