mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix orientation change
This commit is contained in:
@@ -22,6 +22,7 @@ import android.app.Activity
|
|||||||
import android.app.DatePickerDialog
|
import android.app.DatePickerDialog
|
||||||
import android.app.SearchManager
|
import android.app.SearchManager
|
||||||
import android.app.TimePickerDialog
|
import android.app.TimePickerDialog
|
||||||
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.PorterDuff
|
import android.graphics.PorterDuff
|
||||||
@@ -40,7 +41,6 @@ import androidx.appcompat.view.ActionMode
|
|||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.appcompat.widget.Toolbar
|
import androidx.appcompat.widget.Toolbar
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
import androidx.core.view.isVisible
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.kunzisoft.keepass.R
|
import com.kunzisoft.keepass.R
|
||||||
import com.kunzisoft.keepass.activities.dialogs.*
|
import com.kunzisoft.keepass.activities.dialogs.*
|
||||||
@@ -112,59 +112,84 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
|
|
||||||
private var actionNodeMode: ActionMode? = null
|
private var actionNodeMode: ActionMode? = null
|
||||||
|
|
||||||
// Nodes
|
// Manage group
|
||||||
|
private var mSearchState: SearchState? = null
|
||||||
private var mCurrentGroupState: GroupState? = null
|
private var mCurrentGroupState: GroupState? = null
|
||||||
private var mRootGroup: Group? = null
|
private var mRootGroup: Group? = null
|
||||||
private var mCurrentGroup: Group? = null
|
private var mCurrentGroup: Group? = null
|
||||||
private var mSearchGroup: Group? = null
|
|
||||||
private var mPreviousGroupsIds = mutableListOf<GroupState>()
|
private var mPreviousGroupsIds = mutableListOf<GroupState>()
|
||||||
private var mOldGroupToUpdate: Group? = null
|
private var mOldGroupToUpdate: Group? = null
|
||||||
|
|
||||||
|
private var mLockSearchListeners = false
|
||||||
private val mOnSearchQueryTextListener = object : SearchView.OnQueryTextListener {
|
private val mOnSearchQueryTextListener = object : SearchView.OnQueryTextListener {
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
if (query != null) {
|
if (query != null && !mLockSearchListeners) {
|
||||||
searchFiltersView?.setQuery(query)
|
mSearchState?.let { searchState ->
|
||||||
|
searchState.searchParameters.searchQuery = query
|
||||||
|
mGroupViewModel.loadSearchGroup(mDatabase,
|
||||||
|
searchState.searchParameters,
|
||||||
|
searchState.firstVisibleItem)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onQueryTextChange(newText: String?): Boolean {
|
override fun onQueryTextChange(newText: String?): Boolean {
|
||||||
if (newText != null) {
|
onQueryTextSubmit(newText)
|
||||||
searchFiltersView?.setQuery(newText)
|
|
||||||
}
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private val mOnSearchFiltersChangeListener = object : ((SearchParameters) -> Unit) {
|
private val mOnSearchFiltersChangeListener = object : ((SearchParameters) -> Unit) {
|
||||||
override fun invoke(searchParameters: SearchParameters) {
|
override fun invoke(searchParameters: SearchParameters) {
|
||||||
mGroupViewModel.loadGroupFromSearch(
|
mSearchState?.let { searchState ->
|
||||||
mDatabase,
|
searchParameters.searchQuery = searchState.searchParameters.searchQuery
|
||||||
searchParameters,
|
searchState.searchParameters = searchParameters
|
||||||
PreferencesUtil.omitBackup(this@GroupActivity)
|
mGroupViewModel.loadSearchGroup(mDatabase,
|
||||||
)
|
searchState.searchParameters,
|
||||||
|
searchState.firstVisibleItem)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private val mOnSearchActionExpandListener = object : MenuItem.OnActionExpandListener {
|
private val mOnSearchActionExpandListener = object : MenuItem.OnActionExpandListener {
|
||||||
override fun onMenuItemActionExpand(p0: MenuItem?): Boolean {
|
override fun onMenuItemActionExpand(p0: MenuItem?): Boolean {
|
||||||
toolbarBreadcrumb?.hideByFading()
|
toolbarBreadcrumb?.hideByFading()
|
||||||
searchFiltersView?.isVisible = true
|
searchFiltersView?.visibility = View.VISIBLE
|
||||||
searchView?.setOnQueryTextListener(mOnSearchQueryTextListener)
|
searchView?.setOnQueryTextListener(mOnSearchQueryTextListener)
|
||||||
searchFiltersView?.onParametersChangeListener = mOnSearchFiltersChangeListener
|
searchFiltersView?.onParametersChangeListener = mOnSearchFiltersChangeListener
|
||||||
return true
|
|
||||||
|
addSearch()
|
||||||
|
//loadGroup()
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMenuItemActionCollapse(p0: MenuItem?): Boolean {
|
override fun onMenuItemActionCollapse(p0: MenuItem?): Boolean {
|
||||||
searchFiltersView?.onParametersChangeListener = null
|
searchFiltersView?.onParametersChangeListener = null
|
||||||
searchView?.setOnQueryTextListener(null)
|
searchView?.setOnQueryTextListener(null)
|
||||||
searchFiltersView?.isVisible = false
|
searchFiltersView?.visibility = View.GONE
|
||||||
toolbarBreadcrumb?.showByFading()
|
toolbarBreadcrumb?.showByFading()
|
||||||
|
|
||||||
removeSearch()
|
removeSearch()
|
||||||
loadGroup(mDatabase)
|
loadGroup()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun addSearch() {
|
||||||
|
if (mSearchState == null) {
|
||||||
|
mSearchState = SearchState(searchFiltersView?.searchParameters
|
||||||
|
?: SearchParameters(), 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun removeSearch() {
|
||||||
|
mSearchState = null
|
||||||
|
intent.removeExtra(AUTO_SEARCH_KEY)
|
||||||
|
if (Intent.ACTION_SEARCH == intent.action) {
|
||||||
|
intent.action = Intent.ACTION_DEFAULT
|
||||||
|
intent.removeExtra(SearchManager.QUERY)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private var mIconSelectionActivityResultLauncher = IconPickerActivity.registerIconSelectionForResult(this) { icon ->
|
private var mIconSelectionActivityResultLauncher = IconPickerActivity.registerIconSelectionForResult(this) { icon ->
|
||||||
// To create tree dialog for icon
|
// To create tree dialog for icon
|
||||||
mGroupEditViewModel.selectIcon(icon)
|
mGroupEditViewModel.selectIcon(icon)
|
||||||
@@ -284,24 +309,23 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
// Observe group
|
// Observe group
|
||||||
mGroupViewModel.group.observe(this) {
|
mGroupViewModel.group.observe(this) {
|
||||||
val currentGroup = it.group
|
val currentGroup = it.group
|
||||||
|
mCurrentGroup = currentGroup
|
||||||
if (!currentGroup.isVirtual) {
|
if (!currentGroup.isVirtual) {
|
||||||
|
|
||||||
mCurrentGroup = currentGroup
|
|
||||||
mRecyclingBinIsCurrentGroup = it.isRecycleBin
|
mRecyclingBinIsCurrentGroup = it.isRecycleBin
|
||||||
|
// Save group state
|
||||||
// Save group id if real group
|
|
||||||
mCurrentGroupState = GroupState(currentGroup.nodeId, it.showFromPosition)
|
mCurrentGroupState = GroupState(currentGroup.nodeId, it.showFromPosition)
|
||||||
|
|
||||||
// Update last access time.
|
// Update last access time.
|
||||||
currentGroup.touch(modified = false, touchParents = false)
|
currentGroup.touch(modified = false, touchParents = false)
|
||||||
} else {
|
} else {
|
||||||
mSearchGroup = currentGroup
|
mSearchState = SearchState(it.searchParameters, it.showFromPosition)
|
||||||
|
searchFiltersView?.searchParameters = it.searchParameters
|
||||||
}
|
}
|
||||||
|
|
||||||
loadingView?.hideByFading()
|
loadingView?.hideByFading()
|
||||||
}
|
}
|
||||||
|
|
||||||
mGroupViewModel.firstPositionVisible.observe(this) { firstPositionVisible ->
|
mGroupViewModel.firstPositionVisible.observe(this) { firstPositionVisible ->
|
||||||
|
mSearchState?.firstVisibleItem = firstPositionVisible
|
||||||
mCurrentGroupState?.firstVisibleItem = firstPositionVisible
|
mCurrentGroupState?.firstVisibleItem = firstPositionVisible
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -420,21 +444,27 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
return rootContainerView
|
return rootContainerView
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadGroup(database: Database?) {
|
private fun loadGroup() {
|
||||||
|
val searchState = mSearchState
|
||||||
|
val currentGroupState = mCurrentGroupState
|
||||||
when {
|
when {
|
||||||
Intent.ACTION_SEARCH == intent.action -> {
|
searchState != null -> {
|
||||||
finishNodeAction()
|
finishNodeAction()
|
||||||
searchFiltersView?.setQuery(
|
mGroupViewModel.loadSearchGroup(mDatabase,
|
||||||
intent.getStringExtra(SearchManager.QUERY)?.trim { it <= ' ' } ?: ""
|
searchState.searchParameters,
|
||||||
|
searchState.firstVisibleItem
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
mCurrentGroupState == null -> {
|
currentGroupState != null -> {
|
||||||
mRootGroup?.let { rootGroup ->
|
mGroupViewModel.loadMainGroup(mDatabase,
|
||||||
mGroupViewModel.loadGroup(database, rootGroup, 0)
|
currentGroupState.groupId,
|
||||||
}
|
currentGroupState.firstVisibleItem)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
mGroupViewModel.loadGroup(database, mCurrentGroupState)
|
mGroupViewModel.loadMainGroup(mDatabase,
|
||||||
|
null,
|
||||||
|
0
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -448,7 +478,7 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
&& database?.isRecycleBinEnabled == true
|
&& database?.isRecycleBinEnabled == true
|
||||||
|
|
||||||
mRootGroup = database?.rootGroup
|
mRootGroup = database?.rootGroup
|
||||||
loadGroup(database)
|
loadGroup()
|
||||||
|
|
||||||
// Search suggestion
|
// Search suggestion
|
||||||
database?.let {
|
database?.let {
|
||||||
@@ -569,7 +599,16 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
}
|
}
|
||||||
// To transform KEY_SEARCH_INFO in ACTION_SEARCH
|
// To transform KEY_SEARCH_INFO in ACTION_SEARCH
|
||||||
transformSearchInfoIntent(intent)
|
transformSearchInfoIntent(intent)
|
||||||
loadGroup(mDatabase)
|
// Get search query
|
||||||
|
if (intent.action == Intent.ACTION_SEARCH) {
|
||||||
|
val stringQuery = intent.getStringExtra(SearchManager.QUERY)?.trim { it <= ' ' } ?: ""
|
||||||
|
intent.action = Intent.ACTION_DEFAULT
|
||||||
|
intent.removeExtra(SearchManager.QUERY)
|
||||||
|
mSearchState = SearchState(SearchParameters().apply {
|
||||||
|
searchQuery = stringQuery
|
||||||
|
}, mSearchState?.firstVisibleItem ?: 0)
|
||||||
|
}
|
||||||
|
loadGroup()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -590,15 +629,7 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onGroupRefreshed() {
|
override fun onGroupRefreshed() {
|
||||||
if (mSearchGroup != null) {
|
val group = mCurrentGroup
|
||||||
assignGroupViewElements(mSearchGroup)
|
|
||||||
} else {
|
|
||||||
assignGroupViewElements(mCurrentGroup)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun assignGroupViewElements(group: Group?) {
|
|
||||||
// TODO in real time
|
|
||||||
// Assign title
|
// Assign title
|
||||||
if (group?.isVirtual == true) {
|
if (group?.isVirtual == true) {
|
||||||
searchFiltersView?.setNumbers(SearchHelper.showNumberOfSearchResults(group.numberOfChildEntries))
|
searchFiltersView?.setNumbers(SearchHelper.showNumberOfSearchResults(group.numberOfChildEntries))
|
||||||
@@ -656,7 +687,7 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Open child group
|
// Open child group
|
||||||
mGroupViewModel.loadGroup(database, group, 0)
|
mGroupViewModel.loadMainGroup(database, group, 0)
|
||||||
|
|
||||||
} catch (e: ClassCastException) {
|
} catch (e: ClassCastException) {
|
||||||
Log.e(TAG, "Node can't be cast in Group")
|
Log.e(TAG, "Node can't be cast in Group")
|
||||||
@@ -999,28 +1030,34 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
|
|
||||||
// Get the SearchView and set the searchable configuration
|
// Get the SearchView and set the searchable configuration
|
||||||
menu.findItem(R.id.menu_search)?.let {
|
menu.findItem(R.id.menu_search)?.let {
|
||||||
|
mLockSearchListeners = true
|
||||||
it.setOnActionExpandListener(mOnSearchActionExpandListener)
|
it.setOnActionExpandListener(mOnSearchActionExpandListener)
|
||||||
searchView = it.actionView as SearchView?
|
searchView = it.actionView as SearchView?
|
||||||
searchView?.apply {
|
searchView?.apply {
|
||||||
/*
|
|
||||||
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager?
|
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager?
|
||||||
(searchManager?.getSearchableInfo(
|
(searchManager?.getSearchableInfo(
|
||||||
ComponentName(this@GroupActivity, GroupActivity::class.java)
|
ComponentName(this@GroupActivity, GroupActivity::class.java)
|
||||||
))?.let { searchableInfo ->
|
))?.let { searchableInfo ->
|
||||||
setSearchableInfo(searchableInfo)
|
setSearchableInfo(searchableInfo)
|
||||||
}
|
}
|
||||||
|
val searchState = mSearchState
|
||||||
*/
|
// Expand the search view if defined in settings
|
||||||
isIconified = false
|
if (mRequestStartupSearch
|
||||||
}
|
&& PreferencesUtil.automaticallyFocusSearch(this@GroupActivity)
|
||||||
// Expand the search view if defined in settings
|
) {
|
||||||
if (mRequestStartupSearch
|
// To request search only one time
|
||||||
&& PreferencesUtil.automaticallyFocusSearch(this@GroupActivity)
|
mRequestStartupSearch = false
|
||||||
) {
|
it.expandActionView()
|
||||||
// To request search only one time
|
}
|
||||||
mRequestStartupSearch = false
|
// Or already open
|
||||||
it.expandActionView()
|
else if (searchState != null) {
|
||||||
|
it.expandActionView()
|
||||||
|
setQuery(searchState.searchParameters.searchQuery, false)
|
||||||
|
searchFiltersView?.visibility = View.VISIBLE
|
||||||
|
}
|
||||||
|
setOnQueryTextListener(mOnSearchQueryTextListener)
|
||||||
}
|
}
|
||||||
|
mLockSearchListeners = false
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onCreateOptionsMenu(menu)
|
super.onCreateOptionsMenu(menu)
|
||||||
@@ -1159,24 +1196,9 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun removeSearch() {
|
|
||||||
mSearchGroup = null
|
|
||||||
intent.removeExtra(AUTO_SEARCH_KEY)
|
|
||||||
if (Intent.ACTION_SEARCH == intent.action) {
|
|
||||||
intent.action = Intent.ACTION_DEFAULT
|
|
||||||
intent.removeExtra(SearchManager.QUERY)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun reloadCurrentGroup() {
|
private fun reloadCurrentGroup() {
|
||||||
// Remove search in intent
|
|
||||||
removeSearch()
|
removeSearch()
|
||||||
// Reload real group
|
loadGroup()
|
||||||
try {
|
|
||||||
mGroupViewModel.loadGroup(mDatabase, mCurrentGroupState)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Log.e(TAG, "Unable to rebuild the group", e)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
@@ -1195,7 +1217,11 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
// Load the previous group
|
// Load the previous group
|
||||||
mGroupViewModel.loadGroup(mDatabase, mPreviousGroupsIds.removeLast())
|
val previousGroupState = mPreviousGroupsIds.removeLast()
|
||||||
|
mGroupViewModel.loadMainGroup(mDatabase,
|
||||||
|
previousGroupState.groupId,
|
||||||
|
previousGroupState.firstVisibleItem
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1214,6 +1240,35 @@ class GroupActivity : DatabaseLockActivity(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data class SearchState(
|
||||||
|
var searchParameters: SearchParameters,
|
||||||
|
var firstVisibleItem: Int?
|
||||||
|
) : Parcelable {
|
||||||
|
|
||||||
|
private constructor(parcel: Parcel) : this(
|
||||||
|
parcel.readParcelable<SearchParameters>
|
||||||
|
(SearchParameters::class.java.classLoader) ?: SearchParameters(),
|
||||||
|
parcel.readInt()
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||||
|
parcel.writeParcelable(searchParameters, flags)
|
||||||
|
parcel.writeInt(firstVisibleItem ?: 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun describeContents() = 0
|
||||||
|
|
||||||
|
companion object CREATOR : Parcelable.Creator<SearchState> {
|
||||||
|
override fun createFromParcel(parcel: Parcel): SearchState {
|
||||||
|
return SearchState(parcel)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun newArray(size: Int): Array<SearchState?> {
|
||||||
|
return arrayOfNulls(size)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class GroupState(
|
data class GroupState(
|
||||||
var groupId: NodeId<*>?,
|
var groupId: NodeId<*>?,
|
||||||
var firstVisibleItem: Int?
|
var firstVisibleItem: Int?
|
||||||
|
|||||||
@@ -782,21 +782,19 @@ class Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isGroupSearchable(group: Group, omitBackup: Boolean): Boolean {
|
fun isGroupSearchable(group: Group, omitRecycleBin: Boolean): Boolean {
|
||||||
return mDatabaseKDB?.isGroupSearchable(group.groupKDB, omitBackup) ?:
|
return mDatabaseKDB?.isGroupSearchable(group.groupKDB, omitRecycleBin) ?:
|
||||||
mDatabaseKDBX?.isGroupSearchable(group.groupKDBX, omitBackup) ?:
|
mDatabaseKDBX?.isGroupSearchable(group.groupKDBX, omitRecycleBin) ?:
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createVirtualGroupFromSearch(searchParameters: SearchParameters,
|
fun createVirtualGroupFromSearch(searchParameters: SearchParameters,
|
||||||
omitBackup: Boolean,
|
|
||||||
max: Int = Integer.MAX_VALUE): Group? {
|
max: Int = Integer.MAX_VALUE): Group? {
|
||||||
return mSearchHelper?.createVirtualGroupWithSearchResult(this,
|
return mSearchHelper?.createVirtualGroupWithSearchResult(this,
|
||||||
searchParameters,omitBackup, max)
|
searchParameters, max)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createVirtualGroupFromSearchInfo(searchInfoString: String,
|
fun createVirtualGroupFromSearchInfo(searchInfoString: String,
|
||||||
omitBackup: Boolean,
|
|
||||||
max: Int = Integer.MAX_VALUE): Group? {
|
max: Int = Integer.MAX_VALUE): Group? {
|
||||||
return mSearchHelper?.createVirtualGroupWithSearchResult(this,
|
return mSearchHelper?.createVirtualGroupWithSearchResult(this,
|
||||||
SearchParameters().apply {
|
SearchParameters().apply {
|
||||||
@@ -811,7 +809,8 @@ class Database {
|
|||||||
searchInUUIDs = false
|
searchInUUIDs = false
|
||||||
searchInTags = false
|
searchInTags = false
|
||||||
searchInTemplates = false
|
searchInTemplates = false
|
||||||
}, omitBackup, max)
|
searchInRecycleBin = false
|
||||||
|
}, max)
|
||||||
}
|
}
|
||||||
|
|
||||||
val tagPool: Tags
|
val tagPool: Tags
|
||||||
|
|||||||
@@ -325,10 +325,10 @@ abstract class DatabaseVersioned<
|
|||||||
|
|
||||||
abstract fun isInRecycleBin(group: Group): Boolean
|
abstract fun isInRecycleBin(group: Group): Boolean
|
||||||
|
|
||||||
fun isGroupSearchable(group: Group?, omitBackup: Boolean): Boolean {
|
fun isGroupSearchable(group: Group?, omitRecycleBin: Boolean): Boolean {
|
||||||
if (group == null)
|
if (group == null)
|
||||||
return false
|
return false
|
||||||
if (omitBackup && isInRecycleBin(group))
|
if (omitRecycleBin && isInRecycleBin(group))
|
||||||
return false
|
return false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ class SearchHelper {
|
|||||||
|
|
||||||
fun createVirtualGroupWithSearchResult(database: Database,
|
fun createVirtualGroupWithSearchResult(database: Database,
|
||||||
searchParameters: SearchParameters,
|
searchParameters: SearchParameters,
|
||||||
omitBackup: Boolean,
|
|
||||||
max: Int): Group? {
|
max: Int): Group? {
|
||||||
|
|
||||||
val searchGroup = database.createGroup()
|
val searchGroup = database.createGroup()
|
||||||
@@ -65,7 +64,8 @@ class SearchHelper {
|
|||||||
override fun operate(node: Group): Boolean {
|
override fun operate(node: Group): Boolean {
|
||||||
return when {
|
return when {
|
||||||
incrementEntry >= max -> false
|
incrementEntry >= max -> false
|
||||||
database.isGroupSearchable(node, omitBackup) -> true
|
// TODO searchInTemplate
|
||||||
|
database.isGroupSearchable(node, !searchParameters.searchInRecycleBin) -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -122,7 +122,6 @@ class SearchHelper {
|
|||||||
// If search provide results
|
// If search provide results
|
||||||
database.createVirtualGroupFromSearchInfo(
|
database.createVirtualGroupFromSearchInfo(
|
||||||
searchInfo.toString(),
|
searchInfo.toString(),
|
||||||
PreferencesUtil.omitBackup(context),
|
|
||||||
MAX_SEARCH_ENTRY
|
MAX_SEARCH_ENTRY
|
||||||
)?.let { searchGroup ->
|
)?.let { searchGroup ->
|
||||||
if (searchGroup.numberOfChildEntries > 0) {
|
if (searchGroup.numberOfChildEntries > 0) {
|
||||||
|
|||||||
@@ -19,10 +19,13 @@
|
|||||||
*/
|
*/
|
||||||
package com.kunzisoft.keepass.database.search
|
package com.kunzisoft.keepass.database.search
|
||||||
|
|
||||||
|
import android.os.Parcel
|
||||||
|
import android.os.Parcelable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parameters for searching strings in the database.
|
* Parameters for searching strings in the database.
|
||||||
*/
|
*/
|
||||||
class SearchParameters {
|
class SearchParameters() : Parcelable{
|
||||||
var searchQuery: String = ""
|
var searchQuery: String = ""
|
||||||
|
|
||||||
var caseSensitive = false
|
var caseSensitive = false
|
||||||
@@ -39,4 +42,53 @@ class SearchParameters {
|
|||||||
var searchInTags = false
|
var searchInTags = false
|
||||||
|
|
||||||
var searchInTemplates = false
|
var searchInTemplates = false
|
||||||
|
var searchInRecycleBin = false
|
||||||
|
|
||||||
|
constructor(parcel: Parcel) : this() {
|
||||||
|
searchQuery = parcel.readString() ?: searchQuery
|
||||||
|
caseSensitive = parcel.readByte() != 0.toByte()
|
||||||
|
excludeExpired = parcel.readByte() != 0.toByte()
|
||||||
|
searchInTitles = parcel.readByte() != 0.toByte()
|
||||||
|
searchInUsernames = parcel.readByte() != 0.toByte()
|
||||||
|
searchInPasswords = parcel.readByte() != 0.toByte()
|
||||||
|
searchInUrls = parcel.readByte() != 0.toByte()
|
||||||
|
searchInNotes = parcel.readByte() != 0.toByte()
|
||||||
|
searchInOTP = parcel.readByte() != 0.toByte()
|
||||||
|
searchInOther = parcel.readByte() != 0.toByte()
|
||||||
|
searchInUUIDs = parcel.readByte() != 0.toByte()
|
||||||
|
searchInTags = parcel.readByte() != 0.toByte()
|
||||||
|
searchInTemplates = parcel.readByte() != 0.toByte()
|
||||||
|
searchInRecycleBin = parcel.readByte() != 0.toByte()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||||
|
parcel.writeString(searchQuery)
|
||||||
|
parcel.writeByte(if (caseSensitive) 1 else 0)
|
||||||
|
parcel.writeByte(if (excludeExpired) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInTitles) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInUsernames) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInPasswords) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInUrls) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInNotes) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInOTP) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInOther) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInUUIDs) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInTags) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInTemplates) 1 else 0)
|
||||||
|
parcel.writeByte(if (searchInRecycleBin) 1 else 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun describeContents(): Int {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object CREATOR : Parcelable.Creator<SearchParameters> {
|
||||||
|
override fun createFromParcel(parcel: Parcel): SearchParameters {
|
||||||
|
return SearchParameters(parcel)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun newArray(size: Int): Array<SearchParameters?> {
|
||||||
|
return arrayOfNulls(size)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,12 +92,6 @@ object PreferencesUtil {
|
|||||||
context.resources.getBoolean(R.bool.remember_keyfile_locations_default))
|
context.resources.getBoolean(R.bool.remember_keyfile_locations_default))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun omitBackup(context: Context): Boolean {
|
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
|
||||||
return prefs.getBoolean(context.getString(R.string.omit_backup_search_key),
|
|
||||||
context.resources.getBoolean(R.bool.omit_backup_search_default))
|
|
||||||
}
|
|
||||||
|
|
||||||
fun automaticallyFocusSearch(context: Context): Boolean {
|
fun automaticallyFocusSearch(context: Context): Boolean {
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
return prefs.getBoolean(context.getString(R.string.auto_focus_search_key),
|
return prefs.getBoolean(context.getString(R.string.auto_focus_search_key),
|
||||||
@@ -608,7 +602,6 @@ object PreferencesUtil {
|
|||||||
context.getString(R.string.enable_read_only_key) -> editor.putBoolean(name, value.toBoolean())
|
context.getString(R.string.enable_read_only_key) -> editor.putBoolean(name, value.toBoolean())
|
||||||
context.getString(R.string.enable_auto_save_database_key) -> editor.putBoolean(name, value.toBoolean())
|
context.getString(R.string.enable_auto_save_database_key) -> editor.putBoolean(name, value.toBoolean())
|
||||||
context.getString(R.string.enable_keep_screen_on_key) -> editor.putBoolean(name, value.toBoolean())
|
context.getString(R.string.enable_keep_screen_on_key) -> editor.putBoolean(name, value.toBoolean())
|
||||||
context.getString(R.string.omit_backup_search_key) -> editor.putBoolean(name, value.toBoolean())
|
|
||||||
context.getString(R.string.auto_focus_search_key) -> editor.putBoolean(name, value.toBoolean())
|
context.getString(R.string.auto_focus_search_key) -> editor.putBoolean(name, value.toBoolean())
|
||||||
context.getString(R.string.subdomain_search_key) -> editor.putBoolean(name, value.toBoolean())
|
context.getString(R.string.subdomain_search_key) -> editor.putBoolean(name, value.toBoolean())
|
||||||
context.getString(R.string.app_timeout_key) -> editor.putString(name, value.toLong().toString())
|
context.getString(R.string.app_timeout_key) -> editor.putString(name, value.toLong().toString())
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
|||||||
private var searchOther: CompoundButton
|
private var searchOther: CompoundButton
|
||||||
private var searchUUID: CompoundButton
|
private var searchUUID: CompoundButton
|
||||||
private var searchTag: CompoundButton
|
private var searchTag: CompoundButton
|
||||||
|
private var searchTemplate: CompoundButton
|
||||||
|
private var searchRecycleBin: CompoundButton
|
||||||
|
|
||||||
var searchParameters = SearchParameters()
|
var searchParameters = SearchParameters()
|
||||||
get() {
|
get() {
|
||||||
@@ -45,9 +47,28 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
|||||||
this.searchInOther = searchOther.isChecked
|
this.searchInOther = searchOther.isChecked
|
||||||
this.searchInUUIDs = searchUUID.isChecked
|
this.searchInUUIDs = searchUUID.isChecked
|
||||||
this.searchInTags = searchTag.isChecked
|
this.searchInTags = searchTag.isChecked
|
||||||
|
this.searchInTemplates = searchTemplate.isChecked
|
||||||
|
this.searchInRecycleBin = searchRecycleBin.isChecked
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private set
|
set(value) {
|
||||||
|
field = value
|
||||||
|
val tempListener = onParametersChangeListener
|
||||||
|
onParametersChangeListener = null
|
||||||
|
searchCaseSensitive.isChecked = value.caseSensitive
|
||||||
|
searchExpires.isChecked = !value.excludeExpired
|
||||||
|
searchTitle.isChecked = value.searchInTitles
|
||||||
|
searchUsername.isChecked = value.searchInUsernames
|
||||||
|
searchPassword.isChecked = value.searchInPasswords
|
||||||
|
searchURL.isChecked = value.searchInUrls
|
||||||
|
searchNotes.isChecked = value.searchInNotes
|
||||||
|
searchOther.isChecked = value.searchInOther
|
||||||
|
searchUUID.isChecked = value.searchInUUIDs
|
||||||
|
searchTag.isChecked = value.searchInTags
|
||||||
|
searchTemplate.isChecked = value.searchInTemplates
|
||||||
|
searchRecycleBin.isChecked = value.searchInRecycleBin
|
||||||
|
onParametersChangeListener = tempListener
|
||||||
|
}
|
||||||
|
|
||||||
var onParametersChangeListener: ((searchParameters: SearchParameters) -> Unit)? = null
|
var onParametersChangeListener: ((searchParameters: SearchParameters) -> Unit)? = null
|
||||||
|
|
||||||
@@ -69,6 +90,8 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
|||||||
searchUUID = findViewById(R.id.search_chip_uuid)
|
searchUUID = findViewById(R.id.search_chip_uuid)
|
||||||
searchOther = findViewById(R.id.search_chip_other)
|
searchOther = findViewById(R.id.search_chip_other)
|
||||||
searchTag = findViewById(R.id.search_chip_tag)
|
searchTag = findViewById(R.id.search_chip_tag)
|
||||||
|
searchTemplate = findViewById(R.id.search_chip_template)
|
||||||
|
searchRecycleBin = findViewById(R.id.search_chip_recycle_bin)
|
||||||
|
|
||||||
// Expand menu with button
|
// Expand menu with button
|
||||||
searchExpandButton.setOnClickListener {
|
searchExpandButton.setOnClickListener {
|
||||||
@@ -122,11 +145,14 @@ class SearchFiltersView @JvmOverloads constructor(context: Context,
|
|||||||
searchParameters.searchInTags = isChecked
|
searchParameters.searchInTags = isChecked
|
||||||
onParametersChangeListener?.invoke(searchParameters)
|
onParametersChangeListener?.invoke(searchParameters)
|
||||||
}
|
}
|
||||||
}
|
searchTemplate.setOnCheckedChangeListener { _, isChecked ->
|
||||||
|
searchParameters.searchInTemplates = isChecked
|
||||||
fun setQuery(query: String) {
|
onParametersChangeListener?.invoke(searchParameters)
|
||||||
searchParameters.searchQuery = query
|
}
|
||||||
onParametersChangeListener?.invoke(searchParameters)
|
searchRecycleBin.setOnCheckedChangeListener { _, isChecked ->
|
||||||
|
searchParameters.searchInRecycleBin = isChecked
|
||||||
|
onParametersChangeListener?.invoke(searchParameters)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setNumbers(stringNumbers: String) {
|
fun setNumbers(stringNumbers: String) {
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ package com.kunzisoft.keepass.viewmodels
|
|||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.kunzisoft.keepass.activities.GroupActivity
|
|
||||||
import com.kunzisoft.keepass.app.database.IOActionTask
|
import com.kunzisoft.keepass.app.database.IOActionTask
|
||||||
import com.kunzisoft.keepass.database.element.Database
|
import com.kunzisoft.keepass.database.element.Database
|
||||||
import com.kunzisoft.keepass.database.element.Group
|
import com.kunzisoft.keepass.database.element.Group
|
||||||
|
import com.kunzisoft.keepass.database.element.node.NodeId
|
||||||
import com.kunzisoft.keepass.database.search.SearchHelper
|
import com.kunzisoft.keepass.database.search.SearchHelper
|
||||||
import com.kunzisoft.keepass.database.search.SearchParameters
|
import com.kunzisoft.keepass.database.search.SearchParameters
|
||||||
|
|
||||||
@@ -38,11 +38,11 @@ class GroupViewModel: ViewModel() {
|
|||||||
val firstPositionVisible : LiveData<Int> get() = _firstPositionVisible
|
val firstPositionVisible : LiveData<Int> get() = _firstPositionVisible
|
||||||
private val _firstPositionVisible = MutableLiveData<Int>()
|
private val _firstPositionVisible = MutableLiveData<Int>()
|
||||||
|
|
||||||
fun loadGroup(database: Database?,
|
fun loadMainGroup(database: Database?,
|
||||||
groupState: GroupActivity.GroupState?) {
|
groupId: NodeId<*>?,
|
||||||
|
showFromPosition: Int?) {
|
||||||
IOActionTask(
|
IOActionTask(
|
||||||
{
|
{
|
||||||
val groupId = groupState?.groupId
|
|
||||||
if (groupId != null) {
|
if (groupId != null) {
|
||||||
database?.getGroupById(groupId)
|
database?.getGroupById(groupId)
|
||||||
} else {
|
} else {
|
||||||
@@ -53,32 +53,27 @@ class GroupViewModel: ViewModel() {
|
|||||||
if (group != null) {
|
if (group != null) {
|
||||||
_group.value = SuperGroup(group,
|
_group.value = SuperGroup(group,
|
||||||
database?.recycleBin == group,
|
database?.recycleBin == group,
|
||||||
groupState?.firstVisibleItem)
|
showFromPosition)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
).execute()
|
).execute()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadGroup(database: Database?,
|
fun loadMainGroup(database: Database?,
|
||||||
group: Group,
|
group: Group,
|
||||||
showFromPosition: Int?) {
|
showFromPosition: Int?) {
|
||||||
_group.value = SuperGroup(group,
|
_group.value = SuperGroup(group,
|
||||||
database?.recycleBin == group,
|
database?.recycleBin == group,
|
||||||
showFromPosition)
|
showFromPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun assignPosition(position: Int) {
|
fun loadSearchGroup(database: Database?,
|
||||||
_firstPositionVisible.value = position
|
searchParameters: SearchParameters,
|
||||||
}
|
showFromPosition: Int?) {
|
||||||
|
|
||||||
fun loadGroupFromSearch(database: Database?,
|
|
||||||
searchParameters: SearchParameters,
|
|
||||||
omitBackup: Boolean) {
|
|
||||||
IOActionTask(
|
IOActionTask(
|
||||||
{
|
{
|
||||||
database?.createVirtualGroupFromSearch(
|
database?.createVirtualGroupFromSearch(
|
||||||
searchParameters,
|
searchParameters,
|
||||||
omitBackup,
|
|
||||||
SearchHelper.MAX_SEARCH_ENTRY
|
SearchHelper.MAX_SEARCH_ENTRY
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@@ -86,13 +81,21 @@ class GroupViewModel: ViewModel() {
|
|||||||
if (group != null) {
|
if (group != null) {
|
||||||
_group.value = SuperGroup(group,
|
_group.value = SuperGroup(group,
|
||||||
database?.recycleBin == group,
|
database?.recycleBin == group,
|
||||||
0)
|
showFromPosition,
|
||||||
|
searchParameters)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
).execute()
|
).execute()
|
||||||
}
|
}
|
||||||
|
|
||||||
data class SuperGroup(val group: Group, val isRecycleBin: Boolean, var showFromPosition: Int?)
|
fun assignPosition(position: Int) {
|
||||||
|
_firstPositionVisible.value = position
|
||||||
|
}
|
||||||
|
|
||||||
|
data class SuperGroup(val group: Group,
|
||||||
|
val isRecycleBin: Boolean,
|
||||||
|
var showFromPosition: Int?,
|
||||||
|
var searchParameters: SearchParameters = SearchParameters())
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = GroupViewModel::class.java.name
|
private val TAG = GroupViewModel::class.java.name
|
||||||
|
|||||||
@@ -135,6 +135,20 @@
|
|||||||
android:checked="false"
|
android:checked="false"
|
||||||
style="@style/KeepassDXStyle.Chip.Filter"
|
style="@style/KeepassDXStyle.Chip.Filter"
|
||||||
android:text="@string/tags"/>
|
android:text="@string/tags"/>
|
||||||
|
<com.google.android.material.chip.Chip
|
||||||
|
android:id="@+id/search_chip_template"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:checked="false"
|
||||||
|
style="@style/KeepassDXStyle.Chip.Filter"
|
||||||
|
android:text="@string/template"/>
|
||||||
|
<com.google.android.material.chip.Chip
|
||||||
|
android:id="@+id/search_chip_recycle_bin"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:checked="false"
|
||||||
|
style="@style/KeepassDXStyle.Chip.Filter"
|
||||||
|
android:text="@string/recycle_bin"/>
|
||||||
</com.google.android.material.chip.ChipGroup>
|
</com.google.android.material.chip.ChipGroup>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -158,7 +158,6 @@
|
|||||||
<string name="menu_open_file_read_and_write">قابل للتعديل</string>
|
<string name="menu_open_file_read_and_write">قابل للتعديل</string>
|
||||||
<string name="select_database_file">فتح قاعدة بيانات موجودة</string>
|
<string name="select_database_file">فتح قاعدة بيانات موجودة</string>
|
||||||
<string name="create_keepass_file">انشاء قاعدة بيانات</string>
|
<string name="create_keepass_file">انشاء قاعدة بيانات</string>
|
||||||
<string name="omit_backup_search_title">لا تبحثفي مدخلات النسخ الاحتياطي</string>
|
|
||||||
<string name="progress_title">قيد العمل…</string>
|
<string name="progress_title">قيد العمل…</string>
|
||||||
<string name="read_only_warning">KeePassDX يحتاج صلاحية الكتابة من اجل تعديل قاعدة البيانات.</string>
|
<string name="read_only_warning">KeePassDX يحتاج صلاحية الكتابة من اجل تعديل قاعدة البيانات.</string>
|
||||||
<string name="encryption_explanation">خوارزمية تشفير جميع البيانات.</string>
|
<string name="encryption_explanation">خوارزمية تشفير جميع البيانات.</string>
|
||||||
@@ -301,7 +300,6 @@
|
|||||||
<string name="contains_duplicate_uuid_procedure">للمتابعة هل تريد حل المشكلة بتوليد UUID للعناصر المكررة ؟</string>
|
<string name="contains_duplicate_uuid_procedure">للمتابعة هل تريد حل المشكلة بتوليد UUID للعناصر المكررة ؟</string>
|
||||||
<string name="contains_duplicate_uuid">تحتوي قاعدة البيانات على UUID مكرر.</string>
|
<string name="contains_duplicate_uuid">تحتوي قاعدة البيانات على UUID مكرر.</string>
|
||||||
<string name="auto_focus_search_title">البحث السريع</string>
|
<string name="auto_focus_search_title">البحث السريع</string>
|
||||||
<string name="omit_backup_search_summary">أزِل مجموعتي \"سلة المحذوفات\" و\" النسخ الاحتياطي\" من نتائج البحث</string>
|
|
||||||
<string name="menu_delete_entry_history">احذف السجل</string>
|
<string name="menu_delete_entry_history">احذف السجل</string>
|
||||||
<string name="menu_restore_entry_history">استعادة السجل</string>
|
<string name="menu_restore_entry_history">استعادة السجل</string>
|
||||||
<string name="menu_empty_recycle_bin">أفرغ سلة المحذوفات</string>
|
<string name="menu_empty_recycle_bin">أفرغ سلة المحذوفات</string>
|
||||||
|
|||||||
@@ -102,8 +102,6 @@
|
|||||||
<string name="never">Mai</string>
|
<string name="never">Mai</string>
|
||||||
<string name="no_results">Cap resultat de cerca</string>
|
<string name="no_results">Cap resultat de cerca</string>
|
||||||
<string name="no_url_handler">Instal·leu un navegador web per a obri aquesta URL</string>
|
<string name="no_url_handler">Instal·leu un navegador web per a obri aquesta URL</string>
|
||||||
<string name="omit_backup_search_title">No cerquis entrades a còpia de seguretat ni paperera</string>
|
|
||||||
<string name="omit_backup_search_summary">Omet els grups \'Còpia de seguretat\' i paperera dels resultats de cerca</string>
|
|
||||||
<string name="progress_create">Creant nova base de dades…</string>
|
<string name="progress_create">Creant nova base de dades…</string>
|
||||||
<string name="progress_title">Treballant…</string>
|
<string name="progress_title">Treballant…</string>
|
||||||
<string name="content_description_remove_from_list">Elimina</string>
|
<string name="content_description_remove_from_list">Elimina</string>
|
||||||
|
|||||||
@@ -109,8 +109,6 @@
|
|||||||
<string name="never">Nikdy</string>
|
<string name="never">Nikdy</string>
|
||||||
<string name="no_results">Žádné výsledky hledání</string>
|
<string name="no_results">Žádné výsledky hledání</string>
|
||||||
<string name="no_url_handler">Pro otevření tohoto URL nainstalujte webový prohlížeč.</string>
|
<string name="no_url_handler">Pro otevření tohoto URL nainstalujte webový prohlížeč.</string>
|
||||||
<string name="omit_backup_search_title">Neprohledávat položky v záloze</string>
|
|
||||||
<string name="omit_backup_search_summary">Vynechat skupiny „Záloha“ a \"Koš\" z výsledků vyhledávání</string>
|
|
||||||
<string name="progress_create">Vytváření nové databáze…</string>
|
<string name="progress_create">Vytváření nové databáze…</string>
|
||||||
<string name="progress_title">Pracuji…</string>
|
<string name="progress_title">Pracuji…</string>
|
||||||
<string name="protection">Ochrana</string>
|
<string name="protection">Ochrana</string>
|
||||||
|
|||||||
@@ -108,8 +108,6 @@
|
|||||||
<string name="never">Aldrig</string>
|
<string name="never">Aldrig</string>
|
||||||
<string name="no_results">Ingen søgeresultater</string>
|
<string name="no_results">Ingen søgeresultater</string>
|
||||||
<string name="no_url_handler">Installer en web-browser til at åbne URL.</string>
|
<string name="no_url_handler">Installer en web-browser til at åbne URL.</string>
|
||||||
<string name="omit_backup_search_title">Gennemsøg ikke backup poster</string>
|
|
||||||
<string name="omit_backup_search_summary">Udelader \"Sikkerhedskopiering\" og \"Papirkurv\" - grupper fra søgeresultater</string>
|
|
||||||
<string name="progress_create">Opretter ny database…</string>
|
<string name="progress_create">Opretter ny database…</string>
|
||||||
<string name="progress_title">Arbejder…</string>
|
<string name="progress_title">Arbejder…</string>
|
||||||
<string name="protection">Beskyttelse</string>
|
<string name="protection">Beskyttelse</string>
|
||||||
|
|||||||
@@ -118,8 +118,6 @@
|
|||||||
<string name="never">Nie</string>
|
<string name="never">Nie</string>
|
||||||
<string name="no_results">Keine Suchergebnisse</string>
|
<string name="no_results">Keine Suchergebnisse</string>
|
||||||
<string name="no_url_handler">Bitte einen Webbrowser installieren, um diese URL zu öffnen.</string>
|
<string name="no_url_handler">Bitte einen Webbrowser installieren, um diese URL zu öffnen.</string>
|
||||||
<string name="omit_backup_search_title">Papierkorb und Backup nicht durchsuchen</string>
|
|
||||||
<string name="omit_backup_search_summary">Die Gruppen „Backup“ und „Papierkorb“ werden bei der Suche nicht berücksichtigt</string>
|
|
||||||
<string name="auto_focus_search_title">Schnellsuche</string>
|
<string name="auto_focus_search_title">Schnellsuche</string>
|
||||||
<string name="auto_focus_search_summary">Beim Öffnen einer Datenbank eine Suche veranlassen</string>
|
<string name="auto_focus_search_summary">Beim Öffnen einer Datenbank eine Suche veranlassen</string>
|
||||||
<string name="progress_create">Neue Datenbank anlegen …</string>
|
<string name="progress_create">Neue Datenbank anlegen …</string>
|
||||||
|
|||||||
@@ -111,8 +111,6 @@
|
|||||||
<string name="never">Ποτέ</string>
|
<string name="never">Ποτέ</string>
|
||||||
<string name="no_results">Δεν βρέθηκαν αποτελέσματα αναζήτησης</string>
|
<string name="no_results">Δεν βρέθηκαν αποτελέσματα αναζήτησης</string>
|
||||||
<string name="no_url_handler">Εγκαταστήστε ένα πρόγραμμα περιήγησης για να ανοίξετε αυτήν τη διεύθυνση URL.</string>
|
<string name="no_url_handler">Εγκαταστήστε ένα πρόγραμμα περιήγησης για να ανοίξετε αυτήν τη διεύθυνση URL.</string>
|
||||||
<string name="omit_backup_search_title">Να μην γίνει αναζήτηση μέσα από τις καταχωρήσεις αντιγραφών ασφαλείας</string>
|
|
||||||
<string name="omit_backup_search_summary">Παράληψη ομάδας \"Αντίγραφο Ασφαλείας\" και \"Κάδος Ανακύκλωσης\" από τα αποτελέσματα αναζήτησης</string>
|
|
||||||
<string name="progress_create">Δημιουργία νέας βάσης δεδομένων…</string>
|
<string name="progress_create">Δημιουργία νέας βάσης δεδομένων…</string>
|
||||||
<string name="progress_title">Επεξεργασία…</string>
|
<string name="progress_title">Επεξεργασία…</string>
|
||||||
<string name="protection">Προστασία</string>
|
<string name="protection">Προστασία</string>
|
||||||
|
|||||||
@@ -104,8 +104,6 @@
|
|||||||
<string name="never">Nunca</string>
|
<string name="never">Nunca</string>
|
||||||
<string name="no_results">Sin resultado de búsqueda</string>
|
<string name="no_results">Sin resultado de búsqueda</string>
|
||||||
<string name="no_url_handler">Instale un navegador web para abrir esta URL.</string>
|
<string name="no_url_handler">Instale un navegador web para abrir esta URL.</string>
|
||||||
<string name="omit_backup_search_title">No buscar en las entradas de respaldo</string>
|
|
||||||
<string name="omit_backup_search_summary">Omite los grupos «Respaldo» y «Papelera de reciclaje» de los resultados de búsqueda</string>
|
|
||||||
<string name="progress_create">Creando nueva base de datos…</string>
|
<string name="progress_create">Creando nueva base de datos…</string>
|
||||||
<string name="progress_title">Trabajando…</string>
|
<string name="progress_title">Trabajando…</string>
|
||||||
<string name="content_description_remove_from_list">Quitar</string>
|
<string name="content_description_remove_from_list">Quitar</string>
|
||||||
|
|||||||
@@ -111,8 +111,6 @@
|
|||||||
<string name="never">Inoiz ez</string>
|
<string name="never">Inoiz ez</string>
|
||||||
<string name="no_results">Emaitzarik gabeko bilaketa</string>
|
<string name="no_results">Emaitzarik gabeko bilaketa</string>
|
||||||
<string name="no_url_handler">URL kudatzeko euskarririk ez.</string>
|
<string name="no_url_handler">URL kudatzeko euskarririk ez.</string>
|
||||||
<string name="omit_backup_search_title">Ez bilatu segurtasun kopiaren sarreretan</string>
|
|
||||||
<string name="omit_backup_search_summary">Kendu segurtasun kopien taldea bilaketen emaitzetatik (.kdb fitxategie dagokie bakarrik)</string>
|
|
||||||
<string name="progress_create">Datubase berria sortzen…</string>
|
<string name="progress_create">Datubase berria sortzen…</string>
|
||||||
<string name="progress_title">Lanean…</string>
|
<string name="progress_title">Lanean…</string>
|
||||||
<string name="protection">Babesa</string>
|
<string name="protection">Babesa</string>
|
||||||
|
|||||||
@@ -63,8 +63,6 @@
|
|||||||
<string name="subdomain_search_title">جستجوی زیردریایی</string>
|
<string name="subdomain_search_title">جستجوی زیردریایی</string>
|
||||||
<string name="auto_focus_search_summary">درخواست جستجو در هنگام باز کردن یک پایگاه داده</string>
|
<string name="auto_focus_search_summary">درخواست جستجو در هنگام باز کردن یک پایگاه داده</string>
|
||||||
<string name="auto_focus_search_title">جستجوی سریع</string>
|
<string name="auto_focus_search_title">جستجوی سریع</string>
|
||||||
<string name="omit_backup_search_summary">Omits \"پشتیبان گیری\" و \"سطل بازیافت\" گروه از نتایج جستجو</string>
|
|
||||||
<string name="omit_backup_search_title">از طریق ورودی های پشتیبان جستجو نکنید</string>
|
|
||||||
<string name="create_keepass_file">ایجاد پایگاه داده جدید</string>
|
<string name="create_keepass_file">ایجاد پایگاه داده جدید</string>
|
||||||
<string name="select_database_file">باز کردن پایگاه داده موجود</string>
|
<string name="select_database_file">باز کردن پایگاه داده موجود</string>
|
||||||
<string name="no_url_handler">برای باز کردن این URL یک مرورگر وب نصب کنید.</string>
|
<string name="no_url_handler">برای باز کردن این URL یک مرورگر وب نصب کنید.</string>
|
||||||
|
|||||||
@@ -111,8 +111,6 @@
|
|||||||
<string name="never">Ei koskaan</string>
|
<string name="never">Ei koskaan</string>
|
||||||
<string name="no_results">Ei hakutuloksia</string>
|
<string name="no_results">Ei hakutuloksia</string>
|
||||||
<string name="no_url_handler">Asenna web-selain avataksesi URL:n.</string>
|
<string name="no_url_handler">Asenna web-selain avataksesi URL:n.</string>
|
||||||
<string name="omit_backup_search_title">Älä etsi varmuuskopioista eikä roskakorista</string>
|
|
||||||
<string name="omit_backup_search_summary">Poista \'Varmuuskopiot\' ja roskakori hakutuloksista</string>
|
|
||||||
<string name="progress_create">Luodaan uutta tietokantaa…</string>
|
<string name="progress_create">Luodaan uutta tietokantaa…</string>
|
||||||
<string name="progress_title">Työskennellään…</string>
|
<string name="progress_title">Työskennellään…</string>
|
||||||
<string name="protection">Suojaus</string>
|
<string name="protection">Suojaus</string>
|
||||||
|
|||||||
@@ -119,8 +119,6 @@
|
|||||||
<string name="no_results">Aucun résultat</string>
|
<string name="no_results">Aucun résultat</string>
|
||||||
<string name="no_url_handler">Installer un navigateur Web pour ouvrir cette URL.</string>
|
<string name="no_url_handler">Installer un navigateur Web pour ouvrir cette URL.</string>
|
||||||
<string name="select_database_file">Ouvrir une base de données existante</string>
|
<string name="select_database_file">Ouvrir une base de données existante</string>
|
||||||
<string name="omit_backup_search_title">Ne pas rechercher dans les entrées sauvegardées</string>
|
|
||||||
<string name="omit_backup_search_summary">Omet les groupes \"Sauvegarde\" et \"Corbeille\" des résultats de recherche</string>
|
|
||||||
<string name="progress_create">Création d’une nouvelle base de données…</string>
|
<string name="progress_create">Création d’une nouvelle base de données…</string>
|
||||||
<string name="progress_title">Traitement en cours…</string>
|
<string name="progress_title">Traitement en cours…</string>
|
||||||
<string name="protection">Protection</string>
|
<string name="protection">Protection</string>
|
||||||
|
|||||||
@@ -144,7 +144,6 @@
|
|||||||
<string name="no_url_handler">Instalirajte web preglednik da bi ste otvorili ovaj URL.</string>
|
<string name="no_url_handler">Instalirajte web preglednik da bi ste otvorili ovaj URL.</string>
|
||||||
<string name="select_database_file">Otvori postojeću bazu podataka</string>
|
<string name="select_database_file">Otvori postojeću bazu podataka</string>
|
||||||
<string name="create_keepass_file">Stvori novu bazu podataka</string>
|
<string name="create_keepass_file">Stvori novu bazu podataka</string>
|
||||||
<string name="omit_backup_search_title">Ne pretražuj kopije unosa</string>
|
|
||||||
<string name="progress_create">Stvaranje nove baze podataka …</string>
|
<string name="progress_create">Stvaranje nove baze podataka …</string>
|
||||||
<string name="protection">Zaštita</string>
|
<string name="protection">Zaštita</string>
|
||||||
<string name="contains_duplicate_uuid">Baza podataka sadrži duplicirane UUID-ove.</string>
|
<string name="contains_duplicate_uuid">Baza podataka sadrži duplicirane UUID-ove.</string>
|
||||||
@@ -258,7 +257,6 @@
|
|||||||
<string name="menu_move">Premjesti</string>
|
<string name="menu_move">Premjesti</string>
|
||||||
<string name="menu_cancel">Otkaži</string>
|
<string name="menu_cancel">Otkaži</string>
|
||||||
<string name="menu_file_selection_read_only">Zaštićeno od pisanja</string>
|
<string name="menu_file_selection_read_only">Zaštićeno od pisanja</string>
|
||||||
<string name="omit_backup_search_summary">Izostavi grupe \"Backup\" i \"Recycle bin\" iz rezultata pretraživanja</string>
|
|
||||||
<string name="progress_title">Rad u tijeku …</string>
|
<string name="progress_title">Rad u tijeku …</string>
|
||||||
<string name="read_only">Zaštićeno od pisanja</string>
|
<string name="read_only">Zaštićeno od pisanja</string>
|
||||||
<string name="read_only_warning">Ovisno o upravitelju datoteka, KeePassDX možda neće moći pisati u tvoje spremište.</string>
|
<string name="read_only_warning">Ovisno o upravitelju datoteka, KeePassDX možda neće moći pisati u tvoje spremište.</string>
|
||||||
|
|||||||
@@ -111,8 +111,6 @@
|
|||||||
<string name="never">Soha</string>
|
<string name="never">Soha</string>
|
||||||
<string name="no_results">Nincs találat</string>
|
<string name="no_results">Nincs találat</string>
|
||||||
<string name="no_url_handler">Telepítsen egy webböngészőt az URL megnyitásához.</string>
|
<string name="no_url_handler">Telepítsen egy webböngészőt az URL megnyitásához.</string>
|
||||||
<string name="omit_backup_search_title">Ne keressen a biztonsági mentésekben</string>
|
|
||||||
<string name="omit_backup_search_summary">A „Biztonsági mentés” csoport kihagyása a keresésből (csak a .kdb fájlokra érvényes)</string>
|
|
||||||
<string name="progress_create">Új adatbázis létrehozása…</string>
|
<string name="progress_create">Új adatbázis létrehozása…</string>
|
||||||
<string name="progress_title">Feldolgozás…</string>
|
<string name="progress_title">Feldolgozás…</string>
|
||||||
<string name="protection">Védelem</string>
|
<string name="protection">Védelem</string>
|
||||||
|
|||||||
@@ -177,8 +177,6 @@
|
|||||||
<string name="contact">Kontak</string>
|
<string name="contact">Kontak</string>
|
||||||
<string name="auto_focus_search_summary">Minta pencarian saat membuka database</string>
|
<string name="auto_focus_search_summary">Minta pencarian saat membuka database</string>
|
||||||
<string name="auto_focus_search_title">Pencarian cepat</string>
|
<string name="auto_focus_search_title">Pencarian cepat</string>
|
||||||
<string name="omit_backup_search_summary">Menghilangkan grup \"Cadangan\" dan \"Tempat sampah\" dari hasil penelusuran</string>
|
|
||||||
<string name="omit_backup_search_title">Jangan mencari melalui entri cadangan</string>
|
|
||||||
<string name="create_keepass_file">Buat basisdata baru</string>
|
<string name="create_keepass_file">Buat basisdata baru</string>
|
||||||
<string name="select_database_file">Buka basisdata yang sudah ada</string>
|
<string name="select_database_file">Buka basisdata yang sudah ada</string>
|
||||||
<string name="no_url_handler">Pasang browser web untuk membuka URL ini.</string>
|
<string name="no_url_handler">Pasang browser web untuk membuka URL ini.</string>
|
||||||
|
|||||||
@@ -113,8 +113,6 @@
|
|||||||
<string name="never">Mai</string>
|
<string name="never">Mai</string>
|
||||||
<string name="no_results">Nessun risultato di ricerca</string>
|
<string name="no_results">Nessun risultato di ricerca</string>
|
||||||
<string name="no_url_handler">Installa un browser web per aprire questo URL.</string>
|
<string name="no_url_handler">Installa un browser web per aprire questo URL.</string>
|
||||||
<string name="omit_backup_search_title">Non cercare nelle voci di backup</string>
|
|
||||||
<string name="omit_backup_search_summary">Ometti i gruppi «Backup» e «Cestino» dai risultati di ricerca</string>
|
|
||||||
<string name="progress_create">Creazione di un nuovo database…</string>
|
<string name="progress_create">Creazione di un nuovo database…</string>
|
||||||
<string name="progress_title">In corso…</string>
|
<string name="progress_title">In corso…</string>
|
||||||
<string name="protection">Protezione</string>
|
<string name="protection">Protezione</string>
|
||||||
|
|||||||
@@ -109,8 +109,6 @@
|
|||||||
<string name="never">אף פעם</string>
|
<string name="never">אף פעם</string>
|
||||||
<string name="no_results">אין תוצאות חיפוש</string>
|
<string name="no_results">אין תוצאות חיפוש</string>
|
||||||
<string name="no_url_handler">אין מטפל לכתובת url זו.</string>
|
<string name="no_url_handler">אין מטפל לכתובת url זו.</string>
|
||||||
<string name="omit_backup_search_title">אל תחפש ערכי גיבוי</string>
|
|
||||||
<string name="omit_backup_search_summary">הורד את קבוצת \"גיבוי\" מתוצאות חיפוש (תואם רק לקבצי kdb)</string>
|
|
||||||
<string name="progress_create">צור מסד נתונים חדש…</string>
|
<string name="progress_create">צור מסד נתונים חדש…</string>
|
||||||
<string name="progress_title">עובד…</string>
|
<string name="progress_title">עובד…</string>
|
||||||
<string name="protection">הגנה</string>
|
<string name="protection">הגנה</string>
|
||||||
|
|||||||
@@ -196,8 +196,6 @@
|
|||||||
<string name="no_url_handler">この URL を開くにはウェブブラウザをインストールしてください。</string>
|
<string name="no_url_handler">この URL を開くにはウェブブラウザをインストールしてください。</string>
|
||||||
<string name="select_database_file">既存のデータベースを開く</string>
|
<string name="select_database_file">既存のデータベースを開く</string>
|
||||||
<string name="create_keepass_file">新しいデータベースを作成</string>
|
<string name="create_keepass_file">新しいデータベースを作成</string>
|
||||||
<string name="omit_backup_search_title">バックアップ エントリーを検索しない</string>
|
|
||||||
<string name="omit_backup_search_summary">検索結果から [バックアップ] と [ゴミ箱] のグループを省きます</string>
|
|
||||||
<string name="auto_focus_search_title">クイック検索</string>
|
<string name="auto_focus_search_title">クイック検索</string>
|
||||||
<string name="auto_focus_search_summary">データベースを開いたとき、検索を促します</string>
|
<string name="auto_focus_search_summary">データベースを開いたとき、検索を促します</string>
|
||||||
<string name="subdomain_search_title">サブドメイン検索</string>
|
<string name="subdomain_search_title">サブドメイン検索</string>
|
||||||
|
|||||||
@@ -131,7 +131,6 @@
|
|||||||
<string name="no_url_handler">이 URL을 열기 위해 웹 브라우저를 설치하십시오.</string>
|
<string name="no_url_handler">이 URL을 열기 위해 웹 브라우저를 설치하십시오.</string>
|
||||||
<string name="select_database_file">가지고 있는 데이터베이스 열기</string>
|
<string name="select_database_file">가지고 있는 데이터베이스 열기</string>
|
||||||
<string name="create_keepass_file">새 데이터베이스 생성</string>
|
<string name="create_keepass_file">새 데이터베이스 생성</string>
|
||||||
<string name="omit_backup_search_title">백업 항목 검색하지 않기</string>
|
|
||||||
<string name="progress_create">새 데이터베이스 생성 중…</string>
|
<string name="progress_create">새 데이터베이스 생성 중…</string>
|
||||||
<string name="progress_title">작업 중…</string>
|
<string name="progress_title">작업 중…</string>
|
||||||
<string name="protection">보호</string>
|
<string name="protection">보호</string>
|
||||||
|
|||||||
@@ -86,7 +86,6 @@
|
|||||||
<string name="app_timeout">Programėlės neveiklumas</string>
|
<string name="app_timeout">Programėlės neveiklumas</string>
|
||||||
<string name="clipboard_error_clear">Nepavyko išvalyti iškarpinės</string>
|
<string name="clipboard_error_clear">Nepavyko išvalyti iškarpinės</string>
|
||||||
<string name="list_size_summary">Teksto dydis grupės sąraše</string>
|
<string name="list_size_summary">Teksto dydis grupės sąraše</string>
|
||||||
<string name="omit_backup_search_title">Neiškoti atkūrimo įrašuose</string>
|
|
||||||
<string name="error_can_not_handle_uri">KeePassDX negali apdoroti šio URI.</string>
|
<string name="error_can_not_handle_uri">KeePassDX negali apdoroti šio URI.</string>
|
||||||
<string name="entry_not_found">Įrašo duomenys nerasti.</string>
|
<string name="entry_not_found">Įrašo duomenys nerasti.</string>
|
||||||
<string name="keyfile_is_empty">Rakto failas yra tuščias.</string>
|
<string name="keyfile_is_empty">Rakto failas yra tuščias.</string>
|
||||||
|
|||||||
@@ -108,8 +108,6 @@
|
|||||||
<string name="never">Nekad</string>
|
<string name="never">Nekad</string>
|
||||||
<string name="no_results">Nav meklēšanas rezultātu</string>
|
<string name="no_results">Nav meklēšanas rezultātu</string>
|
||||||
<string name="no_url_handler">Neizdevās atvērt saiti.</string>
|
<string name="no_url_handler">Neizdevās atvērt saiti.</string>
|
||||||
<string name="omit_backup_search_title">Nemeklēt kopijās un atkritnē</string>
|
|
||||||
<string name="omit_backup_search_summary">Izlaist kopijas un atkritni no meklēšanas rezultātiem</string>
|
|
||||||
<string name="progress_create">Izveido jaunu datu bāzi…</string>
|
<string name="progress_create">Izveido jaunu datu bāzi…</string>
|
||||||
<string name="progress_title">Darbojas…</string>
|
<string name="progress_title">Darbojas…</string>
|
||||||
<string name="protection">Aizsardzība</string>
|
<string name="protection">Aizsardzība</string>
|
||||||
|
|||||||
@@ -306,8 +306,6 @@
|
|||||||
<string name="contains_duplicate_uuid">ഡാറ്റാബേസിൽ തനിപ്പകർപ്പ് UUID-കൾ അടങ്ങിയിരിക്കുന്നു.</string>
|
<string name="contains_duplicate_uuid">ഡാറ്റാബേസിൽ തനിപ്പകർപ്പ് UUID-കൾ അടങ്ങിയിരിക്കുന്നു.</string>
|
||||||
<string name="read_only_warning">നിങ്ങളുടെ ഫയൽ മാനേജരെ ആശ്രയിച്ച്, നിങ്ങളുടെ സ്റ്റോറേജിൽ എഴുതാൻ KeePassDX-നെ അനുവദിച്ചേക്കില്ല.</string>
|
<string name="read_only_warning">നിങ്ങളുടെ ഫയൽ മാനേജരെ ആശ്രയിച്ച്, നിങ്ങളുടെ സ്റ്റോറേജിൽ എഴുതാൻ KeePassDX-നെ അനുവദിച്ചേക്കില്ല.</string>
|
||||||
<string name="auto_focus_search_summary">ഡാറ്റാബേസ് തുറക്കുമ്പോൾ തിരയൽ അഭ്യർത്ഥിക്കുക</string>
|
<string name="auto_focus_search_summary">ഡാറ്റാബേസ് തുറക്കുമ്പോൾ തിരയൽ അഭ്യർത്ഥിക്കുക</string>
|
||||||
<string name="omit_backup_search_summary">തിരയൽ ഫലങ്ങളിൽ നിന്ന് \"ബാക്കപ്പ്\", \"റീസൈക്കിൾ ബിൻ\" ഗ്രൂപ്പുകൾ ഒഴിവാക്കുക</string>
|
|
||||||
<string name="omit_backup_search_title">ബാക്കപ്പ് എൻട്രികളിലൂടെ തിരയരുത്</string>
|
|
||||||
<string name="menu_open_file_read_and_write">പരിഷ്ക്കരിക്കാവുന്ന</string>
|
<string name="menu_open_file_read_and_write">പരിഷ്ക്കരിക്കാവുന്ന</string>
|
||||||
<string name="menu_file_selection_read_only">റൈറ്റ്-പരിരക്ഷിതമാണ്</string>
|
<string name="menu_file_selection_read_only">റൈറ്റ്-പരിരക്ഷിതമാണ്</string>
|
||||||
<string name="error_otp_digits">ടോക്കണിൽ %1$d മുതൽ %2$d അക്കങ്ങൾ വരെ ഉണ്ടായിരിക്കണം.</string>
|
<string name="error_otp_digits">ടോക്കണിൽ %1$d മുതൽ %2$d അക്കങ്ങൾ വരെ ഉണ്ടായിരിക്കണം.</string>
|
||||||
|
|||||||
@@ -130,8 +130,6 @@
|
|||||||
<string name="no_results">Ingen søkeresultater</string>
|
<string name="no_results">Ingen søkeresultater</string>
|
||||||
<string name="no_url_handler">Kan ikke håndtere denne nettadressen.</string>
|
<string name="no_url_handler">Kan ikke håndtere denne nettadressen.</string>
|
||||||
<string name="select_database_file">Velg en eksisterende database</string>
|
<string name="select_database_file">Velg en eksisterende database</string>
|
||||||
<string name="omit_backup_search_title">Ikke søk gjennom sikkerhetskopioppføringer</string>
|
|
||||||
<string name="omit_backup_search_summary">Utelat \"Sikkerhetskopi\"-gruppen fra søkeresultater (har kunn innvirkning på .kdb-filer)</string>
|
|
||||||
<string name="progress_create">Oppretter ny database…</string>
|
<string name="progress_create">Oppretter ny database…</string>
|
||||||
<string name="progress_title">Arbeider…</string>
|
<string name="progress_title">Arbeider…</string>
|
||||||
<string name="protection">Beskyttelse</string>
|
<string name="protection">Beskyttelse</string>
|
||||||
|
|||||||
@@ -104,8 +104,6 @@
|
|||||||
<string name="never">Nooit</string>
|
<string name="never">Nooit</string>
|
||||||
<string name="no_results">Geen zoekresultaten</string>
|
<string name="no_results">Geen zoekresultaten</string>
|
||||||
<string name="no_url_handler">Installeer een webbrowser om deze URL te openen.</string>
|
<string name="no_url_handler">Installeer een webbrowser om deze URL te openen.</string>
|
||||||
<string name="omit_backup_search_title">Back-upitems niet doorzoeken</string>
|
|
||||||
<string name="omit_backup_search_summary">Hiermee worden groepen \"Back-up\" en \"Prullenbak\" uit de zoekresultaten weggelaten</string>
|
|
||||||
<string name="progress_create">Nieuwe database aanmaken…</string>
|
<string name="progress_create">Nieuwe database aanmaken…</string>
|
||||||
<string name="progress_title">Bezig met verwerken…</string>
|
<string name="progress_title">Bezig met verwerken…</string>
|
||||||
<string name="content_description_remove_from_list">Verwijderen</string>
|
<string name="content_description_remove_from_list">Verwijderen</string>
|
||||||
|
|||||||
@@ -101,8 +101,6 @@
|
|||||||
<string name="never">Aldri</string>
|
<string name="never">Aldri</string>
|
||||||
<string name="no_results">Ingen søkjeresultat</string>
|
<string name="no_results">Ingen søkjeresultat</string>
|
||||||
<string name="no_url_handler">Ingen behandlar for denne adressa.</string>
|
<string name="no_url_handler">Ingen behandlar for denne adressa.</string>
|
||||||
<string name="omit_backup_search_title">Søk ikkje i kopipostane eller søppelbøtta</string>
|
|
||||||
<string name="omit_backup_search_summary">Søkjeresultatet inneheld ikkje oppføringar frå \'Backup\' eller søppelbøtta</string>
|
|
||||||
<string name="progress_create">Lager ny database …</string>
|
<string name="progress_create">Lager ny database …</string>
|
||||||
<string name="progress_title">Arbeider …</string>
|
<string name="progress_title">Arbeider …</string>
|
||||||
<string name="content_description_remove_from_list">Ta vekk</string>
|
<string name="content_description_remove_from_list">Ta vekk</string>
|
||||||
|
|||||||
@@ -71,7 +71,6 @@
|
|||||||
<string name="subdomain_search_title">ਅਧੀਨ-ਡੋਮੇਨ ਖੋਜ</string>
|
<string name="subdomain_search_title">ਅਧੀਨ-ਡੋਮੇਨ ਖੋਜ</string>
|
||||||
<string name="auto_focus_search_summary">ਜਦੋਂ ਡਾਟਾਬੇਸ ਖੋਲ੍ਹਣਾ ਹੋਵੇ ਤਾਂ ਖੋਜ ਦੀ ਮੰਗ ਕਰੋ</string>
|
<string name="auto_focus_search_summary">ਜਦੋਂ ਡਾਟਾਬੇਸ ਖੋਲ੍ਹਣਾ ਹੋਵੇ ਤਾਂ ਖੋਜ ਦੀ ਮੰਗ ਕਰੋ</string>
|
||||||
<string name="auto_focus_search_title">ਫ਼ੌਰੀ ਖੋਜ</string>
|
<string name="auto_focus_search_title">ਫ਼ੌਰੀ ਖੋਜ</string>
|
||||||
<string name="omit_backup_search_title">ਬੈਕਐਪ ਐਂਟਰੀਆਂ ਰਾਹੀਂ ਨਾ ਖੋਜੋ</string>
|
|
||||||
<string name="create_keepass_file">ਨਵਾਂ ਡਾਟਾਬੇਸ ਬਣਾਓ</string>
|
<string name="create_keepass_file">ਨਵਾਂ ਡਾਟਾਬੇਸ ਬਣਾਓ</string>
|
||||||
<string name="select_database_file">ਮੌਜੂਦਾ ਡਾਟਾਬੇਸ ਨੂੰ ਖੋਲ੍ਹੋ</string>
|
<string name="select_database_file">ਮੌਜੂਦਾ ਡਾਟਾਬੇਸ ਨੂੰ ਖੋਲ੍ਹੋ</string>
|
||||||
<string name="no_url_handler">ਇਹ URL ਖੋਲ੍ਹਣ ਲਈ ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਇੰਸਟਾਲ ਕਰੋ।</string>
|
<string name="no_url_handler">ਇਹ URL ਖੋਲ੍ਹਣ ਲਈ ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਇੰਸਟਾਲ ਕਰੋ।</string>
|
||||||
|
|||||||
@@ -100,8 +100,6 @@
|
|||||||
<string name="never">Nigdy</string>
|
<string name="never">Nigdy</string>
|
||||||
<string name="no_results">Brak wyników wyszukiwania</string>
|
<string name="no_results">Brak wyników wyszukiwania</string>
|
||||||
<string name="no_url_handler">Zainstaluj przeglądarkę internetową, aby otworzyć ten adres URL.</string>
|
<string name="no_url_handler">Zainstaluj przeglądarkę internetową, aby otworzyć ten adres URL.</string>
|
||||||
<string name="omit_backup_search_title">Nie wyszukuj wpisów kopii zapasowej</string>
|
|
||||||
<string name="omit_backup_search_summary">Pomija grupy \"Kopia zapasowa\" i \"Kosz\" z wyników wyszukiwania</string>
|
|
||||||
<string name="progress_create">Tworzenie nowej bazy danych…</string>
|
<string name="progress_create">Tworzenie nowej bazy danych…</string>
|
||||||
<string name="progress_title">Pracuję…</string>
|
<string name="progress_title">Pracuję…</string>
|
||||||
<string name="content_description_remove_from_list">Usuń</string>
|
<string name="content_description_remove_from_list">Usuń</string>
|
||||||
|
|||||||
@@ -102,8 +102,6 @@
|
|||||||
<string name="never">Nunca</string>
|
<string name="never">Nunca</string>
|
||||||
<string name="no_results">Sem resultados na busca</string>
|
<string name="no_results">Sem resultados na busca</string>
|
||||||
<string name="no_url_handler">Instale um navegador para abrir esta URL.</string>
|
<string name="no_url_handler">Instale um navegador para abrir esta URL.</string>
|
||||||
<string name="omit_backup_search_title">Não buscar por entradas no backup ou na lixeira</string>
|
|
||||||
<string name="omit_backup_search_summary">Omite os grupos \"Backup\" e \"Lixeira\" dos resultados da busca</string>
|
|
||||||
<string name="progress_create">Criando novo banco de dados…</string>
|
<string name="progress_create">Criando novo banco de dados…</string>
|
||||||
<string name="progress_title">Trabalhando…</string>
|
<string name="progress_title">Trabalhando…</string>
|
||||||
<string name="content_description_remove_from_list">Remover</string>
|
<string name="content_description_remove_from_list">Remover</string>
|
||||||
|
|||||||
@@ -112,8 +112,6 @@
|
|||||||
<string name="never">Nunca</string>
|
<string name="never">Nunca</string>
|
||||||
<string name="no_results">A pesquisa não obteve resultados</string>
|
<string name="no_results">A pesquisa não obteve resultados</string>
|
||||||
<string name="no_url_handler">Instale um navegador para abrir esta URL.</string>
|
<string name="no_url_handler">Instale um navegador para abrir esta URL.</string>
|
||||||
<string name="omit_backup_search_title">Não procurar por entradas na cópia de segurança e lixo</string>
|
|
||||||
<string name="omit_backup_search_summary">Omite os grupos \"Cópia de segurança\" e \"Caixote da reciclagem\" dos resultados da busca</string>
|
|
||||||
<string name="progress_create">A criar nova base de dados…</string>
|
<string name="progress_create">A criar nova base de dados…</string>
|
||||||
<string name="progress_title">Em funcionamento…</string>
|
<string name="progress_title">Em funcionamento…</string>
|
||||||
<string name="protection">Proteção</string>
|
<string name="protection">Proteção</string>
|
||||||
|
|||||||
@@ -253,8 +253,6 @@
|
|||||||
<string name="show_recent_files_title">Mostrar ficheiros recentes</string>
|
<string name="show_recent_files_title">Mostrar ficheiros recentes</string>
|
||||||
<string name="auto_focus_search_summary">Solicitar uma pesquisa quando abrir a base de dados</string>
|
<string name="auto_focus_search_summary">Solicitar uma pesquisa quando abrir a base de dados</string>
|
||||||
<string name="auto_focus_search_title">Pesquisa rápida</string>
|
<string name="auto_focus_search_title">Pesquisa rápida</string>
|
||||||
<string name="omit_backup_search_summary">Omite os grupos \"Cópia de segurança\" e \"Caixote da reciclagem\" dos resultados da busca</string>
|
|
||||||
<string name="omit_backup_search_title">Não procurar por entradas na cópia de segurança e lixo</string>
|
|
||||||
<string name="about">Sobre</string>
|
<string name="about">Sobre</string>
|
||||||
<string name="hide_password_summary">Mascarar palavras-passe (***) por predefinição</string>
|
<string name="hide_password_summary">Mascarar palavras-passe (***) por predefinição</string>
|
||||||
<string name="hide_password_title">Ocultar palavras-passe</string>
|
<string name="hide_password_title">Ocultar palavras-passe</string>
|
||||||
|
|||||||
@@ -406,8 +406,6 @@
|
|||||||
<string name="icon_pack_choose_summary">Pachet de pictograme folosit în aplicație</string>
|
<string name="icon_pack_choose_summary">Pachet de pictograme folosit în aplicație</string>
|
||||||
<string name="hide_expired_entries_title">Ascundeți intrările expirate</string>
|
<string name="hide_expired_entries_title">Ascundeți intrările expirate</string>
|
||||||
<string name="hide_expired_entries_summary">Înscrierile expirate vor fi ascunse</string>
|
<string name="hide_expired_entries_summary">Înscrierile expirate vor fi ascunse</string>
|
||||||
<string name="omit_backup_search_title">Nu căutați prin intrări de rezervă</string>
|
|
||||||
<string name="omit_backup_search_summary">Omite grupurile „Backup” și „Recycle bin” din rezultatele căutării</string>
|
|
||||||
<string name="auto_focus_search_title">Căutare rapidă</string>
|
<string name="auto_focus_search_title">Căutare rapidă</string>
|
||||||
<string name="auto_focus_search_summary">Solicitați o căutare atunci când deschideți o bază de date</string>
|
<string name="auto_focus_search_summary">Solicitați o căutare atunci când deschideți o bază de date</string>
|
||||||
<string name="remember_database_locations_title">Salvați locația bazelor de date</string>
|
<string name="remember_database_locations_title">Salvați locația bazelor de date</string>
|
||||||
|
|||||||
@@ -112,8 +112,6 @@
|
|||||||
<string name="never">Никогда</string>
|
<string name="never">Никогда</string>
|
||||||
<string name="no_results">Совпадения не найдены</string>
|
<string name="no_results">Совпадения не найдены</string>
|
||||||
<string name="no_url_handler">Установите браузер, чтобы открыть этот URL.</string>
|
<string name="no_url_handler">Установите браузер, чтобы открыть этот URL.</string>
|
||||||
<string name="omit_backup_search_title">Не искать в резервных копиях</string>
|
|
||||||
<string name="omit_backup_search_summary">Не искать в группах \"Резервирование\" и \"Корзина\"</string>
|
|
||||||
<string name="progress_create">Создание новой базы…</string>
|
<string name="progress_create">Создание новой базы…</string>
|
||||||
<string name="progress_title">Обработка…</string>
|
<string name="progress_title">Обработка…</string>
|
||||||
<string name="protection">Защита</string>
|
<string name="protection">Защита</string>
|
||||||
|
|||||||
@@ -101,8 +101,6 @@
|
|||||||
<string name="never">Nikdy</string>
|
<string name="never">Nikdy</string>
|
||||||
<string name="no_results">Žiadne výsledky hľadania</string>
|
<string name="no_results">Žiadne výsledky hľadania</string>
|
||||||
<string name="no_url_handler">Žiaden manažér pre url.</string>
|
<string name="no_url_handler">Žiaden manažér pre url.</string>
|
||||||
<string name="omit_backup_search_title">Neprehľadávať položky</string>
|
|
||||||
<string name="omit_backup_search_summary">Vynechať skupinu \'Backup\' a Recycle Bin z výsledkov hľadania</string>
|
|
||||||
<string name="progress_create">Vytváram novú databázu…</string>
|
<string name="progress_create">Vytváram novú databázu…</string>
|
||||||
<string name="progress_title">Pracujem…</string>
|
<string name="progress_title">Pracujem…</string>
|
||||||
<string name="content_description_remove_from_list">Odstrániť</string>
|
<string name="content_description_remove_from_list">Odstrániť</string>
|
||||||
|
|||||||
@@ -110,8 +110,6 @@
|
|||||||
<string name="never">Aldrig</string>
|
<string name="never">Aldrig</string>
|
||||||
<string name="no_results">Inget sökresultat</string>
|
<string name="no_results">Inget sökresultat</string>
|
||||||
<string name="no_url_handler">Installera en webbläsare för att öppna denna URL.</string>
|
<string name="no_url_handler">Installera en webbläsare för att öppna denna URL.</string>
|
||||||
<string name="omit_backup_search_title">Sök inte efter backup-poster</string>
|
|
||||||
<string name="omit_backup_search_summary">Utelämnar poster i grupperna \"Backup\" och \"Papperskorg\"</string>
|
|
||||||
<string name="progress_create">Skapar ny databas…</string>
|
<string name="progress_create">Skapar ny databas…</string>
|
||||||
<string name="progress_title">Arbetar…</string>
|
<string name="progress_title">Arbetar…</string>
|
||||||
<string name="protection">Skydd</string>
|
<string name="protection">Skydd</string>
|
||||||
|
|||||||
@@ -130,8 +130,6 @@
|
|||||||
<string name="no_url_handler">Bu URL\'u açmak için bir web tarayıcısı yükleyin.</string>
|
<string name="no_url_handler">Bu URL\'u açmak için bir web tarayıcısı yükleyin.</string>
|
||||||
<string name="select_database_file">Mevcut veri tabanını aç</string>
|
<string name="select_database_file">Mevcut veri tabanını aç</string>
|
||||||
<string name="create_keepass_file">Yeni veri tabanı oluştur</string>
|
<string name="create_keepass_file">Yeni veri tabanı oluştur</string>
|
||||||
<string name="omit_backup_search_title">Yedek girdilerde arama</string>
|
|
||||||
<string name="omit_backup_search_summary">Arama sonuçlarından \"Yedekleme\" ve \"Geri dönüşüm kutusu\" gruplarını atlar</string>
|
|
||||||
<string name="progress_create">Yeni veri tabanı oluşturuluyor…</string>
|
<string name="progress_create">Yeni veri tabanı oluşturuluyor…</string>
|
||||||
<string name="progress_title">Çalışıyor…</string>
|
<string name="progress_title">Çalışıyor…</string>
|
||||||
<string name="protection">Koruma</string>
|
<string name="protection">Koruma</string>
|
||||||
|
|||||||
@@ -102,8 +102,6 @@
|
|||||||
<string name="never">Ніколи</string>
|
<string name="never">Ніколи</string>
|
||||||
<string name="no_results">Нічого не знайдено</string>
|
<string name="no_results">Нічого не знайдено</string>
|
||||||
<string name="no_url_handler">Щоб відкрити цю URL-адресу, встановіть переглядач Інтернету.</string>
|
<string name="no_url_handler">Щоб відкрити цю URL-адресу, встановіть переглядач Інтернету.</string>
|
||||||
<string name="omit_backup_search_title">Не шукати у записах резервних копій</string>
|
|
||||||
<string name="omit_backup_search_summary">Не шукати у групах «Резервна копія» та «Кошик»</string>
|
|
||||||
<string name="progress_create">Створення нової бази даних…</string>
|
<string name="progress_create">Створення нової бази даних…</string>
|
||||||
<string name="progress_title">Працює…</string>
|
<string name="progress_title">Працює…</string>
|
||||||
<string name="content_description_remove_from_list">Вилучити</string>
|
<string name="content_description_remove_from_list">Вилучити</string>
|
||||||
|
|||||||
@@ -152,8 +152,6 @@
|
|||||||
<string name="menu_showpass">显示密码</string>
|
<string name="menu_showpass">显示密码</string>
|
||||||
<string name="menu_file_selection_read_only">只读</string>
|
<string name="menu_file_selection_read_only">只读</string>
|
||||||
<string name="menu_open_file_read_and_write">可修改</string>
|
<string name="menu_open_file_read_and_write">可修改</string>
|
||||||
<string name="omit_backup_search_title">搜索时忽略备份条目</string>
|
|
||||||
<string name="omit_backup_search_summary">从搜索结果中忽略“备份”和“回收站”群组</string>
|
|
||||||
<string name="protection">保护</string>
|
<string name="protection">保护</string>
|
||||||
<string name="read_only">只读</string>
|
<string name="read_only">只读</string>
|
||||||
<string name="read_only_warning">根据您的文件管理器,KeePassDX 可能不允许在您的存储中写入数据。</string>
|
<string name="read_only_warning">根据您的文件管理器,KeePassDX 可能不允许在您的存储中写入数据。</string>
|
||||||
|
|||||||
@@ -448,8 +448,6 @@
|
|||||||
<string name="no_url_handler">沒有這個連結的處理程式。</string>
|
<string name="no_url_handler">沒有這個連結的處理程式。</string>
|
||||||
<string name="notification">通知</string>
|
<string name="notification">通知</string>
|
||||||
<string name="number">卡號</string>
|
<string name="number">卡號</string>
|
||||||
<string name="omit_backup_search_summary">從搜尋結果中省略\"備份\"和\"回收桶\"組</string>
|
|
||||||
<string name="omit_backup_search_title">不要搜尋備份的項目</string>
|
|
||||||
<string name="open_advanced_unlock_prompt_store_credential">點擊以開啟高級解鎖提示來存儲憑證</string>
|
<string name="open_advanced_unlock_prompt_store_credential">點擊以開啟高級解鎖提示來存儲憑證</string>
|
||||||
<string name="open_advanced_unlock_prompt_unlock_database">點擊以使用高級解鎖</string>
|
<string name="open_advanced_unlock_prompt_unlock_database">點擊以使用高級解鎖</string>
|
||||||
<string name="other">其他</string>
|
<string name="other">其他</string>
|
||||||
|
|||||||
@@ -34,6 +34,6 @@
|
|||||||
<dimen name="hidden_lock_button_size">0dp</dimen>
|
<dimen name="hidden_lock_button_size">0dp</dimen>
|
||||||
<dimen name="content_percent">1</dimen>
|
<dimen name="content_percent">1</dimen>
|
||||||
<dimen name="toolbar_parallax_height">160dp</dimen>
|
<dimen name="toolbar_parallax_height">160dp</dimen>
|
||||||
<dimen name="advanced_search_height">160dp</dimen>
|
<dimen name="advanced_search_height">220dp</dimen>
|
||||||
<integer name="animation_duration">260</integer>
|
<integer name="animation_duration">260</integer>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -69,8 +69,6 @@
|
|||||||
<bool name="enable_auto_save_database_default" translatable="false">true</bool>
|
<bool name="enable_auto_save_database_default" translatable="false">true</bool>
|
||||||
<string name="enable_keep_screen_on_key" translatable="false">enable_keep_screen_on_key</string>
|
<string name="enable_keep_screen_on_key" translatable="false">enable_keep_screen_on_key</string>
|
||||||
<bool name="enable_keep_screen_on_default" translatable="false">false</bool>
|
<bool name="enable_keep_screen_on_default" translatable="false">false</bool>
|
||||||
<string name="omit_backup_search_key" translatable="false">omit_backup_search_key</string>
|
|
||||||
<bool name="omit_backup_search_default" translatable="false">true</bool>
|
|
||||||
<string name="auto_focus_search_key" translatable="false">auto_focus_search_key</string>
|
<string name="auto_focus_search_key" translatable="false">auto_focus_search_key</string>
|
||||||
<bool name="auto_focus_search_default" translatable="false">false</bool>
|
<bool name="auto_focus_search_default" translatable="false">false</bool>
|
||||||
<string name="subdomain_search_key" translatable="false">subdomain_search_key</string>
|
<string name="subdomain_search_key" translatable="false">subdomain_search_key</string>
|
||||||
|
|||||||
@@ -252,8 +252,6 @@
|
|||||||
<string name="no_url_handler">Install a web browser to open this URL.</string>
|
<string name="no_url_handler">Install a web browser to open this URL.</string>
|
||||||
<string name="select_database_file">Open existing database</string>
|
<string name="select_database_file">Open existing database</string>
|
||||||
<string name="create_keepass_file">Create new database</string>
|
<string name="create_keepass_file">Create new database</string>
|
||||||
<string name="omit_backup_search_title">Don\'t search through backup entries</string>
|
|
||||||
<string name="omit_backup_search_summary">Omits \"Backup\" and \"Recycle bin\" groups from search results</string>
|
|
||||||
<string name="auto_focus_search_title">Quick search</string>
|
<string name="auto_focus_search_title">Quick search</string>
|
||||||
<string name="auto_focus_search_summary">Request a search when opening a database</string>
|
<string name="auto_focus_search_summary">Request a search when opening a database</string>
|
||||||
<string name="subdomain_search_title">Subdomain search</string>
|
<string name="subdomain_search_title">Subdomain search</string>
|
||||||
|
|||||||
@@ -54,11 +54,6 @@
|
|||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/search_label">
|
android:title="@string/search_label">
|
||||||
|
|
||||||
<SwitchPreference
|
|
||||||
android:key="@string/omit_backup_search_key"
|
|
||||||
android:title="@string/omit_backup_search_title"
|
|
||||||
android:summary="@string/omit_backup_search_summary"
|
|
||||||
android:defaultValue="@bool/omit_backup_search_default"/>
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="@string/auto_focus_search_key"
|
android:key="@string/auto_focus_search_key"
|
||||||
android:title="@string/auto_focus_search_title"
|
android:title="@string/auto_focus_search_title"
|
||||||
|
|||||||
Reference in New Issue
Block a user