summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit4bc5595647f709b928bfa23c166261374a209be4 (patch)
tree519c6a711275ce0edf88c176b117433006c444e6
parent52cce7925d32181a20a79978479c5552fa6ae810 (diff)
downloadqtlocation-mapboxgl-4bc5595647f709b928bfa23c166261374a209be4.tar.gz
[android] local db testupstream/lp-local-db-test
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt143
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_fragment.xml15
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