ReviewInvitationDialog.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.epson.mobilephone.common;
  2. import android.app.AlertDialog;
  3. import android.app.Dialog;
  4. import android.content.Context;
  5. import android.content.DialogInterface;
  6. import android.content.Intent;
  7. import android.content.pm.PackageManager;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import androidx.annotation.NonNull;
  11. import androidx.annotation.Nullable;
  12. import androidx.fragment.app.DialogFragment;
  13. import androidx.fragment.app.FragmentActivity;
  14. import epson.print.R;
  15. public class ReviewInvitationDialog extends DialogFragment {
  16. private static final String GOOGLE_PLAY_STORE_ID = "market://details?id=epson.print";
  17. private OnClickListener mOnClickListener;
  18. public interface OnClickListener {
  19. void invitationDialogClicked(boolean z);
  20. }
  21. public static ReviewInvitationDialog newInstance() {
  22. return new ReviewInvitationDialog();
  23. }
  24. @NonNull
  25. public Dialog onCreateDialog(@Nullable Bundle bundle) {
  26. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  27. builder.setMessage(R.string.review_guidance_message).setPositiveButton(R.string.review_guidance_ok, new DialogInterface.OnClickListener() {
  28. public void onClick(DialogInterface dialogInterface, int i) {
  29. ReviewInvitationDialog.this.startReview();
  30. ReviewInvitationDialog.this.doCallback(true);
  31. }
  32. }).setNegativeButton(R.string.review_guidance_cancel, new DialogInterface.OnClickListener() {
  33. public void onClick(DialogInterface dialogInterface, int i) {
  34. ReviewInvitationDialog.this.doCallback(false);
  35. }
  36. });
  37. setCancelable(false);
  38. return builder.create();
  39. }
  40. private void startReview() {
  41. FragmentActivity activity = getActivity();
  42. if (activity != null) {
  43. PackageManager packageManager = activity.getPackageManager();
  44. Intent intent = new Intent("android.intent.action.VIEW");
  45. intent.setData(Uri.parse(GOOGLE_PLAY_STORE_ID));
  46. if (intent.resolveActivity(packageManager) != null) {
  47. activity.startActivity(intent);
  48. }
  49. }
  50. }
  51. private void doCallback(boolean z) {
  52. mOnClickListener.invitationDialogClicked(z);
  53. }
  54. public void onAttach(Context context) {
  55. super.onAttach(context);
  56. try {
  57. mOnClickListener = (OnClickListener) context;
  58. } catch (ClassCastException unused) {
  59. throw new ClassCastException(context.toString() + " must implement ReviewInvitationDialog.OnClickListener");
  60. }
  61. }
  62. public void onDetach() {
  63. super.onDetach();
  64. mOnClickListener = null;
  65. }
  66. }