From 9841f940740d56dca347fe9a8383107c41bcee5e Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Fri, 12 Feb 2016 16:24:32 -0800 Subject: [PATCH] [android] #3907 - Adding Telemetry description to dialog --- .../com/mapbox/mapboxsdk/maps/MapView.java | 27 ++++++++++++------- .../res/layout/attribution_telemetry_view.xml | 21 +++++++++++++++ .../src/main/res/values/dimens.xml | 3 ++- .../src/main/res/values/strings.xml | 2 ++ 4 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/layout/attribution_telemetry_view.xml diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index f40dff27c..a7e75f5c8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -49,9 +49,11 @@ import android.view.Surface; import android.view.TextureView; import android.view.View; import android.view.ViewConfiguration; +import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.ListView; import android.widget.ZoomButtonsController; import com.almeros.android.multitouch.gesturedetectors.RotateGestureDetector; import com.almeros.android.multitouch.gesturedetectors.ShoveGestureDetector; @@ -78,15 +80,12 @@ import com.mapbox.mapboxsdk.exceptions.TelemetryServiceNotConfiguredException; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.layers.CustomLayer; -import com.mapbox.mapboxsdk.location.LocationServices; import com.mapbox.mapboxsdk.telemetry.MapboxEventManager; -import com.mapbox.mapboxsdk.telemetry.TelemetryService; import com.mapbox.mapboxsdk.utils.ApiAccess; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -2880,28 +2879,38 @@ public class MapView extends FrameLayout { } String[] items = context.getResources().getStringArray(array); AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AttributionAlertDialogStyle); - builder.setTitle(R.string.attributionsDialogTitle); - builder.setAdapter(new ArrayAdapter<>(context, R.layout.attribution_list_item, items), new DialogInterface.OnClickListener() { + builder.setTitle(R.string.attributionTelemetryTitle); + LayoutInflater factory = LayoutInflater.from(context); + View content = factory.inflate(R.layout.attribution_telemetry_view, null); + + ListView lv = (ListView) content.findViewById(R.id.telemetryOptionsList); + lv.setAdapter(new ArrayAdapter(context, R.layout.attribution_list_item, items)); + lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE); + + builder.setView(content); + final AlertDialog telemDialog = builder.show(); + lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override - public void onClick(DialogInterface dialog, int which) { - switch (which) { + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { case 0: String url = context.getResources().getStringArray(R.array.attribution_links)[3]; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); context.startActivity(intent); + telemDialog.cancel(); return; case 1: MapboxEventManager.getMapboxEventManager(context).setTelemetryEnabled(false); + telemDialog.cancel(); return; case 2: MapboxEventManager.getMapboxEventManager(context).setTelemetryEnabled(true); + telemDialog.cancel(); return; } } }); - - builder.show(); return; } String url = context.getResources().getStringArray(R.array.attribution_links)[which]; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/attribution_telemetry_view.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/attribution_telemetry_view.xml new file mode 100644 index 000000000..b4d232683 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/attribution_telemetry_view.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml index fd612d511..5167ecf93 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml @@ -5,7 +5,8 @@ -2dp 1.5dp 7dp + 8dp 10dp 16dp 76dp - \ No newline at end of file + diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml index eadcdcc04..1f3cd8c4e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml @@ -3,6 +3,8 @@ Map compass. Click to reset the map rotation to North. Attribution icon. Click to show attribution dialog. Mapbox Android SDK + Make Mapbox Maps Better + You are helping to make OpenStreetMap and Mapbox maps better by contributing anonymous usage data. The Mapbox logo. Title Description