From 604fc3d5fe019fa553b80b7505905189b7a6c5c6 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 15 Jul 2016 00:01:08 +1200 Subject: [PATCH 1/4] Add 4th case for onResults --- .../nrw/commons/upload/ShareActivity.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 5735de399..a44b21efc 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -81,6 +81,11 @@ public class ShareActivity super(WikiAccountAuthenticator.COMMONS_ACCOUNT_TYPE); } + /** + * Called when user taps the submit button + * @param title + * @param description + */ public void uploadActionInitiated(String title, String description) { this.title = title; @@ -88,7 +93,7 @@ public class ShareActivity //Check for Storage permission that is required for upload. Do not allow user to proceed without permission, otherwise will crash if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); } else { uploadBegins(); } @@ -293,14 +298,10 @@ public class ShareActivity public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { - // 1 = Storage + // 1 = Storage (from snackbar) case 1: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - - //Uploading only begins if storage permission granted - uploadBegins(); - snackbar.dismiss(); getFileMetadata(); } return; @@ -324,6 +325,20 @@ public class ShareActivity getLocationData(); } } + // 4 = Storage (from submit button) - this needs to be separate from (1) because only the + // submit button should bring user to next screen + case 4: { + if (grantResults.length > 0 + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + //It is OK to call this at both (1) and (4) because if perm had been granted at + //snackbar, user should not be prompted at submit button + getFileMetadata(); + + //Uploading only begins if storage permission granted from arrow icon + uploadBegins(); + snackbar.dismiss(); + } + } } } From bdd53f2f2a64114db0f8c7a43128d310cb326dbe Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 15 Jul 2016 00:03:16 +1200 Subject: [PATCH 2/4] Add check for Marshmallow --- .../fr/free/nrw/commons/upload/ShareActivity.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index a44b21efc..3e61dbd34 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -83,17 +83,19 @@ public class ShareActivity /** * Called when user taps the submit button - * @param title - * @param description */ public void uploadActionInitiated(String title, String description) { this.title = title; this.description = description; - //Check for Storage permission that is required for upload. Do not allow user to proceed without permission, otherwise will crash - if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + //Check for Storage permission that is required for upload. Do not allow user to proceed without permission, otherwise will crash + if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 4); + } else { + uploadBegins(); + } } else { uploadBegins(); } From bfcb7fb6f2b8168687169e697d351ac9ed955886 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 15 Jul 2016 00:08:53 +1200 Subject: [PATCH 3/4] Rearranging code --- .../nrw/commons/upload/ShareActivity.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 3e61dbd34..a2341a217 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -101,6 +101,25 @@ public class ShareActivity } } + private void uploadBegins() { + + Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); + startingToast.show(); + + if (cacheFound == false) { + //Has to be called after apiCall.request() + app.cacheData.cacheCategory(); + Log.d(TAG, "Cache the categories found"); + } + + uploadController.startUpload(title, mediaUri, description, mimeType, source, new UploadController.ContributionUploadProgress() { + public void onUploadStarted(Contribution contribution) { + ShareActivity.this.contribution = contribution; + showPostUpload(); + } + }); + } + private void showPostUpload() { if(categorizationFragment == null) { categorizationFragment = new CategorizationFragment(); @@ -277,25 +296,6 @@ public class ShareActivity } } - private void uploadBegins() { - - Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); - startingToast.show(); - - if (cacheFound == false) { - //Has to be called after apiCall.request() - app.cacheData.cacheCategory(); - Log.d(TAG, "Cache the categories found"); - } - - uploadController.startUpload(title, mediaUri, description, mimeType, source, new UploadController.ContributionUploadProgress() { - public void onUploadStarted(Contribution contribution) { - ShareActivity.this.contribution = contribution; - showPostUpload(); - } - }); - } - @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { From 93d3123503bddcbffd918b42dd5eea3706d47219 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 15 Jul 2016 00:11:29 +1200 Subject: [PATCH 4/4] Added returns --- app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index a2341a217..6079a4479 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -326,6 +326,7 @@ public class ShareActivity && grantResults[1] == PackageManager.PERMISSION_GRANTED) { getLocationData(); } + return; } // 4 = Storage (from submit button) - this needs to be separate from (1) because only the // submit button should bring user to next screen @@ -340,6 +341,7 @@ public class ShareActivity uploadBegins(); snackbar.dismiss(); } + return; } } }