From 397ab623a2eaf83509681b1ffe8c5777961eab28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Paczos?= Date: Fri, 13 Apr 2018 10:12:39 +0200 Subject: [android] - fragment freeze native setup --- .../mapbox/mapboxsdk/maps/SupportMapFragment.java | 4 ++ .../android/MapboxGLAndroidSDKTestApp/build.gradle | 7 ++++ .../src/main/AndroidManifest.xml | 10 +++-- .../testapp/mapboxfreezerepro/MainActivity.kt | 49 ++++++++++++++++++++++ .../fragment/CustomMapFragment.kt | 41 ++++++++++++++++++ .../testapp/mapboxfreezerepro/views/EmptyView.kt | 14 +++++++ .../testapp/mapboxfreezerepro/views/MapView.kt | 44 +++++++++++++++++++ .../src/main/res/layout/activity_main.xml | 28 +++++++++++++ .../src/main/res/layout/empty_view.xml | 14 +++++++ .../src/main/res/layout/map_view.xml | 15 +++++++ platform/android/build.gradle | 2 + 11 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/MainActivity.kt create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/fragment/CustomMapFragment.kt create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/EmptyView.kt create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/MapView.kt create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/empty_view.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/map_view.xml diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java index 8aa4c7fd09..990d7d7e85 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java @@ -14,6 +14,8 @@ import com.mapbox.mapboxsdk.utils.MapFragmentUtils; import java.util.ArrayList; import java.util.List; +import timber.log.Timber; + /** * Support Fragment wrapper around a map view. *

@@ -136,6 +138,7 @@ public class SupportMapFragment extends Fragment implements OnMapReadyCallback { @Override public void onStop() { super.onStop(); + Timber.e("OnStop"); map.onStop(); } @@ -154,6 +157,7 @@ public class SupportMapFragment extends Fragment implements OnMapReadyCallback { @Override public void onDestroyView() { super.onDestroyView(); + Timber.e("OnDestroyView"); map.onDestroy(); mapReadyCallbackList.clear(); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle index 30e989c79b..3a3628aa8b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle +++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' android { compileSdkVersion androidVersions.compileSdkVersion @@ -54,6 +56,7 @@ android { dependencies { api(project(':MapboxGLAndroidSDK')) implementation dependenciesList.mapboxJavaServices + implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation dependenciesList.mapboxJavaTurf @@ -72,11 +75,15 @@ dependencies { androidTestImplementation dependenciesList.testRules androidTestImplementation dependenciesList.testEspressoCore androidTestImplementation dependenciesList.testEspressoIntents + compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } apply from: "${rootDir}/gradle/gradle-make.gradle" apply from: "${rootDir}/gradle/gradle-config.gradle" apply from: "${rootDir}/gradle/gradle-checkstyle.gradle" apply from: "${rootDir}/gradle/gradle-lint.gradle" +repositories { + mavenCentral() +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 442635f909..82f18ca5d2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -14,15 +14,19 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> + android:name="com.mapbox.mapboxsdk.testapp.mapboxfreezerepro.MainActivity" + android:label="@string/app_name"> + + + map.cameraPosition + with(map.uiSettings) { + isAttributionEnabled = false + isCompassEnabled = false + isLogoEnabled = false + isDeselectMarkersOnTap = false + isScrollGesturesEnabled = false + isZoomGesturesEnabled = false + isTiltGesturesEnabled = false + isRotateGesturesEnabled = false + isDoubleTapGesturesEnabled = false + } + } + } + + override fun onDestroy() { + super.onDestroy() + Timber.e("onDestroy") + } + + override fun onDestroyView() { + super.onDestroyView() + Timber.e("onDestroyView") + } + + override fun onStop() { + super.onStop() + Timber.e("onStop") + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/EmptyView.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/EmptyView.kt new file mode 100644 index 0000000000..d20b5334ea --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/EmptyView.kt @@ -0,0 +1,14 @@ +package com.mapbox.mapboxsdk.testapp.mapboxfreezerepro.views + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import android.widget.FrameLayout +import com.mapbox.mapboxsdk.testapp.R + +class EmptyView(context: Context, attributeSet: AttributeSet? = null) : FrameLayout(context, attributeSet) { + + init { + View.inflate(context, R.layout.empty_view, this) + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/MapView.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/MapView.kt new file mode 100644 index 0000000000..764de0937f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/mapboxfreezerepro/views/MapView.kt @@ -0,0 +1,44 @@ +package com.mapbox.mapboxsdk.testapp.mapboxfreezerepro.views + +import android.content.Context +import android.support.v4.app.FragmentManager +import android.support.v7.app.AppCompatActivity +import android.util.AttributeSet +import android.widget.FrameLayout +import android.view.View +import com.mapbox.mapboxsdk.testapp.R +import com.mapbox.mapboxsdk.testapp.mapboxfreezerepro.fragment.CustomMapFragment +import timber.log.Timber + +const val TAG = "tag" +class MapView(context: Context, + attrs: AttributeSet? = null) : FrameLayout(context, attrs) { + + private val fragmentManager: FragmentManager + + init { + fragmentManager = (context as AppCompatActivity).supportFragmentManager + View.inflate(context, R.layout.map_view, this) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + Timber.e("onAttachedToWindow") + val fragment = CustomMapFragment() + fragmentManager.beginTransaction() + .add( + R.id.mapContainer, fragment, + TAG + ) + .commit() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + Timber.e("onDetachedToWindow") +// val fragment = fragmentManager.findFragmentByTag(TAG) +// fragmentManager.beginTransaction() +// .remove(fragment) +// .commitNowAllowingStateLoss() + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000..f7ddc7c0a5 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_main.xml @@ -0,0 +1,28 @@ + + + + + + + + +