From e673a2678896dcf411f5974fa76800f644e908d5 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 7 Oct 2015 14:32:56 +0200 Subject: [PATCH] Made MapFragment work again, introduced new system to handle access token, updated MapFragmentActivity example --- .../src/main/AndroidManifest.xml | 4 +++ .../testapp/InfoWindowAdapterActivity.java | 10 +----- .../mapboxsdk/testapp/MainActivity.java | 3 ++ .../mapbox/mapboxsdk/testapp/MapFragment.java | 6 +++- .../testapp/MapFragmentActivity.java | 16 ++++++--- .../com/mapbox/mapboxsdk/testapp/Util.java | 33 ++++++++++++++++--- .../src/main/res/layout/fragment_main.xml | 9 +++-- .../src/main/res/values/dimens.xml | 1 + 8 files changed, 57 insertions(+), 25 deletions(-) diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 57d0bbb39..e0de39162 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -37,6 +37,10 @@ android:name="io.fabric.ApiKey" android:value="9724157045ff7d083492c6d9ae03e60e8609d461" /> + + diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java index ec6baab75..a7bbc8adc 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java @@ -41,15 +41,7 @@ public class InfoWindowAdapterActivity extends AppCompatActivity { } mMapView = (MapView) findViewById(R.id.secondMapView); - // Load the access token - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.token))); - String line = reader.readLine(); - mMapView.setAccessToken(line); - } catch (IOException e) { - Log.e(TAG, "Error loading access token from token.txt: " + e.toString()); - } - + mMapView.setAccessToken(Util.getAccessToken(this)); mMapView.onCreate(savedInstanceState); mMapView.setStyleUrl(MapView.StyleUrls.EMERALD); diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java index 7b4e49514..36107abea 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java @@ -286,6 +286,9 @@ public class MainActivity extends AppCompatActivity { startActivity(new Intent(getApplicationContext(), InfoWindowAdapterActivity.class)); return true; + case R.id.action_map_fragment: + startActivity(new Intent(getApplicationContext(), MapFragmentActivity.class)); + return true; /* case R.id.followNone: mMapView.setUserLocationTrackingMode(MapView.UserLocationTrackingMode.NONE); diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragment.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragment.java index 766e0a309..1dc464536 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragment.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragment.java @@ -9,6 +9,7 @@ import android.view.ViewGroup; import com.mapbox.mapboxsdk.views.MapView; +// TODO move this to SDK public class MapFragment extends Fragment { // @@ -36,7 +37,10 @@ public class MapFragment extends Fragment { Log.v(TAG, "onCreateView"); // Create the map - mMap = (MapView) inflater.inflate(R.layout.fragment_main, container, true); + mMap = (MapView) inflater.inflate(R.layout.fragment_main, container, false); + + // Set accessToken + mMap.setAccessToken(Util.getAccessToken(container.getContext())); // Need to pass on any saved state to the map mMap.onCreate(savedInstanceState); diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java index 578908b94..b460378d1 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java @@ -1,11 +1,12 @@ package com.mapbox.mapboxsdk.testapp; -import android.content.Context; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; +import android.view.Gravity; import android.view.View; +import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.views.MapView; public class MapFragmentActivity extends AppCompatActivity { @@ -32,11 +33,16 @@ public class MapFragmentActivity extends AppCompatActivity { @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - Context context = view.getContext(); - MapView map = getMap(); - map.setAccessToken(Util.getAccessToken(context)); - map.setStyleUrl(MapView.StyleUrls.EMERALD); + MapView mapView = getMap(); + mapView.setStyleUrl(MapView.StyleUrls.EMERALD); + mapView.setZoomLevel(12); + mapView.setCenterCoordinate(new LatLng(50.853658, 4.352419)); + + // move attribution control to right of screen + mapView.setAttributionGravity(Gravity.BOTTOM | Gravity.END); + int tenDp = (int) getResources().getDimension(R.dimen.attr_margin); + mapView.setAttributionMargins(0, 0, tenDp, tenDp); } } } diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java index 4f4a2a0da..deb26a5dd 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/Util.java @@ -1,6 +1,8 @@ package com.mapbox.mapboxsdk.testapp; import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.text.TextUtils; import android.util.Log; @@ -62,14 +64,35 @@ public class Util { return sb.toString(); } - public static String getAccessToken(final Context context){ - // Load the access token + // TODO move this to SDK + public static String getAccessToken(Context context) { + String accessToken = getReleaseAccessToken(context); + if (TextUtils.isEmpty(accessToken)) { + accessToken = getDevelopmentAccessToken(context); + } + // TODO add validation + throw exception + return accessToken; + } + + // TODO move this to SDK + private static String getReleaseAccessToken(Context context){ + try { + PackageManager packageManager = context.getPackageManager(); + ApplicationInfo appInfo = packageManager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); + return appInfo.metaData.getString("com.mapbox.accessToken"); + } catch (Exception e) { + Log.e(TAG, "Failed to load AccessToken: " + e.getMessage()); + return null; + } + } + + // TODO move this to SDK + private static String getDevelopmentAccessToken(Context context) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(context.getResources().openRawResource(R.raw.token))); return reader.readLine(); - } catch (IOException e) { - Log.e(TAG, "Error loading access token from token.txt: " + e.toString()); + }catch (IOException e){ + return null; } - return ""; } } diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_main.xml b/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_main.xml index a612b577f..22afd6e51 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_main.xml +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_main.xml @@ -1,6 +1,5 @@ - + diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml b/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml index f76eef07c..ec0e973cb 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml @@ -1,4 +1,5 @@ 16dp + 10dp