diff options
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 |
commit | 0f599ce8048b3428ebff8f59c32f4908d44fabc9 (patch) | |
tree | a7837456114561a4f80590309a7e0877c9e7c16c /platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk | |
parent | e0f32000df56d3d04ace29e5089b9b65db6a7f91 (diff) | |
download | qtlocation-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/java/com/mapbox/mapboxsdk')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt | 28 |
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 { |