27 lines
832 B
Kotlin
27 lines
832 B
Kotlin
package de.softwareapp_hb.privateqrscanner.util
|
|
|
|
import android.app.Activity
|
|
import android.content.Context
|
|
import android.content.ContextWrapper
|
|
import com.google.android.play.core.review.ReviewManagerFactory
|
|
|
|
object InAppReviewRequester {
|
|
fun requestReview(context: Context) {
|
|
val activity = context.findActivity() ?: return
|
|
val manager = ReviewManagerFactory.create(activity)
|
|
manager.requestReviewFlow().addOnCompleteListener { request ->
|
|
if (request.isSuccessful) {
|
|
manager.launchReviewFlow(activity, request.result)
|
|
}
|
|
}
|
|
}
|
|
|
|
private tailrec fun Context.findActivity(): Activity? {
|
|
return when (this) {
|
|
is Activity -> this
|
|
is ContextWrapper -> baseContext.findActivity()
|
|
else -> null
|
|
}
|
|
}
|
|
}
|