summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/storage/CacheManagementActivity.kt
blob: 746ad696c971ab8a6c783e31e72563c9694c362f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.mapbox.mapboxsdk.testapp.activity.storage

import android.os.Bundle
import android.os.Looper
import com.google.android.material.snackbar.Snackbar
import androidx.appcompat.app.AppCompatActivity
import com.mapbox.mapboxsdk.offline.OfflineManager
import com.mapbox.mapboxsdk.testapp.R
import kotlinx.android.synthetic.main.activity_cache_management.*

/**
 * Test activity showcasing the cache management APIs
 */
class CacheManagementActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_cache_management)

    val fileSource = OfflineManager.getInstance(this)
    resetDatabaseButton.setOnClickListener {
      fileSource.resetDatabase(object : OfflineManager.FileSourceCallback {
        override fun onSuccess() {
          showSnackbar("Reset database success")
        }

        override fun onError(message: String) {
          showSnackbar("Reset database fail: $message")
        }
      })
    }

    invalidateAmbientCacheButton.setOnClickListener {
      fileSource.invalidateAmbientCache(object : OfflineManager.FileSourceCallback {
        override fun onSuccess() {
          showSnackbar("Invalidate ambient cache success")
        }

        override fun onError(message: String) {
          showSnackbar("Invalidate ambient cache fail: $message")
        }
      })
    }

    clearAmbientCacheButton.setOnClickListener {
      fileSource.clearAmbientCache(object : OfflineManager.FileSourceCallback {
        override fun onSuccess() {
          showSnackbar("Clear ambient cache success")
        }

        override fun onError(message: String) {
          showSnackbar("Clear ambient cache fail: $message")
        }
      })
    }

    setMaximumAmbientCacheSizeButton.setOnClickListener {
      fileSource.setMaximumAmbientCacheSize(5000000, object : OfflineManager.FileSourceCallback {
        override fun onSuccess() {
          showSnackbar("Set maximum ambient cache size success")
        }

        override fun onError(message: String) {
          showSnackbar("Set maximum ambient cache size fail: $message")
        }
      })
    }
  }

  fun showSnackbar(message: String) {
    // validate that all callbacks occur on main thread
    assert(Looper.myLooper() == Looper.getMainLooper())

    // show snackbar
    com.google.android.material.snackbar.Snackbar.make(container, message, com.google.android.material.snackbar.Snackbar.LENGTH_SHORT).show()
  }
}