mirror of
https://github.com/SimpleMobileTools/Simple-Keyboard.git
synced 2025-02-16 20:00:36 +01:00
allow editing clips
This commit is contained in:
parent
a793c066b2
commit
f18f20e3fb
@ -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'
|
||||
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
@ -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()
|
||||
|
@ -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 {
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user