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

Commit 918215d0 authored by Sandy Pan's avatar Sandy Pan Committed by Android (Google) Code Review
Browse files

Merge "Workaround for the corner case when credential is not set but...

Merge "Workaround for the corner case when credential is not set but supervision is enabled." into main
parents 140d7da9 d6148c9a
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() {
            }
        }

    private val supervisionPinRecoveryLauncher =
    private val getResultLauncher =
        registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
            setResult(result.resultCode)
            finish()
@@ -110,7 +110,9 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() {
        }

        if (!isSupervisingCredentialSet) {
            errorHandler("No supervising credential set, cannot verify credentials.")
            // Redirects to the setup supervision flow when credential is not set.
            val setupIntent = Intent(this, SetupSupervisionActivity::class.java)
            getResultLauncher.launch(setupIntent)
            return
        }

@@ -156,7 +158,7 @@ open class ConfirmSupervisionCredentialsActivity : FragmentActivity() {
            }
        val listener =
            DialogInterface.OnClickListener { _: DialogInterface?, _: Int ->
                supervisionPinRecoveryLauncher.launch(intent)
                getResultLauncher.launch(intent)
            }
        val moreOptionsButtonBuilder =
            PromptContentViewWithMoreOptionsButton.Builder()
+7 −6
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner
import org.robolectric.Shadows.shadowOf
import org.robolectric.annotation.Config
import org.robolectric.shadows.ShadowBinder

@@ -57,7 +58,6 @@ class ConfirmSupervisionCredentialsActivityTest {
    private val mockActivityManager = mock<ActivityManager>()
    private val mockKeyguardManager = mock<KeyguardManager>()
    private val mockSupervisionManager = mock<SupervisionManager>()

    private lateinit var mActivity: ConfirmSupervisionCredentialsActivity

    private val callingPackage = "com.example.caller"
@@ -150,16 +150,17 @@ class ConfirmSupervisionCredentialsActivityTest {
    }

    @Test
    fun onCreate_noSupervisingCredential_finish() {
    fun onCreate_noSupervisingCredential_startSetupActivity() {
        mockRoleManager.stub { on { getRoleHolders(any()) } doReturn listOf(callingPackage) }
        mockUserManager.stub { on { users } doReturn listOf(TESTING_USER_INFO) }
        mockUserManager.stub { on { users } doReturn listOf(SUPERVISING_USER_INFO) }
        mockActivityManager.stub { on { startProfile(any()) } doReturn true }
        mockKeyguardManager.stub { on { isDeviceSecure(TESTING_USER_ID) } doReturn false }
        mockKeyguardManager.stub { on { isDeviceSecure(SUPERVISING_USER_ID) } doReturn false }

        mActivity.onCreate(null)
        val shadowActivity = shadowOf(mActivity)
        val startedIntent = shadowActivity.nextStartedActivity

        verify(mActivity).setResult(Activity.RESULT_CANCELED)
        verify(mActivity).finish()
        assert(startedIntent.component?.className == SetupSupervisionActivity::class.java.name)
    }

    @Test