mirror of
https://github.com/SimpleMobileTools/Simple-Keyboard.git
synced 2025-06-05 21:49:26 +02:00
allow editing clips
This commit is contained in:
@ -64,7 +64,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.github.SimpleMobileTools:Simple-Commons:8921e5c41c'
|
implementation 'com.github.SimpleMobileTools:Simple-Commons:7ed441bded'
|
||||||
|
|
||||||
kapt 'androidx.room:room-compiler:2.3.0'
|
kapt 'androidx.room:room-compiler:2.3.0'
|
||||||
implementation 'androidx.room:room-runtime: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.commons.interfaces.RefreshRecyclerViewListener
|
||||||
import com.simplemobiletools.keyboard.R
|
import com.simplemobiletools.keyboard.R
|
||||||
import com.simplemobiletools.keyboard.adapters.ClipsActivityAdapter
|
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.extensions.clipsDB
|
||||||
import com.simplemobiletools.keyboard.models.Clip
|
import com.simplemobiletools.keyboard.models.Clip
|
||||||
import kotlinx.android.synthetic.main.activity_manage_clipboard_items.*
|
import kotlinx.android.synthetic.main.activity_manage_clipboard_items.*
|
||||||
@ -29,7 +29,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
|
|||||||
underlineText()
|
underlineText()
|
||||||
setTextColor(getAdjustedPrimaryColor())
|
setTextColor(getAdjustedPrimaryColor())
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
addNewClip()
|
addOrEditClip()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
|
|||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.add_clipboard_item -> addNewClip()
|
R.id.add_clipboard_item -> addOrEditClip()
|
||||||
else -> return super.onOptionsItemSelected(item)
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,6 +54,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
|
|||||||
val clips = clipsDB.getClips().toMutableList() as ArrayList<Clip>
|
val clips = clipsDB.getClips().toMutableList() as ArrayList<Clip>
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
ClipsActivityAdapter(this, clips, clipboard_items_list, this) {
|
ClipsActivityAdapter(this, clips, clipboard_items_list, this) {
|
||||||
|
addOrEditClip(it as Clip)
|
||||||
}.apply {
|
}.apply {
|
||||||
clipboard_items_list.adapter = this
|
clipboard_items_list.adapter = this
|
||||||
}
|
}
|
||||||
@ -65,8 +66,8 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addNewClip() {
|
private fun addOrEditClip(clip: Clip? = null) {
|
||||||
AddClipDialog(this) {
|
AddOrEditClipDialog(this, clip) {
|
||||||
updateClips()
|
updateClips()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import com.simplemobiletools.commons.interfaces.StartReorderDragListener
|
|||||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||||
import com.simplemobiletools.commons.views.bottomactionmenu.BottomActionMenuView
|
import com.simplemobiletools.commons.views.bottomactionmenu.BottomActionMenuView
|
||||||
import com.simplemobiletools.keyboard.R
|
import com.simplemobiletools.keyboard.R
|
||||||
|
import com.simplemobiletools.keyboard.dialogs.AddOrEditClipDialog
|
||||||
import com.simplemobiletools.keyboard.extensions.clipsDB
|
import com.simplemobiletools.keyboard.extensions.clipsDB
|
||||||
import com.simplemobiletools.keyboard.models.Clip
|
import com.simplemobiletools.keyboard.models.Clip
|
||||||
import kotlinx.android.synthetic.main.item_clip_in_activity.view.*
|
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 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) {
|
override fun actionItemPressed(id: Int) {
|
||||||
if (selectedKeys.isEmpty()) {
|
if (selectedKeys.isEmpty()) {
|
||||||
@ -50,6 +53,7 @@ class ClipsActivityAdapter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
when (id) {
|
when (id) {
|
||||||
|
R.id.cab_edit -> editClip()
|
||||||
R.id.cab_delete -> askConfirmDelete()
|
R.id.cab_delete -> askConfirmDelete()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,6 +80,14 @@ class ClipsActivityAdapter(
|
|||||||
|
|
||||||
override fun getItemCount() = items.size
|
override fun getItemCount() = items.size
|
||||||
|
|
||||||
|
private fun editClip() {
|
||||||
|
val selectedClip = getSelectedItems().firstOrNull() ?: return
|
||||||
|
AddOrEditClipDialog(activity, selectedClip) {
|
||||||
|
listener.refreshItems()
|
||||||
|
finishActMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun askConfirmDelete() {
|
private fun askConfirmDelete() {
|
||||||
ConfirmationDialog(activity, "", R.string.proceed_with_deletion, R.string.yes, R.string.cancel) {
|
ConfirmationDialog(activity, "", R.string.proceed_with_deletion, R.string.yes, R.string.cancel) {
|
||||||
deleteSelection()
|
deleteSelection()
|
||||||
|
@ -10,11 +10,15 @@ import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
|||||||
import com.simplemobiletools.keyboard.R
|
import com.simplemobiletools.keyboard.R
|
||||||
import com.simplemobiletools.keyboard.extensions.clipsDB
|
import com.simplemobiletools.keyboard.extensions.clipsDB
|
||||||
import com.simplemobiletools.keyboard.models.Clip
|
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 {
|
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)
|
AlertDialog.Builder(activity)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
@ -30,6 +34,10 @@ class AddClipDialog(val activity: BaseSimpleActivity, val callback: () -> Unit)
|
|||||||
}
|
}
|
||||||
|
|
||||||
val clip = Clip(null, clipValue)
|
val clip = Clip(null, clipValue)
|
||||||
|
if (originalClip != null) {
|
||||||
|
clip.id = originalClip.id
|
||||||
|
}
|
||||||
|
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
activity.clipsDB.insertOrUpdate(clip)
|
activity.clipsDB.insertOrUpdate(clip)
|
||||||
activity.runOnUiThread {
|
activity.runOnUiThread {
|
@ -1,6 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
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
|
<item
|
||||||
android:id="@+id/cab_delete"
|
android:id="@+id/cab_delete"
|
||||||
android:icon="@drawable/ic_delete_vector"
|
android:icon="@drawable/ic_delete_vector"
|
||||||
|
Reference in New Issue
Block a user