diff --git a/src/keepass2android/ProgressTask.cs b/src/keepass2android/ProgressTask.cs
index fb457978..e6f20b1e 100644
--- a/src/keepass2android/ProgressTask.cs
+++ b/src/keepass2android/ProgressTask.cs
@@ -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;
diff --git a/src/keepass2android/Resources/Resource.designer.cs b/src/keepass2android/Resources/Resource.designer.cs
index 6c5f5d78..ec9a13af 100644
--- a/src/keepass2android/Resources/Resource.designer.cs
+++ b/src/keepass2android/Resources/Resource.designer.cs
@@ -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()
{
diff --git a/src/keepass2android/Resources/values-af/strings.xml b/src/keepass2android/Resources/values-af/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-af/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-ar/strings.xml b/src/keepass2android/Resources/values-ar/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-ar/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-el/strings.xml b/src/keepass2android/Resources/values-el/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-el/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-fi/strings.xml b/src/keepass2android/Resources/values-fi/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-fi/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-in/strings.xml b/src/keepass2android/Resources/values-in/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-in/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-iw/strings.xml b/src/keepass2android/Resources/values-iw/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-iw/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-ko/strings.xml b/src/keepass2android/Resources/values-ko/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-ko/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-no/strings.xml b/src/keepass2android/Resources/values-no/strings.xml
new file mode 100644
index 00000000..a3635000
--- /dev/null
+++ b/src/keepass2android/Resources/values-no/strings.xml
@@ -0,0 +1,159 @@
+
+
+
+ Tilbakemelding
+ Heimeside
+ Keepass2Android er ei android-utgåve av KeePass passordstyrar.
+ Godta
+ Legg til post
+ Legg til gruppe
+ Legg til gruppe
+ Algoritme
+ Algoritme
+ Programtidsavbrot
+ Tid før databasen blir låst når programmet ikkje er i bruk.
+ Program
+ Programinnstillingar
+ Parentesar
+ 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.
+ Byggjer søkjeindeksen …
+ Avbryt
+ Utklippstavla er tømt.
+ Tidsavbrot på utklippstavla
+ Tid før utklippstavla blir tømt etter at brukarnamnet eller passordet er kopiert.
+ Kopier brukarnamnet til utklippstavla
+ Kopier passordet til utklippstavla
+ Lagar databasenøkkelen …
+ Gjeldande gruppe
+ Gjeldande gruppe: Rot
+ Dekrypterer databasen …
+ Dekrypterer oppføringa
+ Standarddatabasen
+ Tal
+ 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.
+ Skriv filnamnet til databasen
+ Brukt
+ Skriv inn passordet og/eller nøkkelfil for å låsa opp databasen
+ Avbryt
+ Merknader
+ Stadfest passordet
+ Laga
+ Går ut
+ Nøkkelfil (valfri)
+ Endra
+ Passord
+ Lagra
+ Namn
+ Adresse
+ Brukaramn
+ Kan ikkje bruka ArcFour dataflytkryptering.
+ Keepass2Android kan ikkje bruka denne ressursen.
+ Klarte ikkje å laga gruppa.
+ Klarte ikkje å laga foreldrekatalogen.
+ Denne fila finst allereie.
+ Klarte ikkje å bestemma databaseinnstillingane.
+ Klarte ikkje å lasta lenkja.
+ Treng eit filnamn.
+ Klarte ikkje å laga fila
+ Ugyldig database.
+ Ugyldig stig.
+ Treng eit namn.
+ Treng eit passord eller ei nøkkelfil.
+ Telefonen gjekk tom for minne ved lesinga av databasen din. Databasen er kanskje for stor.
+ Du må velja minst éin passordlagingstype
+ Passorda samsvarer ikkje.
+ Omgangar må vera eit tal.
+ For mange omgangar. Bruker 2147483648.
+ Treng ein tittel.
+ Bruk eit positivt heiltal i lengdfeltet
+ Fann ikkje fila.
+ Filbehandlar
+ Lag passord
+ Gruppe
+ merknad
+ stadfest passordet
+ laga passord
+ Gruppenamn
+ nøkkelfil
+ lengd
+ passord
+ Passord
+ namn
+ adresse
+ brukarnamn
+ Installer frå marknaden
+ Installer frå nettet
+ Ugyldig passord eller nøkkelfil.
+ Ukjent databaseformat.
+ Lengd
+ Gruppelistestorleik
+ Tekststorleik i gruppelista
+ Lastar databasen …
+ Små bokstavar
+ Masker passord
+ Gøym passorda (standardval)
+ Om
+ Endra hovudnøkkelen
+ Kopier passordet
+ Kopier brukaren
+ Lag
+ Innstillingar
+ Databaseinnstillingar
+ Slett
+ Doner
+ Endra
+ Gøym passordet
+ Gå til heimesida
+ Lås databasen
+ Opna
+ Gje nytt namn
+ Søk
+ Gå til adressa
+ Aldri
+ Ingen oppføringar i databasen eller gruppa.
+ Ingen søkjeresultat
+ Ingen behandlar for denne adressa.
+ Opna nyleg brukt database (klikk for å opna)
+ Søk ikkje i kopipostane eller søppelbøtta
+ Søkjeresultatet inneheld ikkje oppføringar frå \'Backup\' eller søppelbøtta
+ Filnamnet til KeePass-databasen
+ Skriv databasepassordet
+ Lager ny database …
+ Arbeider …
+ Hugsar staden til nøkkelfilene
+ Lagra nøkkelfila
+ Ta vekk
+ Rot
+ Krypteringsomgangar
+ Fleire krypteringsomgangar gjev tilleggsvern mot rå makt-åtak, men kan òg gjera lasting og lagring mykje tregare.
+ omgangar
+ Lagrar databasen …
+ Mellomrom
+ Søk
+ Syn passordet
+ Sorter etter namn
+ DB-sortering
+ Spesial
+ Understreking
+ Kan ikkje bruka databaseutgåva.
+ Store bokstavar
+ SD-kortet ditt kan berre lesast. Det kan vera at du ikkje kan lagra endringar i databasen.
+ SD-kortet er ikkje montert i eininga di. Du kan verken henta eller laga databasen din.
+ Utgåve
+
+ - 30 sekund
+ - 1 minutt
+ - 5 minutt
+ - Aldri
+
+
+ - Liten
+ - Middels
+ - Stor
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-pt-rPT/strings.xml b/src/keepass2android/Resources/values-pt-rPT/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-pt-rPT/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-ro/strings.xml b/src/keepass2android/Resources/values-ro/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-ro/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-sl/strings.xml b/src/keepass2android/Resources/values-sl/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-sl/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-sr/strings.xml b/src/keepass2android/Resources/values-sr/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-sr/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-sv/strings.xml b/src/keepass2android/Resources/values-sv/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-sv/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-tr/strings.xml b/src/keepass2android/Resources/values-tr/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-tr/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values-vi/strings.xml b/src/keepass2android/Resources/values-vi/strings.xml
new file mode 100644
index 00000000..11bc61de
--- /dev/null
+++ b/src/keepass2android/Resources/values-vi/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ - 30 seconds
+ - 1 minute
+ - 5 minutes
+ - Never
+
+
+ - Small
+ - Medium
+ - Large
+
+
+ - Do not remember username and password
+ - Remember username only
+ - Remember username and password
+
+
diff --git a/src/keepass2android/Resources/values/strings.xml b/src/keepass2android/Resources/values/strings.xml
index dc9b6bbe..4f0a1411 100644
--- a/src/keepass2android/Resources/values/strings.xml
+++ b/src/keepass2android/Resources/values/strings.xml
@@ -128,6 +128,8 @@
Go to URL
Minus
Never
+ Yes
+ No
No entries in the database or group.
No search results
No handler for this url.
@@ -207,6 +209,9 @@
Rename
Failed to add file attachment.
Recycle Bin
+ Do you want to delete this entry permanently? Press No to recycle.
+ Do you want to delete this group permanently? Press No to recycle.
+ Delete permanently?
- 30 seconds
- 1 minute
diff --git a/src/keepass2android/database/edit/ActionOnFinish.cs b/src/keepass2android/database/edit/ActionOnFinish.cs
index 01254eaf..a0c4c95f 100644
--- a/src/keepass2android/database/edit/ActionOnFinish.cs
+++ b/src/keepass2android/database/edit/ActionOnFinish.cs
@@ -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;
diff --git a/src/keepass2android/database/edit/DeleteEntry.cs b/src/keepass2android/database/edit/DeleteEntry.cs
index 556936db..6a2c2adc 100644
--- a/src/keepass2android/database/edit/DeleteEntry.cs
+++ b/src/keepass2android/database/edit/DeleteEntry.cs
@@ -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();
-
- }
-
- }
-
}
}
diff --git a/src/keepass2android/database/edit/DeleteGroup.cs b/src/keepass2android/database/edit/DeleteGroup.cs
index 4dec327c..b8135319 100644
--- a/src/keepass2android/database/edit/DeleteGroup.cs
+++ b/src/keepass2android/database/edit/DeleteGroup.cs
@@ -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
diff --git a/src/keepass2android/database/edit/DeleteRunnable.cs b/src/keepass2android/database/edit/DeleteRunnable.cs
new file mode 100644
index 00000000..79f5d3b0
--- /dev/null
+++ b/src/keepass2android/database/edit/DeleteRunnable.cs
@@ -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((dlgSender, dlgEvt) =>
+ {
+ DeletePermanently = true;
+ ProgressTask pt = new ProgressTask(mCtx, this, Resource.String.saving_database);
+ pt.run();
+ }));
+
+ builder.SetNegativeButton(Resource.String.no, new EventHandler((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((dlgSender, dlgEvt) => {}));
+
+ Dialog dialog = builder.Create();
+ dialog.Show();
+
+
+ } else
+ {
+ ProgressTask pt = new ProgressTask(mCtx, this, Resource.String.saving_database);
+ pt.run();
+ }
+ }
+
+ }
+}
+
diff --git a/src/keepass2android/keepass2android.csproj b/src/keepass2android/keepass2android.csproj
index c5274a9d..4132c5df 100644
--- a/src/keepass2android/keepass2android.csproj
+++ b/src/keepass2android/keepass2android.csproj
@@ -157,6 +157,7 @@
+
@@ -201,6 +202,63 @@
False
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
diff --git a/src/keepass2android/views/PwEntryView.cs b/src/keepass2android/views/PwEntryView.cs
index 1409603e..b9381800 100644
--- a/src/keepass2android/views/PwEntryView.cs
+++ b/src/keepass2android/views/PwEntryView.cs
@@ -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 .
*/
-
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;
}
}
diff --git a/src/keepass2android/views/PwGroupView.cs b/src/keepass2android/views/PwGroupView.cs
index 98715af0..776b14de 100644
--- a/src/keepass2android/views/PwGroupView.cs
+++ b/src/keepass2android/views/PwGroupView.cs
@@ -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;