diff --git a/app/src/main/java/net/helcel/fidelity/activity/fragment/Launcher.kt b/app/src/main/java/net/helcel/fidelity/activity/fragment/Launcher.kt index e02be35..89e793d 100644 --- a/app/src/main/java/net/helcel/fidelity/activity/fragment/Launcher.kt +++ b/app/src/main/java/net/helcel/fidelity/activity/fragment/Launcher.kt @@ -6,7 +6,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import net.helcel.fidelity.R import net.helcel.fidelity.activity.adapter.FidelityListAdapter import net.helcel.fidelity.databinding.FragLauncherBinding @@ -59,6 +61,8 @@ class Launcher : Fragment() { startViewEntry(it.first, it.second, it.third) } binding.fidelityList.adapter = fidelityListAdapter + + recyclerSlideHelper().attachToRecyclerView(binding.fidelityList) return binding.root } @@ -102,4 +106,22 @@ class Launcher : Fragment() { viewEntryFragment.arguments = KeepassWrapper.bundleCreate(title, code, fmt) startFragment(viewEntryFragment) } + + private fun recyclerSlideHelper(): ItemTouchHelper { + return ItemTouchHelper(object : ItemTouchHelper.SimpleCallback( + 0, ItemTouchHelper.LEFT + ) { + override fun onMove( + recyclerView: RecyclerView, + viewHolder: RecyclerView.ViewHolder, + target: RecyclerView.ViewHolder + ): Boolean = false + + override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) { + val pos = viewHolder.adapterPosition + CacheManager.rmFidelity(pos) + fidelityListAdapter.notifyItemRemoved(pos) + } + }) + } } \ No newline at end of file diff --git a/app/src/main/java/net/helcel/fidelity/tools/CacheManager.kt b/app/src/main/java/net/helcel/fidelity/tools/CacheManager.kt index ccbe2c6..790084c 100644 --- a/app/src/main/java/net/helcel/fidelity/tools/CacheManager.kt +++ b/app/src/main/java/net/helcel/fidelity/tools/CacheManager.kt @@ -21,6 +21,11 @@ object CacheManager { saveFidelity() } + fun rmFidelity(idx: Int) { + data.removeAt(idx) + saveFidelity() + } + private fun saveFidelity() { val editor = pref?.edit() val gson = Gson() diff --git a/app/src/main/java/net/helcel/fidelity/tools/KeepassWrapper.kt b/app/src/main/java/net/helcel/fidelity/tools/KeepassWrapper.kt index 8d93062..08f7b9d 100644 --- a/app/src/main/java/net/helcel/fidelity/tools/KeepassWrapper.kt +++ b/app/src/main/java/net/helcel/fidelity/tools/KeepassWrapper.kt @@ -31,10 +31,8 @@ object KeepassWrapper { fields[CODE_FIELD] = code fields[FORMAT_FIELD] = format fields[PROTECT_CODE_FIELD] = protectCode.toString() + protected.add(CODE_FIELD) - if (protectCode) { - protected.add(CODE_FIELD) - } return Pair(fields, protected) }