From 6565836a25e547092598bbd362cced61760e2693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Mon, 23 Feb 2015 13:50:04 -0800 Subject: [PATCH 1/3] Fixed new clang errors in Xcode 6.3b2 --- platform/ios/MGLMapView.mm | 2 +- src/mbgl/map/tile_parser.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/platform/ios/MGLMapView.mm b/platform/ios/MGLMapView.mm index a83fcdb93..70f345dd9 100644 --- a/platform/ios/MGLMapView.mm +++ b/platform/ios/MGLMapView.mm @@ -646,7 +646,7 @@ mbgl::DefaultFileSource *mbglFileSource = nullptr; // constrain to +/-30 degrees when merely rotating like Apple does // - if ( ! self.isRotationAllowed && fabsf(self.pinch.scale) < 10) + if ( ! self.isRotationAllowed && std::abs(self.pinch.scale) < 10) { newDegrees = fminf(newDegrees, 30); newDegrees = fmaxf(newDegrees, -30); diff --git a/src/mbgl/map/tile_parser.cpp b/src/mbgl/map/tile_parser.cpp index 087f2a33c..c2833e5c9 100644 --- a/src/mbgl/map/tile_parser.cpp +++ b/src/mbgl/map/tile_parser.cpp @@ -43,7 +43,6 @@ TileParser::TileParser(const std::string &data, VectorTileData &tile_, spriteAtlas(spriteAtlas_), sprite(sprite_), collision(util::make_unique(tile.id.z, 4096, tile.source.tile_size, tile.depth)) { - assert(&tile != nullptr); assert(style); assert(sprite); assert(collision); From 6cfc00e1aecea53a0ea0460ec87351e1281bf545 Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Tue, 24 Feb 2015 14:18:45 -0600 Subject: [PATCH 2/3] #913 - Updating to latest Android Gradle Build Tools --- android/java/MapboxGLAndroidSDK/build.gradle | 2 +- android/java/MapboxGLAndroidSDKTestApp/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/java/MapboxGLAndroidSDK/build.gradle b/android/java/MapboxGLAndroidSDK/build.gradle index 950ce19a0..806134394 100644 --- a/android/java/MapboxGLAndroidSDK/build.gradle +++ b/android/java/MapboxGLAndroidSDK/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.1.0' classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.1' } } diff --git a/android/java/MapboxGLAndroidSDKTestApp/build.gradle b/android/java/MapboxGLAndroidSDKTestApp/build.gradle index 46c3a8d63..9a1f323ef 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/build.gradle +++ b/android/java/MapboxGLAndroidSDKTestApp/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.1.0' classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.1' } } From 025c7c3be567739509906af81833b4eeea49955c Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Tue, 24 Feb 2015 15:49:39 -0600 Subject: [PATCH 3/3] #911 - Persist GPS State in UI across device rotation --- .../com/mapbox/mapboxgl/app/MainActivity.java | 60 ++++++++++++++----- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java index 831dd99ae..a933d5cd1 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java @@ -14,13 +14,11 @@ import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; - import com.mapbox.mapboxgl.lib.LatLngZoom; import com.mapbox.mapboxgl.lib.MapView; import com.mapzen.android.lost.LocationClient; import com.mapzen.android.lost.LocationListener; import com.mapzen.android.lost.LocationRequest; - import java.util.ArrayList; public class MainActivity extends ActionBarActivity { @@ -32,6 +30,9 @@ public class MainActivity extends ActionBarActivity { // Tag used for logging private static final String TAG = "MainActivity"; + // Rotation State + private static final String IS_GPS_ON = "isGPSOn"; + // // Instance members // @@ -50,6 +51,7 @@ public class MainActivity extends ActionBarActivity { private LocationClient mLocationClient; private LocationListener mLocationListener; private LocationRequest mLocationRequest; + private MenuItem gpsMenuItem = null; // Used for the class spinner Spinner mClassSpinner; @@ -123,6 +125,11 @@ public class MainActivity extends ActionBarActivity { mLocationListener = null; } }); + + if (savedInstanceState != null) { + // Restore any state that the app saved + mIsGpsOn = savedInstanceState.getBoolean(IS_GPS_ON); + } } // Called when our app goes into the background @@ -150,6 +157,15 @@ public class MainActivity extends ActionBarActivity { } } + @Override + protected void onSaveInstanceState(Bundle outState) { + + // Persist any state the app needs to retain + outState.putBoolean(IS_GPS_ON, mIsGpsOn); + + super.onSaveInstanceState(outState); + } + // // Other events // @@ -159,6 +175,10 @@ public class MainActivity extends ActionBarActivity { public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, menu); + gpsMenuItem = menu.findItem(R.id.action_gps); + + // Set Menu UI to match state (ie, from restore) + toggleGPS(mIsGpsOn); return super.onCreateOptionsMenu(menu); } @@ -167,17 +187,7 @@ public class MainActivity extends ActionBarActivity { public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_gps: - // Toggle GPS position updates - if (mIsGpsOn) { - mIsGpsOn = false; - item.setIcon(R.drawable.ic_action_location_searching); - mLocationClient.disconnect(); - - } else { - mIsGpsOn = true; - item.setIcon(R.drawable.ic_action_location_found); - mLocationClient.connect(); - } + toggleGPS(!mIsGpsOn); return true; case R.id.action_debug: @@ -198,6 +208,24 @@ public class MainActivity extends ActionBarActivity { } } + /** + * Enabled / Disable GPS along with updating the UI + * @param enableGPS true if GPS is to be enabled, false if GPS is to be disabled + */ + private void toggleGPS(boolean enableGPS) { + + if (enableGPS) { + mIsGpsOn = true; + gpsMenuItem.setIcon(R.drawable.ic_action_location_found); + mLocationClient.connect(); + } else { + mIsGpsOn = false; + gpsMenuItem.setIcon(R.drawable.ic_action_location_searching); + mLocationClient.disconnect(); + } + } + + // Handles location updates from GPS private void updateLocation(Location location) { if (location != null) { @@ -211,7 +239,7 @@ public class MainActivity extends ActionBarActivity { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - switch(position) { + switch (position) { // Bright case 0: mMapFragment.getMap().setStyleUrl("asset://styles/bright-v7.json"); @@ -285,7 +313,7 @@ public class MainActivity extends ActionBarActivity { public void onItemSelected(AdapterView parent, View view, int position, long id) { ArrayList classes = new ArrayList(1); - switch(position) { + switch (position) { // Day case 0: classes.add("day"); @@ -317,7 +345,7 @@ public class MainActivity extends ActionBarActivity { public void onItemSelected(AdapterView parent, View view, int position, long id) { ArrayList classes = new ArrayList(2); - switch(position) { + switch (position) { // Labels + Contours case 0: classes.add("labels");