InkRplnProgressFragment.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package epson.print.inkrpln;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.support.annotation.NonNull;
  8. import android.support.annotation.Nullable;
  9. import android.support.p000v4.app.Fragment;
  10. import android.support.p000v4.app.FragmentManager;
  11. import epson.print.R;
  12. import epson.print.IprintApplication;
  13. import epson.print.ThreeButtonDialog;
  14. import epson.print.Util.EPLog;
  15. import java.io.IOException;
  16. import java.lang.annotation.Retention;
  17. import java.lang.annotation.RetentionPolicy;
  18. public class InkRplnProgressFragment extends Fragment {
  19. private static final String ARG_KEY_DEPENDENCY_BUILDER = "dependency_builder";
  20. private static final String DIALOG_TAG_THREE_BUTTON = "three_button_dialog";
  21. private static final String FRAGMENT_TAG = "InkDeliverySystem";
  22. private static final String KEY_FRAGMENT_STATUS = "fragment_status";
  23. public static final int STATUS_WAITE_ACTIVITY_FINISH = 1;
  24. public static final int STATUS_WAITE_DIALOG_INPUT = 3;
  25. public static final int STATUS_WAITE_DIALOG_OPEN = 2;
  26. public static final int STATUS_WAITE_THREAD_END = 0;
  27. private boolean mFragmentForeground;
  28. private int mFragmentStatus;
  29. private InkDeliverySystemTask mInkDeliverySystemTask;
  30. private InkReplenishSystem mInkReplenishSystem;
  31. @Retention(RetentionPolicy.SOURCE)
  32. private @interface FragmentStatus {
  33. }
  34. @NonNull
  35. public static InkRplnProgressFragment getInstance(@NonNull FragmentManager fragmentManager, @Nullable DependencyBuilder dependencyBuilder) {
  36. InkRplnProgressFragment inkRplnProgressFragment = (InkRplnProgressFragment) fragmentManager.findFragmentByTag(FRAGMENT_TAG);
  37. if (inkRplnProgressFragment != null) {
  38. return inkRplnProgressFragment;
  39. }
  40. InkRplnProgressFragment inkRplnProgressFragment2 = new InkRplnProgressFragment();
  41. Bundle bundle = new Bundle();
  42. bundle.putSerializable(ARG_KEY_DEPENDENCY_BUILDER, dependencyBuilder);
  43. inkRplnProgressFragment2.setArguments(bundle);
  44. fragmentManager.beginTransaction().add((Fragment) inkRplnProgressFragment2, FRAGMENT_TAG).commit();
  45. return inkRplnProgressFragment2;
  46. }
  47. /* access modifiers changed from: private */
  48. public InkReplenishSystem getIPrintInkDsManager() {
  49. return this.mInkReplenishSystem;
  50. }
  51. /* access modifiers changed from: private */
  52. public void requestToShowDialogOrFinish() {
  53. if (this.mInkReplenishSystem.needsDisplayInvitationDialog(IprintApplication.getInstance())) {
  54. requestToShowDialog();
  55. } else {
  56. localFinishActivity();
  57. }
  58. }
  59. private void requestToShowDialog() {
  60. FragmentActivity activity = getActivity();
  61. if (activity == null || !this.mFragmentForeground) {
  62. this.mFragmentStatus = 2;
  63. return;
  64. }
  65. ThreeButtonDialog threeButtonDialog = (ThreeButtonDialog) activity.getSupportFragmentManager().findFragmentByTag(DIALOG_TAG_THREE_BUTTON);
  66. if (threeButtonDialog != null) {
  67. threeButtonDialog.dismiss();
  68. }
  69. ThreeButtonDialog.newInstance(R.layout.dialog_inkrpln_invitation).show(activity.getSupportFragmentManager(), DIALOG_TAG_THREE_BUTTON);
  70. this.mFragmentStatus = 3;
  71. }
  72. /* access modifiers changed from: package-private */
  73. @UiThread
  74. public void launchWebBrowseAndFinishActivity() {
  75. Uri readyInkUriFromSavedData = this.mInkReplenishSystem.getReadyInkUriFromSavedData(IprintApplication.getInstance());
  76. if (readyInkUriFromSavedData != null) {
  77. startActivity(new Intent("android.intent.action.VIEW", readyInkUriFromSavedData));
  78. this.mFragmentStatus = 1;
  79. return;
  80. }
  81. localFinishActivity();
  82. }
  83. private void setInkDsServerCheckDisable(@NonNull Context context) {
  84. this.mInkReplenishSystem.setServerCheckDisabled(context);
  85. }
  86. public void onResume() {
  87. super.onResume();
  88. this.mFragmentForeground = true;
  89. switch (this.mFragmentStatus) {
  90. case 1:
  91. localFinishActivity();
  92. return;
  93. case 2:
  94. requestToShowDialog();
  95. return;
  96. default:
  97. return;
  98. }
  99. }
  100. public void onPause() {
  101. super.onPause();
  102. this.mFragmentForeground = false;
  103. }
  104. private void localFinishActivity() {
  105. this.mFragmentStatus = 1;
  106. FragmentActivity activity = getActivity();
  107. if (activity != null) {
  108. activity.finish();
  109. }
  110. }
  111. public void onCreate(Bundle bundle) {
  112. super.onCreate(bundle);
  113. setRetainInstance(true);
  114. DependencyBuilder dependencyBuilder = (DependencyBuilder) getArguments().getSerializable(ARG_KEY_DEPENDENCY_BUILDER);
  115. if (dependencyBuilder == null) {
  116. dependencyBuilder = new DependencyBuilder();
  117. }
  118. this.mInkReplenishSystem = new InkReplenishSystem(dependencyBuilder.createPrinterAdapter(), dependencyBuilder.createInkRplnRepository());
  119. this.mFragmentForeground = false;
  120. this.mFragmentStatus = getFragmentStatusFromSavedInstanceState(bundle);
  121. if (this.mFragmentStatus == 0) {
  122. this.mInkDeliverySystemTask = new InkDeliverySystemTask();
  123. this.mInkDeliverySystemTask.execute(new Void[0]);
  124. }
  125. }
  126. private int getFragmentStatusFromSavedInstanceState(Bundle bundle) {
  127. if (bundle == null) {
  128. return 0;
  129. }
  130. int i = bundle.getInt(KEY_FRAGMENT_STATUS, 0);
  131. switch (i) {
  132. case 0:
  133. case 1:
  134. case 2:
  135. case 3:
  136. return i;
  137. default:
  138. return 0;
  139. }
  140. }
  141. public void onSaveInstanceState(Bundle bundle) {
  142. super.onSaveInstanceState(bundle);
  143. bundle.putInt(KEY_FRAGMENT_STATUS, this.mFragmentStatus);
  144. }
  145. private class InkDeliverySystemTask extends AsyncTask<Void, Void, Void> {
  146. private InkDeliverySystemTask() {
  147. }
  148. /* access modifiers changed from: protected */
  149. public Void doInBackground(Void... voidArr) {
  150. try {
  151. InkRplnProgressFragment.this.getIPrintInkDsManager().tryRecordPrinterInfoFromServer(IprintApplication.getInstance());
  152. return null;
  153. } catch (IOException | IllegalArgumentException e) {
  154. EPLog.m307e("InkDeliverySystemTask", "exception <" + e.toString() + ">");
  155. return null;
  156. }
  157. }
  158. /* access modifiers changed from: protected */
  159. public void onPostExecute(Void voidR) {
  160. InkRplnProgressFragment.this.requestToShowDialogOrFinish();
  161. }
  162. }
  163. }