* Fix crash in New Android 13 #1321

* Better backstack management for selection mode
This commit is contained in:
J-Jamet
2022-05-05 12:45:07 +02:00
parent 3e4452da00
commit 5a30d9d2b5
9 changed files with 37 additions and 41 deletions

View File

@@ -1,3 +1,7 @@
KeePassDX(3.4.4)
* Fix crash in New Android 13 #1321
* Better backstack management for selection mode
KeePassDX(3.4.3)
* Remove "Select share info" setting for Magikeyboard #1304
* Fix quick search and better loadGroup implementation #1302

View File

@@ -12,8 +12,8 @@ android {
applicationId "com.kunzisoft.keepass"
minSdkVersion 15
targetSdkVersion 31
versionCode = 112
versionName = "3.4.3"
versionCode = 113
versionName = "3.4.4"
multiDexEnabled true
testApplicationId = "com.kunzisoft.keepass.tests"

View File

@@ -150,7 +150,8 @@
<activity
android:name="com.kunzisoft.keepass.activities.AutofillLauncherActivity"
android:theme="@style/Theme.Transparent"
android:configChanges="keyboardHidden" />
android:configChanges="keyboardHidden"
android:excludeFromRecents="true"/>
<activity
android:name="com.kunzisoft.keepass.settings.SettingsAdvancedUnlockActivity" />
<activity

View File

@@ -31,7 +31,6 @@ import com.kunzisoft.keepass.database.search.SearchHelper
import com.kunzisoft.keepass.magikeyboard.MagikeyboardService
import com.kunzisoft.keepass.model.SearchInfo
import com.kunzisoft.keepass.otp.OtpEntryFields
import com.kunzisoft.keepass.settings.PreferencesUtil
/**
* Activity to search or select entry in database,
@@ -44,7 +43,7 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
}
override fun finishActivityIfReloadRequested(): Boolean {
return true
return false
}
override fun onDatabaseRetrieved(database: Database?) {
@@ -74,6 +73,7 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
sharedWebDomain = Uri.parse(extra).host
}
}
launchSelection(database, sharedWebDomain, otpString)
}
Intent.ACTION_VIEW -> {
// Retrieve OTP
@@ -81,10 +81,23 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
if (OtpEntryFields.isOTPUri(extra))
otpString = extra
}
launchSelection(database, sharedWebDomain, otpString)
}
else -> {}
else -> {
if (database != null) {
GroupActivity.launch(this, database)
} else {
FileDatabaseSelectActivity.launch(this)
}
}
}
}
finish()
}
private fun launchSelection(database: Database?,
sharedWebDomain: String?,
otpString: String?) {
// Build domain search param
val searchInfo = SearchInfo().apply {
this.webDomain = sharedWebDomain
@@ -96,7 +109,6 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
launch(database, searchInfo)
}
}
}
private fun launch(database: Database?,
searchInfo: SearchInfo) {
@@ -188,7 +200,6 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
}
}
)
finish()
}
companion object {

View File

@@ -320,16 +320,6 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
}
}
override fun onValidateSpecialMode() {
super.onValidateSpecialMode()
finish()
}
override fun onCancelSpecialMode() {
super.onCancelSpecialMode()
finish()
}
private fun launchPasswordActivityWithPath(databaseUri: Uri) {
launchPasswordActivity(databaseUri, null)
// Delete flickering for kitkat <=

View File

@@ -369,16 +369,6 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
}
}
override fun onValidateSpecialMode() {
super.onValidateSpecialMode()
finish()
}
override fun onCancelSpecialMode() {
super.onCancelSpecialMode()
finish()
}
override fun retrieveCredentialForEncryption(): ByteArray {
return mainCredentialView?.retrieveCredentialForStorage(credentialStorageListener)
?: byteArrayOf()

View File

@@ -1,9 +1,6 @@
package com.kunzisoft.keepass.activities.legacy
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.View
import android.widget.Toast
import com.kunzisoft.keepass.R
@@ -96,9 +93,8 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
private fun backToTheMainAppAndFinish() {
// To move the app in background and return to the main app
// Not visible as opened with FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
moveTaskToBack(true)
// Not finish() to prevent service kill
// Not using FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS or finish() because kills the service
}
override fun onCreate(savedInstanceState: Bundle?) {

View File

@@ -0,0 +1,2 @@
* Fix crash in New Android 13 #1321
* Better backstack management for selection mode

View File

@@ -0,0 +1,2 @@
* Correction d'un crash dans le nouveau Android 13 #1321
* Meilleure gestion de la pile d'arrière plan pour le mode de sélection