From 8d9229182cbed89d7829dee2ee032156773b7ad1 Mon Sep 17 00:00:00 2001 From: Yogesh Choudhary Paliyal Date: Sun, 3 Jul 2022 14:20:09 +0530 Subject: [PATCH] Fixes --- .../yogeshpaliyal/keypass/ui/addTOTP/AddTOTPViewModel.kt | 4 +++- .../keypass/ui/settings/MySettingsFragment.kt | 5 +++-- .../src/main/java/com/yogeshpaliyal/common/AppDatabase.kt | 5 +++++ .../com/yogeshpaliyal/common/dbhelper/DbBackupRestore.kt | 8 +++++--- .../com/yogeshpaliyal/common/dbhelper/EncryptionHelper.kt | 5 ++++- .../java/com/yogeshpaliyal/common/di/module/AppModule.kt | 7 +++++-- .../com/yogeshpaliyal/keypasscompose/ui/theme/Color.kt | 2 ++ 7 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/addTOTP/AddTOTPViewModel.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/addTOTP/AddTOTPViewModel.kt index 67346100..b2177311 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/addTOTP/AddTOTPViewModel.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/addTOTP/AddTOTPViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.yogeshpaliyal.common.AppDatabase import com.yogeshpaliyal.common.constants.AccountType import com.yogeshpaliyal.common.data.AccountModel import com.yogeshpaliyal.common.utils.Event @@ -14,7 +15,8 @@ import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel -class AddTOTPViewModel @Inject constructor(private val appDatabase: com.yogeshpaliyal.common.AppDatabase) : ViewModel() { +class AddTOTPViewModel @Inject constructor(private val appDatabase: AppDatabase) : + ViewModel() { private val _goBack = MutableLiveData>() val goBack: LiveData> = _goBack diff --git a/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt b/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt index 7d4aab18..6975c019 100644 --- a/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt +++ b/app/src/main/java/com/yogeshpaliyal/keypass/ui/settings/MySettingsFragment.kt @@ -27,10 +27,11 @@ import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import javax.inject.Inject +private const val CHOOSE_BACKUPS_LOCATION_REQUEST_CODE = 26212 +private const val CHOOSE_RESTORE_FILE_REQUEST_CODE = 26213 + @AndroidEntryPoint class MySettingsFragment : PreferenceFragmentCompat() { - private val CHOOSE_BACKUPS_LOCATION_REQUEST_CODE = 26212 - private val CHOOSE_RESTORE_FILE_REQUEST_CODE = 26213 @Inject lateinit var appDb: com.yogeshpaliyal.common.AppDatabase diff --git a/common/src/main/java/com/yogeshpaliyal/common/AppDatabase.kt b/common/src/main/java/com/yogeshpaliyal/common/AppDatabase.kt index 4ff85368..298307b0 100644 --- a/common/src/main/java/com/yogeshpaliyal/common/AppDatabase.kt +++ b/common/src/main/java/com/yogeshpaliyal/common/AppDatabase.kt @@ -11,6 +11,11 @@ import com.yogeshpaliyal.common.db.DbDao * https://techpaliyal.com * created on 30-01-2021 20:37 */ + +const val DB_VERSION_3 = 3 +const val DB_VERSION_4 = 4 +const val DB_VERSION_5 = 5 + @Database( entities = [AccountModel::class], version = 5, exportSchema = false diff --git a/common/src/main/java/com/yogeshpaliyal/common/dbhelper/DbBackupRestore.kt b/common/src/main/java/com/yogeshpaliyal/common/dbhelper/DbBackupRestore.kt index 7dec5cb8..d603466e 100644 --- a/common/src/main/java/com/yogeshpaliyal/common/dbhelper/DbBackupRestore.kt +++ b/common/src/main/java/com/yogeshpaliyal/common/dbhelper/DbBackupRestore.kt @@ -5,6 +5,8 @@ import android.net.Uri import androidx.room.withTransaction import com.google.gson.Gson import com.yogeshpaliyal.common.AppDatabase +import com.yogeshpaliyal.common.DB_VERSION_3 +import com.yogeshpaliyal.common.DB_VERSION_5 import com.yogeshpaliyal.common.constants.AccountType import com.yogeshpaliyal.common.data.BackupData import com.yogeshpaliyal.common.utils.getRandomString @@ -44,18 +46,18 @@ suspend fun AppDatabase.restoreBackup( val restoredFile = try { EncryptionHelper.doCryptoDecrypt(key, contentResolver.openInputStream(fileUri)) - } catch (e: Exception) { + } catch (e: CryptoException) { e.printStackTrace() return@withContext false } return@withContext Gson().fromJson(restoredFile, BackupData::class.java)?.let { data -> - if (data.version == 3) { + if (data.version == DB_VERSION_3) { for (datum in data.data) { getRandomString().also { datum.uniqueId = it } } } - if (data.version < 5) { + if (data.version < DB_VERSION_5) { for (datum in data.data) { datum.type = AccountType.DEFAULT } diff --git a/common/src/main/java/com/yogeshpaliyal/common/dbhelper/EncryptionHelper.kt b/common/src/main/java/com/yogeshpaliyal/common/dbhelper/EncryptionHelper.kt index 0f95b61f..06bb8c7a 100644 --- a/common/src/main/java/com/yogeshpaliyal/common/dbhelper/EncryptionHelper.kt +++ b/common/src/main/java/com/yogeshpaliyal/common/dbhelper/EncryptionHelper.kt @@ -22,6 +22,9 @@ import javax.crypto.spec.SecretKeySpec * https://yogeshpaliyal.com * created on 07-02-2021 18:50 */ + +private const val BUFFER_SIZE = 4096 + object EncryptionHelper { private const val ALGORITHM = "AES" private const val TRANSFORMATION = "AES/CBC/PKCS5Padding" @@ -47,7 +50,7 @@ object EncryptionHelper { outputFile?.use { val outputStream = it CipherOutputStream(outputStream, cipher).use { - inputStream.copyTo(it, 4096) + inputStream.copyTo(it, BUFFER_SIZE) } } } diff --git a/common/src/main/java/com/yogeshpaliyal/common/di/module/AppModule.kt b/common/src/main/java/com/yogeshpaliyal/common/di/module/AppModule.kt index c489597e..2eaab302 100644 --- a/common/src/main/java/com/yogeshpaliyal/common/di/module/AppModule.kt +++ b/common/src/main/java/com/yogeshpaliyal/common/di/module/AppModule.kt @@ -5,6 +5,9 @@ import androidx.room.Room import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase import com.yogeshpaliyal.common.AppDatabase +import com.yogeshpaliyal.common.DB_VERSION_3 +import com.yogeshpaliyal.common.DB_VERSION_4 +import com.yogeshpaliyal.common.DB_VERSION_5 import com.yogeshpaliyal.common.R import com.yogeshpaliyal.common.utils.getRandomString import dagger.Module @@ -25,7 +28,7 @@ object AppModule { context, AppDatabase::class.java, context.getString(R.string.app_name) - ).addMigrations(object : Migration(3, 4) { + ).addMigrations(object : Migration(DB_VERSION_3, DB_VERSION_4) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE `account` ADD COLUMN `unique_id` TEXT") database.query("select id,unique_id from `account` where unique_id IS NULL") @@ -36,7 +39,7 @@ object AppModule { } } } - }).addMigrations(object : Migration(4, 5) { + }).addMigrations(object : Migration(DB_VERSION_4, DB_VERSION_5) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE `account` ADD COLUMN `type` INT DEFAULT 0") } diff --git a/keypasscompose/src/main/java/com/yogeshpaliyal/keypasscompose/ui/theme/Color.kt b/keypasscompose/src/main/java/com/yogeshpaliyal/keypasscompose/ui/theme/Color.kt index 5490a31b..0cdd8351 100644 --- a/keypasscompose/src/main/java/com/yogeshpaliyal/keypasscompose/ui/theme/Color.kt +++ b/keypasscompose/src/main/java/com/yogeshpaliyal/keypasscompose/ui/theme/Color.kt @@ -2,6 +2,8 @@ package com.yogeshpaliyal.keypasscompose.ui.theme import androidx.compose.ui.graphics.Color +@Suppress + val Purple200 = Color(0xFFBB86FC) val Purple500 = Color(0xFF6200EE) val Purple700 = Color(0xFF3700B3)