|
|
|
@ -1,7 +1,8 @@
|
|
|
|
|
package org.tasks.play
|
|
|
|
|
|
|
|
|
|
import android.app.Activity
|
|
|
|
|
import android.content.Context
|
|
|
|
|
import androidx.activity.ComponentActivity
|
|
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
|
|
import com.google.android.gms.common.ConnectionResult
|
|
|
|
|
import com.google.android.gms.common.GoogleApiAvailability.getInstance
|
|
|
|
|
import com.google.android.play.core.ktx.launchReview
|
|
|
|
@ -9,6 +10,7 @@ import com.google.android.play.core.ktx.requestReview
|
|
|
|
|
import com.google.android.play.core.review.ReviewManagerFactory
|
|
|
|
|
import com.todoroo.andlib.utility.DateUtilities.now
|
|
|
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
|
|
|
import kotlinx.coroutines.launch
|
|
|
|
|
import org.tasks.R
|
|
|
|
|
import org.tasks.analytics.Firebase
|
|
|
|
|
import org.tasks.preferences.Preferences
|
|
|
|
@ -22,17 +24,17 @@ class PlayServices @Inject constructor(
|
|
|
|
|
fun isAvailable() =
|
|
|
|
|
getInstance().isGooglePlayServicesAvailable(context) == ConnectionResult.SUCCESS
|
|
|
|
|
|
|
|
|
|
suspend fun requestReview(activity: Activity) {
|
|
|
|
|
fun requestReview(activity: ComponentActivity) = activity.lifecycleScope.launch {
|
|
|
|
|
if (firebase.reviewCooldown) {
|
|
|
|
|
return
|
|
|
|
|
return@launch
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
with(ReviewManagerFactory.create(context)) {
|
|
|
|
|
val request = requestReview()
|
|
|
|
|
launchReview(activity, request)
|
|
|
|
|
preferences.lastReviewRequest = now()
|
|
|
|
|
firebase.logEvent(R.string.event_request_review)
|
|
|
|
|
}
|
|
|
|
|
preferences.lastReviewRequest = now()
|
|
|
|
|
firebase.logEvent(R.string.event_request_review)
|
|
|
|
|
} catch (e: Exception) {
|
|
|
|
|
firebase.reportException(e)
|
|
|
|
|
}
|
|
|
|
|