mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: Refactoring result launcher
This commit is contained in:
@@ -99,9 +99,6 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
|||||||
|
|
||||||
private var mExternalFileHelper: ExternalFileHelper? = null
|
private var mExternalFileHelper: ExternalFileHelper? = null
|
||||||
|
|
||||||
private var mCredentialActivityResultLauncher: ActivityResultLauncher<Intent>? =
|
|
||||||
this.buildActivityResultLauncher()
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
|||||||
@@ -267,9 +267,6 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
mGroupEditViewModel.selectIcon(icon)
|
mGroupEditViewModel.selectIcon(icon)
|
||||||
}
|
}
|
||||||
|
|
||||||
private var mCredentialActivityResultLauncher: ActivityResultLauncher<Intent>? =
|
|
||||||
this.buildActivityResultLauncher()
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
|||||||
@@ -128,9 +128,6 @@ class MainCredentialActivity : DatabaseModeActivity() {
|
|||||||
private var mReadOnly: Boolean = false
|
private var mReadOnly: Boolean = false
|
||||||
private var mForceReadOnly: Boolean = false
|
private var mForceReadOnly: Boolean = false
|
||||||
|
|
||||||
private var mCredentialActivityResultLauncher: ActivityResultLauncher<Intent>? =
|
|
||||||
this.buildActivityResultLauncher()
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package com.kunzisoft.keepass.activities.legacy
|
package com.kunzisoft.keepass.activities.legacy
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import com.kunzisoft.keepass.R
|
import com.kunzisoft.keepass.R
|
||||||
import com.kunzisoft.keepass.credentialprovider.EntrySelectionHelper
|
import com.kunzisoft.keepass.credentialprovider.EntrySelectionHelper
|
||||||
|
import com.kunzisoft.keepass.credentialprovider.EntrySelectionHelper.buildActivityResultLauncher
|
||||||
import com.kunzisoft.keepass.credentialprovider.EntrySelectionHelper.isIntentSenderMode
|
import com.kunzisoft.keepass.credentialprovider.EntrySelectionHelper.isIntentSenderMode
|
||||||
import com.kunzisoft.keepass.credentialprovider.SpecialMode
|
import com.kunzisoft.keepass.credentialprovider.SpecialMode
|
||||||
import com.kunzisoft.keepass.credentialprovider.TypeMode
|
import com.kunzisoft.keepass.credentialprovider.TypeMode
|
||||||
@@ -21,10 +24,13 @@ import com.kunzisoft.keepass.view.ToolbarSpecial
|
|||||||
abstract class DatabaseModeActivity : DatabaseActivity() {
|
abstract class DatabaseModeActivity : DatabaseActivity() {
|
||||||
|
|
||||||
protected var mSpecialMode: SpecialMode = SpecialMode.DEFAULT
|
protected var mSpecialMode: SpecialMode = SpecialMode.DEFAULT
|
||||||
private var mTypeMode: TypeMode = TypeMode.DEFAULT
|
protected var mTypeMode: TypeMode = TypeMode.DEFAULT
|
||||||
|
|
||||||
private var mToolbarSpecial: ToolbarSpecial? = null
|
private var mToolbarSpecial: ToolbarSpecial? = null
|
||||||
|
|
||||||
|
protected open var mCredentialActivityResultLauncher: ActivityResultLauncher<Intent>? =
|
||||||
|
this.buildActivityResultLauncher(mTypeMode)
|
||||||
|
|
||||||
open fun onDatabaseBackPressed() {
|
open fun onDatabaseBackPressed() {
|
||||||
if (mSpecialMode != SpecialMode.DEFAULT)
|
if (mSpecialMode != SpecialMode.DEFAULT)
|
||||||
onCancelSpecialMode()
|
onCancelSpecialMode()
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ object EntrySelectionHelper {
|
|||||||
* Finish the activity by passing the result code and by locking the database if necessary
|
* Finish the activity by passing the result code and by locking the database if necessary
|
||||||
*/
|
*/
|
||||||
fun Activity.setActivityResult(
|
fun Activity.setActivityResult(
|
||||||
|
typeMode: TypeMode,
|
||||||
lockDatabase: Boolean = false,
|
lockDatabase: Boolean = false,
|
||||||
resultCode: Int,
|
resultCode: Int,
|
||||||
data: Intent? = null,
|
data: Intent? = null,
|
||||||
@@ -68,9 +69,15 @@ object EntrySelectionHelper {
|
|||||||
}
|
}
|
||||||
this.finish()
|
this.finish()
|
||||||
|
|
||||||
if (lockDatabase && PreferencesUtil.isAutofillCloseDatabaseEnable(this)) {
|
if (lockDatabase) {
|
||||||
// Close the database
|
when (typeMode) {
|
||||||
this.sendBroadcast(Intent(LOCK_ACTION))
|
TypeMode.DEFAULT -> // Close the database
|
||||||
|
this.sendBroadcast(Intent(LOCK_ACTION))
|
||||||
|
TypeMode.MAGIKEYBOARD -> { }
|
||||||
|
TypeMode.AUTOFILL -> if (PreferencesUtil.isAutofillCloseDatabaseEnable(this))
|
||||||
|
this.sendBroadcast(Intent(LOCK_ACTION))
|
||||||
|
TypeMode.PASSKEY -> { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +86,7 @@ object EntrySelectionHelper {
|
|||||||
* Used recursively, close each activity with return data
|
* Used recursively, close each activity with return data
|
||||||
*/
|
*/
|
||||||
fun AppCompatActivity.buildActivityResultLauncher(
|
fun AppCompatActivity.buildActivityResultLauncher(
|
||||||
|
typeMode: TypeMode,
|
||||||
lockDatabase: Boolean = false,
|
lockDatabase: Boolean = false,
|
||||||
dataTransformation: (data: Intent?) -> Intent? = { it },
|
dataTransformation: (data: Intent?) -> Intent? = { it },
|
||||||
): ActivityResultLauncher<Intent> {
|
): ActivityResultLauncher<Intent> {
|
||||||
@@ -86,6 +94,7 @@ object EntrySelectionHelper {
|
|||||||
ActivityResultContracts.StartActivityForResult()
|
ActivityResultContracts.StartActivityForResult()
|
||||||
) {
|
) {
|
||||||
setActivityResult(
|
setActivityResult(
|
||||||
|
typeMode,
|
||||||
lockDatabase,
|
lockDatabase,
|
||||||
it.resultCode,
|
it.resultCode,
|
||||||
dataTransformation(it.data)
|
dataTransformation(it.data)
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ import com.kunzisoft.keepass.view.toastError
|
|||||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||||
class AutofillLauncherActivity : DatabaseModeActivity() {
|
class AutofillLauncherActivity : DatabaseModeActivity() {
|
||||||
|
|
||||||
private var mCredentialActivityResultLauncher: ActivityResultLauncher<Intent>? =
|
override var mCredentialActivityResultLauncher: ActivityResultLauncher<Intent>? =
|
||||||
this.buildActivityResultLauncher(lockDatabase = true)
|
this.buildActivityResultLauncher(typeMode = TypeMode.AUTOFILL, lockDatabase = true)
|
||||||
|
|
||||||
override fun applyCustomStyle(): Boolean {
|
override fun applyCustomStyle(): Boolean {
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ class PasskeyLauncherActivity : DatabaseLockActivity() {
|
|||||||
}
|
}
|
||||||
is PasskeyLauncherViewModel.UIState.SetActivityResult -> {
|
is PasskeyLauncherViewModel.UIState.SetActivityResult -> {
|
||||||
setActivityResult(
|
setActivityResult(
|
||||||
|
typeMode = TypeMode.PASSKEY,
|
||||||
lockDatabase = uiState.lockDatabase,
|
lockDatabase = uiState.lockDatabase,
|
||||||
resultCode = uiState.resultCode,
|
resultCode = uiState.resultCode,
|
||||||
data = uiState.data
|
data = uiState.data
|
||||||
|
|||||||
Reference in New Issue
Block a user