summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/main
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-05-09 15:06:43 +0200
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2019-05-10 14:15:06 +0200
commit0f599ce8048b3428ebff8f59c32f4908d44fabc9 (patch)
treea7837456114561a4f80590309a7e0877c9e7c16c /platform/android/MapboxGLAndroidSDKTestApp/src/main
parente0f32000df56d3d04ace29e5089b9b65db6a7f91 (diff)
downloadqtlocation-mapboxgl-0f599ce8048b3428ebff8f59c32f4908d44fabc9.tar.gz
[android] keep strong callback reference and use application context during cache path change
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt28
1 files changed, 25 insertions, 3 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt
index 75ea9f6970..74b5bde17d 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt
@@ -32,6 +32,8 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(),
private lateinit var offlineManager: OfflineManager
+ private val callback = PathChangeCallback(this)
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_change_resources_cache_path)
@@ -50,18 +52,23 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(),
Toast.makeText(this, "Current path: $path", Toast.LENGTH_LONG).show()
}
+ override fun onDestroy() {
+ super.onDestroy()
+ callback.onActivityDestroy()
+ }
+
override fun onItemClick(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
listView.onItemClickListener = null
val path: String = adapter.getItem(position) as String
- FileSource.setResourcesCachePath(this, path, this)
+ FileSource.setResourcesCachePath(path, callback)
}
- override fun onError(message: String?) {
+ override fun onError(message: String) {
listView.onItemClickListener = this
Toast.makeText(this, "Error: $message", Toast.LENGTH_LONG).show()
}
- override fun onSuccess(path: String?) {
+ override fun onSuccess(path: String) {
listView.onItemClickListener = this
Toast.makeText(this, "New path: $path", Toast.LENGTH_LONG).show()
@@ -118,6 +125,21 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(),
return paths
}
+ private class PathChangeCallback(private var activity: ChangeResourcesCachePathActivity?) : FileSource.ResourcesCachePathChangeCallback {
+
+ override fun onSuccess(path: String) {
+ activity?.onSuccess(path)
+ }
+
+ override fun onError(message: String) {
+ activity?.onError(message)
+ }
+
+ fun onActivityDestroy() {
+ activity = null
+ }
+ }
+
class PathAdapter(private val context: Context, private val paths: List<String>) : BaseAdapter() {
override fun getItem(position: Int): Any {