Skip to content

Commit e52520e

Browse files
committed
fix kotlin KT-17691 Wrong arguments vararg issue
1 parent 361eb17 commit e52520e

File tree

10 files changed

+132
-115
lines changed

10 files changed

+132
-115
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# ChangeLog
2+
====================
3+
4+
## Unreleased
5+
====================
6+
* fix kotlin migration potential issue [Wrong arguments execution order in calls with named vararg](https://youtrack.jetbrains.com/issue/KT-17691)

app/src/main/java/com/qifan/powerpermission/activity/ExampleActivity.kt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,23 @@ class ExampleActivity : AppCompatActivity() {
4646
PowerPermission.init()
4747
.requestPermissions(
4848
context = this@ExampleActivity,
49+
callback = { permissionResult ->
50+
when {
51+
permissionResult.hasAllGranted() -> {
52+
doPermissionAllGrantedWork(permissionResult.granted())
53+
}
54+
permissionResult.hasRational() -> {
55+
doPermissionReasonWork(permissionResult.rational())
56+
}
57+
permissionResult.hasPermanentDenied() -> {
58+
doPermissionPermanentWork(permissionResult.permanentDenied())
59+
}
60+
}
61+
},
4962
permissions = arrayOf(
5063
Manifest.permission.CAMERA
5164
)
52-
) { permissionResult ->
53-
when {
54-
permissionResult.hasAllGranted() -> {
55-
doPermissionAllGrantedWork(permissionResult.granted())
56-
}
57-
permissionResult.hasRational() -> {
58-
doPermissionReasonWork(permissionResult.rational())
59-
}
60-
permissionResult.hasPermanentDenied() -> {
61-
doPermissionPermanentWork(permissionResult.permanentDenied())
62-
}
63-
}
64-
}
65+
)
6566
}
6667

6768
private fun doPermissionPermanentWork(permanentDenied: List<Permission>) {

dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ ext {
4545
assertJCore = "org.assertj:assertj-core:$assertJCoreVerison"
4646

4747
//mock
48-
mockKVersion = "1.10.3"
48+
mockKVersion = "1.10.2"
4949
mockK = "io.mockk:mockk:$mockKVersion"
5050

5151

powerpermission-coroutines/src/main/java/com/qifan/powerpermission/coroutines/PowerPermissionCoroutines.kt

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,14 @@ suspend fun AppCompatActivity.awaitAskPermissions(
4545
checkMainThread()
4646
return suspendCancellableCoroutine { continuation ->
4747
askPermissions(
48-
permissions = permissions,
4948
configuration = configuration,
5049
requestCode = requestCode,
51-
rationaleDelegate = rationaleDelegate
52-
) { result ->
53-
continuation.resume(result)
54-
}
50+
rationaleDelegate = rationaleDelegate,
51+
callback = { result: PermissionResult ->
52+
continuation.resume(result)
53+
},
54+
permissions = permissions
55+
)
5556
}
5657
}
5758

@@ -70,13 +71,14 @@ suspend fun AppCompatActivity.awaitAskPermissionsAllGranted(
7071
): Boolean {
7172
return suspendCancellableCoroutine { continuation ->
7273
askPermissionsAllGranted(
73-
permissions = permissions,
7474
configuration = configuration,
7575
requestCode = requestCode,
76-
rationaleDelegate = rationaleDelegate
77-
) { allGranted ->
78-
continuation.resume(allGranted)
79-
}
76+
rationaleDelegate = rationaleDelegate,
77+
callback = { allGranted: Boolean ->
78+
continuation.resume(allGranted)
79+
},
80+
permissions = permissions
81+
)
8082
}
8183
}
8284

@@ -96,13 +98,14 @@ suspend fun Fragment.awaitAskPermissions(
9698
checkMainThread()
9799
return suspendCancellableCoroutine { continuation ->
98100
askPermissions(
99-
permissions = permissions,
100101
configuration = configuration,
101102
requestCode = requestCode,
102-
rationaleDelegate = rationaleDelegate
103-
) { result ->
104-
continuation.resume(result)
105-
}
103+
rationaleDelegate = rationaleDelegate,
104+
callback = { result: PermissionResult ->
105+
continuation.resume(result)
106+
},
107+
permissions = permissions
108+
)
106109
}
107110
}
108111

