Fix keyboard selection result

This commit is contained in:
J-Jamet
2020-10-12 15:04:17 +02:00
parent 7047bcbb1e
commit 7825071f61
6 changed files with 23 additions and 21 deletions

View File

@@ -77,7 +77,7 @@ class EntrySelectionLauncherActivity : AppCompatActivity() {
intent) intent)
} else { } else {
// Select the one we want // Select the one we want
GroupActivity.launchForEntrySelectionResult(this, GroupActivity.launchForKeyboardSelectionResult(this,
true, true,
searchInfo) searchInfo)
} }
@@ -90,7 +90,7 @@ class EntrySelectionLauncherActivity : AppCompatActivity() {
{ {
// Show the database UI to select the entry // Show the database UI to select the entry
if (searchShareForMagikeyboard) { if (searchShareForMagikeyboard) {
GroupActivity.launchForEntrySelectionResult(this, GroupActivity.launchForKeyboardSelectionResult(this,
false, false,
searchInfo) searchInfo)
} else { } else {
@@ -102,7 +102,7 @@ class EntrySelectionLauncherActivity : AppCompatActivity() {
{ {
// If database not open // If database not open
if (searchShareForMagikeyboard) { if (searchShareForMagikeyboard) {
FileDatabaseSelectActivity.launchForEntrySelectionResult(this, FileDatabaseSelectActivity.launchForKeyboardSelectionResult(this,
searchInfo) searchInfo)
} else { } else {
FileDatabaseSelectActivity.launch(this, FileDatabaseSelectActivity.launch(this,

View File

@@ -283,7 +283,7 @@ class FileDatabaseSelectActivity : SpecialModeActivity(),
readOnly) readOnly)
}, },
{ searchInfo -> { searchInfo ->
GroupActivity.launchForEntrySelectionResult(this@FileDatabaseSelectActivity, GroupActivity.launchForKeyboardSelectionResult(this@FileDatabaseSelectActivity,
false, false,
searchInfo, searchInfo,
readOnly) readOnly)
@@ -502,9 +502,9 @@ class FileDatabaseSelectActivity : SpecialModeActivity(),
* ------------------------- * -------------------------
*/ */
fun launchForEntrySelectionResult(activity: Activity, fun launchForKeyboardSelectionResult(activity: Activity,
searchInfo: SearchInfo? = null) { searchInfo: SearchInfo? = null) {
EntrySelectionHelper.startActivityForSelectionModeResult(activity, EntrySelectionHelper.startActivityForKeyboardSelectionModeResult(activity,
Intent(activity, FileDatabaseSelectActivity::class.java), Intent(activity, FileDatabaseSelectActivity::class.java),
searchInfo) searchInfo)
} }

View File

@@ -1126,13 +1126,13 @@ class GroupActivity : LockingActivity(),
* Keyboard Launch * Keyboard Launch
* ------------------------- * -------------------------
*/ */
fun launchForEntrySelectionResult(context: Context, fun launchForKeyboardSelectionResult(context: Context,
autoSearch: Boolean = false, autoSearch: Boolean = false,
searchInfo: SearchInfo? = null, searchInfo: SearchInfo? = null,
readOnly: Boolean = PreferencesUtil.enableReadOnlyDatabase(context)) { readOnly: Boolean = PreferencesUtil.enableReadOnlyDatabase(context)) {
checkTimeAndBuildIntent(context, null, readOnly) { intent -> checkTimeAndBuildIntent(context, null, readOnly) { intent ->
intent.putExtra(AUTO_SEARCH_KEY, autoSearch) intent.putExtra(AUTO_SEARCH_KEY, autoSearch)
EntrySelectionHelper.startActivityForSelectionModeResult(context, EntrySelectionHelper.startActivityForKeyboardSelectionModeResult(context,
intent, intent,
searchInfo) searchInfo)
} }

View File

@@ -35,11 +35,11 @@ class MagikeyboardLauncherActivity : AppCompatActivity() {
null, null,
{}, {},
{ {
GroupActivity.launchForEntrySelectionResult(this) GroupActivity.launchForKeyboardSelectionResult(this)
}, },
{ {
// Pass extra to get entry // Pass extra to get entry
FileDatabaseSelectActivity.launchForEntrySelectionResult(this) FileDatabaseSelectActivity.launchForKeyboardSelectionResult(this)
} }
) )
finish() finish()

View File

@@ -309,14 +309,14 @@ open class PasswordActivity : SpecialModeActivity() {
intent) intent)
} else { } else {
// Select the one we want // Select the one we want
GroupActivity.launchForEntrySelectionResult(this, GroupActivity.launchForKeyboardSelectionResult(this,
true, true,
searchInfo) searchInfo)
} }
}, },
{ {
// Here no search info found, disable auto search // Here no search info found, disable auto search
GroupActivity.launchForEntrySelectionResult(this@PasswordActivity, GroupActivity.launchForKeyboardSelectionResult(this@PasswordActivity,
false, false,
searchInfo, searchInfo,
readOnly) readOnly)
@@ -856,7 +856,7 @@ open class PasswordActivity : SpecialModeActivity() {
keyFile: Uri?, keyFile: Uri?,
searchInfo: SearchInfo?) { searchInfo: SearchInfo?) {
buildAndLaunchIntent(activity, databaseFile, keyFile) { intent -> buildAndLaunchIntent(activity, databaseFile, keyFile) { intent ->
EntrySelectionHelper.startActivityForSelectionModeResult( EntrySelectionHelper.startActivityForKeyboardSelectionModeResult(
activity, activity,
intent, intent,
searchInfo) searchInfo)

View File

@@ -35,10 +35,11 @@ object EntrySelectionHelper {
private const val KEY_SEARCH_INFO = "com.kunzisoft.keepass.extra.SEARCH_INFO" private const val KEY_SEARCH_INFO = "com.kunzisoft.keepass.extra.SEARCH_INFO"
private const val KEY_REGISTER_INFO = "com.kunzisoft.keepass.extra.REGISTER_INFO" private const val KEY_REGISTER_INFO = "com.kunzisoft.keepass.extra.REGISTER_INFO"
fun startActivityForSelectionModeResult(context: Context, fun startActivityForKeyboardSelectionModeResult(context: Context,
intent: Intent, intent: Intent,
searchInfo: SearchInfo?) { searchInfo: SearchInfo?) {
addSpecialModeInIntent(intent, SpecialMode.SELECTION) addSpecialModeInIntent(intent, SpecialMode.SELECTION)
addTypeModeInIntent(intent, TypeMode.MAGIKEYBOARD)
addSearchInfoInIntent(intent, searchInfo) addSearchInfoInIntent(intent, searchInfo)
context.startActivity(intent) context.startActivity(intent)
} }
@@ -130,8 +131,9 @@ object EntrySelectionHelper {
} }
if (!assistStructureInit) { if (!assistStructureInit) {
if (intent.getSerializableExtra(KEY_SPECIAL_MODE) != null) { if (intent.getSerializableExtra(KEY_SPECIAL_MODE) != null) {
val typeMode = retrieveTypeModeFromIntent(intent)
removeModesFromIntent(intent) removeModesFromIntent(intent)
when (retrieveTypeModeFromIntent(intent)) { when (typeMode) {
TypeMode.DEFAULT -> defaultAction.invoke(searchInfo) TypeMode.DEFAULT -> defaultAction.invoke(searchInfo)
TypeMode.MAGIKEYBOARD -> keyboardSelectionAction.invoke(searchInfo) TypeMode.MAGIKEYBOARD -> keyboardSelectionAction.invoke(searchInfo)
TypeMode.AUTOFILL -> autofillSelectionAction.invoke(searchInfo, null) TypeMode.AUTOFILL -> autofillSelectionAction.invoke(searchInfo, null)