diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2018-11-27 12:20:41 +0100 |
---|---|---|
committer | Łukasz Paczos <lukas.paczos@gmail.com> | 2018-11-27 12:20:41 +0100 |
commit | 4bc5595647f709b928bfa23c166261374a209be4 (patch) | |
tree | 519c6a711275ce0edf88c176b117433006c444e6 | |
parent | 52cce7925d32181a20a79978479c5552fa6ae810 (diff) | |
download | qtlocation-mapboxgl-4bc5595647f709b928bfa23c166261374a209be4.tar.gz |
[android] local db testupstream/lp-local-db-test
2 files changed, 66 insertions, 92 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt index 035ad67e12..9f9b16de01 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt @@ -2,24 +2,21 @@ package com.mapbox.mapboxsdk.testapp.activity.location import android.annotation.SuppressLint import android.app.Fragment -import android.location.Location import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.TextView import android.widget.Toast -import com.mapbox.android.core.location.LocationEngineListener import com.mapbox.android.core.permissions.PermissionsListener import com.mapbox.android.core.permissions.PermissionsManager import com.mapbox.mapboxsdk.camera.CameraUpdateFactory import com.mapbox.mapboxsdk.geometry.LatLng +import com.mapbox.mapboxsdk.log.Logger import com.mapbox.mapboxsdk.maps.MapView -import com.mapbox.mapboxsdk.maps.MapboxMap -import com.mapbox.mapboxsdk.location.LocationComponent +import com.mapbox.mapboxsdk.offline.OfflineManager +import com.mapbox.mapboxsdk.offline.OfflineRegion import com.mapbox.mapboxsdk.testapp.R -import kotlinx.android.synthetic.main.activity_location_layer_fragment.* class LocationFragmentActivity : AppCompatActivity() { private lateinit var permissionsManager: PermissionsManager @@ -27,68 +24,56 @@ class LocationFragmentActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_location_layer_fragment) - - fab.setOnClickListener { - val fragment = fragmentManager.findFragmentByTag(EmptyFragment.TAG) - if (fragment == null) { - fragmentManager - .beginTransaction() - .replace(R.id.container, EmptyFragment.newInstance(), EmptyFragment.TAG) - .addToBackStack("transaction2") - .commit() - } else { - this.onBackPressed() - } - } supportActionBar?.setDisplayHomeAsUpEnabled(true) - if (PermissionsManager.areLocationPermissionsGranted(this)) { - if (savedInstanceState == null) { - fragmentManager - .beginTransaction() - .replace(R.id.container, LocationFragment.newInstance(), LocationFragment.TAG) - .commit() - } - } else { - permissionsManager = PermissionsManager(object : PermissionsListener { - override fun onExplanationNeeded(permissionsToExplain: MutableList<String>?) { - Toast.makeText(this@LocationFragmentActivity, "You need to accept location permissions.", - Toast.LENGTH_SHORT).show() - } + if (savedInstanceState == null) { + if (PermissionsManager.areLocationPermissionsGranted(this)) { + addLocationFragment() + } else { + permissionsManager = PermissionsManager(object : PermissionsListener { + override fun onExplanationNeeded(permissionsToExplain: MutableList<String>?) { + Toast.makeText(this@LocationFragmentActivity, "You need to accept location permissions.", + Toast.LENGTH_SHORT).show() + } - override fun onPermissionResult(granted: Boolean) { - if (granted) { - if (savedInstanceState == null) { - fragmentManager - .beginTransaction() - .replace(R.id.container, LocationFragment.newInstance(), LocationFragment.TAG) - .commit() + override fun onPermissionResult(granted: Boolean) { + if (granted) { + addLocationFragment() + } else { + finish() } - } else { - finish() } - } - }) - permissionsManager.requestLocationPermissions(this) + }) + permissionsManager.requestLocationPermissions(this) + } } } + private fun addLocationFragment() { + fragmentManager + .beginTransaction() + .replace(R.id.container, LocationFragment.newInstance(), LocationFragment.FRAGMENT_TAG) + .commit() + } + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults) } - class LocationFragment : Fragment(), LocationEngineListener { + class LocationFragment : Fragment() { companion object { - const val TAG = "LFragment" + const val FRAGMENT_TAG = "LFragment" + private const val LOG_TAG = "Mbgl-LocationFragment" + private const val TEST_DB_FILE_PATH = "/storage/emulated/0/Download/local_db.db" + private const val TEST_STYLE_FILE_PATH = "file:///storage/emulated/0/Download/local_style.json" + fun newInstance(): LocationFragment { return LocationFragment() } } private lateinit var mapView: MapView - private lateinit var mapboxMap: MapboxMap - private var component: LocationComponent? = null override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { mapView = MapView(inflater.context) @@ -98,24 +83,42 @@ class LocationFragmentActivity : AppCompatActivity() { @SuppressLint("MissingPermission") override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { mapView.onCreate(savedInstanceState) - mapView.getMapAsync { - mapboxMap = it - component = mapboxMap.locationComponent - component?.activateLocationComponent(activity) - component?.isLocationComponentEnabled = true - component?.locationEngine?.addLocationEngineListener(this) - } - } - override fun onLocationChanged(location: Location?) { - if (location != null) { - mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(location), 12.0)) - component?.locationEngine?.removeLocationEngineListener(this) + mapView.setStyleUrl(TEST_STYLE_FILE_PATH) + + mapView.getMapAsync { mapboxMap -> + mapboxMap.locationComponent.activateLocationComponent(activity) + mapboxMap.locationComponent.isLocationComponentEnabled = true + + mapboxMap.addOnCameraMoveListener { + Logger.d(LOG_TAG, String.format("camera: %s", mapboxMap.cameraPosition)) + } + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(48.11, 11.5), 9.0)) } + + mergeDb() } - override fun onConnected() { - // no impl + private fun mergeDb() { + OfflineManager.getInstance(activity).mergeOfflineRegions(TEST_DB_FILE_PATH, + object : OfflineManager.MergeOfflineRegionsCallback { + override fun onMerge(offlineRegions: Array<OfflineRegion>) { + mapView.setStyleUrl(TEST_STYLE_FILE_PATH) + Toast.makeText( + activity, + String.format("Merged %d regions.", offlineRegions.size), + Toast.LENGTH_LONG).show() + Logger.e(LOG_TAG, "success") + } + + override fun onError(error: String) { + Toast.makeText( + activity, + String.format("Offline DB merge error."), + Toast.LENGTH_LONG).show() + Logger.e(LOG_TAG, error) + } + }) } override fun onStart() { @@ -151,22 +154,6 @@ class LocationFragmentActivity : AppCompatActivity() { override fun onDestroyView() { super.onDestroyView() mapView.onDestroy() - component?.locationEngine?.removeLocationEngineListener(this) - } - } - - class EmptyFragment : Fragment() { - companion object { - const val TAG = "EmptyFragment" - fun newInstance(): EmptyFragment { - return EmptyFragment() - } - } - - override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View { - val textView = TextView(inflater?.context) - textView.text = "This is an empty Fragment" - return textView } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_fragment.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_fragment.xml index 3c1436a1a8..4a53f50282 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_fragment.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_fragment.xml @@ -1,24 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" - android:layout_height="match_parent"/> - - <android.support.design.widget.FloatingActionButton - android:id="@+id/fab" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="bottom|end" - android:layout_margin="@dimen/fab_margin" - android:tint="@android:color/white" - app:backgroundTint="@color/accent" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintRight_toRightOf="parent" - app:srcCompat="@drawable/ic_layers" /> + android:layout_height="match_parent" /> </android.support.constraint.ConstraintLayout>
\ No newline at end of file |