Skip to content
This repository was archived by the owner on Sep 3, 2023. It is now read-only.

Commit f2dbfbe

Browse files
committed
Release 3.0.0-RC3
1 parent 59fde1d commit f2dbfbe

File tree

7 files changed

+62
-17
lines changed

7 files changed

+62
-17
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Add this to your module's `build.gradle` file:
2828
```gradle
2929
dependencies {
3030
31-
implementation 'com.afollestad.assent:core:3.0.0-RC2'
31+
implementation 'com.afollestad.assent:core:3.0.0-RC3'
3232
}
3333
```
3434

@@ -155,7 +155,7 @@ Add this to your module's `build.gradle` file:
155155
```gradle
156156
dependencies {
157157
158-
implementation 'com.afollestad.assent:rationales:3.0.0-RC2'
158+
implementation 'com.afollestad.assent:rationales:3.0.0-RC3'
159159
}
160160
```
161161

@@ -196,7 +196,7 @@ Add this to your module's `build.gradle` file:
196196
```gradle
197197
dependencies {
198198
199-
implementation 'com.afollestad.assent:coroutines:3.0.0-RC2'
199+
implementation 'com.afollestad.assent:coroutines:3.0.0-RC3'
200200
}
201201
```
202202

RELEASE_NOTES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
3.0.0-RC3
2+
3+
* Quick fix-up around permanently denied detection! No longer reliant on rationale handler either.
4+
* Added more methods to `AssentResult` to get granted, denied, and permanently denied permissions.
5+
* More internal cleanup.
6+
7+
---
8+
19
3.0.0-RC2
210

311
* Detect permanently denied permissions! Changes to `AssentResult`'s structure, it also allows you

core/src/main/java/com/afollestad/assent/AssentResult.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class AssentResult(
100100
}
101101

102102
override fun toString(): String {
103-
return resultsMap.entries.joinToString(separator = ", ") { "${it.key}=>${it.value}" }
103+
return resultsMap.entries.joinToString(separator = ", ") { "${it.key} -> ${it.value}" }
104104
}
105105
}
106106

