Reputation: 41
I'm trying to utilize the Review API (Play Core library 1.8.0) from Google which was just released today. See https://developer.android.com/guide/playcore/in-app-review. I am currently using it using the following code:
public void inAppReview() {
ReviewManager reviewManager = ReviewManagerFactory.create(getActivity());
Task<ReviewInfo> request = reviewManager.requestReviewFlow();
request.addOnCompleteListener(new OnCompleteListener<ReviewInfo>() {
@Override
public void onComplete(@NonNull Task<ReviewInfo> task) {
if (task.isSuccessful()) {
ReviewInfo reviewInfo = task.getResult();
Task<Void> flow = reviewManager.launchReviewFlow(getActivity(), reviewInfo);
flow.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.e("task<void>", task.isComplete() + "");
Log.e("task<void>", task.isSuccessful() + "");
}
}).addOnFailureListener(new com.google.android.play.core.tasks.OnFailureListener() {
@Override
public void onFailure(Exception e) {
}
});
} else {
Log.e("Review error", "Review error");
}
}
}).addOnFailureListener(new com.google.android.play.core.tasks.OnFailureListener() {
@Override
public void onFailure(Exception e) {
Log.e("Review error", "Review error");
}
});
}
I have tested using the Internal Test Track in the Google Play Developer Console, but unfortunately, I am not receiving the review dialog on my test account. What am I doing wrong?
Upvotes: 3
Views: 4218
Reputation: 701
I am trying to investigate this too. Maybe proguard obfuscates some classes of Play Core. Try to keep all classes in Play core, Parcelable and Serializable However in the logcat there are errors
-keep class * implements com.google.android.play { *; }
-keep class com.google.android.play.** { *; }
-keep interface com.google.android.play.** { *; }
-keepclassmembers class * implements android.os.Parcelable {
static *** CREATOR;
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
Upvotes: 1