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

Commit a8d0684b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update SupervisionIntentProvider#getSettingsIntent to return null if...

Merge "Update SupervisionIntentProvider#getSettingsIntent to return null if supervision is disabled." into main
parents 37438ccb 80859523
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -58,13 +58,19 @@ object SupervisionIntentProvider {
     */
    @JvmStatic
    fun getSettingsIntent(context: Context): Intent? {
        val supervisionManager =
            context.getSystemService(SupervisionManager::class.java) ?: return null
        val (intentAction, intentPackage) =
            if (Flags.enableSupervisionSettingsScreen()) {
                val settingsAppPackage = getSettingsAppPackage(context)
                val settingsAppPackage =
                    if (supervisionManager.isSupervisionEnabled()) {
                        getSettingsAppPackage(context)
                    } else {
                        null
                    }
                ACTION_SUPERVISION_SETTINGS to settingsAppPackage
            } else {
                val supervisionManager = context.getSystemService(SupervisionManager::class.java)
                val supervisionAppPackage = supervisionManager?.activeSupervisionAppPackage
                val supervisionAppPackage = supervisionManager.activeSupervisionAppPackage
                ACTION_SHOW_PARENTAL_CONTROLS to supervisionAppPackage
            }

+18 −3
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.content.Context
import android.content.ContextWrapper
import android.content.Intent
import android.content.pm.ActivityInfo
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.content.pm.ResolveInfo
import android.platform.test.annotations.EnableFlags
@@ -66,6 +65,20 @@ class SupervisionIntentProviderTest {
            }
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_SUPERVISION_SETTINGS_SCREEN)
    fun getSettingsIntent_supervisionDisabled_returnsNull() {
        mockPackageManager.stub {
            on { queryIntentActivitiesAsUser(any<Intent>(), any<Int>(), any<Int>()) } doReturn
                listOf(ResolveInfo())
        }
        mockSupervisionManager.stub { on { isSupervisionEnabled() } doReturn false }

        val intent = SupervisionIntentProvider.getSettingsIntent(context)

        assertThat(intent).isNull()
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_SUPERVISION_SETTINGS_SCREEN)
    fun getSettingsIntent_unresolvedIntent() {
@@ -73,6 +86,7 @@ class SupervisionIntentProviderTest {
            on { queryIntentActivitiesAsUser(any<Intent>(), any<Int>(), any<Int>()) } doReturn
                emptyList<ResolveInfo>()
        }
        mockSupervisionManager.stub { on { isSupervisionEnabled() } doReturn true }

        val intent = SupervisionIntentProvider.getSettingsIntent(context)

@@ -86,6 +100,7 @@ class SupervisionIntentProviderTest {
            on { queryIntentActivitiesAsUser(any<Intent>(), any<Int>(), any<Int>()) } doReturn
                listOf(ResolveInfo())
        }
        mockSupervisionManager.stub { on { isSupervisionEnabled() } doReturn true }

        val intent = SupervisionIntentProvider.getSettingsIntent(context)

@@ -102,8 +117,7 @@ class SupervisionIntentProviderTest {
            ResolveInfo().apply {
                this.activityInfo =
                    ActivityInfo().apply {
                        applicationInfo =
                            ApplicationInfo().apply { packageName = expectedSettingsPackage }
                        packageName = expectedSettingsPackage
                    }
            }
        mockPackageManager.stub {
@@ -111,6 +125,7 @@ class SupervisionIntentProviderTest {
                listOf(ResolveInfo())
            on { queryIntentActivities(any<Intent>(), any<Int>()) } doReturn listOf(resolveInfo)
        }
        mockSupervisionManager.stub { on { isSupervisionEnabled() } doReturn true }

        val intent = SupervisionIntentProvider.getSettingsIntent(context)