ImageSelectActivity.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. package epson.print.imgsel;
  2. import android.app.AlertDialog;
  3. import android.app.Dialog;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.support.p000v4.app.FragmentManager;
  8. import android.view.Menu;
  9. import android.view.MenuItem;
  10. import epson.common.Utils;
  11. import epson.print.ActivityIACommon;
  12. import epson.print.R;
  13. import epson.print.imgsel.ImageFolderListFragment;
  14. import epson.print.imgsel.ImageGridFragment;
  15. import epson.print.imgsel.LocalAlertDialogFragment;
  16. import java.io.File;
  17. import java.util.ArrayList;
  18. public abstract class ImageSelectActivity extends ActivityIACommon implements ImageFolderListFragment.FolderSelectedListener, ImageGridFragment.ImageGridListener, LocalAlertDialogFragment.DialogCallback {
  19. public static final int DIALOG_CODE_ERROR_FINISH = 1;
  20. public static final String PARAM_SELECTED_FILE_LIST = "selected_files";
  21. private static final String STATE_SELECT_LIST = "select_list";
  22. private static final String TAG_FRAGMENT_FOLDER_LIST = "folder_list";
  23. private static final String TAG_FRAGMENT_IMAGE_GRID = "image_grid";
  24. private ImageSelector mImageSelector;
  25. public abstract ImageFinder getImageFinder();
  26. public int getMessageType() {
  27. return 0;
  28. }
  29. /* access modifiers changed from: protected */
  30. public abstract void goNext();
  31. public boolean showNfcInvalidMessageOnPagerActivity() {
  32. return false;
  33. }
  34. public abstract boolean singleImageMode();
  35. /* access modifiers changed from: protected */
  36. public void onCreate(Bundle bundle) {
  37. super.onCreate(bundle);
  38. setContentView((int) R.layout.activity_image_selector);
  39. setActionBar("", true);
  40. if (bundle == null) {
  41. getSupportFragmentManager().beginTransaction().add(R.id.container, new ImageFolderListFragment(), TAG_FRAGMENT_FOLDER_LIST).commit();
  42. }
  43. this.mImageSelector = new ImageSelector();
  44. if (bundle != null) {
  45. ArrayList<String> stringArrayList = bundle.getStringArrayList(STATE_SELECT_LIST);
  46. if (stringArrayList != null) {
  47. this.mImageSelector.replaceFiles(stringArrayList);
  48. }
  49. } else {
  50. ArrayList<String> selectedListFromIntent = getSelectedListFromIntent(getIntent());
  51. if (selectedListFromIntent != null) {
  52. this.mImageSelector.replaceFiles(selectedListFromIntent);
  53. }
  54. }
  55. if (!Utils.isMediaMounted()) {
  56. LocalAlertDialogFragment.newInstance(getResources().getString(R.string.str_no_sdcard), 1).show(getSupportFragmentManager(), "alert_dialog");
  57. } else {
  58. AltThumbnailCache.initThumbnailCache(getApplicationContext());
  59. }
  60. }
  61. private ArrayList<String> getSelectedListFromIntent(Intent intent) {
  62. if (intent == null) {
  63. return null;
  64. }
  65. return intent.getStringArrayListExtra(PARAM_SELECTED_FILE_LIST);
  66. }
  67. public boolean onCreateOptionsMenu(Menu menu) {
  68. int selectedNumber = this.mImageSelector.selectedNumber();
  69. getMenuInflater().inflate(R.C2138menu.menu_image_selector, menu);
  70. MenuItem findItem = menu.findItem(R.id.action_go_preview);
  71. if (!singleImageMode()) {
  72. findItem.setEnabled(selectedNumber > 0);
  73. } else {
  74. findItem.setVisible(false);
  75. }
  76. if (selectedNumber <= 0) {
  77. ImageGridFragment gridFragment = getGridFragment();
  78. if (gridFragment == null) {
  79. setTitle(getResources().getString(R.string.FunctionName_iPrint_Photo));
  80. } else {
  81. String folderName = gridFragment.getFolderName();
  82. if (folderName != null) {
  83. setTitle(new File(folderName).getName());
  84. } else {
  85. setTitle(getResources().getString(R.string.FunctionName_iPrint_Photo));
  86. }
  87. }
  88. } else {
  89. setTitle(getResources().getString(R.string.photo_selected, new Object[]{Integer.valueOf(selectedNumber)}));
  90. }
  91. MenuItem findItem2 = menu.findItem(R.id.action_zoom);
  92. MenuItem findItem3 = menu.findItem(R.id.action_select);
  93. findItem2.setVisible(false);
  94. findItem3.setVisible(false);
  95. if (getGridFragment() != null && !singleImageMode()) {
  96. switch (getGridFragment().getPhotoSelectionMode()) {
  97. case 0:
  98. findItem2.setVisible(false);
  99. findItem3.setVisible(true);
  100. break;
  101. case 1:
  102. findItem2.setVisible(true);
  103. findItem3.setVisible(false);
  104. break;
  105. }
  106. }
  107. return true;
  108. }
  109. public boolean onOptionsItemSelected(MenuItem menuItem) {
  110. int itemId = menuItem.getItemId();
  111. ImageGridFragment gridFragment = getGridFragment();
  112. if (itemId == R.id.action_thumbnail_type_select) {
  113. showOsCacheDialog();
  114. return true;
  115. } else if (itemId == R.id.action_go_preview) {
  116. goNext();
  117. return true;
  118. } else {
  119. if (itemId == R.id.action_select) {
  120. if (gridFragment != null) {
  121. gridFragment.setPhotoSelectionMode(1);
  122. supportInvalidateOptionsMenu();
  123. return true;
  124. }
  125. } else if (itemId == R.id.action_zoom && gridFragment != null) {
  126. gridFragment.setPhotoSelectionMode(0);
  127. supportInvalidateOptionsMenu();
  128. return true;
  129. }
  130. return super.onOptionsItemSelected(menuItem);
  131. }
  132. }
  133. /* access modifiers changed from: protected */
  134. public void showOsCacheDialog() {
  135. OsCacheDialog.newInstance().show(getSupportFragmentManager(), "dialog");
  136. }
  137. /* access modifiers changed from: protected */
  138. public void onSaveInstanceState(Bundle bundle) {
  139. bundle.putStringArrayList(STATE_SELECT_LIST, this.mImageSelector.getFileArrayList());
  140. super.onSaveInstanceState(bundle);
  141. }
  142. public void onFolderSelected(ImageFolderInfo imageFolderInfo) {
  143. startImageGridFragment(imageFolderInfo.mCanonicalName);
  144. }
  145. private void startImageGridFragment(String str) {
  146. getSupportFragmentManager().beginTransaction().replace(R.id.container, ImageGridFragment.newInstance(str), TAG_FRAGMENT_IMAGE_GRID).addToBackStack(TAG_FRAGMENT_IMAGE_GRID).commit();
  147. }
  148. /* access modifiers changed from: protected */
  149. public void onPause() {
  150. if (isFinishing()) {
  151. AltThumbnailCache.deleteCacheDirectory();
  152. }
  153. super.onPause();
  154. }
  155. /* access modifiers changed from: protected */
  156. public void refreshSelector(ArrayList<String> arrayList) {
  157. if (arrayList != null) {
  158. this.mImageSelector.replaceFiles(arrayList);
  159. if (getGridFragment() != null) {
  160. getGridFragment().updateImageSelector(arrayList);
  161. }
  162. supportInvalidateOptionsMenu();
  163. }
  164. }
  165. private ImageGridFragment getGridFragment() {
  166. return (ImageGridFragment) getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT_IMAGE_GRID);
  167. }
  168. public ImageSelector getImageSelector() {
  169. return this.mImageSelector;
  170. }
  171. public void onDialogCallback(int i) {
  172. if (i == 1) {
  173. finish();
  174. }
  175. }
  176. public void changeThumbnailCreateMethod(boolean z) {
  177. AltThumbnailCache.setThumbnailCreateMethod(this, z);
  178. reloadFragment();
  179. }
  180. private void reloadFragment() {
  181. if (TAG_FRAGMENT_IMAGE_GRID.equals(getActiveFragmentTag())) {
  182. getSupportFragmentManager().popBackStack();
  183. }
  184. getSupportFragmentManager().beginTransaction().replace(R.id.container, new ImageFolderListFragment(), TAG_FRAGMENT_FOLDER_LIST).commit();
  185. }
  186. private String getActiveFragmentTag() {
  187. FragmentManager supportFragmentManager = getSupportFragmentManager();
  188. int backStackEntryCount = supportFragmentManager.getBackStackEntryCount();
  189. if (backStackEntryCount >= 1) {
  190. return supportFragmentManager.getBackStackEntryAt(backStackEntryCount - 1).getName();
  191. }
  192. if (supportFragmentManager.findFragmentByTag(TAG_FRAGMENT_FOLDER_LIST) != null) {
  193. return TAG_FRAGMENT_FOLDER_LIST;
  194. }
  195. return null;
  196. }
  197. public static class OsCacheDialog extends DialogFragment {
  198. /* access modifiers changed from: private */
  199. public boolean mUseMediaStoreThumbnail;
  200. public static OsCacheDialog newInstance() {
  201. return new OsCacheDialog();
  202. }
  203. public Dialog onCreateDialog(Bundle bundle) {
  204. CharSequence[] charSequenceArr = {getActivity().getString(R.string.str_use_mediastorage_thumbnail)};
  205. this.mUseMediaStoreThumbnail = AltThumbnailCache.isUseMediaStoreThumbnail();
  206. boolean[] zArr = {this.mUseMediaStoreThumbnail};
  207. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  208. builder.setPositiveButton(R.string.f343ok, new DialogInterface.OnClickListener() {
  209. public void onClick(DialogInterface dialogInterface, int i) {
  210. OsCacheDialog.this.onOkPressed();
  211. }
  212. }).setNegativeButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
  213. public void onClick(DialogInterface dialogInterface, int i) {
  214. }
  215. }).setMultiChoiceItems(charSequenceArr, zArr, new DialogInterface.OnMultiChoiceClickListener() {
  216. public void onClick(DialogInterface dialogInterface, int i, boolean z) {
  217. if (i == 0) {
  218. boolean unused = OsCacheDialog.this.mUseMediaStoreThumbnail = z;
  219. }
  220. }
  221. });
  222. AlertDialog create = builder.create();
  223. create.setCanceledOnTouchOutside(false);
  224. return create;
  225. }
  226. /* access modifiers changed from: private */
  227. public void onOkPressed() {
  228. ImageSelectActivity imageSelectActivity = (ImageSelectActivity) getActivity();
  229. if (imageSelectActivity != null) {
  230. imageSelectActivity.changeThumbnailCreateMethod(this.mUseMediaStoreThumbnail);
  231. }
  232. }
  233. }
  234. }