mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
fix: Save mode as registration mode
This commit is contained in:
@@ -206,8 +206,8 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
mDatabase,
|
||||
entryId,
|
||||
parentId,
|
||||
EntrySelectionHelper.retrieveRegisterInfoFromIntent(intent),
|
||||
EntrySelectionHelper.retrieveSearchInfoFromIntent(intent)
|
||||
EntrySelectionHelper.retrieveRegisterInfoFromIntent(intent)
|
||||
?: EntrySelectionHelper.retrieveSearchInfoFromIntent(intent)?.toRegisterInfo()
|
||||
)
|
||||
|
||||
// To retrieve attachment
|
||||
@@ -381,7 +381,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
intent = intent,
|
||||
defaultAction = {},
|
||||
searchAction = {},
|
||||
saveAction = {},
|
||||
registrationAction = {},
|
||||
keyboardSelectionAction = {
|
||||
entryValidatedForKeyboardSelection(database, entrySave.newEntry)
|
||||
},
|
||||
@@ -442,7 +442,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
searchAction = {
|
||||
// Nothing when search retrieved
|
||||
},
|
||||
saveAction = {
|
||||
registrationAction = {
|
||||
entryValidatedForSave(entry)
|
||||
},
|
||||
keyboardSelectionAction = {
|
||||
@@ -783,7 +783,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
val bundle = buildEntryResult(entry)
|
||||
val intentEntry = Intent()
|
||||
intentEntry.putExtras(bundle)
|
||||
setResult(Activity.RESULT_OK, intentEntry)
|
||||
setResult(RESULT_OK, intentEntry)
|
||||
super.finish()
|
||||
} catch (e: Exception) {
|
||||
// Exception when parcelable can't be done
|
||||
@@ -803,7 +803,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
fun registerForEntryResult(fragment: Fragment,
|
||||
entryAddedOrUpdatedListener: (NodeId<UUID>?) -> Unit): ActivityResultLauncher<Intent> {
|
||||
return fragment.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
if (result.resultCode == Activity.RESULT_OK) {
|
||||
if (result.resultCode == RESULT_OK) {
|
||||
entryAddedOrUpdatedListener.invoke(
|
||||
result.data?.getParcelableExtraCompat(ADD_OR_UPDATE_ENTRY_KEY)
|
||||
)
|
||||
@@ -816,7 +816,7 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
fun registerForEntryResult(activity: FragmentActivity,
|
||||
entryAddedOrUpdatedListener: (NodeId<UUID>?) -> Unit): ActivityResultLauncher<Intent> {
|
||||
return activity.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
if (result.resultCode == Activity.RESULT_OK) {
|
||||
if (result.resultCode == RESULT_OK) {
|
||||
entryAddedOrUpdatedListener.invoke(
|
||||
result.data?.getParcelableExtraCompat(ADD_OR_UPDATE_ENTRY_KEY)
|
||||
)
|
||||
@@ -858,40 +858,6 @@ class EntryEditActivity : DatabaseLockActivity(),
|
||||
}
|
||||
}
|
||||
|
||||
fun launchToUpdateForSave(context: Context,
|
||||
database: ContextualDatabase,
|
||||
entryId: NodeId<UUID>,
|
||||
searchInfo: SearchInfo) {
|
||||
if (database.loaded && !database.isReadOnly) {
|
||||
if (TimeoutHelper.checkTimeAndLockIfTimeout(context)) {
|
||||
val intent = Intent(context, EntryEditActivity::class.java)
|
||||
intent.putExtra(KEY_ENTRY, entryId)
|
||||
EntrySelectionHelper.startActivityForSaveModeResult(
|
||||
context,
|
||||
intent,
|
||||
searchInfo
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun launchToCreateForSave(context: Context,
|
||||
database: ContextualDatabase,
|
||||
groupId: NodeId<*>,
|
||||
searchInfo: SearchInfo) {
|
||||
if (database.loaded && !database.isReadOnly) {
|
||||
if (TimeoutHelper.checkTimeAndLockIfTimeout(context)) {
|
||||
val intent = Intent(context, EntryEditActivity::class.java)
|
||||
intent.putExtra(KEY_PARENT, groupId)
|
||||
EntrySelectionHelper.startActivityForSaveModeResult(
|
||||
context,
|
||||
intent,
|
||||
searchInfo
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Launch EntryEditActivity to add a new entry in keyboard selection
|
||||
*/
|
||||
|
||||
@@ -449,19 +449,6 @@ class FileDatabaseSelectActivity : DatabaseModeActivity(),
|
||||
searchInfo)
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------
|
||||
* Save Launch
|
||||
* -------------------------
|
||||
*/
|
||||
|
||||
fun launchForSaveResult(context: Context,
|
||||
searchInfo: SearchInfo) {
|
||||
EntrySelectionHelper.startActivityForSaveModeResult(context,
|
||||
Intent(context, FileDatabaseSelectActivity::class.java),
|
||||
searchInfo)
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------
|
||||
* Keyboard Launch
|
||||
|
||||
@@ -500,12 +500,14 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
searchAction = {
|
||||
// Search not used
|
||||
},
|
||||
saveAction = { searchInfo ->
|
||||
EntryEditActivity.launchToCreateForSave(
|
||||
registrationAction = { registerInfo ->
|
||||
EntryEditActivity.launchToCreateForRegistration(
|
||||
context = this@GroupActivity,
|
||||
database = database,
|
||||
activityResultLauncher = null,
|
||||
groupId = currentGroup.nodeId,
|
||||
searchInfo = searchInfo
|
||||
registerInfo = registerInfo,
|
||||
typeMode = TypeMode.DEFAULT
|
||||
)
|
||||
onLaunchActivitySpecialMode()
|
||||
},
|
||||
@@ -714,7 +716,7 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
searchAction = {
|
||||
// Search not used
|
||||
},
|
||||
saveAction = {
|
||||
registrationAction = {
|
||||
// Save not used
|
||||
},
|
||||
keyboardSelectionAction = {
|
||||
@@ -739,7 +741,7 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
}
|
||||
},
|
||||
passkeyRegistrationAction = {
|
||||
// TODO Passkey Registration
|
||||
// Not use
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -897,9 +899,15 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
searchAction = {
|
||||
// Nothing here, a search is simply performed
|
||||
},
|
||||
saveAction = { searchInfo ->
|
||||
registrationAction = { registerInfo ->
|
||||
if (!database.isReadOnly) {
|
||||
entrySelectedForSave(database, entryVersioned, searchInfo)
|
||||
entrySelectedForRegistration(
|
||||
database = database,
|
||||
entry = entryVersioned,
|
||||
activityResultLauncher = null,
|
||||
registerInfo = registerInfo,
|
||||
typeMode = TypeMode.DEFAULT
|
||||
)
|
||||
loadGroup()
|
||||
} else
|
||||
finish()
|
||||
@@ -909,7 +917,11 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
&& searchInfo != null
|
||||
&& PreferencesUtil.isKeyboardSaveSearchInfoEnable(this@GroupActivity)
|
||||
) {
|
||||
updateEntryWithSearchInfo(database, entryVersioned, searchInfo)
|
||||
updateEntryWithRegisterInfo(
|
||||
database,
|
||||
entryVersioned,
|
||||
searchInfo.toRegisterInfo()
|
||||
)
|
||||
}
|
||||
entrySelectedForKeyboardSelection(database, entryVersioned)
|
||||
loadGroup()
|
||||
@@ -919,7 +931,11 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
&& searchInfo != null
|
||||
&& PreferencesUtil.isAutofillSaveSearchInfoEnable(this@GroupActivity)
|
||||
) {
|
||||
updateEntryWithSearchInfo(database, entryVersioned, searchInfo)
|
||||
updateEntryWithRegisterInfo(
|
||||
database,
|
||||
entryVersioned,
|
||||
searchInfo.toRegisterInfo()
|
||||
)
|
||||
}
|
||||
entrySelectedForAutofillSelection(database, entryVersioned)
|
||||
loadGroup()
|
||||
@@ -938,11 +954,6 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
finish()
|
||||
},
|
||||
passkeySelectionAction = { searchInfo ->
|
||||
if (!database.isReadOnly
|
||||
&& searchInfo != null
|
||||
) {
|
||||
updateEntryWithSearchInfo(database, entryVersioned, searchInfo)
|
||||
}
|
||||
entrySelectedForPasskeySelection(database, entryVersioned)
|
||||
loadGroup()
|
||||
},
|
||||
@@ -966,18 +977,6 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
}
|
||||
}
|
||||
|
||||
private fun entrySelectedForSave(database: ContextualDatabase, entry: Entry, searchInfo: SearchInfo) {
|
||||
removeSearch()
|
||||
// Save to update the entry
|
||||
EntryEditActivity.launchToUpdateForSave(
|
||||
this@GroupActivity,
|
||||
database,
|
||||
entry.nodeId,
|
||||
searchInfo
|
||||
)
|
||||
onLaunchActivitySpecialMode()
|
||||
}
|
||||
|
||||
private fun entrySelectedForKeyboardSelection(database: ContextualDatabase, entry: Entry) {
|
||||
removeSearch()
|
||||
// Populate Magikeyboard with entry
|
||||
@@ -1032,10 +1031,10 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
onLaunchActivitySpecialMode()
|
||||
}
|
||||
|
||||
private fun updateEntryWithSearchInfo(
|
||||
private fun updateEntryWithRegisterInfo(
|
||||
database: ContextualDatabase,
|
||||
entry: Entry,
|
||||
searchInfo: SearchInfo
|
||||
registerInfo: RegisterInfo
|
||||
) {
|
||||
val newEntry = Entry(entry)
|
||||
val entryInfo = newEntry.getEntryInfo(
|
||||
@@ -1043,8 +1042,7 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
raw = true,
|
||||
removeTemplateConfiguration = false
|
||||
)
|
||||
// TODO Transform SearchInfo in RegisterInfo
|
||||
entryInfo.saveSearchInfo(database, searchInfo)
|
||||
entryInfo.saveRegisterInfo(database, registerInfo)
|
||||
newEntry.setEntryInfo(database, entryInfo)
|
||||
updateEntry(entry, newEntry)
|
||||
}
|
||||
@@ -1603,27 +1601,6 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------
|
||||
* Search save Launch
|
||||
* -------------------------
|
||||
*/
|
||||
fun launchForSaveResult(context: Context,
|
||||
database: ContextualDatabase,
|
||||
searchInfo: SearchInfo,
|
||||
autoSearch: Boolean = false) {
|
||||
if (database.loaded && !database.isReadOnly) {
|
||||
checkTimeAndBuildIntent(context, null) { intent ->
|
||||
intent.putExtra(AUTO_SEARCH_KEY, autoSearch)
|
||||
EntrySelectionHelper.startActivityForSaveModeResult(
|
||||
context,
|
||||
intent,
|
||||
searchInfo
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------
|
||||
* Keyboard Launch
|
||||
@@ -1753,15 +1730,16 @@ class GroupActivity : DatabaseLockActivity(),
|
||||
onCancelSpecialMode()
|
||||
}
|
||||
},
|
||||
saveAction = { searchInfo ->
|
||||
registrationAction = { registerInfo ->
|
||||
// Save info
|
||||
if (database.loaded) {
|
||||
if (!database.isReadOnly) {
|
||||
launchForSaveResult(
|
||||
activity,
|
||||
database,
|
||||
searchInfo,
|
||||
false
|
||||
launchForRegistration(
|
||||
context = activity,
|
||||
activityResultLauncher = null,
|
||||
database = database,
|
||||
registerInfo = registerInfo,
|
||||
typeMode = TypeMode.DEFAULT
|
||||
)
|
||||
onLaunchActivitySpecialMode()
|
||||
} else {
|
||||
|
||||
@@ -572,10 +572,7 @@ class MainCredentialActivity : DatabaseModeActivity() {
|
||||
clearCredentialsViews()
|
||||
}
|
||||
|
||||
if (mReadOnly && (
|
||||
mSpecialMode == SpecialMode.SAVE
|
||||
|| mSpecialMode == SpecialMode.REGISTRATION)
|
||||
) {
|
||||
if (mReadOnly && mSpecialMode == SpecialMode.REGISTRATION) {
|
||||
Log.e(TAG, getString(R.string.error_save_read_only))
|
||||
Snackbar.make(coordinatorLayout,
|
||||
R.string.error_save_read_only,
|
||||
@@ -802,26 +799,6 @@ class MainCredentialActivity : DatabaseModeActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------
|
||||
* Save Launch
|
||||
* -------------------------
|
||||
*/
|
||||
|
||||
@Throws(FileNotFoundException::class)
|
||||
fun launchForSaveResult(activity: Activity,
|
||||
databaseFile: Uri,
|
||||
keyFile: Uri?,
|
||||
hardwareKey: HardwareKey?,
|
||||
searchInfo: SearchInfo) {
|
||||
buildAndLaunchIntent(activity, databaseFile, keyFile, hardwareKey) { intent ->
|
||||
EntrySelectionHelper.startActivityForSaveModeResult(
|
||||
activity,
|
||||
intent,
|
||||
searchInfo)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* -------------------------
|
||||
* Keyboard Launch
|
||||
@@ -950,13 +927,15 @@ class MainCredentialActivity : DatabaseModeActivity() {
|
||||
)
|
||||
onLaunchActivitySpecialMode()
|
||||
},
|
||||
saveAction = { searchInfo ->
|
||||
launchForSaveResult(
|
||||
registrationAction = { registerInfo ->
|
||||
launchForRegistration(
|
||||
activity = activity,
|
||||
activityResultLauncher = activityResultLauncher,
|
||||
databaseFile = databaseUri,
|
||||
keyFile = keyFile,
|
||||
hardwareKey = hardwareKey,
|
||||
searchInfo = searchInfo
|
||||
typeMode = TypeMode.DEFAULT,
|
||||
registerInfo = registerInfo
|
||||
)
|
||||
onLaunchActivitySpecialMode()
|
||||
},
|
||||
|
||||
@@ -392,10 +392,8 @@ abstract class DatabaseLockActivity : DatabaseModeActivity(),
|
||||
}
|
||||
|
||||
private fun checkRegister() {
|
||||
// If in ave or registration mode, don't allow read only
|
||||
if ((mSpecialMode == SpecialMode.SAVE
|
||||
|| mSpecialMode == SpecialMode.REGISTRATION)
|
||||
&& mDatabaseReadOnly) {
|
||||
// If in registration mode, don't allow read only
|
||||
if (mSpecialMode == SpecialMode.REGISTRATION && mDatabaseReadOnly) {
|
||||
Toast.makeText(this, R.string.error_registration_read_only , Toast.LENGTH_LONG).show()
|
||||
EntrySelectionHelper.removeModesFromIntent(intent)
|
||||
finish()
|
||||
|
||||
@@ -125,9 +125,8 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
|
||||
val selectionModeStringId = when (mSpecialMode) {
|
||||
SpecialMode.DEFAULT, // Not important because hidden
|
||||
SpecialMode.SEARCH -> R.string.search_mode
|
||||
SpecialMode.SAVE -> R.string.save_mode
|
||||
SpecialMode.SELECTION -> R.string.selection_mode
|
||||
SpecialMode.REGISTRATION -> R.string.registration_mode
|
||||
SpecialMode.REGISTRATION -> R.string.save_mode // Save is registration mode
|
||||
}
|
||||
val typeModeStringId = when (mTypeMode) {
|
||||
TypeMode.DEFAULT, // Not important because hidden
|
||||
@@ -145,7 +144,6 @@ abstract class DatabaseModeActivity : DatabaseActivity() {
|
||||
visible = when (mSpecialMode) {
|
||||
SpecialMode.DEFAULT -> false
|
||||
SpecialMode.SEARCH -> true
|
||||
SpecialMode.SAVE -> true
|
||||
SpecialMode.SELECTION -> true
|
||||
SpecialMode.REGISTRATION -> true
|
||||
}
|
||||
|
||||
@@ -102,16 +102,6 @@ object EntrySelectionHelper {
|
||||
context.startActivity(intent)
|
||||
}
|
||||
|
||||
fun startActivityForSaveModeResult(context: Context,
|
||||
intent: Intent,
|
||||
searchInfo: SearchInfo) {
|
||||
addSpecialModeInIntent(intent, SpecialMode.SAVE)
|
||||
addTypeModeInIntent(intent, TypeMode.DEFAULT)
|
||||
addSearchInfoInIntent(intent, searchInfo)
|
||||
intent.flags = intent.flags or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||
context.startActivity(intent)
|
||||
}
|
||||
|
||||
fun startActivityForKeyboardSelectionModeResult(context: Context,
|
||||
intent: Intent,
|
||||
searchInfo: SearchInfo?) {
|
||||
@@ -245,16 +235,18 @@ object EntrySelectionHelper {
|
||||
&& typeMode == TypeMode.PASSKEY)
|
||||
}
|
||||
|
||||
fun doSpecialAction(intent: Intent,
|
||||
defaultAction: () -> Unit,
|
||||
searchAction: (searchInfo: SearchInfo) -> Unit,
|
||||
saveAction: (searchInfo: SearchInfo) -> Unit,
|
||||
keyboardSelectionAction: (searchInfo: SearchInfo?) -> Unit,
|
||||
autofillSelectionAction: (searchInfo: SearchInfo?,
|
||||
autofillComponent: AutofillComponent) -> Unit,
|
||||
autofillRegistrationAction: (registerInfo: RegisterInfo?) -> Unit,
|
||||
passkeySelectionAction: (searchInfo: SearchInfo?) -> Unit,
|
||||
passkeyRegistrationAction: (registerInfo: RegisterInfo?) -> Unit) {
|
||||
fun doSpecialAction(
|
||||
intent: Intent,
|
||||
defaultAction: () -> Unit,
|
||||
searchAction: (searchInfo: SearchInfo) -> Unit,
|
||||
registrationAction: (registerInfo: RegisterInfo?) -> Unit,
|
||||
keyboardSelectionAction: (searchInfo: SearchInfo?) -> Unit,
|
||||
autofillSelectionAction: (searchInfo: SearchInfo?,
|
||||
autofillComponent: AutofillComponent) -> Unit,
|
||||
autofillRegistrationAction: (registerInfo: RegisterInfo?) -> Unit,
|
||||
passkeySelectionAction: (searchInfo: SearchInfo?) -> Unit,
|
||||
passkeyRegistrationAction: (registerInfo: RegisterInfo?) -> Unit
|
||||
) {
|
||||
|
||||
when (retrieveSpecialModeFromIntent(intent)) {
|
||||
SpecialMode.DEFAULT -> {
|
||||
@@ -272,16 +264,6 @@ object EntrySelectionHelper {
|
||||
defaultAction.invoke()
|
||||
}
|
||||
}
|
||||
SpecialMode.SAVE -> {
|
||||
val searchInfo = retrieveSearchInfoFromIntent(intent)
|
||||
removeModesFromIntent(intent)
|
||||
removeInfoFromIntent(intent)
|
||||
if (searchInfo != null)
|
||||
saveAction.invoke(searchInfo)
|
||||
else {
|
||||
defaultAction.invoke()
|
||||
}
|
||||
}
|
||||
SpecialMode.SELECTION -> {
|
||||
val searchInfo: SearchInfo? = retrieveSearchInfoFromIntent(intent)
|
||||
var autofillComponentInit = false
|
||||
@@ -334,7 +316,11 @@ object EntrySelectionHelper {
|
||||
passkeyRegistrationAction.invoke(registerInfo)
|
||||
}
|
||||
else -> {
|
||||
// Do other registration type
|
||||
if (registerInfo != null)
|
||||
registrationAction.invoke(registerInfo)
|
||||
else {
|
||||
defaultAction.invoke()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.kunzisoft.keepass.credentialprovider
|
||||
enum class SpecialMode {
|
||||
DEFAULT,
|
||||
SEARCH,
|
||||
SAVE,
|
||||
SELECTION,
|
||||
REGISTRATION;
|
||||
}
|
||||
@@ -22,12 +22,11 @@ package com.kunzisoft.keepass.credentialprovider.activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.core.net.toUri
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.FileDatabaseSelectActivity
|
||||
import com.kunzisoft.keepass.activities.GroupActivity
|
||||
import com.kunzisoft.keepass.activities.legacy.DatabaseModeActivity
|
||||
import com.kunzisoft.keepass.credentialprovider.TypeMode
|
||||
import com.kunzisoft.keepass.credentialprovider.magikeyboard.MagikeyboardService
|
||||
import com.kunzisoft.keepass.database.ContextualDatabase
|
||||
import com.kunzisoft.keepass.database.exception.RegisterInReadOnlyDatabaseException
|
||||
@@ -88,7 +87,7 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
|
||||
if (OtpEntryFields.isOTPUri(extra))
|
||||
otpString = extra
|
||||
}
|
||||
launchSelection(database, sharedWebDomain, otpString)
|
||||
launchSelection(database, null, otpString)
|
||||
}
|
||||
else -> {
|
||||
if (database != null) {
|
||||
@@ -133,11 +132,12 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
|
||||
// Items found
|
||||
if (searchInfo.otpString != null) {
|
||||
if (!readOnly) {
|
||||
GroupActivity.launchForSaveResult(
|
||||
this,
|
||||
openedDatabase,
|
||||
searchInfo,
|
||||
false
|
||||
GroupActivity.launchForRegistration(
|
||||
context = this,
|
||||
activityResultLauncher = null,
|
||||
database = openedDatabase,
|
||||
registerInfo = searchInfo.toRegisterInfo(),
|
||||
typeMode = TypeMode.DEFAULT
|
||||
)
|
||||
} else {
|
||||
toastError(RegisterInReadOnlyDatabaseException())
|
||||
@@ -174,11 +174,12 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
|
||||
// Show the database UI to select the entry
|
||||
if (searchInfo.otpString != null) {
|
||||
if (!readOnly) {
|
||||
GroupActivity.launchForSaveResult(
|
||||
this,
|
||||
openedDatabase,
|
||||
searchInfo,
|
||||
false
|
||||
GroupActivity.launchForRegistration(
|
||||
context = this,
|
||||
activityResultLauncher = null,
|
||||
database = openedDatabase,
|
||||
registerInfo = searchInfo.toRegisterInfo(),
|
||||
typeMode = TypeMode.DEFAULT
|
||||
)
|
||||
} else {
|
||||
toastError(RegisterInReadOnlyDatabaseException())
|
||||
@@ -202,9 +203,11 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
|
||||
onDatabaseClosed = {
|
||||
// If database not open
|
||||
if (searchInfo.otpString != null) {
|
||||
FileDatabaseSelectActivity.launchForSaveResult(
|
||||
this,
|
||||
searchInfo
|
||||
FileDatabaseSelectActivity.launchForRegistration(
|
||||
context = this,
|
||||
activityResultLauncher = null,
|
||||
registerInfo = searchInfo.toRegisterInfo(),
|
||||
typeMode = TypeMode.DEFAULT
|
||||
)
|
||||
} else if (searchShareForMagikeyboard) {
|
||||
FileDatabaseSelectActivity.launchForKeyboardSelectionResult(
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.kunzisoft.keepass.model.AttachmentState
|
||||
import com.kunzisoft.keepass.model.EntryAttachmentState
|
||||
import com.kunzisoft.keepass.model.EntryInfo
|
||||
import com.kunzisoft.keepass.model.RegisterInfo
|
||||
import com.kunzisoft.keepass.model.SearchInfo
|
||||
import com.kunzisoft.keepass.model.StreamDirection
|
||||
import com.kunzisoft.keepass.otp.OtpElement
|
||||
import com.kunzisoft.keepass.utils.IOActionTask
|
||||
@@ -28,7 +27,6 @@ class EntryEditViewModel: NodeEditViewModel() {
|
||||
private var mEntryId: NodeId<UUID>? = null
|
||||
private var mParentId: NodeId<*>? = null
|
||||
private var mRegisterInfo: RegisterInfo? = null
|
||||
private var mSearchInfo: SearchInfo? = null
|
||||
private var mParent: Group? = null
|
||||
private var mEntry: Entry? = null
|
||||
private var mIsTemplate: Boolean = false
|
||||
@@ -74,18 +72,18 @@ class EntryEditViewModel: NodeEditViewModel() {
|
||||
private val _onBinaryPreviewLoaded = SingleLiveEvent<AttachmentPosition>()
|
||||
|
||||
fun loadDatabase(database: ContextualDatabase?) {
|
||||
loadTemplateEntry(database, mEntryId, mParentId, mRegisterInfo, mSearchInfo)
|
||||
loadTemplateEntry(database, mEntryId, mParentId, mRegisterInfo)
|
||||
}
|
||||
|
||||
fun loadTemplateEntry(database: ContextualDatabase?,
|
||||
entryId: NodeId<UUID>?,
|
||||
parentId: NodeId<*>?,
|
||||
registerInfo: RegisterInfo?,
|
||||
searchInfo: SearchInfo?) {
|
||||
fun loadTemplateEntry(
|
||||
database: ContextualDatabase?,
|
||||
entryId: NodeId<UUID>?,
|
||||
parentId: NodeId<*>?,
|
||||
registerInfo: RegisterInfo?
|
||||
) {
|
||||
this.mEntryId = entryId
|
||||
this.mParentId = parentId
|
||||
this.mRegisterInfo = registerInfo
|
||||
this.mSearchInfo = searchInfo
|
||||
|
||||
database?.let {
|
||||
mEntryId?.let {
|
||||
@@ -105,8 +103,7 @@ class EntryEditViewModel: NodeEditViewModel() {
|
||||
database,
|
||||
entry,
|
||||
mIsTemplate,
|
||||
registerInfo,
|
||||
searchInfo
|
||||
registerInfo
|
||||
)
|
||||
}
|
||||
},
|
||||
@@ -145,8 +142,7 @@ class EntryEditViewModel: NodeEditViewModel() {
|
||||
database,
|
||||
mEntry,
|
||||
mIsTemplate,
|
||||
registerInfo,
|
||||
searchInfo
|
||||
registerInfo
|
||||
)
|
||||
}
|
||||
},
|
||||
@@ -159,11 +155,12 @@ class EntryEditViewModel: NodeEditViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun decodeTemplateEntry(database: ContextualDatabase,
|
||||
entry: Entry?,
|
||||
isTemplate: Boolean,
|
||||
registerInfo: RegisterInfo?,
|
||||
searchInfo: SearchInfo?): TemplatesEntry {
|
||||
private fun decodeTemplateEntry(
|
||||
database: ContextualDatabase,
|
||||
entry: Entry?,
|
||||
isTemplate: Boolean,
|
||||
registerInfo: RegisterInfo?
|
||||
): TemplatesEntry {
|
||||
val templates = database.getTemplates(isTemplate)
|
||||
val entryTemplate = entry?.let { database.getTemplate(it) }
|
||||
?: Template.STANDARD
|
||||
@@ -174,10 +171,6 @@ class EntryEditViewModel: NodeEditViewModel() {
|
||||
// Load entry info
|
||||
entry.getEntryInfo(database, true).let { tempEntryInfo ->
|
||||
// Retrieve data from registration
|
||||
// TODO only save registration
|
||||
searchInfo?.let { tempSearchInfo ->
|
||||
tempEntryInfo.saveSearchInfo(database, tempSearchInfo)
|
||||
}
|
||||
registerInfo?.let { regInfo ->
|
||||
tempEntryInfo.saveRegisterInfo(database, regInfo)
|
||||
}
|
||||
|
||||
@@ -452,7 +452,6 @@
|
||||
<string name="menu_form_filling_settings">ملء النموذج</string>
|
||||
<string name="menu_reload_database">أعد تحميل البيانات</string>
|
||||
<string name="menu_external_icon">أيقونة خارجية</string>
|
||||
<string name="registration_mode">وضع التسجيل</string>
|
||||
<string name="import_app_properties_title">استورد خصائص التطبيق</string>
|
||||
<string name="import_app_properties_summary">اختر ملفًا لاستيراد إعدادات التطبيق</string>
|
||||
<string name="export_app_properties_title">صدّر إعدادات التطبيق</string>
|
||||
|
||||
@@ -485,7 +485,6 @@
|
||||
<string name="search_mode">Axtarış modu</string>
|
||||
<string name="save_mode">Yadda saxlama modu</string>
|
||||
<string name="selection_mode">Seçim modu</string>
|
||||
<string name="registration_mode">Qeydiyyat modu</string>
|
||||
<string name="remember_database_locations_title">Məlumat bazalarının yerlərini xatırlayın</string>
|
||||
<string name="remember_database_locations_summary">Məlumat bazalarının harada saxlanıldığını izlə</string>
|
||||
<string name="remember_hardware_key_summary">Aparat-təchizat açarlarının harada istifadə olunduğunu izlə</string>
|
||||
|
||||
@@ -336,7 +336,6 @@
|
||||
<string name="menu_keystore_remove_key">Izbrišite ključ za otključavanje uređaja</string>
|
||||
<string name="subdomain_search_summary">Pretražujte veb domene sa ograničenjima poddomena</string>
|
||||
<string name="export_app_properties_title">Izvezite podešavanja aplikacije</string>
|
||||
<string name="registration_mode">Režim registracije</string>
|
||||
<string name="remember_database_locations_title">Zapamtite lokacije baza podataka</string>
|
||||
<string name="remember_hardware_key_title">Zapamtite hardverske ključeve</string>
|
||||
<string name="remember_hardware_key_summary">Vodi evidenciju o korišćenim hardverskim ključevima</string>
|
||||
|
||||
@@ -296,7 +296,6 @@
|
||||
<string name="search_mode">Рэжым пошуку</string>
|
||||
<string name="save_mode">Рэжым захавання</string>
|
||||
<string name="selection_mode">Рэжым выбару</string>
|
||||
<string name="registration_mode">Рэжым рэгістрацыі</string>
|
||||
<string name="remember_database_locations_title">Запамінаць размяшчэнне баз дадзеных</string>
|
||||
<string name="remember_database_locations_summary">Адсочвае, дзе захоўваюцца базы дадзеных</string>
|
||||
<string name="remember_keyfile_locations_title">Запамінаць размяшчэнне файлаў ключоў</string>
|
||||
|
||||
@@ -462,7 +462,6 @@
|
||||
<string name="error_invalid_OTP">Неприемлива тайна за OTP.</string>
|
||||
<string name="error_no_name">Въведете име.</string>
|
||||
<string name="hide_broken_locations_summary">Скрива вече несъществуващи хранилища от списъка с последно отваряните</string>
|
||||
<string name="registration_mode">Режим регистрация</string>
|
||||
<string name="remember_database_locations_title">Запомняне използваните хранилища</string>
|
||||
<string name="show_recent_files_title">Показване на последните хранилища</string>
|
||||
<string name="search_mode">Режим търсене</string>
|
||||
|
||||
@@ -209,7 +209,6 @@
|
||||
<string name="search_mode">অনুসন্ধান মোড</string>
|
||||
<string name="save_mode">সেভ মোড</string>
|
||||
<string name="selection_mode">নির্বাচন মোড</string>
|
||||
<string name="registration_mode">রেজিস্ট্রেশন মোড</string>
|
||||
<string name="remember_keyfile_locations_summary">কী ফাইলগুলি কোথায় সংরক্ষণ করা হয় তা ট্র্যাক রাখে</string>
|
||||
<string name="show_recent_files_title">সাম্প্রতিক ফাইল দেখান</string>
|
||||
<string name="show_recent_files_summary">সাম্প্রতিক ডাটাবেসের অবস্থান দেখান</string>
|
||||
|
||||
@@ -347,7 +347,6 @@
|
||||
<string name="place_of_issue">Lloc d\'expedició</string>
|
||||
<string name="style_brightness_summary">Escull tema clar o fosc</string>
|
||||
<string name="hardware_key">Clau física</string>
|
||||
<string name="registration_mode">Mode de registre</string>
|
||||
<string name="ignore_chars_filter">Ignora caràcters</string>
|
||||
<string name="ask">Pregunta</string>
|
||||
<string name="searchable">Cercable</string>
|
||||
|
||||
@@ -480,7 +480,6 @@
|
||||
<string name="biometric_security_update_required">Vyžadována aktualizace biometrického zabezpečení.</string>
|
||||
<string name="configure_biometric">Žádné přihlašovací ani biometrické údaje nejsou registrovány.</string>
|
||||
<string name="warning_empty_recycle_bin">Trvale odstranit všechny uzly z koše\?</string>
|
||||
<string name="registration_mode">Registrace</string>
|
||||
<string name="save_mode">Režim ukládání</string>
|
||||
<string name="search_mode">Vyhledávání</string>
|
||||
<string name="error_field_name_already_exists">Jméno kolonky již existuje.</string>
|
||||
|
||||
@@ -475,7 +475,6 @@
|
||||
\n
|
||||
\nDatabasen kan blive meget stor og reducere ydeevnen med denne overførelse.</string>
|
||||
<string name="warning_empty_recycle_bin">Slet alle noder permanent fra papirkurven\?</string>
|
||||
<string name="registration_mode">Registreringstilstand</string>
|
||||
<string name="save_mode">Gem-tilstand</string>
|
||||
<string name="search_mode">Søgetilstand</string>
|
||||
<string name="error_registration_read_only">Det er ikke tilladt at gemme et nyt element i en skrivebeskyttet database.</string>
|
||||
|
||||
@@ -486,7 +486,6 @@
|
||||
<string name="notification">Benachrichtigung</string>
|
||||
<string name="biometric_security_update_required">Biometrische Sicherheitsaktualisierung erforderlich.</string>
|
||||
<string name="configure_biometric">Es sind weder Biometrie- noch Geräteanmeldedaten registriert.</string>
|
||||
<string name="registration_mode">Registrierungsmodus</string>
|
||||
<string name="save_mode">Speichermodus</string>
|
||||
<string name="search_mode">Suchmodus</string>
|
||||
<string name="error_registration_read_only">Speichern eines neuen Elements in einer schreibgeschützten Datenbank ist unzulässig.</string>
|
||||
|
||||
@@ -479,7 +479,6 @@
|
||||
<string name="biometric_security_update_required">Απαιτείται ενημέρωση βιομετρικής ασφάλειας.</string>
|
||||
<string name="configure_biometric">Κανένα πιστοποιητικό βιομετρίας ή συσκευής δεν είναι εγγεγραμμένο.</string>
|
||||
<string name="warning_empty_recycle_bin">Να διαγραφούν οριστικά όλοι οι κόμβοι από τον κάδο ανακύκλωσης;</string>
|
||||
<string name="registration_mode">Τρόπος εγγραφής</string>
|
||||
<string name="save_mode">Λειτουργία αποθήκευσης</string>
|
||||
<string name="search_mode">Λειτουργία αναζήτησης</string>
|
||||
<string name="error_registration_read_only">Η αποθήκευση ενός νέου αντικειμένου δεν επιτρέπεται σε μια βάση δεδομένων μόνο για ανάγνωση.</string>
|
||||
|
||||
@@ -452,7 +452,6 @@
|
||||
<string name="configure_biometric">No se ha inscrito ninguna credencial biométrica o del dispositivo.</string>
|
||||
<string name="warning_empty_keyfile_explanation">El contenido del archivo de clave nunca debe modificarse y, en el mejor de los casos, debe contener datos generados al azar.</string>
|
||||
<string name="warning_empty_recycle_bin">¿Borrar permanentemente todos los nodos de la papelera de reciclaje\?</string>
|
||||
<string name="registration_mode">Modo de registro</string>
|
||||
<string name="save_mode">Modo de guardado</string>
|
||||
<string name="search_mode">Modo de búsqueda</string>
|
||||
<string name="contains_duplicate_uuid_procedure">¿Solucionar el problema generando nuevos UUID para que los duplicados continúen?</string>
|
||||
|
||||
@@ -383,7 +383,6 @@
|
||||
<string name="search_mode">Otsinguviis</string>
|
||||
<string name="save_mode">Salvestusviis</string>
|
||||
<string name="selection_mode">Valikuviis</string>
|
||||
<string name="registration_mode">Registreerimisviis</string>
|
||||
<string name="invalid_credentials">Salasõna või võtmefaili ei õnnestunud lugeda.</string>
|
||||
<string name="protection">Kaitse</string>
|
||||
<string name="underline">Allajoonitud</string>
|
||||
|
||||
@@ -355,7 +355,6 @@
|
||||
<string name="read_only_warning">Zure fitxategi nabigatzailearen arabera, KeePassDXek ez du baimenduta datuak idaztea.</string>
|
||||
<string name="save_mode">Gorde modua</string>
|
||||
<string name="selection_mode">Hautaketa modua</string>
|
||||
<string name="registration_mode">Erregistro-modua</string>
|
||||
<string name="remember_database_locations_title">Gogoratu datu-baseen kokalekuak</string>
|
||||
<string name="remember_database_locations_summary">Erregistratu datu-baseen kokapenak</string>
|
||||
<string name="remember_keyfile_locations_title">Gogoratu fitxategi-gakoen kokapenak</string>
|
||||
|
||||
@@ -271,7 +271,6 @@
|
||||
<string name="import_app_properties_summary">یک فایل برای وارد کردن ویژگی های برنامه انتخاب کنید</string>
|
||||
<string name="import_app_properties_title">وارد کردن ویژگی های برنامه</string>
|
||||
<string name="export_app_properties_title">صادر کردن ویژگی های برنامه</string>
|
||||
<string name="registration_mode">حالت ثبت</string>
|
||||
<string name="save_mode">حالت ذخیره</string>
|
||||
<string name="search_mode">حالت جستجو</string>
|
||||
<string name="menu_external_icon">نماد خارجی</string>
|
||||
|
||||
@@ -431,7 +431,6 @@
|
||||
<string name="warning_large_keyfile">Ei ole suositeltavaa lisätä suurta avantiedostos, sillä se voi estää tietokantaa avautumasta.</string>
|
||||
<string name="warning_empty_keyfile_explanation">Avaintiedoston sisältöä ei tulisi koskaan muuttaa, ja parhaassa tapauksessa sen tulisi sisältää satunnaisesti tuotettua tietoa.</string>
|
||||
<string name="save_mode">Tallennustila</string>
|
||||
<string name="registration_mode">Rekisteröintitila</string>
|
||||
<string name="export_app_properties_summary">Luo tiedosto, johon sovellusasetukset viedään</string>
|
||||
<string name="export_app_properties_title">Vie sovellusasetukset</string>
|
||||
<string name="description_app_properties">KeePassDX ominaisuudet sovellusasetusten hallintaan</string>
|
||||
|
||||
@@ -298,7 +298,6 @@
|
||||
<string name="export_app_properties_summary">Gumawa ng file para i-export ang mga setting ng app</string>
|
||||
<string name="search_mode">Mode ng paghahanap</string>
|
||||
<string name="selection_mode">Mode ng pagpili</string>
|
||||
<string name="registration_mode">Mode ng pagrehistro</string>
|
||||
<string name="remember_database_locations_summary">Sinusubaybayan kung saan naka-imbak ang mga database</string>
|
||||
<string name="remember_keyfile_locations_title">Tandaan ang mga lokasyon ng keyfile</string>
|
||||
<string name="remember_hardware_key_summary">Sinusubaybayan ang mga ginamit na hardware key</string>
|
||||
|
||||
@@ -495,7 +495,6 @@
|
||||
<string name="notification">Notification</string>
|
||||
<string name="biometric_security_update_required">Mise à jour de sécurité biométrique requise.</string>
|
||||
<string name="warning_empty_recycle_bin">Supprimer définitivement tous les nœuds de la corbeille \?</string>
|
||||
<string name="registration_mode">Mode enregistrement</string>
|
||||
<string name="save_mode">Mode sauvegarde</string>
|
||||
<string name="search_mode">Mode recherche</string>
|
||||
<string name="error_registration_read_only">L’enregistrement d’un nouvel élément n’est pas autorisé dans une base de données en lecture seule.</string>
|
||||
|
||||
@@ -324,7 +324,6 @@
|
||||
<string name="contains_duplicate_uuid">A base de datos contén UUIDs duplicados.</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Resolver o problema xerando novas UUIDs para que os duplicados continúen\?</string>
|
||||
<string name="selection_mode">Modo de selección</string>
|
||||
<string name="registration_mode">Modo de rexistro</string>
|
||||
<string name="remember_database_locations_title">Lembrar localización das bases de datos</string>
|
||||
<string name="remember_keyfile_locations_summary">Mantén un rexistro de onde son almacenados os ficheiros clave</string>
|
||||
<string name="remember_hardware_key_title">Lembrar claves hardware</string>
|
||||
|
||||
@@ -476,7 +476,6 @@
|
||||
<string name="warning_empty_recycle_bin">Trajno izbrisati sve čvorove iz smeća\?</string>
|
||||
<string name="biometric_security_update_required">Potrebno je aktualizirati biometrijsku zaštitu.</string>
|
||||
<string name="configure_biometric">Ne postoji biometrijski ključ niti podaci za prijavu uređaja.</string>
|
||||
<string name="registration_mode">Modus registracije</string>
|
||||
<string name="save_mode">Modus spremanja</string>
|
||||
<string name="search_mode">Modus pretrage</string>
|
||||
<string name="error_field_name_already_exists">Ime polja već postoji.</string>
|
||||
|
||||
@@ -450,7 +450,6 @@
|
||||
\nA feltöltéstől az adatbázis nagyon nagyra nőhet, és csökkenhet a teljesítmény.</string>
|
||||
<string name="warning_empty_recycle_bin">Végleg törli az összes csomópontot a kukából\?</string>
|
||||
<string name="filter">Szűrő</string>
|
||||
<string name="registration_mode">Regisztrációs mód</string>
|
||||
<string name="save_mode">Mentési mód</string>
|
||||
<string name="search_mode">Keresési mód</string>
|
||||
<string name="subdomain_search_summary">Webdomainek keresése aldomain megszorításokkal</string>
|
||||
|
||||
@@ -306,7 +306,6 @@
|
||||
<string name="memory_usage_explanation">Jumlah memori yang akan digunakan oleh fungsi derivasi kunci.</string>
|
||||
<string name="rounds_explanation">Putaran enkripsi tambahan memberikan perlindungan yang lebih tinggi terhadap serangan brute force, akan tetapi dapat memperlambat pemuatan dan penyimpanan.</string>
|
||||
<string name="kdf_explanation">Untuk menghasilkan kunci untuk algoritma enkripsi, kunci master diubah menggunakan fungsi derivasi randomly salted key.</string>
|
||||
<string name="registration_mode">Mode pendaftaran</string>
|
||||
<string name="save_mode">Mode simpan</string>
|
||||
<string name="search_mode">Mode pencarian</string>
|
||||
<string name="menu_keystore_remove_key">Menghapus kunci buka kunci perangkat</string>
|
||||
|
||||
@@ -481,7 +481,6 @@
|
||||
<string name="notification">Notifica</string>
|
||||
<string name="biometric_security_update_required">È necessario un aggiornamento della sicurezza biometrica.</string>
|
||||
<string name="warning_empty_recycle_bin">Eliminare definitivamente tutti i nodi dal cestino\?</string>
|
||||
<string name="registration_mode">Modalità registrazione</string>
|
||||
<string name="save_mode">Modalità salvataggio</string>
|
||||
<string name="search_mode">Modalità ricerca</string>
|
||||
<string name="error_field_name_already_exists">Il nome del campo esiste già.</string>
|
||||
|
||||
@@ -316,7 +316,6 @@
|
||||
<string name="invalid_db_same_uuid">%1$s עם אותו UUID %2$s כבר קיים.</string>
|
||||
<string name="master_key_settings_summary">שינוי, חידוש</string>
|
||||
<string name="info">מידע</string>
|
||||
<string name="registration_mode">מצב הרשמה</string>
|
||||
<string name="menu_form_filling_settings_summary">מקלדת, מילוי אוטומטי, לוח העתקה</string>
|
||||
<string name="search_mode">מצב חיפוש</string>
|
||||
<string name="remember_database_locations_title">זכור מיקומי מסדי הנתונים</string>
|
||||
|
||||
@@ -208,7 +208,6 @@
|
||||
<string name="contains_duplicate_uuid">データベースには重複する UUID が含まれています。</string>
|
||||
<string name="contains_duplicate_uuid_procedure">重複したエントリーに対する新しい UUID を生成して、問題を解決し続行しますか?</string>
|
||||
<string name="selection_mode">選択モード</string>
|
||||
<string name="registration_mode">登録モード</string>
|
||||
<string name="remember_database_locations_title">データベースの場所を記憶</string>
|
||||
<string name="remember_database_locations_summary">データベースの保存先を保持します</string>
|
||||
<string name="remember_keyfile_locations_title">キーファイルの場所を記憶</string>
|
||||
|
||||
@@ -344,7 +344,6 @@
|
||||
<string name="menu_merge_from">... 로부터 병합</string>
|
||||
<string name="menu_save_copy_to">... 에 복사본 저장</string>
|
||||
<string name="menu_keystore_remove_key">고급 잠금 해제 키를 삭제</string>
|
||||
<string name="registration_mode">등록 모드</string>
|
||||
<string name="sort_last_access_time">접근</string>
|
||||
<string name="invalid_db_same_uuid">%1$s 와 동일한 UUID %2$s 가 이미 존재합니다.</string>
|
||||
<string name="underline">밑줄</string>
|
||||
|
||||
@@ -306,7 +306,6 @@
|
||||
<string name="subdomain_search_title">Subdomeno paieška</string>
|
||||
<string name="subdomain_search_summary">Ieškoti žiniatinklio domenuose su subdomenų apribojimais</string>
|
||||
<string name="contains_duplicate_uuid">Duomenų bazėje yra pasikartojančių UUID.</string>
|
||||
<string name="registration_mode">Registracijos režimas</string>
|
||||
<string name="show_recent_files_title">Rodyti naujausius failus</string>
|
||||
<string name="show_recent_files_summary">Rodyti paskutinių duomenų bazių vietas</string>
|
||||
<string name="memory_usage_explanation">Atminties kiekis, kurį turi naudoti rakto išvedimo funkcija.</string>
|
||||
|
||||
@@ -373,7 +373,6 @@
|
||||
<string name="keyboard_save_search_info_title">പങ്കിട്ട വിവരം സംരക്ഷിക്കുക</string>
|
||||
<string name="clipboard_notifications_title">ക്ലിപ്ബോർഡ് അറിയിപ്പുകൾ</string>
|
||||
<string name="warning_empty_recycle_bin">റീസൈക്കിൾ ബിന്നിൽ നിന്ന് എല്ലാ നോഡുകളും ശാശ്വതമായി ഇല്ലാതാക്കണോ\?</string>
|
||||
<string name="registration_mode">രജിസ്ട്രേഷൻ മോഡ്</string>
|
||||
<string name="search_mode">തിരയൽ മോഡ്</string>
|
||||
<string name="error_registration_read_only">read-only ഡാറ്റാബേസിൽ പുതിയ ഒരു ഇനം സംരക്ഷിക്കാൻ കഴിയില്ല.</string>
|
||||
<string name="education_device_unlock_title">വിപുലമായ ഡാറ്റാബേസ് അൺലോക്ക്</string>
|
||||
|
||||
@@ -399,7 +399,6 @@
|
||||
<string name="autofill_ask_to_save_data_title">Spør om lagring av data</string>
|
||||
<string name="warning_empty_keyfile">Det anbefales ikke å legge til en tom nøkkelfil.</string>
|
||||
<string name="warning_sure_add_file">Legg til filen uansett\?</string>
|
||||
<string name="registration_mode">Registreringsmodus</string>
|
||||
<string name="save_mode">Lagringsmodus</string>
|
||||
<string name="search_mode">Søkemodus</string>
|
||||
<string name="error_field_name_already_exists">Feltnavnet finnes allerede.</string>
|
||||
|
||||
@@ -481,7 +481,6 @@
|
||||
<string name="biometric_security_update_required">Biometrische beveiligingsupdate vereist.</string>
|
||||
<string name="configure_biometric">Geen biometrische gegevens of apparaatgegevens geregistreerd.</string>
|
||||
<string name="warning_empty_recycle_bin">Alles definitief uit de prullenbak verwijderen\?</string>
|
||||
<string name="registration_mode">Registratiemodus</string>
|
||||
<string name="save_mode">Veilige modus</string>
|
||||
<string name="search_mode">Zoekmodus</string>
|
||||
<string name="error_registration_read_only">Het opslaan van een nieuw item is niet toegestaan in een alleen-lezen database.</string>
|
||||
|
||||
@@ -291,7 +291,6 @@
|
||||
<string name="upload_attachment">%1$s ਅੱਪਲੋਡ ਕਰੋ</string>
|
||||
<string name="show_uuid_summary">ਐਂਟਰੀ ਨਾਲ ਸੰਬੰਧਿਤ UUID ਦਿਖਾਉਂਦਾ ਹੈ</string>
|
||||
<string name="encryption_explanation">ਸਾਰੇ ਡਾਟੇ ਲਈ ਡਾਟਾਬੇਸ ਇੰਕ੍ਰਿਪਸ਼ਨ ਐਲਗੋਰਿਥਮ ਵਰਤਿਆ ਗਿਆ ਹੈ।</string>
|
||||
<string name="registration_mode">ਰਜਿਸਟਰੇਸ਼ਨ ਢੰਗ</string>
|
||||
<string name="save_mode">ਸੰਭਾਲਣ ਢੰਗ</string>
|
||||
<string name="search_mode">ਖੋਜਣ ਢੰਗ</string>
|
||||
<string name="keystore_not_accessible">ਕੀ-ਸਟੋਰ ਠੀਕ ਢੰਗ ਨਾਲ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਇਆ ਹੈ।</string>
|
||||
|
||||
@@ -478,7 +478,6 @@
|
||||
<string name="biometric_security_update_required">Wymagana aktualizacja zabezpieczeń biometrycznych.</string>
|
||||
<string name="configure_biometric">Nie zarejestrowano żadnych danych biometrycznych ani danych urządzenia.</string>
|
||||
<string name="warning_empty_recycle_bin">Trwale usunąć wszystkie węzły z kosza\?</string>
|
||||
<string name="registration_mode">Tryb rejestracji</string>
|
||||
<string name="save_mode">Tryb zapisywania</string>
|
||||
<string name="search_mode">Tryb wyszukiwania</string>
|
||||
<string name="error_registration_read_only">Zapisywanie nowego elementu nie jest dozwolone w bazie danych tylko do odczytu.</string>
|
||||
|
||||
@@ -530,7 +530,6 @@
|
||||
<string name="export_app_properties_title">Exportar as configurações do aplicativo</string>
|
||||
<string name="import_app_properties_summary">Selecione um arquivo para importar as configurações do aplicativo</string>
|
||||
<string name="import_app_properties_title">Importar as configurações do aplicativo</string>
|
||||
<string name="registration_mode">Modo registro</string>
|
||||
<string name="save_mode">Modo salvar</string>
|
||||
<string name="search_mode">Modo busca</string>
|
||||
<string name="menu_external_icon">Ícone externo</string>
|
||||
|
||||
@@ -477,7 +477,6 @@
|
||||
<string name="warning_database_info_changed_options">Unir os dados, substituir as alterações externas guardado a base de dados ou recarregá-los com as últimas alterações.</string>
|
||||
<string name="warning_database_info_changed">A informação contida no seu ficheiro da base de dados foi alterada fora da aplicação.</string>
|
||||
<string name="warning_empty_recycle_bin">Eliminar permanentemente todos os nós do caixote da reciclagem\?</string>
|
||||
<string name="registration_mode">Modo de registo</string>
|
||||
<string name="save_mode">Modo de guardar</string>
|
||||
<string name="search_mode">Modo de pesquisa</string>
|
||||
<string name="menu_keystore_remove_key">Eliminar a chave de desbloqueio do dispositivo</string>
|
||||
|
||||
@@ -455,7 +455,6 @@
|
||||
<string name="warning_database_info_changed_options">Unir os dados, substituir as alterações externas guardado a base de dados ou recarregá-los com as últimas alterações.</string>
|
||||
<string name="warning_database_info_changed">A informação contida no seu ficheiro da base de dados foi alterada fora da aplicação.</string>
|
||||
<string name="warning_empty_recycle_bin">Eliminar permanentemente todos os nós do caixote da reciclagem\?</string>
|
||||
<string name="registration_mode">Modo de registo</string>
|
||||
<string name="save_mode">Modo de guardar</string>
|
||||
<string name="search_mode">Modo de pesquisa</string>
|
||||
<string name="menu_keystore_remove_key">Eliminar a chave de desbloqueio do dispositivo</string>
|
||||
|
||||
@@ -526,7 +526,6 @@
|
||||
<string name="error_driver_required">Driver-ul pentru %1$s este necesară.</string>
|
||||
<string name="error_unable_merge_database_kdb">Nu s-a putut fuziona cu o bază de date de format kdb.</string>
|
||||
<string name="error_location_unknown">Locația bazei de date este necunoscută, acțiunea bazei de date nu poate fi efectuată.</string>
|
||||
<string name="registration_mode">Mod de înregistrare</string>
|
||||
<string name="remember_hardware_key_title">Reține cheile hardware</string>
|
||||
<string name="remember_hardware_key_summary">Păstrează evidența cheilor hardware utilizate</string>
|
||||
<string name="import_app_properties_summary">Selectați un fișier pentru a importa setările aplicației</string>
|
||||
|
||||
@@ -479,7 +479,6 @@
|
||||
<string name="notification">Уведомление</string>
|
||||
<string name="biometric_security_update_required">Требуется обновление биометрической системы безопасности.</string>
|
||||
<string name="warning_empty_recycle_bin">Удалить всё содержимое корзины безвозвратно\?</string>
|
||||
<string name="registration_mode">Режим регистрации</string>
|
||||
<string name="save_mode">Режим записи</string>
|
||||
<string name="search_mode">Режим поиска</string>
|
||||
<string name="error_registration_read_only">Сохранение новых записей невозможно, т.к. база открыта только для чтения.</string>
|
||||
|
||||
@@ -514,7 +514,6 @@
|
||||
<string name="copy_field">Kópia %1$s</string>
|
||||
<string name="menu_security_settings">Bezpečnostné nastavenia</string>
|
||||
<string name="menu_cancel">Zrušiť</string>
|
||||
<string name="registration_mode">Režim registrácie</string>
|
||||
<string name="show_recent_files_summary">Zobraziť umiestnenie nedávnych databáz</string>
|
||||
<string name="show_recent_files_title">Zobraziť posledné súbory</string>
|
||||
<string name="encryption_explanation">Algoritmus šifrovania databázy používaný pre všetky údaje</string>
|
||||
|
||||
@@ -234,7 +234,6 @@
|
||||
<string name="protection">Mbrojtje</string>
|
||||
<string name="contains_duplicate_uuid">Baza e të dhënave përmban UUID-ra të përsëdytur.</string>
|
||||
<string name="selection_mode">Mënyrë përzgjedhjeje</string>
|
||||
<string name="registration_mode">Mënyrë regjistrimi</string>
|
||||
<string name="remember_database_locations_title">Mbaj mend vendndodhje bazash të dhënash</string>
|
||||
<string name="remember_keyfile_locations_title">Mbaj mend vendndodhje kartelash kyçesh</string>
|
||||
<string name="show_recent_files_title">Shfaq kartelë të freskëta</string>
|
||||
|
||||
@@ -322,7 +322,6 @@
|
||||
<string name="search_mode">Режим претраге</string>
|
||||
<string name="save_mode">Режим чувања</string>
|
||||
<string name="selection_mode">Режим избора</string>
|
||||
<string name="registration_mode">Режим регистрације</string>
|
||||
<string name="hide_broken_locations_title">Сакриј неисправне везе базе података</string>
|
||||
<string name="hide_broken_locations_summary">Сакријте покварене везе на листи недавних база података</string>
|
||||
<string name="import_app_properties_title">Увезите подешавања апликације</string>
|
||||
|
||||
@@ -535,7 +535,6 @@
|
||||
<string name="subdomain_search_title">Subdomänsök</string>
|
||||
<string name="subdomain_search_summary">Sök webbdomän med subdomänbegränsning</string>
|
||||
<string name="search_mode">Sökläge</string>
|
||||
<string name="registration_mode">Registreringsläge</string>
|
||||
<string name="remember_hardware_key_title">Kom ihåg hårdvarunycklar</string>
|
||||
<string name="remember_hardware_key_summary">Kom ihåg hårdvarunycklar som används</string>
|
||||
<string name="import_app_properties_title">Importera appinställningar</string>
|
||||
|
||||
@@ -414,7 +414,6 @@
|
||||
<string name="exclude_ambiguous_chars">தெளிவற்ற கதாபாத்திரங்களை விலக்கவும்</string>
|
||||
<string name="word_separator">பிரிப்பான்</string>
|
||||
<string name="screenshot_mode_banner_text">திரைக்காட்சி பயன்முறை</string>
|
||||
<string name="registration_mode">பதிவு முறை</string>
|
||||
<string name="warning_database_info_reloaded">தரவுத்தளத்தை மீண்டும் ஏற்றுவது உள்நாட்டில் மாற்றியமைக்கப்பட்ட தரவை நீக்கும்.</string>
|
||||
<string name="disable">முடக்கு</string>
|
||||
<string name="autofill_close_database_title">தரவுத்தளத்தை மூடு</string>
|
||||
|
||||
@@ -300,7 +300,6 @@
|
||||
<string name="contains_duplicate_uuid">ฐานข้อมูลมี UUID ที่ซ้ำกัน</string>
|
||||
<string name="contains_duplicate_uuid_procedure">แก้ปัญหาด้วยการสร้าง UUID ใหม่เพื่อรายการที่ซ้ํากัน ดําเนินการต่อหรือไม่\?</string>
|
||||
<string name="remember_keyfile_locations_summary">ติดตามตำแหน่งที่เก็บ keyfile</string>
|
||||
<string name="registration_mode">โหมดการลงทะเบียน</string>
|
||||
<string name="remember_database_locations_summary">ติดตามตำแหน่งที่เก็บฐานข้อมูล</string>
|
||||
<string name="remember_keyfile_locations_title">จดจำตำแหน่ง keyfile</string>
|
||||
<string name="remember_hardware_key_title">จดจําคีย์ฮาร์ดแวร์</string>
|
||||
|
||||
@@ -473,7 +473,6 @@
|
||||
<string name="biometric_security_update_required">Biyometrik güvenlik güncellemesi gerekli.</string>
|
||||
<string name="configure_biometric">Biyometrik bilgiler veya aygıt kimlik doğrulama bilgileri kaydedilmedi.</string>
|
||||
<string name="warning_empty_recycle_bin">Geri dönüşüm kutusundaki tüm düğümler kalıcı olarak silinsin mi\?</string>
|
||||
<string name="registration_mode">Kayıt modu</string>
|
||||
<string name="save_mode">Kaydetme modu</string>
|
||||
<string name="search_mode">Arama modu</string>
|
||||
<string name="error_registration_read_only">Salt okunur bir veri tabanında yeni bir öge kaydetmeye izin verilmiyor.</string>
|
||||
|
||||
@@ -479,7 +479,6 @@
|
||||
<string name="biometric_security_update_required">Необхідно оновити біометричний захист.</string>
|
||||
<string name="configure_biometric">Біометричних чи облікових даних пристрою не зареєстровано.</string>
|
||||
<string name="warning_empty_recycle_bin">Видалити всі вузли з кошика остаточно\?</string>
|
||||
<string name="registration_mode">Режим реєстрації</string>
|
||||
<string name="save_mode">Режим збереження</string>
|
||||
<string name="search_mode">Режим пошуку</string>
|
||||
<string name="error_registration_read_only">Збереження нового елемента заборонено в базі даних лише для читання.</string>
|
||||
|
||||
@@ -309,7 +309,6 @@
|
||||
<string name="search_mode">Chế độ tìm kiếm</string>
|
||||
<string name="save_mode">Chế độ lưu</string>
|
||||
<string name="selection_mode">Chế độ lựa chọn</string>
|
||||
<string name="registration_mode">Chế độ đăng ký</string>
|
||||
<string name="remember_database_locations_title">Ghi nhớ vị trí cơ sở dữ liệu</string>
|
||||
<string name="remember_database_locations_summary">Theo dõi nơi cơ sở dữ liệu được lưu trữ</string>
|
||||
<string name="remember_keyfile_locations_title">Ghi nhớ vị trí của tệp khóa</string>
|
||||
|
||||
@@ -478,7 +478,6 @@
|
||||
<string name="biometric_security_update_required">需要生物识别安全更新。</string>
|
||||
<string name="configure_biometric">未登记生物识别或设备凭证。</string>
|
||||
<string name="warning_empty_recycle_bin">从回收站永久删除所有节点?</string>
|
||||
<string name="registration_mode">注册模式</string>
|
||||
<string name="save_mode">保存模式</string>
|
||||
<string name="search_mode">搜索模式</string>
|
||||
<string name="error_registration_read_only">只读数据库不允许保存新条目。</string>
|
||||
|
||||
@@ -476,7 +476,6 @@
|
||||
<string name="recycle_bin_group_title">回收桶(組)</string>
|
||||
<string name="recycle_bin_summary">刪除群組和項目前先移至回收桶</string>
|
||||
<string name="recycle_bin_title">回收桶使用情況</string>
|
||||
<string name="registration_mode">註冊模式</string>
|
||||
<string name="remember_database_locations_summary">跟蹤資料庫的存儲位置</string>
|
||||
<string name="remember_database_locations_title">記住所有資料庫的位置</string>
|
||||
<string name="remember_keyfile_locations_summary">追蹤密鑰檔案位置</string>
|
||||
|
||||
@@ -314,7 +314,6 @@
|
||||
<string name="search_mode">Search mode</string>
|
||||
<string name="save_mode">Save mode</string>
|
||||
<string name="selection_mode">Selection mode</string>
|
||||
<string name="registration_mode">Registration mode</string>
|
||||
<string name="remember_database_locations_title">Remember databases locations</string>
|
||||
<string name="remember_database_locations_summary">Keeps track of where databases are stored</string>
|
||||
<string name="remember_keyfile_locations_title">Remember keyfile locations</string>
|
||||
|
||||
@@ -187,7 +187,7 @@ class EntryInfo : NodeInfo {
|
||||
/**
|
||||
* Add searchInfo to current EntryInfo
|
||||
*/
|
||||
fun saveSearchInfo(database: Database?, searchInfo: SearchInfo) {
|
||||
private fun saveSearchInfo(database: Database?, searchInfo: SearchInfo) {
|
||||
searchInfo.otpString?.let { otpString ->
|
||||
setOtp(otpString)
|
||||
} ?: searchInfo.webDomain?.let { webDomain ->
|
||||
|
||||
@@ -158,6 +158,10 @@ class SearchInfo : ObjectNameResource, Parcelable {
|
||||
return otpString ?: webDomain ?: applicationId ?: relyingParty ?: tag ?: ""
|
||||
}
|
||||
|
||||
fun toRegisterInfo(): RegisterInfo {
|
||||
return RegisterInfo(this)
|
||||
}
|
||||
|
||||
companion object {
|
||||
// https://gist.github.com/rishabhmhjn/8663966
|
||||
const val APPLICATION_ID_REGEX = "^(?:[a-zA-Z]+(?:\\d*[a-zA-Z_]*)*)(?:\\.[a-zA-Z]+(?:\\d*[a-zA-Z_]*)*)+\$"
|
||||
|
||||
Reference in New Issue
Block a user