From f70879581de58d3cd04e31019c9ea2a6f978e06f Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 10:35:34 +0200 Subject: [PATCH 01/12] Change version to fix bugs --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ebbc5c44f..f9b64ee9b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,7 @@ android { minSdkVersion 15 targetSdkVersion 30 versionCode = 74 - versionName = "3.0.0" + versionName = "2.9.20" multiDexEnabled true testApplicationId = "com.kunzisoft.keepass.tests" From 006afc6841d7ac017e586008b1f37a7dc8828b02 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 10:44:12 +0200 Subject: [PATCH 02/12] Fix search with non-latin chars #971 --- CHANGELOG | 2 +- .../keepass/database/search/SearchHelper.kt | 8 ++++---- .../com/kunzisoft/keepass/utils/StringUtil.kt | 16 +++------------- .../metadata/android/en-US/changelogs/74.txt | 2 +- .../metadata/android/fr-FR/changelogs/74.txt | 2 +- 5 files changed, 10 insertions(+), 20 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 545c00561..127c56006 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,5 @@ KeePassDX(3.0.0) - * + * Fix search with non-latin chars #971 KeePassDX(2.9.19) * Fix search slowdown #964 diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt index 75b30734f..5aeca0eab 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt @@ -29,7 +29,7 @@ import com.kunzisoft.keepass.model.SearchInfo import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_FIELD import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.timeout.TimeoutHelper -import com.kunzisoft.keepass.utils.StringUtil.flattenToAscii +import com.kunzisoft.keepass.utils.StringUtil.removeAccents import com.kunzisoft.keepass.utils.UuidUtil class SearchHelper { @@ -177,13 +177,13 @@ class SearchHelper { // TODO Search settings var regularExpression = false var ignoreCase = true - var flattenToASCII = true + var removeAccents = true var excludeExpired = false var searchOnlyInCurrentGroup = false */ return stringToCheck.isNotEmpty() - && stringToCheck.flattenToAscii().contains( - searchParameters.searchQuery.flattenToAscii(), true) + && stringToCheck.removeAccents().contains( + searchParameters.searchQuery.removeAccents(), true) } } } diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt b/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt index 3f9aebce8..7276ebfd3 100644 --- a/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt +++ b/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt @@ -12,19 +12,9 @@ object StringUtil { return this.replace("[\\r|\\n|\\t|\\s|\\u00A0]+".toRegex(), "") } - fun String.flattenToAscii(): String { - var string = this - val out = CharArray(string.length) - string = Normalizer.normalize(string, Normalizer.Form.NFD) - var j = 0 - var i = 0 - val n = string.length - while (i < n) { - val c = string[i] - if (c <= '\u007F') out[j++] = c - ++i - } - return String(out) + fun String.removeAccents(): String { + return Normalizer.normalize(this, Normalizer.Form.NFD) + .replace("\\p{Mn}+".toRegex(), "") } fun ByteArray.toHexString() = joinToString("") { "%02X".format(it) } diff --git a/fastlane/metadata/android/en-US/changelogs/74.txt b/fastlane/metadata/android/en-US/changelogs/74.txt index 42780ecb1..2646715b7 100644 --- a/fastlane/metadata/android/en-US/changelogs/74.txt +++ b/fastlane/metadata/android/en-US/changelogs/74.txt @@ -1 +1 @@ - * \ No newline at end of file + * Fix search with non-latin chars #971 \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/74.txt b/fastlane/metadata/android/fr-FR/changelogs/74.txt index 42780ecb1..18dc09365 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/74.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/74.txt @@ -1 +1 @@ - * \ No newline at end of file + * Correction de la recherche avec des caractères non latin #971 \ No newline at end of file From c60dfdf0d790c90500ce7c669f239aad9b91fa60 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 10:58:16 +0200 Subject: [PATCH 03/12] Fix search during a node action #972 --- .../main/java/com/kunzisoft/keepass/activities/GroupActivity.kt | 1 + 1 file changed, 1 insertion(+) 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 1e3b8f606..db5c0011f 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.kt @@ -382,6 +382,7 @@ class GroupActivity : LockingActivity(), Log.d(TAG, "setNewIntent: $intentNotNull") setIntent(intentNotNull) if (Intent.ACTION_SEARCH == intentNotNull.action) { + finishNodeAction() // only one instance of search in backstack deletePreviousSearchGroup() openGroup(retrieveCurrentGroup(intentNotNull, null), true) From 4edf2f8cd16a8dfc4382dc2863230b95e76d10b4 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 11:04:33 +0200 Subject: [PATCH 04/12] Upgrade CHANGELOG --- CHANGELOG | 1 + fastlane/metadata/android/en-US/changelogs/74.txt | 3 ++- fastlane/metadata/android/fr-FR/changelogs/74.txt | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 127c56006..3e2fce179 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ KeePassDX(3.0.0) * Fix search with non-latin chars #971 + * Fix action mode with search #972 KeePassDX(2.9.19) * Fix search slowdown #964 diff --git a/fastlane/metadata/android/en-US/changelogs/74.txt b/fastlane/metadata/android/en-US/changelogs/74.txt index 2646715b7..a884ff434 100644 --- a/fastlane/metadata/android/en-US/changelogs/74.txt +++ b/fastlane/metadata/android/en-US/changelogs/74.txt @@ -1 +1,2 @@ - * Fix search with non-latin chars #971 \ No newline at end of file + * Fix search with non-latin chars #971 + * Fix action mode with search #972 \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/74.txt b/fastlane/metadata/android/fr-FR/changelogs/74.txt index 18dc09365..0e9b979d3 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/74.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/74.txt @@ -1 +1,2 @@ - * Correction de la recherche avec des caractères non latin #971 \ No newline at end of file + * Correction de la recherche avec des caractères non latin #971 + * Correction du mode action avec la recherche #972 \ No newline at end of file From d9b600466cf942c54bcdc0ba95d7502b988cd2c7 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 12:09:53 +0200 Subject: [PATCH 05/12] Rollback ignore accents #945 --- CHANGELOG | 2 +- .../com/kunzisoft/keepass/database/search/SearchHelper.kt | 6 +++--- app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt | 5 ----- fastlane/metadata/android/en-US/changelogs/74.txt | 2 +- fastlane/metadata/android/fr-FR/changelogs/74.txt | 2 +- 5 files changed, 6 insertions(+), 11 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 3e2fce179..a4139cfb0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ KeePassDX(3.0.0) * Fix search with non-latin chars #971 - * Fix action mode with search #972 + * Fix action mode with search #972 (rollback ignore accents #945) KeePassDX(2.9.19) * Fix search slowdown #964 diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt index 5aeca0eab..b1859a196 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt @@ -177,13 +177,13 @@ class SearchHelper { // TODO Search settings var regularExpression = false var ignoreCase = true - var removeAccents = true + var removeAccents = true <- Too much time, to study var excludeExpired = false var searchOnlyInCurrentGroup = false */ return stringToCheck.isNotEmpty() - && stringToCheck.removeAccents().contains( - searchParameters.searchQuery.removeAccents(), true) + && stringToCheck.contains( + searchParameters.searchQuery, true) } } } diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt b/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt index 7276ebfd3..5ef84cefc 100644 --- a/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt +++ b/app/src/main/java/com/kunzisoft/keepass/utils/StringUtil.kt @@ -12,10 +12,5 @@ object StringUtil { return this.replace("[\\r|\\n|\\t|\\s|\\u00A0]+".toRegex(), "") } - fun String.removeAccents(): String { - return Normalizer.normalize(this, Normalizer.Form.NFD) - .replace("\\p{Mn}+".toRegex(), "") - } - fun ByteArray.toHexString() = joinToString("") { "%02X".format(it) } } \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/74.txt b/fastlane/metadata/android/en-US/changelogs/74.txt index a884ff434..4a8fefba2 100644 --- a/fastlane/metadata/android/en-US/changelogs/74.txt +++ b/fastlane/metadata/android/en-US/changelogs/74.txt @@ -1,2 +1,2 @@ * Fix search with non-latin chars #971 - * Fix action mode with search #972 \ No newline at end of file + * Fix action mode with search #972 (rollback ignore accents #945) \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/74.txt b/fastlane/metadata/android/fr-FR/changelogs/74.txt index 0e9b979d3..4f1a6a055 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/74.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/74.txt @@ -1,2 +1,2 @@ * Correction de la recherche avec des caractères non latin #971 - * Correction du mode action avec la recherche #972 \ No newline at end of file + * Correction du mode action avec la recherche #972 (retour arrière des accents ignorés #945) \ No newline at end of file From cb59cef1b86c074819e64270e31f66e53191463a Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 12:37:19 +0200 Subject: [PATCH 06/12] Remove unused dependency --- .../java/com/kunzisoft/keepass/database/search/SearchHelper.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt index b1859a196..3e49e3e69 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/search/SearchHelper.kt @@ -29,7 +29,6 @@ import com.kunzisoft.keepass.model.SearchInfo import com.kunzisoft.keepass.otp.OtpEntryFields.OTP_FIELD import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.timeout.TimeoutHelper -import com.kunzisoft.keepass.utils.StringUtil.removeAccents import com.kunzisoft.keepass.utils.UuidUtil class SearchHelper { From a28decc8547f138a147412c7243376777c84aeda Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 21:45:39 +0200 Subject: [PATCH 07/12] Fix timeout with 0s #974 --- CHANGELOG | 1 + .../keepass/services/NotificationService.kt | 25 +++++++++++-------- .../metadata/android/en-US/changelogs/74.txt | 3 ++- .../metadata/android/fr-FR/changelogs/74.txt | 3 ++- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a4139cfb0..8ae862fa1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ KeePassDX(3.0.0) * Fix search with non-latin chars #971 * Fix action mode with search #972 (rollback ignore accents #945) + * Fix timeout with 0s #974 KeePassDX(2.9.19) * Fix search slowdown #964 diff --git a/app/src/main/java/com/kunzisoft/keepass/services/NotificationService.kt b/app/src/main/java/com/kunzisoft/keepass/services/NotificationService.kt index f9faf3c93..8cb27eef0 100644 --- a/app/src/main/java/com/kunzisoft/keepass/services/NotificationService.kt +++ b/app/src/main/java/com/kunzisoft/keepass/services/NotificationService.kt @@ -80,17 +80,22 @@ abstract class NotificationService : Service() { actionEnd: () -> Unit) { mTimerJob?.cancel() mTimerJob = CoroutineScope(Dispatchers.Main).launch { - val timeoutInSeconds = timeoutMilliseconds / 1000L - for (currentTime in timeoutInSeconds downTo 0) { - actionAfterASecond?.invoke() - builder.setProgress(100, - (currentTime * 100 / timeoutInSeconds).toInt(), - false) - startForeground(notificationId, builder.build()) - delay(1000) - if (currentTime <= 0) { - actionEnd() + if (timeoutMilliseconds > 0) { + val timeoutInSeconds = timeoutMilliseconds / 1000L + for (currentTime in timeoutInSeconds downTo 0) { + actionAfterASecond?.invoke() + builder.setProgress(100, + (currentTime * 100 / timeoutInSeconds).toInt(), + false) + startForeground(notificationId, builder.build()) + delay(1000) + if (currentTime <= 0) { + actionEnd() + } } + } else { + // If timeout is 0, run action once + actionEnd() } notificationManager?.cancel(notificationId) mTimerJob = null diff --git a/fastlane/metadata/android/en-US/changelogs/74.txt b/fastlane/metadata/android/en-US/changelogs/74.txt index 4a8fefba2..f4f0353d0 100644 --- a/fastlane/metadata/android/en-US/changelogs/74.txt +++ b/fastlane/metadata/android/en-US/changelogs/74.txt @@ -1,2 +1,3 @@ * Fix search with non-latin chars #971 - * Fix action mode with search #972 (rollback ignore accents #945) \ No newline at end of file + * Fix action mode with search #972 (rollback ignore accents #945) + * Fix timeout with 0s #974 \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/74.txt b/fastlane/metadata/android/fr-FR/changelogs/74.txt index 4f1a6a055..a3e72b1a8 100644 --- a/fastlane/metadata/android/fr-FR/changelogs/74.txt +++ b/fastlane/metadata/android/fr-FR/changelogs/74.txt @@ -1,2 +1,3 @@ * Correction de la recherche avec des caractères non latin #971 - * Correction du mode action avec la recherche #972 (retour arrière des accents ignorés #945) \ No newline at end of file + * Correction du mode action avec la recherche #972 (retour arrière des accents ignorés #945) + * Correction de l'expiration de temps à 0s #974 \ No newline at end of file From b74b5040b11a3e45355346993a4d7e55a0cc0ee8 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 21:57:25 +0200 Subject: [PATCH 08/12] Better timeout setting integration #974 --- .../services/ClipboardEntryNotificationService.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/services/ClipboardEntryNotificationService.kt b/app/src/main/java/com/kunzisoft/keepass/services/ClipboardEntryNotificationService.kt index 83cb4534d..58a9d0a7d 100644 --- a/app/src/main/java/com/kunzisoft/keepass/services/ClipboardEntryNotificationService.kt +++ b/app/src/main/java/com/kunzisoft/keepass/services/ClipboardEntryNotificationService.kt @@ -37,7 +37,6 @@ class ClipboardEntryNotificationService : LockNotificationService() { override val notificationId = 485 private var mEntryInfo: EntryInfo? = null private var clipboardHelper: ClipboardHelper? = null - private var mNotificationTimeoutMilliSecs: Long = 0 override fun retrieveChannelId(): String { return CHANNEL_CLIPBOARD_ID @@ -68,9 +67,6 @@ class ClipboardEntryNotificationService : LockNotificationService() { // Get entry info from intent mEntryInfo = intent?.getParcelableExtra(EXTRA_ENTRY_INFO) - //Get settings - mNotificationTimeoutMilliSecs = PreferencesUtil.getClipboardTimeout(this) - when { intent == null -> Log.w(TAG, "null intent") ACTION_NEW_NOTIFICATION == intent.action -> { @@ -169,8 +165,10 @@ class ClipboardEntryNotificationService : LockNotificationService() { this, 0, cleanIntent, PendingIntent.FLAG_UPDATE_CURRENT) builder.setDeleteIntent(cleanPendingIntent) - if (mNotificationTimeoutMilliSecs != NEVER) { - defineTimerJob(builder, mNotificationTimeoutMilliSecs, { + //Get settings + val notificationTimeoutMilliSecs = PreferencesUtil.getClipboardTimeout(this) + if (notificationTimeoutMilliSecs != NEVER) { + defineTimerJob(builder, notificationTimeoutMilliSecs, { val newGeneratedValue = fieldToCopy.getGeneratedValue(mEntryInfo) // New auto generated value if (generatedValue != newGeneratedValue) { From 69b4cacab4174f6ef76e004aca56f3c12c3c1a99 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 22:23:13 +0200 Subject: [PATCH 09/12] Upgrade version code to deploy beta --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index f9b64ee9b..233c03f38 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { applicationId "com.kunzisoft.keepass" minSdkVersion 15 targetSdkVersion 30 - versionCode = 74 + versionCode = 75 versionName = "2.9.20" multiDexEnabled true From 9f16f2634718134db3e46b9ee835f4bdf138ab2e Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 29 Apr 2021 22:23:51 +0200 Subject: [PATCH 10/12] skip unchanged fastlane elements to deploy --- fastlane/Fastfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 6a0bba937..18faaca55 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -49,9 +49,9 @@ platform :android do lane :deploy_beta_free do upload_to_play_store( track: "beta", - skip_upload_metadata: "false", - skip_upload_images: "false", - skip_upload_screenshots: "false", + skip_upload_metadata: "true", + skip_upload_images: "true", + skip_upload_screenshots: "true", apk: "./app/build/outputs/apk/free/release/app-free-release.apk", validate_only: "false", ) @@ -62,9 +62,9 @@ platform :android do sh("cp", "-a", "./pro/.", "./") upload_to_play_store( track: "beta", - skip_upload_metadata: "false", - skip_upload_images: "false", - skip_upload_screenshots: "false", + skip_upload_metadata: "true", + skip_upload_images: "true", + skip_upload_screenshots: "true", apk: "./app/build/outputs/apk/pro/release/app-pro-release.apk", validate_only: "false", ) From 468c1b95b7cb726b370d60655504aa305286d34d Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Fri, 30 Apr 2021 11:29:58 +0200 Subject: [PATCH 11/12] Fix CHANGELOG version --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 8ae862fa1..5e2e8bd26 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -KeePassDX(3.0.0) +KeePassDX(2.9.20) * Fix search with non-latin chars #971 * Fix action mode with search #972 (rollback ignore accents #945) * Fix timeout with 0s #974 From 1b2ead054a92dff3f777716936bf68928584c01c Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Fri, 30 Apr 2021 11:37:32 +0200 Subject: [PATCH 12/12] Upgrade to version 3.0.0 --- CHANGELOG | 3 +++ app/build.gradle | 4 ++-- fastlane/metadata/android/en-US/changelogs/76.txt | 1 + fastlane/metadata/android/fr-FR/changelogs/76.txt | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/76.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/76.txt diff --git a/CHANGELOG b/CHANGELOG index 5e2e8bd26..9d0443b08 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +KeePassDX(3.0.0) + * + KeePassDX(2.9.20) * Fix search with non-latin chars #971 * Fix action mode with search #972 (rollback ignore accents #945) diff --git a/app/build.gradle b/app/build.gradle index 233c03f38..d82a28436 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.kunzisoft.keepass" minSdkVersion 15 targetSdkVersion 30 - versionCode = 75 - versionName = "2.9.20" + versionCode = 76 + versionName = "3.0.0" multiDexEnabled true testApplicationId = "com.kunzisoft.keepass.tests" diff --git a/fastlane/metadata/android/en-US/changelogs/76.txt b/fastlane/metadata/android/en-US/changelogs/76.txt new file mode 100644 index 000000000..42780ecb1 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/76.txt @@ -0,0 +1 @@ + * \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/76.txt b/fastlane/metadata/android/fr-FR/changelogs/76.txt new file mode 100644 index 000000000..42780ecb1 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/76.txt @@ -0,0 +1 @@ + * \ No newline at end of file