mirror of
				https://github.com/SimpleMobileTools/Simple-Keyboard.git
				synced 2025-06-05 21:49:26 +02:00 
			
		
		
		
	Fixed directBoot crashes
This commit is contained in:
		@@ -4,12 +4,12 @@ import android.app.Application
 | 
			
		||||
import androidx.emoji2.bundled.BundledEmojiCompatConfig
 | 
			
		||||
import androidx.emoji2.text.EmojiCompat
 | 
			
		||||
import com.simplemobiletools.commons.extensions.checkUseEnglish
 | 
			
		||||
import com.simplemobiletools.keyboard.extensions.isDeviceLocked
 | 
			
		||||
import com.simplemobiletools.keyboard.extensions.isDeviceInDirectBootMode
 | 
			
		||||
 | 
			
		||||
class App : Application() {
 | 
			
		||||
    override fun onCreate() {
 | 
			
		||||
        super.onCreate()
 | 
			
		||||
        if (!isDeviceLocked) {
 | 
			
		||||
        if (!isDeviceInDirectBootMode) {
 | 
			
		||||
            checkUseEnglish()
 | 
			
		||||
        }
 | 
			
		||||
        setupEmojiCompat()
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package com.simplemobiletools.keyboard.extensions
 | 
			
		||||
 | 
			
		||||
import android.app.KeyguardManager
 | 
			
		||||
import android.content.ClipboardManager
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.graphics.Color
 | 
			
		||||
import android.os.IBinder
 | 
			
		||||
import android.os.UserManager
 | 
			
		||||
import android.view.*
 | 
			
		||||
import android.widget.TextView
 | 
			
		||||
import androidx.appcompat.app.AlertDialog
 | 
			
		||||
@@ -19,17 +19,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.safeStorageContext: Context
 | 
			
		||||
    get() = if (isNougatPlus() && isDeviceLocked) {
 | 
			
		||||
    get() = if (isNougatPlus() && isDeviceInDirectBootMode) {
 | 
			
		||||
        createDeviceProtectedStorageContext()
 | 
			
		||||
    } else {
 | 
			
		||||
        this
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
val Context.isDeviceLocked: Boolean
 | 
			
		||||
    get() = (getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager).isDeviceLocked
 | 
			
		||||
val Context.isDeviceInDirectBootMode: Boolean
 | 
			
		||||
    get() {
 | 
			
		||||
        val userManager = getSystemService(Context.USER_SERVICE) as UserManager
 | 
			
		||||
        return isNougatPlus() && userManager.isUserUnlocked
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
val Context.clipsDB: ClipsDao
 | 
			
		||||
    get() = ClipsDatabase.getInstance(applicationContext.safeStorageContext).ClipsDao()
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,9 @@ package com.simplemobiletools.keyboard.helpers
 | 
			
		||||
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import com.simplemobiletools.commons.helpers.BaseConfig
 | 
			
		||||
import com.simplemobiletools.keyboard.extensions.isDeviceLocked
 | 
			
		||||
import com.simplemobiletools.keyboard.extensions.isDeviceInDirectBootMode
 | 
			
		||||
import com.simplemobiletools.keyboard.extensions.safeStorageContext
 | 
			
		||||
import java.util.*
 | 
			
		||||
import java.util.Locale
 | 
			
		||||
 | 
			
		||||
class Config(context: Context) : BaseConfig(context) {
 | 
			
		||||
    companion object {
 | 
			
		||||
@@ -44,7 +44,7 @@ class Config(context: Context) : BaseConfig(context) {
 | 
			
		||||
        set(showClipboardContent) = prefs.edit().putBoolean(SHOW_CLIPBOARD_CONTENT, showClipboardContent).apply()
 | 
			
		||||
 | 
			
		||||
    var showNumbersRow: Boolean
 | 
			
		||||
        get() = if (!context.isDeviceLocked) {
 | 
			
		||||
        get() = if (!context.isDeviceInDirectBootMode) {
 | 
			
		||||
            prefs.getBoolean(SHOW_NUMBERS_ROW, false)
 | 
			
		||||
        } else {
 | 
			
		||||
            true
 | 
			
		||||
 
 | 
			
		||||
@@ -226,7 +226,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
 | 
			
		||||
        mPreviewHeight = resources.getDimension(R.dimen.key_height).toInt()
 | 
			
		||||
        mSpaceMoveThreshold = resources.getDimension(R.dimen.medium_margin).toInt()
 | 
			
		||||
 | 
			
		||||
        with (context.safeStorageContext) {
 | 
			
		||||
        with(context.safeStorageContext) {
 | 
			
		||||
            mTextColor = getProperTextColor()
 | 
			
		||||
            mBackgroundColor = getProperBackgroundColor()
 | 
			
		||||
            mPrimaryColor = getProperPrimaryColor()
 | 
			
		||||
@@ -431,7 +431,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
 | 
			
		||||
            pinned_clipboard_items.applyColorFilter(mTextColor)
 | 
			
		||||
            clipboard_clear.applyColorFilter(mTextColor)
 | 
			
		||||
 | 
			
		||||
            toolbar_holder.beInvisibleIf(context.isDeviceLocked)
 | 
			
		||||
            toolbar_holder.beInvisibleIf(context.isDeviceInDirectBootMode)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        mClipboardManagerHolder?.apply {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user