@@ -121,12 +124,13 @@ suspend fun Fragment.awaitAskPermissionsAllGranted(
121124
): Boolean {
122125
return suspendCancellableCoroutine { continuation ->
123126
askPermissionsAllGranted(
124-
permissions = permissions,
125127
configuration = configuration,
126128
requestCode = requestCode,
127-
rationaleDelegate = rationaleDelegate
128-
) { allGranted ->
129-
continuation.resume(allGranted)
130-
}
129+
rationaleDelegate = rationaleDelegate,
130+
callback = { allGranted: Boolean ->
131+
continuation.resume(allGranted)
132+
},
133+
permissions = permissions
134+
)
131135
}
132136
}

powerpermission-livedata/src/main/java/com/qifan/powerpermission/livedata/PowerPermissionLiveData.kt

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,14 @@ fun AppCompatActivity.observeAskPermissions(
4343
): MutableLiveData<PermissionResult> {
4444
val mLiveData = MutableLiveData<PermissionResult>()
4545
askPermissions(
46-
permissions = permissions,
4746
configuration = configuration,
4847
requestCode = requestCode,
49-
rationaleDelegate = rationaleDelegate
50-
) { result ->
51-
mLiveData.postValue(result)
52-
}
48+
rationaleDelegate = rationaleDelegate,
49+
callback = { result: PermissionResult ->
50+
mLiveData.postValue(result)
51+
},
52+
permissions = permissions
53+
)
5354
return mLiveData
5455
}
5556

@@ -68,13 +69,14 @@ fun AppCompatActivity.observeAskPermissionsAllGranted(
6869
): MutableLiveData<Boolean> {
6970
val mLiveData = MutableLiveData<Boolean>()
7071
askPermissionsAllGranted(
71-
permissions = permissions,
7272
configuration = configuration,
7373
requestCode = requestCode,
74-
rationaleDelegate = rationaleDelegate
75-
) { allGranted ->
76-
mLiveData.postValue(allGranted)
77-
}
74+
callback = { allGranted: Boolean ->
75+
mLiveData.postValue(allGranted)
76+
},
77+
rationaleDelegate = rationaleDelegate,
78+
permissions = permissions
79+
)
7880
return mLiveData
7981
}
8082

@@ -93,13 +95,14 @@ fun Fragment.observeAskPermissions(
9395
): MutableLiveData<PermissionResult> {
9496
val mLiveData = MutableLiveData<PermissionResult>()
9597
askPermissions(
96-
permissions = permissions,
9798
configuration = configuration,
9899
requestCode = requestCode,
99-
rationaleDelegate = rationaleDelegate
100-
) { result ->
101-
mLiveData.postValue(result)
102-
}
100+
rationaleDelegate = rationaleDelegate,
101+
callback = { result: PermissionResult ->
102+
mLiveData.postValue(result)
103+
},
104+
permissions = permissions
105+
)
103106
return mLiveData
104107
}
105108

@@ -118,12 +121,13 @@ fun Fragment.observeAskPermissionsAllGranted(
118121
): MutableLiveData<Boolean> {
119122
val mLiveData = MutableLiveData<Boolean>()
120123
askPermissionsAllGranted(
121-
permissions = permissions,
122124
configuration = configuration,
123125
requestCode = requestCode,
124-
rationaleDelegate = rationaleDelegate
125-
) { allGranted ->
126-
mLiveData.postValue(allGranted)
127-
}
126+
rationaleDelegate = rationaleDelegate,
127+
callback = { allGranted: Boolean ->
128+
mLiveData.postValue(allGranted)
129+
},
130+
permissions = permissions
131+
)
128132
return mLiveData
129133
}

powerpermission-rxjava2/src/main/java/com/qifan/powerpermission/rx2/PowerPermissionRx2.kt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,12 @@ fun AppCompatActivity.askPermissionsRx(
4545
checkMainThread()
4646
return Observable.create { emitter ->
4747
askPermissions(
48-
permissions = permissions,
4948
configuration = configuration,
5049
requestCode = requestCode,
51-
rationaleDelegate = rationaleDelegate
52-
) {
53-
emitter.onNext(it)
54-
}
50+
rationaleDelegate = rationaleDelegate,
51+
callback = { emitter.onNext(it) },
52+
permissions = permissions
53+
)
5554
}
5655
}
5756

@@ -71,13 +70,14 @@ fun AppCompatActivity.askPermissionsAllGrantedRx(
7170
): Observable<Boolean> {
7271
return Observable.create { emitter ->
7372
askPermissionsAllGranted(
74-
permissions = permissions,
7573
configuration = configuration,
7674
requestCode = requestCode,
77-
rationaleDelegate = rationaleDelegate
78-
) { allGranted ->
79-
emitter.onNext(allGranted)
80-
}
75+
rationaleDelegate = rationaleDelegate,
76+
callback = { allGranted: Boolean ->
77+
emitter.onNext(allGranted)
78+
},
79+
permissions = permissions
80+
)
8181
}
8282
}
8383

