feature/store-review #49
@@ -22,9 +22,17 @@ class ReviewService @Inject constructor(@ActivityContext private val appContext:
|
|||||||
|
|
||||||
private val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext)
|
private val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext)
|
||||||
|
|
||||||
private val THREE_MONTHS : Long = 3 * 30 * 24 * 60 * 60
|
private val THREE_MONTHS : Long = 7776000000
|
||||||
|
|
||||||
private var lastReviewedDate: Date
|
private var requestCalled: Int
|
||||||
|
get() = sharedPreferences.getInt("requestCalled", 0)
|
||||||
|
set(value) {
|
||||||
|
val editor = sharedPreferences.edit()
|
||||||
|
editor.putInt("requestCalled", value)
|
||||||
|
editor.apply()
|
||||||
|
}
|
||||||
|
|
||||||
|
private var nextReviewedDate: Date
|
||||||
get() = Date(sharedPreferences.getLong("lastReviewedDate", 0))
|
get() = Date(sharedPreferences.getLong("lastReviewedDate", 0))
|
||||||
set(value) {
|
set(value) {
|
||||||
val editor = sharedPreferences.edit()
|
val editor = sharedPreferences.edit()
|
||||||
@@ -33,23 +41,26 @@ class ReviewService @Inject constructor(@ActivityContext private val appContext:
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun request() {
|
fun request() {
|
||||||
|
requestCalled += 1
|
||||||
|
|
||||||
val diff = Date().time - lastReviewedDate.time
|
if(requestCalled >= 3)
|
||||||
|
|
||||||
if(diff > 0)
|
|
||||||
{
|
{
|
||||||
lastReviewedDate = Date()
|
if(nextReviewedDate.time < System.currentTimeMillis())
|
||||||
|
{
|
||||||
|
requestCalled = 0
|
||||||
|
nextReviewedDate = Date(System.currentTimeMillis() + THREE_MONTHS)
|
||||||
|
|
||||||
val manager = ReviewManagerFactory.create(appContext)
|
val manager = ReviewManagerFactory.create(appContext)
|
||||||
|
|
||||||
val request = manager.requestReviewFlow()
|
val request = manager.requestReviewFlow()
|
||||||
request.addOnCompleteListener { task ->
|
request.addOnCompleteListener { task ->
|
||||||
if (task.isSuccessful) {
|
if (task.isSuccessful) {
|
||||||
// We got the ReviewInfo object
|
// We got the ReviewInfo object
|
||||||
val reviewInfo = task.result
|
val reviewInfo = task.result
|
||||||
manager.launchReviewFlow(appContext as Activity, reviewInfo)
|
manager.launchReviewFlow(appContext as Activity, reviewInfo)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user