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