Advertisement
Guest User

Untitled

a guest
Apr 27th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.90 KB | None | 0 0
  1. package com.helopt.gorry.util;
  2.  
  3. import android.content.Context;
  4. import android.net.ConnectivityManager;
  5. import android.util.Log;
  6.  
  7. import com.amazonaws.auth.CognitoCachingCredentialsProvider;
  8. import com.amazonaws.mobileconnectors.s3.transferutility.TransferListener;
  9. import com.amazonaws.mobileconnectors.s3.transferutility.TransferObserver;
  10. import com.amazonaws.mobileconnectors.s3.transferutility.TransferState;
  11. import com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility;
  12. import com.amazonaws.regions.Regions;
  13. import com.amazonaws.services.s3.AmazonS3Client;
  14. import com.amazonaws.services.s3.model.AccessControlList;
  15. import com.amazonaws.services.s3.model.GroupGrantee;
  16. import com.amazonaws.services.s3.model.Permission;
  17. import com.helopt.gorry.BuildConfig;
  18. import com.helopt.gorry.R;
  19. import com.helopt.gorry.app.BaseApplication;
  20.  
  21. import java.io.File;
  22.  
  23. /**
  24. * Created by Dihardja Software Solutions on 1/25/18.
  25. */
  26.  
  27. public class UploadManager {
  28. private static UploadManager UPLOADMANAGER = null;
  29. CognitoCachingCredentialsProvider credentialsProvider;
  30. TransferUtility transferUtility;
  31. AmazonS3Client s3Client;
  32. AccessControlList acl;
  33. String bucketName = "helopt-dev";
  34. // String s3BaseUrl;
  35.  
  36. public UploadManager() {
  37. credentialsProvider = new CognitoCachingCredentialsProvider(BaseApplication.getInstance().getApplicationContext(),
  38. BaseApplication.AWS_COGNITO_POOL_ID,
  39. Regions.AP_SOUTHEAST_1);
  40. // clientConfiguration = new ClientConfiguration();
  41. // clientConfiguration.setProtocol(Protocol.HTTP);
  42. s3Client = new AmazonS3Client(credentialsProvider);
  43. // transferUtility = new TransferUtility(s3Client, App.getInstance().getApplicationContext());
  44. transferUtility = TransferUtility.builder().s3Client(s3Client).context(BaseApplication.getInstance().getApplicationContext()).build();
  45.  
  46. acl = new AccessControlList();
  47. // s3Client = new AmazonS3Client(new BasicAWSCredentials(ConstantsManager.getAwsAccessKey(), ConstantsManager.getAwsSecretKey()));
  48. acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);
  49.  
  50. }
  51.  
  52. public static UploadManager getInstance() {
  53.  
  54. if (UPLOADMANAGER == null) {
  55. UPLOADMANAGER = new UploadManager();
  56.  
  57. }
  58. return UPLOADMANAGER;
  59.  
  60. }
  61.  
  62. private void uploadImageToS3WithListener(File imageFile, final String fileKeyName, final S3ImageUploadListener listener) {
  63. final TransferObserver transferObserver = transferUtility.upload(
  64. bucketName,
  65. fileKeyName,
  66. imageFile);
  67.  
  68. final int transferObserverId = transferObserver.getId();
  69.  
  70. transferObserver.setTransferListener(new TransferListener() {
  71. @Override
  72. public void onStateChanged(int id, TransferState state) {
  73. Log.v("UploadManager", " state: " + state);
  74. if (state == TransferState.COMPLETED) {
  75. listener.onSuccess(s3Client.getResourceUrl(bucketName, fileKeyName));
  76. } else {
  77. if (state == TransferState.CANCELED) {
  78. listener.onFailed("Failed to upload image");
  79. } else if (!isOnline()) {
  80. transferUtility.cancel(transferObserverId);
  81. }
  82. }
  83. }
  84.  
  85. @Override
  86. public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
  87. }
  88.  
  89. @Override
  90. public void onError(int id, Exception ex) {
  91. //TODO : Localization
  92. listener.onFailed(ex.getLocalizedMessage());
  93. }
  94. });
  95. Log.v("s3Image", "upload image on progress");
  96. }
  97.  
  98. public boolean isOnline() {
  99. try {
  100. ConnectivityManager cm = (ConnectivityManager) BaseApplication.getInstance().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
  101. return cm.getActiveNetworkInfo().isConnectedOrConnecting();
  102. } catch (Exception e) {
  103. return false;
  104. }
  105. }
  106.  
  107. // journals/{{userid}}/{{personid}}/timestamp.jpg
  108. public void uploadJournalImage(File imageFile, String userId, String personId, S3ImageUploadListener listener) {
  109. String fileKeyName = "journals/" + userId + "/" + personId + "/" + System.currentTimeMillis() + ".jpg";
  110. uploadImageToS3WithListener(imageFile, fileKeyName, listener);
  111. }
  112.  
  113. public void uploadProfileImage(File imageFile, String userId, S3ImageUploadListener listener) {
  114. String fileKeyName = "users/" + userId + "-" + System.currentTimeMillis() + ".jpg";
  115. uploadImageToS3WithListener(imageFile, fileKeyName, listener);
  116. }
  117.  
  118. public interface S3ImageUploadListener {
  119. void onSuccess(String imageURL);
  120.  
  121. void onFailed(String message);
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement