From 11ea26a22e4a3d6ab167cb195115823ed2dd5cc8 Mon Sep 17 00:00:00 2001 From: PWRxPSYCHO Date: Wed, 19 Oct 2022 11:13:37 -0400 Subject: [PATCH] Updated UI for cache deletion --- .../com/geeksville/mesh/ui/MapFragment.kt | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt index db27d280..6f0daa98 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt @@ -2,6 +2,7 @@ package com.geeksville.mesh.ui import android.app.AlertDialog import android.content.Context +import android.content.DialogInterface import android.content.SharedPreferences import android.graphics.Canvas import android.graphics.Color @@ -197,25 +198,39 @@ class MapFragment : ScreenFragment("Map"), Logging, View.OnClickListener { cache = SqlTileWriterExt() val builder = AlertDialog.Builder(context) builder.setTitle("Tile Source") - val arrayAdapter: ArrayAdapter = - ArrayAdapter(context!!, android.R.layout.select_dialog_singlechoice) val sources = cache!!.sources + val sourceList = mutableListOf() for (i in sources.indices) { - arrayAdapter.add(sources[i].source) + sourceList.add(sources[i].source as String) } - builder.setAdapter(arrayAdapter) { dialog, which -> - val item = arrayAdapter.getItem(which) - val b = cache!!.purgeCache(item) - if (b) Toast.makeText( - context, - "SQL Cache purged", - Toast.LENGTH_SHORT - ) - .show() else Toast.makeText( - context, - "SQL Cache purge failed, see logcat for details", - Toast.LENGTH_LONG - ).show() + val selected: BooleanArray? = null + val selectedList = mutableListOf() + builder.setMultiChoiceItems( + sourceList.toTypedArray(), + selected + ) { dialogInterface, i, b -> + if (b) { + selectedList.add(i) + } else { + selectedList.remove(i) + } + + } + builder.setPositiveButton("Clear") { dialogInterface, i -> + for (x in selectedList) { + val item = sources[x] + val b = cache!!.purgeCache(item.source) + if (b) Toast.makeText( + context, + "SQL Cache purged for ${item.source}", + Toast.LENGTH_SHORT + ) + .show() else Toast.makeText( + context, + "SQL Cache purge failed, see logcat for details", + Toast.LENGTH_LONG + ).show() + } } builder.setNegativeButton( "Cancel"