core/src/main/java/com/afollestad/assent/internal/PermissionFragment.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,9 @@ internal fun Fragment.onPermissionsResponse(
7575
permissions: Array<out String>,
7676
grantResults: IntArray
7777
) {
78-
val prefs = RealPrefs(context!!)
79-
val shouldShowRationale = RealShouldShowRationale(activity!!, prefs)
78+
val activity = activity ?: error("Fragment is not attached: $this")
79+
val prefs = RealPrefs(activity)
80+
val shouldShowRationale = RealShouldShowRationale(activity, prefs)
8081
val result = AssentResult(
8182
permissions = permissions.toPermissions(),
8283
grantResults = grantResults,

core/src/test/java/com/afollestad/assent/ActivitiesTest.kt

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package com.afollestad.assent
1717

18-
import android.content.pm.PackageManager
18+
import android.content.SharedPreferences
1919
import android.content.pm.PackageManager.PERMISSION_DENIED
2020
import android.content.pm.PackageManager.PERMISSION_GRANTED
2121
import androidx.fragment.app.FragmentActivity
@@ -39,6 +39,7 @@ import com.nhaarman.mockitokotlin2.atLeastOnce
3939
import com.nhaarman.mockitokotlin2.doAnswer
4040
import com.nhaarman.mockitokotlin2.doReturn
4141
import com.nhaarman.mockitokotlin2.eq
42+
import com.nhaarman.mockitokotlin2.isA
4243
import com.nhaarman.mockitokotlin2.mock
4344
import com.nhaarman.mockitokotlin2.times
4445
import com.nhaarman.mockitokotlin2.verify
@@ -57,28 +58,44 @@ class ActivitiesTest {
5758
on { beginTransaction() } doReturn fragmentTransaction
5859
}
5960

60-
private val permissionFragment = mock<PermissionFragment>()
61-
private val responseQueue = MockResponseQueue(allowedPermissions, permissionFragment)
62-
61+
private val sharedPrefsEditor = mock<SharedPreferences.Editor>()
62+
private val sharedPrefs = mock<SharedPreferences> {
63+
on { edit() } doReturn sharedPrefsEditor
64+
}
6365
private val activity = mock<FragmentActivity> {
66+
on { getSharedPreferences(any(), any()) } doReturn sharedPrefs
6467
// FRAGMENT TRANSACTIONS
6568
on { supportFragmentManager } doReturn fragmentManager
6669
// CHECK PERMISSION
6770
on { checkPermission(any(), eq(0), any()) } doAnswer { inv ->
6871
val checkPermission = inv.getArgument<String>(0)
6972
val parsedCheckPermission = Permission.parse(checkPermission)
7073
return@doAnswer if (allowedPermissions.contains(parsedCheckPermission)) {
71-
PackageManager.PERMISSION_GRANTED
74+
PERMISSION_GRANTED
7275
} else {
73-
PackageManager.PERMISSION_DENIED
76+
PERMISSION_DENIED
7477
}
7578
}
7679
}
7780

81+
private val permissionFragment = mock<PermissionFragment> {
82+
on { activity } doReturn activity
83+
on { isAdded } doReturn true
84+
}
85+
private val responseQueue = MockResponseQueue(allowedPermissions, permissionFragment)
86+
7887
@Before fun setup() {
7988
allowedPermissions.clear()
8089
Assent.fragmentCreator = { permissionFragment }
8190

91+
doAnswer { invocation ->
92+
val key: String = invocation.getArgument(0)
93+
val value: Boolean = invocation.getArgument(1)
94+
whenever(sharedPrefs.getBoolean(key, any()))
95+
.doReturn(value)
96+
}.whenever(sharedPrefsEditor)
97+
.putBoolean(isA(), any())
98+
8299
whenever(permissionFragment.perform(any())).thenCallRealMethod()
83100
whenever(
84101
permissionFragment.onRequestPermissionsResult(any(), any(), any())

core/src/test/java/com/afollestad/assent/FragmentsTest.kt

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.afollestad.assent
1717

18+
import android.content.SharedPreferences
1819
import android.content.pm.PackageManager.PERMISSION_DENIED
1920
import android.content.pm.PackageManager.PERMISSION_GRANTED
2021
import androidx.fragment.app.Fragment
@@ -36,6 +37,7 @@ import com.nhaarman.mockitokotlin2.any
3637
import com.nhaarman.mockitokotlin2.doAnswer
3738
import com.nhaarman.mockitokotlin2.doReturn
3839
import com.nhaarman.mockitokotlin2.eq
40+
import com.nhaarman.mockitokotlin2.isA
3941
import com.nhaarman.mockitokotlin2.mock
4042
import com.nhaarman.mockitokotlin2.times
4143
import com.nhaarman.mockitokotlin2.verify
@@ -54,10 +56,12 @@ class FragmentsTest {
5456
on { beginTransaction() } doReturn fragmentTransaction
5557
}
5658

57-
private val permissionFragment = mock<PermissionFragment>()
58-
private val responseQueue = MockResponseQueue(allowedPermissions, permissionFragment)
59-
59+
private val sharedPrefsEditor = mock<SharedPreferences.Editor>()
60+
private val sharedPrefs = mock<SharedPreferences> {
61+
on { edit() } doReturn sharedPrefsEditor
62+
}
6063
private val activity = mock<FragmentActivity> {
64+
on { getSharedPreferences(any(), any()) } doReturn sharedPrefs
6165
// FRAGMENT TRANSACTIONS
6266
on { supportFragmentManager } doReturn fragmentManager
6367
// CHECK PERMISSION
@@ -75,12 +79,27 @@ class FragmentsTest {
7579
on { fragmentManager } doReturn fragmentManager
7680
on { childFragmentManager } doReturn fragmentManager
7781
on { activity } doReturn activity
82+
on { isAdded } doReturn true
83+
}
84+
85+
private val permissionFragment = mock<PermissionFragment> {
86+
on { activity } doReturn activity
87+
on { isAdded } doReturn true
7888
}
89+
private val responseQueue = MockResponseQueue(allowedPermissions, permissionFragment)
7990

8091
@Before fun setup() {
8192
allowedPermissions.clear()
8293
Assent.fragmentCreator = { permissionFragment }
8394

95+
doAnswer { invocation ->
96+
val key: String = invocation.getArgument(0)
97+
val value: Boolean = invocation.getArgument(1)
98+
whenever(sharedPrefs.getBoolean(key, any()))
99+
.doReturn(value)
100+
}.whenever(sharedPrefsEditor)
101+
.putBoolean(isA(), any())
102+
84103
whenever(permissionFragment.perform(any())).thenCallRealMethod()
85104
whenever(
86105
permissionFragment.onRequestPermissionsResult(any(), any(), any())

dependencies.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ ext.versions = [
22
min_sdk: 14,
33
compile_sdk: 29,
44
build_tools: "29.0.0",
5-
publish_version: "3.0.0-RC2",
6-
publish_version_code: 22
5+
publish_version: "3.0.0-RC3",
6+
publish_version_code: 23
77
]
88

99
ext.deps = [

0 commit comments

Comments
 (0)