ImagePreviewActivity.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. package com.epson.cameracopy.p006ui;
  2. import android.annotation.SuppressLint;
  3. import android.app.AlertDialog;
  4. import android.app.Dialog;
  5. import android.arch.lifecycle.Observer;
  6. import android.arch.lifecycle.ViewModelProviders;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.content.IntentFilter;
  10. import android.content.res.Resources;
  11. import android.graphics.Bitmap;
  12. import android.media.ExifInterface;
  13. import android.os.Bundle;
  14. import android.support.annotation.Nullable;
  15. import android.support.p000v4.app.DialogFragment;
  16. import android.support.p000v4.app.Fragment;
  17. import android.support.p000v4.app.FragmentActivity;
  18. import android.view.LayoutInflater;
  19. import android.view.Menu;
  20. import android.view.MenuItem;
  21. import android.view.View;
  22. import android.view.ViewGroup;
  23. import android.widget.Button;
  24. import android.widget.ProgressBar;
  25. import com.epson.cameracopy.alt.UiCommon;
  26. import com.epson.cameracopy.device.CameraFile;
  27. import com.epson.cameracopy.device.CameraPreviewControl;
  28. import com.epson.mobilephone.common.wifidirect.NfcTagUtils;
  29. import epson.common.ImageUtil;
  30. import epson.common.ScalableImageView;
  31. import epson.print.ActivityIACommon;
  32. import epson.print.ActivityRequestPermissions;
  33. import epson.print.IprintApplication;
  34. import epson.print.Util.CommonMessage;
  35. import java.io.File;
  36. import java.io.IOException;
  37. import java.io.Serializable;
  38. import java.util.ArrayList;
  39. import java.util.Date;
  40. import org.opencv.videoio.Videoio;
  41. /* renamed from: com.epson.cameracopy.ui.ImagePreviewActivity */
  42. public class ImagePreviewActivity extends ActivityIACommon {
  43. public static final String PARAM_CAMERA_FILE = "camera-file";
  44. public static final String PARAM_PICTURE_FILENAME = "file_name";
  45. public static final String PARAM_SHOW_SIZE_SET_MESSAGE_ON_PRINT_PREVIEW = "pram-sizeset-message-printpreview";
  46. private static final int REQEST_CODE_IMAGE_CROP = 1;
  47. private static final int REQEST_RUNTIMEPERMMISSION = 2;
  48. private static final int REQUEST_WRITE_PERMISSION_FOR_IMAGE_FORMAT_CONVERT = 3;
  49. private PlaceholderFragment mFragment;
  50. public boolean onCreateOptionsMenu(Menu menu) {
  51. return true;
  52. }
  53. protected void onCreate(Bundle bundle) {
  54. super.onCreate(bundle);
  55. setContentView((int) R.layout.activity_picture_view);
  56. setActionBar((int) R.string.image_preview_title, true);
  57. if (bundle == null) {
  58. Intent intent = getIntent();
  59. if (intent == null) {
  60. finish();
  61. return;
  62. }
  63. String stringExtra = intent.getStringExtra(PARAM_PICTURE_FILENAME);
  64. CameraFile cameraFile = (CameraFile) intent.getSerializableExtra(PARAM_CAMERA_FILE);
  65. if (stringExtra == null && cameraFile == null) {
  66. finish();
  67. return;
  68. }
  69. Bundle extras = intent.getExtras();
  70. if (extras.containsKey(PARAM_PICTURE_FILENAME) && extras.containsKey(PARAM_CAMERA_FILE)) {
  71. finish();
  72. } else if (cameraFile == null || new File(cameraFile.getValidFileName()).exists()) {
  73. this.mFragment = PlaceholderFragment.getInstance(stringExtra, cameraFile);
  74. getSupportFragmentManager().beginTransaction().add((int) R.id.container, (Fragment) this.mFragment).commit();
  75. } else {
  76. finish();
  77. }
  78. }
  79. }
  80. protected void onPause() {
  81. super.onPause();
  82. NfcTagUtils.disableForegroundDispatch(this);
  83. }
  84. protected void onResume() {
  85. super.onResume();
  86. NfcTagUtils.enableForegroundDispatch(this, (IntentFilter[]) null, (String[][]) null);
  87. }
  88. protected void onNewIntent(Intent intent) {
  89. super.onNewIntent(intent);
  90. CommonMessage.showInvalidPrintMessageIfEpsonNfcPrinter(this, intent);
  91. }
  92. public boolean onOptionsItemSelected(MenuItem menuItem) {
  93. menuItem.getItemId();
  94. return super.onOptionsItemSelected(menuItem);
  95. }
  96. public void onBackPressed() {
  97. PlaceholderFragment placeholderFragment = this.mFragment;
  98. if (placeholderFragment == null || !placeholderFragment.checkProgress()) {
  99. backCameraPreviewActivity();
  100. }
  101. }
  102. public void backCameraPreviewActivity() {
  103. Intent intent = new Intent(this, CameraPreviewActivity.class);
  104. intent.addFlags(67108864);
  105. intent.addFlags(Videoio.CAP_INTELPERC_DEPTH_GENERATOR);
  106. startActivity(intent);
  107. }
  108. /* renamed from: com.epson.cameracopy.ui.ImagePreviewActivity$PlaceholderFragment */
  109. public static class PlaceholderFragment extends Fragment {
  110. static final /* synthetic */ boolean $assertionsDisabled = false;
  111. private static final String KEY_PREVIEW_FILE = "preview-file";
  112. private static final String PARAM_CAMERA_FILE = "camera-file";
  113. private static final String PARAM_FILE_NAME = "file_name";
  114. ImagePreviewFile mImagePreviewFile;
  115. private ScalableImageView mImageView;
  116. private ProgressBar mProgressBar;
  117. private Button mSaveButton;
  118. private boolean mShowSetDisplaySizeMessageOnPrintPreview;
  119. static {
  120. Class<ImagePreviewActivity> cls = ImagePreviewActivity.class;
  121. }
  122. public static PlaceholderFragment getInstance(String str, CameraFile cameraFile) {
  123. PlaceholderFragment placeholderFragment = new PlaceholderFragment();
  124. Bundle bundle = new Bundle();
  125. bundle.putCharSequence("file_name", str);
  126. bundle.putSerializable("camera-file", cameraFile);
  127. placeholderFragment.setArguments(bundle);
  128. return placeholderFragment;
  129. }
  130. private void setPreview(ScalableImageView scalableImageView, String str) {
  131. scalableImageView.SetImageBitmap(ImageUtil.loadBitmap(str, 1200, 1200, true, true), getResources());
  132. try {
  133. int attributeInt = new ExifInterface(str).getAttributeInt(android.support.media.ExifInterface.TAG_ORIENTATION, 1);
  134. if (attributeInt == 3) {
  135. scalableImageView.SetRotate(180.0f);
  136. } else if (attributeInt == 6) {
  137. scalableImageView.SetRotate(90.0f);
  138. } else if (attributeInt != 8) {
  139. scalableImageView.SetRotate(0.0f);
  140. } else {
  141. scalableImageView.SetRotate(270.0f);
  142. }
  143. } catch (IOException unused) {
  144. }
  145. }
  146. public void setPreview() {
  147. String printFileName = this.mImagePreviewFile.getPrintFileName();
  148. if (printFileName != null) {
  149. setPreview(this.mImageView, printFileName);
  150. }
  151. }
  152. public void restorePreview() {
  153. ScalableImageView scalableImageView = this.mImageView;
  154. if (scalableImageView != null && this.mImagePreviewFile != null && scalableImageView.getBitmap() == null) {
  155. setPreview();
  156. }
  157. }
  158. public void releasePreviewBitmap() {
  159. ScalableImageView scalableImageView = this.mImageView;
  160. if (scalableImageView != null) {
  161. scalableImageView.SetImageBitmap((Bitmap) null, (Resources) null);
  162. }
  163. }
  164. public void onCreate(Bundle bundle) {
  165. super.onCreate(bundle);
  166. if (bundle != null) {
  167. this.mImagePreviewFile = (ImagePreviewFile) bundle.getSerializable(KEY_PREVIEW_FILE);
  168. return;
  169. }
  170. Bundle arguments = getArguments();
  171. if (arguments != null) {
  172. CameraFile cameraFile = (CameraFile) arguments.getSerializable("camera-file");
  173. if (cameraFile != null) {
  174. this.mShowSetDisplaySizeMessageOnPrintPreview = false;
  175. this.mImagePreviewFile = new CameraFileAdapter(cameraFile);
  176. return;
  177. }
  178. this.mShowSetDisplaySizeMessageOnPrintPreview = true;
  179. }
  180. }
  181. public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
  182. View inflate = layoutInflater.inflate(R.layout.fragment_image_preview_view, viewGroup, false);
  183. this.mImageView = (ScalableImageView) inflate.findViewById(R.id.preview_view);
  184. this.mProgressBar = (ProgressBar) inflate.findViewById(R.id.progressBar);
  185. this.mSaveButton = (Button) inflate.findViewById(R.id.save_button);
  186. this.mSaveButton.setOnClickListener(new View.OnClickListener() {
  187. public void onClick(View view) {
  188. if (!PlaceholderFragment.this.checkProgress()) {
  189. if (ActivityRequestPermissions.isRuntimePermissionSupported()) {
  190. String[] strArr = {"android.permission.WRITE_EXTERNAL_STORAGE"};
  191. String[] strArr2 = {PlaceholderFragment.this.getString(R.string.permission_dialog_title), PlaceholderFragment.this.getString(R.string.permission_dialog_title)};
  192. PlaceholderFragment placeholderFragment = PlaceholderFragment.this;
  193. PlaceholderFragment placeholderFragment2 = PlaceholderFragment.this;
  194. ActivityRequestPermissions.Permission permission = new ActivityRequestPermissions.Permission(strArr[0], strArr2, new String[]{ActivityRequestPermissions.DialogParameter.setMessage2((Fragment) placeholderFragment, placeholderFragment.getString(R.string.permission_dialog_message_storage)), ActivityRequestPermissions.DialogParameter.setMessage3A((Fragment) placeholderFragment2, placeholderFragment2.getString(R.string.permission_dialog_message_storage), PlaceholderFragment.this.getString(R.string.permission_function_storage))});
  195. if (!ActivityRequestPermissions.checkPermission(PlaceholderFragment.this.getActivity(), strArr)) {
  196. ActivityRequestPermissions.requestPermission((Fragment) PlaceholderFragment.this, permission, 2);
  197. return;
  198. }
  199. }
  200. PlaceholderFragment.this.saveImage();
  201. }
  202. }
  203. });
  204. ((Button) inflate.findViewById(R.id.print_button)).setOnClickListener(new View.OnClickListener() {
  205. public void onClick(View view) {
  206. if (!PlaceholderFragment.this.checkProgress()) {
  207. PlaceholderFragment.this.startPrintPreviewActivity();
  208. }
  209. }
  210. });
  211. ((Button) inflate.findViewById(R.id.retouch_button)).setOnClickListener(new View.OnClickListener() {
  212. public void onClick(View view) {
  213. if (!PlaceholderFragment.this.checkProgress()) {
  214. PlaceholderFragment.this.startImageCollectActivity();
  215. }
  216. }
  217. });
  218. if (this.mImagePreviewFile != null) {
  219. this.mProgressBar.setVisibility(8);
  220. setPreview();
  221. UiCommon.setButtonEnabled(this.mSaveButton, this.mImagePreviewFile.needSaveButton());
  222. } else {
  223. this.mProgressBar.setVisibility(0);
  224. observeImageConvertFromArgument();
  225. }
  226. return inflate;
  227. }
  228. private void observeImageConvertFromArgument() {
  229. String str;
  230. Bundle arguments = getArguments();
  231. if (arguments != null && (str = (String) arguments.getCharSequence("file_name")) != null) {
  232. observeImageFolderFile(str);
  233. }
  234. }
  235. private void observeImageFolderFile(@Nullable String str) {
  236. if (str != null) {
  237. ImageFolderFile imageFolderFile = new ImageFolderFile(str);
  238. if (!imageFolderFile.needsConvert(IprintApplication.getInstance()) || !requestWritePermissionIfNeeded()) {
  239. ImageFolderFileViewModel imageFolderFileViewModel = (ImageFolderFileViewModel) ViewModelProviders.m0of((Fragment) this).get(ImageFolderFileViewModel.class);
  240. imageFolderFileViewModel.setOriginalData(imageFolderFile);
  241. imageFolderFileViewModel.getData().observe(this, new Observer<ImageFolderFile>() {
  242. public void onChanged(@Nullable ImageFolderFile imageFolderFile) {
  243. PlaceholderFragment.this.localFolderFileViewModelPrepared(imageFolderFile);
  244. }
  245. });
  246. }
  247. }
  248. }
  249. private boolean requestWritePermissionIfNeeded() {
  250. if (ActivityRequestPermissions.isRuntimePermissionSupported()) {
  251. String[] strArr = {"android.permission.WRITE_EXTERNAL_STORAGE"};
  252. ActivityRequestPermissions.Permission permission = new ActivityRequestPermissions.Permission(strArr[0], new String[]{getString(R.string.permission_dialog_title), getString(R.string.permission_dialog_title)}, new String[]{ActivityRequestPermissions.DialogParameter.setMessage2((Fragment) this, getString(R.string.permission_dialog_message_storage)), ActivityRequestPermissions.DialogParameter.setMessage3A((Fragment) this, getString(R.string.permission_dialog_message_storage), getString(R.string.permission_function_storage))});
  253. if (!ActivityRequestPermissions.checkPermission(getActivity(), strArr)) {
  254. ActivityRequestPermissions.requestPermission((Fragment) this, permission, 3);
  255. return true;
  256. }
  257. }
  258. return false;
  259. }
  260. /* access modifiers changed from: private */
  261. public boolean checkProgress() {
  262. return this.mProgressBar.getVisibility() == 0;
  263. }
  264. /* access modifiers changed from: private */
  265. public void localFolderFileViewModelPrepared(@Nullable ImageFolderFile imageFolderFile) {
  266. this.mProgressBar.setVisibility(8);
  267. this.mImagePreviewFile = imageFolderFile;
  268. UiCommon.setButtonEnabled(this.mSaveButton, this.mImagePreviewFile.needSaveButton());
  269. restorePreview();
  270. }
  271. public void onStart() {
  272. super.onStart();
  273. restorePreview();
  274. }
  275. public void onPause() {
  276. if (getActivity().isFinishing()) {
  277. releasePreviewBitmap();
  278. this.mImagePreviewFile.deleteTemporaryFile();
  279. }
  280. super.onPause();
  281. }
  282. public void onStop() {
  283. releasePreviewBitmap();
  284. super.onStop();
  285. }
  286. public void onSaveInstanceState(Bundle bundle) {
  287. super.onSaveInstanceState(bundle);
  288. bundle.putSerializable(KEY_PREVIEW_FILE, (Serializable) this.mImagePreviewFile);
  289. }
  290. public void saveImage() {
  291. UiCommon.setButtonEnabled(this.mSaveButton, false);
  292. if (!this.mImagePreviewFile.doSave(CameraPreviewControl.getInstance(getActivity()).getSaveDirecotry())) {
  293. UiCommon.setButtonEnabled(this.mSaveButton, true);
  294. SimpleMessageDialogFragment.newInstance(R.string.file_save_error_message).show(getFragmentManager(), "error-dialog");
  295. return;
  296. }
  297. File file = new File(this.mImagePreviewFile.getPrintFileName());
  298. ImageUtil.galleryAddPic(getActivity(), file);
  299. FileSaveDialogFragment.newInstance(1, file.getParentFile().getName()).show(getFragmentManager(), "ok-dialog");
  300. }
  301. public void startPrintPreviewActivity() {
  302. String printFileName = this.mImagePreviewFile.getPrintFileName();
  303. if (printFileName != null) {
  304. Intent intent = new Intent(getActivity(), PrintPreviewActivity.class);
  305. ArrayList arrayList = new ArrayList(1);
  306. arrayList.add(printFileName);
  307. intent.putExtra("imageList", arrayList);
  308. if (this.mShowSetDisplaySizeMessageOnPrintPreview) {
  309. intent.putExtra(PrintPreviewActivity.PARAM_DISPLAY_SIZE_SET_MESSAGE, true);
  310. }
  311. startActivity(intent);
  312. }
  313. }
  314. public void startImageCollectActivity() {
  315. String imageProcFileName = this.mImagePreviewFile.getImageProcFileName(getActivity());
  316. if (imageProcFileName != null) {
  317. Intent intent = new Intent(getActivity(), CropImageActivity.class);
  318. intent.putExtra(CropImageActivity.IMAGE_FILE_NAME, imageProcFileName);
  319. startActivityForResult(intent, 1);
  320. }
  321. }
  322. public void onActivityResult(int i, int i2, Intent intent) {
  323. String stringExtra;
  324. switch (i) {
  325. case 1:
  326. if (i2 == -1 && (stringExtra = intent.getStringExtra(CropImageActivity.RESULT_COLLECTED_FILE_NAME)) != null) {
  327. this.mImagePreviewFile.deleteTemporaryFile();
  328. this.mImagePreviewFile = new CameraFileAdapter(new CameraFile(new Date(), stringExtra));
  329. setPreview();
  330. UiCommon.setButtonEnabled(this.mSaveButton, this.mImagePreviewFile.needSaveButton());
  331. this.mShowSetDisplaySizeMessageOnPrintPreview = false;
  332. startPrintPreviewActivity();
  333. return;
  334. }
  335. return;
  336. case 2:
  337. if (i2 == -1) {
  338. saveImage();
  339. return;
  340. }
  341. return;
  342. case 3:
  343. if (i2 != -1) {
  344. FragmentActivity activity = getActivity();
  345. if (activity != null) {
  346. activity.finish();
  347. return;
  348. }
  349. return;
  350. }
  351. observeImageConvertFromArgument();
  352. return;
  353. default:
  354. return;
  355. }
  356. }
  357. }
  358. @SuppressLint({"ValidFragment"})
  359. /* renamed from: com.epson.cameracopy.ui.ImagePreviewActivity$FileSaveDialogFragment */
  360. public static class FileSaveDialogFragment extends DialogFragment {
  361. private static final String PARAM_FILENAME = "filename";
  362. private static final String PARAM_TYPE = "type";
  363. private String mFileName;
  364. static FileSaveDialogFragment newInstance(int i, String str) {
  365. FileSaveDialogFragment fileSaveDialogFragment = new FileSaveDialogFragment();
  366. Bundle bundle = new Bundle();
  367. bundle.putInt("type", i);
  368. bundle.putString(PARAM_FILENAME, str);
  369. fileSaveDialogFragment.setArguments(bundle);
  370. return fileSaveDialogFragment;
  371. }
  372. public void onCreate(Bundle bundle) {
  373. super.onCreate(bundle);
  374. Bundle arguments = getArguments();
  375. arguments.getInt("type");
  376. this.mFileName = arguments.getString(PARAM_FILENAME);
  377. }
  378. public Dialog onCreateDialog(Bundle bundle) {
  379. super.onCreateDialog(bundle);
  380. return new AlertDialog.Builder(getActivity()).setMessage(getResources().getString(R.string.image_save_message, new Object[]{this.mFileName})).setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {
  381. public void onClick(DialogInterface dialogInterface, int i) {
  382. }
  383. }).create();
  384. }
  385. }
  386. }