From c70eec650c915f3708440bfa9e5ec610d0d43f34 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 00:22:19 +1000 Subject: [PATCH 01/61] Add onClickListeners for camera and gallery FAB --- .../nrw/commons/nearby/NearbyMapFragment.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 bcd864807..981c92c79 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 @@ -415,6 +415,22 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { description.setText(place.getDescription().getText()); title.setText(place.name.toString()); distance.setText(place.distance.toString()); + + fabCamera.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //TODO: Change this to activate camera upload + openWebView(place.siteLinks.getWikidataLink()); + } + }); + + fabGallery.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //TODO: Change this to activate gallery upload + openWebView(place.siteLinks.getWikidataLink()); + } + }); } private void openWebView(Uri link) { From 1fe7b4842dd0d1ffe62b4cd51ca16b7944a0c666 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 00:36:51 +1000 Subject: [PATCH 02/61] Add getters for name and description of Place --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 7 +++++-- app/src/main/java/fr/free/nrw/commons/nearby/Place.java | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) 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 981c92c79..52138dc1f 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 @@ -40,6 +40,7 @@ import java.util.List; import fr.free.nrw.commons.R; import fr.free.nrw.commons.utils.UriDeserializer; +import timber.log.Timber; public class NearbyMapFragment extends android.support.v4.app.Fragment { @@ -416,10 +417,12 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { title.setText(place.name.toString()); distance.setText(place.distance.toString()); + Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + fabCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - //TODO: Change this to activate camera upload + //TODO: Change this to activate camera upload (see ContributionsListFragment) openWebView(place.siteLinks.getWikidataLink()); } }); @@ -427,7 +430,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { fabGallery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - //TODO: Change this to activate gallery upload + //TODO: Change this to activate gallery upload (see ContributionsListFragment) openWebView(place.siteLinks.getWikidataLink()); } }); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index 428fcf6de..957554992 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -34,10 +34,14 @@ public class Place { this.siteLinks = siteLinks; } + public String getName() { return name; } + public Description getDescription() { return description; } + public String getLongDescription() { return longDescription; } + public void setDistance(String distance) { this.distance = distance; } From da63f310174081390ad85f02b8ede7ffa80d7e45 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 00:40:04 +1000 Subject: [PATCH 03/61] Put logs in onClick() --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 52138dc1f..5519a811e 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 @@ -417,12 +417,13 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { title.setText(place.name.toString()); distance.setText(place.distance.toString()); - Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + fabCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //TODO: Change this to activate camera upload (see ContributionsListFragment) + Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); openWebView(place.siteLinks.getWikidataLink()); } }); @@ -431,6 +432,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { @Override public void onClick(View view) { //TODO: Change this to activate gallery upload (see ContributionsListFragment) + Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); openWebView(place.siteLinks.getWikidataLink()); } }); From 5a92ec64dfd99b1286f910b31079b51b1ab4f4b7 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 00:43:53 +1000 Subject: [PATCH 04/61] Modify getDescription to fix "?" desc bug --- .../main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5519a811e..0a251865d 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 @@ -413,7 +413,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { }); icon.setImageResource(place.getDescription().getIcon()); - description.setText(place.getDescription().getText()); + description.setText(place.getLongDescription()); title.setText(place.name.toString()); distance.setText(place.distance.toString()); From ea0d3f75eb4d44bbd95c7041ba141546ccd8cd3c Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 00:46:56 +1000 Subject: [PATCH 05/61] Edit TODO --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 0a251865d..09fc602ca 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 @@ -422,7 +422,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { fabCamera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - //TODO: Change this to activate camera upload (see ContributionsListFragment) + //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); openWebView(place.siteLinks.getWikidataLink()); } @@ -431,7 +431,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { fabGallery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - //TODO: Change this to activate gallery upload (see ContributionsListFragment) + //TODO: Change this to activate gallery upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); openWebView(place.siteLinks.getWikidataLink()); } From b27163906b61a1f7685f33858f3b52eb24b80380 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 01:17:12 +1000 Subject: [PATCH 06/61] Replace anonymous inner classes with lambdas --- .../nrw/commons/nearby/NearbyMapFragment.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) 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 3eaf4c949..d889f1d54 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 @@ -379,27 +379,18 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { description.setText(place.getLongDescription()); title.setText(place.name.toString()); distance.setText(place.distance.toString()); - - - - fabCamera.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { + + fabCamera.setOnClickListener(view -> { //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); openWebView(place.siteLinks.getWikidataLink()); - } }); - fabGallery.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { + fabGallery.setOnClickListener(view -> { //TODO: Change this to activate gallery upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); openWebView(place.siteLinks.getWikidataLink()); - } }); - } private void openWebView(Uri link) { From dd9976cfff796f01b88e4730655e4e221e0d3968 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 02:34:36 +1000 Subject: [PATCH 07/61] Rename Description to Label to prevent misunderstandings --- .../nrw/commons/nearby/NearbyMapFragment.java | 2 +- .../free/nrw/commons/nearby/NearbyPlaces.java | 4 +-- .../fr/free/nrw/commons/nearby/Place.java | 28 +++++++++---------- .../nrw/commons/nearby/PlaceRenderer.java | 5 ++-- .../nearby/NearbyAdapterFactoryTest.java | 4 +-- 5 files changed, 21 insertions(+), 22 deletions(-) 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 d889f1d54..982d88237 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 @@ -374,7 +374,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { commonsButton.setEnabled(place.hasCommonsLink()); commonsButton.setOnClickListener(view -> openWebView(place.siteLinks.getCommonsLink())); - icon.setImageResource(place.getDescription().getIcon()); + icon.setImageResource(place.getLabel().getIcon()); description.setText(place.getLongDescription()); title.setText(place.name.toString()); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java index de14a2ef8..9e06812ba 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java @@ -126,7 +126,7 @@ public class NearbyPlaces { places.add(new Place( name, - Place.Description.fromText(type), // list + Place.Label.fromText(type), // list type, // details Uri.parse(icon), new LatLng(latitude, longitude, 0), @@ -188,7 +188,7 @@ public class NearbyPlaces { places.add(new Place( name, - Place.Description.fromText(type), // list + Place.Label.fromText(type), // list type, // details null, new LatLng(latitude, longitude, 0), diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index 7b5a08f16..472adb8b0 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -13,7 +13,7 @@ import fr.free.nrw.commons.location.LatLng; public class Place { public final String name; - private final Description description; + private final Label label; private final String longDescription; private final Uri secondaryImageUrl; public final LatLng location; @@ -24,10 +24,10 @@ public class Place { public final Sitelinks siteLinks; - public Place(String name, Description description, String longDescription, + public Place(String name, Label label, String longDescription, Uri secondaryImageUrl, LatLng location, Sitelinks siteLinks) { this.name = name; - this.description = description; + this.label = label; this.longDescription = longDescription; this.secondaryImageUrl = secondaryImageUrl; this.location = location; @@ -36,8 +36,8 @@ public class Place { public String getName() { return name; } - public Description getDescription() { - return description; + public Label getLabel() { + return label; } public String getLongDescription() { return longDescription; } @@ -86,7 +86,7 @@ public class Place { * * TODO Give a more accurate class name (see issue #742). */ - public enum Description { + public enum Label { BUILDING("building", R.drawable.round_icon_generic_building), HOUSE("house", R.drawable.round_icon_house), @@ -111,19 +111,19 @@ public class Place { WATERFALL("waterfall", R.drawable.round_icon_waterfall), UNKNOWN("?", R.drawable.round_icon_unknown); - private static final Map TEXT_TO_DESCRIPTION - = new HashMap<>(Description.values().length); + private static final Map TEXT_TO_DESCRIPTION + = new HashMap<>(Label.values().length); static { - for (Description description : values()) { - TEXT_TO_DESCRIPTION.put(description.text, description); + for (Label label : values()) { + TEXT_TO_DESCRIPTION.put(label.text, label); } } private final String text; @DrawableRes private final int icon; - Description(String text, @DrawableRes int icon) { + Label(String text, @DrawableRes int icon) { this.text = text; this.icon = icon; } @@ -137,9 +137,9 @@ public class Place { return icon; } - public static Description fromText(String text) { - Description description = TEXT_TO_DESCRIPTION.get(text); - return description == null ? UNKNOWN : description; + public static Label fromText(String text) { + Label label = TEXT_TO_DESCRIPTION.get(text); + return label == null ? UNKNOWN : label; } } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java index 1068038b0..22f3814bf 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java @@ -13,7 +13,6 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import com.mapbox.mapboxsdk.geometry.LatLng; import com.pedrogomez.renderers.Renderer; import java.util.ArrayList; @@ -96,13 +95,13 @@ class PlaceRenderer extends Renderer { public void render() { place = getContent(); tvName.setText(place.name); - String descriptionText = place.getDescription().getText(); + String descriptionText = place.getLabel().getText(); if (descriptionText.equals("?")) { descriptionText = getContext().getString(R.string.no_description_found); } tvDesc.setText(descriptionText); distance.setText(place.distance); - icon.setImageResource(place.getDescription().getIcon()); + icon.setImageResource(place.getLabel().getIcon()); directionsButton.setOnClickListener(view -> { //Open map app at given position diff --git a/app/src/test/java/fr/free/nrw/commons/nearby/NearbyAdapterFactoryTest.java b/app/src/test/java/fr/free/nrw/commons/nearby/NearbyAdapterFactoryTest.java index c86067ce6..186644a26 100644 --- a/app/src/test/java/fr/free/nrw/commons/nearby/NearbyAdapterFactoryTest.java +++ b/app/src/test/java/fr/free/nrw/commons/nearby/NearbyAdapterFactoryTest.java @@ -30,9 +30,9 @@ import static org.junit.Assert.assertNotNull; @Config(constants = BuildConfig.class, sdk = 21, application = TestCommonsApplication.class) public class NearbyAdapterFactoryTest { - private static final Place PLACE = new Place("name", Place.Description.AIRPORT, + private static final Place PLACE = new Place("name", Place.Label.AIRPORT, "desc", null, new LatLng(38.6270, -90.1994, 0), null); - private static final Place UNKNOWN_PLACE = new Place("name", Place.Description.UNKNOWN, + private static final Place UNKNOWN_PLACE = new Place("name", Place.Label.UNKNOWN, "desc", null, new LatLng(39.7392, -104.9903, 0), null); private Place clickedPlace; From c001da38edc988292cada33077228b7a79f7de59 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 02:34:56 +1000 Subject: [PATCH 08/61] Remove TODO --- app/src/main/java/fr/free/nrw/commons/nearby/Place.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index 472adb8b0..eaab3e447 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -83,8 +83,6 @@ public class Place { * Most common types of desc: building, house, cottage, farmhouse, * village, civil parish, church, railway station, * gatehouse, milestone, inn, secondary school, hotel - * - * TODO Give a more accurate class name (see issue #742). */ public enum Label { From b5a18ce948b645ddb4e56baace76cd104e273a73 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 19:03:08 +1000 Subject: [PATCH 09/61] Insert image name and desc into shared preference --- .../nrw/commons/nearby/NearbyMapFragment.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) 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 982d88237..96063439b 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 @@ -1,6 +1,8 @@ package fr.free.nrw.commons.nearby; +import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; @@ -379,17 +381,24 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { description.setText(place.getLongDescription()); title.setText(place.name.toString()); distance.setText(place.distance.toString()); - + fabCamera.setOnClickListener(view -> { - //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. - Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - openWebView(place.siteLinks.getWikidataLink()); + //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. + Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + + SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPref.edit(); + editor.putString("Title", place.getName()); + editor.putString("Desc", place.getLongDescription()); + editor.apply(); + + openWebView(place.siteLinks.getWikidataLink()); }); fabGallery.setOnClickListener(view -> { - //TODO: Change this to activate gallery upload (see ContributionsListFragment). Insert shared preference. - Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - openWebView(place.siteLinks.getWikidataLink()); + //TODO: Change this to activate gallery upload (see ContributionsListFragment). Insert shared preference. + Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + openWebView(place.siteLinks.getWikidataLink()); }); } From 8e214bdabdf116ada7b094fe95466d9152991a20 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 19:06:44 +1000 Subject: [PATCH 10/61] Retrieve shared preferences for image name and desc --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 96063439b..6aa78334d 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 @@ -392,6 +392,13 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { editor.putString("Desc", place.getLongDescription()); editor.apply(); + //TODO: Shift this into title/desc screen after upload initiated + sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); + String imageTitle = sharedPref.getString("Title", ""); + String imageDesc = sharedPref.getString("Desc", ""); + + Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); + openWebView(place.siteLinks.getWikidataLink()); }); From 8200d808d7924f61494f7a319fb1112dd8652396 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 31 Dec 2017 22:15:04 +1000 Subject: [PATCH 11/61] Add TODO for List --- app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java index 22f3814bf..533a3cad6 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java @@ -111,6 +111,8 @@ class PlaceRenderer extends Renderer { } }); + //TODO: Insert onClickListeners for galeryButton and cameraButton + iconOverflow.setVisibility(showMenu() ? View.VISIBLE : View.GONE); iconOverflow.setOnClickListener(v -> popupMenuListener()); } From 009df16f3e1bd09abd060b242a6eff07a7d83114 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:05:15 +1000 Subject: [PATCH 12/61] Move direct uploading code to DirectUpload class --- .../free/nrw/commons/nearby/DirectUpload.java | 36 +++++++++++++++++++ .../nrw/commons/nearby/NearbyMapFragment.java | 17 ++------- 2 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java 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 new file mode 100644 index 000000000..d9d945792 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java @@ -0,0 +1,36 @@ +package fr.free.nrw.commons.nearby; + +import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; + +import timber.log.Timber; + +class DirectUpload { + + private String title; + private String desc; + + DirectUpload(String title, String desc) { + this.title = title; + this.desc = desc; + } + + void storeSharedPrefs(Context context) { + + Activity activity = (Activity) context; + SharedPreferences sharedPref = activity.getPreferences(Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPref.edit(); + + editor.putString("Title", title); + editor.putString("Desc", desc); + editor.apply(); + + //TODO: Shift this into title/desc screen after upload initiated + sharedPref = activity.getPreferences(Context.MODE_PRIVATE); + String imageTitle = sharedPref.getString("Title", ""); + String imageDesc = sharedPref.getString("Desc", ""); + + Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); + } +} 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 6aa78334d..73fddad65 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 @@ -386,20 +386,9 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); - SharedPreferences.Editor editor = sharedPref.edit(); - editor.putString("Title", place.getName()); - editor.putString("Desc", place.getLongDescription()); - editor.apply(); - - //TODO: Shift this into title/desc screen after upload initiated - sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); - String imageTitle = sharedPref.getString("Title", ""); - String imageDesc = sharedPref.getString("Desc", ""); - - Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); - - openWebView(place.siteLinks.getWikidataLink()); + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription()); + directUpload.storeSharedPrefs(getActivity()); + }); fabGallery.setOnClickListener(view -> { From fdcf41e88b1672c0ed772069ab4710ecd3d1a357 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:16:05 +1000 Subject: [PATCH 13/61] 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 73fddad65..a430f8d4f 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 @@ -388,7 +388,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription()); directUpload.storeSharedPrefs(getActivity()); - + }); fabGallery.setOnClickListener(view -> { From da5e20a547ef23e53a9443a316f95dcfb66ff275 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:19:25 +1000 Subject: [PATCH 14/61] Create ContributionController object --- .../nrw/commons/contributions/ContributionController.java | 4 ++-- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index a243330c3..5b84a43db 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -25,14 +25,14 @@ import static fr.free.nrw.commons.contributions.Contribution.SOURCE_CAMERA; import static fr.free.nrw.commons.contributions.Contribution.SOURCE_GALLERY; import static fr.free.nrw.commons.upload.UploadService.EXTRA_SOURCE; -class ContributionController { +public class ContributionController { private static final int SELECT_FROM_GALLERY = 1; private static final int SELECT_FROM_CAMERA = 2; private Fragment fragment; - ContributionController(Fragment fragment) { + public ContributionController(Fragment fragment) { this.fragment = fragment; } 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 6d3f8bd48..b232a7492 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 @@ -4,6 +4,7 @@ import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Build; +import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; @@ -20,9 +21,10 @@ class DirectUpload { private String desc; private ContributionController controller; - DirectUpload(String title, String desc) { + DirectUpload(String title, String desc, Fragment fragment) { this.title = title; this.desc = desc; + controller = new ContributionController(fragment); } void storeSharedPrefs(Context context) { From 946c6c740d440fda9ab1e4d2bbb3e3d72256cd06 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:23:51 +1000 Subject: [PATCH 15/61] Complete initiateDirectUpload() --- .../free/nrw/commons/nearby/DirectUpload.java | 17 +++++++---------- .../nrw/commons/nearby/NearbyMapFragment.java | 3 ++- 2 files changed, 9 insertions(+), 11 deletions(-) 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 b232a7492..a6357436a 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 @@ -49,8 +49,7 @@ class DirectUpload { Activity activity = (Activity) context; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (ContextCompat.checkSelfPermission(activity, READ_EXTERNAL_STORAGE) - != PERMISSION_GRANTED) { + 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)) @@ -64,15 +63,13 @@ class DirectUpload { } 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(); } - else { - controller.startGalleryPick(); - return true; - } + } + else { + controller.startGalleryPick(); + } } } 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 a430f8d4f..bb63cfc78 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 @@ -386,8 +386,9 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription()); + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this); directUpload.storeSharedPrefs(getActivity()); + directUpload.initiateUpload(getActivity()); }); From b76ecf74f829bdbbd127da473a907a794a8b97cd Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:28:41 +1000 Subject: [PATCH 16/61] Switch to uploading from gallery --- .../java/fr/free/nrw/commons/nearby/DirectUpload.java | 2 +- .../fr/free/nrw/commons/nearby/NearbyMapFragment.java | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) 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 a6357436a..e879ac70e 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 @@ -45,7 +45,7 @@ class DirectUpload { Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); } - void initiateUpload(Context context) { + void initiateGalleryUpload(Context context) { Activity activity = (Activity) context; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 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 bb63cfc78..da191c44e 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 @@ -383,19 +383,16 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { distance.setText(place.distance.toString()); fabCamera.setOnClickListener(view -> { - //TODO: Change this to activate camera upload (see ContributionsListFragment). Insert shared preference. - Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this); - directUpload.storeSharedPrefs(getActivity()); - directUpload.initiateUpload(getActivity()); }); fabGallery.setOnClickListener(view -> { - //TODO: Change this to activate gallery upload (see ContributionsListFragment). Insert shared preference. Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - openWebView(place.siteLinks.getWikidataLink()); + + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this); + directUpload.storeSharedPrefs(getActivity()); + directUpload.initiateGalleryUpload(getActivity()); }); } From 804b850d7e9cf636fdfbaa59fab06120659554dd Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:41:35 +1000 Subject: [PATCH 17/61] Save fragment as instance variable --- .../fr/free/nrw/commons/nearby/DirectUpload.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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 e879ac70e..7d835fd31 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 @@ -2,8 +2,11 @@ package fr.free.nrw.commons.nearby; import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.os.Build; +import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; @@ -20,17 +23,17 @@ class DirectUpload { private String title; private String desc; private ContributionController controller; + private Fragment fragment; DirectUpload(String title, String desc, Fragment fragment) { this.title = title; this.desc = desc; + this.fragment = fragment; controller = new ContributionController(fragment); } - void storeSharedPrefs(Context context) { - - Activity activity = (Activity) context; - SharedPreferences sharedPref = activity.getPreferences(Context.MODE_PRIVATE); + void storeSharedPrefs() { + SharedPreferences sharedPref = fragment.getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString("Title", title); @@ -38,7 +41,7 @@ class DirectUpload { editor.apply(); //TODO: Shift this into title/desc screen after upload initiated - sharedPref = activity.getPreferences(Context.MODE_PRIVATE); + sharedPref = fragment.getActivity().getPreferences(Context.MODE_PRIVATE); String imageTitle = sharedPref.getString("Title", ""); String imageDesc = sharedPref.getString("Desc", ""); @@ -72,4 +75,7 @@ class DirectUpload { controller.startGalleryPick(); } } + + +//TODO: Handle onRequestPermissionsResult } From 96b822aa5d5b482a5d30cd870f18b97e4cf488d1 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:43:12 +1000 Subject: [PATCH 18/61] Use stored fragment for requesting permissions --- .../fr/free/nrw/commons/nearby/DirectUpload.java | 16 +++++++--------- .../nrw/commons/nearby/NearbyMapFragment.java | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) 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 7d835fd31..71f9e839e 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 @@ -48,23 +48,21 @@ class DirectUpload { Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); } - void initiateGalleryUpload(Context context) { - Activity activity = (Activity) context; - + void initiateGalleryUpload() { 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)) + if (ContextCompat.checkSelfPermission(fragment.getActivity(), READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED) { + if (fragment.getActivity().shouldShowRequestPermissionRationale(READ_EXTERNAL_STORAGE)) { + new AlertDialog.Builder(fragment.getActivity()) + .setMessage(fragment.getActivity().getString(R.string.read_storage_permission_rationale)) .setPositiveButton("OK", (dialog, which) -> { - activity.requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, 1); + fragment.getActivity().requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, 1); dialog.dismiss(); }) .setNegativeButton("Cancel", null) .create() .show(); } else { - activity.requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, + fragment.getActivity().requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, 1); } } else { 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 da191c44e..ed3ce3f02 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 @@ -391,7 +391,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this); - directUpload.storeSharedPrefs(getActivity()); + directUpload.storeSharedPrefs(); directUpload.initiateGalleryUpload(getActivity()); }); } From 792cc2c4c7c276d47ac9bd0e80c66ba51f5991ed Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:43:25 +1000 Subject: [PATCH 19/61] Fix build error --- .../main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ed3ce3f02..5d1ac5cbb 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 @@ -392,7 +392,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this); directUpload.storeSharedPrefs(); - directUpload.initiateGalleryUpload(getActivity()); + directUpload.initiateGalleryUpload(); }); } From 3dde0319a0d1e1ef653d7ebd0b5556d5f51b5efd Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 20:56:37 +1000 Subject: [PATCH 20/61] Implement onActivityResult() in map fragment --- .../contributions/ContributionController.java | 3 ++- .../free/nrw/commons/nearby/DirectUpload.java | 6 ++--- .../nrw/commons/nearby/NearbyMapFragment.java | 22 ++++++++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index 5b84a43db..ce9701731 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -77,10 +77,11 @@ public class ContributionController { //FIXME: Starts gallery (opens Google Photos) Intent pickImageIntent = new Intent(ACTION_GET_CONTENT); pickImageIntent.setType("image/*"); + Timber.d("startGalleryPick() called with pickImageIntent"); fragment.startActivityForResult(pickImageIntent, SELECT_FROM_GALLERY); } - void handleImagePicked(int requestCode, Intent data) { + public void handleImagePicked(int requestCode, Intent data) { FragmentActivity activity = fragment.getActivity(); Intent shareIntent = new Intent(activity, ShareActivity.class); shareIntent.setAction(ACTION_SEND); 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 71f9e839e..5f8a59056 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 @@ -25,11 +25,11 @@ class DirectUpload { private ContributionController controller; private Fragment fragment; - DirectUpload(String title, String desc, Fragment fragment) { + DirectUpload(String title, String desc, Fragment fragment, ContributionController controller) { this.title = title; this.desc = desc; this.fragment = fragment; - controller = new ContributionController(fragment); + this.controller = controller; } void storeSharedPrefs() { @@ -74,6 +74,6 @@ class DirectUpload { } } - +//TODO: Need to call onActivityResult() to handle the image picked //TODO: Handle onRequestPermissionsResult } 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 5d1ac5cbb..7618b7a3b 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 @@ -41,9 +41,12 @@ import java.util.ArrayList; import java.util.List; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.contributions.ContributionController; import fr.free.nrw.commons.utils.UriDeserializer; import timber.log.Timber; +import static android.app.Activity.RESULT_OK; + public class NearbyMapFragment extends android.support.v4.app.Fragment { private MapView mapView; @@ -77,6 +80,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private Animation fab_close; private Animation fab_open; private Animation rotate_forward; + private ContributionController controller; private Place place; @@ -390,12 +394,28 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { fabGallery.setOnClickListener(view -> { Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this); + controller = new ContributionController(this); + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); directUpload.storeSharedPrefs(); directUpload.initiateGalleryUpload(); }); } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + //FIXME: must get the file data for Google Photos when receive the intent answer, in the onActivityResult method + super.onActivityResult(requestCode, resultCode, data); + + if (resultCode == RESULT_OK) { + Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", + requestCode, resultCode, data); + controller.handleImagePicked(requestCode, data); + } else { + Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", + requestCode, resultCode, data); + } + } + private void openWebView(Uri link) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, link); startActivity(browserIntent); From 443acab313148d673d827aa97cfce019f276ca16 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 21:00:28 +1000 Subject: [PATCH 21/61] Image handling now works --- .../free/nrw/commons/contributions/ContributionController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index ce9701731..c6cedbd84 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -83,6 +83,7 @@ public class ContributionController { public void handleImagePicked(int requestCode, Intent data) { FragmentActivity activity = fragment.getActivity(); + Timber.d("handleImagePicked() called with onActivityResult()"); Intent shareIntent = new Intent(activity, ShareActivity.class); shareIntent.setAction(ACTION_SEND); switch (requestCode) { From 4e056a412f5190f86dfa59396848eca10d71c3d5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Mon, 1 Jan 2018 21:10:28 +1000 Subject: [PATCH 22/61] Add TODO --- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 2 -- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) 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 5f8a59056..45513e168 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 @@ -74,6 +74,4 @@ class DirectUpload { } } -//TODO: Need to call onActivityResult() to handle the image picked -//TODO: Handle onRequestPermissionsResult } 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 7618b7a3b..ae54a93be 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 @@ -398,12 +398,14 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); directUpload.storeSharedPrefs(); directUpload.initiateGalleryUpload(); + +//TODO: App crashes after image upload completes +//TODO: Handle onRequestPermissionsResult }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - //FIXME: must get the file data for Google Photos when receive the intent answer, in the onActivityResult method super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { From ef3eda7d1023f538821eeca8fe934b79c11bc389 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:01:00 +1000 Subject: [PATCH 23/61] Create boolean for isDirectUpload and pass shared prefs to ShareActivity.java --- .../commons/contributions/ContributionController.java | 5 ++++- .../contributions/ContributionsListFragment.java | 2 +- .../java/fr/free/nrw/commons/nearby/DirectUpload.java | 7 ------- .../fr/free/nrw/commons/nearby/NearbyMapFragment.java | 2 +- .../java/fr/free/nrw/commons/upload/ShareActivity.java | 10 ++++++++++ 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index c6cedbd84..5614172a8 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -81,7 +81,7 @@ public class ContributionController { fragment.startActivityForResult(pickImageIntent, SELECT_FROM_GALLERY); } - public void handleImagePicked(int requestCode, Intent data) { + public void handleImagePicked(int requestCode, Intent data, boolean isDirectUpload) { FragmentActivity activity = fragment.getActivity(); Timber.d("handleImagePicked() called with onActivityResult()"); Intent shareIntent = new Intent(activity, ShareActivity.class); @@ -93,6 +93,9 @@ public class ContributionController { shareIntent.setType(activity.getContentResolver().getType(imageData)); shareIntent.putExtra(EXTRA_STREAM, imageData); shareIntent.putExtra(EXTRA_SOURCE, SOURCE_GALLERY); + if (isDirectUpload) { + shareIntent.putExtra("isDirectUpload", true); + } break; case SELECT_FROM_CAMERA: shareIntent.setType("image/jpeg"); //FIXME: Find out appropriate mime type diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java index 590d4e6ad..f58e6a9ab 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java @@ -105,7 +105,7 @@ public class ContributionsListFragment extends DaggerFragment { if (resultCode == RESULT_OK) { Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); - controller.handleImagePicked(requestCode, data); + controller.handleImagePicked(requestCode, data, false); } else { Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); 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 45513e168..792257abb 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 @@ -39,13 +39,6 @@ class DirectUpload { editor.putString("Title", title); editor.putString("Desc", desc); editor.apply(); - - //TODO: Shift this into title/desc screen after upload initiated - sharedPref = fragment.getActivity().getPreferences(Context.MODE_PRIVATE); - String imageTitle = sharedPref.getString("Title", ""); - String imageDesc = sharedPref.getString("Desc", ""); - - Timber.d("After shared prefs, image title: " + imageTitle + " Image desc: " + imageDesc); } void initiateGalleryUpload() { 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 43892b817..e2055fa81 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 @@ -411,7 +411,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { if (resultCode == RESULT_OK) { Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); - controller.handleImagePicked(requestCode, data); + controller.handleImagePicked(requestCode, data, true); } else { Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", requestCode, resultCode, data); 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 963ae3fd3..ec453a3d2 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 @@ -2,6 +2,7 @@ package fr.free.nrw.commons.upload; import android.Manifest; import android.content.ContentResolver; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; @@ -224,6 +225,15 @@ public class ShareActivity } else { source = Contribution.SOURCE_EXTERNAL; } + if (intent.hasExtra("isDirectUpload")) { + Timber.d("This was initiated by a direct upload from Nearby"); + //TODO: Shift this into title/desc screen after upload initiated + SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE); + String imageTitle = sharedPref.getString("Title", ""); + String imageDesc = sharedPref.getString("Desc", ""); + + Timber.d("In ShareActivity, image title: " + imageTitle + " and image desc: " + imageDesc); + } mimeType = intent.getType(); } From ccb0c87b5f0fcc4ad74cebdde75c5d1c22e1c6d2 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:15:04 +1000 Subject: [PATCH 24/61] Change to getSharedPreferences to pass prefs between activities --- .../java/fr/free/nrw/commons/nearby/DirectUpload.java | 11 ++++++++++- .../fr/free/nrw/commons/upload/ShareActivity.java | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) 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 792257abb..6dfcf6eef 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 @@ -33,12 +33,21 @@ class DirectUpload { } void storeSharedPrefs() { - SharedPreferences sharedPref = fragment.getActivity().getPreferences(Context.MODE_PRIVATE); + SharedPreferences sharedPref = fragment.getActivity().getSharedPreferences("Direct Upload",Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString("Title", title); editor.putString("Desc", desc); editor.apply(); + + /** + //TODO remove this + sharedPref = fragment.getActivity().getSharedPreferences(Context.MODE_PRIVATE); + String imageTitle = sharedPref.getString("Title", ""); + String imageDesc = sharedPref.getString("Desc", ""); + + Timber.d("In DirectUpload, image title: " + imageTitle + " and image desc: " + imageDesc); + */ } void initiateGalleryUpload() { 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 ec453a3d2..d57055d0a 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 @@ -228,7 +228,7 @@ public class ShareActivity if (intent.hasExtra("isDirectUpload")) { Timber.d("This was initiated by a direct upload from Nearby"); //TODO: Shift this into title/desc screen after upload initiated - SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE); + SharedPreferences sharedPref = this.getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); String imageTitle = sharedPref.getString("Title", ""); String imageDesc = sharedPref.getString("Desc", ""); From 565e61c0d1a50f251e2dd2e740058f23485105a8 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:22:09 +1000 Subject: [PATCH 25/61] Tidy up and create framework for autofilling EditText --- .../java/fr/free/nrw/commons/nearby/DirectUpload.java | 9 --------- .../java/fr/free/nrw/commons/upload/ShareActivity.java | 5 +++-- .../fr/free/nrw/commons/upload/SingleUploadFragment.java | 6 ++++++ 3 files changed, 9 insertions(+), 11 deletions(-) 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 6dfcf6eef..50b60f26d 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 @@ -39,15 +39,6 @@ class DirectUpload { editor.putString("Title", title); editor.putString("Desc", desc); editor.apply(); - - /** - //TODO remove this - sharedPref = fragment.getActivity().getSharedPreferences(Context.MODE_PRIVATE); - String imageTitle = sharedPref.getString("Title", ""); - String imageDesc = sharedPref.getString("Desc", ""); - - Timber.d("In DirectUpload, image title: " + imageTitle + " and image desc: " + imageDesc); - */ } void initiateGalleryUpload() { 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 d57055d0a..de9e898cd 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 @@ -227,12 +227,13 @@ public class ShareActivity } if (intent.hasExtra("isDirectUpload")) { Timber.d("This was initiated by a direct upload from Nearby"); - //TODO: Shift this into title/desc screen after upload initiated + SharedPreferences sharedPref = this.getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); String imageTitle = sharedPref.getString("Title", ""); String imageDesc = sharedPref.getString("Desc", ""); - Timber.d("In ShareActivity, image title: " + imageTitle + " and image desc: " + imageDesc); + + } mimeType = intent.getType(); } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index 259f38c36..f66aa5293 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -104,6 +104,12 @@ public class SingleUploadFragment extends DaggerFragment { license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3); + //TODO: Get this to display title and desc + if (true) { + titleEdit.setText(""); + descEdit.setText(""); + } + // check if this is the first time we have uploaded if (prefs.getString("Title", "").trim().length() == 0 && prefs.getString("Desc", "").trim().length() == 0) { From b719491dcf08e731eea4a55589a2290536bf9f1f Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:33:10 +1000 Subject: [PATCH 26/61] Pass nearby Title and Desc to SingleUploadFragment --- .../free/nrw/commons/upload/ShareActivity.java | 18 +++++++++++++----- .../commons/upload/SingleUploadFragment.java | 9 ++++++--- 2 files changed, 19 insertions(+), 8 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 de9e898cd..670cb4ffe 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 @@ -99,6 +99,8 @@ public class ShareActivity private String title; private String description; private Snackbar snackbar; + private String nearbyTitle; + private String nearbyDesc; private boolean duplicateCheckPassed = false; /** @@ -199,6 +201,14 @@ public class ShareActivity finish(); } + protected String getNearbyTitle() { + return nearbyTitle; + } + + protected String getNearbyDesc() { + return nearbyDesc; + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -229,11 +239,9 @@ public class ShareActivity Timber.d("This was initiated by a direct upload from Nearby"); SharedPreferences sharedPref = this.getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); - String imageTitle = sharedPref.getString("Title", ""); - String imageDesc = sharedPref.getString("Desc", ""); - Timber.d("In ShareActivity, image title: " + imageTitle + " and image desc: " + imageDesc); - - + nearbyTitle = sharedPref.getString("Title", ""); + nearbyDesc = sharedPref.getString("Desc", ""); + Timber.d("In ShareActivity, image title: " + nearbyTitle + " and image desc: " + nearbyDesc); } mimeType = intent.getType(); } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index f66aa5293..c5326fbe4 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -1,5 +1,6 @@ package fr.free.nrw.commons.upload; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -106,8 +107,10 @@ public class SingleUploadFragment extends DaggerFragment { //TODO: Get this to display title and desc if (true) { - titleEdit.setText(""); - descEdit.setText(""); + String imageTitle = ((ShareActivity) getActivity()).getNearbyTitle(); + String imageDesc = ((ShareActivity) getActivity()).getNearbyDesc(); + titleEdit.setText(imageTitle); + descEdit.setText(imageDesc); } // check if this is the first time we have uploaded @@ -246,7 +249,7 @@ public class SingleUploadFragment extends DaggerFragment { } return false; } - + private void setLicenseSummary(String license) { licenseSummaryView.setText(getString(R.string.share_license_summary, getString(Utils.licenseNameFor(license)))); } From 0401eb781c300913fccd31085805dfee084c5de8 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:38:01 +1000 Subject: [PATCH 27/61] Add check in SingleUploadFragment for isNearbyUploadf --- .../java/fr/free/nrw/commons/upload/ShareActivity.java | 9 ++++++++- .../fr/free/nrw/commons/upload/SingleUploadFragment.java | 7 +++++-- 2 files changed, 13 insertions(+), 3 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 670cb4ffe..538bd9a51 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 @@ -99,9 +99,11 @@ public class ShareActivity private String title; private String description; private Snackbar snackbar; + private boolean duplicateCheckPassed = false; + private String nearbyTitle; private String nearbyDesc; - private boolean duplicateCheckPassed = false; + private boolean isNearbyUpload = false; /** * Called when user taps the submit button. @@ -201,6 +203,10 @@ public class ShareActivity finish(); } + protected boolean isNearbyUpload() { + return isNearbyUpload; + } + protected String getNearbyTitle() { return nearbyTitle; } @@ -237,6 +243,7 @@ public class ShareActivity } if (intent.hasExtra("isDirectUpload")) { Timber.d("This was initiated by a direct upload from Nearby"); + isNearbyUpload = true; SharedPreferences sharedPref = this.getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); nearbyTitle = sharedPref.getString("Title", ""); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index c5326fbe4..1fbf2680e 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -105,8 +105,10 @@ public class SingleUploadFragment extends DaggerFragment { license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3); + boolean isNearbyUpload = ((ShareActivity) getActivity()).isNearbyUpload(); + //TODO: Get this to display title and desc - if (true) { + if (isNearbyUpload) { String imageTitle = ((ShareActivity) getActivity()).getNearbyTitle(); String imageDesc = ((ShareActivity) getActivity()).getNearbyDesc(); titleEdit.setText(imageTitle); @@ -249,7 +251,8 @@ public class SingleUploadFragment extends DaggerFragment { } return false; } - + + @SuppressLint("StringFormatInvalid") private void setLicenseSummary(String license) { licenseSummaryView.setText(getString(R.string.share_license_summary, getString(Utils.licenseNameFor(license)))); } From ed395a5af53885b41d85017db22990e0201f0b81 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:41:23 +1000 Subject: [PATCH 28/61] Add comments --- .../java/fr/free/nrw/commons/upload/SingleUploadFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index 1fbf2680e..9bf46a0b8 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -105,9 +105,9 @@ public class SingleUploadFragment extends DaggerFragment { license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3); + // If this is a direct upload from Nearby, autofill title and desc fields with the Place's values boolean isNearbyUpload = ((ShareActivity) getActivity()).isNearbyUpload(); - //TODO: Get this to display title and desc if (isNearbyUpload) { String imageTitle = ((ShareActivity) getActivity()).getNearbyTitle(); String imageDesc = ((ShareActivity) getActivity()).getNearbyDesc(); From 9372a7ea3c831c81becffc63f6dcd728bb2780a3 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:44:39 +1000 Subject: [PATCH 29/61] Fix whitespace --- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 1 - .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) 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 50b60f26d..f9e6e49cb 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 @@ -66,5 +66,4 @@ class DirectUpload { controller.startGalleryPick(); } } - } 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 e2055fa81..0387d98b1 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 @@ -339,7 +339,6 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { this.getView().requestFocus(); break; } - } private void hideFAB() { @@ -387,8 +386,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { distance.setText(place.distance.toString()); fabCamera.setOnClickListener(view -> { - - + //TODO: Implement camera button }); fabGallery.setOnClickListener(view -> { From 42517bcb7a794e032a71896d80f763dc4c29e665 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 2 Jan 2018 21:54:09 +1000 Subject: [PATCH 30/61] Fix more whitespace --- .../fr/free/nrw/commons/nearby/NearbyMapFragment.java | 8 -------- 1 file changed, 8 deletions(-) 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 0387d98b1..647f002cf 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 @@ -391,13 +391,11 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { fabGallery.setOnClickListener(view -> { Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - controller = new ContributionController(this); DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); directUpload.storeSharedPrefs(); directUpload.initiateGalleryUpload(); -//TODO: App crashes after image upload completes - but didn't happen 2nd time I tried? //TODO: Handle onRequestPermissionsResult }); } @@ -422,25 +420,19 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } private void animateFAB(boolean isFabOpen) { - if (isFabOpen) { - fabPlus.startAnimation(rotate_backward); fabCamera.startAnimation(fab_close); fabGallery.startAnimation(fab_close); fabCamera.hide(); fabGallery.hide(); - } else { - fabPlus.startAnimation(rotate_forward); fabCamera.startAnimation(fab_open); fabGallery.startAnimation(fab_open); fabCamera.show(); fabGallery.show(); - } - this.isFabOpen=!isFabOpen; } From f38d885a7829edec21e876e00f311beefeb2580e Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 11 Jan 2018 18:39:22 +1000 Subject: [PATCH 31/61] Copy camera capture code to DirectUpload.java --- .../free/nrw/commons/nearby/DirectUpload.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) 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 f9e6e49cb..4596fedd2 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 @@ -11,11 +11,15 @@ import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; +import javax.inject.Inject; +import javax.inject.Named; + 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.Manifest.permission.WRITE_EXTERNAL_STORAGE; import static android.content.pm.PackageManager.PERMISSION_GRANTED; class DirectUpload { @@ -25,6 +29,9 @@ class DirectUpload { private ContributionController controller; private Fragment fragment; + @Inject @Named("prefs") SharedPreferences prefs; + @Inject @Named("default_preferences") SharedPreferences defaultPrefs; + DirectUpload(String title, String desc, Fragment fragment, ContributionController controller) { this.title = title; this.desc = desc; @@ -41,6 +48,31 @@ class DirectUpload { editor.apply(); } + void initiateCameraUpload() { + boolean useExtStorage = defaultPrefs.getBoolean("useExternalStorage", true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useExtStorage) { + if (ContextCompat.checkSelfPermission(fragment.getActivity(), WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + if (fragment.getActivity().shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE)) { + new AlertDialog.Builder(fragment.getActivity()) + .setMessage(fragment.getActivity().getString(R.string.write_storage_permission_rationale)) + .setPositiveButton("OK", (dialog, which) -> { + fragment.getActivity().requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE}, 3); + dialog.dismiss(); + }) + .setNegativeButton("Cancel", null) + .create() + .show(); + } else { + fragment.getActivity().requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE}, 3); + } + } else { + controller.startCameraCapture(); + } + } else { + controller.startCameraCapture(); + } + } + void initiateGalleryUpload() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(fragment.getActivity(), READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED) { From 17e2c9baf3e4d8f33c33fad07023d8de3a181de9 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 11 Jan 2018 18:41:03 +1000 Subject: [PATCH 32/61] Make controller method public and add call to initiateCameraUpload() in NearbyMapFragment --- .../nrw/commons/contributions/ContributionController.java | 2 +- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index 5614172a8..b438fc2ce 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -61,7 +61,7 @@ public class ContributionController { } } - void startCameraCapture() { + public void startCameraCapture() { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); lastGeneratedCaptureUri = reGenerateImageCaptureUriInCache(); 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 ff24aa28a..b4e07c488 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 @@ -398,7 +398,11 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { distance.setText(place.distance.toString()); fabCamera.setOnClickListener(view -> { - //TODO: Implement camera button + Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + controller = new ContributionController(this); + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); + directUpload.storeSharedPrefs(); + directUpload.initiateCameraUpload(); }); fabGallery.setOnClickListener(view -> { From 18e9ac753c8d7d0f73284051ec302c6364ee9e87 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 11 Jan 2018 18:42:05 +1000 Subject: [PATCH 33/61] Modify logs --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 b4e07c488..e852134de 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 @@ -398,7 +398,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { distance.setText(place.distance.toString()); fabCamera.setOnClickListener(view -> { - Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); directUpload.storeSharedPrefs(); @@ -406,7 +406,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { }); fabGallery.setOnClickListener(view -> { - Timber.d("Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); + Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); directUpload.storeSharedPrefs(); From 4551eebeb673a5496f7e232cb0feb361241dcfc0 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 11 Jan 2018 18:51:22 +1000 Subject: [PATCH 34/61] Remove defaultPrefs check - no real use? --- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 4596fedd2..ed256be51 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 @@ -49,8 +49,8 @@ class DirectUpload { } void initiateCameraUpload() { - boolean useExtStorage = defaultPrefs.getBoolean("useExternalStorage", true); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && useExtStorage) { + //boolean useExtStorage = defaultPrefs.getBoolean("useExternalStorage", true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(fragment.getActivity(), WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (fragment.getActivity().shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE)) { new AlertDialog.Builder(fragment.getActivity()) From 84b7cda560528f0dc428b52e99336bf2046fde41 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 11 Jan 2018 18:58:20 +1000 Subject: [PATCH 35/61] Send sharedprefs to handleImagePicked() camera case --- .../free/nrw/commons/contributions/ContributionController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index b438fc2ce..67432253a 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -101,6 +101,9 @@ public class ContributionController { shareIntent.setType("image/jpeg"); //FIXME: Find out appropriate mime type shareIntent.putExtra(EXTRA_STREAM, lastGeneratedCaptureUri); shareIntent.putExtra(EXTRA_SOURCE, SOURCE_CAMERA); + if (isDirectUpload) { + shareIntent.putExtra("isDirectUpload", true); + } break; } Timber.i("Image selected"); From 8b473260f31c3938a479dfe0127d0a58a4ec40df Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 11 Jan 2018 19:14:49 +1000 Subject: [PATCH 36/61] Add TODO to PlaceRenderer for List buttons --- app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java index 533a3cad6..468e97d2c 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java @@ -81,6 +81,8 @@ class PlaceRenderer extends Renderer { } }); + //TODO: Set onClickListeners for camera and gallery in list here? + } private void closeLayout(LinearLayout buttonLayout){ From 745b3e1918052dca0170b8b85d382eda1dc8a6a4 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 12 Jan 2018 20:31:30 +1000 Subject: [PATCH 37/61] Copy onRequestPermissionsResult into NearbyMapFragment --- .../nrw/commons/nearby/NearbyMapFragment.java | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) 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 e852134de..d101a7e94 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 @@ -3,6 +3,7 @@ package fr.free.nrw.commons.nearby; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; @@ -47,6 +48,7 @@ import fr.free.nrw.commons.utils.UriDeserializer; import timber.log.Timber; import static android.app.Activity.RESULT_OK; +import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class NearbyMapFragment extends android.support.v4.app.Fragment { @@ -411,11 +413,43 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); directUpload.storeSharedPrefs(); directUpload.initiateGalleryUpload(); - -//TODO: Handle onRequestPermissionsResult }); } + //TODO: Handle onRequestPermissionsResult + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, + @NonNull int[] grantResults) { + Timber.d("onRequestPermissionsResult: req code = " + " perm = " + + permissions + " grant =" + grantResults); + + switch (requestCode) { + // 1 = Storage allowed when gallery selected + case 1: { + if (grantResults.length > 0 && grantResults[0] == PERMISSION_GRANTED) { + Timber.d("Call controller.startGalleryPick()"); + controller.startGalleryPick(); + } + } + break; + // 2 = Location allowed when 'nearby places' selected + case 2: { + if (grantResults.length > 0 && grantResults[0] == PERMISSION_GRANTED) { + Timber.d("Location permission granted"); + Intent nearbyIntent = new Intent(getActivity(), NearbyActivity.class); + startActivity(nearbyIntent); + } + } + break; + case 3: { + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + Timber.d("Call controller.startCameraCapture()"); + controller.startCameraCapture(); + } + } + } + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -429,7 +463,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { requestCode, resultCode, data); } } - + private void openWebView(Uri link) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, link); startActivity(browserIntent); From ba8bf51dbfe256e9477ace05b8f71566861a7382 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 12 Jan 2018 20:34:57 +1000 Subject: [PATCH 38/61] Modify onPermissionsResult to suit current requirements --- .../nrw/commons/nearby/NearbyMapFragment.java | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) 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 d101a7e94..0151975b8 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 @@ -418,13 +418,11 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { //TODO: Handle onRequestPermissionsResult @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, - @NonNull int[] grantResults) { - Timber.d("onRequestPermissionsResult: req code = " + " perm = " - + permissions + " grant =" + grantResults); + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + Timber.d("onRequestPermissionsResult: req code = " + " perm = " + permissions + " grant =" + grantResults); switch (requestCode) { - // 1 = Storage allowed when gallery selected + // 1 = "Read external storage" allowed when gallery selected case 1: { if (grantResults.length > 0 && grantResults[0] == PERMISSION_GRANTED) { Timber.d("Call controller.startGalleryPick()"); @@ -432,15 +430,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } } break; - // 2 = Location allowed when 'nearby places' selected - case 2: { - if (grantResults.length > 0 && grantResults[0] == PERMISSION_GRANTED) { - Timber.d("Location permission granted"); - Intent nearbyIntent = new Intent(getActivity(), NearbyActivity.class); - startActivity(nearbyIntent); - } - } - break; + // 2 = "Write external storage" allowed when camera selected case 3: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Timber.d("Call controller.startCameraCapture()"); @@ -463,7 +453,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { requestCode, resultCode, data); } } - + private void openWebView(Uri link) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, link); startActivity(browserIntent); From cd713caa5e0f501fc44e6c51cf78df892ed37f54 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 12 Jan 2018 20:35:43 +1000 Subject: [PATCH 39/61] Remove TODO --- app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 1 - .../main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 1 - 2 files changed, 2 deletions(-) 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 ed256be51..b5a0c176a 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 @@ -49,7 +49,6 @@ class DirectUpload { } void initiateCameraUpload() { - //boolean useExtStorage = defaultPrefs.getBoolean("useExternalStorage", true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(fragment.getActivity(), WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (fragment.getActivity().shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE)) { 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 0151975b8..1d1acc61c 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 @@ -416,7 +416,6 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { }); } - //TODO: Handle onRequestPermissionsResult @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { Timber.d("onRequestPermissionsResult: req code = " + " perm = " + permissions + " grant =" + grantResults); From d01d6a69f26c6d9322f3d5592ac4a0b60582591a Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 12 Jan 2018 20:44:40 +1000 Subject: [PATCH 40/61] Tidy up DirectUpload.java --- .../java/fr/free/nrw/commons/nearby/DirectUpload.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) 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 b5a0c176a..7bcd1e9d3 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 @@ -1,12 +1,8 @@ package fr.free.nrw.commons.nearby; -import android.app.Activity; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; import android.os.Build; -import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; @@ -16,7 +12,6 @@ import javax.inject.Named; 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.Manifest.permission.WRITE_EXTERNAL_STORAGE; @@ -40,7 +35,7 @@ class DirectUpload { } void storeSharedPrefs() { - SharedPreferences sharedPref = fragment.getActivity().getSharedPreferences("Direct Upload",Context.MODE_PRIVATE); + SharedPreferences sharedPref = fragment.getActivity().getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString("Title", title); @@ -50,7 +45,7 @@ class DirectUpload { void initiateCameraUpload() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (ContextCompat.checkSelfPermission(fragment.getActivity(), WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + if (ContextCompat.checkSelfPermission(fragment.getActivity(), WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) { if (fragment.getActivity().shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE)) { new AlertDialog.Builder(fragment.getActivity()) .setMessage(fragment.getActivity().getString(R.string.write_storage_permission_rationale)) From d30f0968dcb30063e51f1cb10617c109a1c08e86 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 12 Jan 2018 20:45:28 +1000 Subject: [PATCH 41/61] Tidy up NearbyMapFragment.java --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 3 --- 1 file changed, 3 deletions(-) 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 1d1acc61c..372d851a0 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 @@ -1,8 +1,6 @@ package fr.free.nrw.commons.nearby; -import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Color; import android.net.Uri; @@ -12,7 +10,6 @@ import android.support.annotation.Nullable; import android.support.design.widget.BottomSheetBehavior; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.FloatingActionButton; - import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; From d75fd91438d7cc0c00439794f0436d658e5d0b78 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 12 Jan 2018 20:45:52 +1000 Subject: [PATCH 42/61] Clarify comment --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 372d851a0..cbaf9a078 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 @@ -426,7 +426,8 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } } break; - // 2 = "Write external storage" allowed when camera selected + + // 3 = "Write external storage" allowed when camera selected case 3: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Timber.d("Call controller.startCameraCapture()"); From efc0bc851882f02dee857ac266d5ad09cb348200 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 16 Jan 2018 16:50:15 +1000 Subject: [PATCH 43/61] Fix comments for List onClickListeners --- .../main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java index 468e97d2c..61c758605 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java @@ -81,8 +81,7 @@ class PlaceRenderer extends Renderer { } }); - //TODO: Set onClickListeners for camera and gallery in list here? - + //TODO: Set onClickListeners for camera and gallery in list here } private void closeLayout(LinearLayout buttonLayout){ @@ -113,8 +112,6 @@ class PlaceRenderer extends Renderer { } }); - //TODO: Insert onClickListeners for galeryButton and cameraButton - iconOverflow.setVisibility(showMenu() ? View.VISIBLE : View.GONE); iconOverflow.setOnClickListener(v -> popupMenuListener()); } From fd14a3e82c5df45ab1df78aaa7bcee65b9d527d1 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 21:00:00 +1000 Subject: [PATCH 44/61] Add NearbyMapFragment to FragmentBuilderModule --- .../java/fr/free/nrw/commons/di/FragmentBuilderModule.java | 4 ++++ .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java b/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java index ca7340cb1..a94f46ca9 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java @@ -7,6 +7,7 @@ import fr.free.nrw.commons.contributions.ContributionsListFragment; import fr.free.nrw.commons.media.MediaDetailFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; import fr.free.nrw.commons.nearby.NearbyListFragment; +import fr.free.nrw.commons.nearby.NearbyMapFragment; import fr.free.nrw.commons.nearby.NoPermissionsFragment; import fr.free.nrw.commons.settings.SettingsFragment; import fr.free.nrw.commons.upload.MultipleUploadListFragment; @@ -31,6 +32,9 @@ public abstract class FragmentBuilderModule { @ContributesAndroidInjector abstract NearbyListFragment bindNearbyListFragment(); + @ContributesAndroidInjector + abstract NearbyMapFragment bindNearbyMapFragment(); + @ContributesAndroidInjector abstract NoPermissionsFragment bindNoPermissionsFragment(); 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 cbaf9a078..a7791a8c3 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 @@ -39,6 +39,7 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; +import dagger.android.support.DaggerFragment; import fr.free.nrw.commons.R; import fr.free.nrw.commons.contributions.ContributionController; import fr.free.nrw.commons.utils.UriDeserializer; @@ -47,7 +48,7 @@ import timber.log.Timber; import static android.app.Activity.RESULT_OK; import static android.content.pm.PackageManager.PERMISSION_GRANTED; -public class NearbyMapFragment extends android.support.v4.app.Fragment { +public class NearbyMapFragment extends DaggerFragment { private MapView mapView; private List baseMarkerOptions; From 287a20d94575399e27e07113c05f60f8dceb1754 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 21:13:33 +1000 Subject: [PATCH 45/61] Move SharedPreferences injection into NearbyMapFragment --- .../java/fr/free/nrw/commons/nearby/DirectUpload.java | 7 ++++--- .../fr/free/nrw/commons/nearby/NearbyMapFragment.java | 10 ++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) 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 7bcd1e9d3..a16d96e32 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 @@ -23,15 +23,16 @@ class DirectUpload { private String desc; private ContributionController controller; private Fragment fragment; + private SharedPreferences prefs; - @Inject @Named("prefs") SharedPreferences prefs; - @Inject @Named("default_preferences") SharedPreferences defaultPrefs; - DirectUpload(String title, String desc, Fragment fragment, ContributionController controller) { + + DirectUpload(String title, String desc, Fragment fragment, ContributionController controller, SharedPreferences prefs) { this.title = title; this.desc = desc; this.fragment = fragment; this.controller = controller; + this.prefs = prefs; } void storeSharedPrefs() { 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 a7791a8c3..80cf64b72 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 @@ -1,6 +1,7 @@ package fr.free.nrw.commons.nearby; import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Color; import android.net.Uri; @@ -39,6 +40,9 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; +import javax.inject.Named; + import dagger.android.support.DaggerFragment; import fr.free.nrw.commons.R; import fr.free.nrw.commons.contributions.ContributionController; @@ -86,6 +90,8 @@ public class NearbyMapFragment extends DaggerFragment { private Place place; private Marker selected; + @Inject @Named("prefs") SharedPreferences prefs; + public NearbyMapFragment() { } @@ -400,7 +406,7 @@ public class NearbyMapFragment extends DaggerFragment { fabCamera.setOnClickListener(view -> { Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller, prefs); directUpload.storeSharedPrefs(); directUpload.initiateCameraUpload(); }); @@ -408,7 +414,7 @@ public class NearbyMapFragment extends DaggerFragment { fabGallery.setOnClickListener(view -> { Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller); + DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller, prefs); directUpload.storeSharedPrefs(); directUpload.initiateGalleryUpload(); }); From cb0179cb54de1177063bd85804355ce477e223ec Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 21:45:57 +1000 Subject: [PATCH 46/61] Create new method in CommonsApplicationModule for providing title/desc for Nearby Uploads --- .../fr/free/nrw/commons/di/CommonsApplicationModule.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java index 99d3235e7..ed2db378a 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationModule.java @@ -55,6 +55,12 @@ public class CommonsApplicationModule { return application.getSharedPreferences("prefs", MODE_PRIVATE); } + @Provides + @Named("direct_nearby_upload_prefs") + public SharedPreferences providesDirectNearbyUploadPreferences() { + return application.getSharedPreferences("direct_nearby_upload_prefs", MODE_PRIVATE); + } + @Provides public UploadController providesUploadController(SessionManager sessionManager, @Named("default_preferences") SharedPreferences sharedPreferences) { return new UploadController(sessionManager, application, sharedPreferences); From 9354c1c93ec4892353a00499890f098e2bb6ea3d Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 21:52:24 +1000 Subject: [PATCH 47/61] Give CommonsApplicationComponent access to DirectUpload --- .../fr/free/nrw/commons/di/CommonsApplicationComponent.java | 3 +++ app/src/main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java index 2881f33fd..a8f2cf883 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java @@ -10,6 +10,7 @@ import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.MediaWikiImageView; import fr.free.nrw.commons.contributions.ContributionsSyncAdapter; import fr.free.nrw.commons.modifications.ModificationsSyncAdapter; +import fr.free.nrw.commons.nearby.DirectUpload; @Singleton @Component(modules = { @@ -30,6 +31,8 @@ public interface CommonsApplicationComponent extends AndroidInjector Date: Wed, 24 Jan 2018 21:54:11 +1000 Subject: [PATCH 48/61] Use Dagger injection to store title and desc --- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 a50666dcd..1f7d67e03 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 @@ -25,7 +25,7 @@ public class DirectUpload { private Fragment fragment; private SharedPreferences prefs; - + @Inject @Named("direct_nearby_upload_prefs") SharedPreferences directPrefs; DirectUpload(String title, String desc, Fragment fragment, ContributionController controller, SharedPreferences prefs) { this.title = title; @@ -36,8 +36,7 @@ public class DirectUpload { } void storeSharedPrefs() { - SharedPreferences sharedPref = fragment.getActivity().getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); - SharedPreferences.Editor editor = sharedPref.edit(); + SharedPreferences.Editor editor = directPrefs.edit(); editor.putString("Title", title); editor.putString("Desc", desc); From 83bdbccd26eee40d3b6ff8ab37a39d80bcba3614 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 21:58:50 +1000 Subject: [PATCH 49/61] Retrieve title/desc via Dagger injection in SingleUploadFragment --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 2 ++ .../fr/free/nrw/commons/upload/SingleUploadFragment.java | 6 ++++-- 2 files changed, 6 insertions(+), 2 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 538bd9a51..b6a013c2a 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 @@ -245,10 +245,12 @@ public class ShareActivity Timber.d("This was initiated by a direct upload from Nearby"); isNearbyUpload = true; + /** SharedPreferences sharedPref = this.getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); nearbyTitle = sharedPref.getString("Title", ""); nearbyDesc = sharedPref.getString("Desc", ""); Timber.d("In ShareActivity, image title: " + nearbyTitle + " and image desc: " + nearbyDesc); + */ } mimeType = intent.getType(); } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index 9bf46a0b8..bd69bd53a 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -55,6 +55,8 @@ public class SingleUploadFragment extends DaggerFragment { @BindView(R.id.licenseSpinner) Spinner licenseSpinner; @Inject @Named("default_preferences") SharedPreferences prefs; + @Inject @Named("direct_nearby_upload_prefs") SharedPreferences directPrefs; + private String license; private OnUploadActionInitiated uploadActionInitiatedHandler; @@ -109,8 +111,8 @@ public class SingleUploadFragment extends DaggerFragment { boolean isNearbyUpload = ((ShareActivity) getActivity()).isNearbyUpload(); if (isNearbyUpload) { - String imageTitle = ((ShareActivity) getActivity()).getNearbyTitle(); - String imageDesc = ((ShareActivity) getActivity()).getNearbyDesc(); + String imageTitle = directPrefs.getString("Title", ""); + String imageDesc = directPrefs.getString("Desc", ""); titleEdit.setText(imageTitle); descEdit.setText(imageDesc); } From 40495d91abed8e58fbd79b0d70f85178a8a4ad35 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 22:00:24 +1000 Subject: [PATCH 50/61] Remove unnecessary getters in ShareActivity --- .../java/fr/free/nrw/commons/upload/ShareActivity.java | 8 -------- 1 file changed, 8 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 b6a013c2a..9578c3f26 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 @@ -207,14 +207,6 @@ public class ShareActivity return isNearbyUpload; } - protected String getNearbyTitle() { - return nearbyTitle; - } - - protected String getNearbyDesc() { - return nearbyDesc; - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); From 083564c906b3a776e57903aaf3307117f1129b64 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 22:05:35 +1000 Subject: [PATCH 51/61] Move storeSharedPrefs to fragment that is already injected --- .../nrw/commons/di/CommonsApplicationComponent.java | 2 +- .../fr/free/nrw/commons/nearby/DirectUpload.java | 8 +------- .../free/nrw/commons/nearby/NearbyMapFragment.java | 13 +++++++++++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java index a8f2cf883..4e4c7a1ba 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java @@ -31,7 +31,7 @@ public interface CommonsApplicationComponent extends AndroidInjector= Build.VERSION_CODES.M) { 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 80cf64b72..a56f8d4f2 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 @@ -91,6 +91,7 @@ public class NearbyMapFragment extends DaggerFragment { private Marker selected; @Inject @Named("prefs") SharedPreferences prefs; + @Inject @Named("direct_nearby_upload_prefs") SharedPreferences directPrefs; public NearbyMapFragment() { } @@ -407,7 +408,7 @@ public class NearbyMapFragment extends DaggerFragment { Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller, prefs); - directUpload.storeSharedPrefs(); + storeSharedPrefs(); directUpload.initiateCameraUpload(); }); @@ -415,11 +416,19 @@ public class NearbyMapFragment extends DaggerFragment { Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller, prefs); - directUpload.storeSharedPrefs(); + storeSharedPrefs(); directUpload.initiateGalleryUpload(); }); } + void storeSharedPrefs() { + SharedPreferences.Editor editor = directPrefs.edit(); + + editor.putString("Title", title); + editor.putString("Desc", desc); + editor.apply(); + } + @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { Timber.d("onRequestPermissionsResult: req code = " + " perm = " + permissions + " grant =" + grantResults); From 6134cf4d14cbfe461b99316fe8b3ff046ccaf62e Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 24 Jan 2018 22:06:42 +1000 Subject: [PATCH 52/61] Replace title/desc in NearbyMapFragment to fix NPE --- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 a56f8d4f2..2b1bdeefd 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 @@ -424,8 +424,8 @@ public class NearbyMapFragment extends DaggerFragment { void storeSharedPrefs() { SharedPreferences.Editor editor = directPrefs.edit(); - editor.putString("Title", title); - editor.putString("Desc", desc); + editor.putString("Title", place.getName()); + editor.putString("Desc", place.getLongDescription()); editor.apply(); } From 9446427d0d958d8f114d6b4df2194858a4bf91ed Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 02:26:14 +1000 Subject: [PATCH 53/61] Clean up DirectNearbyUpload constructor --- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 6 +----- .../java/fr/free/nrw/commons/nearby/NearbyMapFragment.java | 5 ++--- 2 files changed, 3 insertions(+), 8 deletions(-) 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 ff4c09e86..7e6561ab2 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 @@ -19,17 +19,13 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class DirectUpload { - private String title; - private String desc; private ContributionController controller; private Fragment fragment; private SharedPreferences prefs; - DirectUpload(String title, String desc, Fragment fragment, ContributionController controller, SharedPreferences prefs) { - this.title = title; - this.desc = desc; + DirectUpload(Fragment fragment, ContributionController controller, SharedPreferences prefs) { this.fragment = fragment; this.controller = controller; this.prefs = prefs; 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 2b1bdeefd..24fabcd10 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 @@ -407,7 +407,7 @@ public class NearbyMapFragment extends DaggerFragment { fabCamera.setOnClickListener(view -> { Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller, prefs); + DirectUpload directUpload = new DirectUpload(this, controller, prefs); storeSharedPrefs(); directUpload.initiateCameraUpload(); }); @@ -415,7 +415,7 @@ public class NearbyMapFragment extends DaggerFragment { fabGallery.setOnClickListener(view -> { Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); controller = new ContributionController(this); - DirectUpload directUpload = new DirectUpload(place.getName(), place.getLongDescription(), this, controller, prefs); + DirectUpload directUpload = new DirectUpload(this, controller, prefs); storeSharedPrefs(); directUpload.initiateGalleryUpload(); }); @@ -423,7 +423,6 @@ public class NearbyMapFragment extends DaggerFragment { void storeSharedPrefs() { SharedPreferences.Editor editor = directPrefs.edit(); - editor.putString("Title", place.getName()); editor.putString("Desc", place.getLongDescription()); editor.apply(); From 283275ab556496ade0a30e9e0584a22ebd4bc661 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 02:32:36 +1000 Subject: [PATCH 54/61] Further code cleanup --- .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 4 ---- .../java/fr/free/nrw/commons/upload/ShareActivity.java | 7 ------- 2 files changed, 11 deletions(-) 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 7e6561ab2..113e888ea 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 @@ -23,16 +23,12 @@ public class DirectUpload { private Fragment fragment; private SharedPreferences prefs; - - DirectUpload(Fragment fragment, ContributionController controller, SharedPreferences prefs) { this.fragment = fragment; this.controller = controller; this.prefs = prefs; } - - void initiateCameraUpload() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ContextCompat.checkSelfPermission(fragment.getActivity(), WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) { 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 9578c3f26..3537da44f 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 @@ -236,13 +236,6 @@ public class ShareActivity if (intent.hasExtra("isDirectUpload")) { Timber.d("This was initiated by a direct upload from Nearby"); isNearbyUpload = true; - - /** - SharedPreferences sharedPref = this.getSharedPreferences("Direct Upload", Context.MODE_PRIVATE); - nearbyTitle = sharedPref.getString("Title", ""); - nearbyDesc = sharedPref.getString("Desc", ""); - Timber.d("In ShareActivity, image title: " + nearbyTitle + " and image desc: " + nearbyDesc); - */ } mimeType = intent.getType(); } From 216a113f94f740426672b3a9cf8410356f3d1eaa Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 02:33:42 +1000 Subject: [PATCH 55/61] Fix whitespace --- .../java/fr/free/nrw/commons/upload/SingleUploadFragment.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java index bd69bd53a..24d09ccd1 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SingleUploadFragment.java @@ -57,7 +57,6 @@ public class SingleUploadFragment extends DaggerFragment { @Inject @Named("default_preferences") SharedPreferences prefs; @Inject @Named("direct_nearby_upload_prefs") SharedPreferences directPrefs; - private String license; private OnUploadActionInitiated uploadActionInitiatedHandler; private TitleTextWatcher textWatcher = new TitleTextWatcher(); @@ -87,7 +86,6 @@ public class SingleUploadFragment extends DaggerFragment { uploadActionInitiatedHandler.uploadActionInitiated(title, desc); return true; - } return super.onOptionsItemSelected(item); } From eee96e1d08a8f75d62483abb8b8f28eb65fd5a09 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 02:35:52 +1000 Subject: [PATCH 56/61] Remove unused imports --- .../fr/free/nrw/commons/di/CommonsApplicationComponent.java | 1 - .../main/java/fr/free/nrw/commons/nearby/DirectUpload.java | 4 ---- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 3 --- 3 files changed, 8 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java index 4e4c7a1ba..b203dd0a5 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java @@ -10,7 +10,6 @@ import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.MediaWikiImageView; import fr.free.nrw.commons.contributions.ContributionsSyncAdapter; import fr.free.nrw.commons.modifications.ModificationsSyncAdapter; -import fr.free.nrw.commons.nearby.DirectUpload; @Singleton @Component(modules = { 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 113e888ea..b6602774c 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 @@ -1,15 +1,11 @@ package fr.free.nrw.commons.nearby; -import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; -import javax.inject.Inject; -import javax.inject.Named; - import fr.free.nrw.commons.R; import fr.free.nrw.commons.contributions.ContributionController; 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 3537da44f..1756ebeb5 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 @@ -2,7 +2,6 @@ package fr.free.nrw.commons.upload; import android.Manifest; import android.content.ContentResolver; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; @@ -40,7 +39,6 @@ import javax.inject.Inject; import javax.inject.Named; import butterknife.ButterKnife; -import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; import fr.free.nrw.commons.auth.AuthenticatedActivity; import fr.free.nrw.commons.auth.SessionManager; @@ -52,7 +50,6 @@ import fr.free.nrw.commons.modifications.CategoryModifier; import fr.free.nrw.commons.modifications.ModificationsContentProvider; import fr.free.nrw.commons.modifications.ModifierSequence; import fr.free.nrw.commons.modifications.TemplateRemoveModifier; -import fr.free.nrw.commons.mwapi.EventLog; import fr.free.nrw.commons.mwapi.MediaWikiApi; import timber.log.Timber; From 339e82f61238ace0d0332494c8cf00d1085d1829 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 02:41:09 +1000 Subject: [PATCH 57/61] More cleanup --- .../fr/free/nrw/commons/di/CommonsApplicationComponent.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java index b203dd0a5..2881f33fd 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java @@ -30,8 +30,6 @@ public interface CommonsApplicationComponent extends AndroidInjector Date: Thu, 25 Jan 2018 02:44:20 +1000 Subject: [PATCH 58/61] Hopefully last cleanup --- .../main/java/fr/free/nrw/commons/upload/ShareActivity.java | 4 +--- 1 file changed, 1 insertion(+), 3 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 1756ebeb5..d49fe47a8 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 @@ -97,9 +97,7 @@ public class ShareActivity private String description; private Snackbar snackbar; private boolean duplicateCheckPassed = false; - - private String nearbyTitle; - private String nearbyDesc; + private boolean isNearbyUpload = false; /** From 05044d4b9a329cc4f720eb568cc77c6c0bbf9374 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 03:30:16 +1000 Subject: [PATCH 59/61] Add TODO to fix IllegalStateException --- .../free/nrw/commons/contributions/ContributionController.java | 1 + app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index 67432253a..ac77bac34 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -78,6 +78,7 @@ public class ContributionController { Intent pickImageIntent = new Intent(ACTION_GET_CONTENT); pickImageIntent.setType("image/*"); Timber.d("startGalleryPick() called with pickImageIntent"); + //TODO Add fix for IllegalStateException here fragment.startActivityForResult(pickImageIntent, SELECT_FROM_GALLERY); } 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 d49fe47a8..a9803acb1 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 @@ -97,7 +97,7 @@ public class ShareActivity private String description; private Snackbar snackbar; private boolean duplicateCheckPassed = false; - + private boolean isNearbyUpload = false; /** From dc06fe789f99bd583f6cf09f8a24ac3cffb9c353 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 03:35:12 +1000 Subject: [PATCH 60/61] Check that fragment is added to activity to prevent crash --- .../nrw/commons/contributions/ContributionController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index ac77bac34..ff54889ef 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -70,6 +70,9 @@ public class ContributionController { requestWritePermission(fragment.getContext(), takePictureIntent, lastGeneratedCaptureUri); takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, lastGeneratedCaptureUri); + if (!fragment.isAdded()) { + return; + } fragment.startActivityForResult(takePictureIntent, SELECT_FROM_CAMERA); } @@ -79,6 +82,9 @@ public class ContributionController { pickImageIntent.setType("image/*"); Timber.d("startGalleryPick() called with pickImageIntent"); //TODO Add fix for IllegalStateException here + if (!fragment.isAdded()) { + return; + } fragment.startActivityForResult(pickImageIntent, SELECT_FROM_GALLERY); } From f9c6240eaa6c44657dbc05c8657e0b7f8d964f12 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 25 Jan 2018 03:38:08 +1000 Subject: [PATCH 61/61] Add comment explaining fix --- .../free/nrw/commons/contributions/ContributionController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index ff54889ef..92cf063d4 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -81,7 +81,7 @@ public class ContributionController { Intent pickImageIntent = new Intent(ACTION_GET_CONTENT); pickImageIntent.setType("image/*"); Timber.d("startGalleryPick() called with pickImageIntent"); - //TODO Add fix for IllegalStateException here + // See https://stackoverflow.com/questions/22366596/android-illegalstateexception-fragment-not-attached-to-activity-webview if (!fragment.isAdded()) { return; }