mirror of
https://github.com/SimpleMobileTools/Simple-Keyboard.git
synced 2025-02-16 20:00:36 +01:00
make sure clips have unique values
This commit is contained in:
parent
89cf0ea426
commit
e38cf617b7
@ -20,6 +20,7 @@ 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.helpers.ClipsHelper
|
||||
import com.simplemobiletools.keyboard.models.Clip
|
||||
import kotlinx.android.synthetic.main.item_clip_in_activity.view.*
|
||||
import java.util.*
|
||||
@ -80,7 +81,7 @@ class ClipsActivityAdapter(
|
||||
activity.clipsDB.deleteAll()
|
||||
items.forEach { clip ->
|
||||
clip.id = null
|
||||
clip.id = activity.clipsDB.insertOrUpdate(clip)
|
||||
clip.id = ClipsHelper(activity).insertClip(clip)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@ import com.simplemobiletools.keyboard.R
|
||||
import com.simplemobiletools.keyboard.extensions.clipsDB
|
||||
import com.simplemobiletools.keyboard.extensions.config
|
||||
import com.simplemobiletools.keyboard.extensions.getCurrentClip
|
||||
import com.simplemobiletools.keyboard.helpers.ClipsHelper
|
||||
import com.simplemobiletools.keyboard.helpers.ITEM_CLIP
|
||||
import com.simplemobiletools.keyboard.helpers.ITEM_SECTION_LABEL
|
||||
import com.simplemobiletools.keyboard.interfaces.RefreshClipsListener
|
||||
@ -99,7 +100,7 @@ class ClipsKeyboardAdapter(
|
||||
ensureBackgroundThread {
|
||||
val currentClip = context.getCurrentClip() ?: return@ensureBackgroundThread
|
||||
val clip = Clip(null, currentClip)
|
||||
context.clipsDB.insertOrUpdate(clip)
|
||||
ClipsHelper(context).insertClip(clip)
|
||||
refreshClipsListener.refreshClips()
|
||||
context.toast(R.string.text_pinned)
|
||||
if (context.config.vibrateOnKeypress) {
|
||||
|
@ -9,6 +9,7 @@ import com.simplemobiletools.commons.extensions.value
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
import com.simplemobiletools.keyboard.R
|
||||
import com.simplemobiletools.keyboard.extensions.clipsDB
|
||||
import com.simplemobiletools.keyboard.helpers.ClipsHelper
|
||||
import com.simplemobiletools.keyboard.models.Clip
|
||||
import kotlinx.android.synthetic.main.dialog_add_or_edit_clip.view.*
|
||||
|
||||
@ -39,7 +40,7 @@ class AddOrEditClipDialog(val activity: BaseSimpleActivity, val originalClip: Cl
|
||||
}
|
||||
|
||||
ensureBackgroundThread {
|
||||
activity.clipsDB.insertOrUpdate(clip)
|
||||
ClipsHelper(activity).insertClip(clip)
|
||||
activity.runOnUiThread {
|
||||
callback()
|
||||
dismiss()
|
||||
|
@ -0,0 +1,18 @@
|
||||
package com.simplemobiletools.keyboard.helpers
|
||||
|
||||
import android.content.Context
|
||||
import com.simplemobiletools.keyboard.extensions.clipsDB
|
||||
import com.simplemobiletools.keyboard.models.Clip
|
||||
|
||||
class ClipsHelper(val context: Context) {
|
||||
|
||||
// make sure clips have unique values
|
||||
fun insertClip(clip: Clip): Long {
|
||||
clip.value = clip.value.trim()
|
||||
return if (context.clipsDB.getClipWithValue(clip.value) == null) {
|
||||
context.clipsDB.insertOrUpdate(clip)
|
||||
} else {
|
||||
-1
|
||||
}
|
||||
}
|
||||
}
|
@ -11,6 +11,9 @@ interface ClipsDao {
|
||||
@Query("SELECT * FROM clips ORDER BY id")
|
||||
fun getClips(): List<Clip>
|
||||
|
||||
@Query("SELECT id FROM clips WHERE value = :value COLLATE NOCASE")
|
||||
fun getClipWithValue(value: String): Long?
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insertOrUpdate(clip: Clip): Long
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Her türlü metin, özel karakter ve sayı girmek için kolay klavye</string>
|
||||
<string name="app_long_description">
|
||||
|
||||
|
||||
</string>
|
||||
<!--
|
||||
Haven't found some strings? There's more at
|
||||
|
Loading…
x
Reference in New Issue
Block a user