From 8fe03f1e4eeffb694e1d103986a701f0e391e5d7 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:16:05 +1000 Subject: [PATCH] Create initiateUpload() method --- .../free/nrw/commons/nearby/DirectUpload.java | 40 +++++++++++++++++++ .../nrw/commons/nearby/NearbyMapFragment.java | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java b/app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java index d9d945792..6d3f8bd48 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java @@ -3,13 +3,22 @@ package fr.free.nrw.commons.nearby; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; +import android.os.Build; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AlertDialog; +import fr.free.nrw.commons.R; +import fr.free.nrw.commons.contributions.ContributionController; import timber.log.Timber; +import static android.Manifest.permission.READ_EXTERNAL_STORAGE; +import static android.content.pm.PackageManager.PERMISSION_GRANTED; + class DirectUpload { private String title; private String desc; + private ContributionController controller; DirectUpload(String title, String desc) { this.title = title; @@ -33,4 +42,35 @@ class DirectUpload { Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); } + + void initiateUpload(Context context) { + Activity activity = (Activity) context; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (ContextCompat.checkSelfPermission(activity, READ_EXTERNAL_STORAGE) + != PERMISSION_GRANTED) { + if (activity.shouldShowRequestPermissionRationale(READ_EXTERNAL_STORAGE)) { + new AlertDialog.Builder(activity) + .setMessage(activity.getString(R.string.read_storage_permission_rationale)) + .setPositiveButton("OK", (dialog, which) -> { + activity.requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, 1); + dialog.dismiss(); + }) + .setNegativeButton("Cancel", null) + .create() + .show(); + } else { + activity.requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, + 1); + + // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an + // app-defined int constant. The callback method gets the + // result of the request. + } + } + else { + controller.startGalleryPick(); + return true; + } + } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index 52a3b688a..f43c10286 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -403,7 +403,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription()); directUpload.storeSharedPrefs(getActivity()); - + }); fabGallery.setOnClickListener(view -> {