* 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) KeePassDX(3.4.3)
* Remove "Select share info" setting for Magikeyboard #1304 * Remove "Select share info" setting for Magikeyboard #1304
* Fix quick search and better loadGroup implementation #1302 * Fix quick search and better loadGroup implementation #1302

View File

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

View File

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

View File

@@ -31,7 +31,6 @@ import com.kunzisoft.keepass.database.search.SearchHelper
import com.kunzisoft.keepass.magikeyboard.MagikeyboardService import com.kunzisoft.keepass.magikeyboard.MagikeyboardService
import com.kunzisoft.keepass.model.SearchInfo import com.kunzisoft.keepass.model.SearchInfo
import com.kunzisoft.keepass.otp.OtpEntryFields import com.kunzisoft.keepass.otp.OtpEntryFields
import com.kunzisoft.keepass.settings.PreferencesUtil
/** /**
* Activity to search or select entry in database, * Activity to search or select entry in database,
@@ -44,7 +43,7 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
} }
override fun finishActivityIfReloadRequested(): Boolean { override fun finishActivityIfReloadRequested(): Boolean {
return true return false
} }
override fun onDatabaseRetrieved(database: Database?) { override fun onDatabaseRetrieved(database: Database?) {
@@ -74,6 +73,7 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
sharedWebDomain = Uri.parse(extra).host sharedWebDomain = Uri.parse(extra).host
} }
} }
launchSelection(database, sharedWebDomain, otpString)
} }
Intent.ACTION_VIEW -> { Intent.ACTION_VIEW -> {
// Retrieve OTP // Retrieve OTP
@@ -81,20 +81,32 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
if (OtpEntryFields.isOTPUri(extra)) if (OtpEntryFields.isOTPUri(extra))
otpString = extra otpString = extra
} }
launchSelection(database, sharedWebDomain, otpString)
}
else -> {
if (database != null) {
GroupActivity.launch(this, database)
} else {
FileDatabaseSelectActivity.launch(this)
}
} }
else -> {}
} }
}
finish()
}
// Build domain search param private fun launchSelection(database: Database?,
val searchInfo = SearchInfo().apply { sharedWebDomain: String?,
this.webDomain = sharedWebDomain otpString: String?) {
this.otpString = otpString // Build domain search param
} val searchInfo = SearchInfo().apply {
this.webDomain = sharedWebDomain
this.otpString = otpString
}
SearchInfo.getConcreteWebDomain(this, searchInfo.webDomain) { concreteWebDomain -> SearchInfo.getConcreteWebDomain(this, searchInfo.webDomain) { concreteWebDomain ->
searchInfo.webDomain = concreteWebDomain searchInfo.webDomain = concreteWebDomain
launch(database, searchInfo) launch(database, searchInfo)
}
} }
} }
@@ -188,7 +200,6 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
} }
} }
) )
finish()
} }
companion object { 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) { private fun launchPasswordActivityWithPath(databaseUri: Uri) {
launchPasswordActivity(databaseUri, null) launchPasswordActivity(databaseUri, null)
// Delete flickering for kitkat <= // 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 { override fun retrieveCredentialForEncryption(): ByteArray {
return mainCredentialView?.retrieveCredentialForStorage(credentialStorageListener) return mainCredentialView?.retrieveCredentialForStorage(credentialStorageListener)
?: byteArrayOf() ?: byteArrayOf()

View File

@@ -1,9 +1,6 @@
package com.kunzisoft.keepass.activities.legacy package com.kunzisoft.keepass.activities.legacy
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
import com.kunzisoft.keepass.R import com.kunzisoft.keepass.R
@@ -96,9 +93,8 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
private fun backToTheMainAppAndFinish() { private fun backToTheMainAppAndFinish() {
// To move the app in background and return to the main app // To move the app in background and return to the main app
// Not visible as opened with FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
moveTaskToBack(true) 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?) { 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