diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4bcff12..cfc5334 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,7 +25,6 @@ diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/databases/ClipsDatabase.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/databases/ClipsDatabase.kt index 051fd9b..04e64c8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/databases/ClipsDatabase.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/databases/ClipsDatabase.kt @@ -4,7 +4,6 @@ import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase -import com.simplemobiletools.commons.extensions.safeStorageContext import com.simplemobiletools.keyboard.interfaces.ClipsDao import com.simplemobiletools.keyboard.models.Clip @@ -20,7 +19,7 @@ abstract class ClipsDatabase : RoomDatabase() { if (db == null) { synchronized(ClipsDatabase::class) { if (db == null) { - db = Room.databaseBuilder(context.applicationContext.safeStorageContext, ClipsDatabase::class.java, "clips.db").build() + db = Room.databaseBuilder(context, ClipsDatabase::class.java, "clips.db").build() db!!.openHelper.setWriteAheadLoggingEnabled(true) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt index 3e030a5..4862531 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.keyboard.extensions import android.content.ClipboardManager import android.content.Context import android.graphics.Color +import android.os.Build import android.os.IBinder import android.view.LayoutInflater import android.view.View @@ -21,9 +22,21 @@ import com.simplemobiletools.keyboard.databases.ClipsDatabase import com.simplemobiletools.keyboard.helpers.* import com.simplemobiletools.keyboard.interfaces.ClipsDao -val Context.config: Config get() = Config.newInstance(applicationContext.safeStorageContext) +val Context.config: Config get() = Config.newInstance(applicationContext) -val Context.clipsDB: ClipsDao get() = ClipsDatabase.getInstance(applicationContext).ClipsDao() +val Context.safeStorageContext: Context + get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + createDeviceProtectedStorageContext() + } else { + this + } + +val Context.clipsDB: ClipsDao + get() = if (isDeviceLocked) { + ClipsDatabase.getInstance(applicationContext.safeStorageContext).ClipsDao() + } else { + ClipsDatabase.getInstance(applicationContext).ClipsDao() + } fun Context.getCurrentClip(): String? { val clipboardManager = (getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager) diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt index c612e27..3928b0c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt @@ -2,11 +2,12 @@ package com.simplemobiletools.keyboard.helpers import android.content.Context import com.simplemobiletools.commons.helpers.BaseConfig +import com.simplemobiletools.keyboard.extensions.safeStorageContext import java.util.* class Config(context: Context) : BaseConfig(context) { companion object { - fun newInstance(context: Context) = Config(context) + fun newInstance(context: Context) = Config(context.safeStorageContext) } var vibrateOnKeypress: Boolean