[android] - callbacks as fields to MergeOfflineAcitivity
This commit is contained in:
@@ -4,8 +4,8 @@ import android.os.Bundle
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.widget.Toast
|
||||
import com.mapbox.mapboxsdk.Mapbox
|
||||
import com.mapbox.mapboxsdk.maps.Style
|
||||
import com.mapbox.mapboxsdk.log.Logger
|
||||
import com.mapbox.mapboxsdk.maps.Style
|
||||
import com.mapbox.mapboxsdk.offline.OfflineManager
|
||||
import com.mapbox.mapboxsdk.offline.OfflineRegion
|
||||
import com.mapbox.mapboxsdk.storage.FileSource
|
||||
@@ -20,6 +20,43 @@ class MergeOfflineRegionsActivity : AppCompatActivity() {
|
||||
private const val TEST_STYLE = Style.SATELLITE
|
||||
}
|
||||
|
||||
private val onFileCopiedListener = object : FileUtils.OnFileCopiedFromAssetsListener {
|
||||
override fun onFileCopiedFromAssets() {
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("OnFileCOpied."),
|
||||
Toast.LENGTH_LONG).show()
|
||||
mergeDb()
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("Error copying DB file."),
|
||||
Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
private val onRegionMergedListener = object : OfflineManager.MergeOfflineRegionsCallback {
|
||||
override fun onMerge(offlineRegions: Array<OfflineRegion>) {
|
||||
mapView.getMapAsync {
|
||||
it.setStyle(Style.Builder().fromUrl(TEST_STYLE))
|
||||
}
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("Merged %d regions.", offlineRegions.size),
|
||||
Toast.LENGTH_LONG).show()
|
||||
}
|
||||
|
||||
override fun onError(error: String) {
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("Offline DB merge error."),
|
||||
Toast.LENGTH_LONG).show()
|
||||
Logger.e(LOG_TAG, error)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_merge_offline_regions)
|
||||
@@ -39,42 +76,13 @@ class MergeOfflineRegionsActivity : AppCompatActivity() {
|
||||
|
||||
private fun copyAsset() {
|
||||
// copy db asset to internal memory
|
||||
FileUtils.CopyFileFromAssetsTask(this, object : FileUtils.OnFileCopiedFromAssetsListener {
|
||||
override fun onFileCopiedFromAssets() {
|
||||
mergeDb()
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("Error copying DB file."),
|
||||
Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}).execute(TEST_DB_FILE_NAME, FileSource.getResourcesCachePath(this))
|
||||
FileUtils.CopyFileFromAssetsTask(this, onFileCopiedListener).execute(TEST_DB_FILE_NAME, FileSource.getResourcesCachePath(this))
|
||||
}
|
||||
|
||||
private fun mergeDb() {
|
||||
OfflineManager.getInstance(this).mergeOfflineRegions(
|
||||
FileSource.getResourcesCachePath(this) + "/" + TEST_DB_FILE_NAME,
|
||||
object : OfflineManager.MergeOfflineRegionsCallback {
|
||||
override fun onMerge(offlineRegions: Array<OfflineRegion>) {
|
||||
mapView.getMapAsync{
|
||||
it.setStyle(Style.Builder().fromUrl(TEST_STYLE))
|
||||
}
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("Merged %d regions.", offlineRegions.size),
|
||||
Toast.LENGTH_LONG).show()
|
||||
}
|
||||
|
||||
override fun onError(error: String) {
|
||||
Toast.makeText(
|
||||
this@MergeOfflineRegionsActivity,
|
||||
String.format("Offline DB merge error."),
|
||||
Toast.LENGTH_LONG).show()
|
||||
Logger.e(LOG_TAG, error)
|
||||
}
|
||||
})
|
||||
FileSource.getResourcesCachePath(this) + "/" + TEST_DB_FILE_NAME, onRegionMergedListener
|
||||
)
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
|
||||
@@ -19,7 +19,7 @@ class FileUtils {
|
||||
override fun doInBackground(vararg strings: String): Boolean? {
|
||||
val assetName = strings[0]
|
||||
val destinationPath = strings[1]
|
||||
|
||||
|
||||
contextWeakReference.get()?.let {
|
||||
try {
|
||||
copyAsset(it, assetName, destinationPath)
|
||||
|
||||
Reference in New Issue
Block a user