@@ -98,13 +98,12 @@ fun Fragment.askPermissionsRx(
9898
checkMainThread()
9999
return Observable.create { emitter ->
100100
askPermissions(
101-
permissions = permissions,
102101
configuration = configuration,
103102
requestCode = requestCode,
104-
rationaleDelegate = rationaleDelegate
105-
) {
106-
emitter.onNext(it)
107-
}
103+
rationaleDelegate = rationaleDelegate,
104+
callback = { emitter.onNext(it) },
105+
permissions = permissions,
106+
)
108107
}
109108
}
110109

@@ -124,12 +123,13 @@ fun Fragment.askPermissionsAllGrantedRx(
124123
): Observable<Boolean> {
125124
return Observable.create { emitter ->
126125
askPermissionsAllGranted(
127-
permissions = permissions,
128126
configuration = configuration,
129127
requestCode = requestCode,
130-
rationaleDelegate = rationaleDelegate
131-
) { allGranted ->
132-
emitter.onNext(allGranted)
133-
}
128+
rationaleDelegate = rationaleDelegate,
129+
callback = { allGranted: Boolean ->
130+
emitter.onNext(allGranted)
131+
},
132+
permissions = permissions
133+
)
134134
}
135135
}

powerpermission-rxjava3/src/main/java/com/qifan/powerpermission/rx3/PowerPermissionRx3.kt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,12 @@ fun AppCompatActivity.askPermissionsRx(
4545
checkMainThread()
4646
return Observable.create { emitter ->
4747
askPermissions(
48-
permissions = permissions,
4948
configuration = configuration,
5049
requestCode = requestCode,
51-
rationaleDelegate = rationaleDelegate
52-
) {
53-
emitter.onNext(it)
54-
}
50+
rationaleDelegate = rationaleDelegate,
51+
callback = { emitter.onNext(it) },
52+
permissions = permissions
53+
)
5554
}
5655
}
5756

@@ -64,20 +63,21 @@ fun AppCompatActivity.askPermissionsRx(
6463
* @return [Observable] true means all permissions granted otherwise not
6564
*/
6665
fun AppCompatActivity.askPermissionsAllGrantedRx(
67-
vararg permissions: Permission,
6866
configuration: Configuration = DefaultConfiguration(),
6967
requestCode: RequestCode = PERMISSION_REQUEST_CODE,
70-
rationaleDelegate: RationaleDelegate? = null
68+
rationaleDelegate: RationaleDelegate? = null,
69+
vararg permissions: Permission
7170
): Observable<Boolean> {
7271
return Observable.create { emitter ->
7372
askPermissionsAllGranted(
74-
permissions = permissions,
7573
configuration = configuration,
7674
requestCode = requestCode,
77-
rationaleDelegate = rationaleDelegate
78-
) { allGranted ->
79-
emitter.onNext(allGranted)
80-
}
75+
rationaleDelegate = rationaleDelegate,
76+
callback = { allGranted: Boolean ->
77+
emitter.onNext(allGranted)
78+
},
79+
permissions = permissions
80+
)
8181
}
8282
}
8383

@@ -98,13 +98,12 @@ fun Fragment.askPermissionsRx(
9898
checkMainThread()
9999
return Observable.create { emitter ->
100100
askPermissions(
101-
permissions = permissions,
102101
configuration = configuration,
103102
requestCode = requestCode,
104-
rationaleDelegate = rationaleDelegate
105-
) {
106-
emitter.onNext(it)
107-
}
103+
rationaleDelegate = rationaleDelegate,
104+
callback = { emitter.onNext(it) },
105+
permissions = permissions
106+
)
108107
}
109108
}
110109

@@ -124,12 +123,13 @@ fun Fragment.askPermissionsAllGrantedRx(
124123
): Observable<Boolean> {
125124
return Observable.create { emitter ->
126125
askPermissionsAllGranted(
127-
permissions = permissions,
128126
configuration = configuration,
129127
requestCode = requestCode,
130-
rationaleDelegate = rationaleDelegate
131-
) { allGranted ->
132-
emitter.onNext(allGranted)
133-
}
128+
rationaleDelegate = rationaleDelegate,
129+
callback = { allGranted: Boolean ->
130+
emitter.onNext(allGranted)
131+
},
132+
permissions = permissions
133+
)
134134
}
135135
}

0 commit comments

Comments
 (0)