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

Commit ce16e6a9 authored by Junchen Quan's avatar Junchen Quan Committed by Android (Google) Code Review
Browse files

Merge "[Device Supervision] Update ChooseLockGeneric to bypass choose lock...

Merge "[Device Supervision] Update ChooseLockGeneric to bypass choose lock pattern screen." into main
parents dbe0f4ca fccdacfc
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -20,11 +20,13 @@ import android.Manifest.permission.MANAGE_USERS
import android.annotation.RequiresPermission
import android.app.ActivityManager
import android.app.ComponentCaller
import android.app.admin.DevicePolicyManager
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.annotation.VisibleForTesting
import androidx.fragment.app.FragmentActivity
import com.android.internal.widget.LockPatternUtils
import com.android.settings.password.ChooseLockGeneric
import com.android.settingslib.supervision.SupervisionLog.TAG

@@ -54,7 +56,14 @@ class SupervisionCredentialProxyActivity : FragmentActivity() {
            return
        }

        val intent = Intent(this, ChooseLockGeneric::class.java)
        val intent =
            Intent(this, ChooseLockGeneric::class.java).apply {
                // To go directly to setting up a PIN
                putExtra(
                    LockPatternUtils.PASSWORD_TYPE_KEY,
                    DevicePolicyManager.PASSWORD_QUALITY_NUMERIC,
                )
            }
        startActivityForResultAsUser(
            intent,
            REQUEST_CODE_SUPERVISION_CREDENTIALS_PROXY,
@@ -94,7 +103,6 @@ class SupervisionCredentialProxyActivity : FragmentActivity() {
    }

    companion object {
        @VisibleForTesting
        const val REQUEST_CODE_SUPERVISION_CREDENTIALS_PROXY = 10
        @VisibleForTesting const val REQUEST_CODE_SUPERVISION_CREDENTIALS_PROXY = 10
    }
}
+13 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.supervision
import android.app.Activity
import android.app.ActivityManager
import android.app.ComponentCaller
import android.app.admin.DevicePolicyManager
import android.content.Context
import android.content.pm.UserInfo
import android.os.UserHandle
@@ -25,6 +26,7 @@ import android.os.UserManager
import android.os.UserManager.USER_TYPE_PROFILE_SUPERVISING
import android.os.UserManager.USER_TYPE_PROFILE_TEST
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.internal.widget.LockPatternUtils
import com.android.settings.password.ChooseLockGeneric
import com.android.settings.supervision.SupervisionCredentialProxyActivity.Companion.REQUEST_CODE_SUPERVISION_CREDENTIALS_PROXY
import com.google.common.truth.Truth.assertThat
@@ -78,8 +80,17 @@ class SupervisionCredentialProxyActivityTest {
        mActivityController.setup()

        assertThat(mActivity.isFinishing).isFalse()
        assertThat(shadowActivity.nextStartedActivity.component?.className)
            .isEqualTo(ChooseLockGeneric::class.java.name)

        val startedIntent = shadowActivity.nextStartedActivity
        assertThat(startedIntent.component?.className).isEqualTo(ChooseLockGeneric::class.java.name)
        assertThat(startedIntent.hasExtra(LockPatternUtils.PASSWORD_TYPE_KEY)).isTrue()
        assertThat(
                startedIntent.getIntExtra(
                    LockPatternUtils.PASSWORD_TYPE_KEY,
                    -1, /* Default value not expected */
                )
            )
            .isEqualTo(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC)

        // Ensure that the supervising profile is started
        val userCaptor = argumentCaptor<UserHandle>()