mirror of
https://github.com/moparisthebest/keepass2android
synced 2024-11-26 03:02:24 -05:00
* Enabled RecycleBin for Groups and Entries
* Added (more or less empty) resource files for more languages
This commit is contained in:
parent
9837ee4ad4
commit
fde771f73e
@ -35,7 +35,7 @@ namespace keepass2android
|
|||||||
private Handler mHandler;
|
private Handler mHandler;
|
||||||
private RunnableOnFinish mTask;
|
private RunnableOnFinish mTask;
|
||||||
private ProgressDialog mPd;
|
private ProgressDialog mPd;
|
||||||
|
|
||||||
public ProgressTask(Context ctx, RunnableOnFinish task, int messageId) {
|
public ProgressTask(Context ctx, RunnableOnFinish task, int messageId) {
|
||||||
mCtx = ctx;
|
mCtx = ctx;
|
||||||
mTask = task;
|
mTask = task;
|
||||||
|
307
src/keepass2android/Resources/Resource.designer.cs
generated
307
src/keepass2android/Resources/Resource.designer.cs
generated
@ -1000,20 +1000,29 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050020
|
// aapt resource value: 0x7f050020
|
||||||
public const int AboutText = 2131034144;
|
public const int AboutText = 2131034144;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e6
|
// aapt resource value: 0x7f0500ee
|
||||||
public const int AskOverwriteBinary = 2131034342;
|
public const int AskDeletePermanentlyEntry = 2131034350;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e9
|
// aapt resource value: 0x7f0500ef
|
||||||
public const int AskOverwriteBinary_no = 2131034345;
|
public const int AskDeletePermanentlyGroup = 2131034351;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e7
|
// aapt resource value: 0x7f0500f0
|
||||||
public const int AskOverwriteBinary_title = 2131034343;
|
public const int AskDeletePermanently_title = 2131034352;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e8
|
// aapt resource value: 0x7f0500e8
|
||||||
public const int AskOverwriteBinary_yes = 2131034344;
|
public const int AskOverwriteBinary = 2131034344;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500eb
|
||||||
|
public const int AskOverwriteBinary_no = 2131034347;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500e9
|
||||||
|
public const int AskOverwriteBinary_title = 2131034345;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ea
|
// aapt resource value: 0x7f0500ea
|
||||||
public const int AttachFailed = 2131034346;
|
public const int AskOverwriteBinary_yes = 2131034346;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500ec
|
||||||
|
public const int AttachFailed = 2131034348;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050017
|
// aapt resource value: 0x7f050017
|
||||||
public const int BinaryDirectory_default = 2131034135;
|
public const int BinaryDirectory_default = 2131034135;
|
||||||
@ -1021,11 +1030,11 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050016
|
// aapt resource value: 0x7f050016
|
||||||
public const int BinaryDirectory_key = 2131034134;
|
public const int BinaryDirectory_key = 2131034134;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d8
|
// aapt resource value: 0x7f0500da
|
||||||
public const int BinaryDirectory_summary = 2131034328;
|
public const int BinaryDirectory_summary = 2131034330;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d7
|
// aapt resource value: 0x7f0500d9
|
||||||
public const int BinaryDirectory_title = 2131034327;
|
public const int BinaryDirectory_title = 2131034329;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050034
|
// aapt resource value: 0x7f050034
|
||||||
public const int ClearClipboard = 2131034164;
|
public const int ClearClipboard = 2131034164;
|
||||||
@ -1045,11 +1054,11 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050018
|
// aapt resource value: 0x7f050018
|
||||||
public const int QuickUnlockDefaultEnabled_key = 2131034136;
|
public const int QuickUnlockDefaultEnabled_key = 2131034136;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d3
|
// aapt resource value: 0x7f0500d5
|
||||||
public const int QuickUnlockDefaultEnabled_summary = 2131034323;
|
public const int QuickUnlockDefaultEnabled_summary = 2131034325;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d2
|
// aapt resource value: 0x7f0500d4
|
||||||
public const int QuickUnlockDefaultEnabled_title = 2131034322;
|
public const int QuickUnlockDefaultEnabled_title = 2131034324;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05001a
|
// aapt resource value: 0x7f05001a
|
||||||
public const int QuickUnlockLength_default = 2131034138;
|
public const int QuickUnlockLength_default = 2131034138;
|
||||||
@ -1057,50 +1066,50 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050019
|
// aapt resource value: 0x7f050019
|
||||||
public const int QuickUnlockLength_key = 2131034137;
|
public const int QuickUnlockLength_key = 2131034137;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d5
|
// aapt resource value: 0x7f0500d7
|
||||||
public const int QuickUnlockLength_summary = 2131034325;
|
public const int QuickUnlockLength_summary = 2131034327;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d4
|
|
||||||
public const int QuickUnlockLength_title = 2131034324;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d0
|
|
||||||
public const int QuickUnlock_button = 2131034320;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d6
|
// aapt resource value: 0x7f0500d6
|
||||||
public const int QuickUnlock_fail = 2131034326;
|
public const int QuickUnlockLength_title = 2131034326;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500cf
|
// aapt resource value: 0x7f0500d2
|
||||||
public const int QuickUnlock_label = 2131034319;
|
public const int QuickUnlock_button = 2131034322;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500d8
|
||||||
|
public const int QuickUnlock_fail = 2131034328;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d1
|
// aapt resource value: 0x7f0500d1
|
||||||
public const int QuickUnlock_lockButton = 2131034321;
|
public const int QuickUnlock_label = 2131034321;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500eb
|
// aapt resource value: 0x7f0500d3
|
||||||
public const int RecycleBin = 2131034347;
|
public const int QuickUnlock_lockButton = 2131034323;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500da
|
// aapt resource value: 0x7f0500ed
|
||||||
public const int SaveAttachment_Failed = 2131034330;
|
public const int RecycleBin = 2131034349;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500d9
|
// aapt resource value: 0x7f0500dc
|
||||||
public const int SaveAttachment_doneMessage = 2131034329;
|
public const int SaveAttachment_Failed = 2131034332;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500db
|
||||||
|
public const int SaveAttachment_doneMessage = 2131034331;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050014
|
// aapt resource value: 0x7f050014
|
||||||
public const int TanExpiresOnUse_key = 2131034132;
|
public const int TanExpiresOnUse_key = 2131034132;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c3
|
// aapt resource value: 0x7f0500c5
|
||||||
public const int TanExpiresOnUse_summary = 2131034307;
|
public const int TanExpiresOnUse_summary = 2131034309;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c2
|
// aapt resource value: 0x7f0500c4
|
||||||
public const int TanExpiresOnUse_title = 2131034306;
|
public const int TanExpiresOnUse_title = 2131034308;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05001b
|
// aapt resource value: 0x7f05001b
|
||||||
public const int UseFileTransactions_key = 2131034139;
|
public const int UseFileTransactions_key = 2131034139;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e5
|
// aapt resource value: 0x7f0500e7
|
||||||
public const int UseFileTransactions_summary = 2131034341;
|
public const int UseFileTransactions_summary = 2131034343;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e4
|
// aapt resource value: 0x7f0500e6
|
||||||
public const int UseFileTransactions_title = 2131034340;
|
public const int UseFileTransactions_title = 2131034342;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05001e
|
// aapt resource value: 0x7f05001e
|
||||||
public const int about_feedback = 2131034142;
|
public const int about_feedback = 2131034142;
|
||||||
@ -1111,14 +1120,14 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050022
|
// aapt resource value: 0x7f050022
|
||||||
public const int accept = 2131034146;
|
public const int accept = 2131034146;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e0
|
// aapt resource value: 0x7f0500e2
|
||||||
public const int add_binary = 2131034336;
|
public const int add_binary = 2131034338;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050023
|
// aapt resource value: 0x7f050023
|
||||||
public const int add_entry = 2131034147;
|
public const int add_entry = 2131034147;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e1
|
// aapt resource value: 0x7f0500e3
|
||||||
public const int add_extra_string = 2131034337;
|
public const int add_extra_string = 2131034339;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050024
|
// aapt resource value: 0x7f050024
|
||||||
public const int add_group = 2131034148;
|
public const int add_group = 2131034148;
|
||||||
@ -1171,8 +1180,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050033
|
// aapt resource value: 0x7f050033
|
||||||
public const int cancel = 2131034163;
|
public const int cancel = 2131034163;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c7
|
// aapt resource value: 0x7f0500c9
|
||||||
public const int caseSensitive = 2131034311;
|
public const int caseSensitive = 2131034313;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050035
|
// aapt resource value: 0x7f050035
|
||||||
public const int clipboard_timeout = 2131034165;
|
public const int clipboard_timeout = 2131034165;
|
||||||
@ -1195,8 +1204,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050039
|
// aapt resource value: 0x7f050039
|
||||||
public const int creating_db_key = 2131034169;
|
public const int creating_db_key = 2131034169;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e3
|
// aapt resource value: 0x7f0500e5
|
||||||
public const int credentials_dialog_title = 2131034339;
|
public const int credentials_dialog_title = 2131034341;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05003a
|
// aapt resource value: 0x7f05003a
|
||||||
public const int current_group = 2131034170;
|
public const int current_group = 2131034170;
|
||||||
@ -1207,8 +1216,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f05003c
|
// aapt resource value: 0x7f05003c
|
||||||
public const int database = 2131034172;
|
public const int database = 2131034172;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500e2
|
// aapt resource value: 0x7f0500e4
|
||||||
public const int database_loaded_quickunlock_enabled = 2131034338;
|
public const int database_loaded_quickunlock_enabled = 2131034340;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05000c
|
// aapt resource value: 0x7f05000c
|
||||||
public const int db_key = 2131034124;
|
public const int db_key = 2131034124;
|
||||||
@ -1225,8 +1234,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050001
|
// aapt resource value: 0x7f050001
|
||||||
public const int default_file_path = 2131034113;
|
public const int default_file_path = 2131034113;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500af
|
// aapt resource value: 0x7f0500b1
|
||||||
public const int default_username = 2131034287;
|
public const int default_username = 2131034289;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050015
|
// aapt resource value: 0x7f050015
|
||||||
public const int default_username_key = 2131034133;
|
public const int default_username_key = 2131034133;
|
||||||
@ -1243,17 +1252,17 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050042
|
// aapt resource value: 0x7f050042
|
||||||
public const int ellipsis = 2131034178;
|
public const int ellipsis = 2131034178;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ce
|
// aapt resource value: 0x7f0500d0
|
||||||
public const int enable_quickunlock = 2131034318;
|
public const int enable_quickunlock = 2131034320;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050043
|
// aapt resource value: 0x7f050043
|
||||||
public const int enter_filename = 2131034179;
|
public const int enter_filename = 2131034179;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500cd
|
// aapt resource value: 0x7f0500cf
|
||||||
public const int enter_filename_details_create_import = 2131034317;
|
public const int enter_filename_details_create_import = 2131034319;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500cc
|
// aapt resource value: 0x7f0500ce
|
||||||
public const int enter_filename_details_url = 2131034316;
|
public const int enter_filename_details_url = 2131034318;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050044
|
// aapt resource value: 0x7f050044
|
||||||
public const int entry_accessed = 2131034180;
|
public const int entry_accessed = 2131034180;
|
||||||
@ -1339,8 +1348,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f05005f
|
// aapt resource value: 0x7f05005f
|
||||||
public const int error_invalid_db = 2131034207;
|
public const int error_invalid_db = 2131034207;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500db
|
// aapt resource value: 0x7f0500dd
|
||||||
public const int error_invalid_expiry_date = 2131034331;
|
public const int error_invalid_expiry_date = 2131034333;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050060
|
// aapt resource value: 0x7f050060
|
||||||
public const int error_invalid_path = 2131034208;
|
public const int error_invalid_path = 2131034208;
|
||||||
@ -1366,8 +1375,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050067
|
// aapt resource value: 0x7f050067
|
||||||
public const int error_rounds_too_large = 2131034215;
|
public const int error_rounds_too_large = 2131034215;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500dc
|
// aapt resource value: 0x7f0500de
|
||||||
public const int error_string_key = 2131034332;
|
public const int error_string_key = 2131034334;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050068
|
// aapt resource value: 0x7f050068
|
||||||
public const int error_title_required = 2131034216;
|
public const int error_title_required = 2131034216;
|
||||||
@ -1375,14 +1384,14 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050069
|
// aapt resource value: 0x7f050069
|
||||||
public const int error_wrong_length = 2131034217;
|
public const int error_wrong_length = 2131034217;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c5
|
// aapt resource value: 0x7f0500c7
|
||||||
public const int excludeExpiredEntries = 2131034309;
|
public const int excludeExpiredEntries = 2131034311;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500dd
|
// aapt resource value: 0x7f0500df
|
||||||
public const int field_name = 2131034333;
|
public const int field_name = 2131034335;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500de
|
// aapt resource value: 0x7f0500e0
|
||||||
public const int field_value = 2131034334;
|
public const int field_value = 2131034336;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05006b
|
// aapt resource value: 0x7f05006b
|
||||||
public const int file_browser = 2131034219;
|
public const int file_browser = 2131034219;
|
||||||
@ -1462,8 +1471,8 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f05000e
|
// aapt resource value: 0x7f05000e
|
||||||
public const int keyfile_key = 2131034126;
|
public const int keyfile_key = 2131034126;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c4
|
// aapt resource value: 0x7f0500c6
|
||||||
public const int kp2a_findUrl = 2131034308;
|
public const int kp2a_findUrl = 2131034310;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050082
|
// aapt resource value: 0x7f050082
|
||||||
public const int length = 2131034242;
|
public const int length = 2131034242;
|
||||||
@ -1555,14 +1564,17 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f05009c
|
// aapt resource value: 0x7f05009c
|
||||||
public const int never = 2131034268;
|
public const int never = 2131034268;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05009d
|
|
||||||
public const int no_keys = 2131034269;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f05009e
|
// aapt resource value: 0x7f05009e
|
||||||
public const int no_results = 2131034270;
|
public const int no = 2131034270;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05009f
|
// aapt resource value: 0x7f05009f
|
||||||
public const int no_url_handler = 2131034271;
|
public const int no_keys = 2131034271;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500a0
|
||||||
|
public const int no_results = 2131034272;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500a1
|
||||||
|
public const int no_url_handler = 2131034273;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050006
|
// aapt resource value: 0x7f050006
|
||||||
public const int oi_filemanager_market = 2131034118;
|
public const int oi_filemanager_market = 2131034118;
|
||||||
@ -1573,77 +1585,77 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f050010
|
// aapt resource value: 0x7f050010
|
||||||
public const int omitbackup_key = 2131034128;
|
public const int omitbackup_key = 2131034128;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a2
|
// aapt resource value: 0x7f0500a4
|
||||||
public const int omitbackup_summary = 2131034274;
|
public const int omitbackup_summary = 2131034276;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a1
|
|
||||||
public const int omitbackup_title = 2131034273;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a0
|
|
||||||
public const int open_recent = 2131034272;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a3
|
// aapt resource value: 0x7f0500a3
|
||||||
public const int pass_filename = 2131034275;
|
public const int omitbackup_title = 2131034275;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a4
|
// aapt resource value: 0x7f0500a2
|
||||||
public const int password_title = 2131034276;
|
public const int open_recent = 2131034274;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a5
|
// aapt resource value: 0x7f0500a5
|
||||||
public const int progress_create = 2131034277;
|
public const int pass_filename = 2131034277;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a6
|
// aapt resource value: 0x7f0500a6
|
||||||
public const int progress_title = 2131034278;
|
public const int password_title = 2131034278;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500df
|
|
||||||
public const int protection = 2131034335;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c1
|
|
||||||
public const int regular_expression = 2131034305;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a7
|
// aapt resource value: 0x7f0500a7
|
||||||
public const int remember_keyfile_summary = 2131034279;
|
public const int progress_create = 2131034279;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a8
|
// aapt resource value: 0x7f0500a8
|
||||||
public const int remember_keyfile_title = 2131034280;
|
public const int progress_title = 2131034280;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500e1
|
||||||
|
public const int protection = 2131034337;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500c3
|
||||||
|
public const int regular_expression = 2131034307;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500a9
|
// aapt resource value: 0x7f0500a9
|
||||||
public const int remove_from_filelist = 2131034281;
|
public const int remember_keyfile_summary = 2131034281;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500aa
|
// aapt resource value: 0x7f0500aa
|
||||||
public const int rijndael = 2131034282;
|
public const int remember_keyfile_title = 2131034282;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ab
|
// aapt resource value: 0x7f0500ab
|
||||||
public const int root = 2131034283;
|
public const int remove_from_filelist = 2131034283;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ac
|
// aapt resource value: 0x7f0500ac
|
||||||
public const int rounds = 2131034284;
|
public const int rijndael = 2131034284;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ad
|
// aapt resource value: 0x7f0500ad
|
||||||
public const int rounds_explaination = 2131034285;
|
public const int root = 2131034285;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ae
|
// aapt resource value: 0x7f0500ae
|
||||||
public const int rounds_hint = 2131034286;
|
public const int rounds = 2131034286;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500af
|
||||||
|
public const int rounds_explaination = 2131034287;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500b0
|
||||||
|
public const int rounds_hint = 2131034288;
|
||||||
|
|
||||||
// aapt resource value: 0x7f05000d
|
// aapt resource value: 0x7f05000d
|
||||||
public const int rounds_key = 2131034125;
|
public const int rounds_key = 2131034125;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b0
|
// aapt resource value: 0x7f0500b2
|
||||||
public const int saving_database = 2131034288;
|
public const int saving_database = 2131034290;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b7
|
|
||||||
public const int search_hint = 2131034295;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b9
|
// aapt resource value: 0x7f0500b9
|
||||||
public const int search_in = 2131034297;
|
public const int search_hint = 2131034297;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b2
|
// aapt resource value: 0x7f0500bb
|
||||||
public const int search_label = 2131034290;
|
public const int search_in = 2131034299;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c6
|
// aapt resource value: 0x7f0500b4
|
||||||
public const int search_options = 2131034310;
|
public const int search_label = 2131034292;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b8
|
// aapt resource value: 0x7f0500c8
|
||||||
public const int search_results = 2131034296;
|
public const int search_options = 2131034312;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500ba
|
||||||
|
public const int search_results = 2131034298;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050029
|
// aapt resource value: 0x7f050029
|
||||||
public const int short_app_name = 2131034153;
|
public const int short_app_name = 2131034153;
|
||||||
@ -1651,59 +1663,62 @@ namespace keepass2android
|
|||||||
// aapt resource value: 0x7f05002b
|
// aapt resource value: 0x7f05002b
|
||||||
public const int short_app_name_nonet = 2131034155;
|
public const int short_app_name_nonet = 2131034155;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b3
|
|
||||||
public const int show_password = 2131034291;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b5
|
// aapt resource value: 0x7f0500b5
|
||||||
public const int sort_db = 2131034293;
|
public const int show_password = 2131034293;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500b7
|
||||||
|
public const int sort_db = 2131034295;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050012
|
// aapt resource value: 0x7f050012
|
||||||
public const int sort_key = 2131034130;
|
public const int sort_key = 2131034130;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b4
|
|
||||||
public const int sort_name = 2131034292;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b1
|
|
||||||
public const int space = 2131034289;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500b6
|
// aapt resource value: 0x7f0500b6
|
||||||
public const int special = 2131034294;
|
public const int sort_name = 2131034294;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c9
|
// aapt resource value: 0x7f0500b3
|
||||||
public const int start_create = 2131034313;
|
public const int space = 2131034291;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500b8
|
||||||
|
public const int special = 2131034296;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500cb
|
// aapt resource value: 0x7f0500cb
|
||||||
public const int start_create_import = 2131034315;
|
public const int start_create = 2131034315;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c8
|
// aapt resource value: 0x7f0500cd
|
||||||
public const int start_open_file = 2131034312;
|
public const int start_create_import = 2131034317;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ca
|
// aapt resource value: 0x7f0500ca
|
||||||
public const int start_open_url = 2131034314;
|
public const int start_open_file = 2131034314;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500cc
|
||||||
|
public const int start_open_url = 2131034316;
|
||||||
|
|
||||||
// aapt resource value: 0x7f050013
|
// aapt resource value: 0x7f050013
|
||||||
public const int timeout_key = 2131034131;
|
public const int timeout_key = 2131034131;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500ba
|
|
||||||
public const int twofish = 2131034298;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500bb
|
|
||||||
public const int underline = 2131034299;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500bc
|
// aapt resource value: 0x7f0500bc
|
||||||
public const int unsupported_db_version = 2131034300;
|
public const int twofish = 2131034300;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500bd
|
// aapt resource value: 0x7f0500bd
|
||||||
public const int uppercase = 2131034301;
|
public const int underline = 2131034301;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500c0
|
|
||||||
public const int version_label = 2131034304;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500be
|
// aapt resource value: 0x7f0500be
|
||||||
public const int warning_read_only = 2131034302;
|
public const int unsupported_db_version = 2131034302;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0500bf
|
// aapt resource value: 0x7f0500bf
|
||||||
public const int warning_unmounted = 2131034303;
|
public const int uppercase = 2131034303;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500c2
|
||||||
|
public const int version_label = 2131034306;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500c0
|
||||||
|
public const int warning_read_only = 2131034304;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0500c1
|
||||||
|
public const int warning_unmounted = 2131034305;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f05009d
|
||||||
|
public const int yes = 2131034269;
|
||||||
|
|
||||||
private String()
|
private String()
|
||||||
{
|
{
|
||||||
|
20
src/keepass2android/Resources/values-af/strings.xml
Normal file
20
src/keepass2android/Resources/values-af/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-ar/strings.xml
Normal file
20
src/keepass2android/Resources/values-ar/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-el/strings.xml
Normal file
20
src/keepass2android/Resources/values-el/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-fi/strings.xml
Normal file
20
src/keepass2android/Resources/values-fi/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-in/strings.xml
Normal file
20
src/keepass2android/Resources/values-in/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-iw/strings.xml
Normal file
20
src/keepass2android/Resources/values-iw/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-ko/strings.xml
Normal file
20
src/keepass2android/Resources/values-ko/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
159
src/keepass2android/Resources/values-no/strings.xml
Normal file
159
src/keepass2android/Resources/values-no/strings.xml
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string name="about_feedback">Tilbakemelding</string>
|
||||||
|
<string name="about_homepage">Heimeside</string>
|
||||||
|
<string name="AboutText">Keepass2Android er ei android-utgåve av KeePass passordstyrar.</string>
|
||||||
|
<string name="accept">Godta</string>
|
||||||
|
<string name="add_entry">Legg til post</string>
|
||||||
|
<string name="add_group">Legg til gruppe</string>
|
||||||
|
<string name="add_group_title">Legg til gruppe</string>
|
||||||
|
<string name="algorithm">Algoritme</string>
|
||||||
|
<string name="algorithm_colon">Algoritme</string>
|
||||||
|
<string name="app_timeout">Programtidsavbrot</string>
|
||||||
|
<string name="app_timeout_summary">Tid før databasen blir låst når programmet ikkje er i bruk.</string>
|
||||||
|
<string name="application">Program</string>
|
||||||
|
<string name="application_settings">Programinnstillingar</string>
|
||||||
|
<string name="brackets">Parentesar</string>
|
||||||
|
<string name="browser_intall_text">Du må ha Open Intents filbehandlar for å kunna bla i filer. Klikk nedanfor for å installera han. Grunna nokre småfeil i programmet kan det vera at det ikkje fungerer heilt den første gongen du bruker det.</string>
|
||||||
|
<string name="building_search_idx">Byggjer søkjeindeksen …</string>
|
||||||
|
<string name="cancel">Avbryt</string>
|
||||||
|
<string name="ClearClipboard">Utklippstavla er tømt.</string>
|
||||||
|
<string name="clipboard_timeout">Tidsavbrot på utklippstavla</string>
|
||||||
|
<string name="clipboard_timeout_summary">Tid før utklippstavla blir tømt etter at brukarnamnet eller passordet er kopiert.</string>
|
||||||
|
<string name="copy_username">Kopier brukarnamnet til utklippstavla</string>
|
||||||
|
<string name="copy_password">Kopier passordet til utklippstavla</string>
|
||||||
|
<string name="creating_db_key">Lagar databasenøkkelen …</string>
|
||||||
|
<string name="current_group">Gjeldande gruppe</string>
|
||||||
|
<string name="current_group_root">Gjeldande gruppe: Rot</string>
|
||||||
|
<string name="decrypting_db">Dekrypterer databasen …</string>
|
||||||
|
<string name="decrypting_entry">Dekrypterer oppføringa</string>
|
||||||
|
<string name="default_checkbox">Standarddatabasen</string>
|
||||||
|
<string name="digits">Tal</string>
|
||||||
|
<string name="disclaimer_formal">Keepass2Android kjem med INGEN SOM HELST GARANTI. Dette er eit fritt program. Du er velkomen til å redistribuera det i samsvar med vilkåra til GPL utgåve 2 eller nyare.</string>
|
||||||
|
<string name="enter_filename">Skriv filnamnet til databasen</string>
|
||||||
|
<string name="entry_accessed">Brukt</string>
|
||||||
|
<string name="entry_and_or">Skriv inn passordet og/eller nøkkelfil for å låsa opp databasen</string>
|
||||||
|
<string name="entry_cancel">Avbryt</string>
|
||||||
|
<string name="entry_comment">Merknader</string>
|
||||||
|
<string name="entry_confpassword">Stadfest passordet</string>
|
||||||
|
<string name="entry_created">Laga</string>
|
||||||
|
<string name="entry_expires">Går ut</string>
|
||||||
|
<string name="entry_keyfile">Nøkkelfil (valfri)</string>
|
||||||
|
<string name="entry_modified">Endra</string>
|
||||||
|
<string name="entry_password">Passord</string>
|
||||||
|
<string name="entry_save">Lagra</string>
|
||||||
|
<string name="entry_title">Namn</string>
|
||||||
|
<string name="entry_url">Adresse</string>
|
||||||
|
<string name="entry_user_name">Brukaramn</string>
|
||||||
|
<string name="error_arc4">Kan ikkje bruka ArcFour dataflytkryptering.</string>
|
||||||
|
<string name="error_can_not_handle_uri">Keepass2Android kan ikkje bruka denne ressursen.</string>
|
||||||
|
<string name="error_could_not_create_group">Klarte ikkje å laga gruppa.</string>
|
||||||
|
<string name="error_could_not_create_parent">Klarte ikkje å laga foreldrekatalogen.</string>
|
||||||
|
<string name="error_database_exists">Denne fila finst allereie.</string>
|
||||||
|
<string name="error_database_settings">Klarte ikkje å bestemma databaseinnstillingane.</string>
|
||||||
|
<string name="error_failed_to_launch_link">Klarte ikkje å lasta lenkja.</string>
|
||||||
|
<string name="error_filename_required">Treng eit filnamn.</string>
|
||||||
|
<string name="error_file_not_create">Klarte ikkje å laga fila</string>
|
||||||
|
<string name="error_invalid_db">Ugyldig database.</string>
|
||||||
|
<string name="error_invalid_path">Ugyldig stig.</string>
|
||||||
|
<string name="error_no_name">Treng eit namn.</string>
|
||||||
|
<string name="error_nopass">Treng eit passord eller ei nøkkelfil.</string>
|
||||||
|
<string name="error_out_of_memory">Telefonen gjekk tom for minne ved lesinga av databasen din. Databasen er kanskje for stor.</string>
|
||||||
|
<string name="error_pass_gen_type">Du må velja minst éin passordlagingstype</string>
|
||||||
|
<string name="error_pass_match">Passorda samsvarer ikkje.</string>
|
||||||
|
<string name="error_rounds_not_number">Omgangar må vera eit tal.</string>
|
||||||
|
<string name="error_rounds_too_large">For mange omgangar. Bruker 2147483648.</string>
|
||||||
|
<string name="error_title_required">Treng ein tittel.</string>
|
||||||
|
<string name="error_wrong_length">Bruk eit positivt heiltal i lengdfeltet</string>
|
||||||
|
<string name="FileNotFound">Fann ikkje fila.</string>
|
||||||
|
<string name="file_browser">Filbehandlar</string>
|
||||||
|
<string name="generate_password">Lag passord</string>
|
||||||
|
<string name="group">Gruppe</string>
|
||||||
|
<string name="hint_comment">merknad</string>
|
||||||
|
<string name="hint_conf_pass">stadfest passordet</string>
|
||||||
|
<string name="hint_generated_password">laga passord</string>
|
||||||
|
<string name="hint_group_name">Gruppenamn</string>
|
||||||
|
<string name="hint_keyfile">nøkkelfil</string>
|
||||||
|
<string name="hint_length">lengd</string>
|
||||||
|
<string name="hint_pass">passord</string>
|
||||||
|
<string name="hint_login_pass">Passord</string>
|
||||||
|
<string name="hint_title">namn</string>
|
||||||
|
<string name="hint_url">adresse</string>
|
||||||
|
<string name="hint_username">brukarnamn</string>
|
||||||
|
<string name="install_from_market">Installer frå marknaden</string>
|
||||||
|
<string name="install_from_website">Installer frå nettet</string>
|
||||||
|
<string name="InvalidPassword">Ugyldig passord eller nøkkelfil.</string>
|
||||||
|
<string name="invalid_db_sig">Ukjent databaseformat.</string>
|
||||||
|
<string name="length">Lengd</string>
|
||||||
|
<string name="list_size_title">Gruppelistestorleik</string>
|
||||||
|
<string name="list_size_summary">Tekststorleik i gruppelista</string>
|
||||||
|
<string name="loading_database">Lastar databasen …</string>
|
||||||
|
<string name="lowercase">Små bokstavar</string>
|
||||||
|
<string name="maskpass_title">Masker passord</string>
|
||||||
|
<string name="maskpass_summary">Gøym passorda (standardval)</string>
|
||||||
|
<string name="menu_about">Om</string>
|
||||||
|
<string name="menu_change_key">Endra hovudnøkkelen</string>
|
||||||
|
<string name="menu_copy_pass">Kopier passordet</string>
|
||||||
|
<string name="menu_copy_user">Kopier brukaren</string>
|
||||||
|
<string name="menu_create">Lag</string>
|
||||||
|
<string name="menu_app_settings">Innstillingar</string>
|
||||||
|
<string name="menu_db_settings">Databaseinnstillingar</string>
|
||||||
|
<string name="menu_delete">Slett</string>
|
||||||
|
<string name="menu_donate">Doner</string>
|
||||||
|
<string name="menu_edit">Endra</string>
|
||||||
|
<string name="menu_hide_password">Gøym passordet</string>
|
||||||
|
<string name="menu_homepage">Gå til heimesida</string>
|
||||||
|
<string name="menu_lock">Lås databasen</string>
|
||||||
|
<string name="menu_open">Opna</string>
|
||||||
|
<string name="menu_rename">Gje nytt namn</string>
|
||||||
|
<string name="menu_search">Søk</string>
|
||||||
|
<string name="menu_url">Gå til adressa</string>
|
||||||
|
<string name="never">Aldri</string>
|
||||||
|
<string name="no_keys">Ingen oppføringar i databasen eller gruppa.</string>
|
||||||
|
<string name="no_results">Ingen søkjeresultat</string>
|
||||||
|
<string name="no_url_handler">Ingen behandlar for denne adressa.</string>
|
||||||
|
<string name="open_recent">Opna nyleg brukt database (klikk for å opna)</string>
|
||||||
|
<string name="omitbackup_title">Søk ikkje i kopipostane eller søppelbøtta</string>
|
||||||
|
<string name="omitbackup_summary">Søkjeresultatet inneheld ikkje oppføringar frå \'Backup\' eller søppelbøtta</string>
|
||||||
|
<string name="pass_filename">Filnamnet til KeePass-databasen</string>
|
||||||
|
<string name="password_title">Skriv databasepassordet</string>
|
||||||
|
<string name="progress_create">Lager ny database …</string>
|
||||||
|
<string name="progress_title">Arbeider …</string>
|
||||||
|
<string name="remember_keyfile_summary">Hugsar staden til nøkkelfilene</string>
|
||||||
|
<string name="remember_keyfile_title">Lagra nøkkelfila</string>
|
||||||
|
<string name="remove_from_filelist">Ta vekk</string>
|
||||||
|
<string name="root">Rot</string>
|
||||||
|
<string name="rounds">Krypteringsomgangar</string>
|
||||||
|
<string name="rounds_explaination">Fleire krypteringsomgangar gjev tilleggsvern mot rå makt-åtak, men kan òg gjera lasting og lagring mykje tregare.</string>
|
||||||
|
<string name="rounds_hint">omgangar</string>
|
||||||
|
<string name="saving_database">Lagrar databasen …</string>
|
||||||
|
<string name="space">Mellomrom</string>
|
||||||
|
<string name="search_label">Søk</string>
|
||||||
|
<string name="show_password">Syn passordet</string>
|
||||||
|
<string name="sort_name">Sorter etter namn</string>
|
||||||
|
<string name="sort_db">DB-sortering</string>
|
||||||
|
<string name="special">Spesial</string>
|
||||||
|
<string name="underline">Understreking</string>
|
||||||
|
<string name="unsupported_db_version">Kan ikkje bruka databaseutgåva.</string>
|
||||||
|
<string name="uppercase">Store bokstavar</string>
|
||||||
|
<string name="warning_read_only">SD-kortet ditt kan berre lesast. Det kan vera at du ikkje kan lagra endringar i databasen.</string>
|
||||||
|
<string name="warning_unmounted">SD-kortet er ikkje montert i eininga di. Du kan verken henta eller laga databasen din.</string>
|
||||||
|
<string name="version_label">Utgåve</string>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 sekund</item>
|
||||||
|
<item>1 minutt</item>
|
||||||
|
<item>5 minutt</item>
|
||||||
|
<item>Aldri</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Liten</item>
|
||||||
|
<item>Middels</item>
|
||||||
|
<item>Stor</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-pt-rPT/strings.xml
Normal file
20
src/keepass2android/Resources/values-pt-rPT/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-ro/strings.xml
Normal file
20
src/keepass2android/Resources/values-ro/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-sl/strings.xml
Normal file
20
src/keepass2android/Resources/values-sl/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-sr/strings.xml
Normal file
20
src/keepass2android/Resources/values-sr/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-sv/strings.xml
Normal file
20
src/keepass2android/Resources/values-sv/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-tr/strings.xml
Normal file
20
src/keepass2android/Resources/values-tr/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
20
src/keepass2android/Resources/values-vi/strings.xml
Normal file
20
src/keepass2android/Resources/values-vi/strings.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--Generated by crowdin.net-->
|
||||||
|
<resources>
|
||||||
|
<string-array name="clipboard_timeout_options">
|
||||||
|
<item>30 seconds</item>
|
||||||
|
<item>1 minute</item>
|
||||||
|
<item>5 minutes</item>
|
||||||
|
<item>Never</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="list_size_options">
|
||||||
|
<item>Small</item>
|
||||||
|
<item>Medium</item>
|
||||||
|
<item>Large</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="cred_remember_modes">
|
||||||
|
<item>Do not remember username and password</item>
|
||||||
|
<item>Remember username only</item>
|
||||||
|
<item>Remember username and password</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
@ -128,6 +128,8 @@
|
|||||||
<string name="menu_url">Go to URL</string>
|
<string name="menu_url">Go to URL</string>
|
||||||
<string name="minus">Minus</string>
|
<string name="minus">Minus</string>
|
||||||
<string name="never">Never</string>
|
<string name="never">Never</string>
|
||||||
|
<string name="yes">Yes</string>
|
||||||
|
<string name="no">No</string>
|
||||||
<string name="no_keys">No entries in the database or group.</string>
|
<string name="no_keys">No entries in the database or group.</string>
|
||||||
<string name="no_results">No search results</string>
|
<string name="no_results">No search results</string>
|
||||||
<string name="no_url_handler">No handler for this url.</string>
|
<string name="no_url_handler">No handler for this url.</string>
|
||||||
@ -207,6 +209,9 @@
|
|||||||
<string name="AskOverwriteBinary_no">Rename</string>
|
<string name="AskOverwriteBinary_no">Rename</string>
|
||||||
<string name="AttachFailed">Failed to add file attachment.</string>
|
<string name="AttachFailed">Failed to add file attachment.</string>
|
||||||
<string name="RecycleBin">Recycle Bin</string>
|
<string name="RecycleBin">Recycle Bin</string>
|
||||||
|
<string name="AskDeletePermanentlyEntry">Do you want to delete this entry permanently? Press No to recycle.</string>
|
||||||
|
<string name="AskDeletePermanentlyGroup">Do you want to delete this group permanently? Press No to recycle.</string>
|
||||||
|
<string name="AskDeletePermanently_title">Delete permanently?</string>
|
||||||
<string-array name="clipboard_timeout_options">
|
<string-array name="clipboard_timeout_options">
|
||||||
<item>30 seconds</item>
|
<item>30 seconds</item>
|
||||||
<item>1 minute</item>
|
<item>1 minute</item>
|
||||||
|
@ -40,6 +40,11 @@ namespace keepass2android
|
|||||||
this.actionToPerform = actionToPerform;
|
this.actionToPerform = actionToPerform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, OnFinish finish) : base(finish)
|
||||||
|
{
|
||||||
|
this.actionToPerform = actionToPerform;
|
||||||
|
}
|
||||||
|
|
||||||
public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, Handler handler) : base(handler)
|
public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, Handler handler) : base(handler)
|
||||||
{
|
{
|
||||||
this.actionToPerform = actionToPerform;
|
this.actionToPerform = actionToPerform;
|
||||||
|
@ -30,12 +30,10 @@ using KeePassLib;
|
|||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
public class DeleteEntry : RunnableOnFinish {
|
public class DeleteEntry : DeleteRunnable {
|
||||||
|
|
||||||
private Database mDb;
|
|
||||||
private PwEntry mEntry;
|
private PwEntry mEntry;
|
||||||
private Context mCtx;
|
|
||||||
|
|
||||||
public DeleteEntry(Context ctx, Database db, PwEntry entry, OnFinish finish):base(finish) {
|
public DeleteEntry(Context ctx, Database db, PwEntry entry, OnFinish finish):base(finish) {
|
||||||
mCtx = ctx;
|
mCtx = ctx;
|
||||||
mDb = db;
|
mDb = db;
|
||||||
@ -43,12 +41,27 @@ namespace keepass2android
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool CanRecycle
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return CanRecycleGroup(mEntry.ParentGroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override int QuestionsResourceId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Resource.String.AskDeletePermanentlyEntry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void run() {
|
public override void run() {
|
||||||
|
|
||||||
PwDatabase pd = mDb.pm;
|
PwDatabase pd = mDb.pm;
|
||||||
|
|
||||||
PwGroup pgRecycleBin = pd.RootGroup.FindGroup(pd.RecycleBinUuid, true);
|
PwGroup pgRecycleBin = pd.RootGroup.FindGroup(pd.RecycleBinUuid, true);
|
||||||
bool bShiftPressed = false;
|
|
||||||
|
|
||||||
bool bUpdateGroupList = false;
|
bool bUpdateGroupList = false;
|
||||||
DateTime dtNow = DateTime.Now;
|
DateTime dtNow = DateTime.Now;
|
||||||
@ -58,38 +71,51 @@ namespace keepass2android
|
|||||||
{
|
{
|
||||||
pgParent.Entries.Remove(pe);
|
pgParent.Entries.Remove(pe);
|
||||||
|
|
||||||
bool bPermanent = true;
|
|
||||||
if(pd.RecycleBinEnabled == false) bPermanent = true;
|
|
||||||
else if(bShiftPressed) bPermanent = true;
|
|
||||||
else if(pgRecycleBin == null) { } // Recycle
|
|
||||||
else if(pgParent == pgRecycleBin) bPermanent = true;
|
|
||||||
else if(pgParent.IsContainedIn(pgRecycleBin)) bPermanent = true;
|
|
||||||
|
|
||||||
if(bPermanent)
|
|
||||||
{
|
|
||||||
/* TODO KP Desktop
|
|
||||||
if(!MessageService.AskYesNo(bSingle ? KPRes.DeleteEntriesQuestionSingle :
|
|
||||||
KPRes.DeleteEntriesQuestion, bSingle ? KPRes.DeleteEntriesTitleSingle :
|
|
||||||
KPRes.DeleteEntriesTitle))
|
|
||||||
return;
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((DeletePermanently) || (!CanRecycle))
|
||||||
|
{
|
||||||
PwDeletedObject pdo = new PwDeletedObject(pe.Uuid, dtNow);
|
PwDeletedObject pdo = new PwDeletedObject(pe.Uuid, dtNow);
|
||||||
pd.DeletedObjects.Add(pdo);
|
pd.DeletedObjects.Add(pdo);
|
||||||
|
|
||||||
|
mFinish = new ActionOnFinish( (success, message) =>
|
||||||
|
{
|
||||||
|
if ( success ) {
|
||||||
|
// Mark parent dirty
|
||||||
|
if ( pgParent != null ) {
|
||||||
|
mDb.dirty.Add(pgParent);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Let's not bother recovering from a failure to save a deleted entry. It is too much work.
|
||||||
|
App.setShutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else // Recycle
|
else // Recycle
|
||||||
{
|
{
|
||||||
DeleteGroup.EnsureRecycleBin(ref pgRecycleBin, pd, ref bUpdateGroupList, mCtx);
|
EnsureRecycleBin(ref pgRecycleBin, ref bUpdateGroupList);
|
||||||
|
|
||||||
pgRecycleBin.AddEntry(pe, true, true);
|
pgRecycleBin.AddEntry(pe, true, true);
|
||||||
pe.Touch(false);
|
pe.Touch(false);
|
||||||
|
|
||||||
|
mFinish = new ActionOnFinish( (success, message) =>
|
||||||
|
{
|
||||||
|
if ( success ) {
|
||||||
|
// Mark previous parent dirty
|
||||||
|
if ( pgParent != null ) {
|
||||||
|
mDb.dirty.Add(pgParent);
|
||||||
|
}
|
||||||
|
// Mark new parent dirty
|
||||||
|
mDb.dirty.Add(pgRecycleBin);
|
||||||
|
} else {
|
||||||
|
// Let's not bother recovering from a failure to save a deleted entry. It is too much work.
|
||||||
|
App.setShutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this.mFinish);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save
|
|
||||||
mFinish = new AfterDelete(mFinish, pgParent, mEntry, mDb);
|
|
||||||
|
|
||||||
// Commit database
|
// Commit database
|
||||||
SaveDB save = new SaveDB(mCtx, mDb, mFinish, false);
|
SaveDB save = new SaveDB(mCtx, mDb, mFinish, false);
|
||||||
save.run();
|
save.run();
|
||||||
@ -97,36 +123,6 @@ namespace keepass2android
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class AfterDelete : OnFinish {
|
|
||||||
|
|
||||||
private PwGroup mParent;
|
|
||||||
private PwEntry mEntry;
|
|
||||||
Database mDb;
|
|
||||||
|
|
||||||
public AfterDelete(OnFinish finish, PwGroup parent, PwEntry entry, Database db):base(finish) {
|
|
||||||
mParent = parent;
|
|
||||||
mEntry = entry;
|
|
||||||
mDb = db;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void run() {
|
|
||||||
if ( mSuccess ) {
|
|
||||||
// Mark parent dirty
|
|
||||||
if ( mParent != null ) {
|
|
||||||
mDb.dirty.Add(mParent);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Let's not bother recovering from a failure to save a deleted entry. It is too much work.
|
|
||||||
App.setShutdown();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
base.run();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,14 +31,12 @@ using KeePassLib;
|
|||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
|
|
||||||
public class DeleteGroup : RunnableOnFinish {
|
public class DeleteGroup : DeleteRunnable {
|
||||||
|
|
||||||
private Database mDb;
|
|
||||||
private PwGroup mGroup;
|
private PwGroup mGroup;
|
||||||
private GroupBaseActivity mAct;
|
private GroupBaseActivity mAct;
|
||||||
private bool mDontSave;
|
protected bool mDontSave;
|
||||||
private Context mCtx;
|
|
||||||
|
|
||||||
public DeleteGroup(Context ctx, Database db, PwGroup group, GroupBaseActivity act, OnFinish finish):base(finish) {
|
public DeleteGroup(Context ctx, Database db, PwGroup group, GroupBaseActivity act, OnFinish finish):base(finish) {
|
||||||
setMembers(ctx, db, group, act, false);
|
setMembers(ctx, db, group, act, false);
|
||||||
}
|
}
|
||||||
@ -46,23 +44,35 @@ namespace keepass2android
|
|||||||
public DeleteGroup(Context ctx, Database db, PwGroup group, GroupBaseActivity act, OnFinish finish, bool dontSave):base(finish) {
|
public DeleteGroup(Context ctx, Database db, PwGroup group, GroupBaseActivity act, OnFinish finish, bool dontSave):base(finish) {
|
||||||
setMembers(ctx, db, group, act, dontSave);
|
setMembers(ctx, db, group, act, dontSave);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public DeleteGroup(Context ctx, Database db, PwGroup group, OnFinish finish, bool dontSave):base(finish) {
|
public DeleteGroup(Context ctx, Database db, PwGroup group, OnFinish finish, bool dontSave):base(finish) {
|
||||||
setMembers(ctx, db, group, null, dontSave);
|
setMembers(ctx, db, group, null, dontSave);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setMembers(Context ctx, Database db, PwGroup group, GroupBaseActivity act, bool dontSave) {
|
private void setMembers(Context ctx, Database db, PwGroup group, GroupBaseActivity act, bool dontSave) {
|
||||||
mCtx = ctx;
|
base.setMembers(ctx, db);
|
||||||
mDb = db;
|
|
||||||
mGroup = group;
|
mGroup = group;
|
||||||
mAct = act;
|
mAct = act;
|
||||||
mDontSave = dontSave;
|
mDontSave = dontSave;
|
||||||
|
|
||||||
mFinish = new AfterDelete(mFinish, mDb, mGroup);
|
}
|
||||||
|
|
||||||
|
public override bool CanRecycle
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return CanRecycleGroup(mGroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override int QuestionsResourceId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Resource.String.AskDeletePermanentlyGroup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override void run() {
|
public override void run() {
|
||||||
@ -73,43 +83,39 @@ namespace keepass2android
|
|||||||
|
|
||||||
PwDatabase pd = mDb.pm;
|
PwDatabase pd = mDb.pm;
|
||||||
PwGroup pgRecycleBin = pd.RootGroup.FindGroup(pd.RecycleBinUuid, true);
|
PwGroup pgRecycleBin = pd.RootGroup.FindGroup(pd.RecycleBinUuid, true);
|
||||||
bool bShiftPressed = false;
|
|
||||||
|
|
||||||
bool bPermanent = true; //indicates whether we delete permanently or not
|
|
||||||
//TODO use settings to enable Recycle Bin App-wide?
|
|
||||||
if(pd.RecycleBinEnabled == false) bPermanent = true;
|
|
||||||
else if(bShiftPressed) bPermanent = true;
|
|
||||||
else if(pgRecycleBin == null) { }
|
|
||||||
else if(pg == pgRecycleBin) bPermanent = true;
|
|
||||||
else if(pg.IsContainedIn(pgRecycleBin)) bPermanent = true;
|
|
||||||
else if(pgRecycleBin.IsContainedIn(pg)) bPermanent = true;
|
|
||||||
|
|
||||||
if(bPermanent)
|
|
||||||
{
|
|
||||||
/* TODO KPDesktop?
|
|
||||||
string strText = KPRes.DeleteGroupInfo + MessageService.NewParagraph +
|
|
||||||
KPRes.DeleteGroupQuestion;
|
|
||||||
if(!MessageService.AskYesNo(strText, KPRes.DeleteGroupTitle))
|
|
||||||
return;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
pgParent.Groups.Remove(pg);
|
pgParent.Groups.Remove(pg);
|
||||||
|
|
||||||
if(bPermanent)
|
if ((DeletePermanently) || (!CanRecycle))
|
||||||
{
|
{
|
||||||
pg.DeleteAllObjects(pd);
|
pg.DeleteAllObjects(pd);
|
||||||
|
|
||||||
PwDeletedObject pdo = new PwDeletedObject(pg.Uuid, DateTime.Now);
|
PwDeletedObject pdo = new PwDeletedObject(pg.Uuid, DateTime.Now);
|
||||||
pd.DeletedObjects.Add(pdo);
|
pd.DeletedObjects.Add(pdo);
|
||||||
|
mFinish = new AfterDeletePermanently(mFinish, mDb, mGroup);
|
||||||
}
|
}
|
||||||
else // Recycle
|
else // Recycle
|
||||||
{
|
{
|
||||||
bool bDummy = false;
|
bool bDummy = false;
|
||||||
EnsureRecycleBin(ref pgRecycleBin, pd, ref bDummy, mCtx);
|
EnsureRecycleBin(ref pgRecycleBin, ref bDummy);
|
||||||
|
|
||||||
pgRecycleBin.AddGroup(pg, true, true);
|
pgRecycleBin.AddGroup(pg, true, true);
|
||||||
pg.Touch(false);
|
pg.Touch(false);
|
||||||
|
mFinish = new ActionOnFinish((success, message) =>
|
||||||
|
{
|
||||||
|
if ( success ) {
|
||||||
|
// Mark new parent (Recycle bin) dirty
|
||||||
|
PwGroup parent = mGroup.ParentGroup;
|
||||||
|
if ( parent != null ) {
|
||||||
|
mDb.dirty.Add(parent);
|
||||||
|
}
|
||||||
|
//Mark old parent dirty:
|
||||||
|
mDb.dirty.Add(pgParent);
|
||||||
|
} else {
|
||||||
|
// Let's not bother recovering from a failure to save a deleted group. It is too much work.
|
||||||
|
App.setShutdown();
|
||||||
|
}
|
||||||
|
}, this.mFinish);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
@ -118,39 +124,13 @@ namespace keepass2android
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EnsureRecycleBin(ref PwGroup pgRecycleBin,
|
|
||||||
PwDatabase pdContext, ref bool bGroupListUpdateRequired, Context ctx)
|
|
||||||
{
|
|
||||||
if(pdContext == null) { return; }
|
|
||||||
|
|
||||||
if(pgRecycleBin == pdContext.RootGroup)
|
|
||||||
{
|
|
||||||
pgRecycleBin = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(pgRecycleBin == null)
|
|
||||||
{
|
|
||||||
pgRecycleBin = new PwGroup(true, true, ctx.GetString(Resource.String.RecycleBin),
|
|
||||||
PwIcon.TrashBin);
|
|
||||||
pgRecycleBin.EnableAutoType = false;
|
|
||||||
pgRecycleBin.EnableSearching = false;
|
|
||||||
pgRecycleBin.IsExpanded = false;
|
|
||||||
pdContext.RootGroup.AddGroup(pgRecycleBin, true);
|
|
||||||
|
|
||||||
pdContext.RecycleBinUuid = pgRecycleBin.Uuid;
|
|
||||||
|
|
||||||
bGroupListUpdateRequired = true;
|
|
||||||
}
|
|
||||||
else { System.Diagnostics.Debug.Assert(pgRecycleBin.Uuid.EqualsValue(pdContext.RecycleBinUuid)); }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private class AfterDelete : OnFinish {
|
private class AfterDeletePermanently : OnFinish {
|
||||||
Database mDb;
|
Database mDb;
|
||||||
|
|
||||||
PwGroup mGroup;
|
PwGroup mGroup;
|
||||||
|
|
||||||
public AfterDelete(OnFinish finish, Database db, PwGroup group):base(finish) {
|
public AfterDeletePermanently(OnFinish finish, Database db, PwGroup group):base(finish) {
|
||||||
this.mDb = db;
|
this.mDb = db;
|
||||||
this.mGroup = group;
|
this.mGroup = group;
|
||||||
}
|
}
|
||||||
@ -160,7 +140,7 @@ namespace keepass2android
|
|||||||
// Remove from group global
|
// Remove from group global
|
||||||
mDb.groups.Remove(mGroup.Uuid);
|
mDb.groups.Remove(mGroup.Uuid);
|
||||||
|
|
||||||
// Remove group from the dirty global (if it is present), not a big deal if this fails
|
// Remove group from the dirty global (if it is present), not a big deal if this fails (doesn't throw)
|
||||||
mDb.dirty.Remove(mGroup);
|
mDb.dirty.Remove(mGroup);
|
||||||
|
|
||||||
// Mark parent dirty
|
// Mark parent dirty
|
||||||
|
146
src/keepass2android/database/edit/DeleteRunnable.cs
Normal file
146
src/keepass2android/database/edit/DeleteRunnable.cs
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Runtime;
|
||||||
|
using Android.Views;
|
||||||
|
using Android.Widget;
|
||||||
|
using KeePassLib;
|
||||||
|
|
||||||
|
namespace keepass2android
|
||||||
|
{
|
||||||
|
public abstract class DeleteRunnable : RunnableOnFinish
|
||||||
|
{
|
||||||
|
public DeleteRunnable(OnFinish finish):base(finish)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Database mDb;
|
||||||
|
|
||||||
|
protected Context mCtx;
|
||||||
|
|
||||||
|
protected void setMembers(Context ctx, Database db)
|
||||||
|
{
|
||||||
|
mCtx = ctx;
|
||||||
|
mDb = db;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private bool mDeletePermanently = true;
|
||||||
|
|
||||||
|
public bool DeletePermanently
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return mDeletePermanently;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
mDeletePermanently = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract bool CanRecycle
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool CanRecycleGroup(PwGroup pgParent)
|
||||||
|
{
|
||||||
|
bool bShiftPressed = false;
|
||||||
|
PwDatabase pd = mDb.pm;
|
||||||
|
PwGroup pgRecycleBin = pd.RootGroup.FindGroup(pd.RecycleBinUuid, true);
|
||||||
|
bool bPermanent = false;
|
||||||
|
if (pgParent != null)
|
||||||
|
{
|
||||||
|
if (pd.RecycleBinEnabled == false)
|
||||||
|
bPermanent = true;
|
||||||
|
else if (bShiftPressed)
|
||||||
|
bPermanent = true;
|
||||||
|
else if (pgRecycleBin == null)
|
||||||
|
{
|
||||||
|
} // Recycle
|
||||||
|
else if (pgParent == pgRecycleBin)
|
||||||
|
bPermanent = true;
|
||||||
|
else if (pgParent.IsContainedIn(pgRecycleBin))
|
||||||
|
bPermanent = true;
|
||||||
|
}
|
||||||
|
return !bPermanent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void EnsureRecycleBin(ref PwGroup pgRecycleBin,
|
||||||
|
ref bool bGroupListUpdateRequired)
|
||||||
|
{
|
||||||
|
if ((mDb == null) || (mDb.pm == null)) { return; }
|
||||||
|
|
||||||
|
if(pgRecycleBin == mDb.pm.RootGroup)
|
||||||
|
{
|
||||||
|
pgRecycleBin = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgRecycleBin == null)
|
||||||
|
{
|
||||||
|
pgRecycleBin = new PwGroup(true, true, mCtx.GetString(Resource.String.RecycleBin),
|
||||||
|
PwIcon.TrashBin);
|
||||||
|
pgRecycleBin.EnableAutoType = false;
|
||||||
|
pgRecycleBin.EnableSearching = false;
|
||||||
|
pgRecycleBin.IsExpanded = false;
|
||||||
|
mDb.pm.RootGroup.AddGroup(pgRecycleBin, true);
|
||||||
|
|
||||||
|
mDb.pm.RecycleBinUuid = pgRecycleBin.Uuid;
|
||||||
|
|
||||||
|
bGroupListUpdateRequired = true;
|
||||||
|
}
|
||||||
|
else { System.Diagnostics.Debug.Assert(pgRecycleBin.Uuid.EqualsValue(mDb.pm.RecycleBinUuid)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract int QuestionsResourceId
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void start()
|
||||||
|
{
|
||||||
|
if (CanRecycle)
|
||||||
|
{
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(mCtx);
|
||||||
|
builder.SetTitle(mCtx.GetString(Resource.String.AskDeletePermanently_title));
|
||||||
|
|
||||||
|
builder.SetMessage(mCtx.GetString(QuestionsResourceId));
|
||||||
|
|
||||||
|
builder.SetPositiveButton(Resource.String.yes, new EventHandler<DialogClickEventArgs>((dlgSender, dlgEvt) =>
|
||||||
|
{
|
||||||
|
DeletePermanently = true;
|
||||||
|
ProgressTask pt = new ProgressTask(mCtx, this, Resource.String.saving_database);
|
||||||
|
pt.run();
|
||||||
|
}));
|
||||||
|
|
||||||
|
builder.SetNegativeButton(Resource.String.no, new EventHandler<DialogClickEventArgs>((dlgSender, dlgEvt) => {
|
||||||
|
DeletePermanently = false;
|
||||||
|
ProgressTask pt = new ProgressTask(mCtx, this, Resource.String.saving_database);
|
||||||
|
pt.run();
|
||||||
|
}));
|
||||||
|
|
||||||
|
builder.SetNeutralButton(mCtx.GetString(Android.Resource.String.Cancel),
|
||||||
|
new EventHandler<DialogClickEventArgs>((dlgSender, dlgEvt) => {}));
|
||||||
|
|
||||||
|
Dialog dialog = builder.Create();
|
||||||
|
dialog.Show();
|
||||||
|
|
||||||
|
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
ProgressTask pt = new ProgressTask(mCtx, this, Resource.String.saving_database);
|
||||||
|
pt.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -157,6 +157,7 @@
|
|||||||
<Compile Include="LifecycleDebugActivity.cs" />
|
<Compile Include="LifecycleDebugActivity.cs" />
|
||||||
<Compile Include="services\QuickUnlockForegroundService.cs" />
|
<Compile Include="services\QuickUnlockForegroundService.cs" />
|
||||||
<Compile Include="AssemblyInfo.cs" />
|
<Compile Include="AssemblyInfo.cs" />
|
||||||
|
<Compile Include="database\edit\DeleteRunnable.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Resources\AboutResources.txt" />
|
<None Include="Resources\AboutResources.txt" />
|
||||||
@ -201,6 +202,63 @@
|
|||||||
<None Include="todos.cs">
|
<None Include="todos.cs">
|
||||||
<Visible>False</Visible>
|
<Visible>False</Visible>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="UseManifestNet.bat">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="UseManifestNoNet.bat">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Properties\AndroidManifest_net.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Properties\AndroidManifest_nonet.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-af\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-ar\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-el\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-fi\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-in\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-iw\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-ko\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-no\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-pt-rPT\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-ro\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-sl\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-sr\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-sv\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-tr\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
|
<None Include="Resources\values-vi\strings.xml">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable\ic00.png" />
|
<AndroidResource Include="Resources\drawable\ic00.png" />
|
||||||
|
@ -14,7 +14,6 @@ This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
|
along with Keepass2Android. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -32,34 +31,34 @@ using Android.Text.Style;
|
|||||||
|
|
||||||
namespace keepass2android.view
|
namespace keepass2android.view
|
||||||
{
|
{
|
||||||
|
public class PwEntryView : ClickView
|
||||||
public class PwEntryView : ClickView {
|
{
|
||||||
|
|
||||||
protected GroupBaseActivity mAct;
|
protected GroupBaseActivity mAct;
|
||||||
protected PwEntry mPw;
|
protected PwEntry mPw;
|
||||||
private TextView mTv;
|
private TextView mTv;
|
||||||
private int mPos;
|
private int mPos;
|
||||||
|
|
||||||
protected const int MENU_OPEN = Menu.First;
|
protected const int MENU_OPEN = Menu.First;
|
||||||
private const int MENU_DELETE = MENU_OPEN + 1;
|
private const int MENU_DELETE = MENU_OPEN + 1;
|
||||||
|
|
||||||
public static PwEntryView getInstance(GroupBaseActivity act, PwEntry pw, int pos)
|
public static PwEntryView getInstance(GroupBaseActivity act, PwEntry pw, int pos)
|
||||||
{
|
{
|
||||||
return new PwEntryView(act, pw, pos);
|
return new PwEntryView(act, pw, pos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PwEntryView (IntPtr javaReference, JniHandleOwnership transfer)
|
public PwEntryView(IntPtr javaReference, JniHandleOwnership transfer)
|
||||||
: base(javaReference, transfer)
|
: base(javaReference, transfer)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected PwEntryView(GroupBaseActivity act, PwEntry pw, int pos):base(act) {
|
protected PwEntryView(GroupBaseActivity act, PwEntry pw, int pos):base(act)
|
||||||
|
{
|
||||||
mAct = act;
|
mAct = act;
|
||||||
|
|
||||||
View ev = View.Inflate(mAct, Resource.Layout.entry_list_entry, null);
|
View ev = View.Inflate(mAct, Resource.Layout.entry_list_entry, null);
|
||||||
mTv = (TextView) ev.FindViewById(Resource.Id.entry_text);
|
mTv = (TextView)ev.FindViewById(Resource.Id.entry_text);
|
||||||
mTv.TextSize = PrefsUtil.getListTextSize(act);
|
mTv.TextSize = PrefsUtil.getListTextSize(act);
|
||||||
|
|
||||||
populateView(ev, pw, pos);
|
populateView(ev, pw, pos);
|
||||||
@ -70,19 +69,19 @@ namespace keepass2android.view
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateView (View ev, PwEntry pw, int pos)
|
private void populateView(View ev, PwEntry pw, int pos)
|
||||||
{
|
{
|
||||||
mPw = pw;
|
mPw = pw;
|
||||||
mPos = pos;
|
mPos = pos;
|
||||||
|
|
||||||
ImageView iv = (ImageView)ev.FindViewById (Resource.Id.entry_icon);
|
ImageView iv = (ImageView)ev.FindViewById(Resource.Id.entry_icon);
|
||||||
bool isExpired = pw.Expires && pw.ExpiryTime < DateTime.Now;
|
bool isExpired = pw.Expires && pw.ExpiryTime < DateTime.Now;
|
||||||
if (isExpired) {
|
if (isExpired)
|
||||||
App.getDB ().drawFactory.assignDrawableTo (iv, Resources, App.getDB ().pm, PwIcon.Expired, PwUuid.Zero);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
App.getDB ().drawFactory.assignDrawableTo (iv, Resources, App.getDB ().pm, pw.IconId, pw.CustomIconUuid);
|
App.getDB().drawFactory.assignDrawableTo(iv, Resources, App.getDB().pm, PwIcon.Expired, PwUuid.Zero);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
App.getDB().drawFactory.assignDrawableTo(iv, Resources, App.getDB().pm, pw.IconId, pw.CustomIconUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
String title = pw.Strings.ReadSafe(PwDefs.TitleField);
|
String title = pw.Strings.ReadSafe(PwDefs.TitleField);
|
||||||
@ -97,40 +96,44 @@ namespace keepass2android.view
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void convertView(PwEntry pw, int pos) {
|
public void convertView(PwEntry pw, int pos)
|
||||||
|
{
|
||||||
populateView(this, pw, pos);
|
populateView(this, pw, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override void OnClick() {
|
public override void OnClick()
|
||||||
|
{
|
||||||
launchEntry();
|
launchEntry();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void launchEntry() {
|
private void launchEntry()
|
||||||
mAct.LaunchActivityForEntry(mPw,mPos);
|
{
|
||||||
|
mAct.LaunchActivityForEntry(mPw, mPos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnCreateMenu(IContextMenu menu, IContextMenuContextMenuInfo menuInfo) {
|
public override void OnCreateMenu(IContextMenu menu, IContextMenuContextMenuInfo menuInfo)
|
||||||
|
{
|
||||||
menu.Add(0, MENU_OPEN, 0, Resource.String.menu_open);
|
menu.Add(0, MENU_OPEN, 0, Resource.String.menu_open);
|
||||||
menu.Add(0, MENU_DELETE, 0, Resource.String.menu_delete);
|
menu.Add(0, MENU_DELETE, 0, Resource.String.menu_delete);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool OnContextItemSelected(IMenuItem item) {
|
public override bool OnContextItemSelected(IMenuItem item)
|
||||||
switch ( item.ItemId) {
|
{
|
||||||
|
switch (item.ItemId)
|
||||||
|
{
|
||||||
|
|
||||||
case MENU_OPEN:
|
case MENU_OPEN:
|
||||||
launchEntry();
|
launchEntry();
|
||||||
return true;
|
return true;
|
||||||
case MENU_DELETE:
|
case MENU_DELETE:
|
||||||
Handler handler = new Handler();
|
Handler handler = new Handler();
|
||||||
DeleteEntry task = new DeleteEntry(Context, App.getDB(), mPw, new GroupBaseActivity.RefreshTask(handler, mAct));
|
DeleteEntry task = new DeleteEntry(Context, App.getDB(), mPw, new GroupBaseActivity.RefreshTask(handler, mAct));
|
||||||
ProgressTask pt = new ProgressTask(mAct, task, Resource.String.saving_database);
|
task.start();
|
||||||
pt.run();
|
return true;
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,8 +108,7 @@ namespace keepass2android.view
|
|||||||
case MENU_DELETE:
|
case MENU_DELETE:
|
||||||
Handler handler = new Handler();
|
Handler handler = new Handler();
|
||||||
DeleteGroup task = new DeleteGroup(Context, App.getDB(), mPw, mAct, new GroupBaseActivity.AfterDeleteGroup(handler, mAct));
|
DeleteGroup task = new DeleteGroup(Context, App.getDB(), mPw, mAct, new GroupBaseActivity.AfterDeleteGroup(handler, mAct));
|
||||||
ProgressTask pt = new ProgressTask(mAct, task, Resource.String.saving_database);
|
task.start();
|
||||||
pt.run();
|
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user