From 3eff8bfd90605b865325e209c2472b3865e18a0b Mon Sep 17 00:00:00 2001 From: Jareth Lomson Date: Sun, 25 May 2014 20:09:06 +0200 Subject: [PATCH] Add context menu to Search Result --- src/keepass2android/GroupBaseActivity.cs | 11 + src/keepass2android/KeePass.cs | 1 + .../Resources/Resource.designer.cs | 1269 +++++++++-------- .../Resources/values/strings.xml | 1 + src/keepass2android/app/AppTask.cs | 226 +++ src/keepass2android/keepass2android.csproj | 29 +- src/keepass2android/search/SearchResults.cs | 20 + src/keepass2android/views/PwEntryView.cs | 18 +- 8 files changed, 938 insertions(+), 637 deletions(-) diff --git a/src/keepass2android/GroupBaseActivity.cs b/src/keepass2android/GroupBaseActivity.cs index 8c74c73f..dab5b88d 100644 --- a/src/keepass2android/GroupBaseActivity.cs +++ b/src/keepass2android/GroupBaseActivity.cs @@ -121,6 +121,17 @@ namespace keepass2android internal AppTask AppTask; protected GroupView GroupView; + private String strCachedGroupUuid = null; + public String UuidGroup { + get { + if (strCachedGroupUuid == null) { + strCachedGroupUuid = MemUtil.ByteArrayToHexString (Group.Uuid.UuidBytes); + } + return strCachedGroupUuid; + } + } + + protected override void OnResume() { base.OnResume(); diff --git a/src/keepass2android/KeePass.cs b/src/keepass2android/KeePass.cs index f33cd6ec..47728871 100644 --- a/src/keepass2android/KeePass.cs +++ b/src/keepass2android/KeePass.cs @@ -84,6 +84,7 @@ namespace keepass2android public const Result ExitClose = Result.FirstUser + 7; public const Result ExitFileStorageSelectionOk = Result.FirstUser + 8; public const Result ResultOkPasswordGenerator = Result.FirstUser + 9; + public const Result ExitMoveEntry = Result.FirstUser + 10; AppTask _appTask; private ActivityDesign _design; diff --git a/src/keepass2android/Resources/Resource.designer.cs b/src/keepass2android/Resources/Resource.designer.cs index c8c2a562..24298634 100644 --- a/src/keepass2android/Resources/Resource.designer.cs +++ b/src/keepass2android/Resources/Resource.designer.cs @@ -2371,62 +2371,62 @@ namespace keepass2android // aapt resource value: 0x7f06006f public const int AcceptAllServerCertificates_key = 2131099759; - // aapt resource value: 0x7f06017d - public const int AcceptAllServerCertificates_summary = 2131100029; + // aapt resource value: 0x7f06017e + public const int AcceptAllServerCertificates_summary = 2131100030; - // aapt resource value: 0x7f06017c - public const int AcceptAllServerCertificates_title = 2131100028; + // aapt resource value: 0x7f06017d + public const int AcceptAllServerCertificates_title = 2131100029; + + // aapt resource value: 0x7f060166 + public const int AddUrlToEntryDialog_text = 2131100006; // aapt resource value: 0x7f060165 - public const int AddUrlToEntryDialog_text = 2131100005; - - // aapt resource value: 0x7f060164 - public const int AddUrlToEntryDialog_title = 2131100004; - - // aapt resource value: 0x7f06019e - public const int AddingEntry = 2131100062; + public const int AddUrlToEntryDialog_title = 2131100005; // aapt resource value: 0x7f06019f - public const int AddingGroup = 2131100063; + public const int AddingEntry = 2131100063; + + // aapt resource value: 0x7f0601a0 + public const int AddingGroup = 2131100064; // aapt resource value: 0x7f060000 public const int ApplicationName = 2131099648; - // aapt resource value: 0x7f060194 - public const int AskDeletePermanentlyEntry = 2131100052; - // aapt resource value: 0x7f060195 - public const int AskDeletePermanentlyGroup = 2131100053; + public const int AskDeletePermanentlyEntry = 2131100053; // aapt resource value: 0x7f060196 - public const int AskDeletePermanently_title = 2131100054; - - // aapt resource value: 0x7f060199 - public const int AskDiscardChanges = 2131100057; - - // aapt resource value: 0x7f06019a - public const int AskDiscardChanges_title = 2131100058; - - // aapt resource value: 0x7f06018e - public const int AskOverwriteBinary = 2131100046; - - // aapt resource value: 0x7f060191 - public const int AskOverwriteBinary_no = 2131100049; - - // aapt resource value: 0x7f06018f - public const int AskOverwriteBinary_title = 2131100047; - - // aapt resource value: 0x7f060190 - public const int AskOverwriteBinary_yes = 2131100048; - - // aapt resource value: 0x7f060198 - public const int AskReloadFile = 2131100056; + public const int AskDeletePermanentlyGroup = 2131100054; // aapt resource value: 0x7f060197 - public const int AskReloadFile_title = 2131100055; + public const int AskDeletePermanently_title = 2131100055; + + // aapt resource value: 0x7f06019a + public const int AskDiscardChanges = 2131100058; + + // aapt resource value: 0x7f06019b + public const int AskDiscardChanges_title = 2131100059; + + // aapt resource value: 0x7f06018f + public const int AskOverwriteBinary = 2131100047; // aapt resource value: 0x7f060192 - public const int AttachFailed = 2131100050; + public const int AskOverwriteBinary_no = 2131100050; + + // aapt resource value: 0x7f060190 + public const int AskOverwriteBinary_title = 2131100048; + + // aapt resource value: 0x7f060191 + public const int AskOverwriteBinary_yes = 2131100049; + + // aapt resource value: 0x7f060199 + public const int AskReloadFile = 2131100057; + + // aapt resource value: 0x7f060198 + public const int AskReloadFile_title = 2131100056; + + // aapt resource value: 0x7f060193 + public const int AttachFailed = 2131100051; // aapt resource value: 0x7f06005d public const int BinaryDirectory_default = 2131099741; @@ -2434,116 +2434,116 @@ namespace keepass2android // aapt resource value: 0x7f06005c public const int BinaryDirectory_key = 2131099740; + // aapt resource value: 0x7f06015e + public const int BinaryDirectory_summary = 2131099998; + // aapt resource value: 0x7f06015d - public const int BinaryDirectory_summary = 2131099997; + public const int BinaryDirectory_title = 2131099997; - // aapt resource value: 0x7f06015c - public const int BinaryDirectory_title = 2131099996; + // aapt resource value: 0x7f0601c3 + public const int CannotMoveGroupHere = 2131100099; - // aapt resource value: 0x7f0601c2 - public const int CannotMoveGroupHere = 2131100098; + // aapt resource value: 0x7f060210 + public const int CertificateFailure = 2131100176; // aapt resource value: 0x7f06020f - public const int CertificateFailure = 2131100175; + public const int CertificateWarning = 2131100175; - // aapt resource value: 0x7f06020e - public const int CertificateWarning = 2131100174; + // aapt resource value: 0x7f060222 + public const int ChangeLog = 2131100194; // aapt resource value: 0x7f060221 - public const int ChangeLog = 2131100193; - - // aapt resource value: 0x7f060220 - public const int ChangeLog_0_7 = 2131100192; - - // aapt resource value: 0x7f06021e - public const int ChangeLog_0_8 = 2131100190; - - // aapt resource value: 0x7f06021d - public const int ChangeLog_0_8_1 = 2131100189; - - // aapt resource value: 0x7f06021c - public const int ChangeLog_0_8_2 = 2131100188; - - // aapt resource value: 0x7f06021b - public const int ChangeLog_0_8_3 = 2131100187; - - // aapt resource value: 0x7f06021a - public const int ChangeLog_0_8_4 = 2131100186; - - // aapt resource value: 0x7f060219 - public const int ChangeLog_0_8_5 = 2131100185; - - // aapt resource value: 0x7f060218 - public const int ChangeLog_0_8_6 = 2131100184; - - // aapt resource value: 0x7f060217 - public const int ChangeLog_0_9 = 2131100183; - - // aapt resource value: 0x7f060216 - public const int ChangeLog_0_9_1 = 2131100182; - - // aapt resource value: 0x7f060215 - public const int ChangeLog_0_9_2 = 2131100181; - - // aapt resource value: 0x7f060214 - public const int ChangeLog_0_9_3 = 2131100180; - - // aapt resource value: 0x7f060213 - public const int ChangeLog_0_9_3_r5 = 2131100179; + public const int ChangeLog_0_7 = 2131100193; // aapt resource value: 0x7f06021f - public const int ChangeLog_keptDonate = 2131100191; + public const int ChangeLog_0_8 = 2131100191; - // aapt resource value: 0x7f060212 - public const int ChangeLog_title = 2131100178; + // aapt resource value: 0x7f06021e + public const int ChangeLog_0_8_1 = 2131100190; + + // aapt resource value: 0x7f06021d + public const int ChangeLog_0_8_2 = 2131100189; + + // aapt resource value: 0x7f06021c + public const int ChangeLog_0_8_3 = 2131100188; + + // aapt resource value: 0x7f06021b + public const int ChangeLog_0_8_4 = 2131100187; + + // aapt resource value: 0x7f06021a + public const int ChangeLog_0_8_5 = 2131100186; + + // aapt resource value: 0x7f060219 + public const int ChangeLog_0_8_6 = 2131100185; + + // aapt resource value: 0x7f060218 + public const int ChangeLog_0_9 = 2131100184; + + // aapt resource value: 0x7f060217 + public const int ChangeLog_0_9_1 = 2131100183; + + // aapt resource value: 0x7f060216 + public const int ChangeLog_0_9_2 = 2131100182; + + // aapt resource value: 0x7f060215 + public const int ChangeLog_0_9_3 = 2131100181; + + // aapt resource value: 0x7f060214 + public const int ChangeLog_0_9_3_r5 = 2131100180; + + // aapt resource value: 0x7f060220 + public const int ChangeLog_keptDonate = 2131100192; + + // aapt resource value: 0x7f060213 + public const int ChangeLog_title = 2131100179; // aapt resource value: 0x7f060070 public const int CheckForFileChangesOnSave_key = 2131099760; + // aapt resource value: 0x7f060182 + public const int CheckForFileChangesOnSave_summary = 2131100034; + // aapt resource value: 0x7f060181 - public const int CheckForFileChangesOnSave_summary = 2131100033; + public const int CheckForFileChangesOnSave_title = 2131100033; - // aapt resource value: 0x7f060180 - public const int CheckForFileChangesOnSave_title = 2131100032; + // aapt resource value: 0x7f0601b4 + public const int CheckingDatabaseForChanges = 2131100084; - // aapt resource value: 0x7f0601b3 - public const int CheckingDatabaseForChanges = 2131100083; - - // aapt resource value: 0x7f0601a7 - public const int CheckingTargetFileForChanges = 2131100071; + // aapt resource value: 0x7f0601a8 + public const int CheckingTargetFileForChanges = 2131100072; // aapt resource value: 0x7f0600a2 public const int ClearClipboard = 2131099810; - // aapt resource value: 0x7f06017f - public const int ClearOfflineCache_question = 2131100031; + // aapt resource value: 0x7f060180 + public const int ClearOfflineCache_question = 2131100032; - // aapt resource value: 0x7f06017e - public const int ClearOfflineCache_title = 2131100030; + // aapt resource value: 0x7f06017f + public const int ClearOfflineCache_title = 2131100031; // aapt resource value: 0x7f060075 public const int CopyToClipboardNotification_key = 2131099765; + // aapt resource value: 0x7f0601b6 + public const int CouldNotLoadFromRemote = 2131100086; + // aapt resource value: 0x7f0601b5 - public const int CouldNotLoadFromRemote = 2131100085; - - // aapt resource value: 0x7f0601b4 - public const int CouldNotSaveToRemote = 2131100084; - - // aapt resource value: 0x7f0601f7 - public const int CouldntLoadChalAuxFile = 2131100151; + public const int CouldNotSaveToRemote = 2131100085; // aapt resource value: 0x7f0601f8 - public const int CouldntLoadChalAuxFile_Hint = 2131100152; + public const int CouldntLoadChalAuxFile = 2131100152; - // aapt resource value: 0x7f0601eb - public const int CouldntLoadOtpAuxFile = 2131100139; + // aapt resource value: 0x7f0601f9 + public const int CouldntLoadChalAuxFile_Hint = 2131100153; // aapt resource value: 0x7f0601ec - public const int CouldntLoadOtpAuxFile_Hint = 2131100140; + public const int CouldntLoadOtpAuxFile = 2131100140; - // aapt resource value: 0x7f0601f2 - public const int CouldntParseOtpSecret = 2131100146; + // aapt resource value: 0x7f0601ed + public const int CouldntLoadOtpAuxFile_Hint = 2131100141; + + // aapt resource value: 0x7f0601f3 + public const int CouldntParseOtpSecret = 2131100147; // aapt resource value: 0x7f060081 public const int CreditsText = 2131099777; @@ -2551,26 +2551,26 @@ namespace keepass2android // aapt resource value: 0x7f060082 public const int CreditsTextSFTP = 2131099778; - // aapt resource value: 0x7f0601a5 - public const int DecodingDatabase = 2131100069; - - // aapt resource value: 0x7f0601a0 - public const int DeletingEntry = 2131100064; + // aapt resource value: 0x7f0601a6 + public const int DecodingDatabase = 2131100070; // aapt resource value: 0x7f0601a1 - public const int DeletingGroup = 2131100065; + public const int DeletingEntry = 2131100065; - // aapt resource value: 0x7f0601ae - public const int DownloadingRemoteFile = 2131100078; + // aapt resource value: 0x7f0601a2 + public const int DeletingGroup = 2131100066; - // aapt resource value: 0x7f0601c0 - public const int ErrorOcurred = 2131100096; + // aapt resource value: 0x7f0601af + public const int DownloadingRemoteFile = 2131100079; - // aapt resource value: 0x7f0601f9 - public const int ErrorUpdatingChalAuxFile = 2131100153; + // aapt resource value: 0x7f0601c1 + public const int ErrorOcurred = 2131100097; - // aapt resource value: 0x7f0601f4 - public const int ErrorUpdatingOtpAuxFile = 2131100148; + // aapt resource value: 0x7f0601fa + public const int ErrorUpdatingChalAuxFile = 2131100154; + + // aapt resource value: 0x7f0601f5 + public const int ErrorUpdatingOtpAuxFile = 2131100149; // aapt resource value: 0x7f06009d public const int FileHandling_prefs = 2131099805; @@ -2581,8 +2581,8 @@ namespace keepass2android // aapt resource value: 0x7f0600d5 public const int FileNotFound = 2131099861; - // aapt resource value: 0x7f0601b1 - public const int FilesInSync = 2131100081; + // aapt resource value: 0x7f0601b2 + public const int FilesInSync = 2131100082; // aapt resource value: 0x7f0600e6 public const int InvalidPassword = 2131099878; @@ -2590,26 +2590,26 @@ namespace keepass2android // aapt resource value: 0x7f060069 public const int LastInfoVersionCode_key = 2131099753; - // aapt resource value: 0x7f0601b8 - public const int LoadedFromRemoteInSync = 2131100088; + // aapt resource value: 0x7f0601b9 + public const int LoadedFromRemoteInSync = 2131100089; // aapt resource value: 0x7f06006c public const int LockWhenNavigateBack_key = 2131099756; - // aapt resource value: 0x7f060176 - public const int LockWhenNavigateBack_summary = 2131100022; + // aapt resource value: 0x7f060177 + public const int LockWhenNavigateBack_summary = 2131100023; - // aapt resource value: 0x7f060175 - public const int LockWhenNavigateBack_title = 2131100021; + // aapt resource value: 0x7f060176 + public const int LockWhenNavigateBack_title = 2131100022; // aapt resource value: 0x7f06006b public const int LockWhenScreenOff_key = 2131099755; - // aapt resource value: 0x7f060174 - public const int LockWhenScreenOff_summary = 2131100020; + // aapt resource value: 0x7f060175 + public const int LockWhenScreenOff_summary = 2131100021; - // aapt resource value: 0x7f060173 - public const int LockWhenScreenOff_title = 2131100019; + // aapt resource value: 0x7f060174 + public const int LockWhenScreenOff_title = 2131100020; // aapt resource value: 0x7f060072 public const int MarketURL = 2131099762; @@ -2617,77 +2617,77 @@ namespace keepass2android // aapt resource value: 0x7f0600f0 public const int MaskedPassword = 2131099888; - // aapt resource value: 0x7f0601a9 - public const int MessageSyncQuestion = 2131100073; + // aapt resource value: 0x7f0601aa + public const int MessageSyncQuestion = 2131100074; // aapt resource value: 0x7f06006d public const int NoDonateOption_key = 2131099757; + // aapt resource value: 0x7f06017a + public const int NoDonateOption_question = 2131100026; + // aapt resource value: 0x7f060179 - public const int NoDonateOption_question = 2131100025; + public const int NoDonateOption_summary = 2131100025; // aapt resource value: 0x7f060178 - public const int NoDonateOption_summary = 2131100024; + public const int NoDonateOption_title = 2131100024; - // aapt resource value: 0x7f060177 - public const int NoDonateOption_title = 2131100023; + // aapt resource value: 0x7f0601ad + public const int NoOverwrite = 2131100077; - // aapt resource value: 0x7f0601ac - public const int NoOverwrite = 2131100076; - - // aapt resource value: 0x7f0601b7 - public const int NotifyOpenFromLocalDueToConflict = 2131100087; + // aapt resource value: 0x7f0601b8 + public const int NotifyOpenFromLocalDueToConflict = 2131100088; // aapt resource value: 0x7f060077 public const int OpenKp2aKeyboardAutomatically_key = 2131099767; + // aapt resource value: 0x7f060188 + public const int OpenKp2aKeyboardAutomatically_summary = 2131100040; + // aapt resource value: 0x7f060187 - public const int OpenKp2aKeyboardAutomatically_summary = 2131100039; + public const int OpenKp2aKeyboardAutomatically_title = 2131100039; - // aapt resource value: 0x7f060186 - public const int OpenKp2aKeyboardAutomatically_title = 2131100038; + // aapt resource value: 0x7f0601f4 + public const int OtpKeyError = 2131100148; - // aapt resource value: 0x7f0601f3 - public const int OtpKeyError = 2131100147; - - // aapt resource value: 0x7f0601a6 - public const int ParsingDatabase = 2131100070; + // aapt resource value: 0x7f0601a7 + public const int ParsingDatabase = 2131100071; // aapt resource value: 0x7f06007d public const int PreloadDatabaseEnabled_key = 2131099773; - // aapt resource value: 0x7f06018d - public const int PreloadDatabaseEnabled_summary = 2131100045; + // aapt resource value: 0x7f06018e + public const int PreloadDatabaseEnabled_summary = 2131100046; - // aapt resource value: 0x7f06018c - public const int PreloadDatabaseEnabled_title = 2131100044; + // aapt resource value: 0x7f06018d + public const int PreloadDatabaseEnabled_title = 2131100045; // aapt resource value: 0x7f060063 public const int QuickUnlockDefaultEnabled_key = 2131099747; - // aapt resource value: 0x7f060154 - public const int QuickUnlockDefaultEnabled_summary = 2131099988; + // aapt resource value: 0x7f060155 + public const int QuickUnlockDefaultEnabled_summary = 2131099989; - // aapt resource value: 0x7f060153 - public const int QuickUnlockDefaultEnabled_title = 2131099987; + // aapt resource value: 0x7f060154 + public const int QuickUnlockDefaultEnabled_title = 2131099988; // aapt resource value: 0x7f060067 public const int QuickUnlockIconHidden16_key = 2131099751; - // aapt resource value: 0x7f060158 - public const int QuickUnlockIconHidden16_summary = 2131099992; + // aapt resource value: 0x7f060159 + public const int QuickUnlockIconHidden16_summary = 2131099993; - // aapt resource value: 0x7f060157 - public const int QuickUnlockIconHidden16_title = 2131099991; + // aapt resource value: 0x7f060158 + public const int QuickUnlockIconHidden16_title = 2131099992; // aapt resource value: 0x7f060066 public const int QuickUnlockIconHidden_key = 2131099750; - // aapt resource value: 0x7f060156 - public const int QuickUnlockIconHidden_summary = 2131099990; + // aapt resource value: 0x7f060157 + public const int QuickUnlockIconHidden_summary = 2131099991; - // aapt resource value: 0x7f060155 - public const int QuickUnlockIconHidden_title = 2131099989; + // aapt resource value: 0x7f060156 + public const int QuickUnlockIconHidden_title = 2131099990; // aapt resource value: 0x7f060065 public const int QuickUnlockLength_default = 2131099749; @@ -2695,23 +2695,23 @@ namespace keepass2android // aapt resource value: 0x7f060064 public const int QuickUnlockLength_key = 2131099748; - // aapt resource value: 0x7f06015a - public const int QuickUnlockLength_summary = 2131099994; - - // aapt resource value: 0x7f060159 - public const int QuickUnlockLength_title = 2131099993; - - // aapt resource value: 0x7f060151 - public const int QuickUnlock_button = 2131099985; - // aapt resource value: 0x7f06015b - public const int QuickUnlock_fail = 2131099995; + public const int QuickUnlockLength_summary = 2131099995; - // aapt resource value: 0x7f060150 - public const int QuickUnlock_label = 2131099984; + // aapt resource value: 0x7f06015a + public const int QuickUnlockLength_title = 2131099994; // aapt resource value: 0x7f060152 - public const int QuickUnlock_lockButton = 2131099986; + public const int QuickUnlock_button = 2131099986; + + // aapt resource value: 0x7f06015c + public const int QuickUnlock_fail = 2131099996; + + // aapt resource value: 0x7f060151 + public const int QuickUnlock_label = 2131099985; + + // aapt resource value: 0x7f060153 + public const int QuickUnlock_lockButton = 2131099987; // aapt resource value: 0x7f06009c public const int QuickUnlock_prefs = 2131099804; @@ -2719,83 +2719,83 @@ namespace keepass2android // aapt resource value: 0x7f060061 public const int QuickUnlock_prefs_key = 2131099745; - // aapt resource value: 0x7f060193 - public const int RecycleBin = 2131100051; + // aapt resource value: 0x7f060194 + public const int RecycleBin = 2131100052; // aapt resource value: 0x7f060059 public const int RememberRecentFiles_key = 2131099737; + // aapt resource value: 0x7f060145 + public const int RememberRecentFiles_summary = 2131099973; + // aapt resource value: 0x7f060144 - public const int RememberRecentFiles_summary = 2131099972; - - // aapt resource value: 0x7f060143 - public const int RememberRecentFiles_title = 2131099971; - - // aapt resource value: 0x7f0601ba - public const int RemoteDatabaseUnchanged = 2131100090; - - // aapt resource value: 0x7f0601bc - public const int ResolvedCacheConflictByUsingLocalOtpAux = 2131100092; + public const int RememberRecentFiles_title = 2131099972; // aapt resource value: 0x7f0601bb - public const int ResolvedCacheConflictByUsingRemoteOtpAux = 2131100091; + public const int RemoteDatabaseUnchanged = 2131100091; - // aapt resource value: 0x7f0601b0 - public const int RestoringRemoteFile = 2131100080; + // aapt resource value: 0x7f0601bd + public const int ResolvedCacheConflictByUsingLocalOtpAux = 2131100093; - // aapt resource value: 0x7f060208 - public const int SCOPE_CURRENT_ENTRY_explanation = 2131100168; + // aapt resource value: 0x7f0601bc + public const int ResolvedCacheConflictByUsingRemoteOtpAux = 2131100092; - // aapt resource value: 0x7f060207 - public const int SCOPE_CURRENT_ENTRY_title = 2131100167; - - // aapt resource value: 0x7f060206 - public const int SCOPE_DATABASE_ACTIONS_explanation = 2131100166; - - // aapt resource value: 0x7f060205 - public const int SCOPE_DATABASE_ACTIONS_title = 2131100165; - - // aapt resource value: 0x7f06020a - public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_explanation = 2131100170; + // aapt resource value: 0x7f0601b1 + public const int RestoringRemoteFile = 2131100081; // aapt resource value: 0x7f060209 - public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_title = 2131100169; + public const int SCOPE_CURRENT_ENTRY_explanation = 2131100169; - // aapt resource value: 0x7f06020c - public const int SCOPE_QUERY_CREDENTIALS_explanation = 2131100172; + // aapt resource value: 0x7f060208 + public const int SCOPE_CURRENT_ENTRY_title = 2131100168; + + // aapt resource value: 0x7f060207 + public const int SCOPE_DATABASE_ACTIONS_explanation = 2131100167; + + // aapt resource value: 0x7f060206 + public const int SCOPE_DATABASE_ACTIONS_title = 2131100166; // aapt resource value: 0x7f06020b - public const int SCOPE_QUERY_CREDENTIALS_title = 2131100171; + public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_explanation = 2131100171; - // aapt resource value: 0x7f060161 - public const int SaveAttachmentDialog_open = 2131100001; + // aapt resource value: 0x7f06020a + public const int SCOPE_QUERY_CREDENTIALS_FOR_OWN_PACKAGE_title = 2131100170; - // aapt resource value: 0x7f060160 - public const int SaveAttachmentDialog_save = 2131100000; + // aapt resource value: 0x7f06020d + public const int SCOPE_QUERY_CREDENTIALS_explanation = 2131100173; - // aapt resource value: 0x7f06015f - public const int SaveAttachmentDialog_text = 2131099999; - - // aapt resource value: 0x7f06015e - public const int SaveAttachmentDialog_title = 2131099998; - - // aapt resource value: 0x7f060163 - public const int SaveAttachment_Failed = 2131100003; + // aapt resource value: 0x7f06020c + public const int SCOPE_QUERY_CREDENTIALS_title = 2131100172; // aapt resource value: 0x7f060162 - public const int SaveAttachment_doneMessage = 2131100002; + public const int SaveAttachmentDialog_open = 2131100002; - // aapt resource value: 0x7f0601f5 - public const int SavingOtpAuxFile = 2131100149; + // aapt resource value: 0x7f060161 + public const int SaveAttachmentDialog_save = 2131100001; - // aapt resource value: 0x7f0601a2 - public const int SettingPassword = 2131100066; + // aapt resource value: 0x7f060160 + public const int SaveAttachmentDialog_text = 2131100000; + + // aapt resource value: 0x7f06015f + public const int SaveAttachmentDialog_title = 2131099999; + + // aapt resource value: 0x7f060164 + public const int SaveAttachment_Failed = 2131100004; + + // aapt resource value: 0x7f060163 + public const int SaveAttachment_doneMessage = 2131100003; + + // aapt resource value: 0x7f0601f6 + public const int SavingOtpAuxFile = 2131100150; + + // aapt resource value: 0x7f0601a3 + public const int SettingPassword = 2131100067; + + // aapt resource value: 0x7f060184 + public const int ShowCopyToClipboardNotification_summary = 2131100036; // aapt resource value: 0x7f060183 - public const int ShowCopyToClipboardNotification_summary = 2131100035; - - // aapt resource value: 0x7f060182 - public const int ShowCopyToClipboardNotification_title = 2131100034; + public const int ShowCopyToClipboardNotification_title = 2131100035; // aapt resource value: 0x7f060057 public const int ShowGroupnameInSearchResult_key = 2131099735; @@ -2806,74 +2806,74 @@ namespace keepass2android // aapt resource value: 0x7f060097 public const int ShowGroupnameInSearchResult_title = 2131099799; - // aapt resource value: 0x7f060185 - public const int ShowKp2aKeyboardNotification_summary = 2131100037; + // aapt resource value: 0x7f060186 + public const int ShowKp2aKeyboardNotification_summary = 2131100038; - // aapt resource value: 0x7f060184 - public const int ShowKp2aKeyboardNotification_title = 2131100036; + // aapt resource value: 0x7f060185 + public const int ShowKp2aKeyboardNotification_title = 2131100037; // aapt resource value: 0x7f06007c public const int ShowUnlockedNotification_key = 2131099772; - // aapt resource value: 0x7f06018b - public const int ShowUnlockedNotification_summary = 2131100043; + // aapt resource value: 0x7f06018c + public const int ShowUnlockedNotification_summary = 2131100044; - // aapt resource value: 0x7f06018a - public const int ShowUnlockedNotification_title = 2131100042; + // aapt resource value: 0x7f06018b + public const int ShowUnlockedNotification_title = 2131100043; // aapt resource value: 0x7f060058 public const int ShowUsernameInList_key = 2131099736; - // aapt resource value: 0x7f060142 - public const int ShowUsernameInList_summary = 2131099970; + // aapt resource value: 0x7f060143 + public const int ShowUsernameInList_summary = 2131099971; - // aapt resource value: 0x7f060141 - public const int ShowUsernameInList_title = 2131099969; + // aapt resource value: 0x7f060142 + public const int ShowUsernameInList_title = 2131099970; // aapt resource value: 0x7f060073 public const int SuggestionsURL = 2131099763; - // aapt resource value: 0x7f0601b2 - public const int SynchronizedDatabaseSuccessfully = 2131100082; + // aapt resource value: 0x7f0601b3 + public const int SynchronizedDatabaseSuccessfully = 2131100083; - // aapt resource value: 0x7f0601ad - public const int SynchronizingCachedDatabase = 2131100077; + // aapt resource value: 0x7f0601ae + public const int SynchronizingCachedDatabase = 2131100078; - // aapt resource value: 0x7f0601aa - public const int SynchronizingDatabase = 2131100074; + // aapt resource value: 0x7f0601ab + public const int SynchronizingDatabase = 2131100075; - // aapt resource value: 0x7f0601bd - public const int SynchronizingOtpAuxFile = 2131100093; + // aapt resource value: 0x7f0601be + public const int SynchronizingOtpAuxFile = 2131100094; // aapt resource value: 0x7f060056 public const int TanExpiresOnUse_key = 2131099734; + // aapt resource value: 0x7f060141 + public const int TanExpiresOnUse_summary = 2131099969; + // aapt resource value: 0x7f060140 - public const int TanExpiresOnUse_summary = 2131099968; + public const int TanExpiresOnUse_title = 2131099968; - // aapt resource value: 0x7f06013f - public const int TanExpiresOnUse_title = 2131099967; + // aapt resource value: 0x7f0601a9 + public const int TitleSyncQuestion = 2131100073; - // aapt resource value: 0x7f0601a8 - public const int TitleSyncQuestion = 2131100072; - - // aapt resource value: 0x7f0601a4 - public const int TransformingKey = 2131100068; + // aapt resource value: 0x7f0601a5 + public const int TransformingKey = 2131100069; // aapt resource value: 0x7f060074 public const int TranslationURL = 2131099764; - // aapt resource value: 0x7f0601a3 - public const int UndoingChanges = 2131100067; + // aapt resource value: 0x7f0601a4 + public const int UndoingChanges = 2131100068; - // aapt resource value: 0x7f0601b9 - public const int UpdatedCachedFileOnLoad = 2131100089; + // aapt resource value: 0x7f0601ba + public const int UpdatedCachedFileOnLoad = 2131100090; - // aapt resource value: 0x7f0601b6 - public const int UpdatedRemoteFileOnLoad = 2131100086; + // aapt resource value: 0x7f0601b7 + public const int UpdatedRemoteFileOnLoad = 2131100087; - // aapt resource value: 0x7f0601af - public const int UploadingFile = 2131100079; + // aapt resource value: 0x7f0601b0 + public const int UploadingFile = 2131100080; // aapt resource value: 0x7f060068 public const int UsageCount_key = 2131099752; @@ -2881,11 +2881,11 @@ namespace keepass2android // aapt resource value: 0x7f06006a public const int UseFileTransactions_key = 2131099754; - // aapt resource value: 0x7f060172 - public const int UseFileTransactions_summary = 2131100018; + // aapt resource value: 0x7f060173 + public const int UseFileTransactions_summary = 2131100019; - // aapt resource value: 0x7f060171 - public const int UseFileTransactions_title = 2131100017; + // aapt resource value: 0x7f060172 + public const int UseFileTransactions_title = 2131100018; // aapt resource value: 0x7f060076 public const int UseKp2aKeyboard_key = 2131099766; @@ -2893,17 +2893,17 @@ namespace keepass2android // aapt resource value: 0x7f06006e public const int UseOfflineCache_key = 2131099758; + // aapt resource value: 0x7f06017c + public const int UseOfflineCache_summary = 2131100028; + // aapt resource value: 0x7f06017b - public const int UseOfflineCache_summary = 2131100027; + public const int UseOfflineCache_title = 2131100027; - // aapt resource value: 0x7f06017a - public const int UseOfflineCache_title = 2131100026; + // aapt resource value: 0x7f0601ac + public const int YesSynchronize = 2131100076; - // aapt resource value: 0x7f0601ab - public const int YesSynchronize = 2131100075; - - // aapt resource value: 0x7f0601ea - public const int YubiChallengeNotInstalled = 2131100138; + // aapt resource value: 0x7f0601eb + public const int YubiChallengeNotInstalled = 2131100139; // aapt resource value: 0x7f06007e public const int about_feedback = 2131099774; @@ -2917,14 +2917,14 @@ namespace keepass2android // aapt resource value: 0x7f060083 public const int accept = 2131099779; - // aapt resource value: 0x7f06016b - public const int add_binary = 2131100011; + // aapt resource value: 0x7f06016c + public const int add_binary = 2131100012; // aapt resource value: 0x7f060085 public const int add_entry = 2131099781; - // aapt resource value: 0x7f06016c - public const int add_extra_string = 2131100012; + // aapt resource value: 0x7f06016d + public const int add_extra_string = 2131100013; // aapt resource value: 0x7f060087 public const int add_group = 2131099783; @@ -3148,32 +3148,32 @@ namespace keepass2android // aapt resource value: 0x7f060096 public const int application_settings = 2131099798; - // aapt resource value: 0x7f060137 - public const int author = 2131099959; + // aapt resource value: 0x7f060138 + public const int author = 2131099960; // aapt resource value: 0x7f0600a7 public const int available_through_keyboard = 2131099815; - // aapt resource value: 0x7f0601f6 - public const int bad_resp = 2131100150; + // aapt resource value: 0x7f0601f7 + public const int bad_resp = 2131100151; // aapt resource value: 0x7f0600a0 public const int brackets = 2131099808; - // aapt resource value: 0x7f060226 - public const int browser_intall_text = 2131100198; - // aapt resource value: 0x7f060227 - public const int building_search_idx = 2131100199; + public const int browser_intall_text = 2131100199; - // aapt resource value: 0x7f0601dd - public const int button_change_location = 2131100125; + // aapt resource value: 0x7f060228 + public const int building_search_idx = 2131100200; + + // aapt resource value: 0x7f0601de + public const int button_change_location = 2131100126; // aapt resource value: 0x7f0600a1 public const int cancel = 2131099809; - // aapt resource value: 0x7f060148 - public const int caseSensitive = 2131099976; + // aapt resource value: 0x7f060149 + public const int caseSensitive = 2131099977; // aapt resource value: 0x7f0600a3 public const int clipboard_timeout = 2131099811; @@ -3187,8 +3187,8 @@ namespace keepass2android // aapt resource value: 0x7f0600a4 public const int clipboard_timeout_summary = 2131099812; - // aapt resource value: 0x7f06013d - public const int contributors = 2131099965; + // aapt resource value: 0x7f06013e + public const int contributors = 2131099966; // aapt resource value: 0x7f0600a6 public const int copy_password = 2131099814; @@ -3196,23 +3196,23 @@ namespace keepass2android // aapt resource value: 0x7f0600a5 public const int copy_username = 2131099813; - // aapt resource value: 0x7f060114 - public const int create_database = 2131099924; + // aapt resource value: 0x7f060115 + public const int create_database = 2131099925; // aapt resource value: 0x7f0600aa public const int creating_db_key = 2131099818; - // aapt resource value: 0x7f060170 - public const int credentials_dialog_title = 2131100016; - - // aapt resource value: 0x7f06013a - public const int credit_android_filechooser = 2131099962; + // aapt resource value: 0x7f060171 + public const int credentials_dialog_title = 2131100017; // aapt resource value: 0x7f06013b - public const int credit_keyboard = 2131099963; + public const int credit_android_filechooser = 2131099963; - // aapt resource value: 0x7f060139 - public const int credit_plugin1 = 2131099961; + // aapt resource value: 0x7f06013c + public const int credit_keyboard = 2131099964; + + // aapt resource value: 0x7f06013a + public const int credit_plugin1 = 2131099962; // aapt resource value: 0x7f0600ab public const int current_group = 2131099819; @@ -3223,20 +3223,20 @@ namespace keepass2android // aapt resource value: 0x7f0600ad public const int database = 2131099821; - // aapt resource value: 0x7f0601be - public const int database_file = 2131100094; - - // aapt resource value: 0x7f06016e - public const int database_loaded_quickunlock_enabled = 2131100014; + // aapt resource value: 0x7f0601bf + public const int database_file = 2131100095; // aapt resource value: 0x7f06016f - public const int database_loaded_unlocked = 2131100015; + public const int database_loaded_quickunlock_enabled = 2131100015; - // aapt resource value: 0x7f0601da - public const int database_location = 2131100122; + // aapt resource value: 0x7f060170 + public const int database_loaded_unlocked = 2131100016; - // aapt resource value: 0x7f06011e - public const int database_name = 2131099934; + // aapt resource value: 0x7f0601db + public const int database_location = 2131100123; + + // aapt resource value: 0x7f06011f + public const int database_name = 2131099935; // aapt resource value: 0x7f06005b public const int database_name_key = 2131099739; @@ -3244,26 +3244,26 @@ namespace keepass2android // aapt resource value: 0x7f06004d public const int db_key = 2131099725; - // aapt resource value: 0x7f060228 - public const int decrypting_db = 2131100200; - // aapt resource value: 0x7f060229 - public const int decrypting_entry = 2131100201; + public const int decrypting_db = 2131100201; // aapt resource value: 0x7f06022a - public const int default_checkbox = 2131100202; + public const int decrypting_entry = 2131100202; + + // aapt resource value: 0x7f06022b + public const int default_checkbox = 2131100203; // aapt resource value: 0x7f06003f public const int default_file_path = 2131099711; - // aapt resource value: 0x7f06011f - public const int default_username = 2131099935; + // aapt resource value: 0x7f060120 + public const int default_username = 2131099936; // aapt resource value: 0x7f06005a public const int default_username_key = 2131099738; - // aapt resource value: 0x7f06016d - public const int delete_extra_string = 2131100013; + // aapt resource value: 0x7f06016e + public const int delete_extra_string = 2131100014; // aapt resource value: 0x7f060084 public const int deny = 2131099780; @@ -3274,8 +3274,8 @@ namespace keepass2android // aapt resource value: 0x7f060054 public const int design_key = 2131099732; - // aapt resource value: 0x7f060222 - public const int design_title = 2131100194; + // aapt resource value: 0x7f060223 + public const int design_title = 2131100195; // aapt resource value: 0x7f0600ae public const int digits = 2131099822; @@ -3289,14 +3289,14 @@ namespace keepass2android // aapt resource value: 0x7f060060 public const int display_prefs_key = 2131099744; - // aapt resource value: 0x7f0601c4 - public const int donate_bday_question = 2131100100; - // aapt resource value: 0x7f0601c5 - public const int donate_missedbday_question = 2131100101; + public const int donate_bday_question = 2131100101; - // aapt resource value: 0x7f0601c3 - public const int donate_question = 2131100099; + // aapt resource value: 0x7f0601c6 + public const int donate_missedbday_question = 2131100102; + + // aapt resource value: 0x7f0601c4 + public const int donate_question = 2131100100; // aapt resource value: 0x7f060040 public const int donate_url = 2131099712; @@ -3307,14 +3307,14 @@ namespace keepass2android // aapt resource value: 0x7f0600b0 public const int ellipsis = 2131099824; + // aapt resource value: 0x7f060225 + public const int enable_plugin_question = 2131100197; + // aapt resource value: 0x7f060224 - public const int enable_plugin_question = 2131100196; + public const int enable_plugin_title = 2131100196; - // aapt resource value: 0x7f060223 - public const int enable_plugin_title = 2131100195; - - // aapt resource value: 0x7f06014f - public const int enable_quickunlock = 2131099983; + // aapt resource value: 0x7f060150 + public const int enable_quickunlock = 2131099984; // aapt resource value: 0x7f0600b1 public const int english_ime_settings = 2131099825; @@ -3322,20 +3322,20 @@ namespace keepass2android // aapt resource value: 0x7f0600b2 public const int enter_filename = 2131099826; + // aapt resource value: 0x7f06014f + public const int enter_filename_details_create_import = 2131099983; + // aapt resource value: 0x7f06014e - public const int enter_filename_details_create_import = 2131099982; + public const int enter_filename_details_url = 2131099982; - // aapt resource value: 0x7f06014d - public const int enter_filename_details_url = 2131099981; - - // aapt resource value: 0x7f0601cb - public const int enter_sftp_login_title = 2131100107; + // aapt resource value: 0x7f0601cc + public const int enter_sftp_login_title = 2131100108; // aapt resource value: 0x7f0600b3 public const int entry_accessed = 2131099827; - // aapt resource value: 0x7f06022b - public const int entry_and_or = 2131100203; + // aapt resource value: 0x7f06022c + public const int entry_and_or = 2131100204; // aapt resource value: 0x7f0600c3 public const int entry_binaries = 2131099843; @@ -3385,11 +3385,11 @@ namespace keepass2android // aapt resource value: 0x7f0600c1 public const int entry_user_name = 2131099841; - // aapt resource value: 0x7f0601e5 - public const int error_adding_keyfile = 2131100133; + // aapt resource value: 0x7f0601e6 + public const int error_adding_keyfile = 2131100134; - // aapt resource value: 0x7f06022c - public const int error_arc4 = 2131100204; + // aapt resource value: 0x7f06022d + public const int error_arc4 = 2131100205; // aapt resource value: 0x7f0600c4 public const int error_can_not_handle_uri = 2131099844; @@ -3418,8 +3418,8 @@ namespace keepass2android // aapt resource value: 0x7f0600cc public const int error_invalid_db = 2131099852; - // aapt resource value: 0x7f060166 - public const int error_invalid_expiry_date = 2131100006; + // aapt resource value: 0x7f060167 + public const int error_invalid_expiry_date = 2131100007; // aapt resource value: 0x7f0600cd public const int error_invalid_path = 2131099853; @@ -3430,8 +3430,8 @@ namespace keepass2android // aapt resource value: 0x7f0600cf public const int error_nopass = 2131099855; - // aapt resource value: 0x7f06022d - public const int error_out_of_memory = 2131100205; + // aapt resource value: 0x7f06022e + public const int error_out_of_memory = 2131100206; // aapt resource value: 0x7f0600d0 public const int error_pass_gen_type = 2131099856; @@ -3442,11 +3442,11 @@ namespace keepass2android // aapt resource value: 0x7f0600d2 public const int error_rounds_not_number = 2131099858; - // aapt resource value: 0x7f06022e - public const int error_rounds_too_large = 2131100206; + // aapt resource value: 0x7f06022f + public const int error_rounds_too_large = 2131100207; - // aapt resource value: 0x7f060167 - public const int error_string_key = 2131100007; + // aapt resource value: 0x7f060168 + public const int error_string_key = 2131100008; // aapt resource value: 0x7f0600d3 public const int error_title_required = 2131099859; @@ -3454,92 +3454,92 @@ namespace keepass2android // aapt resource value: 0x7f0600d4 public const int error_wrong_length = 2131099860; - // aapt resource value: 0x7f060146 - public const int excludeExpiredEntries = 2131099974; + // aapt resource value: 0x7f060147 + public const int excludeExpiredEntries = 2131099975; - // aapt resource value: 0x7f060122 - public const int export_database_successful = 2131099938; + // aapt resource value: 0x7f060123 + public const int export_database_successful = 2131099939; - // aapt resource value: 0x7f060210 - public const int export_fileformats_title = 2131100176; + // aapt resource value: 0x7f060211 + public const int export_fileformats_title = 2131100177; // aapt resource value: 0x7f06009f public const int export_prefs = 2131099807; - // aapt resource value: 0x7f060121 - public const int exporting_database = 2131099937; - - // aapt resource value: 0x7f060168 - public const int field_name = 2131100008; + // aapt resource value: 0x7f060122 + public const int exporting_database = 2131099938; // aapt resource value: 0x7f060169 - public const int field_value = 2131100009; + public const int field_name = 2131100009; + + // aapt resource value: 0x7f06016a + public const int field_value = 2131100010; // aapt resource value: 0x7f0600d6 public const int file_browser = 2131099862; - // aapt resource value: 0x7f0601d9 - public const int filestorage_setup_title = 2131100121; - - // aapt resource value: 0x7f0601d5 - public const int filestoragehelp_dropboxKP2A = 2131100117; - - // aapt resource value: 0x7f0601ce - public const int filestoragename_androidget = 2131100110; - - // aapt resource value: 0x7f0601cf - public const int filestoragename_androidsend = 2131100111; - - // aapt resource value: 0x7f0601d3 - public const int filestoragename_dropbox = 2131100115; - - // aapt resource value: 0x7f0601d4 - public const int filestoragename_dropboxKP2A = 2131100116; - - // aapt resource value: 0x7f0601cd - public const int filestoragename_file = 2131100109; - - // aapt resource value: 0x7f0601d0 - public const int filestoragename_ftp = 2131100112; + // aapt resource value: 0x7f0601da + public const int filestorage_setup_title = 2131100122; // aapt resource value: 0x7f0601d6 - public const int filestoragename_gdrive = 2131100118; + public const int filestoragehelp_dropboxKP2A = 2131100118; + + // aapt resource value: 0x7f0601cf + public const int filestoragename_androidget = 2131100111; + + // aapt resource value: 0x7f0601d0 + public const int filestoragename_androidsend = 2131100112; + + // aapt resource value: 0x7f0601d4 + public const int filestoragename_dropbox = 2131100116; + + // aapt resource value: 0x7f0601d5 + public const int filestoragename_dropboxKP2A = 2131100117; + + // aapt resource value: 0x7f0601ce + public const int filestoragename_file = 2131100110; // aapt resource value: 0x7f0601d1 - public const int filestoragename_http = 2131100113; - - // aapt resource value: 0x7f0601d2 - public const int filestoragename_https = 2131100114; - - // aapt resource value: 0x7f0601d8 - public const int filestoragename_sftp = 2131100120; + public const int filestoragename_ftp = 2131100113; // aapt resource value: 0x7f0601d7 - public const int filestoragename_skydrive = 2131100119; + public const int filestoragename_gdrive = 2131100119; + + // aapt resource value: 0x7f0601d2 + public const int filestoragename_http = 2131100114; + + // aapt resource value: 0x7f0601d3 + public const int filestoragename_https = 2131100115; + + // aapt resource value: 0x7f0601d9 + public const int filestoragename_sftp = 2131100121; + + // aapt resource value: 0x7f0601d8 + public const int filestoragename_skydrive = 2131100120; // aapt resource value: 0x7f060043 public const int further_author_names = 2131099715; - // aapt resource value: 0x7f060138 - public const int further_authors = 2131099960; + // aapt resource value: 0x7f060139 + public const int further_authors = 2131099961; // aapt resource value: 0x7f0600d7 public const int generate_password = 2131099863; - // aapt resource value: 0x7f06020d - public const int get_regular_version = 2131100173; + // aapt resource value: 0x7f06020e + public const int get_regular_version = 2131100174; // aapt resource value: 0x7f0600d8 public const int group = 2131099864; - // aapt resource value: 0x7f0601db - public const int help_database_location = 2131100123; + // aapt resource value: 0x7f0601dc + public const int help_database_location = 2131100124; - // aapt resource value: 0x7f0601e2 - public const int help_key_file = 2131100130; + // aapt resource value: 0x7f0601e3 + public const int help_key_file = 2131100131; - // aapt resource value: 0x7f0601df - public const int help_master_password = 2131100127; + // aapt resource value: 0x7f0601e0 + public const int help_master_password = 2131100128; // aapt resource value: 0x7f0600d9 public const int hint_comment = 2131099865; @@ -3547,8 +3547,8 @@ namespace keepass2android // aapt resource value: 0x7f0600da public const int hint_conf_pass = 2131099866; - // aapt resource value: 0x7f0601dc - public const int hint_database_location = 2131100124; + // aapt resource value: 0x7f0601dd + public const int hint_database_location = 2131100125; // aapt resource value: 0x7f0600db public const int hint_generated_password = 2131099867; @@ -3556,8 +3556,8 @@ namespace keepass2android // aapt resource value: 0x7f0600dc public const int hint_group_name = 2131099868; - // aapt resource value: 0x7f0601e3 - public const int hint_key_file = 2131100131; + // aapt resource value: 0x7f0601e4 + public const int hint_key_file = 2131100132; // aapt resource value: 0x7f0600dd public const int hint_keyfile = 2131099869; @@ -3568,8 +3568,8 @@ namespace keepass2android // aapt resource value: 0x7f0600e0 public const int hint_login_pass = 2131099872; - // aapt resource value: 0x7f0601e0 - public const int hint_master_password = 2131100128; + // aapt resource value: 0x7f0601e1 + public const int hint_master_password = 2131100129; // aapt resource value: 0x7f0600e3 public const int hint_override_url = 2131099875; @@ -3577,11 +3577,11 @@ namespace keepass2android // aapt resource value: 0x7f0600df public const int hint_pass = 2131099871; - // aapt resource value: 0x7f0601c8 - public const int hint_sftp_host = 2131100104; - // aapt resource value: 0x7f0601c9 - public const int hint_sftp_port = 2131100105; + public const int hint_sftp_host = 2131100105; + + // aapt resource value: 0x7f0601ca + public const int hint_sftp_port = 2131100106; // aapt resource value: 0x7f0600e4 public const int hint_tags = 2131099876; @@ -3604,20 +3604,20 @@ namespace keepass2android // aapt resource value: 0x7f06003e public const int icon_info = 2131099710; - // aapt resource value: 0x7f0601e7 - public const int init_otp = 2131100135; + // aapt resource value: 0x7f0601e8 + public const int init_otp = 2131100136; - // aapt resource value: 0x7f0601ca - public const int initial_directory = 2131100106; + // aapt resource value: 0x7f0601cb + public const int initial_directory = 2131100107; - // aapt resource value: 0x7f06012e - public const int insert_element_here = 2131099950; - - // aapt resource value: 0x7f06022f - public const int install_from_market = 2131100207; + // aapt resource value: 0x7f06012f + public const int insert_element_here = 2131099951; // aapt resource value: 0x7f060230 - public const int install_from_website = 2131100208; + public const int install_from_market = 2131100208; + + // aapt resource value: 0x7f060231 + public const int install_from_website = 2131100209; // aapt resource value: 0x7f0600e7 public const int invalid_algorithm = 2131099879; @@ -3628,8 +3628,8 @@ namespace keepass2android // aapt resource value: 0x7f060044 public const int issues = 2131099716; - // aapt resource value: 0x7f0601e1 - public const int key_file = 2131100129; + // aapt resource value: 0x7f0601e2 + public const int key_file = 2131100130; // aapt resource value: 0x7f06009e public const int keyboard_prefs = 2131099806; @@ -3646,20 +3646,20 @@ namespace keepass2android // aapt resource value: 0x7f060092 public const int kill_app_label = 2131099794; - // aapt resource value: 0x7f060211 - public const int killed_by_os = 2131100177; + // aapt resource value: 0x7f060212 + public const int killed_by_os = 2131100178; - // aapt resource value: 0x7f060145 - public const int kp2a_findUrl = 2131099973; - - // aapt resource value: 0x7f060188 - public const int kp2a_switch_rooted = 2131100040; + // aapt resource value: 0x7f060146 + public const int kp2a_findUrl = 2131099974; // aapt resource value: 0x7f060189 - public const int kp2a_switch_rooted_summary = 2131100041; + public const int kp2a_switch_rooted = 2131100041; - // aapt resource value: 0x7f0601e6 - public const int language_selection_title = 2131100134; + // aapt resource value: 0x7f06018a + public const int kp2a_switch_rooted_summary = 2131100042; + + // aapt resource value: 0x7f0601e7 + public const int language_selection_title = 2131100135; // aapt resource value: 0x7f0600eb public const int length = 2131099883; @@ -3679,8 +3679,8 @@ namespace keepass2android // aapt resource value: 0x7f0600ec public const int list_size_title = 2131099884; - // aapt resource value: 0x7f0601fa - public const int loading = 2131100154; + // aapt resource value: 0x7f0601fb + public const int loading = 2131100155; // aapt resource value: 0x7f0600ee public const int loading_database = 2131099886; @@ -3697,11 +3697,11 @@ namespace keepass2android // aapt resource value: 0x7f0600f1 public const int maskpass_title = 2131099889; - // aapt resource value: 0x7f060112 - public const int master_key_type = 2131099922; + // aapt resource value: 0x7f060113 + public const int master_key_type = 2131099923; - // aapt resource value: 0x7f0601de - public const int master_password = 2131100126; + // aapt resource value: 0x7f0601df + public const int master_password = 2131100127; // aapt resource value: 0x7f06004f public const int master_pwd_key = 2131099727; @@ -3712,8 +3712,8 @@ namespace keepass2android // aapt resource value: 0x7f0600f8 public const int menu_app_settings = 2131099896; - // aapt resource value: 0x7f060105 - public const int menu_change_db = 2131099909; + // aapt resource value: 0x7f060106 + public const int menu_change_db = 2131099910; // aapt resource value: 0x7f0600f4 public const int menu_change_key = 2131099892; @@ -3733,59 +3733,62 @@ namespace keepass2android // aapt resource value: 0x7f0600fa public const int menu_delete = 2131099898; - // aapt resource value: 0x7f0600fc - public const int menu_donate = 2131099900; - // aapt resource value: 0x7f0600fd - public const int menu_edit = 2131099901; + public const int menu_donate = 2131099901; // aapt resource value: 0x7f0600fe - public const int menu_hide_password = 2131099902; - - // aapt resource value: 0x7f060231 - public const int menu_homepage = 2131100209; + public const int menu_edit = 2131099902; // aapt resource value: 0x7f0600ff - public const int menu_lock = 2131099903; + public const int menu_hide_password = 2131099903; + + // aapt resource value: 0x7f060232 + public const int menu_homepage = 2131100210; + + // aapt resource value: 0x7f060100 + public const int menu_lock = 2131099904; // aapt resource value: 0x7f0600fb public const int menu_move = 2131099899; - // aapt resource value: 0x7f060100 - public const int menu_open = 2131099904; + // aapt resource value: 0x7f0600fc + public const int menu_navigate = 2131099900; // aapt resource value: 0x7f060101 - public const int menu_rename = 2131099905; + public const int menu_open = 2131099905; // aapt resource value: 0x7f060102 - public const int menu_search = 2131099906; + public const int menu_rename = 2131099906; // aapt resource value: 0x7f060103 - public const int menu_search_advanced = 2131099907; + public const int menu_search = 2131099907; // aapt resource value: 0x7f060104 - public const int menu_url = 2131099908; + public const int menu_search_advanced = 2131099908; - // aapt resource value: 0x7f060106 - public const int minus = 2131099910; + // aapt resource value: 0x7f060105 + public const int menu_url = 2131099909; // aapt resource value: 0x7f060107 - public const int never = 2131099911; + public const int minus = 2131099911; - // aapt resource value: 0x7f060109 - public const int no = 2131099913; + // aapt resource value: 0x7f060108 + public const int never = 2131099912; // aapt resource value: 0x7f06010a - public const int no_keys = 2131099914; + public const int no = 2131099914; // aapt resource value: 0x7f06010b - public const int no_results = 2131099915; - - // aapt resource value: 0x7f0601c7 - public const int no_thanks = 2131100103; + public const int no_keys = 2131099915; // aapt resource value: 0x7f06010c - public const int no_url_handler = 2131099916; + public const int no_results = 2131099916; + + // aapt resource value: 0x7f0601c8 + public const int no_thanks = 2131100104; + + // aapt resource value: 0x7f06010d + public const int no_url_handler = 2131099917; // aapt resource value: 0x7f0600a8 public const int not_possible_im_picker = 2131099816; @@ -3796,47 +3799,47 @@ namespace keepass2android // aapt resource value: 0x7f060046 public const int oi_filemanager_web = 2131099718; - // aapt resource value: 0x7f0601c6 - public const int ok_donate = 2131100102; + // aapt resource value: 0x7f0601c7 + public const int ok_donate = 2131100103; // aapt resource value: 0x7f060052 public const int omitbackup_key = 2131099730; + // aapt resource value: 0x7f060110 + public const int omitbackup_summary = 2131099920; + // aapt resource value: 0x7f06010f - public const int omitbackup_summary = 2131099919; + public const int omitbackup_title = 2131099919; // aapt resource value: 0x7f06010e - public const int omitbackup_title = 2131099918; + public const int open_recent = 2131099918; - // aapt resource value: 0x7f06010d - public const int open_recent = 2131099917; - - // aapt resource value: 0x7f0601bf - public const int otp_aux_file = 2131100095; - - // aapt resource value: 0x7f0601ef - public const int otp_discarded_because_db_open = 2131100143; - - // aapt resource value: 0x7f0601ed - public const int otp_discarded_because_no_db = 2131100141; - - // aapt resource value: 0x7f0601ee - public const int otp_discarded_no_space = 2131100142; - - // aapt resource value: 0x7f0601e8 - public const int otp_explanation = 2131100136; - - // aapt resource value: 0x7f0601e9 - public const int otp_hint = 2131100137; + // aapt resource value: 0x7f0601c0 + public const int otp_aux_file = 2131100096; // aapt resource value: 0x7f0601f0 - public const int otps_pending = 2131100144; + public const int otp_discarded_because_db_open = 2131100144; + + // aapt resource value: 0x7f0601ee + public const int otp_discarded_because_no_db = 2131100142; + + // aapt resource value: 0x7f0601ef + public const int otp_discarded_no_space = 2131100143; + + // aapt resource value: 0x7f0601e9 + public const int otp_explanation = 2131100137; + + // aapt resource value: 0x7f0601ea + public const int otp_hint = 2131100138; // aapt resource value: 0x7f0601f1 - public const int otpsecret_hint = 2131100145; + public const int otps_pending = 2131100145; - // aapt resource value: 0x7f060110 - public const int pass_filename = 2131099920; + // aapt resource value: 0x7f0601f2 + public const int otpsecret_hint = 2131100146; + + // aapt resource value: 0x7f060111 + public const int pass_filename = 2131099921; // aapt resource value: 0x7f06009b public const int password_access_prefs = 2131099803; @@ -3844,8 +3847,8 @@ namespace keepass2android // aapt resource value: 0x7f06005e public const int password_access_prefs_key = 2131099742; - // aapt resource value: 0x7f060111 - public const int password_title = 2131099921; + // aapt resource value: 0x7f060112 + public const int password_title = 2131099922; // aapt resource value: 0x7f060047 public const int permission_desc = 2131099719; @@ -3853,101 +3856,101 @@ namespace keepass2android // aapt resource value: 0x7f0600a9 public const int please_activate_keyboard = 2131099817; - // aapt resource value: 0x7f06013c - public const int please_note = 2131099964; - - // aapt resource value: 0x7f0601fe - public const int plugin_author = 2131100158; - - // aapt resource value: 0x7f0601fd - public const int plugin_description = 2131100157; - - // aapt resource value: 0x7f060200 - public const int plugin_disabled = 2131100160; + // aapt resource value: 0x7f06013d + public const int please_note = 2131099965; // aapt resource value: 0x7f0601ff - public const int plugin_enabled = 2131100159; + public const int plugin_author = 2131100159; - // aapt resource value: 0x7f060204 - public const int plugin_enabled_checkbox = 2131100164; - - // aapt resource value: 0x7f0601fc - public const int plugin_packagename = 2131100156; + // aapt resource value: 0x7f0601fe + public const int plugin_description = 2131100158; // aapt resource value: 0x7f060201 - public const int plugin_web = 2131100161; + public const int plugin_disabled = 2131100161; - // aapt resource value: 0x7f0601fb - public const int plugins = 2131100155; + // aapt resource value: 0x7f060200 + public const int plugin_enabled = 2131100160; - // aapt resource value: 0x7f060225 - public const int plugins_text = 2131100197; + // aapt resource value: 0x7f060205 + public const int plugin_enabled_checkbox = 2131100165; - // aapt resource value: 0x7f060113 - public const int progress_create = 2131099923; - - // aapt resource value: 0x7f060115 - public const int progress_title = 2131099925; - - // aapt resource value: 0x7f06016a - public const int protection = 2131100010; - - // aapt resource value: 0x7f060203 - public const int query_credentials = 2131100163; + // aapt resource value: 0x7f0601fd + public const int plugin_packagename = 2131100157; // aapt resource value: 0x7f060202 - public const int query_credentials_for_url = 2131100162; + public const int plugin_web = 2131100162; - // aapt resource value: 0x7f06019c - public const int rate_app = 2131100060; + // aapt resource value: 0x7f0601fc + public const int plugins = 2131100156; - // aapt resource value: 0x7f06013e - public const int regular_expression = 2131099966; + // aapt resource value: 0x7f060226 + public const int plugins_text = 2131100198; + + // aapt resource value: 0x7f060114 + public const int progress_create = 2131099924; // aapt resource value: 0x7f060116 - public const int remember_keyfile_summary = 2131099926; + public const int progress_title = 2131099926; + + // aapt resource value: 0x7f06016b + public const int protection = 2131100011; + + // aapt resource value: 0x7f060204 + public const int query_credentials = 2131100164; + + // aapt resource value: 0x7f060203 + public const int query_credentials_for_url = 2131100163; + + // aapt resource value: 0x7f06019d + public const int rate_app = 2131100061; + + // aapt resource value: 0x7f06013f + public const int regular_expression = 2131099967; // aapt resource value: 0x7f060117 - public const int remember_keyfile_title = 2131099927; + public const int remember_keyfile_summary = 2131099927; // aapt resource value: 0x7f060118 - public const int remove_from_filelist = 2131099928; + public const int remember_keyfile_title = 2131099928; // aapt resource value: 0x7f060119 - public const int rijndael = 2131099929; + public const int remove_from_filelist = 2131099929; // aapt resource value: 0x7f06011a - public const int root = 2131099930; + public const int rijndael = 2131099930; // aapt resource value: 0x7f06011b - public const int rounds = 2131099931; + public const int root = 2131099931; // aapt resource value: 0x7f06011c - public const int rounds_explaination = 2131099932; + public const int rounds = 2131099932; // aapt resource value: 0x7f06011d - public const int rounds_hint = 2131099933; + public const int rounds_explaination = 2131099933; + + // aapt resource value: 0x7f06011e + public const int rounds_hint = 2131099934; // aapt resource value: 0x7f06004e public const int rounds_key = 2131099726; - // aapt resource value: 0x7f060120 - public const int saving_database = 2131099936; - - // aapt resource value: 0x7f060129 - public const int search_hint = 2131099945; - - // aapt resource value: 0x7f06012b - public const int search_in = 2131099947; - - // aapt resource value: 0x7f060124 - public const int search_label = 2131099940; - - // aapt resource value: 0x7f060147 - public const int search_options = 2131099975; + // aapt resource value: 0x7f060121 + public const int saving_database = 2131099937; // aapt resource value: 0x7f06012a - public const int search_results = 2131099946; + public const int search_hint = 2131099946; + + // aapt resource value: 0x7f06012c + public const int search_in = 2131099948; + + // aapt resource value: 0x7f060125 + public const int search_label = 2131099941; + + // aapt resource value: 0x7f060148 + public const int search_options = 2131099976; + + // aapt resource value: 0x7f06012b + public const int search_results = 2131099947; // aapt resource value: 0x7f060099 public const int security_prefs = 2131099801; @@ -3955,14 +3958,14 @@ namespace keepass2android // aapt resource value: 0x7f06005f public const int security_prefs_key = 2131099743; + // aapt resource value: 0x7f06012e + public const int select_group_then_add = 2131099950; + // aapt resource value: 0x7f06012d - public const int select_group_then_add = 2131099949; + public const int select_other_entry = 2131099949; - // aapt resource value: 0x7f06012c - public const int select_other_entry = 2131099948; - - // aapt resource value: 0x7f0601cc - public const int select_storage_type = 2131100108; + // aapt resource value: 0x7f0601cd + public const int select_storage_type = 2131100109; // aapt resource value: 0x7f06008d public const int short_app_name = 2131099789; @@ -3979,74 +3982,74 @@ namespace keepass2android // aapt resource value: 0x7f060094 public const int show_kill_app_summary = 2131099796; - // aapt resource value: 0x7f060125 - public const int show_password = 2131099941; + // aapt resource value: 0x7f060126 + public const int show_password = 2131099942; - // aapt resource value: 0x7f060127 - public const int sort_db = 2131099943; + // aapt resource value: 0x7f060128 + public const int sort_db = 2131099944; // aapt resource value: 0x7f060055 public const int sort_key = 2131099733; - // aapt resource value: 0x7f060126 - public const int sort_name = 2131099942; + // aapt resource value: 0x7f060127 + public const int sort_name = 2131099943; - // aapt resource value: 0x7f060123 - public const int space = 2131099939; + // aapt resource value: 0x7f060124 + public const int space = 2131099940; - // aapt resource value: 0x7f060128 - public const int special = 2131099944; - - // aapt resource value: 0x7f06014a - public const int start_create = 2131099978; - - // aapt resource value: 0x7f06014c - public const int start_create_import = 2131099980; - - // aapt resource value: 0x7f060149 - public const int start_open_file = 2131099977; + // aapt resource value: 0x7f060129 + public const int special = 2131099945; // aapt resource value: 0x7f06014b - public const int start_open_url = 2131099979; + public const int start_create = 2131099979; - // aapt resource value: 0x7f06019b - public const int suggest_improvements = 2131100059; + // aapt resource value: 0x7f06014d + public const int start_create_import = 2131099981; - // aapt resource value: 0x7f0601c1 - public const int synchronize_database_menu = 2131100097; + // aapt resource value: 0x7f06014a + public const int start_open_file = 2131099978; - // aapt resource value: 0x7f06019d - public const int translate_app = 2131100061; + // aapt resource value: 0x7f06014c + public const int start_open_url = 2131099980; - // aapt resource value: 0x7f06012f - public const int twofish = 2131099951; + // aapt resource value: 0x7f06019c + public const int suggest_improvements = 2131100060; + + // aapt resource value: 0x7f0601c2 + public const int synchronize_database_menu = 2131100098; + + // aapt resource value: 0x7f06019e + public const int translate_app = 2131100062; // aapt resource value: 0x7f060130 - public const int underline = 2131099952; + public const int twofish = 2131099952; // aapt resource value: 0x7f060131 - public const int unsupported_db_version = 2131099953; + public const int underline = 2131099953; // aapt resource value: 0x7f060132 - public const int uppercase = 2131099954; - - // aapt resource value: 0x7f0601e4 - public const int use_key_file = 2131100132; - - // aapt resource value: 0x7f060136 - public const int version_history = 2131099958; - - // aapt resource value: 0x7f060135 - public const int version_label = 2131099957; + public const int unsupported_db_version = 2131099954; // aapt resource value: 0x7f060133 - public const int warning_read_only = 2131099955; + public const int uppercase = 2131099955; + + // aapt resource value: 0x7f0601e5 + public const int use_key_file = 2131100133; + + // aapt resource value: 0x7f060137 + public const int version_history = 2131099959; + + // aapt resource value: 0x7f060136 + public const int version_label = 2131099958; // aapt resource value: 0x7f060134 - public const int warning_unmounted = 2131099956; + public const int warning_read_only = 2131099956; - // aapt resource value: 0x7f060108 - public const int yes = 2131099912; + // aapt resource value: 0x7f060135 + public const int warning_unmounted = 2131099957; + + // aapt resource value: 0x7f060109 + public const int yes = 2131099913; static String() { diff --git a/src/keepass2android/Resources/values/strings.xml b/src/keepass2android/Resources/values/strings.xml index b655849c..ea830d2d 100644 --- a/src/keepass2android/Resources/values/strings.xml +++ b/src/keepass2android/Resources/values/strings.xml @@ -129,6 +129,7 @@ Database settings Delete Move to another group + Navigate to this group Donate a beer... Edit Hide Password diff --git a/src/keepass2android/app/AppTask.cs b/src/keepass2android/app/AppTask.cs index be49318d..e4244ed1 100644 --- a/src/keepass2android/app/AppTask.cs +++ b/src/keepass2android/app/AppTask.cs @@ -71,6 +71,53 @@ namespace keepass2android #endregion } + /// + /// represents data stored in an intent or bundle as extra int + /// + public class IntExtra: IExtra + { + public string Key { get; set; } + public int Value{ get; set; } + + #region IExtra implementation + + public void ToBundle(Bundle b) + { + b.PutInt(Key, Value); + } + + public void ToIntent(Intent i) + { + i.PutExtra(Key, Value); + } + + #endregion + } + + + /// + /// represents data stored in an intent or bundle as extra string array + /// + public class StringArrayExtra : IExtra + { + public string Key { get; set; } + public string[] Value { get; set; } + + #region IExtra implementation + + public void ToBundle(Bundle b) + { + b.PutStringArray(Key, Value); + } + + public void ToIntent(Intent i) + { + i.PutExtra(Key, Value); + } + + #endregion + } + /// /// base class for "tasks": these are things the user wants to do and which require several activities /// @@ -473,6 +520,7 @@ namespace keepass2android } + /// /// User is about to move an entry or group to another group /// @@ -614,5 +662,183 @@ namespace keepass2android base.CompleteOnCreateEntryActivity(activity); } } + + + /// + /// Navigate to a folder and open a Task (appear in SearchResult) + /// + public abstract class NavigateAndLaunchTask: AppTask + { + // All group Uuid are stored in guuidKey + indice + // The last one is the destination group + public const String numberOfGroupsKey = "NumberOfGroups"; + public const String gUuidKey = "gUuidKey"; + + #if INCLUDE_DEBUG_MOVE_GROUPNAME + public const String gNameKey = "gNameKey"; + private LinkedList groupName; + #endif + + private LinkedList groupUuid; + protected AppTask taskToBeLaunchAfterNavigation; + + public NavigateAndLaunchTask() { + this.taskToBeLaunchAfterNavigation = new NullTask(); + } + + protected NavigateAndLaunchTask(PwGroup groups, AppTask taskToBeLaunchAfterNavigation) { + this.taskToBeLaunchAfterNavigation = taskToBeLaunchAfterNavigation; + populateGroupsUuid (groups); + } + + public void populateGroupsUuid(PwGroup groups) { + + groupUuid = new LinkedList{}; + + #if INCLUDE_DEBUG_MOVE_GROUPNAME + groupName = new LinkedList{}; + #endif + + PwGroup readGroup = groups; + while (readGroup != null) { + + groupUuid.AddFirst (MemUtil.ByteArrayToHexString (readGroup.Uuid.UuidBytes)); + + #if INCLUDE_DEBUG_MOVE_GROUPNAME + groupName.AddFirst (readGroup.Name); + #endif + + readGroup = readGroup.ParentGroup; + } + + } + + /// + /// Loads the parameters of the task from the given bundle. Embeded task is not setup from this bundle + /// + /// The bundle component. + public override void Setup(Bundle b) + { + int numberOfGroups = b.GetInt(numberOfGroupsKey); + groupUuid = new LinkedList{}; +#if INCLUDE_DEBUG_MOVE_GROUPNAME + groupName = new LinkedList{}; +#endif + + int i = 0; + while (i < numberOfGroups) { + + groupUuid.AddLast ( b.GetString (gUuidKey + i) ) ; +#if INCLUDE_DEBUG_MOVE_GROUPNAME + groupName.AddLast ( b.GetString (gNameKey + i) ); +#endif + + i++; + } + + } + + public override IEnumerable Extras + { + get + { + // Return Navigate group Extras + IEnumerator eGroupKeys = groupUuid.GetEnumerator (); +#if INCLUDE_DEBUG_MOVE_GROUPNAME + IEnumerator eGroupName = groupName.GetEnumerator (); +#endif + + int i = 0; + while (eGroupKeys.MoveNext()) { + yield return new StringExtra { Key = gUuidKey + i.ToString (), Value = eGroupKeys.Current }; +#if INCLUDE_DEBUG_MOVE_GROUPNAME + eGroupName.MoveNext(); + yield return new StringExtra { Key = gNameKey + i.ToString (), Value = eGroupName.Current }; +#endif + + i++; + } + + yield return new IntExtra{ Key = numberOfGroupsKey, Value = i }; + + // Return afterTaskExtras + IEnumerator afterTaskExtras = taskToBeLaunchAfterNavigation.Extras.GetEnumerator(); + while (afterTaskExtras.MoveNext ()) { + yield return afterTaskExtras.Current; + } + + } + } + + public override void StartInGroupActivity(GroupBaseActivity groupBaseActivity) + { + base.StartInGroupActivity(groupBaseActivity); + + if (GroupIsFound(groupBaseActivity) ){ // Group has been found: stop here + groupBaseActivity.StartTask (taskToBeLaunchAfterNavigation); + return; + + } else if (groupUuid.Contains(groupBaseActivity.UuidGroup)) { // Need to go up in groups tree + + // Get next Group Uuid + String nextGroupUuid = groupUuid.Find (groupBaseActivity.UuidGroup).Next.Value; + PwUuid nextGroupPwUuid = new PwUuid (MemUtil.HexStringToByteArray (nextGroupUuid)); + + // Create Group Activity + PwGroup nextGroup = App.Kp2a.GetDb ().Groups [nextGroupPwUuid]; + GroupActivity.Launch (groupBaseActivity, nextGroup, this); + return; + + } else { // Need to go down in groups tree + SetActivityResult(groupBaseActivity, KeePass.ExitMoveEntry); + groupBaseActivity.Finish(); + + } + + } + public override void SetupGroupBaseActivityButtons(GroupBaseActivity groupBaseActivity) + { + return; + } + + public bool GroupIsFound(GroupBaseActivity groupBaseActivity) + { + return groupUuid.Last.Value.Equals (groupBaseActivity.UuidGroup); + } + } + + public class NavigateToFolder: NavigateAndLaunchTask { + + public NavigateToFolder():base() { + } + + public NavigateToFolder(PwGroup groups): base(groups, new NullTask()) { + return; + } + + } + + public class NavigateToFolderAndLaunchMoveElementTask: NavigateAndLaunchTask { + + public NavigateToFolderAndLaunchMoveElementTask():base(){ + + } + + + public NavigateToFolderAndLaunchMoveElementTask(PwGroup groups, PwUuid Uuid): + base(groups, new MoveElementTask() { Uuid = Uuid }) { + } + + public override void Setup(Bundle b) { + base.Setup(b); + + taskToBeLaunchAfterNavigation = new MoveElementTask (); + taskToBeLaunchAfterNavigation.Setup (b); + + } + + + } + } diff --git a/src/keepass2android/keepass2android.csproj b/src/keepass2android/keepass2android.csproj index ddb91933..d3eac804 100644 --- a/src/keepass2android/keepass2android.csproj +++ b/src/keepass2android/keepass2android.csproj @@ -28,7 +28,7 @@ full false bin\Debug - DEBUG;EXCLUDE_TWOFISH;EXCLUDE_KEYBOARD;INCLUDE_FILECHOOSER;EXCLUDE_JAVAFILESTORAGE;EXCLUDE_KEYTRANSFORM + DEBUG;EXCLUDE_TWOFISH;EXCLUDE_KEYBOARD;INCLUDE_FILECHOOSER;EXCLUDE_JAVAFILESTORAGE;EXCLUDE_KEYTRANSFORM;INCLUDE_DEBUG_MOVE_GROUPNAME prompt 4 False @@ -270,6 +270,33 @@ + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + diff --git a/src/keepass2android/search/SearchResults.cs b/src/keepass2android/search/SearchResults.cs index 8af7f636..22944af7 100644 --- a/src/keepass2android/search/SearchResults.cs +++ b/src/keepass2android/search/SearchResults.cs @@ -19,6 +19,7 @@ using System.Linq; using Android.App; using Android.Content; using Android.OS; +using Android.Views; using Android.Widget; using keepass2android.view; using KeePassLib; @@ -45,6 +46,7 @@ namespace keepass2android.search SetResult(KeePass.ExitNormal); ProcessIntent(Intent); + RegisterForContextMenu(ListView); } protected override void OnNewIntent(Intent intent) @@ -117,6 +119,24 @@ namespace keepass2android.search } + public override void OnCreateContextMenu(IContextMenu menu, View v, + IContextMenuContextMenuInfo menuInfo) + { + + AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) menuInfo; + ClickView cv = (ClickView) acmi.TargetView; + cv.OnCreateMenu(menu, menuInfo); + } + + public override bool OnContextItemSelected(IMenuItem item) { + AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo)item.MenuInfo; + ClickView cv = (ClickView) acmi.TargetView; + + bool result; + + return cv.OnContextItemSelected(item); + } + public override bool OnSearchRequested() { diff --git a/src/keepass2android/views/PwEntryView.cs b/src/keepass2android/views/PwEntryView.cs index c0ef65fb..97e236e1 100644 --- a/src/keepass2android/views/PwEntryView.cs +++ b/src/keepass2android/views/PwEntryView.cs @@ -47,6 +47,7 @@ namespace keepass2android.view private const int MenuOpen = Menu.First; private const int MenuDelete = MenuOpen + 1; private const int MenuMove = MenuDelete + 1; + private const int MenuNavigate = MenuMove + 1; public static PwEntryView GetInstance(GroupBaseActivity act, PwEntry pw, int pos) { @@ -188,7 +189,12 @@ namespace keepass2android.view if (App.Kp2a.GetDb().CanWrite) { menu.Add(0, MenuDelete, 0, Resource.String.menu_delete); - menu.Add(0, MenuMove, 0, Resource.String.menu_move); + menu.Add(0, MenuMove, 0, Resource.String.menu_move); + + if (_isSearchResult) { + menu.Add (0, MenuNavigate, 0, Resource.String.menu_navigate); + } + } } @@ -206,9 +212,15 @@ namespace keepass2android.view task.Start(); return true; case MenuMove: - _groupActivity.StartTask(new MoveElementTask { Uuid = _entry.Uuid}); + NavigateToFolderAndLaunchMoveElementTask navMove = + new NavigateToFolderAndLaunchMoveElementTask(_entry.ParentGroup, _entry.Uuid); + _groupActivity.StartTask (navMove); return true; - + case MenuNavigate: + NavigateToFolder navNavigate = new NavigateToFolder(_entry.ParentGroup); + _groupActivity.StartTask (navNavigate); + return true; + default: return false; }