From e8f306a023d44fda09fb10e5e37296ff02bbe152 Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 15 May 2017 10:11:03 +0200 Subject: [PATCH 1/7] Add Dialog if GPS not enabled --- .../nrw/commons/nearby/NearbyActivity.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 43966f7a4..c292dd802 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -1,10 +1,14 @@ package fr.free.nrw.commons.nearby; +import android.content.DialogInterface; +import android.content.Intent; +import android.location.LocationManager; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.AlertDialog; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -23,6 +27,7 @@ import fr.free.nrw.commons.theme.BaseActivity; import fr.free.nrw.commons.utils.UriSerializer; import fr.free.nrw.commons.R; +import timber.log.Timber; import java.util.List; @@ -47,6 +52,7 @@ public class NearbyActivity extends BaseActivity { if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } + checkGps(); bundle = new Bundle(); locationManager = new LocationServiceManager(this); locationManager.registerLocationManager(); @@ -83,6 +89,37 @@ public class NearbyActivity extends BaseActivity { } } + + protected void checkGps() { + LocationManager manager = (LocationManager) + getSystemService(LOCATION_SERVICE); + if(!manager.isProviderEnabled( LocationManager.GPS_PROVIDER )) { + Timber.d("GPS is not enabled"); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); + alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?") + .setCancelable(false) + .setPositiveButton("Enable GPS", + new DialogInterface.OnClickListener(){ + public void onClick(DialogInterface dialog, int id){ + Intent callGPSSettingIntent = new Intent( + android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(callGPSSettingIntent); + } + }); + alertDialogBuilder.setNegativeButton("Cancel", + new DialogInterface.OnClickListener(){ + public void onClick(DialogInterface dialog, int id){ + dialog.cancel(); + } + }); + AlertDialog alert = alertDialogBuilder.create(); + alert.show(); + + } else { + Timber.d("GPS is enabled"); + } + } + private void showMapView() { if (!isMapViewActive) { isMapViewActive = true; From faa60dc82448827c62a5cd27545b3ef11e664d67 Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 15 May 2017 10:25:40 +0200 Subject: [PATCH 2/7] Add string resources --- .../free/nrw/commons/nearby/NearbyActivity.java | 17 ++++++++--------- app/src/main/res/values/strings.xml | 2 ++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index c292dd802..dc9769fda 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -91,24 +91,23 @@ public class NearbyActivity extends BaseActivity { protected void checkGps() { - LocationManager manager = (LocationManager) - getSystemService(LOCATION_SERVICE); - if(!manager.isProviderEnabled( LocationManager.GPS_PROVIDER )) { + LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE); + if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { Timber.d("GPS is not enabled"); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); - alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?") + alertDialogBuilder.setMessage(R.string.gps_disabled) .setCancelable(false) - .setPositiveButton("Enable GPS", - new DialogInterface.OnClickListener(){ - public void onClick(DialogInterface dialog, int id){ + .setPositiveButton(R.string.enable_gps, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { Intent callGPSSettingIntent = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(callGPSSettingIntent); } }); alertDialogBuilder.setNegativeButton("Cancel", - new DialogInterface.OnClickListener(){ - public void onClick(DialogInterface dialog, int id){ + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bad2512de..479727e0e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -51,6 +51,8 @@ Search categories Save Refresh + GPS is disabled in your device. Would you like to enable it? + Enable GPS No uploads yet From 0af03bb456d193fb51e23ec3bb438decef3f01cf Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 15 May 2017 10:39:56 +0200 Subject: [PATCH 3/7] Refresh view if settings changed --- .../fr/free/nrw/commons/nearby/NearbyActivity.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index dc9769fda..6a9516a83 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -102,7 +102,7 @@ public class NearbyActivity extends BaseActivity { public void onClick(DialogInterface dialog, int id) { Intent callGPSSettingIntent = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); - startActivity(callGPSSettingIntent); + startActivityForResult(callGPSSettingIntent, 1); } }); alertDialogBuilder.setNegativeButton("Cancel", @@ -119,6 +119,14 @@ public class NearbyActivity extends BaseActivity { } } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == 1) { + refreshView(); + } + } + private void showMapView() { if (!isMapViewActive) { isMapViewActive = true; From ad7c1cc8f5c1794a8d47114b548ff1317260b2ef Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 15 May 2017 10:47:02 +0200 Subject: [PATCH 4/7] Use requestCode instead --- .../main/java/fr/free/nrw/commons/nearby/NearbyActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 6a9516a83..fee1704a5 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -122,7 +122,7 @@ public class NearbyActivity extends BaseActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == 1) { + if (requestCode == 1) { refreshView(); } } From 42e975c19cadb92d50767b9120914c398f45b78d Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 15 May 2017 10:49:45 +0200 Subject: [PATCH 5/7] Added logs --- .../main/java/fr/free/nrw/commons/nearby/NearbyActivity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index fee1704a5..6532540e4 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -102,6 +102,7 @@ public class NearbyActivity extends BaseActivity { public void onClick(DialogInterface dialog, int id) { Intent callGPSSettingIntent = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); + Timber.d("Loaded settings page"); startActivityForResult(callGPSSettingIntent, 1); } }); @@ -123,6 +124,7 @@ public class NearbyActivity extends BaseActivity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1) { + Timber.d("User is back from Settings page"); refreshView(); } } From 0809290a62764ce9d549dd82fdaaaa53f47db89b Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Mon, 15 May 2017 10:54:13 +0200 Subject: [PATCH 6/7] Fix whitespace --- .../main/java/fr/free/nrw/commons/nearby/NearbyActivity.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 6532540e4..e0a65e1a5 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -89,7 +89,6 @@ public class NearbyActivity extends BaseActivity { } } - protected void checkGps() { LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE); if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { @@ -114,7 +113,6 @@ public class NearbyActivity extends BaseActivity { }); AlertDialog alert = alertDialogBuilder.create(); alert.show(); - } else { Timber.d("GPS is enabled"); } From fc1a04d0e4f8b05e5a44aa77df6015be86e7c7d0 Mon Sep 17 00:00:00 2001 From: Neslihan Date: Mon, 15 May 2017 11:56:40 +0300 Subject: [PATCH 7/7] Add custom map marker icons --- .../free/nrw/commons/nearby/NearbyController.java | 12 ++++++++++-- .../nrw/commons/nearby/NearbyMapFragment.java | 5 +++-- .../main/res/drawable-mdpi/custom_map_marker.png | Bin 0 -> 993 bytes 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable-mdpi/custom_map_marker.png diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java index ba2aec1d9..e5fc3182c 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java @@ -2,9 +2,11 @@ package fr.free.nrw.commons.nearby; import android.content.Context; import android.content.SharedPreferences; -import android.graphics.drawable.Icon; import android.preference.PreferenceManager; +import com.mapbox.mapboxsdk.annotations.Icon; +import com.mapbox.mapboxsdk.annotations.IconFactory; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -13,6 +15,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import fr.free.nrw.commons.R; import fr.free.nrw.commons.location.LatLng; import timber.log.Timber; @@ -86,13 +89,17 @@ public class NearbyController { */ public static List loadAttractionsFromLocationToBaseMarkerOptions( LatLng curLatLng, - List placeList) { + List placeList, + Context context) { List baseMarkerOptionses = new ArrayList<>(); placeList = placeList.subList(0, Math.min(placeList.size(), MAX_RESULTS)); for (Place place: placeList) { String distance = formatDistanceBetween(curLatLng, place.location); place.setDistance(distance); + Icon icon = IconFactory.getInstance(context) + .fromResource(R.drawable.custom_map_marker); + NearbyBaseMarker nearbyBaseMarker = new NearbyBaseMarker(); nearbyBaseMarker.title(place.name); nearbyBaseMarker.position( @@ -100,6 +107,7 @@ public class NearbyController { place.location.latitude, place.location.longitude)); nearbyBaseMarker.place(place); + nearbyBaseMarker.icon(icon); baseMarkerOptionses.add(nearbyBaseMarker); } 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 77512139e..b58fa8d5b 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 @@ -55,8 +55,9 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { Type curLatLngType = new TypeToken() {}.getType(); curLatLng = gson.fromJson(gsonLatLng, curLatLngType); baseMarkerOptionses = NearbyController - .loadAttractionsFromLocationToBaseMarkerOptions(curLatLng, placeList); - + .loadAttractionsFromLocationToBaseMarkerOptions(curLatLng, + placeList, + getActivity()); } Mapbox.getInstance(getActivity(), getString(R.string.mapbox_commons_app_token)); diff --git a/app/src/main/res/drawable-mdpi/custom_map_marker.png b/app/src/main/res/drawable-mdpi/custom_map_marker.png new file mode 100644 index 0000000000000000000000000000000000000000..0634167c52db9b1331f1cd671b211f2b16b9faaf GIT binary patch literal 993 zcmV<710MW|P) zDCy;#_SE=GPELN8|M&C1obx+Ji3ny)-P5s$+UA`&oL(%pR+O@k$&8>aju4Ly%IWvM zG^JAxsP1^c!!6rirg6gos;bu*7S2Xa68!U7IrrHg{~4(EJpK?jc{^EK<1RDt>y}O> z2#+3;o;N!y2CBOrZldM>U%8>C*%T~mT566!|9x`yU}itKB$+f)*Vpi*}-xG=-rphtDdy}8CKhi zfP4G8@?cr3LfAia2KVHp{Djrks+1~PkUmi1$aA$cJFX1rmI7FpmuZ{u7bsWRq0wdz zn8}Rgy3Uyp4cek15TGFu%MYZJ6C#m$bHJrkAlFUQx`|nIpYm0UIqM5Fmd5q!^nue8 zXL4P!*ck9^F@&X+;?m6p$38!M$~>^|*m2_1!Q4=Hdk15#`l8Zhpli!+LbqQvqDbIYR53=-cFD)a%P19Gy5OU%mKPWx(4X zY~;?p1K3^W8h6&xsU-ehpY(V6_0opDR4#r$#q`*#6~O?mPIel>N&*4s`Ry(Ki4K~E zEyTkF{V$a&DG3z$T_ZB~0Md z9zIf(mNGAwwO*7hkC=;6|Vhu&z$7 z##6_>r#{4DbMnKdPZ08tt_%?%4a@>D5h>pOGQisar*5+K-fh?%O$?saZP36XFf2Oa zrGV=J4`4A6HL?s45s|2_Zpj~Er4+CZu&sctId{eNE!0--*=tV3xKsQKDk)1U7KRrI P00000NkvXXu0mjfN=e#{ literal 0 HcmV?d00001