diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cf5fb30a9..b138fb868 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,7 +29,7 @@ android:resizeableActivity="true" android:theme="@style/KeepassDXStyle.Night" tools:targetApi="n"> - + diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt index 885d86f32..650af89cb 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryActivity.kt @@ -371,7 +371,6 @@ class EntryActivity : LockingActivity() { taColorAccent.recycle() } val entryHistory = entry.getHistory() - // TODO isMainEntry = not an history val showHistoryView = entryHistory.isNotEmpty() entryContentsView?.showHistory(showHistoryView) if (showHistoryView) { diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt index 8ce18e0a3..cade3a884 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt @@ -843,7 +843,7 @@ class GroupActivity : LockingActivity(), removeChildren() title = name - this.icon = icon // TODO custom icon + this.icon = icon // TODO custom icon #96 } } // If group updated save it in the database @@ -1020,7 +1020,7 @@ class GroupActivity : LockingActivity(), * Keyboard Launch * ------------------------- */ - // TODO implement pre search to directly open the direct group + // TODO implement pre search to directly open the direct group #280 fun launchForKeyboardSelection(context: Context, readOnly: Boolean = PreferencesUtil.enableReadOnlyDatabase(context)) { checkTimeAndBuildIntent(context, null, null, readOnly) { intent -> diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt index cc18b4558..002cb984b 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/ListNodesFragment.kt @@ -303,7 +303,7 @@ class ListNodesFragment : StylishFragment(), SortDialogFragment.SortSelectionLis if (readOnly || isASearchResult || nodes.any { it.type == Type.GROUP }) { - // TODO COPY For Group + // TODO Copy For Group menu?.removeItem(R.id.menu_copy) menu?.removeItem(R.id.menu_move) } diff --git a/app/src/main/java/com/kunzisoft/keepass/backup/SettingsBackupAgent.kt b/app/src/main/java/com/kunzisoft/keepass/backup/SettingsBackupAgent.kt index 0c315f2ae..4e1e1f2be 100644 --- a/app/src/main/java/com/kunzisoft/keepass/backup/SettingsBackupAgent.kt +++ b/app/src/main/java/com/kunzisoft/keepass/backup/SettingsBackupAgent.kt @@ -26,7 +26,7 @@ import android.app.backup.SharedPreferencesBackupHelper @SuppressLint("NewApi") class SettingsBackupAgent : BackupAgentHelper() { - //TODO Backup + //TODO Backup #479 override fun onCreate() { val defaultPrefs = this.packageName + "_preferences" diff --git a/app/src/main/java/com/kunzisoft/keepass/biometric/AdvancedUnlockedManager.kt b/app/src/main/java/com/kunzisoft/keepass/biometric/AdvancedUnlockedManager.kt index b8f4588dc..3cb0ee68a 100644 --- a/app/src/main/java/com/kunzisoft/keepass/biometric/AdvancedUnlockedManager.kt +++ b/app/src/main/java/com/kunzisoft/keepass/biometric/AdvancedUnlockedManager.kt @@ -300,7 +300,6 @@ class AdvancedUnlockedManager(var context: FragmentActivity, override fun handleEncryptedResult(encryptedValue: String, ivSpec: String) { loadDatabaseAfterRegisterCredentials.invoke(encryptedValue, ivSpec) - // TODO setAdvancedUnlockedMessageView(R.string.encrypted_value_stored) } override fun handleDecryptedResult(decryptedValue: String) { diff --git a/app/src/main/java/com/kunzisoft/keepass/biometric/BiometricUnlockDatabaseHelper.kt b/app/src/main/java/com/kunzisoft/keepass/biometric/BiometricUnlockDatabaseHelper.kt index 63844f811..11c764fb0 100644 --- a/app/src/main/java/com/kunzisoft/keepass/biometric/BiometricUnlockDatabaseHelper.kt +++ b/app/src/main/java/com/kunzisoft/keepass/biometric/BiometricUnlockDatabaseHelper.kt @@ -60,7 +60,7 @@ class BiometricUnlockDatabaseHelper(private val context: FragmentActivity) { setTitle(context.getString(R.string.biometric_prompt_store_credential_title)) setDescription(context.getString(R.string.biometric_prompt_store_credential_message)) setConfirmationRequired(true) - // TODO device credential + // TODO device credential #102 #152 /* if (keyguardManager?.isDeviceSecure == true) setDeviceCredentialAllowed(true) @@ -73,7 +73,7 @@ class BiometricUnlockDatabaseHelper(private val context: FragmentActivity) { setTitle(context.getString(R.string.biometric_prompt_extract_credential_title)) //setDescription(context.getString(R.string.biometric_prompt_extract_credential_message)) setConfirmationRequired(false) - // TODO device credential + // TODO device credential #102 #152 /* if (keyguardManager?.isDeviceSecure == true) setDeviceCredentialAllowed(true) diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/keyDerivation/Argon2Kdf.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/keyDerivation/Argon2Kdf.kt index 86798c1b2..a2433b7f4 100644 --- a/app/src/main/java/com/kunzisoft/keepass/crypto/keyDerivation/Argon2Kdf.kt +++ b/app/src/main/java/com/kunzisoft/keepass/crypto/keyDerivation/Argon2Kdf.kt @@ -108,7 +108,7 @@ class Argon2Kdf internal constructor() : KdfEngine() { get() = MAX_MEMORY override fun getParallelism(p: KdfParameters): Int { - return p.getUInt32(PARAM_PARALLELISM).toInt() // TODO Verify + return p.getUInt32(PARAM_PARALLELISM).toInt() // TODO Verify #443 } override fun setParallelism(p: KdfParameters, parallelism: Int) { diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt index 817e6d09c..8c242efad 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt @@ -77,7 +77,7 @@ class DatabaseKDBX : DatabaseVersioned { var defaultUserName = "" var defaultUserNameChanged = DateInstant() - // TODO date + // TODO last change date var keyLastChanged = DateInstant() var keyChangeRecDays: Long = -1 var keyChangeForceDays: Long = 1 diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt index 3ccdda39b..792af8123 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt @@ -104,10 +104,7 @@ abstract class DatabaseVersioned< } @Throws(IOException::class) - protected fun getPasswordKey(key: String?): ByteArray { - if (key == null) - throw IllegalArgumentException("Key cannot be empty.") // TODO - + protected fun getPasswordKey(key: String): ByteArray { val messageDigest: MessageDigest try { messageDigest = MessageDigest.getInstance("SHA-256") diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt index 0309f935a..c9e5869c9 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/entry/FieldReferencesEngine.kt @@ -158,8 +158,7 @@ class FieldReferencesEngine { } val list = ArrayList() - // TODO type parameter - searchEntries(contextV4.databaseV4!!.rootGroup, searchParametersV4, list) + searchEntries(contextV4.databaseV4?.rootGroup, searchParametersV4, list) return if (list.size > 0) { TargetResult(list[0], wanted) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt index b437158a8..1f06a9ff7 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/group/GroupKDBX.kt @@ -79,7 +79,7 @@ class GroupKDBX : GroupVersioned, NodeKDBXInte iconCustom = parcel.readParcelable(IconImageCustom::class.java.classLoader) ?: iconCustom usageCount = parcel.readLong() locationChanged = parcel.readParcelable(DateInstant::class.java.classLoader) ?: locationChanged - // TODO customData = ParcelableUtil.readStringParcelableMap(in); + // TODO customData = ParcelableUtil.readStringParcelableMap(parcel); notes = parcel.readString() ?: notes isExpanded = parcel.readByte().toInt() != 0 defaultAutoTypeSequence = parcel.readString() ?: defaultAutoTypeSequence diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt index e9bcfc460..35069831d 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/icon/IconImageCustom.kt @@ -49,7 +49,7 @@ class IconImageCustom : IconImage { constructor(parcel: Parcel) { uuid = parcel.readSerializable() as UUID // TODO Take too much memories - // in.readByteArray(imageData); + // parcel.readByteArray(imageData); } override fun writeToParcel(dest: Parcel, flags: Int) { diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDB.kt index 00b35b06f..fb481c824 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDB.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDB.kt @@ -69,7 +69,7 @@ class DatabaseHeaderKDB : DatabaseHeader() { transformSeed = inputStream.readBytesLength(32) // 32 bytes numKeyEncRounds = inputStream.readBytes4ToInt() if (numKeyEncRounds < 0) { - // TODO: Really treat this like an unsigned integer + // TODO: Really treat this like an unsigned integer #443 throw IOException("Does not support more than " + Integer.MAX_VALUE + " rounds.") } } diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt index 5ce178f3e..e2cd3c80f 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDB.kt @@ -150,26 +150,6 @@ class DatabaseInputKDB(cacheDirectory: File, ) ) - /* TODO checksum - // Add a mark to the content start - if (!cipherInputStream.markSupported()) { - throw IOException("Input stream does not support mark.") - } - cipherInputStream.mark(cipherInputStream.available() +1) - // Consume all data to get the digest - var numberRead = 0 - while (numberRead > -1) { - numberRead = cipherInputStream.read(ByteArray(1024)) - } - - // Check sum - if (!Arrays.equals(messageDigest.digest(), header.contentsHash)) { - throw InvalidCredentialsDatabaseException() - } - // Back to the content start - cipherInputStream.reset() - */ - // New manual root because KDB contains multiple root groups (here available with getRootGroups()) val newRoot = mDatabaseToOpen.createGroup() newRoot.level = -1 diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt index 80677f24a..056b0129d 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDB.kt @@ -128,7 +128,7 @@ class DatabaseOutputKDB(private val mDatabaseKDB: DatabaseKDB, header.version = DatabaseHeaderKDB.DBVER_DW header.numGroups = mDatabaseKDB.numberOfGroups() header.numEntries = mDatabaseKDB.numberOfEntries() - header.numKeyEncRounds = mDatabaseKDB.numberKeyEncryptionRounds.toInt() // TODO Signed Long - Unsigned Int + header.numKeyEncRounds = mDatabaseKDB.numberKeyEncryptionRounds.toInt() // TODO Signed Long - Unsigned Int #443 setIVs(header) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt index c5c99d1c6..f870a1e29 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/EntryOutputKDB.kt @@ -105,7 +105,7 @@ class EntryOutputKDB val binaryDataLengthRightSize = if (binaryDataLength <= Int.MAX_VALUE) { binaryDataLength.toInt() } else { - 0 // TODO if length > UInt.maxvalue show exception + 0 // TODO if length > UInt.maxvalue show exception #443 } // Write data length mOutputStream.write(intTo4Bytes(binaryDataLengthRightSize)) diff --git a/app/src/main/java/com/kunzisoft/keepass/stream/LittleEndianDataOutputStream.kt b/app/src/main/java/com/kunzisoft/keepass/stream/LittleEndianDataOutputStream.kt index 577e68ba0..e759472f4 100644 --- a/app/src/main/java/com/kunzisoft/keepass/stream/LittleEndianDataOutputStream.kt +++ b/app/src/main/java/com/kunzisoft/keepass/stream/LittleEndianDataOutputStream.kt @@ -30,7 +30,7 @@ import java.io.OutputStream class LittleEndianDataOutputStream(private val baseStream: OutputStream) : OutputStream() { @Throws(IOException::class) - fun writeUInt(uint: Long) { // TODO UInt + fun writeUInt(uint: Long) { // TODO UInt #443 baseStream.write(intTo4Bytes(uint.toInt())) }