Loading src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt +9 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.AppOpsManager import android.app.AppOpsManager.OP_USE_FULL_SCREEN_INTENT import android.content.AttributionSource import android.content.Context import android.content.pm.PackageManager.NameNotFoundException import android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET import android.content.pm.PackageManager.GET_PERMISSIONS import android.os.UserHandle Loading Loading @@ -79,6 +80,7 @@ class FullScreenIntentPermissionPreferenceController( } private fun isPermissionRequested(): Boolean { try { val packageInfo = packageManager.getPackageInfo(packageName, GET_PERMISSIONS) for (requestedPermission in packageInfo.requestedPermissions.orEmpty()) { Loading @@ -86,6 +88,9 @@ class FullScreenIntentPermissionPreferenceController( return true } } } catch (exception: NameNotFoundException) { Log.e(TAG, "isPermissionRequested failed: $exception") } return false } Loading tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt +15 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.content.pm.PackageInfo import android.content.pm.PackageManager import android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET import android.content.pm.PackageManager.GET_PERMISSIONS import android.content.pm.PackageManager.NameNotFoundException import android.os.UserHandle import android.permission.PermissionManager.PERMISSION_GRANTED import android.permission.PermissionManager.PERMISSION_HARD_DENIED Loading Loading @@ -133,6 +134,14 @@ class FullScreenIntentPermissionPreferenceControllerTest { assertTrue(controller.isAvailable) } @Test fun testIsAvailable_notWhenPackageNotFound() { setPackageInfoNotFound() initController() assertFalse(controller.isAvailable) } @Test fun testIsEnabled_notWhenDisabledByAdmin() { setPermissionRequestedInManifest() Loading Loading @@ -242,6 +251,12 @@ class FullScreenIntentPermissionPreferenceControllerTest { }) } private fun setPackageInfoNotFound() { whenever(packageManager.getPackageInfo(TEST_PACKAGE, GET_PERMISSIONS)).thenThrow( NameNotFoundException(TEST_PACKAGE) ) } private fun setPermissionResult(@PermissionResult result: Int) { ShadowPermissionChecker.setResult(TEST_PACKAGE, USE_FULL_SCREEN_INTENT, result) } Loading Loading
src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt +9 −4 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.app.AppOpsManager import android.app.AppOpsManager.OP_USE_FULL_SCREEN_INTENT import android.content.AttributionSource import android.content.Context import android.content.pm.PackageManager.NameNotFoundException import android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET import android.content.pm.PackageManager.GET_PERMISSIONS import android.os.UserHandle Loading Loading @@ -79,6 +80,7 @@ class FullScreenIntentPermissionPreferenceController( } private fun isPermissionRequested(): Boolean { try { val packageInfo = packageManager.getPackageInfo(packageName, GET_PERMISSIONS) for (requestedPermission in packageInfo.requestedPermissions.orEmpty()) { Loading @@ -86,6 +88,9 @@ class FullScreenIntentPermissionPreferenceController( return true } } } catch (exception: NameNotFoundException) { Log.e(TAG, "isPermissionRequested failed: $exception") } return false } Loading
tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt +15 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.content.pm.PackageInfo import android.content.pm.PackageManager import android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET import android.content.pm.PackageManager.GET_PERMISSIONS import android.content.pm.PackageManager.NameNotFoundException import android.os.UserHandle import android.permission.PermissionManager.PERMISSION_GRANTED import android.permission.PermissionManager.PERMISSION_HARD_DENIED Loading Loading @@ -133,6 +134,14 @@ class FullScreenIntentPermissionPreferenceControllerTest { assertTrue(controller.isAvailable) } @Test fun testIsAvailable_notWhenPackageNotFound() { setPackageInfoNotFound() initController() assertFalse(controller.isAvailable) } @Test fun testIsEnabled_notWhenDisabledByAdmin() { setPermissionRequestedInManifest() Loading Loading @@ -242,6 +251,12 @@ class FullScreenIntentPermissionPreferenceControllerTest { }) } private fun setPackageInfoNotFound() { whenever(packageManager.getPackageInfo(TEST_PACKAGE, GET_PERMISSIONS)).thenThrow( NameNotFoundException(TEST_PACKAGE) ) } private fun setPermissionResult(@PermissionResult result: Int) { ShadowPermissionChecker.setResult(TEST_PACKAGE, USE_FULL_SCREEN_INTENT, result) } Loading