mirror of
https://github.com/SimpleMobileTools/Simple-Keyboard.git
synced 2025-06-05 21:49:26 +02:00
adding a database for storing clips
This commit is contained in:
@ -65,4 +65,8 @@ android {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.github.SimpleMobileTools:Simple-Commons:db3561b188'
|
implementation 'com.github.SimpleMobileTools:Simple-Commons:db3561b188'
|
||||||
|
|
||||||
|
kapt 'androidx.room:room-compiler:2.3.0'
|
||||||
|
implementation 'androidx.room:room-runtime:2.3.0'
|
||||||
|
annotationProcessor 'androidx.room:room-compiler:2.3.0'
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
package com.simplemobiletools.keyboard.databases
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.room.Database
|
||||||
|
import androidx.room.Room
|
||||||
|
import androidx.room.RoomDatabase
|
||||||
|
import com.simplemobiletools.keyboard.interfaces.ClipsDao
|
||||||
|
import com.simplemobiletools.keyboard.models.Clip
|
||||||
|
|
||||||
|
@Database(entities = [Clip::class], version = 1)
|
||||||
|
abstract class ClipsDatabase : RoomDatabase() {
|
||||||
|
|
||||||
|
abstract fun ClipsDao(): ClipsDao
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private var db: ClipsDatabase? = null
|
||||||
|
|
||||||
|
fun getInstance(context: Context): ClipsDatabase {
|
||||||
|
if (db == null) {
|
||||||
|
synchronized(ClipsDatabase::class) {
|
||||||
|
if (db == null) {
|
||||||
|
db = Room.databaseBuilder(context.applicationContext, ClipsDatabase::class.java, "clips.db").build()
|
||||||
|
db!!.openHelper.setWriteAheadLoggingEnabled(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return db!!
|
||||||
|
}
|
||||||
|
|
||||||
|
fun destroyInstance() {
|
||||||
|
db = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,10 @@
|
|||||||
package com.simplemobiletools.keyboard.extensions
|
package com.simplemobiletools.keyboard.extensions
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import com.simplemobiletools.keyboard.databases.ClipsDatabase
|
||||||
import com.simplemobiletools.keyboard.helpers.Config
|
import com.simplemobiletools.keyboard.helpers.Config
|
||||||
|
import com.simplemobiletools.keyboard.interfaces.ClipsDao
|
||||||
|
|
||||||
val Context.config: Config get() = Config.newInstance(applicationContext)
|
val Context.config: Config get() = Config.newInstance(applicationContext)
|
||||||
|
|
||||||
|
val Context.clipsDB: ClipsDao get() = ClipsDatabase.getInstance(applicationContext).ClipsDao()
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.simplemobiletools.keyboard.interfaces
|
||||||
|
|
||||||
|
import androidx.room.Dao
|
||||||
|
import androidx.room.Insert
|
||||||
|
import androidx.room.OnConflictStrategy
|
||||||
|
import androidx.room.Query
|
||||||
|
import com.simplemobiletools.keyboard.models.Clip
|
||||||
|
|
||||||
|
@Dao
|
||||||
|
interface ClipsDao {
|
||||||
|
@Query("SELECT * FROM clips ORDER BY id")
|
||||||
|
fun getClips(): List<Clip>
|
||||||
|
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
|
fun insertOrUpdate(clip: Clip): Long
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.simplemobiletools.keyboard.models
|
||||||
|
|
||||||
|
import androidx.room.ColumnInfo
|
||||||
|
import androidx.room.Entity
|
||||||
|
import androidx.room.Index
|
||||||
|
import androidx.room.PrimaryKey
|
||||||
|
|
||||||
|
@Entity(tableName = "clips", indices = [(Index(value = ["id"], unique = true))])
|
||||||
|
data class Clip(
|
||||||
|
@PrimaryKey(autoGenerate = true) var id: Long?,
|
||||||
|
@ColumnInfo(name = "value") var value: String
|
||||||
|
)
|
@ -355,7 +355,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
|||||||
mClipboardManagerHolder!!.apply {
|
mClipboardManagerHolder!!.apply {
|
||||||
clipboard_manager_close.setOnClickListener {
|
clipboard_manager_close.setOnClickListener {
|
||||||
vibrateIfNeeded()
|
vibrateIfNeeded()
|
||||||
mClipboardManagerHolder!!.clipboard_manager_holder.beGone()
|
openClipboardManager()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1295,6 +1295,10 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun openClipboardManager() {
|
||||||
|
mClipboardManagerHolder!!.clipboard_manager_holder.beGone()
|
||||||
|
}
|
||||||
|
|
||||||
private fun closing() {
|
private fun closing() {
|
||||||
if (mPreviewPopup.isShowing) {
|
if (mPreviewPopup.isShowing) {
|
||||||
mPreviewPopup.dismiss()
|
mPreviewPopup.dismiss()
|
||||||
|
Reference in New Issue
Block a user