ImageSelectActivity.java 10.0 KB

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