From 29da1b75b39dabecdd2048c9c008ebee415489e0 Mon Sep 17 00:00:00 2001 From: Leith Bade Date: Fri, 21 Nov 2014 00:51:03 +1100 Subject: [PATCH] Use android support lib fragments --- android/java/app/build.gradle | 3 + android/java/app/src/main/AndroidManifest.xml | 2 +- .../com/mapbox/mapboxgl/app/MainActivity.java | 88 +------------ .../com/mapbox/mapboxgl/app/MapFragment.java | 117 ++++++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 20 ++- .../app/src/main/res/layout/fragment_main.xml | 6 + .../app/src/main/res/values-v11/styles.xml | 11 -- .../app/src/main/res/values-v14/styles.xml | 12 -- .../java/app/src/main/res/values/styles.xml | 2 +- android/java/lib/build.gradle | 1 + .../mapbox/mapboxgl/lib/NativeMapView.java | 1 - 11 files changed, 142 insertions(+), 121 deletions(-) create mode 100644 android/java/app/src/main/java/com/mapbox/mapboxgl/app/MapFragment.java create mode 100644 android/java/app/src/main/res/layout/fragment_main.xml delete mode 100644 android/java/app/src/main/res/values-v11/styles.xml delete mode 100644 android/java/app/src/main/res/values-v14/styles.xml diff --git a/android/java/app/build.gradle b/android/java/app/build.gradle index 2e8f9bcfe..0158e87f9 100644 --- a/android/java/app/build.gradle +++ b/android/java/app/build.gradle @@ -27,4 +27,7 @@ android { dependencies { compile project(':lib') + compile 'com.android.support:support-annotations:21.0.0' + compile 'com.android.support:support-v4:21.0.0' + compile 'com.android.support:appcompat-v7:21.0.0' } diff --git a/android/java/app/src/main/AndroidManifest.xml b/android/java/app/src/main/AndroidManifest.xml index 5b73a63ff..7776d7098 100644 --- a/android/java/app/src/main/AndroidManifest.xml +++ b/android/java/app/src/main/AndroidManifest.xml @@ -10,7 +10,7 @@ + android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize" > diff --git a/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java b/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java index 2166b7dd1..d939b55a4 100644 --- a/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java +++ b/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MainActivity.java @@ -1,17 +1,12 @@ package com.mapbox.mapboxgl.app; -import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.net.ConnectivityManager; import android.os.Bundle; -import android.support.annotation.NonNull; +import android.support.v7.app.ActionBarActivity; import android.util.Log; import com.mapbox.mapboxgl.lib.MapView; -public class MainActivity extends Activity { +public class MainActivity extends ActionBarActivity { // // Static members @@ -20,91 +15,20 @@ public class MainActivity extends Activity { // Tag used for logging private static final String TAG = "MainActivity"; - // - // Instance members - // - - // The map - private MapView mMapView; - // // Lifecycle events // - // Called when the activity is created + // Called when activity is created @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.v(TAG, "onCreate"); + // Show the app icon + //getActionBar().setHomeButtonEnabled(true); + // Load the layout setContentView(R.layout.activity_main); - mMapView = (MapView) findViewById(R.id.map); - - // Load the API key - mMapView.setAccessToken("pk.eyJ1IjoibGpiYWRlIiwiYSI6IlJSQ0FEZ2MifQ.7mE4aOegldh3595AG9dxpQ"); - - // Need to pass on any saved state to the map - mMapView.onCreate(savedInstanceState); - } - - // Called when the activity is destroyed - @Override - protected void onDestroy() { - super.onDestroy(); - Log.v(TAG, "onDestroy"); - - // Need to pass on to view - mMapView.onDestroy(); - } - - // Called when the activity is visible - @Override - protected void onStart() { - super.onStart(); - Log.v(TAG, "onStart"); - - // Need to pass on to view - mMapView.onStart(); - } - - // Called when the activity is invisible - @Override - protected void onStop() { - super.onStop(); - Log.v(TAG, "onStop"); - - // Need to pass on to view - mMapView.onStop(); - } - - // Called when the activity is in the background - @Override - protected void onPause() { - super.onPause(); - Log.v(TAG, "onPause"); - - // Need to pass on to view - mMapView.onPause(); - } - - // Called when the activity is no longer in the background - @Override - protected void onResume() { - super.onResume(); - Log.v(TAG, "onResume"); - - // Need to pass on to view - mMapView.onResume(); - } - - // Called before activity is destroyed - @Override - protected void onSaveInstanceState(@NonNull Bundle outState) { - Log.v(TAG, "onSaveInstanceState"); - - // Need to retrieve any saved state from the map - mMapView.onSaveInstanceState(outState); - super.onSaveInstanceState(outState); } } diff --git a/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MapFragment.java b/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MapFragment.java new file mode 100644 index 000000000..65631a307 --- /dev/null +++ b/android/java/app/src/main/java/com/mapbox/mapboxgl/app/MapFragment.java @@ -0,0 +1,117 @@ +package com.mapbox.mapboxgl.app; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.mapbox.mapboxgl.lib.LonLat; +import com.mapbox.mapboxgl.lib.MapView; + +public class MapFragment extends Fragment { + + // + // Static members + // + + // Tag used for logging + private static final String TAG = "MapFragment"; + + // The map + private MapView mMapView; + + // + // Lifecycle events + // + + // Called when the fragment is created + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + super.onCreateView(inflater, container, savedInstanceState); + Log.v(TAG, "onCreateView"); + + // Create the map + mMapView = (MapView) inflater.inflate(R.layout.fragment_main, container, true); + + // Load the API key + mMapView.setAccessToken("pk.eyJ1IjoibGpiYWRlIiwiYSI6IlJSQ0FEZ2MifQ.7mE4aOegldh3595AG9dxpQ"); + + // Need to pass on any saved state to the map + mMapView.onCreate(savedInstanceState); + + // Return the map as the root view + return mMapView; + } + + // Called when the fragment is destroyed + @Override + public void onDestroyView() { + super.onDestroyView(); + Log.v(TAG, "onDestroyView"); + + // Need to pass on to view + mMapView.onDestroy(); + mMapView = null; + } + + // Called when the fragment is visible + @Override + public void onStart() { + super.onStart(); + Log.v(TAG, "onStart"); + + // Need to pass on to view + mMapView.onStart(); + } + + // Called when the fragment is invisible + @Override + public void onStop() { + super.onStop(); + Log.v(TAG, "onStop"); + + // Need to pass on to view + mMapView.onStop(); + } + + // Called when the fragment is in the background + @Override + public void onPause() { + super.onPause(); + Log.v(TAG, "onPause"); + + // Need to pass on to view + mMapView.onPause(); + } + + // Called when the fragment is no longer in the background + @Override + public void onResume() { + super.onResume(); + Log.v(TAG, "onResume"); + + // Need to pass on to view + mMapView.onResume(); + } + + // Called before fragment is destroyed + @Override + public void onSaveInstanceState(Bundle outState) { + Log.v(TAG, "onSaveInstanceState"); + + // Need to retrieve any saved state from the map + mMapView.onSaveInstanceState(outState); + super.onSaveInstanceState(outState); + } + + // + // Property methods + // + + public MapView getMapView() { + return mMapView; + } +} diff --git a/android/java/app/src/main/res/layout/activity_main.xml b/android/java/app/src/main/res/layout/activity_main.xml index bdfaaec15..523fc4a10 100644 --- a/android/java/app/src/main/res/layout/activity_main.xml +++ b/android/java/app/src/main/res/layout/activity_main.xml @@ -1,13 +1,7 @@ - - - - - + + \ No newline at end of file diff --git a/android/java/app/src/main/res/layout/fragment_main.xml b/android/java/app/src/main/res/layout/fragment_main.xml new file mode 100644 index 000000000..be994fc2d --- /dev/null +++ b/android/java/app/src/main/res/layout/fragment_main.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/android/java/app/src/main/res/values-v11/styles.xml b/android/java/app/src/main/res/values-v11/styles.xml deleted file mode 100644 index 3c02242ad..000000000 --- a/android/java/app/src/main/res/values-v11/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/android/java/app/src/main/res/values-v14/styles.xml b/android/java/app/src/main/res/values-v14/styles.xml deleted file mode 100644 index a91fd0372..000000000 --- a/android/java/app/src/main/res/values-v14/styles.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/android/java/app/src/main/res/values/styles.xml b/android/java/app/src/main/res/values/styles.xml index 6ce89c7ba..4c67848fc 100644 --- a/android/java/app/src/main/res/values/styles.xml +++ b/android/java/app/src/main/res/values/styles.xml @@ -4,7 +4,7 @@ Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> -