diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-02-19 13:23:49 +0100 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2019-03-13 18:28:04 +0100 |
commit | b7702995fc60bfe9d5c3ddcff8b38deca97d2ced (patch) | |
tree | 44de8cf84856f5d71cbb792de3d7f89941035fa7 /platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com | |
parent | 3f7b70fdb0e40d0cbbaea17505878c72491e3cd2 (diff) | |
download | qtlocation-mapboxgl-b7702995fc60bfe9d5c3ddcff8b38deca97d2ced.tar.gz |
[android] when changing the resource path, recreate database instead of the whole FileSource
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt | 55 |
1 files changed, 36 insertions, 19 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 2c429e829d..75ea9f6970 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 @@ -12,27 +12,36 @@ import android.widget.AdapterView import android.widget.BaseAdapter import android.widget.TextView import android.widget.Toast +import com.mapbox.mapboxsdk.log.Logger +import com.mapbox.mapboxsdk.offline.OfflineManager +import com.mapbox.mapboxsdk.offline.OfflineRegion import com.mapbox.mapboxsdk.storage.FileSource import com.mapbox.mapboxsdk.testapp.R import kotlinx.android.synthetic.main.activity_change_resources_cache_path.* import java.io.File class ChangeResourcesCachePathActivity : AppCompatActivity(), - AdapterView.OnItemClickListener, - FileSource.SetResourcesCachePathCallback { + AdapterView.OnItemClickListener, + FileSource.ResourcesCachePathChangeCallback { - lateinit var adapter: PathAdapter + companion object { + private const val TAG = "Mbgl-ChangeResourcesCachePathActivity" + } + + private lateinit var adapter: PathAdapter + + private lateinit var offlineManager: OfflineManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_change_resources_cache_path) - Thread(Runnable { - adapter = PathAdapter(this, obtainFilesPaths(this)) - listView.adapter = adapter - listView.emptyView = empty - listView.onItemClickListener = this - }).start() + adapter = PathAdapter(this, obtainExternalFilesPaths()) + listView.adapter = adapter + listView.emptyView = empty + listView.onItemClickListener = this + + offlineManager = OfflineManager.getInstance(this) } override fun onStart() { @@ -55,23 +64,33 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(), override fun onSuccess(path: String?) { listView.onItemClickListener = this Toast.makeText(this, "New path: $path", Toast.LENGTH_LONG).show() + + offlineManager.listOfflineRegions(object : OfflineManager.ListOfflineRegionsCallback { + override fun onList(offlineRegions: Array<out OfflineRegion>?) { + Logger.i(TAG, "Number of saved offline regions in the new path: ${offlineRegions?.size.toString()}") + } + + override fun onError(error: String?) { + Logger.e(TAG, error) + } + }) } - private fun obtainFilesPaths(context: Context): List<String> { + private fun Context.obtainExternalFilesPaths(): List<String> { val paths = ArrayList<String>() - paths.add(context.filesDir.absolutePath) + paths.add(this.filesDir.absolutePath) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - paths.addAll(obtainExternalFilesPathsKitKat(context)) + paths.addAll(obtainExternalFilesPathsKitKat()) } else { - paths.addAll(obtainExternalFilesPathsLegacy(context)) + paths.addAll(obtainExternalFilesPathsLegacy()) } paths.add("${File.separator}invalid${File.separator}cache${File.separator}path") return paths } - private fun obtainExternalFilesPathsLegacy(context: Context): List<String> { + private fun Context.obtainExternalFilesPathsLegacy(): List<String> { val postFix = - "${File.separator}Android${File.separator}data${File.separator}${context.packageName}${File.separator}files" + "${File.separator}Android${File.separator}data${File.separator}${this.packageName}${File.separator}files" val paths = ArrayList<String>() val externalStorage = System.getenv("EXTERNAL_STORAGE") val secondaryStorage = System.getenv("SECONDARY_STORAGE") @@ -88,9 +107,9 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(), } @TargetApi(Build.VERSION_CODES.KITKAT) - private fun obtainExternalFilesPathsKitKat(context: Context): List<String> { + private fun Context.obtainExternalFilesPathsKitKat(): List<String> { val paths = ArrayList<String>() - val extDirs = context.getExternalFilesDirs(null) + val extDirs = this.getExternalFilesDirs(null) for (dir in extDirs) { if (dir != null) { paths.add(dir.absolutePath) @@ -105,12 +124,10 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(), return paths[position] } - override fun getItemId(position: Int): Long { return position.toLong() } - override fun getCount(): Int { return paths.size } |