parent
dc0840461b
commit
1ee6b2d142
@ -0,0 +1,58 @@ |
|||||||
|
package net.pokeranalytics.android.ui.helpers |
||||||
|
|
||||||
|
import android.app.Activity |
||||||
|
import android.content.Context |
||||||
|
import com.google.android.play.core.review.ReviewManagerFactory |
||||||
|
import net.pokeranalytics.android.util.Preferences |
||||||
|
import java.util.* |
||||||
|
|
||||||
|
object AppReviewManager { |
||||||
|
|
||||||
|
private var reviewRequested: Boolean = false |
||||||
|
|
||||||
|
fun requestReview() { |
||||||
|
this.reviewRequested = true |
||||||
|
} |
||||||
|
|
||||||
|
fun showReviewManager(activity: Activity) { |
||||||
|
|
||||||
|
if (this.reviewRequested && this.shouldAskForReview(activity.baseContext)) { |
||||||
|
this.reviewRequested = false |
||||||
|
|
||||||
|
val manager = ReviewManagerFactory.create(activity.applicationContext) |
||||||
|
val task = manager.requestReviewFlow() |
||||||
|
task.addOnCompleteListener { request -> |
||||||
|
if (request.isSuccessful) { |
||||||
|
|
||||||
|
Preferences.setLastReviewRequestDate(Date().time, activity.applicationContext) |
||||||
|
|
||||||
|
// We got the ReviewInfo object |
||||||
|
val reviewInfo = request.result |
||||||
|
val flow = manager.launchReviewFlow(activity, reviewInfo) |
||||||
|
flow.addOnCompleteListener { |
||||||
|
// completed |
||||||
|
} |
||||||
|
} else { |
||||||
|
// There was some problem, continue regardless of the result. |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private fun shouldAskForReview(context: Context): Boolean { |
||||||
|
|
||||||
|
val now = Date().time |
||||||
|
val firstLaunch = Preferences.getFirstLaunchDate(context) |
||||||
|
if (now - firstLaunch < 20 * 24 * 3600 * 1000L) { |
||||||
|
return false |
||||||
|
} |
||||||
|
|
||||||
|
val lastReviewRequest = Preferences.getLastReviewRequestDate(context) |
||||||
|
if (now - lastReviewRequest < 90 * 24 * 3600 * 1000L) { |
||||||
|
return false |
||||||
|
} |
||||||
|
return true |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue