* Enabled RecycleBin for Groups and Entries
* Added (more or less empty) resource files for more languages
This commit is contained in:
		| @@ -35,7 +35,7 @@ namespace keepass2android | ||||
| 		private Handler mHandler; | ||||
| 		private RunnableOnFinish mTask; | ||||
| 		private ProgressDialog mPd; | ||||
| 		 | ||||
|  | ||||
| 		public ProgressTask(Context ctx, RunnableOnFinish task, int messageId) { | ||||
| 			mCtx = ctx; | ||||
| 			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 | ||||
| 			public const int AboutText = 2131034144; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e6 | ||||
| 			public const int AskOverwriteBinary = 2131034342; | ||||
| 			// aapt resource value: 0x7f0500ee | ||||
| 			public const int AskDeletePermanentlyEntry = 2131034350; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e9 | ||||
| 			public const int AskOverwriteBinary_no = 2131034345; | ||||
| 			// aapt resource value: 0x7f0500ef | ||||
| 			public const int AskDeletePermanentlyGroup = 2131034351; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e7 | ||||
| 			public const int AskOverwriteBinary_title = 2131034343; | ||||
| 			// aapt resource value: 0x7f0500f0 | ||||
| 			public const int AskDeletePermanently_title = 2131034352; | ||||
| 			 | ||||
| 			// 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 | ||||
| 			public const int AttachFailed = 2131034346; | ||||
| 			public const int AskOverwriteBinary_yes = 2131034346; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500ec | ||||
| 			public const int AttachFailed = 2131034348; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050017 | ||||
| 			public const int BinaryDirectory_default = 2131034135; | ||||
| @@ -1021,11 +1030,11 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050016 | ||||
| 			public const int BinaryDirectory_key = 2131034134; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d8 | ||||
| 			public const int BinaryDirectory_summary = 2131034328; | ||||
| 			// aapt resource value: 0x7f0500da | ||||
| 			public const int BinaryDirectory_summary = 2131034330; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d7 | ||||
| 			public const int BinaryDirectory_title = 2131034327; | ||||
| 			// aapt resource value: 0x7f0500d9 | ||||
| 			public const int BinaryDirectory_title = 2131034329; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050034 | ||||
| 			public const int ClearClipboard = 2131034164; | ||||
| @@ -1045,11 +1054,11 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050018 | ||||
| 			public const int QuickUnlockDefaultEnabled_key = 2131034136; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d3 | ||||
| 			public const int QuickUnlockDefaultEnabled_summary = 2131034323; | ||||
| 			// aapt resource value: 0x7f0500d5 | ||||
| 			public const int QuickUnlockDefaultEnabled_summary = 2131034325; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d2 | ||||
| 			public const int QuickUnlockDefaultEnabled_title = 2131034322; | ||||
| 			// aapt resource value: 0x7f0500d4 | ||||
| 			public const int QuickUnlockDefaultEnabled_title = 2131034324; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05001a | ||||
| 			public const int QuickUnlockLength_default = 2131034138; | ||||
| @@ -1057,50 +1066,50 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050019 | ||||
| 			public const int QuickUnlockLength_key = 2131034137; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d5 | ||||
| 			public const int QuickUnlockLength_summary = 2131034325; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d4 | ||||
| 			public const int QuickUnlockLength_title = 2131034324; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d0 | ||||
| 			public const int QuickUnlock_button = 2131034320; | ||||
| 			// aapt resource value: 0x7f0500d7 | ||||
| 			public const int QuickUnlockLength_summary = 2131034327; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d6 | ||||
| 			public const int QuickUnlock_fail = 2131034326; | ||||
| 			public const int QuickUnlockLength_title = 2131034326; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500cf | ||||
| 			public const int QuickUnlock_label = 2131034319; | ||||
| 			// aapt resource value: 0x7f0500d2 | ||||
| 			public const int QuickUnlock_button = 2131034322; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d8 | ||||
| 			public const int QuickUnlock_fail = 2131034328; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d1 | ||||
| 			public const int QuickUnlock_lockButton = 2131034321; | ||||
| 			public const int QuickUnlock_label = 2131034321; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500eb | ||||
| 			public const int RecycleBin = 2131034347; | ||||
| 			// aapt resource value: 0x7f0500d3 | ||||
| 			public const int QuickUnlock_lockButton = 2131034323; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500da | ||||
| 			public const int SaveAttachment_Failed = 2131034330; | ||||
| 			// aapt resource value: 0x7f0500ed | ||||
| 			public const int RecycleBin = 2131034349; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500d9 | ||||
| 			public const int SaveAttachment_doneMessage = 2131034329; | ||||
| 			// aapt resource value: 0x7f0500dc | ||||
| 			public const int SaveAttachment_Failed = 2131034332; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500db | ||||
| 			public const int SaveAttachment_doneMessage = 2131034331; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050014 | ||||
| 			public const int TanExpiresOnUse_key = 2131034132; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c3 | ||||
| 			public const int TanExpiresOnUse_summary = 2131034307; | ||||
| 			// aapt resource value: 0x7f0500c5 | ||||
| 			public const int TanExpiresOnUse_summary = 2131034309; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c2 | ||||
| 			public const int TanExpiresOnUse_title = 2131034306; | ||||
| 			// aapt resource value: 0x7f0500c4 | ||||
| 			public const int TanExpiresOnUse_title = 2131034308; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05001b | ||||
| 			public const int UseFileTransactions_key = 2131034139; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e5 | ||||
| 			public const int UseFileTransactions_summary = 2131034341; | ||||
| 			// aapt resource value: 0x7f0500e7 | ||||
| 			public const int UseFileTransactions_summary = 2131034343; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e4 | ||||
| 			public const int UseFileTransactions_title = 2131034340; | ||||
| 			// aapt resource value: 0x7f0500e6 | ||||
| 			public const int UseFileTransactions_title = 2131034342; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05001e | ||||
| 			public const int about_feedback = 2131034142; | ||||
| @@ -1111,14 +1120,14 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050022 | ||||
| 			public const int accept = 2131034146; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e0 | ||||
| 			public const int add_binary = 2131034336; | ||||
| 			// aapt resource value: 0x7f0500e2 | ||||
| 			public const int add_binary = 2131034338; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050023 | ||||
| 			public const int add_entry = 2131034147; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e1 | ||||
| 			public const int add_extra_string = 2131034337; | ||||
| 			// aapt resource value: 0x7f0500e3 | ||||
| 			public const int add_extra_string = 2131034339; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050024 | ||||
| 			public const int add_group = 2131034148; | ||||
| @@ -1171,8 +1180,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050033 | ||||
| 			public const int cancel = 2131034163; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c7 | ||||
| 			public const int caseSensitive = 2131034311; | ||||
| 			// aapt resource value: 0x7f0500c9 | ||||
| 			public const int caseSensitive = 2131034313; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050035 | ||||
| 			public const int clipboard_timeout = 2131034165; | ||||
| @@ -1195,8 +1204,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050039 | ||||
| 			public const int creating_db_key = 2131034169; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e3 | ||||
| 			public const int credentials_dialog_title = 2131034339; | ||||
| 			// aapt resource value: 0x7f0500e5 | ||||
| 			public const int credentials_dialog_title = 2131034341; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05003a | ||||
| 			public const int current_group = 2131034170; | ||||
| @@ -1207,8 +1216,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f05003c | ||||
| 			public const int database = 2131034172; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500e2 | ||||
| 			public const int database_loaded_quickunlock_enabled = 2131034338; | ||||
| 			// aapt resource value: 0x7f0500e4 | ||||
| 			public const int database_loaded_quickunlock_enabled = 2131034340; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05000c | ||||
| 			public const int db_key = 2131034124; | ||||
| @@ -1225,8 +1234,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050001 | ||||
| 			public const int default_file_path = 2131034113; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500af | ||||
| 			public const int default_username = 2131034287; | ||||
| 			// aapt resource value: 0x7f0500b1 | ||||
| 			public const int default_username = 2131034289; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050015 | ||||
| 			public const int default_username_key = 2131034133; | ||||
| @@ -1243,17 +1252,17 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050042 | ||||
| 			public const int ellipsis = 2131034178; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500ce | ||||
| 			public const int enable_quickunlock = 2131034318; | ||||
| 			// aapt resource value: 0x7f0500d0 | ||||
| 			public const int enable_quickunlock = 2131034320; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050043 | ||||
| 			public const int enter_filename = 2131034179; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500cd | ||||
| 			public const int enter_filename_details_create_import = 2131034317; | ||||
| 			// aapt resource value: 0x7f0500cf | ||||
| 			public const int enter_filename_details_create_import = 2131034319; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500cc | ||||
| 			public const int enter_filename_details_url = 2131034316; | ||||
| 			// aapt resource value: 0x7f0500ce | ||||
| 			public const int enter_filename_details_url = 2131034318; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050044 | ||||
| 			public const int entry_accessed = 2131034180; | ||||
| @@ -1339,8 +1348,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f05005f | ||||
| 			public const int error_invalid_db = 2131034207; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500db | ||||
| 			public const int error_invalid_expiry_date = 2131034331; | ||||
| 			// aapt resource value: 0x7f0500dd | ||||
| 			public const int error_invalid_expiry_date = 2131034333; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050060 | ||||
| 			public const int error_invalid_path = 2131034208; | ||||
| @@ -1366,8 +1375,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050067 | ||||
| 			public const int error_rounds_too_large = 2131034215; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500dc | ||||
| 			public const int error_string_key = 2131034332; | ||||
| 			// aapt resource value: 0x7f0500de | ||||
| 			public const int error_string_key = 2131034334; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050068 | ||||
| 			public const int error_title_required = 2131034216; | ||||
| @@ -1375,14 +1384,14 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050069 | ||||
| 			public const int error_wrong_length = 2131034217; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c5 | ||||
| 			public const int excludeExpiredEntries = 2131034309; | ||||
| 			// aapt resource value: 0x7f0500c7 | ||||
| 			public const int excludeExpiredEntries = 2131034311; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500dd | ||||
| 			public const int field_name = 2131034333; | ||||
| 			// aapt resource value: 0x7f0500df | ||||
| 			public const int field_name = 2131034335; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500de | ||||
| 			public const int field_value = 2131034334; | ||||
| 			// aapt resource value: 0x7f0500e0 | ||||
| 			public const int field_value = 2131034336; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05006b | ||||
| 			public const int file_browser = 2131034219; | ||||
| @@ -1462,8 +1471,8 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f05000e | ||||
| 			public const int keyfile_key = 2131034126; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c4 | ||||
| 			public const int kp2a_findUrl = 2131034308; | ||||
| 			// aapt resource value: 0x7f0500c6 | ||||
| 			public const int kp2a_findUrl = 2131034310; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050082 | ||||
| 			public const int length = 2131034242; | ||||
| @@ -1555,14 +1564,17 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f05009c | ||||
| 			public const int never = 2131034268; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05009d | ||||
| 			public const int no_keys = 2131034269; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f05009e | ||||
| 			public const int no_results = 2131034270; | ||||
| 			public const int no = 2131034270; | ||||
| 			 | ||||
| 			// 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 | ||||
| 			public const int oi_filemanager_market = 2131034118; | ||||
| @@ -1573,77 +1585,77 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f050010 | ||||
| 			public const int omitbackup_key = 2131034128; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a2 | ||||
| 			public const int omitbackup_summary = 2131034274; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a1 | ||||
| 			public const int omitbackup_title = 2131034273; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a0 | ||||
| 			public const int open_recent = 2131034272; | ||||
| 			// aapt resource value: 0x7f0500a4 | ||||
| 			public const int omitbackup_summary = 2131034276; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a3 | ||||
| 			public const int pass_filename = 2131034275; | ||||
| 			public const int omitbackup_title = 2131034275; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a4 | ||||
| 			public const int password_title = 2131034276; | ||||
| 			// aapt resource value: 0x7f0500a2 | ||||
| 			public const int open_recent = 2131034274; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a5 | ||||
| 			public const int progress_create = 2131034277; | ||||
| 			public const int pass_filename = 2131034277; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a6 | ||||
| 			public const int progress_title = 2131034278; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500df | ||||
| 			public const int protection = 2131034335; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c1 | ||||
| 			public const int regular_expression = 2131034305; | ||||
| 			public const int password_title = 2131034278; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500a7 | ||||
| 			public const int remember_keyfile_summary = 2131034279; | ||||
| 			public const int progress_create = 2131034279; | ||||
| 			 | ||||
| 			// 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 | ||||
| 			public const int remove_from_filelist = 2131034281; | ||||
| 			public const int remember_keyfile_summary = 2131034281; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500aa | ||||
| 			public const int rijndael = 2131034282; | ||||
| 			public const int remember_keyfile_title = 2131034282; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500ab | ||||
| 			public const int root = 2131034283; | ||||
| 			public const int remove_from_filelist = 2131034283; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500ac | ||||
| 			public const int rounds = 2131034284; | ||||
| 			public const int rijndael = 2131034284; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500ad | ||||
| 			public const int rounds_explaination = 2131034285; | ||||
| 			public const int root = 2131034285; | ||||
| 			 | ||||
| 			// 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 | ||||
| 			public const int rounds_key = 2131034125; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b0 | ||||
| 			public const int saving_database = 2131034288; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b7 | ||||
| 			public const int search_hint = 2131034295; | ||||
| 			// aapt resource value: 0x7f0500b2 | ||||
| 			public const int saving_database = 2131034290; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b9 | ||||
| 			public const int search_in = 2131034297; | ||||
| 			public const int search_hint = 2131034297; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b2 | ||||
| 			public const int search_label = 2131034290; | ||||
| 			// aapt resource value: 0x7f0500bb | ||||
| 			public const int search_in = 2131034299; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c6 | ||||
| 			public const int search_options = 2131034310; | ||||
| 			// aapt resource value: 0x7f0500b4 | ||||
| 			public const int search_label = 2131034292; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b8 | ||||
| 			public const int search_results = 2131034296; | ||||
| 			// aapt resource value: 0x7f0500c8 | ||||
| 			public const int search_options = 2131034312; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500ba | ||||
| 			public const int search_results = 2131034298; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f050029 | ||||
| 			public const int short_app_name = 2131034153; | ||||
| @@ -1651,59 +1663,62 @@ namespace keepass2android | ||||
| 			// aapt resource value: 0x7f05002b | ||||
| 			public const int short_app_name_nonet = 2131034155; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b3 | ||||
| 			public const int show_password = 2131034291; | ||||
| 			 | ||||
| 			// 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 | ||||
| 			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 | ||||
| 			public const int special = 2131034294; | ||||
| 			public const int sort_name = 2131034294; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c9 | ||||
| 			public const int start_create = 2131034313; | ||||
| 			// aapt resource value: 0x7f0500b3 | ||||
| 			public const int space = 2131034291; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500b8 | ||||
| 			public const int special = 2131034296; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500cb | ||||
| 			public const int start_create_import = 2131034315; | ||||
| 			public const int start_create = 2131034315; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c8 | ||||
| 			public const int start_open_file = 2131034312; | ||||
| 			// aapt resource value: 0x7f0500cd | ||||
| 			public const int start_create_import = 2131034317; | ||||
| 			 | ||||
| 			// 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 | ||||
| 			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 | ||||
| 			public const int unsupported_db_version = 2131034300; | ||||
| 			public const int twofish = 2131034300; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500bd | ||||
| 			public const int uppercase = 2131034301; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500c0 | ||||
| 			public const int version_label = 2131034304; | ||||
| 			public const int underline = 2131034301; | ||||
| 			 | ||||
| 			// aapt resource value: 0x7f0500be | ||||
| 			public const int warning_read_only = 2131034302; | ||||
| 			public const int unsupported_db_version = 2131034302; | ||||
| 			 | ||||
| 			// 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() | ||||
| 			{ | ||||
|   | ||||
							
								
								
									
										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="minus">Minus</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_results">No search results</string> | ||||
|   <string name="no_url_handler">No handler for this url.</string> | ||||
| @@ -207,6 +209,9 @@ | ||||
|   <string name="AskOverwriteBinary_no">Rename</string> | ||||
|   <string name="AttachFailed">Failed to add file attachment.</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"> | ||||
|     <item>30 seconds</item> | ||||
|     <item>1 minute</item> | ||||
|   | ||||
| @@ -40,6 +40,11 @@ namespace keepass2android | ||||
| 			this.actionToPerform = actionToPerform; | ||||
| 		} | ||||
|  | ||||
| 		public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, OnFinish finish) : base(finish) | ||||
| 		{ | ||||
| 			this.actionToPerform = actionToPerform; | ||||
| 		} | ||||
|  | ||||
| 		public ActionOnFinish(ActionToPerformOnFinsh actionToPerform, Handler handler) : base(handler) | ||||
| 		{ | ||||
| 			this.actionToPerform = actionToPerform; | ||||
|   | ||||
| @@ -30,12 +30,10 @@ using KeePassLib; | ||||
|  | ||||
| namespace keepass2android | ||||
| { | ||||
| 	public class DeleteEntry : RunnableOnFinish { | ||||
| 	public class DeleteEntry : DeleteRunnable { | ||||
| 		 | ||||
| 		private Database mDb; | ||||
| 		private PwEntry mEntry; | ||||
| 		private Context mCtx; | ||||
| 		 | ||||
|  | ||||
| 		public DeleteEntry(Context ctx, Database db, PwEntry entry, OnFinish finish):base(finish) { | ||||
| 			mCtx = ctx; | ||||
| 			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() { | ||||
|  | ||||
| 			PwDatabase pd = mDb.pm; | ||||
|  | ||||
| 			PwGroup pgRecycleBin = pd.RootGroup.FindGroup(pd.RecycleBinUuid, true); | ||||
| 			bool bShiftPressed = false; | ||||
|  | ||||
| 			bool bUpdateGroupList = false; | ||||
| 			DateTime dtNow = DateTime.Now; | ||||
| @@ -58,38 +71,51 @@ namespace keepass2android | ||||
| 			{ | ||||
| 				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); | ||||
| 					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 | ||||
| 				{ | ||||
| 					DeleteGroup.EnsureRecycleBin(ref pgRecycleBin, pd, ref bUpdateGroupList, mCtx); | ||||
| 					EnsureRecycleBin(ref pgRecycleBin, ref bUpdateGroupList); | ||||
| 					 | ||||
| 					pgRecycleBin.AddEntry(pe, true, true); | ||||
| 					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 | ||||
| 			SaveDB save = new SaveDB(mCtx, mDb, mFinish, false); | ||||
| 			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 | ||||
| { | ||||
| 	 | ||||
| 	public class DeleteGroup : RunnableOnFinish { | ||||
| 	public class DeleteGroup : DeleteRunnable { | ||||
| 		 | ||||
| 		private Database mDb; | ||||
| 		private PwGroup mGroup; | ||||
| 		private GroupBaseActivity mAct; | ||||
| 		private bool mDontSave; | ||||
| 		private Context mCtx; | ||||
| 		 | ||||
| 		protected bool mDontSave; | ||||
|  | ||||
| 		public DeleteGroup(Context ctx, Database db, PwGroup group, GroupBaseActivity act, OnFinish finish):base(finish) { | ||||
| 			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) { | ||||
| 			setMembers(ctx, db, group, act, dontSave); | ||||
| 		} | ||||
| 		 | ||||
| 		 | ||||
|  | ||||
| 		public DeleteGroup(Context ctx, Database db, PwGroup group, OnFinish finish, bool dontSave):base(finish) { | ||||
| 			setMembers(ctx, db, group, null, dontSave); | ||||
| 		} | ||||
| 		 | ||||
| 		private void setMembers(Context ctx, Database db, PwGroup group, GroupBaseActivity act, bool dontSave) { | ||||
| 			mCtx = ctx; | ||||
| 			mDb = db; | ||||
| 			base.setMembers(ctx, db); | ||||
|  | ||||
| 			mGroup = group; | ||||
| 			mAct = act; | ||||
| 			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() { | ||||
| @@ -73,43 +83,39 @@ namespace keepass2android | ||||
| 			 | ||||
| 			PwDatabase pd = mDb.pm; | ||||
| 			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); | ||||
| 			 | ||||
| 			if(bPermanent) | ||||
| 			if ((DeletePermanently) || (!CanRecycle)) | ||||
| 			{ | ||||
| 				pg.DeleteAllObjects(pd); | ||||
| 				 | ||||
| 				PwDeletedObject pdo = new PwDeletedObject(pg.Uuid, DateTime.Now); | ||||
| 				pd.DeletedObjects.Add(pdo); | ||||
| 				mFinish = new AfterDeletePermanently(mFinish, mDb, mGroup); | ||||
| 			} | ||||
| 			else // Recycle | ||||
| 			{ | ||||
| 				bool bDummy = false; | ||||
| 				EnsureRecycleBin(ref pgRecycleBin, pd, ref bDummy, mCtx); | ||||
| 				EnsureRecycleBin(ref pgRecycleBin, ref bDummy); | ||||
| 				 | ||||
| 				pgRecycleBin.AddGroup(pg, true, true); | ||||
| 				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 | ||||
| @@ -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; | ||||
|  | ||||
| 			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.mGroup = group; | ||||
| 			} | ||||
| @@ -160,7 +140,7 @@ namespace keepass2android | ||||
| 					// Remove from group global | ||||
| 					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); | ||||
| 					 | ||||
| 					// 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="services\QuickUnlockForegroundService.cs" /> | ||||
|     <Compile Include="AssemblyInfo.cs" /> | ||||
|     <Compile Include="database\edit\DeleteRunnable.cs" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <None Include="Resources\AboutResources.txt" /> | ||||
| @@ -201,6 +202,63 @@ | ||||
|     <None Include="todos.cs"> | ||||
|       <Visible>False</Visible> | ||||
|     </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> | ||||
|     <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 | ||||
|   along with Keepass2Android.  If not, see <http://www.gnu.org/licenses/>. | ||||
|   */ | ||||
|  | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| @@ -32,34 +31,34 @@ using Android.Text.Style; | ||||
|  | ||||
| namespace keepass2android.view | ||||
| { | ||||
| 	 | ||||
| 	public class PwEntryView : ClickView { | ||||
| 	public class PwEntryView : ClickView | ||||
| 	{ | ||||
| 		 | ||||
| 		protected GroupBaseActivity mAct; | ||||
| 		protected PwEntry mPw; | ||||
| 		private TextView mTv; | ||||
| 		private int mPos; | ||||
| 		 | ||||
| 		protected const int MENU_OPEN = Menu.First; | ||||
| 		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); | ||||
|  | ||||
| 		} | ||||
|  | ||||
| 		public PwEntryView (IntPtr javaReference, JniHandleOwnership transfer) | ||||
| 		public PwEntryView(IntPtr javaReference, JniHandleOwnership 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; | ||||
| 			 | ||||
| 			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); | ||||
| 			 | ||||
| 			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; | ||||
| 			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; | ||||
| 			if (isExpired) { | ||||
| 				App.getDB ().drawFactory.assignDrawableTo (iv, Resources, App.getDB ().pm, PwIcon.Expired, PwUuid.Zero); | ||||
| 			} | ||||
| 			else | ||||
| 			if (isExpired) | ||||
| 			{ | ||||
| 				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); | ||||
| @@ -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); | ||||
| 		} | ||||
| 		 | ||||
|  | ||||
| 		public override void OnClick() { | ||||
| 		public override void OnClick() | ||||
| 		{ | ||||
| 			launchEntry(); | ||||
| 		} | ||||
| 		 | ||||
| 		private void launchEntry() { | ||||
| 			mAct.LaunchActivityForEntry(mPw,mPos); | ||||
| 		private void launchEntry() | ||||
| 		{ | ||||
| 			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_DELETE, 0, Resource.String.menu_delete); | ||||
| 		} | ||||
| 		 | ||||
| 		public override bool OnContextItemSelected(IMenuItem item) { | ||||
| 			switch ( item.ItemId) { | ||||
| 		public override bool OnContextItemSelected(IMenuItem item) | ||||
| 		{ | ||||
| 			switch (item.ItemId) | ||||
| 			{ | ||||
| 				 | ||||
| 			case MENU_OPEN: | ||||
| 				launchEntry(); | ||||
| 				return true; | ||||
| 			case MENU_DELETE: | ||||
| 				Handler handler = new Handler(); | ||||
| 				DeleteEntry task = new DeleteEntry(Context, App.getDB(), mPw, new GroupBaseActivity.RefreshTask(handler, mAct)); | ||||
| 				ProgressTask pt = new ProgressTask(mAct, task, Resource.String.saving_database); | ||||
| 				pt.run(); | ||||
| 				return true; | ||||
| 				case MENU_OPEN: | ||||
| 					launchEntry(); | ||||
| 					return true; | ||||
| 				case MENU_DELETE: | ||||
| 					Handler handler = new Handler(); | ||||
| 					DeleteEntry task = new DeleteEntry(Context, App.getDB(), mPw, new GroupBaseActivity.RefreshTask(handler, mAct)); | ||||
| 					task.start(); | ||||
| 					return true; | ||||
| 			 | ||||
| 			default: | ||||
| 				return false; | ||||
| 				default: | ||||
| 					return false; | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
|   | ||||
| @@ -108,8 +108,7 @@ namespace keepass2android.view | ||||
| 			case MENU_DELETE: | ||||
| 				Handler handler = new Handler(); | ||||
| 				DeleteGroup task = new DeleteGroup(Context, App.getDB(), mPw, mAct, new GroupBaseActivity.AfterDeleteGroup(handler, mAct)); | ||||
| 				ProgressTask pt = new ProgressTask(mAct, task, Resource.String.saving_database); | ||||
| 				pt.run(); | ||||
| 				task.start(); | ||||
| 				return true; | ||||
| 			default: | ||||
| 				return false; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 PhilippC
					PhilippC