diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index e80e48a..ad24704 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -15,7 +15,7 @@ object Versions { const val COMPILE_SDK_VERSION = 33 const val TARGET_SDK_VERSION = 33 - const val MIN_SDK_VERSION = 21 + const val MIN_SDK_VERSION = 23 private const val MAJOR = 0 private const val MINOR = 6 diff --git a/library/src/main/java/com/vinted/coper/CoperFragment.kt b/library/src/main/java/com/vinted/coper/CoperFragment.kt index 6b730f9..fa9feae 100644 --- a/library/src/main/java/com/vinted/coper/CoperFragment.kt +++ b/library/src/main/java/com/vinted/coper/CoperFragment.kt @@ -1,6 +1,5 @@ package com.vinted.coper -import android.os.Build import android.os.Bundle import android.util.Log import androidx.annotation.VisibleForTesting @@ -101,7 +100,7 @@ internal class CoperFragment : Fragment() { getDeniedPermissionsResult(denied) } else { getPermissionsResult( - permissionChecks = requestPermissionsByVersion(denied.toTypedArray()), + permissionChecks = requestPermissionsAsync(denied.toTypedArray()).await(), grantedPermissions = granted, isSecondTime = true ) @@ -122,21 +121,6 @@ internal class CoperFragment : Fragment() { return PermissionResult.Denied(deniedPermissions) } - // On devices with lower sdk than 23, there is no requesting permissions. - private suspend fun requestPermissionsByVersion( - permissions: Array - ): List { - return if (isDeviceSdkAtLeastMarshmallow()) { - requestPermissionsAsync(permissions).await() - } else { - permissions.map { PermissionCheckResult.Denied(it) } - } - } - - private fun isDeviceSdkAtLeastMarshmallow(): Boolean { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M - } - private fun requestPermissionsAsync( permissions: Array ): Deferred> { @@ -237,13 +221,7 @@ internal class CoperFragment : Fragment() { fun of(permissionResult: Int, permission: String): PermissionCheckResult { return when (permissionResult) { PermissionChecker.PERMISSION_GRANTED -> Granted(permission) - PermissionChecker.PERMISSION_DENIED, - PermissionChecker.PERMISSION_DENIED_APP_OP -> Denied(permission) - else -> { - val message = "Not expected permission result: $permissionResult " + - "for $permission" - throw IllegalStateException(message) - } + else -> Denied(permission) } } } diff --git a/library/src/test/java/com/vinted/coper/CoperImplTest.kt b/library/src/test/java/com/vinted/coper/CoperImplTest.kt index c7abaca..660eb1f 100644 --- a/library/src/test/java/com/vinted/coper/CoperImplTest.kt +++ b/library/src/test/java/com/vinted/coper/CoperImplTest.kt @@ -46,7 +46,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun request_responseIsSuccessful() = runTest { val response = fixture.request("test") @@ -54,7 +54,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun request_permissionsIsGranted_grantedListConsistOfThisPermission() = runTest { val permissionName = "granted" mockCheckPermissions(permissionName, PackageManager.PERMISSION_GRANTED) @@ -66,7 +66,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun request_twoPermissionsIsGranted_grantedListConsistOfThisPermissions() = runTest { val firstPermission = "granted" val secondPermission = "granted2" @@ -79,18 +79,6 @@ class CoperImplTest { assertEquals(listOf(firstPermission, secondPermission), response.grantedPermissions) } - @Test - @Config(sdk = [21]) - fun request_sdkUnder23AndPermissionsDenied_permissionResultDeniedWaitingResult() = runTest { - val permission = "denied" - mockCheckPermissions(permission, PackageManager.PERMISSION_DENIED) - - val response = fixture.request(permission) - - assertTrue(response.isDenied()) - assertEquals(listOf(permission), response.getAllDeniedPermissions()) - } - @Test fun request_permissionsIsDeniedRationale_permissionDeniedRationaleResult() = runTest { val permissionName = "denied" @@ -669,7 +657,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun isPermissionsGranted_permissionsNotGranted_returnsFalse() = runTest { mockCheckPermissions("not_granted", PermissionChecker.PERMISSION_DENIED) @@ -679,7 +667,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun isPermissionsGranted_permissionsNotGrantedByOp_returnsFalse() = runTest { mockCheckPermissions("not_granted_op", PermissionChecker.PERMISSION_DENIED_APP_OP) @@ -689,7 +677,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun isPermissionsGranted_permissionsGranted_returnsTrue() = runTest { mockCheckPermissions("granted", PermissionChecker.PERMISSION_GRANTED) @@ -738,7 +726,7 @@ class CoperImplTest { } @Test - @Config(sdk = [21, 23, 27]) + @Config(sdk = [23, 27]) fun request_runOnPausingDispatcher_responseIsSuccessful() = runTest { val isCancelled = fixture.getFragmentSafely().lifecycleScope.launchWhenCreated { fixture.request("test")