Guest User

Untitled

a guest
Jan 19th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.36 KB | None | 0 0
  1. public abstract class PickImageActivity<V extends PickImageView, P extends PickImagePresenter<V>> extends BaseActivity<V, P> implements PickImageView {
  2. private static final String SAVED_STATE_IMAGE_URI = "RegistrationActivity.SAVED_STATE_IMAGE_URI";
  3. private static final String SAVED_STATE_IMAGE_URI2 = "RegistrationActivity.SAVED_STATE_IMAGE_URI2";
  4.  
  5.  
  6.  
  7. protected Uri imageUri;
  8.  
  9. protected Uri imageUri2;
  10.  
  11. protected abstract ProgressBar getProgressView();
  12.  
  13. protected abstract ImageView getImageView();
  14.  
  15. protected abstract ImageView getImageView2();
  16.  
  17. protected abstract void onImagePikedAction();
  18.  
  19. protected abstract void onImagePikedAction2();
  20.  
  21.  
  22.  
  23.  
  24. @Override
  25. protected void onSaveInstanceState(Bundle outState) {
  26. outState.putParcelable(SAVED_STATE_IMAGE_URI, imageUri);
  27. outState.putParcelable(SAVED_STATE_IMAGE_URI2, imageUri2);
  28. super.onSaveInstanceState(outState);
  29. }
  30.  
  31.  
  32.  
  33. @Override
  34. protected void onRestoreInstanceState(Bundle savedInstanceState) {
  35. if (savedInstanceState != null) {
  36. if (savedInstanceState.containsKey(SAVED_STATE_IMAGE_URI)) {
  37. imageUri = savedInstanceState.getParcelable(SAVED_STATE_IMAGE_URI);
  38. loadImageToImageView(imageUri);
  39. }
  40.  
  41. if (savedInstanceState.containsKey(SAVED_STATE_IMAGE_URI2)) {
  42. imageUri2 = savedInstanceState.getParcelable(SAVED_STATE_IMAGE_URI2);
  43. loadImageToImageView2(imageUri2);
  44. }
  45. }
  46.  
  47. super.onRestoreInstanceState(savedInstanceState);
  48. }
  49.  
  50. @SuppressLint("NewApi")
  51. public void onSelectImageClick(View view) {
  52. if (CropImage.isExplicitCameraPermissionRequired(this)) {
  53. requestPermissions(new String[]{Manifest.permission.CAMERA}, CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE);
  54. } else {
  55. CropImage.startPickImageActivity(this);
  56. }
  57. }
  58.  
  59. public void onSelectImageClick2(View view) {
  60. if (CropImage.isExplicitCameraPermissionRequired(this)) {
  61. requestPermissions(new String[]{Manifest.permission.CAMERA}, CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE);
  62. } else {
  63. CropImage.startPickImageActivity(this);
  64. }
  65. }
  66.  
  67. @Override
  68. public void loadImageToImageView(Uri imageUri) {
  69. if (imageUri == null) {
  70. return;
  71. }
  72.  
  73. this.imageUri = imageUri;
  74. ImageUtil.loadLocalImage(GlideApp.with(this), imageUri, getImageView(), new RequestListener<Drawable>() {
  75. @Override
  76. public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
  77. return false;
  78. }
  79.  
  80. @Override
  81. public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
  82. getProgressView().setVisibility(View.GONE);
  83. LogUtil.logDebug(TAG, "Glide Success Loading image from uri : " + imageUri.getPath());
  84. return false;
  85. }
  86. });
  87. }
  88.  
  89. public void loadImageToImageView2(Uri imageUri2) {
  90. if (imageUri2 == null) {
  91. return;
  92. }
  93.  
  94. this.imageUri2 = imageUri2;
  95. ImageUtil.loadLocalImage(GlideApp.with(this), imageUri2, getImageView2(), new RequestListener<Drawable>() {
  96. @Override
  97. public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
  98. return false;
  99. }
  100.  
  101. @Override
  102. public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
  103. getProgressView().setVisibility(View.GONE);
  104. LogUtil.logDebug(TAG, "Glide Success Loading image from uri : " + imageUri2.getPath());
  105. return false;
  106. }
  107. });
  108. }
  109.  
  110. @Override
  111. @SuppressLint("NewApi")
  112. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  113. // handle result of pick image chooser
  114. if (requestCode == CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
  115. Uri imageUri = CropImage.getPickImageResultUri(this, data);
  116.  
  117. if (presenter.isImageFileValid(imageUri)) {
  118. this.imageUri = imageUri;
  119. }
  120.  
  121. // For API >= 23 we need to check specifically that we have permissions to read external storage.
  122. if (CropImage.isReadExternalStoragePermissionsRequired(this, imageUri)) {
  123. // request permissions and handle the result in onRequestPermissionsResult()
  124. requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE);
  125. } else {
  126. // no permissions required or already grunted
  127. onImagePikedAction();
  128. }
  129. }
  130.  
  131. if (requestCode == CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
  132. Uri imageUri2 = CropImage.getPickImageResultUri(this, data);
  133.  
  134. if (presenter.isImageFileValid2(imageUri2)) {
  135. this.imageUri2 = imageUri2;
  136. }
  137.  
  138. // For API >= 23 we need to check specifically that we have permissions to read external storage.
  139. if (CropImage.isReadExternalStoragePermissionsRequired(this, imageUri2)) {
  140. // request permissions and handle the result in onRequestPermissionsResult()
  141. requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE);
  142. } else {
  143. // no permissions required or already grunted
  144. onImagePikedAction2();
  145. }
  146. }
  147. }
  148.  
  149. @Override
  150. public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
  151.  
  152. if (requestCode == CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE) {
  153. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  154. LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS granted");
  155. CropImage.startPickImageActivity(this);
  156. } else {
  157. showSnackBar(R.string.permissions_not_granted);
  158. LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS not granted");
  159. }
  160. }
  161.  
  162. if (requestCode == CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE) {
  163. if (imageUri != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  164. LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS granted");
  165. onImagePikedAction();
  166. } else {
  167. showSnackBar(R.string.permissions_not_granted);
  168. LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS not granted");
  169. }
  170. }
  171.  
  172. if (requestCode == CropImage.CAMERA_CAPTURE_PERMISSIONS_REQUEST_CODE) {
  173. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  174. LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS granted");
  175. CropImage.startPickImageActivity(this);
  176. } else {
  177. showSnackBar(R.string.permissions_not_granted);
  178. LogUtil.logDebug(TAG, "CAMERA_CAPTURE_PERMISSIONS not granted");
  179. }
  180. }
  181. if (requestCode == CropImage.PICK_IMAGE_PERMISSIONS_REQUEST_CODE) {
  182. if (imageUri2 != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  183. LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS granted");
  184. onImagePikedAction2();
  185. } else {
  186. showSnackBar(R.string.permissions_not_granted);
  187. LogUtil.logDebug(TAG, "PICK_IMAGE_PERMISSIONS not granted");
  188. }
  189. }
  190. }
  191.  
  192. protected void handleCropImageResult(int requestCode, int resultCode, Intent data) {
  193. presenter.handleCropImageResult(requestCode, resultCode, data);
  194. }
  195.  
  196. protected void startCropImageActivity() {
  197. if (imageUri == null) {
  198. return;
  199. }
  200.  
  201. CropImage.activity(imageUri)
  202. .setGuidelines(CropImageView.Guidelines.ON)
  203. .setFixAspectRatio(true)
  204. .setMinCropResultSize(Constants.Profile.MIN_AVATAR_SIZE, Constants.Profile.MIN_AVATAR_SIZE)
  205. .setRequestedSize(Constants.Profile.MAX_AVATAR_SIZE, Constants.Profile.MAX_AVATAR_SIZE)
  206. .start(this);
  207.  
  208. if (imageUri2 == null) {
  209. return;
  210. }
  211.  
  212. CropImage.activity(imageUri2)
  213. .setGuidelines(CropImageView.Guidelines.ON)
  214. .setFixAspectRatio(true)
  215. .setMinCropResultSize(Constants.Profile.MIN_AVATAR_SIZE, Constants.Profile.MIN_AVATAR_SIZE)
  216. .setRequestedSize(Constants.Profile.MAX_AVATAR_SIZE, Constants.Profile.MAX_AVATAR_SIZE)
  217. .start(this);
  218. }
  219.  
  220. @Override
  221. public void hideLocalProgress() {
  222. getProgressView().setVisibility(View.GONE);
  223. }
Add Comment
Please, Sign In to add comment