allow editing clips

This commit is contained in:
tibbi 2022-01-28 21:34:24 +01:00
parent a793c066b2
commit f18f20e3fb
6 changed files with 36 additions and 10 deletions

View File

@ -64,7 +64,7 @@ android {
}
dependencies {
implementation 'com.github.SimpleMobileTools:Simple-Commons:8921e5c41c'
implementation 'com.github.SimpleMobileTools:Simple-Commons:7ed441bded'
kapt 'androidx.room:room-compiler:2.3.0'
implementation 'androidx.room:room-runtime:2.3.0'

View File

@ -11,7 +11,7 @@ import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener
import com.simplemobiletools.keyboard.R
import com.simplemobiletools.keyboard.adapters.ClipsActivityAdapter
import com.simplemobiletools.keyboard.dialogs.AddClipDialog
import com.simplemobiletools.keyboard.dialogs.AddOrEditClipDialog
import com.simplemobiletools.keyboard.extensions.clipsDB
import com.simplemobiletools.keyboard.models.Clip
import kotlinx.android.synthetic.main.activity_manage_clipboard_items.*
@ -29,7 +29,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
underlineText()
setTextColor(getAdjustedPrimaryColor())
setOnClickListener {
addNewClip()
addOrEditClip()
}
}
}
@ -42,7 +42,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.add_clipboard_item -> addNewClip()
R.id.add_clipboard_item -> addOrEditClip()
else -> return super.onOptionsItemSelected(item)
}
@ -54,6 +54,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
val clips = clipsDB.getClips().toMutableList() as ArrayList<Clip>
runOnUiThread {
ClipsActivityAdapter(this, clips, clipboard_items_list, this) {
addOrEditClip(it as Clip)
}.apply {
clipboard_items_list.adapter = this
}
@ -65,8 +66,8 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
}
}
private fun addNewClip() {
AddClipDialog(this) {
private fun addOrEditClip(clip: Clip? = null) {
AddOrEditClipDialog(this, clip) {
updateClips()
}
}

View File

@ -15,6 +15,7 @@ import com.simplemobiletools.commons.interfaces.StartReorderDragListener
import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.commons.views.bottomactionmenu.BottomActionMenuView
import com.simplemobiletools.keyboard.R
import com.simplemobiletools.keyboard.dialogs.AddOrEditClipDialog
import com.simplemobiletools.keyboard.extensions.clipsDB
import com.simplemobiletools.keyboard.models.Clip
import kotlinx.android.synthetic.main.item_clip_in_activity.view.*
@ -42,7 +43,9 @@ class ClipsActivityAdapter(
override fun getActionMenuId() = R.menu.cab_clips
override fun onBottomActionMenuCreated(view: BottomActionMenuView) {}
override fun onBottomActionMenuCreated(view: BottomActionMenuView) {
view.toggleItemVisibility(R.id.cab_edit, isOneItemSelected())
}
override fun actionItemPressed(id: Int) {
if (selectedKeys.isEmpty()) {
@ -50,6 +53,7 @@ class ClipsActivityAdapter(
}
when (id) {
R.id.cab_edit -> editClip()
R.id.cab_delete -> askConfirmDelete()
}
}
@ -76,6 +80,14 @@ class ClipsActivityAdapter(
override fun getItemCount() = items.size
private fun editClip() {
val selectedClip = getSelectedItems().firstOrNull() ?: return
AddOrEditClipDialog(activity, selectedClip) {
listener.refreshItems()
finishActMode()
}
}
private fun askConfirmDelete() {
ConfirmationDialog(activity, "", R.string.proceed_with_deletion, R.string.yes, R.string.cancel) {
deleteSelection()

View File

@ -10,11 +10,15 @@ import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.keyboard.R
import com.simplemobiletools.keyboard.extensions.clipsDB
import com.simplemobiletools.keyboard.models.Clip
import kotlinx.android.synthetic.main.dialog_add_clip.view.*
import kotlinx.android.synthetic.main.dialog_add_or_edit_clip.view.*
class AddClipDialog(val activity: BaseSimpleActivity, val callback: () -> Unit) {
class AddOrEditClipDialog(val activity: BaseSimpleActivity, val originalClip: Clip?, val callback: () -> Unit) {
init {
val view = activity.layoutInflater.inflate(R.layout.dialog_add_clip, null)
val view = activity.layoutInflater.inflate(R.layout.dialog_add_or_edit_clip, null).apply {
if (originalClip != null) {
add_clip_value.setText(originalClip.value)
}
}
AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok, null)
@ -30,6 +34,10 @@ class AddClipDialog(val activity: BaseSimpleActivity, val callback: () -> Unit)
}
val clip = Clip(null, clipValue)
if (originalClip != null) {
clip.id = originalClip.id
}
ensureBackgroundThread {
activity.clipsDB.insertOrUpdate(clip)
activity.runOnUiThread {

View File

@ -1,6 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/cab_edit"
android:icon="@drawable/ic_edit_vector"
android:title="@string/edit"
app:showAsAction="ifRoom" />
<item
android:id="@+id/cab_delete"
android:icon="@drawable/ic_delete_vector"