From 19f7dcf26d69775824e07c87c970fcc1a44dcb83 Mon Sep 17 00:00:00 2001 From: PhilippC Date: Sat, 23 Feb 2013 17:43:42 +0100 Subject: [PATCH] initial release 0.5.0 BETA --- .gitignore | 4 + CONTRIBUTORS | 5 + COPYING.gpl-2.0 | 339 ++++ LICENSE | 132 ++ src/KeePass.sln | 104 + .../Cryptography/CryptoRandom.cs | 10 +- .../KeePassLib2Android.csproj | 2 + src/KeePassLib2Android/Keys/KcpKeyFile.cs | 4 +- src/KeePassLib2Android/Keys/KcpUserAccount.cs | 36 +- src/KeePassLib2Android/Native/NativeLib.cs | 7 +- src/KeePassLib2Android/PwCustomIcon.cs | 8 +- src/KeePassLib2Android/PwDatabase.cs | 4 +- .../Resources/AboutResources.txt | 2 +- .../Resources/Resource.designer.cs | 7 +- .../Security/ProtectedBinary.cs | 20 +- .../Serialization/FileLock.cs | 4 +- .../Serialization/FileTransactionEx.cs | 8 +- .../Serialization/HashedBlockStream.cs | 40 + .../Serialization/IOConnection.cs | 43 +- .../Serialization/KdbxFile.Read.Streamed.cs | 45 + .../Serialization/KdbxFile.Write.cs | 3 +- .../Translation/KPControlCustomization.cs | 15 +- .../Translation/KPFormCustomization.cs | 9 +- .../Translation/KPStringTable.cs | 10 +- .../Translation/KPTranslation.cs | 16 +- src/KeePassLib2Android/Utility/GfxUtil.cs | 51 +- .../Utility/MessageService.cs | 69 +- src/KeePassLib2Android/Utility/StrUtil.cs | 16 +- src/keepass2android/AboutDialog.cs | 72 + src/keepass2android/AssemblyInfo.cs | 20 + src/keepass2android/BitmapDrawableCompat.cs | 45 + src/keepass2android/CancelDialog.cs | 52 + src/keepass2android/Database.cs | 244 +++ src/keepass2android/EntryActivity.cs | 519 +++++ src/keepass2android/EntryEditActivity.cs | 739 +++++++ .../GeneratePasswordActivity.cs | 130 ++ src/keepass2android/GroupActivity.cs | 195 ++ src/keepass2android/GroupBaseActivity.cs | 295 +++ src/keepass2android/GroupEditActivity.cs | 109 + src/keepass2android/IconPickerActivity.cs | 118 ++ src/keepass2android/KeePass.cs | 94 + src/keepass2android/KeyFileException.cs | 71 + src/keepass2android/LifecycleDebugActivity.cs | 93 + src/keepass2android/LockCloseActivity.cs | 53 + src/keepass2android/LockCloseListActivity.cs | 61 + src/keepass2android/LockingActivity.cs | 64 + .../LockingClosePreferenceActivity.cs | 53 + src/keepass2android/LockingListActivity.cs | 96 + .../LockingPreferenceActivity.cs | 97 + src/keepass2android/PasswordActivity.cs | 570 ++++++ src/keepass2android/ProgressTask.cs | 87 + .../Properties/AndroidManifest.xml | 8 + .../Properties/AssemblyInfo.cs | 44 + .../PwGroupEqualityFromIdComparer.cs | 47 + src/keepass2android/PwGroupListAdapter.cs | 158 ++ src/keepass2android/PwUuidEqualityComparer.cs | 49 + src/keepass2android/QuickUnlock.cs | 116 ++ .../Resources/AboutResources.txt | 44 + .../Resources/Resource.designer.cs | 1796 +++++++++++++++++ .../drawable-hdpi/2_action_about.png | Bin 0 -> 1764 bytes .../Resources/drawable-hdpi/ic00.png | Bin 0 -> 3365 bytes .../Resources/drawable-hdpi/ic01.png | Bin 0 -> 5597 bytes .../Resources/drawable-hdpi/ic02.png | Bin 0 -> 3259 bytes .../Resources/drawable-hdpi/ic03.png | Bin 0 -> 2991 bytes .../Resources/drawable-hdpi/ic04.png | Bin 0 -> 3364 bytes .../Resources/drawable-hdpi/ic05.png | Bin 0 -> 4550 bytes .../Resources/drawable-hdpi/ic06.png | Bin 0 -> 3346 bytes .../Resources/drawable-hdpi/ic07.png | Bin 0 -> 4979 bytes .../Resources/drawable-hdpi/ic08.png | Bin 0 -> 5395 bytes .../Resources/drawable-hdpi/ic09.png | Bin 0 -> 3024 bytes .../Resources/drawable-hdpi/ic10.png | Bin 0 -> 4486 bytes .../Resources/drawable-hdpi/ic11.png | Bin 0 -> 3094 bytes .../Resources/drawable-hdpi/ic12.png | Bin 0 -> 5045 bytes .../Resources/drawable-hdpi/ic13.png | Bin 0 -> 5167 bytes .../Resources/drawable-hdpi/ic14.png | Bin 0 -> 3855 bytes .../Resources/drawable-hdpi/ic15.png | Bin 0 -> 4185 bytes .../Resources/drawable-hdpi/ic16.png | Bin 0 -> 6066 bytes .../Resources/drawable-hdpi/ic17.png | Bin 0 -> 4058 bytes .../Resources/drawable-hdpi/ic18.png | Bin 0 -> 3071 bytes .../Resources/drawable-hdpi/ic19.png | Bin 0 -> 4286 bytes .../Resources/drawable-hdpi/ic20.png | Bin 0 -> 5083 bytes .../Resources/drawable-hdpi/ic21.png | Bin 0 -> 6476 bytes .../Resources/drawable-hdpi/ic22.png | Bin 0 -> 1536 bytes .../Resources/drawable-hdpi/ic23.png | Bin 0 -> 4045 bytes .../Resources/drawable-hdpi/ic24.png | Bin 0 -> 4447 bytes .../Resources/drawable-hdpi/ic25.png | Bin 0 -> 4733 bytes .../Resources/drawable-hdpi/ic26.png | Bin 0 -> 2378 bytes .../Resources/drawable-hdpi/ic27.png | Bin 0 -> 3021 bytes .../Resources/drawable-hdpi/ic28.png | Bin 0 -> 3341 bytes .../Resources/drawable-hdpi/ic29.png | Bin 0 -> 3955 bytes .../Resources/drawable-hdpi/ic30.png | Bin 0 -> 3180 bytes .../Resources/drawable-hdpi/ic31.png | Bin 0 -> 3369 bytes .../Resources/drawable-hdpi/ic32.png | Bin 0 -> 2643 bytes .../Resources/drawable-hdpi/ic33.png | Bin 0 -> 3171 bytes .../Resources/drawable-hdpi/ic34.png | Bin 0 -> 2897 bytes .../Resources/drawable-hdpi/ic35.png | Bin 0 -> 5622 bytes .../Resources/drawable-hdpi/ic36.png | Bin 0 -> 3979 bytes .../Resources/drawable-hdpi/ic37.png | Bin 0 -> 6344 bytes .../Resources/drawable-hdpi/ic38.png | Bin 0 -> 4689 bytes .../Resources/drawable-hdpi/ic39.png | Bin 0 -> 5804 bytes .../Resources/drawable-hdpi/ic40.png | Bin 0 -> 4526 bytes .../Resources/drawable-hdpi/ic41.png | Bin 0 -> 2717 bytes .../Resources/drawable-hdpi/ic42.png | Bin 0 -> 4185 bytes .../Resources/drawable-hdpi/ic43.png | Bin 0 -> 2961 bytes .../Resources/drawable-hdpi/ic44.png | Bin 0 -> 3267 bytes .../Resources/drawable-hdpi/ic45.png | Bin 0 -> 3640 bytes .../Resources/drawable-hdpi/ic46.png | Bin 0 -> 3829 bytes .../Resources/drawable-hdpi/ic47.png | Bin 0 -> 3383 bytes .../Resources/drawable-hdpi/ic48.png | Bin 0 -> 4789 bytes .../Resources/drawable-hdpi/ic49.png | Bin 0 -> 3806 bytes .../Resources/drawable-hdpi/ic50.png | Bin 0 -> 5151 bytes .../Resources/drawable-hdpi/ic51.png | Bin 0 -> 3115 bytes .../Resources/drawable-hdpi/ic52.png | Bin 0 -> 2804 bytes .../Resources/drawable-hdpi/ic53.png | Bin 0 -> 2855 bytes .../Resources/drawable-hdpi/ic54.png | Bin 0 -> 2367 bytes .../Resources/drawable-hdpi/ic55.png | Bin 0 -> 2806 bytes .../Resources/drawable-hdpi/ic56.png | Bin 0 -> 4069 bytes .../Resources/drawable-hdpi/ic57.png | Bin 0 -> 2372 bytes .../Resources/drawable-hdpi/ic58.png | Bin 0 -> 5715 bytes .../Resources/drawable-hdpi/ic59.png | Bin 0 -> 3919 bytes .../Resources/drawable-hdpi/ic60.png | Bin 0 -> 5001 bytes .../Resources/drawable-hdpi/ic61.png | Bin 0 -> 3381 bytes .../Resources/drawable-hdpi/ic62.png | Bin 0 -> 2442 bytes .../Resources/drawable-hdpi/ic63.png | Bin 0 -> 3058 bytes .../Resources/drawable-hdpi/ic64.png | Bin 0 -> 196 bytes .../Resources/drawable-hdpi/ic65.png | Bin 0 -> 3312 bytes .../Resources/drawable-hdpi/ic66.png | Bin 0 -> 1751 bytes .../Resources/drawable-hdpi/ic67.png | Bin 0 -> 773 bytes .../Resources/drawable-hdpi/ic68.png | Bin 0 -> 968 bytes .../Resources/drawable-hdpi/ic99_blank.png | Bin 0 -> 196 bytes .../drawable-hdpi/ic_action_eye_open.png | Bin 0 -> 1373 bytes .../drawable-hdpi/ic_action_search.png | Bin 0 -> 1759 bytes .../Resources/drawable-hdpi/ic_launcher.png | Bin 0 -> 2799 bytes .../drawable-hdpi/navigation_accept.png | Bin 0 -> 1320 bytes .../drawable-hdpi/navigation_accept_dark.png | Bin 0 -> 1335 bytes .../navigation_previous_item.png | Bin 0 -> 1494 bytes .../navigation_previous_item_dark.png | Bin 0 -> 1482 bytes .../Resources/drawable-hdpi/notify.png | Bin 0 -> 4228 bytes .../Resources/drawable-ldpi/ic00.png | Bin 0 -> 1005 bytes .../Resources/drawable-ldpi/ic01.png | Bin 0 -> 1617 bytes .../Resources/drawable-ldpi/ic02.png | Bin 0 -> 1133 bytes .../Resources/drawable-ldpi/ic03.png | Bin 0 -> 1067 bytes .../Resources/drawable-ldpi/ic04.png | Bin 0 -> 1294 bytes .../Resources/drawable-ldpi/ic05.png | Bin 0 -> 1369 bytes .../Resources/drawable-ldpi/ic06.png | Bin 0 -> 1104 bytes .../Resources/drawable-ldpi/ic07.png | Bin 0 -> 1405 bytes .../Resources/drawable-ldpi/ic08.png | Bin 0 -> 1567 bytes .../Resources/drawable-ldpi/ic09.png | Bin 0 -> 1000 bytes .../Resources/drawable-ldpi/ic10.png | Bin 0 -> 1300 bytes .../Resources/drawable-ldpi/ic11.png | Bin 0 -> 1089 bytes .../Resources/drawable-ldpi/ic12.png | Bin 0 -> 1610 bytes .../Resources/drawable-ldpi/ic13.png | Bin 0 -> 1474 bytes .../Resources/drawable-ldpi/ic14.png | Bin 0 -> 1121 bytes .../Resources/drawable-ldpi/ic15.png | Bin 0 -> 1440 bytes .../Resources/drawable-ldpi/ic16.png | Bin 0 -> 1574 bytes .../Resources/drawable-ldpi/ic17.png | Bin 0 -> 1370 bytes .../Resources/drawable-ldpi/ic18.png | Bin 0 -> 1140 bytes .../Resources/drawable-ldpi/ic19.png | Bin 0 -> 1434 bytes .../Resources/drawable-ldpi/ic20.png | Bin 0 -> 1725 bytes .../Resources/drawable-ldpi/ic21.png | Bin 0 -> 1635 bytes .../Resources/drawable-ldpi/ic22.png | Bin 0 -> 633 bytes .../Resources/drawable-ldpi/ic23.png | Bin 0 -> 1248 bytes .../Resources/drawable-ldpi/ic24.png | Bin 0 -> 1284 bytes .../Resources/drawable-ldpi/ic25.png | Bin 0 -> 1480 bytes .../Resources/drawable-ldpi/ic26.png | Bin 0 -> 902 bytes .../Resources/drawable-ldpi/ic27.png | Bin 0 -> 1191 bytes .../Resources/drawable-ldpi/ic28.png | Bin 0 -> 1082 bytes .../Resources/drawable-ldpi/ic29.png | Bin 0 -> 1250 bytes .../Resources/drawable-ldpi/ic30.png | Bin 0 -> 1130 bytes .../Resources/drawable-ldpi/ic31.png | Bin 0 -> 1345 bytes .../Resources/drawable-ldpi/ic32.png | Bin 0 -> 931 bytes .../Resources/drawable-ldpi/ic33.png | Bin 0 -> 1086 bytes .../Resources/drawable-ldpi/ic34.png | Bin 0 -> 1066 bytes .../Resources/drawable-ldpi/ic35.png | Bin 0 -> 1682 bytes .../Resources/drawable-ldpi/ic36.png | Bin 0 -> 1249 bytes .../Resources/drawable-ldpi/ic37.png | Bin 0 -> 1758 bytes .../Resources/drawable-ldpi/ic38.png | Bin 0 -> 1455 bytes .../Resources/drawable-ldpi/ic39.png | Bin 0 -> 1789 bytes .../Resources/drawable-ldpi/ic40.png | Bin 0 -> 1382 bytes .../Resources/drawable-ldpi/ic41.png | Bin 0 -> 995 bytes .../Resources/drawable-ldpi/ic42.png | Bin 0 -> 1250 bytes .../Resources/drawable-ldpi/ic43.png | Bin 0 -> 1005 bytes .../Resources/drawable-ldpi/ic44.png | Bin 0 -> 1097 bytes .../Resources/drawable-ldpi/ic45.png | Bin 0 -> 1393 bytes .../Resources/drawable-ldpi/ic46.png | Bin 0 -> 1265 bytes .../Resources/drawable-ldpi/ic47.png | Bin 0 -> 1129 bytes .../Resources/drawable-ldpi/ic48.png | Bin 0 -> 1453 bytes .../Resources/drawable-ldpi/ic49.png | Bin 0 -> 1169 bytes .../Resources/drawable-ldpi/ic50.png | Bin 0 -> 1519 bytes .../Resources/drawable-ldpi/ic51.png | Bin 0 -> 1039 bytes .../Resources/drawable-ldpi/ic52.png | Bin 0 -> 990 bytes .../Resources/drawable-ldpi/ic53.png | Bin 0 -> 974 bytes .../Resources/drawable-ldpi/ic54.png | Bin 0 -> 668 bytes .../Resources/drawable-ldpi/ic55.png | Bin 0 -> 998 bytes .../Resources/drawable-ldpi/ic56.png | Bin 0 -> 1161 bytes .../Resources/drawable-ldpi/ic57.png | Bin 0 -> 948 bytes .../Resources/drawable-ldpi/ic58.png | Bin 0 -> 1645 bytes .../Resources/drawable-ldpi/ic59.png | Bin 0 -> 1235 bytes .../Resources/drawable-ldpi/ic60.png | Bin 0 -> 1352 bytes .../Resources/drawable-ldpi/ic61.png | Bin 0 -> 1050 bytes .../Resources/drawable-ldpi/ic62.png | Bin 0 -> 992 bytes .../Resources/drawable-ldpi/ic63.png | Bin 0 -> 1157 bytes .../Resources/drawable-ldpi/ic64.png | Bin 0 -> 189 bytes .../Resources/drawable-ldpi/ic65.png | Bin 0 -> 1304 bytes .../Resources/drawable-ldpi/ic66.png | Bin 0 -> 881 bytes .../Resources/drawable-ldpi/ic67.png | Bin 0 -> 495 bytes .../Resources/drawable-ldpi/ic68.png | Bin 0 -> 797 bytes .../Resources/drawable-ldpi/ic99_blank.png | Bin 0 -> 189 bytes .../Resources/drawable-ldpi/notify.png | Bin 0 -> 3542 bytes .../drawable-mdpi/ic_action_eye_open.png | Bin 0 -> 739 bytes .../drawable-mdpi/ic_action_search.png | Bin 0 -> 1429 bytes .../Resources/drawable-mdpi/ic_launcher.png | Bin 0 -> 1561 bytes .../drawable-mdpi/navigation_accept.png | Bin 0 -> 1197 bytes .../drawable-mdpi/navigation_accept_dark.png | Bin 0 -> 1191 bytes .../navigation_previous_item.png | Bin 0 -> 1275 bytes .../navigation_previous_item_dark.png | Bin 0 -> 1240 bytes .../EntryFieldHeaderBackground.xml | 7 + .../drawable-xhdpi/2_action_about.png | Bin 0 -> 2257 bytes .../drawable-xhdpi/ic_action_eye_open.png | Bin 0 -> 2103 bytes .../Resources/drawable-xhdpi/ic_launcher.png | Bin 0 -> 3902 bytes .../drawable-xhdpi/navigation_accept.png | Bin 0 -> 1546 bytes .../drawable-xhdpi/navigation_accept_dark.png | Bin 0 -> 1599 bytes .../navigation_previous_item.png | Bin 0 -> 1725 bytes .../navigation_previous_item_dark.png | Bin 0 -> 1734 bytes .../Resources/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 6861 bytes .../Resources/drawable/2_action_about.png | Bin 0 -> 1764 bytes .../Resources/drawable/BlueButton.xml | 38 + .../drawable/EntryFieldHeaderBackground.xml | 12 + .../Resources/drawable/GreenButton.xml | 38 + .../drawable/HeaderButtonBackground.xml | 6 + .../Resources/drawable/Icon.png | Bin 0 -> 2574 bytes .../Resources/drawable/RedButton.xml | 37 + .../Resources/drawable/YellowButton.xml | 38 + .../Resources/drawable/btn_new_group.png | Bin 0 -> 714 bytes .../Resources/drawable/btn_new_group_dark.png | Bin 0 -> 713 bytes .../drawable/device_access_new_account.png | Bin 0 -> 1656 bytes .../device_access_new_account_dark.png | Bin 0 -> 924 bytes .../drawable/extra_string_header.xml | 8 + .../Resources/drawable/ic00.png | Bin 0 -> 2085 bytes .../Resources/drawable/ic01.png | Bin 0 -> 3141 bytes .../Resources/drawable/ic02.png | Bin 0 -> 2125 bytes .../Resources/drawable/ic03.png | Bin 0 -> 1948 bytes .../Resources/drawable/ic04.png | Bin 0 -> 1947 bytes .../Resources/drawable/ic05.png | Bin 0 -> 2741 bytes .../Resources/drawable/ic06.png | Bin 0 -> 2065 bytes .../Resources/drawable/ic07.png | Bin 0 -> 2805 bytes .../Resources/drawable/ic08.png | Bin 0 -> 3000 bytes .../Resources/drawable/ic09.png | Bin 0 -> 1820 bytes .../Resources/drawable/ic10.png | Bin 0 -> 2642 bytes .../Resources/drawable/ic11.png | Bin 0 -> 1974 bytes .../Resources/drawable/ic12.png | Bin 0 -> 2927 bytes .../Resources/drawable/ic13.png | Bin 0 -> 2746 bytes .../Resources/drawable/ic14.png | Bin 0 -> 2342 bytes .../Resources/drawable/ic15.png | Bin 0 -> 2600 bytes .../Resources/drawable/ic16.png | Bin 0 -> 3243 bytes .../Resources/drawable/ic17.png | Bin 0 -> 2445 bytes .../Resources/drawable/ic18.png | Bin 0 -> 1965 bytes .../Resources/drawable/ic19.png | Bin 0 -> 2665 bytes .../Resources/drawable/ic20.png | Bin 0 -> 2853 bytes .../Resources/drawable/ic21.png | Bin 0 -> 3173 bytes .../Resources/drawable/ic22.png | Bin 0 -> 1006 bytes .../Resources/drawable/ic23.png | Bin 0 -> 2408 bytes .../Resources/drawable/ic24.png | Bin 0 -> 2683 bytes .../Resources/drawable/ic25.png | Bin 0 -> 3018 bytes .../Resources/drawable/ic26.png | Bin 0 -> 1596 bytes .../Resources/drawable/ic27.png | Bin 0 -> 2083 bytes .../Resources/drawable/ic28.png | Bin 0 -> 2001 bytes .../Resources/drawable/ic29.png | Bin 0 -> 2295 bytes .../Resources/drawable/ic30.png | Bin 0 -> 2095 bytes .../Resources/drawable/ic31.png | Bin 0 -> 2504 bytes .../Resources/drawable/ic32.png | Bin 0 -> 1788 bytes .../Resources/drawable/ic33.png | Bin 0 -> 2057 bytes .../Resources/drawable/ic34.png | Bin 0 -> 1907 bytes .../Resources/drawable/ic35.png | Bin 0 -> 3332 bytes .../Resources/drawable/ic36.png | Bin 0 -> 2508 bytes .../Resources/drawable/ic37.png | Bin 0 -> 3496 bytes .../Resources/drawable/ic38.png | Bin 0 -> 2938 bytes .../Resources/drawable/ic39.png | Bin 0 -> 3316 bytes .../Resources/drawable/ic40.png | Bin 0 -> 2707 bytes .../Resources/drawable/ic41.png | Bin 0 -> 1777 bytes .../Resources/drawable/ic42.png | Bin 0 -> 2276 bytes .../Resources/drawable/ic43.png | Bin 0 -> 1866 bytes .../Resources/drawable/ic44.png | Bin 0 -> 2089 bytes .../Resources/drawable/ic45.png | Bin 0 -> 2478 bytes .../Resources/drawable/ic46.png | Bin 0 -> 2328 bytes .../Resources/drawable/ic47.png | Bin 0 -> 2166 bytes .../Resources/drawable/ic48.png | Bin 0 -> 2972 bytes .../Resources/drawable/ic49.png | Bin 0 -> 2300 bytes .../Resources/drawable/ic50.png | Bin 0 -> 3154 bytes .../Resources/drawable/ic51.png | Bin 0 -> 2025 bytes .../Resources/drawable/ic52.png | Bin 0 -> 1795 bytes .../Resources/drawable/ic53.png | Bin 0 -> 1732 bytes .../Resources/drawable/ic54.png | Bin 0 -> 1443 bytes .../Resources/drawable/ic55.png | Bin 0 -> 1865 bytes .../Resources/drawable/ic56.png | Bin 0 -> 2251 bytes .../Resources/drawable/ic57.png | Bin 0 -> 1759 bytes .../Resources/drawable/ic58.png | Bin 0 -> 3240 bytes .../Resources/drawable/ic59.png | Bin 0 -> 2186 bytes .../Resources/drawable/ic60.png | Bin 0 -> 2676 bytes .../Resources/drawable/ic61.png | Bin 0 -> 2139 bytes .../Resources/drawable/ic62.png | Bin 0 -> 1428 bytes .../Resources/drawable/ic63.png | Bin 0 -> 1663 bytes .../Resources/drawable/ic64.png | Bin 0 -> 191 bytes .../Resources/drawable/ic65.png | Bin 0 -> 1827 bytes .../Resources/drawable/ic66.png | Bin 0 -> 930 bytes .../Resources/drawable/ic67.png | Bin 0 -> 410 bytes .../Resources/drawable/ic68.png | Bin 0 -> 631 bytes .../Resources/drawable/ic99_blank.png | Bin 0 -> 191 bytes .../Resources/drawable/ic_action_eye_open.png | Bin 0 -> 1373 bytes .../Resources/drawable/ic_action_search.png | Bin 0 -> 1429 bytes .../Resources/drawable/ic_launcher.png | Bin 0 -> 1561 bytes .../drawable/ic_launcher_folder_small.png | Bin 0 -> 1522 bytes .../Resources/drawable/ic_launcher_gray.png | Bin 0 -> 1379 bytes .../Resources/drawable/ic_menu_view.png | Bin 0 -> 1508 bytes .../Resources/drawable/launcher.png | Bin 0 -> 4936 bytes .../Resources/drawable/navigation_accept.png | Bin 0 -> 1320 bytes .../drawable/navigation_accept_dark.png | Bin 0 -> 1335 bytes .../drawable/navigation_previous_item.png | Bin 0 -> 1275 bytes .../navigation_previous_item_dark.png | Bin 0 -> 1482 bytes .../Resources/drawable/notify.png | Bin 0 -> 3934 bytes .../Resources/drawable/section_header.xml | 8 + .../layout-v11/entry_view_contents.xml | 176 ++ .../Resources/layout/QuickUnlock.xml | 70 + .../Resources/layout/StartScreenButtons.xml | 36 + .../Resources/layout/about.xml | 89 + .../Resources/layout/browser_install.xml | 55 + .../Resources/layout/database_settings.xml | 33 + .../Resources/layout/entry_edit.xml | 235 +++ .../Resources/layout/entry_edit_section.xml | 40 + .../Resources/layout/entry_list_entry.xml | 40 + .../Resources/layout/entry_section.xml | 22 + .../Resources/layout/entry_view.xml | 73 + .../Resources/layout/entry_view_contents.xml | 167 ++ .../Resources/layout/file_row.xml | 24 + .../Resources/layout/file_selection.xml | 57 + .../layout/file_selection_filename.xml | 93 + .../layout/file_selection_no_recent.xml | 62 + .../Resources/layout/generate_password.xml | 137 ++ .../Resources/layout/group_add_entry.xml | 50 + .../Resources/layout/group_edit.xml | 47 + .../Resources/layout/group_empty.xml | 36 + .../Resources/layout/group_header.xml | 30 + .../Resources/layout/group_list_entry.xml | 46 + src/keepass2android/Resources/layout/icon.xml | 45 + .../Resources/layout/icon_picker.xml | 30 + .../Resources/layout/password.xml | 95 + .../Resources/layout/search.xml | 108 + .../Resources/layout/set_password.xml | 54 + .../Resources/layout/url_credentials.xml | 25 + .../Resources/menu-v11/entry.xml | 45 + .../Resources/menu-v11/entry_edit.xml | 28 + .../Resources/menu-v11/fileselect.xml | 34 + .../Resources/menu-v11/group.xml | 47 + .../Resources/menu-v11/password.xml | 29 + src/keepass2android/Resources/menu/entry.xml | 43 + .../Resources/menu/entry_edit.xml | 32 + .../Resources/menu/fileselect.xml | 31 + src/keepass2android/Resources/menu/group.xml | 43 + .../Resources/menu/password.xml | 27 + .../Resources/values-ca/strings.xml | 183 ++ .../Resources/values-cs/strings.xml | 179 ++ .../Resources/values-da/strings.xml | 182 ++ .../Resources/values-de/strings.xml | 183 ++ .../Resources/values-es/strings.xml | 182 ++ .../Resources/values-fr/strings.xml | 114 ++ .../Resources/values-hu/strings.xml | 163 ++ .../Resources/values-it/strings.xml | 182 ++ .../Resources/values-ja/strings.xml | 180 ++ .../Resources/values-nl/strings.xml | 181 ++ .../Resources/values-nn/strings.xml | 179 ++ .../Resources/values-pl/strings.xml | 177 ++ .../Resources/values-pt-rBR/strings.xml | 182 ++ .../Resources/values-ru/strings.xml | 180 ++ .../Resources/values-sk/strings.xml | 179 ++ .../Resources/values-uk/strings.xml | 179 ++ .../Resources/values-v11/colors.xml | 26 + .../Resources/values-v11/styles.xml | 88 + .../Resources/values-zh-rCN/strings.xml | 178 ++ .../Resources/values-zh-rTW/strings.xml | 178 ++ .../Resources/values/colors.xml | 31 + .../Resources/values/config.xml | 70 + .../Resources/values/strings.xml | 255 +++ .../Resources/values/styles.xml | 100 + .../Resources/xml/preferences.xml | 121 ++ .../Resources/xml/searchable.xml | 24 + src/keepass2android/SetPasswordDialog.cs | 134 ++ src/keepass2android/ShareUrlResults.cs | 157 ++ .../SupportLib/android-support-v4.jar | Bin 0 -> 385685 bytes src/keepass2android/UpdateStatus.cs | 93 + src/keepass2android/Utils/Interaction.cs | 58 + src/keepass2android/Utils/Util.cs | 102 + src/keepass2android/app/App.cs | 100 + src/keepass2android/compat/ActivityCompat.cs | 59 + src/keepass2android/compat/EditorCompat.cs | 63 + .../database/edit/ActionOnFinish.cs | 62 + src/keepass2android/database/edit/AddEntry.cs | 98 + src/keepass2android/database/edit/AddGroup.cs | 103 + src/keepass2android/database/edit/CreateDB.cs | 87 + .../database/edit/DeleteEntry.cs | 133 ++ .../database/edit/DeleteGroup.cs | 184 ++ .../database/edit/FileOnFinish.cs | 49 + src/keepass2android/database/edit/LoadDB.cs | 119 ++ src/keepass2android/database/edit/OnFinish.cs | 88 + .../database/edit/RunnableOnFinish.cs | 62 + src/keepass2android/database/edit/SaveDB.cs | 75 + .../database/edit/SetPassword.cs | 112 + .../database/edit/UpdateEntry.cs | 101 + .../fileselect/BrowserDialog.cs | 85 + .../fileselect/FileDbHelper.cs | 290 +++ .../fileselect/FileSelectActivity.cs | 605 ++++++ src/keepass2android/icons/DrawableFactory.cs | 141 ++ src/keepass2android/icons/Icons.cs | 85 + src/keepass2android/intents/Intents.cs | 46 + src/keepass2android/keepass2android.csproj | 564 ++++++ .../password/PasswordGenerator.cs | 107 + src/keepass2android/search/SearchActivity.cs | 101 + src/keepass2android/search/SearchDbHelper.cs | 133 ++ src/keepass2android/search/SearchResults.cs | 122 ++ .../services/CopyToClipboardService.cs | 313 +++ .../services/QuickUnlockForegroundService.cs | 84 + .../services/TimeoutService.cs | 132 ++ .../settings/AppSettingsActivity.cs | 126 ++ src/keepass2android/settings/PrefsUtil.cs | 44 + .../settings/RoundsPreference.cs | 126 ++ src/keepass2android/timeout/TimeoutHelper.cs | 104 + src/keepass2android/timers/Timeout.cs | 85 + src/keepass2android/views/ClickView.cs | 52 + .../views/EntryContentsView.cs | 63 + src/keepass2android/views/EntryEditSection.cs | 83 + src/keepass2android/views/EntrySection.cs | 74 + src/keepass2android/views/FileNameView.cs | 81 + .../views/GroupAddEntryView.cs | 61 + src/keepass2android/views/GroupEmptyView.cs | 63 + src/keepass2android/views/GroupHeaderView.cs | 62 + src/keepass2android/views/GroupRootView.cs | 71 + .../views/GroupViewOnlyView.cs | 75 + src/keepass2android/views/PwEntryView.cs | 140 ++ src/keepass2android/views/PwGroupView.cs | 121 ++ src/keepass2android/views/TextViewSelect.cs | 91 + 439 files changed, 19770 insertions(+), 153 deletions(-) create mode 100644 .gitignore create mode 100644 CONTRIBUTORS create mode 100644 COPYING.gpl-2.0 create mode 100644 LICENSE create mode 100644 src/KeePass.sln create mode 100644 src/keepass2android/AboutDialog.cs create mode 100644 src/keepass2android/AssemblyInfo.cs create mode 100644 src/keepass2android/BitmapDrawableCompat.cs create mode 100644 src/keepass2android/CancelDialog.cs create mode 100644 src/keepass2android/Database.cs create mode 100644 src/keepass2android/EntryActivity.cs create mode 100644 src/keepass2android/EntryEditActivity.cs create mode 100644 src/keepass2android/GeneratePasswordActivity.cs create mode 100644 src/keepass2android/GroupActivity.cs create mode 100644 src/keepass2android/GroupBaseActivity.cs create mode 100644 src/keepass2android/GroupEditActivity.cs create mode 100644 src/keepass2android/IconPickerActivity.cs create mode 100644 src/keepass2android/KeePass.cs create mode 100644 src/keepass2android/KeyFileException.cs create mode 100644 src/keepass2android/LifecycleDebugActivity.cs create mode 100644 src/keepass2android/LockCloseActivity.cs create mode 100644 src/keepass2android/LockCloseListActivity.cs create mode 100644 src/keepass2android/LockingActivity.cs create mode 100644 src/keepass2android/LockingClosePreferenceActivity.cs create mode 100644 src/keepass2android/LockingListActivity.cs create mode 100644 src/keepass2android/LockingPreferenceActivity.cs create mode 100644 src/keepass2android/PasswordActivity.cs create mode 100644 src/keepass2android/ProgressTask.cs create mode 100644 src/keepass2android/Properties/AndroidManifest.xml create mode 100644 src/keepass2android/Properties/AssemblyInfo.cs create mode 100644 src/keepass2android/PwGroupEqualityFromIdComparer.cs create mode 100644 src/keepass2android/PwGroupListAdapter.cs create mode 100644 src/keepass2android/PwUuidEqualityComparer.cs create mode 100644 src/keepass2android/QuickUnlock.cs create mode 100644 src/keepass2android/Resources/AboutResources.txt create mode 100644 src/keepass2android/Resources/Resource.designer.cs create mode 100644 src/keepass2android/Resources/drawable-hdpi/2_action_about.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic00.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic01.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic02.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic03.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic04.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic05.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic06.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic07.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic08.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic09.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic10.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic11.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic12.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic13.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic14.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic15.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic16.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic17.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic18.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic19.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic20.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic21.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic22.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic23.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic24.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic25.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic26.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic27.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic28.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic29.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic30.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic31.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic32.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic33.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic34.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic35.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic36.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic37.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic38.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic39.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic40.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic41.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic42.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic43.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic44.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic45.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic46.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic47.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic48.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic49.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic50.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic51.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic52.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic53.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic54.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic55.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic56.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic57.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic58.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic59.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic60.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic61.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic62.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic63.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic64.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic65.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic66.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic67.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic68.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic99_blank.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic_action_eye_open.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic_action_search.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/ic_launcher.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/navigation_accept.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/navigation_accept_dark.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/navigation_previous_item.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/navigation_previous_item_dark.png create mode 100644 src/keepass2android/Resources/drawable-hdpi/notify.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic00.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic01.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic02.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic03.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic04.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic05.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic06.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic07.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic08.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic09.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic10.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic11.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic12.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic13.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic14.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic15.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic16.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic17.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic18.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic19.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic20.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic21.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic22.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic23.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic24.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic25.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic26.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic27.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic28.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic29.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic30.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic31.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic32.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic33.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic34.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic35.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic36.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic37.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic38.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic39.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic40.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic41.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic42.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic43.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic44.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic45.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic46.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic47.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic48.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic49.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic50.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic51.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic52.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic53.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic54.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic55.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic56.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic57.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic58.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic59.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic60.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic61.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic62.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic63.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic64.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic65.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic66.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic67.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic68.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/ic99_blank.png create mode 100644 src/keepass2android/Resources/drawable-ldpi/notify.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/ic_action_eye_open.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/ic_action_search.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/ic_launcher.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/navigation_accept.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/navigation_accept_dark.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/navigation_previous_item.png create mode 100644 src/keepass2android/Resources/drawable-mdpi/navigation_previous_item_dark.png create mode 100644 src/keepass2android/Resources/drawable-v11/EntryFieldHeaderBackground.xml create mode 100644 src/keepass2android/Resources/drawable-xhdpi/2_action_about.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/ic_action_eye_open.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/ic_launcher.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/navigation_accept.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/navigation_accept_dark.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/navigation_previous_item.png create mode 100644 src/keepass2android/Resources/drawable-xhdpi/navigation_previous_item_dark.png create mode 100644 src/keepass2android/Resources/drawable-xxhdpi/ic_launcher.png create mode 100644 src/keepass2android/Resources/drawable/2_action_about.png create mode 100644 src/keepass2android/Resources/drawable/BlueButton.xml create mode 100644 src/keepass2android/Resources/drawable/EntryFieldHeaderBackground.xml create mode 100644 src/keepass2android/Resources/drawable/GreenButton.xml create mode 100644 src/keepass2android/Resources/drawable/HeaderButtonBackground.xml create mode 100644 src/keepass2android/Resources/drawable/Icon.png create mode 100644 src/keepass2android/Resources/drawable/RedButton.xml create mode 100644 src/keepass2android/Resources/drawable/YellowButton.xml create mode 100644 src/keepass2android/Resources/drawable/btn_new_group.png create mode 100644 src/keepass2android/Resources/drawable/btn_new_group_dark.png create mode 100644 src/keepass2android/Resources/drawable/device_access_new_account.png create mode 100644 src/keepass2android/Resources/drawable/device_access_new_account_dark.png create mode 100644 src/keepass2android/Resources/drawable/extra_string_header.xml create mode 100644 src/keepass2android/Resources/drawable/ic00.png create mode 100644 src/keepass2android/Resources/drawable/ic01.png create mode 100644 src/keepass2android/Resources/drawable/ic02.png create mode 100644 src/keepass2android/Resources/drawable/ic03.png create mode 100644 src/keepass2android/Resources/drawable/ic04.png create mode 100644 src/keepass2android/Resources/drawable/ic05.png create mode 100644 src/keepass2android/Resources/drawable/ic06.png create mode 100644 src/keepass2android/Resources/drawable/ic07.png create mode 100644 src/keepass2android/Resources/drawable/ic08.png create mode 100644 src/keepass2android/Resources/drawable/ic09.png create mode 100644 src/keepass2android/Resources/drawable/ic10.png create mode 100644 src/keepass2android/Resources/drawable/ic11.png create mode 100644 src/keepass2android/Resources/drawable/ic12.png create mode 100644 src/keepass2android/Resources/drawable/ic13.png create mode 100644 src/keepass2android/Resources/drawable/ic14.png create mode 100644 src/keepass2android/Resources/drawable/ic15.png create mode 100644 src/keepass2android/Resources/drawable/ic16.png create mode 100644 src/keepass2android/Resources/drawable/ic17.png create mode 100644 src/keepass2android/Resources/drawable/ic18.png create mode 100644 src/keepass2android/Resources/drawable/ic19.png create mode 100644 src/keepass2android/Resources/drawable/ic20.png create mode 100644 src/keepass2android/Resources/drawable/ic21.png create mode 100644 src/keepass2android/Resources/drawable/ic22.png create mode 100644 src/keepass2android/Resources/drawable/ic23.png create mode 100644 src/keepass2android/Resources/drawable/ic24.png create mode 100644 src/keepass2android/Resources/drawable/ic25.png create mode 100644 src/keepass2android/Resources/drawable/ic26.png create mode 100644 src/keepass2android/Resources/drawable/ic27.png create mode 100644 src/keepass2android/Resources/drawable/ic28.png create mode 100644 src/keepass2android/Resources/drawable/ic29.png create mode 100644 src/keepass2android/Resources/drawable/ic30.png create mode 100644 src/keepass2android/Resources/drawable/ic31.png create mode 100644 src/keepass2android/Resources/drawable/ic32.png create mode 100644 src/keepass2android/Resources/drawable/ic33.png create mode 100644 src/keepass2android/Resources/drawable/ic34.png create mode 100644 src/keepass2android/Resources/drawable/ic35.png create mode 100644 src/keepass2android/Resources/drawable/ic36.png create mode 100644 src/keepass2android/Resources/drawable/ic37.png create mode 100644 src/keepass2android/Resources/drawable/ic38.png create mode 100644 src/keepass2android/Resources/drawable/ic39.png create mode 100644 src/keepass2android/Resources/drawable/ic40.png create mode 100644 src/keepass2android/Resources/drawable/ic41.png create mode 100644 src/keepass2android/Resources/drawable/ic42.png create mode 100644 src/keepass2android/Resources/drawable/ic43.png create mode 100644 src/keepass2android/Resources/drawable/ic44.png create mode 100644 src/keepass2android/Resources/drawable/ic45.png create mode 100644 src/keepass2android/Resources/drawable/ic46.png create mode 100644 src/keepass2android/Resources/drawable/ic47.png create mode 100644 src/keepass2android/Resources/drawable/ic48.png create mode 100644 src/keepass2android/Resources/drawable/ic49.png create mode 100644 src/keepass2android/Resources/drawable/ic50.png create mode 100644 src/keepass2android/Resources/drawable/ic51.png create mode 100644 src/keepass2android/Resources/drawable/ic52.png create mode 100644 src/keepass2android/Resources/drawable/ic53.png create mode 100644 src/keepass2android/Resources/drawable/ic54.png create mode 100644 src/keepass2android/Resources/drawable/ic55.png create mode 100644 src/keepass2android/Resources/drawable/ic56.png create mode 100644 src/keepass2android/Resources/drawable/ic57.png create mode 100644 src/keepass2android/Resources/drawable/ic58.png create mode 100644 src/keepass2android/Resources/drawable/ic59.png create mode 100644 src/keepass2android/Resources/drawable/ic60.png create mode 100644 src/keepass2android/Resources/drawable/ic61.png create mode 100644 src/keepass2android/Resources/drawable/ic62.png create mode 100644 src/keepass2android/Resources/drawable/ic63.png create mode 100644 src/keepass2android/Resources/drawable/ic64.png create mode 100644 src/keepass2android/Resources/drawable/ic65.png create mode 100644 src/keepass2android/Resources/drawable/ic66.png create mode 100644 src/keepass2android/Resources/drawable/ic67.png create mode 100644 src/keepass2android/Resources/drawable/ic68.png create mode 100644 src/keepass2android/Resources/drawable/ic99_blank.png create mode 100644 src/keepass2android/Resources/drawable/ic_action_eye_open.png create mode 100644 src/keepass2android/Resources/drawable/ic_action_search.png create mode 100644 src/keepass2android/Resources/drawable/ic_launcher.png create mode 100644 src/keepass2android/Resources/drawable/ic_launcher_folder_small.png create mode 100644 src/keepass2android/Resources/drawable/ic_launcher_gray.png create mode 100644 src/keepass2android/Resources/drawable/ic_menu_view.png create mode 100644 src/keepass2android/Resources/drawable/launcher.png create mode 100644 src/keepass2android/Resources/drawable/navigation_accept.png create mode 100644 src/keepass2android/Resources/drawable/navigation_accept_dark.png create mode 100644 src/keepass2android/Resources/drawable/navigation_previous_item.png create mode 100644 src/keepass2android/Resources/drawable/navigation_previous_item_dark.png create mode 100644 src/keepass2android/Resources/drawable/notify.png create mode 100644 src/keepass2android/Resources/drawable/section_header.xml create mode 100644 src/keepass2android/Resources/layout-v11/entry_view_contents.xml create mode 100644 src/keepass2android/Resources/layout/QuickUnlock.xml create mode 100644 src/keepass2android/Resources/layout/StartScreenButtons.xml create mode 100644 src/keepass2android/Resources/layout/about.xml create mode 100644 src/keepass2android/Resources/layout/browser_install.xml create mode 100644 src/keepass2android/Resources/layout/database_settings.xml create mode 100644 src/keepass2android/Resources/layout/entry_edit.xml create mode 100644 src/keepass2android/Resources/layout/entry_edit_section.xml create mode 100644 src/keepass2android/Resources/layout/entry_list_entry.xml create mode 100644 src/keepass2android/Resources/layout/entry_section.xml create mode 100644 src/keepass2android/Resources/layout/entry_view.xml create mode 100644 src/keepass2android/Resources/layout/entry_view_contents.xml create mode 100644 src/keepass2android/Resources/layout/file_row.xml create mode 100644 src/keepass2android/Resources/layout/file_selection.xml create mode 100644 src/keepass2android/Resources/layout/file_selection_filename.xml create mode 100644 src/keepass2android/Resources/layout/file_selection_no_recent.xml create mode 100644 src/keepass2android/Resources/layout/generate_password.xml create mode 100644 src/keepass2android/Resources/layout/group_add_entry.xml create mode 100644 src/keepass2android/Resources/layout/group_edit.xml create mode 100644 src/keepass2android/Resources/layout/group_empty.xml create mode 100644 src/keepass2android/Resources/layout/group_header.xml create mode 100644 src/keepass2android/Resources/layout/group_list_entry.xml create mode 100644 src/keepass2android/Resources/layout/icon.xml create mode 100644 src/keepass2android/Resources/layout/icon_picker.xml create mode 100644 src/keepass2android/Resources/layout/password.xml create mode 100644 src/keepass2android/Resources/layout/search.xml create mode 100644 src/keepass2android/Resources/layout/set_password.xml create mode 100644 src/keepass2android/Resources/layout/url_credentials.xml create mode 100644 src/keepass2android/Resources/menu-v11/entry.xml create mode 100644 src/keepass2android/Resources/menu-v11/entry_edit.xml create mode 100644 src/keepass2android/Resources/menu-v11/fileselect.xml create mode 100644 src/keepass2android/Resources/menu-v11/group.xml create mode 100644 src/keepass2android/Resources/menu-v11/password.xml create mode 100644 src/keepass2android/Resources/menu/entry.xml create mode 100644 src/keepass2android/Resources/menu/entry_edit.xml create mode 100644 src/keepass2android/Resources/menu/fileselect.xml create mode 100644 src/keepass2android/Resources/menu/group.xml create mode 100644 src/keepass2android/Resources/menu/password.xml create mode 100644 src/keepass2android/Resources/values-ca/strings.xml create mode 100644 src/keepass2android/Resources/values-cs/strings.xml create mode 100644 src/keepass2android/Resources/values-da/strings.xml create mode 100644 src/keepass2android/Resources/values-de/strings.xml create mode 100644 src/keepass2android/Resources/values-es/strings.xml create mode 100644 src/keepass2android/Resources/values-fr/strings.xml create mode 100644 src/keepass2android/Resources/values-hu/strings.xml create mode 100644 src/keepass2android/Resources/values-it/strings.xml create mode 100644 src/keepass2android/Resources/values-ja/strings.xml create mode 100644 src/keepass2android/Resources/values-nl/strings.xml create mode 100644 src/keepass2android/Resources/values-nn/strings.xml create mode 100644 src/keepass2android/Resources/values-pl/strings.xml create mode 100644 src/keepass2android/Resources/values-pt-rBR/strings.xml create mode 100644 src/keepass2android/Resources/values-ru/strings.xml create mode 100644 src/keepass2android/Resources/values-sk/strings.xml create mode 100644 src/keepass2android/Resources/values-uk/strings.xml create mode 100644 src/keepass2android/Resources/values-v11/colors.xml create mode 100644 src/keepass2android/Resources/values-v11/styles.xml create mode 100644 src/keepass2android/Resources/values-zh-rCN/strings.xml create mode 100644 src/keepass2android/Resources/values-zh-rTW/strings.xml create mode 100644 src/keepass2android/Resources/values/colors.xml create mode 100644 src/keepass2android/Resources/values/config.xml create mode 100644 src/keepass2android/Resources/values/strings.xml create mode 100644 src/keepass2android/Resources/values/styles.xml create mode 100644 src/keepass2android/Resources/xml/preferences.xml create mode 100644 src/keepass2android/Resources/xml/searchable.xml create mode 100644 src/keepass2android/SetPasswordDialog.cs create mode 100644 src/keepass2android/ShareUrlResults.cs create mode 100644 src/keepass2android/SupportLib/android-support-v4.jar create mode 100644 src/keepass2android/UpdateStatus.cs create mode 100644 src/keepass2android/Utils/Interaction.cs create mode 100644 src/keepass2android/Utils/Util.cs create mode 100644 src/keepass2android/app/App.cs create mode 100644 src/keepass2android/compat/ActivityCompat.cs create mode 100644 src/keepass2android/compat/EditorCompat.cs create mode 100644 src/keepass2android/database/edit/ActionOnFinish.cs create mode 100644 src/keepass2android/database/edit/AddEntry.cs create mode 100644 src/keepass2android/database/edit/AddGroup.cs create mode 100644 src/keepass2android/database/edit/CreateDB.cs create mode 100644 src/keepass2android/database/edit/DeleteEntry.cs create mode 100644 src/keepass2android/database/edit/DeleteGroup.cs create mode 100644 src/keepass2android/database/edit/FileOnFinish.cs create mode 100644 src/keepass2android/database/edit/LoadDB.cs create mode 100644 src/keepass2android/database/edit/OnFinish.cs create mode 100644 src/keepass2android/database/edit/RunnableOnFinish.cs create mode 100644 src/keepass2android/database/edit/SaveDB.cs create mode 100644 src/keepass2android/database/edit/SetPassword.cs create mode 100644 src/keepass2android/database/edit/UpdateEntry.cs create mode 100644 src/keepass2android/fileselect/BrowserDialog.cs create mode 100644 src/keepass2android/fileselect/FileDbHelper.cs create mode 100644 src/keepass2android/fileselect/FileSelectActivity.cs create mode 100644 src/keepass2android/icons/DrawableFactory.cs create mode 100644 src/keepass2android/icons/Icons.cs create mode 100644 src/keepass2android/intents/Intents.cs create mode 100644 src/keepass2android/keepass2android.csproj create mode 100644 src/keepass2android/password/PasswordGenerator.cs create mode 100644 src/keepass2android/search/SearchActivity.cs create mode 100644 src/keepass2android/search/SearchDbHelper.cs create mode 100644 src/keepass2android/search/SearchResults.cs create mode 100644 src/keepass2android/services/CopyToClipboardService.cs create mode 100644 src/keepass2android/services/QuickUnlockForegroundService.cs create mode 100644 src/keepass2android/services/TimeoutService.cs create mode 100644 src/keepass2android/settings/AppSettingsActivity.cs create mode 100644 src/keepass2android/settings/PrefsUtil.cs create mode 100644 src/keepass2android/settings/RoundsPreference.cs create mode 100644 src/keepass2android/timeout/TimeoutHelper.cs create mode 100644 src/keepass2android/timers/Timeout.cs create mode 100644 src/keepass2android/views/ClickView.cs create mode 100644 src/keepass2android/views/EntryContentsView.cs create mode 100644 src/keepass2android/views/EntryEditSection.cs create mode 100644 src/keepass2android/views/EntrySection.cs create mode 100644 src/keepass2android/views/FileNameView.cs create mode 100644 src/keepass2android/views/GroupAddEntryView.cs create mode 100644 src/keepass2android/views/GroupEmptyView.cs create mode 100644 src/keepass2android/views/GroupHeaderView.cs create mode 100644 src/keepass2android/views/GroupRootView.cs create mode 100644 src/keepass2android/views/GroupViewOnlyView.cs create mode 100644 src/keepass2android/views/PwEntryView.cs create mode 100644 src/keepass2android/views/PwGroupView.cs create mode 100644 src/keepass2android/views/TextViewSelect.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2e4f4b16 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/src/keepass2android/todos.cs +/src/keepass2android/obj +/src/keepass2android/bin +/src/KeePassLib2Android/bin diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 00000000..95d2cc54 --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,5 @@ +Author of Keepass2Android: Philipp Crocoll +Author of KeePass (KP2A contains the KeePassLib): Dominik Reichl +Author of Keepassdroid (ported as base for UI): Brian Pellin + See https://github.com/bpellin/keepassdroid/blob/master/CONTRIBUTORS + for further Contributors of Keepassdroid. diff --git a/COPYING.gpl-2.0 b/COPYING.gpl-2.0 new file mode 100644 index 00000000..d511905c --- /dev/null +++ b/COPYING.gpl-2.0 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..5886ba1e --- /dev/null +++ b/LICENSE @@ -0,0 +1,132 @@ +Files under src/KeepassLib2Android: GPL-v2, Copyright Dominik Reichl (Modifications Copyright by Philipp Crocoll) + +--- + +Files under src/keepass2android* except under src/keepass2android/Resources/drawable*: + +Copyright Philipp Crocoll + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +--- + +Files ic00.png to ic61.png under src/keepass2android/Resources/drawable, src/keepass2android/Resources/drawable-hdpi and src/keepass2android/Resources/drawable-ldpi + +TITLE: NUVOLA ICON THEME for KDE 3.x +AUTHOR: David Vignoni | ICON KING +SITE: http://www.icon-king.com +MAILING LIST: http://mail.icon-king.com/mailman/listinfo/nuvola_icon-king.com + +Copyright (c) 2003-2004 David Vignoni. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation, +version 2.1 of the License. +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. +You should have received a copy of the GNU Lesser General Public +License along with this library (see the the license.txt file); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#######**** NOTE THIS ADD-ON ****####### +The GNU Lesser General Public License or LGPL is written for software libraries +in the first place. The LGPL has to be considered valid for this artwork +library too. +Nuvola icon theme for KDE 3.x is a special kind of software library, it is an +artwork library, it's elements can be used in a Graphical User Interface, or +GUI. +Source code, for this library means: + - raster png image* . +The LGPL in some sections obliges you to make the files carry +notices. With images this is in some cases impossible or hardly usefull. +With this library a notice is placed at a prominent place in the directory +containing the elements. You may follow this practice. +The exception in section 6 of the GNU Lesser General Public License covers +the use of elements of this art library in a GUI. +dave [at] icon-king.com + +Date: 15 october 2004 +Version: 1.0 + +DESCRIPTION: + +Icon theme for KDE 3.x. +Icons where designed using Adobe Illustrator, and then exported to PNG format. +Icons shadows and minor corrections were done using Adobe Photoshop. +Kiconedit was used to correct some 16x16 and 22x22 icons. + +LICENSE + +Released under GNU Lesser General Public License (LGPL) +Look at the license.txt file. + +CONTACT + +David Vignoni +e-mail : david [at] icon-king.com +ICQ : 117761009 +http: http://www.icon-king.com + +--- + +Files ic62.png under src/keepass2android/Resources/drawable, src/keepass2android/Resources/drawable-hdpi and src/keepass2android/Resources/drawable-ldpi + +Based on http://de.wikipedia.org/w/index.php?title=Datei:Tux.svg&filetimestamp=20090927073505 + +The copyright holder of this file allows anyone to use it for any purpose, +provided that the copyright holders Larry Ewing, Simon Budig and +Anja Gerwinski are mentioned. + +--- + +Files ic63.png under src/keepass2android/Resources/drawable, src/keepass2android/Resources/drawable-hdpi and src/keepass2android/Resources/drawable-ldpi + +Based on http://en.wikipedia.org/wiki/File:ASF-logo.svg + +Apache logo +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. You may +obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations under +the License. + +--- + +Files ic64.png under src/keepass2android/Resources/drawable, src/keepass2android/Resources/drawable-hdpi and src/keepass2android/Resources/drawable-ldpi + +!!! Not included yet !!! + +--- + +Files ic65.png, ic67.png and ic68.png under src/keepass2android/Resources/drawable, src/keepass2android/Resources/drawable-hdpi and src/keepass2android/Resources/drawable-ldpi + +Created by Tobias Selig and licensed under the terms of the GPLv2 or GPLv3. + +--- + +File ic66.png under under src/keepass2android/Resources/drawable, src/keepass2android/Resources/drawable-hdpi and src/keepass2android/Resources/drawable-ldpi + +Based on http://commons.wikimedia.org/wiki/File:Dollar_symbol_gold.svg + +Author: Rugby471 + +Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU Free Documentation License, Version 1.2 or any later +version published by the Free Software Foundation; with no Invariant Sections, +no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is +included in the section entitled "GNU Free Documentation License". diff --git a/src/KeePass.sln b/src/KeePass.sln new file mode 100644 index 00000000..435c9b7b --- /dev/null +++ b/src/KeePass.sln @@ -0,0 +1,104 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeePassLib2Android", "KeePassLib2Android\KeePassLib2Android.csproj", "{545B4A6B-8BBA-4FBE-92FC-4AC060122A54}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "keepass2android", "keepass2android\keepass2android.csproj", "{A6CF8A86-37C1-4197-80FE-519DE2C842F5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|Win32.ActiveCfg = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|Win32.Build.0 = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|x64.ActiveCfg = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Debug|x64.Build.0 = Debug|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|Any CPU.Build.0 = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|Win32.ActiveCfg = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|Win32.Build.0 = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|x64.ActiveCfg = Release|Any CPU + {545B4A6B-8BBA-4FBE-92FC-4AC060122A54}.Release|x64.Build.0 = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|Win32.ActiveCfg = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|Win32.Build.0 = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Debug|x64.Build.0 = Debug|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|Any CPU.Build.0 = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|Win32.ActiveCfg = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|Win32.Build.0 = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|x64.ActiveCfg = Release|Any CPU + {A6CF8A86-37C1-4197-80FE-519DE2C842F5}.Release|x64.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = keepass2android\keepass2android.csproj + Policies = $0 + $0.DotNetNamingPolicy = $1 + $1.DirectoryNamespaceAssociation = None + $1.ResourceNamePolicy = FileFormatDefault + $0.TextStylePolicy = $2 + $2.FileWidth = 120 + $2.TabsToSpaces = False + $2.inheritsSet = VisualStudio + $2.inheritsScope = text/plain + $2.scope = text/x-csharp + $0.CSharpFormattingPolicy = $3 + $3.IndentSwitchBody = True + $3.AnonymousMethodBraceStyle = NextLine + $3.PropertyBraceStyle = NextLine + $3.PropertyGetBraceStyle = NextLine + $3.PropertySetBraceStyle = NextLine + $3.EventBraceStyle = NextLine + $3.EventAddBraceStyle = NextLine + $3.EventRemoveBraceStyle = NextLine + $3.StatementBraceStyle = NextLine + $3.ArrayInitializerBraceStyle = NextLine + $3.BeforeMethodDeclarationParentheses = False + $3.BeforeMethodCallParentheses = False + $3.BeforeConstructorDeclarationParentheses = False + $3.BeforeDelegateDeclarationParentheses = False + $3.NewParentheses = False + $3.inheritsSet = Mono + $3.inheritsScope = text/x-csharp + $3.scope = text/x-csharp + $0.TextStylePolicy = $4 + $4.FileWidth = 120 + $4.TabsToSpaces = False + $4.inheritsSet = VisualStudio + $4.inheritsScope = text/plain + $4.scope = text/plain + $0.TextStylePolicy = $5 + $5.inheritsSet = null + $5.scope = application/xml + $0.XmlFormattingPolicy = $6 + $6.inheritsSet = Mono + $6.inheritsScope = application/xml + $6.scope = application/xml + $0.StandardHeader = $7 + $7.Text = @/*\nThis file is part of Keepass2Android, Copyright 2013 Philipp Crocoll.\n\n Keepass2Android is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 2 of the License, or\n (at your option) any later version.\n\n Keepass2Android is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Keepass2Android. If not, see .\n */\n + $7.IncludeInNewFiles = True + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/KeePassLib2Android/Cryptography/CryptoRandom.cs b/src/KeePassLib2Android/Cryptography/CryptoRandom.cs index 1cd1523e..50660ced 100644 --- a/src/KeePassLib2Android/Cryptography/CryptoRandom.cs +++ b/src/KeePassLib2Android/Cryptography/CryptoRandom.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,7 +24,6 @@ using System.Security; using System.Security.Cryptography; using System.IO; using System.Diagnostics; -using System.Windows.Forms; using System.Drawing; using KeePassLib.Native; @@ -137,13 +138,6 @@ namespace KeePassLib.Cryptography pb = TimeUtil.PackTime(DateTime.Now); ms.Write(pb, 0, pb.Length); -#if !KeePassLibSD - Point pt = Cursor.Position; - pb = MemUtil.UInt32ToBytes((uint)pt.X); - ms.Write(pb, 0, pb.Length); - pb = MemUtil.UInt32ToBytes((uint)pt.Y); - ms.Write(pb, 0, pb.Length); -#endif pb = MemUtil.UInt32ToBytes((uint)rWeak.Next()); ms.Write(pb, 0, pb.Length); diff --git a/src/KeePassLib2Android/KeePassLib2Android.csproj b/src/KeePassLib2Android/KeePassLib2Android.csproj index 52c4dccc..714fb3fa 100644 --- a/src/KeePassLib2Android/KeePassLib2Android.csproj +++ b/src/KeePassLib2Android/KeePassLib2Android.csproj @@ -41,6 +41,8 @@ + + diff --git a/src/KeePassLib2Android/Keys/KcpKeyFile.cs b/src/KeePassLib2Android/Keys/KcpKeyFile.cs index 3a0a71a0..a02c701d 100644 --- a/src/KeePassLib2Android/Keys/KcpKeyFile.cs +++ b/src/KeePassLib2Android/Keys/KcpKeyFile.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -71,7 +73,7 @@ namespace KeePassLib.Keys private void Construct(IOConnectionInfo iocFile) { byte[] pbFileData = IOConnection.ReadFile(iocFile); - if(pbFileData == null) throw new FileNotFoundException(); + if(pbFileData == null) throw new Java.IO.FileNotFoundException(); byte[] pbKey = LoadXmlKeyFile(pbFileData); if(pbKey == null) pbKey = LoadKeyFile(pbFileData); diff --git a/src/KeePassLib2Android/Keys/KcpUserAccount.cs b/src/KeePassLib2Android/Keys/KcpUserAccount.cs index aefb02c9..b3b7da49 100644 --- a/src/KeePassLib2Android/Keys/KcpUserAccount.cs +++ b/src/KeePassLib2Android/Keys/KcpUserAccount.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -59,18 +61,7 @@ namespace KeePassLib.Keys /// public KcpUserAccount() { - // Test if ProtectedData is supported -- throws an exception - // when running on an old system (Windows 98 / ME). - byte[] pbDummyData = new byte[128]; - ProtectedData.Protect(pbDummyData, m_pbEntropy, - DataProtectionScope.CurrentUser); - - byte[] pbKey = LoadUserKey(false); - if(pbKey == null) pbKey = CreateUserKey(); - if(pbKey == null) throw new SecurityException(KLRes.UserAccountKeyError); - - m_pbKeyData = new ProtectedBinary(true, pbKey); - Array.Clear(pbKey, 0, pbKey.Length); + throw new NotSupportedException("DataProtection not supported on MonoForAndroid!"); } // public void Clear() @@ -100,13 +91,7 @@ namespace KeePassLib.Keys #if !KeePassLibSD try { - string strFilePath = GetUserKeyFilePath(false); - byte[] pbProtectedKey = File.ReadAllBytes(strFilePath); - - pbKey = ProtectedData.Unprotect(pbProtectedKey, m_pbEntropy, - DataProtectionScope.CurrentUser); - - Array.Clear(pbProtectedKey, 0, pbProtectedKey.Length); + throw new NotSupportedException("DataProtection not supported on MonoForAndroid!"); } catch(Exception exLoad) { @@ -126,18 +111,7 @@ namespace KeePassLib.Keys #if !KeePassLibSD try { - string strFilePath = GetUserKeyFilePath(true); - - byte[] pbRandomKey = CryptoRandom.Instance.GetRandomBytes(64); - byte[] pbProtectedKey = ProtectedData.Protect(pbRandomKey, - m_pbEntropy, DataProtectionScope.CurrentUser); - - File.WriteAllBytes(strFilePath, pbProtectedKey); - - Array.Clear(pbProtectedKey, 0, pbProtectedKey.Length); - Array.Clear(pbRandomKey, 0, pbRandomKey.Length); - - pbKey = LoadUserKey(true); + throw new NotSupportedException("DataProtection not supported on MonoForAndroid!"); } catch(Exception) { pbKey = null; } #endif diff --git a/src/KeePassLib2Android/Native/NativeLib.cs b/src/KeePassLib2Android/Native/NativeLib.cs index 26bf031b..06378d5b 100644 --- a/src/KeePassLib2Android/Native/NativeLib.cs +++ b/src/KeePassLib2Android/Native/NativeLib.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -90,13 +92,14 @@ namespace KeePassLib.Native m_platID = Environment.OSVersion.Platform; #if !KeePassLibSD - // Mono returns PlatformID.Unix on Mac OS X, workaround this + /*// Mono returns PlatformID.Unix on Mac OS X, workaround this + //fails on Anroid if(m_platID.Value == PlatformID.Unix) { if((RunConsoleApp("uname", null) ?? string.Empty).Trim().Equals( "Darwin", StrUtil.CaseIgnoreCmp)) m_platID = PlatformID.MacOSX; - } + }*/ #endif return m_platID.Value; diff --git a/src/KeePassLib2Android/PwCustomIcon.cs b/src/KeePassLib2Android/PwCustomIcon.cs index f32bc1a8..38cac720 100644 --- a/src/KeePassLib2Android/PwCustomIcon.cs +++ b/src/KeePassLib2Android/PwCustomIcon.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,8 +26,10 @@ using System.IO; using KeePassLib.Utility; + namespace KeePassLib { + /// /// Custom icon. PwCustomIcon objects are immutable. /// @@ -33,7 +37,7 @@ namespace KeePassLib { private PwUuid m_pwUuid; private byte[] m_pbImageDataPng; - private Image m_pCachedImage; + private Android.Graphics.Bitmap m_pCachedImage; public PwUuid Uuid { @@ -45,7 +49,7 @@ namespace KeePassLib get { return m_pbImageDataPng; } } - public Image Image + public Android.Graphics.Bitmap Image { get { return m_pCachedImage; } } diff --git a/src/KeePassLib2Android/PwDatabase.cs b/src/KeePassLib2Android/PwDatabase.cs index d3ef6570..925ab468 100644 --- a/src/KeePassLib2Android/PwDatabase.cs +++ b/src/KeePassLib2Android/PwDatabase.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1405,7 +1407,7 @@ namespace KeePassLib /// /// ID of the icon. /// Image data. - public Image GetCustomIcon(PwUuid pwIconId) + public Android.Graphics.Bitmap GetCustomIcon(PwUuid pwIconId) { int nIndex = GetCustomIconIndex(pwIconId); diff --git a/src/KeePassLib2Android/Resources/AboutResources.txt b/src/KeePassLib2Android/Resources/AboutResources.txt index 10f52d46..6dff7bcc 100644 --- a/src/KeePassLib2Android/Resources/AboutResources.txt +++ b/src/KeePassLib2Android/Resources/AboutResources.txt @@ -40,5 +40,5 @@ public class R { } You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main -to reference the layout/main.axml file, or R.strings.first_string to reference the first +to reference the layout/main.axml file, or R.Strings.first_string to reference the first string in the dictionary file values/strings.xml. diff --git a/src/KeePassLib2Android/Resources/Resource.designer.cs b/src/KeePassLib2Android/Resources/Resource.designer.cs index abaffe08..ee0b9514 100644 --- a/src/KeePassLib2Android/Resources/Resource.designer.cs +++ b/src/KeePassLib2Android/Resources/Resource.designer.cs @@ -1,3 +1,4 @@ +#pragma warning disable 1591 //------------------------------------------------------------------------------ // // Dieser Code wurde von einem Tool generiert. @@ -8,10 +9,13 @@ // //------------------------------------------------------------------------------ +[assembly: Android.Runtime.ResourceDesignerAttribute("KeePassLib2Android.Resource", IsApplication=false)] + namespace KeePassLib2Android { + [System.CodeDom.Compiler.GeneratedCodeAttribute("Novell.MonoDroid.Build.Tasks", "1.0.0.0")] public partial class Resource { @@ -27,7 +31,7 @@ namespace KeePassLib2Android { // aapt resource value: 0x7f020000 - public const int library_name = 2130837504; + public static int library_name = 2130837504; private String() { @@ -35,3 +39,4 @@ namespace KeePassLib2Android } } } +#pragma warning restore 1591 diff --git a/src/KeePassLib2Android/Security/ProtectedBinary.cs b/src/KeePassLib2Android/Security/ProtectedBinary.cs index b8ce4923..1a25fda4 100644 --- a/src/KeePassLib2Android/Security/ProtectedBinary.cs +++ b/src/KeePassLib2Android/Security/ProtectedBinary.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -73,16 +75,8 @@ namespace KeePassLib.Security static ProtectedBinary() { - try // Test whether ProtectedMemory is supported - { - byte[] pbDummy = new byte[PmBlockSize * 2]; - ProtectedMemory.Protect(pbDummy, MemoryProtectionScope.SameProcess); - m_bProtectionSupported = true; - } - catch(Exception) // Windows 98 / ME - { - m_bProtectionSupported = false; - } + //protection not supported on Android currently + m_bProtectionSupported = false; } /// @@ -143,7 +137,7 @@ namespace KeePassLib.Security // Data size must be > 0, otherwise 'Protect' throws if(m_bProtected && m_bProtectionSupported && (m_uDataLen > 0)) - ProtectedMemory.Protect(m_pbData, MemoryProtectionScope.SameProcess); + throw new NotSupportedException(); } /// @@ -164,9 +158,7 @@ namespace KeePassLib.Security { lock(m_objSync) { - ProtectedMemory.Unprotect(m_pbData, MemoryProtectionScope.SameProcess); - Array.Copy(m_pbData, pbReturn, (int)m_uDataLen); - ProtectedMemory.Protect(m_pbData, MemoryProtectionScope.SameProcess); + throw new NotSupportedException(); } } else Array.Copy(m_pbData, pbReturn, (int)m_uDataLen); diff --git a/src/KeePassLib2Android/Serialization/FileLock.cs b/src/KeePassLib2Android/Serialization/FileLock.cs index ac20e00d..a3030306 100644 --- a/src/KeePassLib2Android/Serialization/FileLock.cs +++ b/src/KeePassLib2Android/Serialization/FileLock.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -137,7 +139,7 @@ namespace KeePassLib.Serialization if(!v[0].StartsWith(LockFileHeader)) { Debug.Assert(false); return null; } return new LockFileInfo(v[1], v[2], v[3], v[4], v[5]); } - catch(FileNotFoundException) { } + catch(Java.IO.FileNotFoundException) { } catch(Exception) { Debug.Assert(false); } finally { if(s != null) s.Close(); } diff --git a/src/KeePassLib2Android/Serialization/FileTransactionEx.cs b/src/KeePassLib2Android/Serialization/FileTransactionEx.cs index 7e179963..254f99a8 100644 --- a/src/KeePassLib2Android/Serialization/FileTransactionEx.cs +++ b/src/KeePassLib2Android/Serialization/FileTransactionEx.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -92,7 +94,7 @@ namespace KeePassLib.Serialization bool bMadeUnhidden = UrlUtil.UnhideFile(m_iocBase.Path); #if !KeePassLibSD - FileSecurity bkSecurity = null; + bool bEfsEncrypted = false; #endif @@ -107,7 +109,7 @@ namespace KeePassLib.Serialization bEfsEncrypted = ((long)(faBase & FileAttributes.Encrypted) != 0); DateTime tCreation = File.GetCreationTime(m_iocBase.Path); - bkSecurity = File.GetAccessControl(m_iocBase.Path); + File.SetCreationTime(m_iocTemp.Path, tCreation); } @@ -131,8 +133,6 @@ namespace KeePassLib.Serialization catch(Exception) { Debug.Assert(false); } } - if(bkSecurity != null) - File.SetAccessControl(m_iocBase.Path, bkSecurity); } catch(Exception) { Debug.Assert(false); } } diff --git a/src/KeePassLib2Android/Serialization/HashedBlockStream.cs b/src/KeePassLib2Android/Serialization/HashedBlockStream.cs index 403b6dfd..098e6228 100644 --- a/src/KeePassLib2Android/Serialization/HashedBlockStream.cs +++ b/src/KeePassLib2Android/Serialization/HashedBlockStream.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,6 +34,44 @@ using KeePassLibSD; namespace KeePassLib.Serialization { + + [System.Serializable] + public class InvalidDataException: Exception + { + /// + /// Initializes a new instance of the class + /// + public InvalidDataException () + { + } + + /// + /// Initializes a new instance of the class + /// + /// A that describes the exception. + public InvalidDataException (string message) : base (message) + { + } + + /// + /// Initializes a new instance of the class + /// + /// A that describes the exception. + /// The exception that is the cause of the current exception. + public InvalidDataException (string message, Exception inner) : base (message, inner) + { + } + + /// + /// Initializes a new instance of the class + /// + /// The contextual information about the source or destination. + /// The object that holds the serialized object data. + protected InvalidDataException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base (info, context) + { + } + } + public sealed class HashedBlockStream : Stream { private const int m_nDefaultBufferSize = 1024 * 1024; // 1 MB diff --git a/src/KeePassLib2Android/Serialization/IOConnection.cs b/src/KeePassLib2Android/Serialization/IOConnection.cs index e115ff5b..90be2083 100644 --- a/src/KeePassLib2Android/Serialization/IOConnection.cs +++ b/src/KeePassLib2Android/Serialization/IOConnection.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -243,6 +245,41 @@ namespace KeePassLib.Serialization } #if !KeePassLibSD + + class UploadOnCloseMemoryStream: MemoryStream + { + System.Net.WebClient webClient; + string method; + Uri destinationFilePath; + + public UploadOnCloseMemoryStream(System.Net.WebClient _webClient, string _method, Uri _destinationFilePath) + { + this.webClient = _webClient; + this.method = _method; + this.destinationFilePath = _destinationFilePath; + } + + public UploadOnCloseMemoryStream(System.Net.WebClient _webClient, Uri _destinationFilePath) + { + this.webClient = _webClient; + this.method = null; + this.destinationFilePath = _destinationFilePath; + } + + public override void Close() + { + base.Close(); + if (method != null) + { + webClient.UploadData(destinationFilePath, method, this.ToArray()); + } else + { + webClient.UploadData(destinationFilePath, this.ToArray()); + } + + } + } + public static Stream OpenWrite(IOConnectionInfo ioc) { if(ioc == null) { Debug.Assert(false); return null; } @@ -256,9 +293,9 @@ namespace KeePassLib.Serialization if(NativeLib.IsUnix() && (uri.Scheme.Equals(Uri.UriSchemeHttp, StrUtil.CaseIgnoreCmp) || uri.Scheme.Equals(Uri.UriSchemeHttps, StrUtil.CaseIgnoreCmp))) - return CreateWebClient(ioc).OpenWrite(uri, WebRequestMethods.Http.Put); + return new UploadOnCloseMemoryStream(CreateWebClient(ioc), WebRequestMethods.Http.Put, uri); - return CreateWebClient(ioc).OpenWrite(uri); + return new UploadOnCloseMemoryStream(CreateWebClient(ioc), uri); } #else public static Stream OpenWrite(IOConnectionInfo ioc) @@ -296,7 +333,7 @@ namespace KeePassLib.Serialization try { Stream s = OpenRead(ioc); - if(s == null) throw new FileNotFoundException(); + if(s == null) throw new Java.IO.FileNotFoundException(); try { s.ReadByte(); } catch(Exception) { } diff --git a/src/KeePassLib2Android/Serialization/KdbxFile.Read.Streamed.cs b/src/KeePassLib2Android/Serialization/KdbxFile.Read.Streamed.cs index 27b85c4e..c572f6ca 100644 --- a/src/KeePassLib2Android/Serialization/KdbxFile.Read.Streamed.cs +++ b/src/KeePassLib2Android/Serialization/KdbxFile.Read.Streamed.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -43,6 +45,49 @@ namespace KeePassLib.Serialization /// public sealed partial class KdbxFile { + private class ColorTranslator + { + public static Color FromHtml(String colorString) + { + Color color; + + if (colorString.StartsWith("#")) + { + colorString = colorString.Substring(1); + } + if (colorString.EndsWith(";")) + { + colorString = colorString.Substring(0, colorString.Length - 1); + } + + int red, green, blue; + switch (colorString.Length) + { + case 6: + red = int.Parse(colorString.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); + green = int.Parse(colorString.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); + blue = int.Parse(colorString.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); + color = Color.FromArgb(red, green, blue); + break; + case 3: + red = int.Parse(colorString.Substring(0, 1), System.Globalization.NumberStyles.HexNumber); + green = int.Parse(colorString.Substring(1, 1), System.Globalization.NumberStyles.HexNumber); + blue = int.Parse(colorString.Substring(2, 1), System.Globalization.NumberStyles.HexNumber); + color = Color.FromArgb(red, green, blue); + break; + case 1: + red = green = blue = int.Parse(colorString.Substring(0, 1), System.Globalization.NumberStyles.HexNumber); + color = Color.FromArgb(red, green, blue); + break; + default: + throw new ArgumentException("Invalid color: " + colorString); + } + return color; + } + + } + + private enum KdbContext { Null, diff --git a/src/KeePassLib2Android/Serialization/KdbxFile.Write.cs b/src/KeePassLib2Android/Serialization/KdbxFile.Write.cs index ada3a9ed..802feaf0 100644 --- a/src/KeePassLib2Android/Serialization/KdbxFile.Write.cs +++ b/src/KeePassLib2Android/Serialization/KdbxFile.Write.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,7 +29,6 @@ using System.Security; using System.Security.Cryptography; using System.Drawing; using System.Globalization; -using System.Drawing.Imaging; #if !KeePassLibSD using System.IO.Compression; diff --git a/src/KeePassLib2Android/Translation/KPControlCustomization.cs b/src/KeePassLib2Android/Translation/KPControlCustomization.cs index 1530f655..fcc4fb37 100644 --- a/src/KeePassLib2Android/Translation/KPControlCustomization.cs +++ b/src/KeePassLib2Android/Translation/KPControlCustomization.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +23,6 @@ using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; -using System.Windows.Forms; using System.Diagnostics; using System.Xml.Serialization; using System.Globalization; @@ -33,8 +34,12 @@ using KeePassLib.Utility; namespace KeePassLib.Translation { + public class Control + {} + public sealed class KpccLayout { + public enum LayoutParameterEx { X, Y, Width, Height @@ -113,7 +118,7 @@ namespace KeePassLib.Translation } #if !KeePassLibSD - internal void ApplyTo(Control c) + /*internal void ApplyTo(Control c) { Debug.Assert(c != null); if(c == null) return; @@ -181,7 +186,7 @@ namespace KeePassLib.Translation Debug.Assert(false); return null; - } + }*/ #endif public static string ToControlRelativeString(string strEncoded) @@ -268,7 +273,7 @@ namespace KeePassLib.Translation } #if !KeePassLibSD - private static readonly Type[] m_vTextControls = new Type[] { + /*private static readonly Type[] m_vTextControls = new Type[] { typeof(MenuStrip), typeof(PictureBox), typeof(ListView), typeof(TreeView), typeof(ToolStrip), typeof(WebBrowser), typeof(Panel), typeof(StatusStrip), typeof(ProgressBar), @@ -394,7 +399,7 @@ namespace KeePassLib.Translation // Currently only v1: is supported, see HashControl return (m_strHash == strHash); - } + }*/ #endif } } diff --git a/src/KeePassLib2Android/Translation/KPFormCustomization.cs b/src/KeePassLib2Android/Translation/KPFormCustomization.cs index 9c6a3442..de04b50b 100644 --- a/src/KeePassLib2Android/Translation/KPFormCustomization.cs +++ b/src/KeePassLib2Android/Translation/KPFormCustomization.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,13 +22,14 @@ using System; using System.Collections.Generic; using System.Text; -using System.Windows.Forms; using System.Xml.Serialization; using System.Diagnostics; using System.Reflection; namespace KeePassLib.Translation { + public class Form + {} public sealed class KPFormCustomization { private string m_strFQName = string.Empty; @@ -75,7 +78,7 @@ namespace KeePassLib.Translation } #if !KeePassLibSD - public void ApplyTo(Form form) + /*public void ApplyTo(Form form) { Debug.Assert(form != null); if(form == null) throw new ArgumentNullException("form"); @@ -100,7 +103,7 @@ namespace KeePassLib.Translation } foreach(Control cSub in c.Controls) ApplyToControl(cSub); - } + }*/ #endif } } diff --git a/src/KeePassLib2Android/Translation/KPStringTable.cs b/src/KeePassLib2Android/Translation/KPStringTable.cs index b5c676fb..f9896a50 100644 --- a/src/KeePassLib2Android/Translation/KPStringTable.cs +++ b/src/KeePassLib2Android/Translation/KPStringTable.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,11 +23,13 @@ using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; -using System.Windows.Forms; + using System.Diagnostics; namespace KeePassLib.Translation { + public class ToolStripItemCollection + {} public sealed class KPStringTable { private string m_strName = string.Empty; @@ -67,7 +71,7 @@ namespace KeePassLib.Translation } #if !KeePassLibSD - public void ApplyTo(ToolStripItemCollection tsic) + /*public void ApplyTo(ToolStripItemCollection tsic) { if(tsic == null) throw new ArgumentNullException("tsic"); @@ -93,7 +97,7 @@ namespace KeePassLib.Translation if((tsmi != null) && (tsmi.DropDownItems != null)) this.ApplyTo(tsmi.DropDownItems); } - } + }*/ #endif } } diff --git a/src/KeePassLib2Android/Translation/KPTranslation.cs b/src/KeePassLib2Android/Translation/KPTranslation.cs index 2705325d..923057a3 100644 --- a/src/KeePassLib2Android/Translation/KPTranslation.cs +++ b/src/KeePassLib2Android/Translation/KPTranslation.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +25,7 @@ using System.Text; using System.IO; using System.Xml; using System.Xml.Serialization; -using System.Windows.Forms; + using System.ComponentModel; using System.Drawing; using System.Diagnostics; @@ -154,7 +156,7 @@ namespace KeePassLib.Translation } #if !KeePassLibSD - public void ApplyTo(Form form) + /*public void ApplyTo(Form form) { if(form == null) throw new ArgumentNullException("form"); @@ -183,8 +185,8 @@ namespace KeePassLib.Translation try { RtlApplyToControls(form.Controls); } catch(Exception) { Debug.Assert(false); } } - } - + }*/ + /* private static void RtlApplyToControls(Control.ControlCollection cc) { foreach(Control c in cc) @@ -210,9 +212,9 @@ namespace KeePassLib.Translation if((c is GroupBox) || (c is Panel)) RtlMoveChildControls(c); } - } + }*/ - private static void RtlMoveChildControls(Control cParent) + /*private static void RtlMoveChildControls(Control cParent) { int nParentWidth = cParent.Size.Width; @@ -246,7 +248,7 @@ namespace KeePassLib.Translation } if(kpst != null) kpst.ApplyTo(tsic); - } + }*/ #endif } } diff --git a/src/KeePassLib2Android/Utility/GfxUtil.cs b/src/KeePassLib2Android/Utility/GfxUtil.cs index 2b487407..52a6f961 100644 --- a/src/KeePassLib2Android/Utility/GfxUtil.cs +++ b/src/KeePassLib2Android/Utility/GfxUtil.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,14 +24,15 @@ using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; -using System.Drawing.Imaging; + using System.Diagnostics; +using Android.Graphics; namespace KeePassLib.Utility { public static class GfxUtil { - public static Image LoadImage(byte[] pb) + public static Android.Graphics.Bitmap LoadImage(byte[] pb) { if(pb == null) throw new ArgumentNullException("pb"); @@ -37,59 +40,43 @@ namespace KeePassLib.Utility try { return LoadImagePriv(ms); } catch(Exception) { - Image imgIco = TryLoadIco(pb); + Android.Graphics.Bitmap imgIco = TryLoadIco(pb); if(imgIco != null) return imgIco; throw; } finally { ms.Close(); } } - private static Image LoadImagePriv(Stream s) + private static Android.Graphics.Bitmap LoadImagePriv(Stream s) { - // Image.FromStream wants the stream to be open during - // the whole lifetime of the image; as we can't guarantee - // this, we make a copy of the image - Image imgSrc = null; - try - { -#if !KeePassLibSD - imgSrc = Image.FromStream(s); - Bitmap bmp = new Bitmap(imgSrc.Width, imgSrc.Height, - PixelFormat.Format32bppArgb); + Android.Graphics.Bitmap img = null; + +#if !KeePassLibSD + + img = BitmapFactory.DecodeStream(s); - try - { - bmp.SetResolution(imgSrc.HorizontalResolution, - imgSrc.VerticalResolution); - Debug.Assert(bmp.Size == imgSrc.Size); - } - catch(Exception) { Debug.Assert(false); } #else imgSrc = new Bitmap(s); Bitmap bmp = new Bitmap(imgSrc.Width, imgSrc.Height); #endif - using(Graphics g = Graphics.FromImage(bmp)) - { - g.Clear(Color.Transparent); - g.DrawImage(imgSrc, 0, 0); - } - return bmp; - } - finally { if(imgSrc != null) imgSrc.Dispose(); } + return img; + } - private static Image TryLoadIco(byte[] pb) + private static Android.Graphics.Bitmap TryLoadIco(byte[] pb) { #if !KeePassLibSD + throw new NotImplementedException(); + /* MemoryStream ms = new MemoryStream(pb, false); try { return (new Icon(ms)).ToBitmap(); } catch(Exception) { } - finally { ms.Close(); } + finally { ms.Close(); }*/ #endif - return null; + //return null; } } } diff --git a/src/KeePassLib2Android/Utility/MessageService.cs b/src/KeePassLib2Android/Utility/MessageService.cs index 22ee8355..dac9d8fa 100644 --- a/src/KeePassLib2Android/Utility/MessageService.cs +++ b/src/KeePassLib2Android/Utility/MessageService.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +23,7 @@ using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Text; -using System.Windows.Forms; + using System.Diagnostics; using KeePassLib.Resources; @@ -29,17 +31,36 @@ using KeePassLib.Serialization; namespace KeePassLib.Utility { + public enum MessageBoxButtons + { + OK, OKCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel + } + public enum MessageBoxIcon + { + Information, Warning, Error, Question + } + public enum MessageBoxDefaultButton + { + Button1, Button2, Button3 + } + + public enum DialogResult + { + Yes, No, Cancel, Retry, Abort + } + + public sealed class MessageServiceEventArgs : EventArgs { private string m_strTitle = string.Empty; private string m_strText = string.Empty; - private MessageBoxButtons m_msgButtons = MessageBoxButtons.OK; - private MessageBoxIcon m_msgIcon = MessageBoxIcon.None; + //private MessageBoxButtons m_msgButtons = MessageBoxButtons.OK; + //private MessageBoxIcon m_msgIcon = MessageBoxIcon.None; public string Title { get { return m_strTitle; } } public string Text { get { return m_strText; } } - public MessageBoxButtons Buttons { get { return m_msgButtons; } } - public MessageBoxIcon Icon { get { return m_msgIcon; } } + //public MessageBoxButtons Buttons { get { return m_msgButtons; } } + //public MessageBoxIcon Icon { get { return m_msgIcon; } } public MessageServiceEventArgs() { } @@ -48,8 +69,7 @@ namespace KeePassLib.Utility { m_strTitle = (strTitle ?? string.Empty); m_strText = (strText ?? string.Empty); - m_msgButtons = msgButtons; - m_msgIcon = msgIcon; + } } @@ -62,14 +82,12 @@ namespace KeePassLib.Utility private const MessageBoxIcon m_mbiWarning = MessageBoxIcon.Warning; private const MessageBoxIcon m_mbiFatal = MessageBoxIcon.Error; - private const MessageBoxOptions m_mboRtl = (MessageBoxOptions.RtlReading | - MessageBoxOptions.RightAlign); #else private const MessageBoxIcon m_mbiInfo = MessageBoxIcon.Asterisk; private const MessageBoxIcon m_mbiWarning = MessageBoxIcon.Exclamation; private const MessageBoxIcon m_mbiFatal = MessageBoxIcon.Hand; #endif - private const MessageBoxIcon m_mbiQuestion = MessageBoxIcon.Question; + //private const MessageBoxIcon m_mbiQuestion = MessageBoxIcon.Question; public static string NewLine { @@ -159,13 +177,13 @@ namespace KeePassLib.Utility } #if !KeePassLibSD - internal static Form GetTopForm() + /*internal static Form GetTopForm() { FormCollection fc = Application.OpenForms; if((fc == null) || (fc.Count == 0)) return null; return fc[fc.Count - 1]; - } + }*/ #endif private static DialogResult SafeShowMessageBox(string strText, string strTitle, @@ -174,7 +192,14 @@ namespace KeePassLib.Utility #if KeePassLibSD return MessageBox.Show(strText, strTitle, mb, mi, mdb); #else - IWin32Window wnd = null; + + if (mb == MessageBoxButtons.OK) + { + //Android.Widget.Toast toast = .. + } + //this might help: http://www.gregshackles.com/2011/04/using-background-threads-in-mono-for-android-applications/ + throw new NotImplementedException(); + /*IWin32Window wnd = null; try { Form f = GetTopForm(); @@ -203,11 +228,12 @@ namespace KeePassLib.Utility if(StrUtil.RightToLeft) return MessageBox.Show(strText, strTitle, mb, mi, mdb, m_mboRtl); return MessageBox.Show(strText, strTitle, mb, mi, mdb); + */ #endif } #if !KeePassLibSD - internal delegate DialogResult SafeShowMessageBoxInternalDelegate(IWin32Window iParent, + /* internal delegate DialogResult SafeShowMessageBoxInternalDelegate(IWin32Window iParent, string strText, string strTitle, MessageBoxButtons mb, MessageBoxIcon mi, MessageBoxDefaultButton mdb); @@ -218,7 +244,7 @@ namespace KeePassLib.Utility if(StrUtil.RightToLeft) return MessageBox.Show(iParent, strText, strTitle, mb, mi, mdb, m_mboRtl); return MessageBox.Show(iParent, strText, strTitle, mb, mi, mdb); - } + }*/ #endif public static void ShowInfo(params object[] vLines) @@ -284,8 +310,9 @@ namespace KeePassLib.Utility try { #if !KeePassLibSD - Clipboard.Clear(); - Clipboard.SetText(ObjectsToMessage(vLines, true)); + /* nicht benoetigt - hoffentlich :-) +Clipboard.Clear(); +Clipboard.SetText(ObjectsToMessage(vLines, true));*/ #else Clipboard.SetDataObject(ObjectsToMessage(vLines, true)); #endif @@ -312,10 +339,10 @@ namespace KeePassLib.Utility if(MessageService.MessageShowing != null) MessageService.MessageShowing(null, new MessageServiceEventArgs( - strTitleEx, strTextEx, mbb, m_mbiQuestion)); + strTitleEx, strTextEx, mbb, MessageBoxIcon.Question)); DialogResult dr = SafeShowMessageBox(strTextEx, strTitleEx, mbb, - m_mbiQuestion, MessageBoxDefaultButton.Button1); + MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); --m_uCurrentMessageCount; return dr; @@ -330,10 +357,10 @@ namespace KeePassLib.Utility if(MessageService.MessageShowing != null) MessageService.MessageShowing(null, new MessageServiceEventArgs( - strTitleEx, strTextEx, MessageBoxButtons.YesNo, m_mbiQuestion)); + strTitleEx, strTextEx, MessageBoxButtons.YesNo, MessageBoxIcon.Question)); DialogResult dr = SafeShowMessageBox(strTextEx, strTitleEx, - MessageBoxButtons.YesNo, m_mbiQuestion, bDefaultToYes ? + MessageBoxButtons.YesNo, MessageBoxIcon.Question, bDefaultToYes ? MessageBoxDefaultButton.Button1 : MessageBoxDefaultButton.Button2); --m_uCurrentMessageCount; diff --git a/src/KeePassLib2Android/Utility/StrUtil.cs b/src/KeePassLib2Android/Utility/StrUtil.cs index 94e590aa..10398c11 100644 --- a/src/KeePassLib2Android/Utility/StrUtil.cs +++ b/src/KeePassLib2Android/Utility/StrUtil.cs @@ -1,6 +1,8 @@ /* KeePass Password Safe - The Open-Source Password Manager Copyright (C) 2003-2012 Dominik Reichl + + Modified to be used with Mono for Android. Changes Copyright (C) 2013 Philipp Crocoll This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -990,15 +992,7 @@ namespace KeePassLib.Utility try { - byte[] pbPlain = StrUtil.Utf8.GetBytes(strPlainText); - byte[] pbEnc = ProtectedData.Protect(pbPlain, m_pbOptEnt, - DataProtectionScope.CurrentUser); - -#if !KeePassLibSD - return Convert.ToBase64String(pbEnc, Base64FormattingOptions.None); -#else - return Convert.ToBase64String(pbEnc); -#endif + throw new NotSupportedException(); } catch(Exception) { Debug.Assert(false); } @@ -1012,10 +1006,8 @@ namespace KeePassLib.Utility try { byte[] pbEnc = Convert.FromBase64String(strCipherText); - byte[] pbPlain = ProtectedData.Unprotect(pbEnc, m_pbOptEnt, - DataProtectionScope.CurrentUser); + throw new NotSupportedException(); - return StrUtil.Utf8.GetString(pbPlain, 0, pbPlain.Length); } catch(Exception) { Debug.Assert(false); } diff --git a/src/keepass2android/AboutDialog.cs b/src/keepass2android/AboutDialog.cs new file mode 100644 index 00000000..a61ab810 --- /dev/null +++ b/src/keepass2android/AboutDialog.cs @@ -0,0 +1,72 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Content.PM; + +namespace keepass2android +{ + + public class AboutDialog : Dialog { + + public AboutDialog(Context context):base (context) { + } + + protected override void OnCreate(Bundle savedInstanceState) { + base.OnCreate(savedInstanceState); + SetContentView(Resource.Layout.about); + SetTitle(Resource.String.app_name); + + setVersion(); + + Button okButton = (Button) FindViewById(Resource.Id.about_button); + okButton.Click += (object sender, EventArgs e) => { + Dismiss(); + }; + } + + private void setVersion() { + Context ctx = Context; + + String version; + try { + PackageInfo packageInfo = ctx.PackageManager.GetPackageInfo(ctx.PackageName, 0); + version = packageInfo.VersionName; + + } catch (PackageManager.NameNotFoundException) { + version = ""; + } + + TextView tv = (TextView) FindViewById(Resource.Id.version); + tv.Text = version; + + } + + } + +} + diff --git a/src/keepass2android/AssemblyInfo.cs b/src/keepass2android/AssemblyInfo.cs new file mode 100644 index 00000000..53cf0e76 --- /dev/null +++ b/src/keepass2android/AssemblyInfo.cs @@ -0,0 +1,20 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Keepass2Android. If not, see . + */ +using Android.App; + + + diff --git a/src/keepass2android/BitmapDrawableCompat.cs b/src/keepass2android/BitmapDrawableCompat.cs new file mode 100644 index 00000000..41269b79 --- /dev/null +++ b/src/keepass2android/BitmapDrawableCompat.cs @@ -0,0 +1,45 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Graphics.Drawables; +using Android.Content.Res; +using Android.Graphics; + +namespace keepass2android +{ + + public class BitmapDrawableCompat { + + public static BitmapDrawable getBitmapDrawable(Resources res, Bitmap bitmap) { + return new BitmapDrawable(res, bitmap); + } + + } + +} + diff --git a/src/keepass2android/CancelDialog.cs b/src/keepass2android/CancelDialog.cs new file mode 100644 index 00000000..efacfc33 --- /dev/null +++ b/src/keepass2android/CancelDialog.cs @@ -0,0 +1,52 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + + public class CancelDialog : Dialog { + + private bool mCanceled = false; + + public CancelDialog(Context context): base(context) { + } + + public bool canceled() { + return mCanceled; + } + + + public override void Cancel() { + base.Cancel(); + mCanceled = true; + } + } + +} + diff --git a/src/keepass2android/Database.cs b/src/keepass2android/Database.cs new file mode 100644 index 00000000..b632a95a --- /dev/null +++ b/src/keepass2android/Database.cs @@ -0,0 +1,244 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +using KeePassLib; +using KeePassLib.Interfaces; +using KeePassLib.Serialization; + +namespace keepass2android +{ + + public class Database { + + + public Dictionary groups = new Dictionary(new PwUuidEqualityComparer()); + public Dictionary entries = new Dictionary(new PwUuidEqualityComparer()); + public HashSet dirty = new HashSet(new PwGroupEqualityFromIdComparer()); + public PwGroup root; + public PwDatabase pm; + public IOConnectionInfo mIoc; + public SearchDbHelper searchHelper; + + public DrawableFactory drawFactory = new DrawableFactory(); + + private bool loaded = false; + + + public bool Loaded { + get { return loaded;} + set { loaded = value; } + } + + public bool Open + { + get { return Loaded && (!Locked); } + } + + bool locked; + public bool Locked + { + get + { + return locked; + } + set + { + locked = value; + } + } + + + + public void LoadData (Context ctx, IOConnectionInfo iocInfo, String password, String keyfile, UpdateStatus status) + { + mIoc = iocInfo; + + KeePassLib.PwDatabase pwDatabase = new KeePassLib.PwDatabase (); + + KeePassLib.Keys.CompositeKey key = new KeePassLib.Keys.CompositeKey (); + key.AddUserKey (new KeePassLib.Keys.KcpPassword (password)); + if (!String.IsNullOrEmpty (keyfile)) { + + try { key.AddUserKey(new KeePassLib.Keys.KcpKeyFile(keyfile)); } + catch(Exception) + { + throw new KeyFileException(); + } + } + + pwDatabase.Open(iocInfo, key, status); + + root = pwDatabase.RootGroup; + populateGlobals(root); + + + Loaded = true; + pm = pwDatabase; + searchHelper = new SearchDbHelper(ctx); + } + + bool quickUnlockEnabled = false; + public bool QuickUnlockEnabled + { + get + { + return quickUnlockEnabled; + } + set + { + quickUnlockEnabled = value; + } + } + + //KeyLength of QuickUnlock at time of loading the database. + //This is important to not allow an attacker to set the length to 1 when QuickUnlock is started already. + public int QuickUnlockKeyLength + { + get; + set; + } + + public PwGroup SearchForText(String str) { + PwGroup group = searchHelper.searchForText(this, str); + + return group; + + } + + public PwGroup Search(SearchParameters searchParams) + { + return searchHelper.search(this, searchParams); + } + + + public PwGroup SearchForExactUrl(String url) { + PwGroup group = searchHelper.searchForExactUrl(this, url); + + return group; + + } + + public PwGroup SearchForHost(String url) { + PwGroup group = searchHelper.searchForHost(this, url); + + return group; + + } + + + public void SaveData(Context ctx) { + ISharedPreferences prefs = Android.Preferences.PreferenceManager.GetDefaultSharedPreferences(ctx); + pm.UseFileTransactions = prefs.GetBoolean(ctx.GetString(Resource.String.UseFileTransactions_key), true); + pm.Save(null); + + } + class SaveStatusLogger: IStatusLogger + { + #region IStatusLogger implementation + public void StartLogging (string strOperation, bool bWriteOperationToLog) + { + } + public void EndLogging () + { + } + public bool SetProgress (uint uPercent) + { + Android.Util.Log.Debug("DEBUG", "Progress: " + uPercent+"%"); + return true; + } + public bool SetText (string strNewText, LogStatusType lsType) + { + Android.Util.Log.Debug("DEBUG", strNewText); + return true; + } + public bool ContinueWork () + { + return true; + } + #endregion + } + + private void populateGlobals (PwGroup currentGroup) + { + + var childGroups = currentGroup.Groups; + var childEntries = currentGroup.Entries; + + foreach (PwEntry e in childEntries) { + entries [e.Uuid] = e; + } + foreach (PwGroup g in childGroups) { + groups[g.Uuid] = g; + populateGlobals(g); + } + } + + public void Clear() { + groups.Clear(); + entries.Clear(); + dirty.Clear(); + drawFactory.Clear(); + + root = null; + pm = null; + mIoc = null; + loaded = false; + locked = false; + } + + public void markAllGroupsAsDirty() { + foreach ( PwGroup group in groups.Values ) { + dirty.Add(group); + } + + + } + + + } + + /* + public void LoadData (Context mCtx, string mFileName, string mPass, string mKey, UpdateStatus mStatus) + { + KeePassLib.PwDatabase pwDatabase = new KeePassLib.PwDatabase(); + KeePassLib.Serialization.IOConnectionInfo iocInfo = KeePassLib.Serialization.IOConnectionInfo.FromPath("/sdcard/keepass2androidtest.kdbx"); + KeePassLib.Serialization.IOConnectionInfo iocInfoSave = KeePassLib.Serialization.IOConnectionInfo.FromPath("/sdcard/keepass2androidtestSaved.kdbx"); + KeePassLib.Keys.CompositeKey key = new KeePassLib.Keys.CompositeKey(); + key.AddUserKey(new KeePassLib.Keys.KcpPassword("test")); + + pwDatabase.Open(iocInfo, key, new LogToButton(this)); + pwDatabase.RootGroup.AddGroup(new KeePassLib.PwGroup(true, true, "generatedFromKp2ANeu", KeePassLib.PwIcon.Folder), true); + pwDatabase.SaveAs(iocInfoSave,false,new LogToButton(this)); + pwDatabase.Close(); + //KeePassLib.Serialization.KdbxFile f = new KeePassLib.Serialization.KdbxFile(pwDatabase); + } +*/ + +} + diff --git a/src/keepass2android/EntryActivity.cs b/src/keepass2android/EntryActivity.cs new file mode 100644 index 00000000..201e1cb1 --- /dev/null +++ b/src/keepass2android/EntryActivity.cs @@ -0,0 +1,519 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib; +using Android.Text.Format; +using KeePassLib.Utility; +using Java.Util; +using Android.Preferences; +using Android.Text.Method; +using Android.Util; +using System.Globalization; +using Android.Content.PM; +using KeePassLib.Security; +using keepass2android.view; +using Android.Webkit; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden, Theme="@style/NoTitleBar")] + public class EntryActivity : LockCloseActivity { + public const String KEY_ENTRY = "entry"; + public const String KEY_REFRESH_POS = "refresh_pos"; + public const String KEY_CLOSE_AFTER_CREATE = "close_after_create"; + + public static void Launch(Activity act, PwEntry pw, int pos) { + Launch(act, pw, pos, false); + } + + public static void Launch(Activity act, PwEntry pw, int pos, bool closeAfterCreate) { + Intent i; + + i = new Intent(act, typeof(EntryActivity)); + + + i.PutExtra(KEY_ENTRY, pw.Uuid.ToHexString()); + i.PutExtra(KEY_REFRESH_POS, pos); + i.PutExtra(KEY_CLOSE_AFTER_CREATE, closeAfterCreate); + + act.StartActivityForResult(i,0); + } + + protected PwEntry mEntry; + + private bool mShowPassword; + private int mPos; + + + + protected void setEntryView() { + SetContentView(Resource.Layout.entry_view); + } + + protected void setupEditButtons() { + Button edit = (Button) FindViewById(Resource.Id.entry_edit); + edit.Click += (sender, e) => { + EntryEditActivity.Launch(this, mEntry); + }; + } + + protected override void OnCreate(Bundle savedInstanceState) + { + ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this); + mShowPassword = ! prefs.GetBoolean(GetString(Resource.String.maskpass_key), Resources.GetBoolean(Resource.Boolean.maskpass_default)); + + base.OnCreate(savedInstanceState); + setEntryView(); + + Context appCtx = ApplicationContext; + + + Database db = App.getDB(); + // Likely the app has been killed exit the activity + if (! db.Loaded) + { + Finish(); + return; + } + + SetResult(KeePass.EXIT_NORMAL); + + Intent i = Intent; + PwUuid uuid = new PwUuid(MemUtil.HexStringToByteArray(i.GetStringExtra(KEY_ENTRY))); + mPos = i.GetIntExtra(KEY_REFRESH_POS, -1); + + bool closeAfterCreate = i.GetBooleanExtra(KEY_CLOSE_AFTER_CREATE, false); + + mEntry = db.entries [uuid]; + + + + // Refresh Menu contents in case onCreateMenuOptions was called before mEntry was set + ActivityCompat.invalidateOptionsMenu(this); + + // Update last access time. + mEntry.Touch(false); + + if (PwDefs.IsTanEntry(mEntry) && prefs.GetBoolean(GetString(Resource.String.TanExpiresOnUse_key), Resources.GetBoolean(Resource.Boolean.TanExpiresOnUse_default)) && ((mEntry.Expires == false) || mEntry.ExpiryTime > DateTime.Now)) + { + PwEntry backupEntry = mEntry.CloneDeep(); + mEntry.ExpiryTime = DateTime.Now; + mEntry.Expires = true; + mEntry.Touch(true); + requiresRefresh(); + Handler handler = new Handler(); + UpdateEntry update = new UpdateEntry(this, App.getDB(), backupEntry, mEntry, new AfterSave(handler)); + ProgressTask pt = new ProgressTask(this, update, Resource.String.saving_database); + pt.run(); + } + fillData(false); + + setupEditButtons(); + + Intent showNotIntent = new Intent(this, typeof(CopyToClipboardService)); + Intent.SetAction(Intents.SHOW_NOTIFICATION); + showNotIntent.PutExtra(KEY_ENTRY, mEntry.Uuid.ToHexString()); + + StartService(showNotIntent); + + Android.Util.Log.Debug("DEBUG", "Requesting copy to clipboard for Uuid=" + mEntry.Uuid.ToHexString()); + + /*foreach (PwUuid key in App.getDB().entries.Keys) + { + Android.Util.Log.Debug("DEBUG",key.ToHexString() + " -> " + App.getDB().entries[key].Uuid.ToHexString()); + }*/ + + if (closeAfterCreate) + { + Finish(); + } + } + + private class AfterSave : OnFinish { + + public AfterSave(Handler handler):base(handler) { + + } + + public override void run() { + + base.run(); + } + + }; + + + + private String getDateTime(System.DateTime dt) { + return dt.ToString ("g", CultureInfo.CurrentUICulture); + } + + String concatTags(List tags) + { + StringBuilder sb = new StringBuilder(); + foreach (string tag in tags) + { + sb.Append(tag); + sb.Append(", "); + } + if (tags.Count > 0) + sb.Remove(sb.Length-2,2); + return sb.ToString(); + } + + void populateExtraStrings(bool trimList) + { + ViewGroup extraGroup = (ViewGroup)FindViewById(Resource.Id.extra_strings); + if (trimList) + { + extraGroup.RemoveAllViews(); + } + bool hasExtraFields = false; + foreach (KeyValuePair pair in mEntry.Strings) + { + String key = pair.Key; + if (!PwDefs.IsStandardField(key)) + { + View view = new EntrySection(this, null, key, pair.Value.ReadString()); + extraGroup.AddView(view); + hasExtraFields = true; + } + } + FindViewById(Resource.Id.entry_extra_strings_label).Visibility = hasExtraFields ? ViewStates.Visible : ViewStates.Gone; + } + + string writeBinaryToFile(string key) + { + ProtectedBinary pb = mEntry.Binaries.Get(key); + System.Diagnostics.Debug.Assert(pb != null); if(pb == null) throw new ArgumentException(); + + ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this); + string binaryDirectory = prefs.GetString(GetString(Resource.String.BinaryDirectory_key),GetString(Resource.String.BinaryDirectory_default)); + + var targetFile = new Java.IO.File(binaryDirectory,key); + + Java.IO.File parent = targetFile.ParentFile; + + if (parent == null || (parent.Exists() && ! parent.IsDirectory)) + { + Toast.MakeText(this, + Resource.String.error_invalid_path, + ToastLength.Long).Show(); + return null; + } + + if (! parent.Exists()) + { + // Create parent dircetory + if (! parent.Mkdirs()) + { + Toast.MakeText(this, + Resource.String.error_could_not_create_parent, + ToastLength.Long).Show(); + return null; + + } + } + string filename = targetFile.AbsolutePath; + + byte[] pbData = pb.ReadData(); + try { System.IO.File.WriteAllBytes(filename, pbData); } + catch(Exception exWrite) + { + Toast.MakeText(this, GetString(Resource.String.SaveAttachment_Failed, new Java.Lang.Object[]{ filename}) + +exWrite.Message,ToastLength.Long).Show(); + return null; + } + finally + { + MemUtil.ZeroByteArray(pbData); + } + + return filename; + + } + + void openBinaryFile(string filename) + { + String theMIMEType = getMimeType(filename); + if (theMIMEType != null) + { + Intent theIntent = new Intent(Intent.ActionView); + theIntent.AddFlags(ActivityFlags.NewTask | ActivityFlags.ExcludeFromRecents); + theIntent.SetDataAndType(Android.Net.Uri.FromFile(new Java.IO.File(filename)), theMIMEType); + try + { + StartActivity(theIntent); + } + catch (ActivityNotFoundException anfe) + { + //ignore + Toast.MakeText(this, "Couldn't open file", ToastLength.Short).Show(); + } + } + } + + void populateBinaries(bool trimList) + { + ViewGroup binariesGroup = (ViewGroup)FindViewById(Resource.Id.binaries); + if (trimList) + { + binariesGroup.RemoveAllViews(); + } + foreach (KeyValuePair pair in mEntry.Binaries) + { + String key = pair.Key; + Button binaryButton = new Button(this); + RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FillParent, RelativeLayout.LayoutParams.WrapContent); + binaryButton.Text = key; + binaryButton.SetCompoundDrawablesWithIntrinsicBounds( Resources.GetDrawable(Android.Resource.Drawable.IcMenuSave),null, null, null); + binaryButton.Click += (object sender, EventArgs e) => + { + Button btnSender = (Button)(sender); + string newFilename = writeBinaryToFile(btnSender.Text); + + if (newFilename != null) + { + Toast.MakeText(this, GetString(Resource.String.SaveAttachment_doneMessage, new Java.Lang.Object[]{newFilename}), ToastLength.Short).Show(); + openBinaryFile(newFilename); + } + + }; + binariesGroup.AddView(binaryButton,layoutParams); + + + } + FindViewById(Resource.Id.entry_binaries_label).Visibility = mEntry.Binaries.UCount > 0 ? ViewStates.Visible : ViewStates.Gone; + } + + // url = file path or whatever suitable URL you want. + public static String getMimeType(String url) + { + String type = null; + String extension = MimeTypeMap.GetFileExtensionFromUrl(url); + if (extension != null) { + MimeTypeMap mime = MimeTypeMap.Singleton; + type = mime.GetMimeTypeFromExtension(extension); + } + return type; + } + + protected void fillData(bool trimList) + { + ImageView iv = (ImageView)FindViewById(Resource.Id.entry_icon); + App.getDB().drawFactory.assignDrawableTo(iv, Resources, App.getDB().pm, mEntry.IconId, mEntry.CustomIconUuid); + + //populateText(Resource.Id.entry_title, mEntry.Strings.ReadSafe(PwDefs.TitleField)); + var button = ((Button)FindViewById(Resource.Id.entry_title)); + button.Text = mEntry.Strings.ReadSafe(PwDefs.TitleField); + button.Click += (object sender, EventArgs e) => { + Finish(); }; + + populateText(Resource.Id.entry_user_name, Resource.Id.entry_user_name_label, mEntry.Strings.ReadSafe(PwDefs.UserNameField)); + + populateText(Resource.Id.entry_url, Resource.Id.entry_url_label, mEntry.Strings.ReadSafe(PwDefs.UrlField)); + populateText(Resource.Id.entry_password, Resource.Id.entry_password_label, mEntry.Strings.ReadSafe(PwDefs.PasswordField)); + setPasswordStyle(); + + populateText(Resource.Id.entry_created, Resource.Id.entry_created_label, getDateTime(mEntry.CreationTime)); + populateText(Resource.Id.entry_modified, Resource.Id.entry_modified_label, getDateTime(mEntry.LastModificationTime)); + populateText(Resource.Id.entry_accessed, Resource.Id.entry_accessed_label, getDateTime(mEntry.LastAccessTime)); + + if (mEntry.Expires) + { + populateText(Resource.Id.entry_expires, Resource.Id.entry_expires_label, getDateTime(mEntry.ExpiryTime)); + } else + { + populateText(Resource.Id.entry_expires, Resource.Id.entry_expires_label, Resource.String.never); + } + populateText(Resource.Id.entry_comment, Resource.Id.entry_comment_label, mEntry.Strings.ReadSafe(PwDefs.NotesField)); + + populateText(Resource.Id.entry_tags, Resource.Id.entry_tags_label, concatTags(mEntry.Tags)); + + populateText(Resource.Id.entry_override_url, Resource.Id.entry_override_url_label, mEntry.OverrideUrl); + + populateExtraStrings(trimList); + + populateBinaries(trimList); + + + } + + private void populateText(int viewId, int headerViewId,int resId) { + View header = FindViewById(headerViewId); + TextView tv = (TextView)FindViewById(viewId); + + header.Visibility = tv.Visibility = ViewStates.Visible; + tv.SetText (resId); + } + + private void populateText(int viewId, int headerViewId, String text) + { + View header = FindViewById(headerViewId); + TextView tv = (TextView)FindViewById(viewId); + if (String.IsNullOrEmpty(text)) + { + header.Visibility = tv.Visibility = ViewStates.Gone; + } + else + { + header.Visibility = tv.Visibility = ViewStates.Visible; + tv.Text = text; + + } + } + + void requiresRefresh () + { + Intent ret = new Intent (); + ret.PutExtra (KEY_REFRESH_POS, mPos); + SetResult (KeePass.EXIT_REFRESH, ret); + } + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { + base.OnActivityResult(requestCode, resultCode, data); + if ( resultCode == KeePass.EXIT_REFRESH || resultCode == KeePass.EXIT_REFRESH_TITLE ) { + fillData(true); + if ( resultCode == KeePass.EXIT_REFRESH_TITLE ) { + requiresRefresh (); + } + } + } + + public override bool OnCreateOptionsMenu(IMenu menu) { + base.OnCreateOptionsMenu(menu); + + MenuInflater inflater = MenuInflater; + inflater.Inflate(Resource.Menu.entry, menu); + + IMenuItem togglePassword = menu.FindItem(Resource.Id.menu_toggle_pass); + if ( mShowPassword ) { + togglePassword.SetTitle(Resource.String.menu_hide_password); + } else { + togglePassword.SetTitle(Resource.String.show_password); + } + + IMenuItem gotoUrl = menu.FindItem(Resource.Id.menu_goto_url); + //Disabled IMenuItem copyUser = menu.FindItem(Resource.Id.menu_copy_user); + //Disabled IMenuItem copyPass = menu.FindItem(Resource.Id.menu_copy_pass); + + // In API >= 11 onCreateOptionsMenu may be called before onCreate completes + // so mEntry may not be set + if (mEntry == null) { + gotoUrl.SetVisible(false); + //Disabled copyUser.SetVisible(false); + //Disabled copyPass.SetVisible(false); + } + else { + String url = mEntry.Strings.ReadSafe (PwDefs.UrlField); + if (String.IsNullOrEmpty(url)) { + // disable button if url is not available + gotoUrl.SetVisible(false); + } + if ( String.IsNullOrEmpty(mEntry.Strings.ReadSafe(PwDefs.UserNameField ))) { + // disable button if username is not available + //Disabled copyUser.SetVisible(false); + } + if ( String.IsNullOrEmpty(mEntry.Strings.ReadSafe(PwDefs.PasswordField ))) { + // disable button if password is not available + //Disabled copyPass.SetVisible(false); + } + } + return true; + } + + private void setPasswordStyle() { + TextView password = (TextView) FindViewById(Resource.Id.entry_password); + + if ( mShowPassword ) { + password.TransformationMethod = null; + } else { + password.TransformationMethod = PasswordTransformationMethod.Instance; + } + } + + public override bool OnOptionsItemSelected(IMenuItem item) { + switch ( item.ItemId ) { + /*case Resource.Id.menu_donate: + try { + Util.gotoUrl(this, Resource.String.donate_url); + } catch (ActivityNotFoundException) { + Toast.MakeText(this, Resource.String.error_failed_to_launch_link, ToastLength.Long).Show(); + return false; + } + + return true;*/ + case Resource.Id.menu_toggle_pass: + if ( mShowPassword ) { + item.SetTitle(Resource.String.show_password); + mShowPassword = false; + } else { + item.SetTitle(Resource.String.menu_hide_password); + mShowPassword = true; + } + setPasswordStyle(); + + return true; + + case Resource.Id.menu_goto_url: + String url; + url = mEntry.Strings.ReadSafe (PwDefs.UserNameField); + + // Default http:// if no protocol specified + if ( ! url.Contains("://") ) { + url = "http://" + url; + } + + try { + Util.gotoUrl(this, url); + } catch (ActivityNotFoundException) { + Toast.MakeText(this, Resource.String.no_url_handler, ToastLength.Long).Show(); + } + return true; + /* TODO: required? + case Resource.Id.menu_copy_user: + timeoutCopyToClipboard(mEntry.Strings.ReadSafe (PwDefs.UserNameField)); + return true; + + case Resource.Id.menu_copy_pass: + timeoutCopyToClipboard(mEntry.Strings.ReadSafe (PwDefs.UserNameField)); + return true; + */ + case Resource.Id.menu_lock: + App.setShutdown(); + SetResult(KeePass.EXIT_LOCK); + Finish(); + return true; + } + + return base.OnOptionsItemSelected(item); + } + } + +} + diff --git a/src/keepass2android/EntryEditActivity.cs b/src/keepass2android/EntryEditActivity.cs new file mode 100644 index 00000000..4a738cf3 --- /dev/null +++ b/src/keepass2android/EntryEditActivity.cs @@ -0,0 +1,739 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Preferences; +using KeePassLib.Utility; +using KeePassLib; +using Android.Text; +using KeePassLib.Security; +using Android.Content.PM; +using keepass2android.view; +using System.IO; +using System.Globalization; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden, Theme="@style/NoTitleBar")] + public class EntryEditActivity : LockCloseActivity { + public const String KEY_ENTRY = "entry"; + public const String KEY_PARENT = "parent"; + + public const int RESULT_OK_ICON_PICKER = (int)Result.FirstUser + 1000; + public const int RESULT_OK_PASSWORD_GENERATOR = RESULT_OK_ICON_PICKER + 1; + + private PwEntry mEntry, mEntryInDatabase; + private bool mShowPassword = false; + private bool mIsNew; + private PwIcon mSelectedIconID; + private PwUuid mSelectedCustomIconID = PwUuid.Zero; + private bool mSelectedIcon = false; + + public static void Launch(Activity act, PwEntry pw) { + Intent i = new Intent(act, typeof(EntryEditActivity)); + + i.PutExtra(KEY_ENTRY, pw.Uuid.ToHexString()); + + act.StartActivityForResult(i, 0); + } + + public static void Launch(Activity act, PwGroup pw) { + Intent i = new Intent(act, typeof(EntryEditActivity)); + + PwGroup parent = pw; + i.PutExtra(KEY_PARENT, parent.Uuid.ToHexString()); + + act.StartActivityForResult(i, 0); + } + + private ScrollView scroll; + + protected override void OnCreate(Bundle savedInstanceState) + { + ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this); + mShowPassword = ! prefs.GetBoolean(GetString(Resource.String.maskpass_key), Resources.GetBoolean(Resource.Boolean.maskpass_default)); + + base.OnCreate(savedInstanceState); + SetContentView(Resource.Layout.entry_edit); + SetResult(KeePass.EXIT_NORMAL); + + // Likely the app has been killed exit the activity + Database db = App.getDB(); + if ( ! db.Open ) { + Finish(); + return; + } + + Intent i = Intent; + String uuidBytes = i.GetStringExtra(KEY_ENTRY); + + PwUuid entryId = PwUuid.Zero; + if (uuidBytes != null) + entryId = new KeePassLib.PwUuid(MemUtil.HexStringToByteArray(uuidBytes)); + + PwGroup parentGroup = null; + if ( entryId == PwUuid.Zero ) { + String groupId = i.GetStringExtra(KEY_PARENT); + + parentGroup = db.groups[new PwUuid(MemUtil.HexStringToByteArray(groupId))]; + + mEntryInDatabase = new PwEntry(true, true); + mEntryInDatabase.Strings.Set(PwDefs.UserNameField, new ProtectedString( + db.pm.MemoryProtection.ProtectUserName, db.pm.DefaultUserName)); + + /*KPDesktop + * ProtectedString psAutoGen; + PwGenerator.Generate(out psAutoGen, Program.Config.PasswordGenerator.AutoGeneratedPasswordsProfile, + null, Program.PwGeneratorPool); + psAutoGen = psAutoGen.WithProtection(pwDb.MemoryProtection.ProtectPassword); + pwe.Strings.Set(PwDefs.PasswordField, psAutoGen); + + int nExpireDays = Program.Config.Defaults.NewEntryExpiresInDays; + if(nExpireDays >= 0) + { + pwe.Expires = true; + pwe.ExpiryTime = DateTime.Now.AddDays(nExpireDays); + }*/ + + if((parentGroup.IconId != PwIcon.Folder) && (parentGroup.IconId != PwIcon.FolderOpen) && + (parentGroup.IconId != PwIcon.FolderPackage)) + { + mEntryInDatabase.IconId = parentGroup.IconId; // Inherit icon from group + } + mEntryInDatabase.CustomIconUuid = parentGroup.CustomIconUuid; + + /* + * KPDesktop + if(strDefaultSeq.Length == 0) + { + PwGroup pg = m_pwEntry.ParentGroup; + if(pg != null) + { + strDefaultSeq = pg.GetAutoTypeSequenceInherited(); + + if(strDefaultSeq.Length == 0) + { + if(PwDefs.IsTanEntry(m_pwEntry)) + strDefaultSeq = PwDefs.DefaultAutoTypeSequenceTan; + else + strDefaultSeq = PwDefs.DefaultAutoTypeSequence; + } + } + }*/ + mIsNew = true; + + } else { + + System.Diagnostics.Debug.Assert(entryId != null); + + mEntryInDatabase = db.entries[entryId]; + mIsNew = false; + + + } + + mEntry = mEntryInDatabase.CloneDeep(); + + fillData(); + View scrollView = FindViewById(Resource.Id.entry_scroll); + scrollView.ScrollBarStyle = ScrollbarStyles.InsideInset; + + ImageButton iconButton = (ImageButton) FindViewById(Resource.Id.icon_button); + iconButton.Click += (sender, evt) => { + IconPickerActivity.Launch(this); + }; + + + // Generate password button + Button generatePassword = (Button) FindViewById(Resource.Id.generate_button); + generatePassword.Click += (object sender, EventArgs e) => { + + GeneratePasswordActivity.Launch(this); + }; + + + + + // Save button + Button save = (Button) FindViewById(Resource.Id.entry_save); + save.Click += (object sender, EventArgs e) => + { + + EntryEditActivity act = this; + + if (!validateBeforeSaving()) + return; + + PwEntry initialEntry = mEntryInDatabase.CloneDeep(); + + PwEntry newEntry = mEntryInDatabase; + + //Clone history and re-assign: + newEntry.History = newEntry.History.CloneDeep(); + + //Based on KeePass Desktop + bool bCreateBackup = (!mIsNew); + if(bCreateBackup) newEntry.CreateBackup(null); + + if (mSelectedIcon == false) { + if (mIsNew) { + newEntry.IconId = PwIcon.Key; + } else { + // Keep previous icon, if no new one was selected + } + } + else { + newEntry.IconId = mSelectedIconID; + newEntry.CustomIconUuid = mSelectedCustomIconID; + } + /* KPDesktop + if(m_cbCustomForegroundColor.Checked) + newEntry.ForegroundColor = m_clrForeground; + else newEntry.ForegroundColor = Color.Empty; + if(m_cbCustomBackgroundColor.Checked) + newEntry.BackgroundColor = m_clrBackground; + else newEntry.BackgroundColor = Color.Empty; + + */ + + + newEntry.Strings.Set(PwDefs.TitleField, new ProtectedString(db.pm.MemoryProtection.ProtectTitle, + Util.getEditText(act, Resource.Id.entry_title))); + newEntry.Strings.Set(PwDefs.UserNameField, new ProtectedString(db.pm.MemoryProtection.ProtectUserName, + Util.getEditText(act, Resource.Id.entry_user_name))); + + String pass = Util.getEditText(act, Resource.Id.entry_password); + byte[] password = StrUtil.Utf8.GetBytes(pass); + newEntry.Strings.Set(PwDefs.PasswordField, new ProtectedString(db.pm.MemoryProtection.ProtectPassword, + password)); + MemUtil.ZeroByteArray(password); + + newEntry.Strings.Set(PwDefs.UrlField, new ProtectedString(db.pm.MemoryProtection.ProtectUrl, + Util.getEditText(act, Resource.Id.entry_url))); + newEntry.Strings.Set(PwDefs.NotesField, new ProtectedString(db.pm.MemoryProtection.ProtectNotes, + Util.getEditText(act, Resource.Id.entry_comment))); + + // Delete all non standard strings + var keys = newEntry.Strings.GetKeys(); + foreach (String key in keys) + if (PwDefs.IsStandardField(key) == false) + newEntry.Strings.Remove(key); + + LinearLayout container = (LinearLayout) FindViewById(Resource.Id.advanced_container); + + for (int index = 0; index < container.ChildCount; index++) { + View view = container.GetChildAt(index); + + TextView keyView = (TextView)view.FindViewById(Resource.Id.title); + String key = keyView.Text; + + TextView valueView = (TextView)view.FindViewById(Resource.Id.value); + String value = valueView.Text; + + CheckBox cb = (CheckBox)view.FindViewById(Resource.Id.protection); + bool protect = cb.Checked; + + newEntry.Strings.Set(key, new ProtectedString(protect, value)); + } + + newEntry.Binaries = mEntry.Binaries; + newEntry.Expires = mEntry.Expires; + if (newEntry.Expires) + { + newEntry.ExpiryTime = mEntry.ExpiryTime; + } + + newEntry.OverrideUrl = Util.getEditText(this,Resource.Id.entry_override_url); + + List vNewTags = StrUtil.StringToTags(Util.getEditText(this,Resource.Id.entry_tags)); + newEntry.Tags.Clear(); + foreach(string strTag in vNewTags) newEntry.AddTag(strTag); + + /*KPDesktop + + + m_atConfig.Enabled = m_cbAutoTypeEnabled.Checked; + m_atConfig.ObfuscationOptions = (m_cbAutoTypeObfuscation.Checked ? + AutoTypeObfuscationOptions.UseClipboard : + AutoTypeObfuscationOptions.None); + + SaveDefaultSeq(); + + newEntry.AutoType = m_atConfig; + */ + + + newEntry.Touch(true, false); // Touch *after* backup + + StrUtil.NormalizeNewLines(newEntry.Strings, true); + + bool bUndoBackup = false; + PwCompareOptions cmpOpt = (PwCompareOptions.NullEmptyEquivStd | + PwCompareOptions.IgnoreTimes); + if(bCreateBackup) cmpOpt |= PwCompareOptions.IgnoreLastBackup; + if(newEntry.EqualsEntry(initialEntry, cmpOpt, MemProtCmpMode.CustomOnly)) + { + // No modifications at all => restore last mod time and undo backup + newEntry.LastModificationTime = initialEntry.LastModificationTime; + bUndoBackup = bCreateBackup; + } + else if(bCreateBackup) + { + // If only history items have been modified (deleted) => undo + // backup, but without restoring the last mod time + PwCompareOptions cmpOptNH = (cmpOpt | PwCompareOptions.IgnoreHistory); + if(newEntry.EqualsEntry(initialEntry, cmpOptNH, MemProtCmpMode.CustomOnly)) + bUndoBackup = true; + } + if(bUndoBackup) newEntry.History.RemoveAt(newEntry.History.UCount - 1); + + newEntry.MaintainBackups(db.pm); + + + + //if ( newEntry.Strings.ReadSafe (PwDefs.TitleField).Equals(mEntry.Strings.ReadSafe (PwDefs.TitleField)) ) { + // SetResult(KeePass.EXIT_REFRESH); + //} else { + //it's safer to always update the title as we might add further information in the title like expiry etc. + SetResult(KeePass.EXIT_REFRESH_TITLE); + //} + + RunnableOnFinish task; + OnFinish onFinish = new AfterSave(new Handler(), act); + + if ( mIsNew ) { + task = AddEntry.getInstance(this, App.getDB(), newEntry, parentGroup, onFinish); + } else { + task = new UpdateEntry(this, App.getDB(), initialEntry, newEntry, onFinish); + } + ProgressTask pt = new ProgressTask(act, task, Resource.String.saving_database); + pt.run(); + }; + + + // Respect mask password setting + if (mShowPassword) { + EditText pass = (EditText) FindViewById(Resource.Id.entry_password); + EditText conf = (EditText) FindViewById(Resource.Id.entry_confpassword); + + pass.InputType = InputTypes.ClassText | InputTypes.TextVariationVisiblePassword; + conf.InputType = InputTypes.ClassText | InputTypes.TextVariationVisiblePassword; + } + + scroll = (ScrollView) FindViewById(Resource.Id.entry_scroll); + + Button addButton = (Button) FindViewById(Resource.Id.add_advanced); + addButton.Visibility = ViewStates.Visible; + addButton.Click += (object sender, EventArgs e) => + { + LinearLayout container = (LinearLayout) FindViewById(Resource.Id.advanced_container); + + EntryEditSection ees = (EntryEditSection) LayoutInflater.Inflate(Resource.Layout.entry_edit_section, null); + ees.setData("", new ProtectedString(false, "")); + ees.getDeleteButton().Click += (senderEes, eEes) => deleteAdvancedString((View)senderEes); + container.AddView(ees); + + // Scroll bottom + scroll.Post(() => { + scroll.FullScroll(FocusSearchDirection.Down); + }); + + + }; + + ((CheckBox)FindViewById(Resource.Id.entry_expires_checkbox)).CheckedChange += (object sender, CompoundButton.CheckedChangeEventArgs e) => + { + mEntry.Expires = e.IsChecked; + if (e.IsChecked) + { + if (mEntry.ExpiryTime < DateTime.Now) + mEntry.ExpiryTime = DateTime.Now; + } + updateExpires(); + + }; + + } + + void addBinaryOrAsk(string filename) + { + string strItem = UrlUtil.GetFileName(filename); + + if(mEntry.Binaries.Get(strItem) != null) + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.SetTitle(GetString(Resource.String.AskOverwriteBinary_title)); + + builder.SetMessage(GetString(Resource.String.AskOverwriteBinary)); + + builder.SetPositiveButton(GetString(Resource.String.AskOverwriteBinary_yes), new EventHandler((dlgSender, dlgEvt) => + { + addBinary(filename, true); + })); + + builder.SetNegativeButton(GetString(Resource.String.AskOverwriteBinary_no), new EventHandler((dlgSender, dlgEvt) => + { + addBinary(filename, false); + })); + + builder.SetNeutralButton(GetString(Android.Resource.String.Cancel), + new EventHandler((dlgSender, dlgEvt) => {})); + + Dialog dialog = builder.Create(); + dialog.Show(); + + + } else + addBinary(filename, true); + } + + void addBinary(string filename, bool overwrite) + { + string strItem = UrlUtil.GetFileName(filename); + + if (!overwrite) + { + string strFileName = UrlUtil.StripExtension(strItem); + string strExtension = "." + UrlUtil.GetExtension(strItem); + + int nTry = 0; + while(true) + { + string strNewName = strFileName + nTry.ToString() + strExtension; + if(mEntry.Binaries.Get(strNewName) == null) + { + strItem = strNewName; + break; + } + + ++nTry; + } + } + try + { + byte[] vBytes = File.ReadAllBytes(filename); + if(vBytes != null) + { + ProtectedBinary pb = new ProtectedBinary(false, vBytes); + mEntry.Binaries.Set(strItem, pb); + } + } + catch(Exception exAttach) + { + Toast.MakeText(this, GetString(Resource.String.AttachFailed)+" "+exAttach.Message, ToastLength.Long).Show(); + } + populateBinaries(); + } + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) + { + switch ((int)resultCode) + { + case RESULT_OK_ICON_PICKER: + mSelectedIconID = (PwIcon) data.Extras.GetInt(IconPickerActivity.KEY_ICON_ID); + mSelectedCustomIconID = PwUuid.Zero; + String customIconIdString = data.Extras.GetString(IconPickerActivity.KEY_CUSTOM_ICON_ID); + if (!String.IsNullOrEmpty(customIconIdString)) + mSelectedCustomIconID = new PwUuid(MemUtil.HexStringToByteArray(customIconIdString)); + mSelectedIcon = true; + ImageButton currIconButton = (ImageButton) FindViewById(Resource.Id.icon_button); + //TODO: custom image + currIconButton.SetImageResource(Icons.iconToResId(mSelectedIconID)); + break; + + case RESULT_OK_PASSWORD_GENERATOR: + String generatedPassword = data.GetStringExtra("keepass2android.password.generated_password"); + EditText password = (EditText) FindViewById(Resource.Id.entry_password); + EditText confPassword = (EditText) FindViewById(Resource.Id.entry_confpassword); + + password.Text = generatedPassword; + confPassword.Text = generatedPassword; + + break; + case (int)Result.Ok: + if (requestCode == Intents.REQUEST_CODE_FILE_BROWSE) + { + String filename = data.DataString; + if (filename != null) { + if (filename.StartsWith("file://")) { + filename = filename.Substring(7); + } + + filename = Java.Net.URLDecoder.Decode(filename); + addBinaryOrAsk(filename); + } + } + + + break; + case (int)Result.Canceled: + break; + default: + break; + } + } + + void populateBinaries() + { + ViewGroup binariesGroup = (ViewGroup)FindViewById(Resource.Id.binaries); + binariesGroup.RemoveAllViews(); + RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FillParent, RelativeLayout.LayoutParams.WrapContent); + foreach (KeyValuePair pair in mEntry.Binaries) + { + String key = pair.Key; + Button binaryButton = new Button(this); + + binaryButton.Text = key; + binaryButton.SetCompoundDrawablesWithIntrinsicBounds( Resources.GetDrawable(Android.Resource.Drawable.IcMenuDelete),null, null, null); + binaryButton.Click += (object sender, EventArgs e) => + { + Button btnSender = (Button)(sender); + mEntry.Binaries.Remove(key); + populateBinaries(); + + }; + binariesGroup.AddView(binaryButton,layoutParams); + + + } + + Button addBinaryButton = new Button(this); + addBinaryButton.Text = GetString(Resource.String.add_binary); + addBinaryButton.SetCompoundDrawablesWithIntrinsicBounds( Resources.GetDrawable(Android.Resource.Drawable.IcMenuAdd) , null, null, null); + addBinaryButton.Click += (object sender, EventArgs e) => + { + Util.showBrowseDialog("/mnt/sdcard", this); + }; + binariesGroup.AddView(addBinaryButton,layoutParams); + + FindViewById(Resource.Id.entry_binaries_label).Visibility = mEntry.Binaries.UCount > 0 ? ViewStates.Visible : ViewStates.Gone; + } + public override bool OnCreateOptionsMenu(IMenu menu) { + base.OnCreateOptionsMenu(menu); + + MenuInflater inflater = MenuInflater; + inflater.Inflate(Resource.Menu.entry_edit, menu); + + + IMenuItem togglePassword = menu.FindItem(Resource.Id.menu_toggle_pass); + if ( mShowPassword ) { + togglePassword.SetTitle(Resource.String.menu_hide_password); + } else { + togglePassword.SetTitle(Resource.String.show_password); + } + + return true; + } + + public override bool OnOptionsItemSelected(IMenuItem item) { + switch ( item.ItemId ) { + /*case Resource.Id.menu_donate: + try { + Util.gotoUrl(this, Resource.String.donate_url); + } catch (ActivityNotFoundException) { + Toast.MakeText(this, Resource.String.error_failed_to_launch_link, ToastLength.Long).Show(); + return false; + } + + return true;*/ + case Resource.Id.menu_toggle_pass: + if ( mShowPassword ) { + item.SetTitle(Resource.String.show_password); + mShowPassword = false; + } else { + item.SetTitle(Resource.String.menu_hide_password); + mShowPassword = true; + } + setPasswordStyle(); + return true; + case Resource.Id.menu_cancel_edit: + Finish(); + break; + } + + + + return base.OnOptionsItemSelected(item); + } + + private void setPasswordStyle() { + TextView password = (TextView) FindViewById(Resource.Id.entry_password); + TextView confpassword = (TextView) FindViewById(Resource.Id.entry_confpassword); + + if ( mShowPassword ) { + password.InputType = InputTypes.ClassText | InputTypes.TextVariationVisiblePassword; + confpassword.InputType = InputTypes.ClassText | InputTypes.TextVariationVisiblePassword; + + } else { + password.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword; + confpassword.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword; + } + } + + void updateExpires() + { + if (mEntry.Expires) + { + populateText(Resource.Id.entry_expires, getDateTime(mEntry.ExpiryTime)); + } + else + { + populateText(Resource.Id.entry_expires, GetString(Resource.String.never)); + } + ((CheckBox)FindViewById(Resource.Id.entry_expires_checkbox)).Checked = mEntry.Expires; + ((EditText)FindViewById(Resource.Id.entry_expires)).Enabled = mEntry.Expires; + } + + private void fillData() { + ImageButton currIconButton = (ImageButton) FindViewById(Resource.Id.icon_button); + App.getDB().drawFactory.assignDrawableTo(currIconButton, Resources, App.getDB().pm, mEntry.IconId, mEntry.CustomIconUuid); + + populateText(Resource.Id.entry_title, mEntry.Strings.ReadSafe (PwDefs.TitleField)); + populateText(Resource.Id.entry_user_name, mEntry.Strings.ReadSafe (PwDefs.UserNameField)); + populateText(Resource.Id.entry_url, mEntry.Strings.ReadSafe (PwDefs.UrlField)); + + String password = mEntry.Strings.ReadSafe(PwDefs.PasswordField); + populateText(Resource.Id.entry_password, password); + populateText(Resource.Id.entry_confpassword, password); + setPasswordStyle(); + + populateText(Resource.Id.entry_comment, mEntry.Strings.ReadSafe (PwDefs.NotesField)); + + LinearLayout container = (LinearLayout) FindViewById(Resource.Id.advanced_container); + + foreach (var pair in mEntry.Strings) + { + String key = pair.Key; + + if (!PwDefs.IsStandardField(key)) { + EntryEditSection ees = (EntryEditSection) LayoutInflater.Inflate(Resource.Layout.entry_edit_section, null); + ees.setData(key, pair.Value); + ees.getDeleteButton().Click += (sender, e) => deleteAdvancedString((View)sender); + container.AddView(ees); + } + } + + populateBinaries(); + + populateText(Resource.Id.entry_override_url, mEntry.OverrideUrl); + populateText(Resource.Id.entry_tags, StrUtil.TagsToString(mEntry.Tags, true)); + + updateExpires(); + } + private String getDateTime(System.DateTime dt) { + return dt.ToString ("g", CultureInfo.CurrentUICulture); + } + + + public void deleteAdvancedString(View view) { + EntryEditSection section = (EntryEditSection) view.Parent; + LinearLayout container = (LinearLayout) FindViewById(Resource.Id.advanced_container); + + for (int i = 0; i < container.ChildCount; i++) { + EntryEditSection ees = (EntryEditSection) container.GetChildAt(i); + if (ees == section) { + container.RemoveViewAt(i); + container.Invalidate(); + break; + } + } + } + + + protected bool validateBeforeSaving() { + // Require title + String title = Util.getEditText(this, Resource.Id.entry_title); + if ( title.Length == 0 ) { + Toast.MakeText(this, Resource.String.error_title_required, ToastLength.Long).Show(); + return false; + } + + // Validate password + String pass = Util.getEditText(this, Resource.Id.entry_password); + String conf = Util.getEditText(this, Resource.Id.entry_confpassword); + if ( ! pass.Equals(conf) ) { + Toast.MakeText(this, Resource.String.error_pass_match, ToastLength.Long).Show(); + return false; + } + + // Validate expiry date + DateTime newExpiry = new DateTime(); + if ((mEntry.Expires) && (!DateTime.TryParse( Util.getEditText(this,Resource.Id.entry_expires), out newExpiry))) + { + Toast.MakeText(this, Resource.String.error_invalid_expiry_date, ToastLength.Long).Show(); + return false; + } + else + { + mEntry.ExpiryTime = newExpiry; + } + + + LinearLayout container = (LinearLayout) FindViewById(Resource.Id.advanced_container); + for (int i = 0; i < container.ChildCount; i++) { + EntryEditSection ees = (EntryEditSection) container.GetChildAt(i); + + TextView keyView = (TextView) ees.FindViewById(Resource.Id.title); + string key = keyView.Text; + + if (String.IsNullOrEmpty(key)) { + Toast.MakeText(this, Resource.String.error_string_key, ToastLength.Long).Show(); + return false; + } + + } + + return true; + } + + + private void populateText(int viewId, String text) { + TextView tv = (TextView) FindViewById(viewId); + tv.Text = text; + } + + private class AfterSave : OnFinish { + Activity act; + public AfterSave(Handler handler, Activity act): base(handler) { + this.act = act; + } + + + public override void run() { + if ( mSuccess ) { + act.Finish(); + } else { + displayMessage(act); + } + } + + } + + } + +} + diff --git a/src/keepass2android/GeneratePasswordActivity.cs b/src/keepass2android/GeneratePasswordActivity.cs new file mode 100644 index 00000000..fb697d26 --- /dev/null +++ b/src/keepass2android/GeneratePasswordActivity.cs @@ -0,0 +1,130 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", Theme="@style/NoTitleBar")] + public class GeneratePasswordActivity : LockCloseActivity { + private int[] BUTTON_IDS = new int[] {Resource.Id.btn_length6, Resource.Id.btn_length8, Resource.Id.btn_length12, Resource.Id.btn_length16}; + + public static void Launch(Activity act) { + Intent i = new Intent(act, typeof(GeneratePasswordActivity)); + + act.StartActivityForResult(i, 0); + } + + + protected override void OnCreate(Bundle savedInstanceState) { + base.OnCreate(savedInstanceState); + SetContentView(Resource.Layout.generate_password); + SetResult(KeePass.EXIT_NORMAL); + + foreach (int id in BUTTON_IDS) { + Button button = (Button) FindViewById(id); + button.Click += (object sender, EventArgs e) => + { + Button b = (Button) sender; + + EditText editText = (EditText) FindViewById(Resource.Id.length); + editText.Text = b.Text; + + }; + } + + Button genPassButton = (Button) FindViewById(Resource.Id.generate_password_button); + genPassButton.Click += (object sender, EventArgs e) => { + String password = generatePassword(); + + EditText txtPassword = (EditText) FindViewById(Resource.Id.password); + txtPassword.Text = password; + }; + + + + Button acceptButton = (Button) FindViewById(Resource.Id.accept_button); + acceptButton.Click += (object sender, EventArgs e) => { + EditText password = (EditText) FindViewById(Resource.Id.password); + + Intent intent = new Intent(); + intent.PutExtra("keepass2android.password.generated_password", password.Text); + + SetResult((Result)EntryEditActivity.RESULT_OK_PASSWORD_GENERATOR, intent); + + Finish(); + }; + + + Button cancelButton = (Button) FindViewById(Resource.Id.cancel_button); + cancelButton.Click += (object sender, EventArgs e) => + { + SetResult(Result.Canceled); + + Finish(); + }; + + + EditText txtPasswordToSet = (EditText) FindViewById(Resource.Id.password); + txtPasswordToSet.Text = generatePassword(); + + } + + public String generatePassword() { + String password = ""; + + try { + + int length; + if (!int.TryParse(((EditText) FindViewById(Resource.Id.length)).Text, out length)) + { + Toast.MakeText(this, Resource.String.error_wrong_length, ToastLength.Long).Show(); + return password; + } + + + PasswordGenerator generator = new PasswordGenerator(this); + + password = generator.generatePassword(length, + ((CheckBox) FindViewById(Resource.Id.cb_uppercase)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_lowercase)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_digits)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_minus)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_underline)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_space)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_specials)).Checked, + ((CheckBox) FindViewById(Resource.Id.cb_brackets)).Checked); + } catch (ArgumentException e) { + Toast.MakeText(this, e.Message, ToastLength.Long).Show(); + } + + return password; + } + } + +} + diff --git a/src/keepass2android/GroupActivity.cs b/src/keepass2android/GroupActivity.cs new file mode 100644 index 00000000..363f5513 --- /dev/null +++ b/src/keepass2android/GroupActivity.cs @@ -0,0 +1,195 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib; +using Android.Util; +using KeePassLib.Utility; +using keepass2android.view; +using Android.Content.PM; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden , Theme="@style/NoTitleBar")] + [MetaData("android.app.default_searchable",Value="keepass2android.search.SearchResults")] + public class GroupActivity : GroupBaseActivity { + + public const int UNINIT = -1; + + protected bool addGroupEnabled = false; + protected bool addEntryEnabled = false; + + private const String TAG = "Group Activity:"; + + public static void Launch(Activity act) { + Launch(act, null); + } + + public static void Launch (Activity act, PwGroup g) + { + Intent i; + + // Need to use PwDatabase since group may be null + PwDatabase db = App.getDB ().pm; + + if (db == null) { + // Reached if db is null + Log.Debug (TAG, "Tried to launch with null db"); + return; + } + + i = new Intent(act, typeof(GroupActivity)); + + if ( g != null ) { + i.PutExtra(KEY_ENTRY, g.Uuid.ToHexString()); + } + + act.StartActivityForResult(i,0); + } + + protected PwUuid retrieveGroupId(Intent i) + { + String uuid = i.GetStringExtra(KEY_ENTRY); + + if ( String.IsNullOrEmpty(uuid) ) { + return null; + } + return new PwUuid(MemUtil.HexStringToByteArray(uuid)); + } + + protected void setupButtons() + { + addGroupEnabled = true; + addEntryEnabled = !mGroup.Uuid.EqualsValue(App.getDB().root.Uuid); + } + + protected override void OnCreate (Bundle savedInstanceState) + { + base.OnCreate (savedInstanceState); + + if (IsFinishing) { + return; + } + + SetResult (KeePass.EXIT_NORMAL); + + Log.Warn (TAG, "Creating group view"); + Intent intent = Intent; + + PwUuid id = retrieveGroupId (intent); + + Database db = App.getDB (); + if (id == null) { + mGroup = db.root; + } else { + mGroup = db.groups[id]; + } + + Log.Warn (TAG, "Retrieved group"); + if (mGroup == null) { + Log.Warn (TAG, "Group was null"); + return; + } + + setupButtons (); + + if (addGroupEnabled && addEntryEnabled) { + SetContentView (new GroupAddEntryView (this)); + } else if (addGroupEnabled) { + SetContentView (new GroupRootView (this)); + } else if (addEntryEnabled) { + throw new Exception ("This mode is not supported."); + } else { + SetContentView (new GroupViewOnlyView (this)); + } + Log.Warn (TAG, "Set view"); + + if (addGroupEnabled) { + // Add Group button + Button addGroup = (Button)FindViewById (Resource.Id.add_group); + addGroup.Click += (object sender, EventArgs e) => { + GroupEditActivity.Launch (this, mGroup); + }; + } + + if (addEntryEnabled) { + // Add Entry button + Button addEntry = (Button)FindViewById (Resource.Id.add_entry); + addEntry.Click += (object sender, EventArgs e) => { + EntryEditActivity.Launch (this, mGroup); + + }; + } + + setGroupTitle(); + setGroupIcon(); + + ListAdapter = new PwGroupListAdapter(this, mGroup); + RegisterForContextMenu(ListView); + Log.Warn(TAG, "Finished creating group"); + + } + + 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) { + Android.Widget.AdapterView.AdapterContextMenuInfo acmi = (Android.Widget.AdapterView.AdapterContextMenuInfo)item.MenuInfo; + ClickView cv = (ClickView) acmi.TargetView; + + return cv.OnContextItemSelected(item); + } + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) + { + switch (resultCode) + { + case Result.Ok: + String GroupName = data.Extras.GetString(GroupEditActivity.KEY_NAME); + int GroupIconID = data.Extras.GetInt(GroupEditActivity.KEY_ICON_ID); + GroupBaseActivity act = this; + Handler handler = new Handler(); + AddGroup task = AddGroup.getInstance(this, App.getDB(), GroupName, GroupIconID, mGroup, new RefreshTask(handler, this), false); + ProgressTask pt = new ProgressTask(act, task, Resource.String.saving_database); + pt.run(); + break; + + case Result.Canceled: + default: + break; + } + } + } +} + diff --git a/src/keepass2android/GroupBaseActivity.cs b/src/keepass2android/GroupBaseActivity.cs new file mode 100644 index 00000000..584f8b68 --- /dev/null +++ b/src/keepass2android/GroupBaseActivity.cs @@ -0,0 +1,295 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib; +using Android.Preferences; +using keepass2android.view; + +namespace keepass2android +{ + + public abstract class GroupBaseActivity : LockCloseListActivity { + public const String KEY_ENTRY = "entry"; + public const String KEY_MODE = "mode"; + + public virtual void LaunchActivityForEntry(KeePassLib.PwEntry pwEntry, int pos) + { + EntryActivity.Launch(this, pwEntry, pos, false); + } + public GroupBaseActivity () + { + + } + + public GroupBaseActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + + private ISharedPreferences prefs; + + protected PwGroup mGroup; + + protected override void OnResume() { + base.OnResume(); + + refreshIfDirty(); + } + + public override bool OnSearchRequested() + { + StartActivityForResult(typeof(SearchActivity), 0); + return true; + } + + public void refreshIfDirty() { + Database db = App.getDB(); + if ( db.dirty.Contains(mGroup) ) { + db.dirty.Remove(mGroup); + BaseAdapter adapter = (BaseAdapter) ListAdapter; + adapter.NotifyDataSetChanged(); + + } + } + + protected override void OnListItemClick(ListView l, View v, int position, long id) { + base.OnListItemClick(l, v, position, id); + + Android.Widget.IListAdapter adapt = ListAdapter; + ClickView cv = (ClickView) adapt.GetView(position, null, null); + cv.OnClick(); + + } + + protected override void OnCreate(Bundle savedInstanceState) { + base.OnCreate(savedInstanceState); + + // Likely the app has been killed exit the activity + if ( ! App.getDB().Loaded ) { + Finish(); + return; + } + + prefs = PreferenceManager.GetDefaultSharedPreferences(this); + + SetContentView(new GroupViewOnlyView(this)); + SetResult(KeePass.EXIT_NORMAL); + + styleScrollBars(); + + } + + protected void styleScrollBars() { + ListView lv = ListView; + lv.ScrollBarStyle =ScrollbarStyles.InsideInset; + lv.TextFilterEnabled = true; + + } + + + protected void setGroupTitle() + { + Button tv = (Button)FindViewById(Resource.Id.group_name); + if (tv == null) + return; + + if (mGroup != null) + { + String name = mGroup.Name; + if (!String.IsNullOrEmpty(name)) + { + tv.Text = name; + } else + { + tv.Text = GetText(Resource.String.root); + } + + + } + + if ((mGroup != null) && (mGroup.IsVirtual == false) && (mGroup.ParentGroup != null)) + { + tv.Click += (object sender, EventArgs e) => + { + Finish(); + }; + } else + { + tv.SetCompoundDrawables(null, null, null, null); + tv.Clickable = false; + } + } + + + protected void setGroupIcon() { + if (mGroup != null) { + ImageView iv = (ImageView) FindViewById(Resource.Id.icon); + App.getDB().drawFactory.assignDrawableTo(iv, Resources, App.getDB().pm, mGroup.IconId, mGroup.CustomIconUuid); + } + } + + public override bool OnCreateOptionsMenu(IMenu menu) { + base.OnCreateOptionsMenu(menu); + + MenuInflater inflater = MenuInflater; + inflater.Inflate(Resource.Menu.group, menu); + + return true; + } + + private void setSortMenuText(IMenu menu) { + bool sortByName = prefs.GetBoolean(GetString(Resource.String.sort_key), Resources.GetBoolean(Resource.Boolean.sort_default)); + + int resId; + if ( sortByName ) { + resId = Resource.String.sort_db; + } else { + resId = Resource.String.sort_name; + } + + menu.FindItem(Resource.Id.menu_sort).SetTitle(resId); + + } + + public override bool OnPrepareOptionsMenu(IMenu menu) { + if ( ! base.OnPrepareOptionsMenu(menu) ) { + return false; + } + + setSortMenuText(menu); + + return true; + } + + public override bool OnOptionsItemSelected(IMenuItem item) { + switch ( item.ItemId ) { + /*case Resource.Id.menu_donate: + try { + Util.gotoUrl(this, Resource.String.donate_url); + } catch (ActivityNotFoundException) { + Toast.MakeText(this, Resource.String.error_failed_to_launch_link, ToastLength.Long).Show(); + return false; + } + + return true;*/ + case Resource.Id.menu_lock: + App.setShutdown(); + SetResult(KeePass.EXIT_LOCK); + Finish(); + return true; + + case Resource.Id.menu_search: + OnSearchRequested(); + return true; + + case Resource.Id.menu_app_settings: + AppSettingsActivity.Launch(this); + return true; + + case Resource.Id.menu_change_master_key: + setPassword(); + return true; + + case Resource.Id.menu_sort: + toggleSort(); + return true; + + } + + return base.OnOptionsItemSelected(item); + } + + private void toggleSort() { + // Toggle setting + String sortKey = GetString(Resource.String.sort_key); + bool sortByName = prefs.GetBoolean(sortKey, Resources.GetBoolean(Resource.Boolean.sort_default)); + ISharedPreferencesEditor editor = prefs.Edit(); + editor.PutBoolean(sortKey, ! sortByName); + EditorCompat.apply(editor); + + // Refresh menu titles + ActivityCompat.invalidateOptionsMenu(this); + + // Mark all groups as dirty now to refresh them on load + Database db = App.getDB(); + db.markAllGroupsAsDirty(); + // We'll manually refresh this group so we can remove it + db.dirty.Remove(mGroup); + + // Tell the adapter to refresh it's list + BaseAdapter adapter = (BaseAdapter) ListAdapter; + adapter.NotifyDataSetChanged(); + + } + + private void setPassword() { + SetPasswordDialog dialog = new SetPasswordDialog(this); + dialog.Show(); + } + + public class RefreshTask : OnFinish { + GroupBaseActivity act; + public RefreshTask(Handler handler, GroupBaseActivity act):base(handler) { + this.act = act; + } + + public override void run() { + if ( mSuccess) { + act.refreshIfDirty(); + } else { + displayMessage(act); + } + } + } + public class AfterDeleteGroup : OnFinish { + GroupBaseActivity act; + + public AfterDeleteGroup(Handler handler, GroupBaseActivity act):base(handler) { + this.act = act; + } + + + public override void run() { + if ( mSuccess) { + act.refreshIfDirty(); + } else { + mHandler.Post( () => { + Toast.MakeText(act, "Unrecoverable error: " + mMessage, ToastLength.Long).Show(); + }); + + App.setShutdown(); + act.Finish(); + } + } + + } + + } +} + diff --git a/src/keepass2android/GroupEditActivity.cs b/src/keepass2android/GroupEditActivity.cs new file mode 100644 index 00000000..1718f86a --- /dev/null +++ b/src/keepass2android/GroupEditActivity.cs @@ -0,0 +1,109 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +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 +{ + [Activity (Label = "@string/app_name", Theme="@style/Dialog")] + public class GroupEditActivity : LifecycleDebugActivity + { + public const String KEY_PARENT = "parent"; + public const String KEY_NAME = "name"; + public const String KEY_ICON_ID = "icon_id"; + + private int mSelectedIconID; + + public static void Launch(Activity act, PwGroup pw) + { + Intent i = new Intent(act, typeof(GroupEditActivity)); + + PwGroup parent = pw; + i.PutExtra(KEY_PARENT, parent.Uuid.ToHexString()); + + act.StartActivityForResult(i, 0); + } + + protected override void OnCreate (Bundle savedInstanceState) + { + base.OnCreate (savedInstanceState); + SetContentView (Resource.Layout.group_edit); + SetTitle (Resource.String.add_group_title); + + ImageButton iconButton = (ImageButton)FindViewById (Resource.Id.icon_button); + iconButton.Click += (object sender, EventArgs e) => + { + IconPickerActivity.Launch (this); + }; + mSelectedIconID = (int) PwIcon.FolderOpen; + iconButton.SetImageResource(Icons.iconToResId((PwIcon)mSelectedIconID)); + + Button okButton = (Button)FindViewById (Resource.Id.ok); + okButton.Click += (object sender, EventArgs e) => { + TextView nameField = (TextView)FindViewById (Resource.Id.group_name); + String name = nameField.Text; + + if (name.Length > 0) { + Intent intent = new Intent (); + + intent.PutExtra (KEY_NAME, name); + intent.PutExtra (KEY_ICON_ID, mSelectedIconID); + SetResult (Result.Ok, intent); + + Finish (); + } else { + Toast.MakeText (this, Resource.String.error_no_name, ToastLength.Long).Show (); + } + }; + + + Button cancel = (Button)FindViewById (Resource.Id.cancel); + cancel.Click += (object sender, EventArgs e) => { + Intent intent = new Intent (); + SetResult (Result.Canceled, intent); + + Finish (); + }; + } + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) + { + switch ((int)resultCode) + { + case EntryEditActivity.RESULT_OK_ICON_PICKER: + mSelectedIconID = data.Extras.GetInt(IconPickerActivity.KEY_ICON_ID); + ImageButton currIconButton = (ImageButton) FindViewById(Resource.Id.icon_button); + currIconButton.SetImageResource(Icons.iconToResId((PwIcon)mSelectedIconID)); + break; + default: + break; + } + } + } +} + diff --git a/src/keepass2android/IconPickerActivity.cs b/src/keepass2android/IconPickerActivity.cs new file mode 100644 index 00000000..7cf736a1 --- /dev/null +++ b/src/keepass2android/IconPickerActivity.cs @@ -0,0 +1,118 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", Theme="@style/NoTitleBar")] + public class IconPickerActivity : LockCloseActivity + { + public const String KEY_ICON_ID = "icon_id"; + public const String KEY_CUSTOM_ICON_ID = "custom_icon_id"; + + public static void Launch(Activity act) + { + Intent i = new Intent(act, typeof(IconPickerActivity)); + act.StartActivityForResult(i, 0); + } + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + SetContentView(Resource.Layout.icon_picker); + + GridView currIconGridView = (GridView)FindViewById(Resource.Id.IconGridView); + currIconGridView.Adapter = new ImageAdapter(this, this); + + currIconGridView.ItemClick += (sender, e) => { + + Intent intent = new Intent(); + + intent.PutExtra(KEY_ICON_ID, e.Position); + SetResult((Result)EntryEditActivity.RESULT_OK_ICON_PICKER, intent); + + Finish(); + }; + } + + public class ImageAdapter : BaseAdapter + { + Context mContext; + + IconPickerActivity act; + + public ImageAdapter(Context c, IconPickerActivity act) + { + mContext = c; + this.act = act; + } + + public override int Count + { + get + { + /* Return number of KeePass icons */ + return Icons.count(); + } + } + + public override Java.Lang.Object GetItem(int position) + { + return null; + } + + public override long GetItemId(int position) + { + return 0; + } + + public override View GetView(int position, View convertView, ViewGroup parent) + { + View currView; + if(convertView == null) + { + LayoutInflater li = (LayoutInflater) act.GetSystemService(Context.LayoutInflaterService); + currView = li.Inflate(Resource.Layout.icon, null); + } + else + { + currView = convertView; + } + + TextView tv = (TextView) currView.FindViewById(Resource.Id.icon_text); + tv.Text = "" + position; + ImageView iv = (ImageView) currView.FindViewById(Resource.Id.icon_image); + iv.SetImageResource(Icons.iconToResId((KeePassLib.PwIcon)position)); + + return currView; + } + } + } + +} + diff --git a/src/keepass2android/KeePass.cs b/src/keepass2android/KeePass.cs new file mode 100644 index 00000000..c01704cb --- /dev/null +++ b/src/keepass2android/KeePass.cs @@ -0,0 +1,94 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Keepass2Android. If not, see . + */ +using System; + +using Android.App; +using Android.Content; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.OS; + +using keepass2android.view; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", MainLauncher = true, Theme="@style/Base")] + [IntentFilter (new[]{Intent.ActionView}, + DataScheme="file", + DataMimeType="*/*", + DataHost="*", + DataPathPattern=".*\\.kdbx", //TODO http://stackoverflow.com/questions/3400072/pathpattern-to-match-file-extension-does-not-work-if-a-period-exists-elsewhere-i + //http://stackoverflow.com/questions/1733195/android-intent-filter-for-a-particular-file-extension + Categories=new[]{Intent.CategoryDefault, Intent.CategoryBrowsable})] + public class KeePass : LifecycleDebugActivity + { + public const Android.App.Result EXIT_NORMAL = Android.App.Result.FirstUser; + public const Android.App.Result EXIT_LOCK = Android.App.Result.FirstUser+1; + public const Android.App.Result EXIT_REFRESH = Android.App.Result.FirstUser+2; + public const Android.App.Result EXIT_REFRESH_TITLE = Android.App.Result.FirstUser+3; + public const Android.App.Result EXIT_FORCE_LOCK = Android.App.Result.FirstUser+4; + public const Android.App.Result EXIT_QUICK_UNLOCK = Android.App.Result.FirstUser+5; + public const Android.App.Result EXIT_CLOSE_AFTER_SEARCH = Android.App.Result.FirstUser+6; + public const Android.App.Result EXIT_CHANGE_DB = Android.App.Result.FirstUser+7; + public const Android.App.Result EXIT_FORCE_LOCK_AND_CHANGE_DB = Android.App.Result.FirstUser+8; + + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + Android.Util.Log.Debug("DEBUG","KeePass.OnCreate"); + } + + protected override void OnResume() + { + base.OnResume(); + Android.Util.Log.Debug("DEBUG","KeePass.OnResume"); + } + + + protected override void OnStart() { + base.OnStart(); + Android.Util.Log.Debug("DEBUG","KeePass.OnStart"); + startFileSelect(); + } + + private void startFileSelect() { + Intent intent = new Intent(this, typeof(FileSelectActivity)); + //TEST Intent intent = new Intent(this, typeof(EntryActivity)); + //Intent intent = new Intent(this, typeof(SearchActivity)); + //Intent intent = new Intent(this, typeof(QuickUnlock)); + + StartActivityForResult(intent, 0); + Finish(); + } + + + protected override void OnDestroy() { + Android.Util.Log.Debug("DEBUG","KeePass.OnDestry"+IsFinishing.ToString()); + base.OnDestroy(); + } + + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { + base.OnActivityResult(requestCode, resultCode, data); + + Finish(); + } + } +} + + diff --git a/src/keepass2android/KeyFileException.cs b/src/keepass2android/KeyFileException.cs new file mode 100644 index 00000000..fe8190f1 --- /dev/null +++ b/src/keepass2android/KeyFileException.cs @@ -0,0 +1,71 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + + [Serializable] + public class KeyFileException : Exception + { + /// + /// Initializes a new instance of the class + /// + public KeyFileException () + { + } + + /// + /// Initializes a new instance of the class + /// + /// A that describes the exception. + public KeyFileException (string message) : base (message) + { + } + + /// + /// Initializes a new instance of the class + /// + /// A that describes the exception. + /// The exception that is the cause of the current exception. + public KeyFileException (string message, Exception inner) : base (message, inner) + { + } + + /// + /// Initializes a new instance of the class + /// + /// The contextual information about the source or destination. + /// The object that holds the serialized object data. + protected KeyFileException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base (info, context) + { + } + } + +} + diff --git a/src/keepass2android/LifecycleDebugActivity.cs b/src/keepass2android/LifecycleDebugActivity.cs new file mode 100644 index 00000000..c6609bc5 --- /dev/null +++ b/src/keepass2android/LifecycleDebugActivity.cs @@ -0,0 +1,93 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + + public abstract class LifecycleDebugActivity : Activity + { + public LifecycleDebugActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + + public LifecycleDebugActivity() + { + } + + + string className = null; + string ClassName + { + get { + if (className == null) + className = this.GetType().Name; + return className; + } + } + + protected override void OnResume() + { + base.OnResume(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnResume"); + } + + protected override void OnStart() + { + base.OnStart(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnStart"); + } + + protected override void OnCreate(Bundle bundle) + { + base.OnCreate(bundle); + Android.Util.Log.Debug("DEBUG",ClassName+".OnCreate"); + } + + protected override void OnDestroy() + { + base.OnDestroy(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnDestroy"+IsFinishing.ToString()); + } + + protected override void OnPause() + { + base.OnPause(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnPause"); + } + + protected override void OnStop() + { + base.OnStop(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnStop"); + } + } +} + diff --git a/src/keepass2android/LockCloseActivity.cs b/src/keepass2android/LockCloseActivity.cs new file mode 100644 index 00000000..09e3e57d --- /dev/null +++ b/src/keepass2android/LockCloseActivity.cs @@ -0,0 +1,53 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib.Serialization; + +namespace keepass2android +{ + public class LockCloseActivity : LockingActivity { + + IOConnectionInfo mIoc; + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + mIoc = App.getDB().mIoc; + } + + protected override void OnResume() { + base.OnResume(); + + TimeoutHelper.checkShutdown(this, mIoc); + } + + + } + +} + diff --git a/src/keepass2android/LockCloseListActivity.cs b/src/keepass2android/LockCloseListActivity.cs new file mode 100644 index 00000000..146e80ed --- /dev/null +++ b/src/keepass2android/LockCloseListActivity.cs @@ -0,0 +1,61 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib.Serialization; + +namespace keepass2android +{ + + public class LockCloseListActivity : LockingListActivity { + public LockCloseListActivity() + { + + } + + IOConnectionInfo mIoc; + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + mIoc = App.getDB().mIoc; + } + + public LockCloseListActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + + protected override void OnResume() { + base.OnResume(); + + TimeoutHelper.checkShutdown(this, mIoc); + } + } +} + diff --git a/src/keepass2android/LockingActivity.cs b/src/keepass2android/LockingActivity.cs new file mode 100644 index 00000000..39fb9891 --- /dev/null +++ b/src/keepass2android/LockingActivity.cs @@ -0,0 +1,64 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + + public class LockingActivity : LifecycleDebugActivity { + + public LockingActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + + public LockingActivity() + { + } + + protected override void OnPause() { + base.OnPause(); + + TimeoutHelper.pause(this); + } + + protected override void OnDestroy() + { + base.OnDestroy(); + GC.Collect(); + } + + protected override void OnResume() { + base.OnResume(); + + TimeoutHelper.resume(this); + } + } +} + diff --git a/src/keepass2android/LockingClosePreferenceActivity.cs b/src/keepass2android/LockingClosePreferenceActivity.cs new file mode 100644 index 00000000..e29bb651 --- /dev/null +++ b/src/keepass2android/LockingClosePreferenceActivity.cs @@ -0,0 +1,53 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using KeePassLib.Serialization; + +namespace keepass2android +{ + + public class LockingClosePreferenceActivity : LockingPreferenceActivity { + + + IOConnectionInfo mIoc; + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + mIoc = App.getDB().mIoc; + } + + protected override void OnResume() { + base.OnResume(); + + TimeoutHelper.checkShutdown(this, mIoc); + } + } + +} + diff --git a/src/keepass2android/LockingListActivity.cs b/src/keepass2android/LockingListActivity.cs new file mode 100644 index 00000000..f35850a5 --- /dev/null +++ b/src/keepass2android/LockingListActivity.cs @@ -0,0 +1,96 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; + +namespace keepass2android +{ + + public class LockingListActivity : ListActivity { + + + public LockingListActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + public LockingListActivity () + { + } + + + string className = null; + string ClassName + { + get { + if (className == null) + className = this.GetType().Name; + return className; + } + } + + protected override void OnResume() + { + base.OnResume(); + TimeoutHelper.resume(this); + Android.Util.Log.Debug("DEBUG",ClassName+".OnResume"); + } + + protected override void OnStart() + { + base.OnStart(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnStart"); + } + + protected override void OnCreate(Bundle bundle) + { + base.OnCreate(bundle); + Android.Util.Log.Debug("DEBUG",ClassName+".OnCreate"); + } + + protected override void OnDestroy() + { + base.OnDestroy(); + GC.Collect(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnDestroy"+IsFinishing.ToString()); + } + + protected override void OnPause() + { + base.OnPause(); + TimeoutHelper.pause(this); + Android.Util.Log.Debug("DEBUG",ClassName+".OnPause"); + } + + protected override void OnStop() + { + base.OnStop(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnStop"); + } + } +} + diff --git a/src/keepass2android/LockingPreferenceActivity.cs b/src/keepass2android/LockingPreferenceActivity.cs new file mode 100644 index 00000000..f8719016 --- /dev/null +++ b/src/keepass2android/LockingPreferenceActivity.cs @@ -0,0 +1,97 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Preferences; + +namespace keepass2android +{ + + public class LockingPreferenceActivity : PreferenceActivity { + + public LockingPreferenceActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + public LockingPreferenceActivity () + { + } + + + string className = null; + string ClassName + { + get { + if (className == null) + className = this.GetType().Name; + return className; + } + } + + protected override void OnResume() + { + base.OnResume(); + TimeoutHelper.resume(this); + Android.Util.Log.Debug("DEBUG",ClassName+".OnResume"); + } + + protected override void OnStart() + { + base.OnStart(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnStart"); + } + + protected override void OnCreate(Bundle bundle) + { + base.OnCreate(bundle); + Android.Util.Log.Debug("DEBUG",ClassName+".OnCreate"); + } + + protected override void OnDestroy() + { + base.OnDestroy(); + GC.Collect(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnDestroy"+IsFinishing.ToString()); + } + + protected override void OnPause() + { + base.OnPause(); + TimeoutHelper.pause(this); + Android.Util.Log.Debug("DEBUG",ClassName+".OnPause"); + } + + protected override void OnStop() + { + base.OnStop(); + Android.Util.Log.Debug("DEBUG",ClassName+".OnStop"); + } + } + +} + diff --git a/src/keepass2android/PasswordActivity.cs b/src/keepass2android/PasswordActivity.cs new file mode 100644 index 00000000..06ea10e2 --- /dev/null +++ b/src/keepass2android/PasswordActivity.cs @@ -0,0 +1,570 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Java.Net; +using Android.Preferences; +using Java.IO; +using Android.Text; +using Android.Content.PM; +using Android.Text.Method; +using KeePassLib.Keys; +using KeePassLib.Serialization; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden, Theme="@style/Base")] + public class PasswordActivity : LockingActivity { + bool mShowPassword = false; + + public const String KEY_DEFAULT_FILENAME = "defaultFileName"; + + public const String KEY_FILENAME = "fileName"; + private const String KEY_KEYFILE = "keyFile"; + private const String KEY_SERVERUSERNAME = "serverCredUser"; + private const String KEY_SERVERPASSWORD = "serverCredPwd"; + private const String KEY_SERVERCREDMODE = "serverCredRememberMode"; + + private const String VIEW_INTENT = "android.intent.action.VIEW"; + + private IOConnectionInfo mIoConnection; + private String mKeyFile; + private bool mRememberKeyfile; + ISharedPreferences prefs; + + public PasswordActivity (IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { + + } + + public PasswordActivity() + { + + } + + + static void PutIoConnectionToIntent(IOConnectionInfo ioc, Android.Content.Intent i) + { + i.PutExtra(KEY_FILENAME, ioc.Path); + i.PutExtra(KEY_SERVERUSERNAME, ioc.UserName); + i.PutExtra(KEY_SERVERPASSWORD, ioc.Password); + i.PutExtra(KEY_SERVERCREDMODE, (int)ioc.CredSaveMode); + } + + public static void SetIoConnectionFromIntent(IOConnectionInfo ioc, Intent i) + { + ioc.Path = i.GetStringExtra(KEY_FILENAME); + ioc.UserName = i.GetStringExtra(KEY_SERVERUSERNAME) ?? ""; + ioc.Password = i.GetStringExtra(KEY_SERVERPASSWORD) ?? ""; + ioc.CredSaveMode = (IOCredSaveMode)i.GetIntExtra(KEY_SERVERCREDMODE, (int) IOCredSaveMode.NoSave); + } + + public static void Launch(Activity act, String fileName, String urlToSearchFor) { + Java.IO.File dbFile = new Java.IO.File(fileName); + if ( ! dbFile.Exists() ) { + throw new Java.IO.FileNotFoundException(); + } + + + Intent i = new Intent(act, typeof(PasswordActivity)); + i.PutExtra(KEY_FILENAME, fileName); + i.PutExtra(FileSelectActivity.UrlToSearch_key, urlToSearchFor); + act.StartActivityForResult(i, 0); + + } + + + public static void Launch(Activity act, String fileName) { + Launch(act, IOConnectionInfo.FromPath(fileName), null); + + } + + + public static void Launch(Activity act, IOConnectionInfo ioc, String urlToSearchFor) + { + if (ioc.IsLocalFile()) + { + Launch(act, ioc.Path, urlToSearchFor); + return; + } + + Intent i = new Intent(act, typeof(PasswordActivity)); + PutIoConnectionToIntent(ioc, i); + + i.PutExtra(FileSelectActivity.UrlToSearch_key, urlToSearchFor); + + act.StartActivityForResult(i, 0); + + } + + public void LaunchNextActivity() + { + + if (String.IsNullOrEmpty(mUrlToSearchFor)) + GroupActivity.Launch(this); + else + { + ShareUrlResults.Launch(this, mUrlToSearchFor); + } + } + + void unloadDatabase() + { + App.getDB().Clear(); + StopService(new Intent(this, typeof(QuickUnlockForegroundService))); + } + + void lockDatabase() + { + SetResult(KeePass.EXIT_LOCK); + setEditText(Resource.Id.password, ""); + if (App.getDB().QuickUnlockEnabled) + App.getDB().Locked = true; + else + { + unloadDatabase(); + } + } + + void lockAndClose() + { + lockDatabase(); + Finish(); + + } + + bool tryStartQuickUnlock() + { + if (!App.getDB().QuickUnlockEnabled) + return false; + + if (App.getDB().pm.MasterKey.ContainsType(typeof(KcpPassword)) == false) + return false; + KcpPassword kcpPassword = (KcpPassword)App.getDB().pm.MasterKey.GetUserKey(typeof(KcpPassword)); + String password = kcpPassword.Password.ReadString(); + + if (password.Length == 0) + return false; + + App.getDB().Locked = true; + + Intent i = new Intent(this, typeof(QuickUnlock)); + PutIoConnectionToIntent(mIoConnection, i); + Android.Util.Log.Debug("DEBUG","Starting QuickUnlock"); + StartActivityForResult(i,0); + return true; + } + + public void StartQuickUnlockForegroundService() + { + if (App.getDB().QuickUnlockEnabled) + { + StartService(new Intent(this, typeof(QuickUnlockForegroundService))); + } + } + + bool startedWithActivityResult = false; + + protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) + { + base.OnActivityResult(requestCode, resultCode, data); + + startedWithActivityResult = true; + Android.Util.Log.Debug("DEBUG","PasswordActivity.OnActivityResult "+resultCode+"/"+requestCode); + + if (resultCode != KeePass.EXIT_CLOSE_AFTER_SEARCH) + { + //Stop service when app activity is left + StopService(new Intent(this, typeof(CopyToClipboardService))); + } + + //NOTE: original code from k eepassdroid used switch ((Android.App.Result)requestCode) { (but doesn't work here, although k eepassdroid works) + switch(resultCode) { + + case KeePass.EXIT_NORMAL: + if (!tryStartQuickUnlock()) + { + setEditText(Resource.Id.password, ""); + ; + } + break; + + case KeePass.EXIT_LOCK: + if (!tryStartQuickUnlock()) + { + lockAndClose(); + } + break; + case KeePass.EXIT_FORCE_LOCK: + setEditText(Resource.Id.password, ""); + unloadDatabase(); + break; + case KeePass.EXIT_FORCE_LOCK_AND_CHANGE_DB: + unloadDatabase(); + Finish(); + break; + case KeePass.EXIT_CHANGE_DB: + lockAndClose(); + break; + case KeePass.EXIT_CLOSE_AFTER_SEARCH: + SetResult(KeePass.EXIT_CLOSE_AFTER_SEARCH); + Finish(); + break; + case KeePass.EXIT_QUICK_UNLOCK: + App.getDB().Locked = false; + LaunchNextActivity(); + break; + + case Android.App.Result.Ok: + if (requestCode == Intents.REQUEST_CODE_FILE_BROWSE) { + String filename = data.DataString; + if (filename != null) { + if (filename.StartsWith("file://")) { + filename = filename.Substring(7); + } + + filename = URLDecoder.Decode(filename); + + EditText fn = (EditText) FindViewById(Resource.Id.pass_keyfile); + fn.Text = filename; + } + } + break; + } + + } + + internal string mUrlToSearchFor; + + protected override void OnCreate(Bundle savedInstanceState) + { + base.OnCreate(savedInstanceState); + + Intent i = Intent; + String action = i.Action; + + prefs = PreferenceManager.GetDefaultSharedPreferences(this); + mRememberKeyfile = prefs.GetBoolean(GetString(Resource.String.keyfile_key), Resources.GetBoolean(Resource.Boolean.keyfile_default)); + + mIoConnection = new IOConnectionInfo(); + + if (action != null && action.Equals(VIEW_INTENT)) + { + mIoConnection.Path = i.DataString; + + if (! mIoConnection.Path.Substring(0, 7).Equals("file://")) + { + //TODO: this might no longer be required as we can handle http(s) and ftp as well (but we need server credentials therefore) + Toast.MakeText(this, Resource.String.error_can_not_handle_uri, ToastLength.Long).Show(); + Finish(); + return; + } + + mIoConnection.Path = URLDecoder.Decode(mIoConnection.Path.Substring(7, mIoConnection.Path.Length)); + + if (mIoConnection.Path.Length == 0) + { + // No file name + Toast.MakeText(this, Resource.String.FileNotFound, ToastLength.Long).Show(); + Finish(); + return; + } + + File dbFile = new File(mIoConnection.Path); + if (! dbFile.Exists()) + { + // File does not exist + Toast.MakeText(this, Resource.String.FileNotFound, ToastLength.Long).Show(); + Finish(); + return; + } + + mKeyFile = getKeyFile(mIoConnection.Path); + + } else + { + SetIoConnectionFromIntent(mIoConnection, i); + mKeyFile = i.GetStringExtra(KEY_KEYFILE); + if (mKeyFile == null || mKeyFile.Length == 0) + { + mKeyFile = getKeyFile(mIoConnection.Path); + } + } + + this.mUrlToSearchFor = i.GetStringExtra(FileSelectActivity.UrlToSearch_key); + + SetContentView(Resource.Layout.password); + populateView(); + + Button confirmButton = (Button)FindViewById(Resource.Id.pass_ok); + confirmButton.Click += (object sender, EventArgs e) => + { + String pass = GetEditText(Resource.Id.password); + String key = GetEditText(Resource.Id.pass_keyfile); + if (pass.Length == 0 && key.Length == 0) + { + errorMessage(Resource.String.error_nopass); + return; + } + + String fileName = GetEditText(Resource.Id.filename); + + + // Clear before we load + unloadDatabase(); + + // Clear the shutdown flag + App.clearShutdown(); + + CheckBox cbQuickUnlock = (CheckBox)FindViewById(Resource.Id.enable_quickunlock); + App.getDB().QuickUnlockEnabled = cbQuickUnlock.Checked; + App.getDB().QuickUnlockKeyLength = int.Parse(prefs.GetString(GetString(Resource.String.QuickUnlockLength_key), GetString(Resource.String.QuickUnlockLength_default))); + + Handler handler = new Handler(); + LoadDB task = new LoadDB(App.getDB(), this, mIoConnection, pass, key, new AfterLoad(handler, this)); + ProgressTask pt = new ProgressTask(this, task, Resource.String.loading_database); + pt.run(); + }; + + /*CheckBox checkBox = (CheckBox) FindViewById(Resource.Id.show_password); + // Show or hide password + checkBox.CheckedChange += delegate(object sender, CompoundButton.CheckedChangeEventArgs e) { + + TextView password = (TextView) FindViewById(Resource.Id.password); + if ( e.IsChecked ) { + password.InputType = InputTypes.ClassText | InputTypes.TextVariationVisiblePassword; + } else { + password.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword; + } + }; + */ + ImageButton btnTogglePassword = (ImageButton)FindViewById(Resource.Id.toggle_password); + btnTogglePassword.Click += (object sender, EventArgs e) => { + mShowPassword = !mShowPassword; + TextView password = (TextView)FindViewById(Resource.Id.password); + if (mShowPassword) + { + password.InputType = InputTypes.ClassText | InputTypes.TextVariationVisiblePassword; + } else + { + password.InputType = InputTypes.ClassText | InputTypes.TextVariationPassword; + } + }; + + CheckBox defaultCheck = (CheckBox)FindViewById(Resource.Id.default_database); + ///Don't allow the current file to be the default if we don't have stored credentials + if ((mIoConnection.IsLocalFile() == false) && (mIoConnection.CredSaveMode != IOCredSaveMode.SaveCred)) + { + defaultCheck.Enabled = false; + } else + { + defaultCheck.Enabled = true; + } + defaultCheck.CheckedChange += (object sender, CompoundButton.CheckedChangeEventArgs e) => + { + String newDefaultFileName; + + if (e.IsChecked) + { + newDefaultFileName = mIoConnection.Path; + } else + { + newDefaultFileName = ""; + } + + ISharedPreferencesEditor editor = prefs.Edit(); + editor.PutString(KEY_DEFAULT_FILENAME, newDefaultFileName); + EditorCompat.apply(editor); + }; + + ImageButton browse = (ImageButton)FindViewById(Resource.Id.browse_button); + browse.Click += (object sender, EventArgs evt) => + { + if (Interaction.isIntentAvailable(this, Intents.FILE_BROWSE)) + { + Intent intent = new Intent(Intents.FILE_BROWSE); + + if (!String.IsNullOrEmpty(mIoConnection.Path)) + { + File keyfile = new File(mIoConnection.Path); + File parent = keyfile.ParentFile; + if (parent != null) + { + intent.SetData(Android.Net.Uri.Parse("file://" + parent.AbsolutePath)); + } + } + + try + { + StartActivityForResult(intent, Intents.REQUEST_CODE_FILE_BROWSE); + } catch (ActivityNotFoundException) + { + BrowserDialog diag = new BrowserDialog(this); + diag.Show(); + } + } else + { + BrowserDialog diag = new BrowserDialog(this); + diag.Show(); + } + + }; + + retrieveSettings(); + + + } + + protected override void OnResume() { + base.OnResume(); + + // If the application was shutdown make sure to clear the password field, if it + // was saved in the instance state + if (App.isShutdown()) { + lockDatabase(); + } + + // Clear the shutdown flag + App.clearShutdown(); + + if (startedWithActivityResult) + return; + + if (App.getDB().Loaded && (App.getDB().mIoc != null) + && (mIoConnection != null) && (App.getDB().mIoc.GetDisplayName() == mIoConnection.GetDisplayName())) + { + if (App.getDB().Locked == false) + { + LaunchNextActivity(); + } + else + { + tryStartQuickUnlock(); + } + } + } + + private void retrieveSettings() { + String defaultFilename = prefs.GetString(KEY_DEFAULT_FILENAME, ""); + if (!String.IsNullOrEmpty(mIoConnection.Path) && mIoConnection.Path.Equals(defaultFilename)) { + CheckBox checkbox = (CheckBox) FindViewById(Resource.Id.default_database); + checkbox.Checked = true; + } + CheckBox cbQuickUnlock = (CheckBox)FindViewById(Resource.Id.enable_quickunlock); + cbQuickUnlock.Checked = prefs.GetBoolean(GetString(Resource.String.QuickUnlockDefaultEnabled_key), true); + } + + private String getKeyFile(String filename) { + if ( mRememberKeyfile ) { + FileDbHelper dbHelp = App.fileDbHelper; + + String keyfile = dbHelp.getFileByName(filename); + + return keyfile; + } else { + return ""; + } + } + + private void populateView() { + setEditText(Resource.Id.filename, mIoConnection.GetDisplayName()); + setEditText(Resource.Id.pass_keyfile, mKeyFile); + } + + /* + private void errorMessage(CharSequence text) + { + Toast.MakeText(this, text, ToastLength.Long).Show(); + } + */ + + private void errorMessage(int resId) + { + Toast.MakeText(this, resId, ToastLength.Long).Show(); + } + + private String GetEditText(int resId) { + return Util.getEditText(this, resId); + } + + private void setEditText(int resId, String str) { + TextView te = (TextView) FindViewById(resId); + //assert(te == null); + + if (te != null) { + te.Text = str; + } + } + + public override bool OnCreateOptionsMenu(IMenu menu) { + base.OnCreateOptionsMenu(menu); + + MenuInflater inflate = MenuInflater; + inflate.Inflate(Resource.Menu.password, menu); + + return true; + } + + public override bool OnOptionsItemSelected(IMenuItem item) { + switch ( item.ItemId ) { + case Resource.Id.menu_about: + AboutDialog dialog = new AboutDialog(this); + dialog.Show(); + return true; + + case Resource.Id.menu_app_settings: + AppSettingsActivity.Launch(this); + return true; + } + + return base.OnOptionsItemSelected(item); + } + + private class AfterLoad : OnFinish { + + + PasswordActivity act; + public AfterLoad(Handler handler, PasswordActivity act):base(handler) { + this.act = act; + } + + + public override void run() { + if ( mSuccess ) { + act.StartQuickUnlockForegroundService(); + act.LaunchNextActivity(); + } else { + displayMessage(act); + } + } + } + + } + +} + diff --git a/src/keepass2android/ProgressTask.cs b/src/keepass2android/ProgressTask.cs new file mode 100644 index 00000000..fb457978 --- /dev/null +++ b/src/keepass2android/ProgressTask.cs @@ -0,0 +1,87 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Java.Lang; + +namespace keepass2android +{ + public class ProgressTask { + private Context mCtx; + private Handler mHandler; + private RunnableOnFinish mTask; + private ProgressDialog mPd; + + public ProgressTask(Context ctx, RunnableOnFinish task, int messageId) { + mCtx = ctx; + mTask = task; + mHandler = new Handler(); + + // Show process dialog + mPd = new ProgressDialog(mCtx); + mPd.SetTitle(ctx.GetText(Resource.String.progress_title)); + mPd.SetMessage(ctx.GetText(messageId)); + + // Set code to run when this is finished + mTask.setStatus(new UpdateStatus(ctx, mHandler, mPd)); + mTask.mFinish = new AfterTask(task.mFinish, mHandler, mPd); + + } + + public void run() { + // Show process dialog + mPd.Show(); + + + // Start Thread to Run task + Thread t = new Thread(mTask.run); + t.Start(); + + } + + private class AfterTask : OnFinish { + + ProgressDialog mPd; + + public AfterTask (OnFinish finish, Handler handler, ProgressDialog pd): base(finish, handler) + { + mPd = pd; + } + + public override void run() { + base.run(); + + // Remove the progress dialog + mHandler.Post(delegate() {mPd.Dismiss();}); + + } + + } + + } +} + diff --git a/src/keepass2android/Properties/AndroidManifest.xml b/src/keepass2android/Properties/AndroidManifest.xml new file mode 100644 index 00000000..bc8c8174 --- /dev/null +++ b/src/keepass2android/Properties/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/keepass2android/Properties/AssemblyInfo.cs b/src/keepass2android/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0fc76918 --- /dev/null +++ b/src/keepass2android/Properties/AssemblyInfo.cs @@ -0,0 +1,44 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Keepass2Android. If not, see . + */ +using System.Reflection; +using System.Runtime.CompilerServices; +using Android.App; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("keepass2android")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("Philipp Crocoll")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.0")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff --git a/src/keepass2android/PwGroupEqualityFromIdComparer.cs b/src/keepass2android/PwGroupEqualityFromIdComparer.cs new file mode 100644 index 00000000..6b86efc4 --- /dev/null +++ b/src/keepass2android/PwGroupEqualityFromIdComparer.cs @@ -0,0 +1,47 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +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 +{ + class PwGroupEqualityFromIdComparer: IEqualityComparer + { + #region IEqualityComparer implementation + public bool Equals (PwGroup x, PwGroup y) + { + return x.Uuid.EqualsValue(y.Uuid); + } + public int GetHashCode (PwGroup obj) + { + return obj.Uuid.ToHexString().GetHashCode(); + } +#endregion + } +} + diff --git a/src/keepass2android/PwGroupListAdapter.cs b/src/keepass2android/PwGroupListAdapter.cs new file mode 100644 index 00000000..f0283fe0 --- /dev/null +++ b/src/keepass2android/PwGroupListAdapter.cs @@ -0,0 +1,158 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. This file is based on Keepassdroid, Copyright Brian Pellin. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Preferences; +using KeePassLib; +using keepass2android.view; + +namespace keepass2android +{ + + public class PwGroupListAdapter : BaseAdapter + { + + private GroupBaseActivity mAct; + private PwGroup mGroup; + private List groupsForViewing; + private List entriesForViewing; + + private ISharedPreferences prefs; + + public PwGroupListAdapter(GroupBaseActivity act, PwGroup group) { + mAct = act; + mGroup = group; + prefs = PreferenceManager.GetDefaultSharedPreferences(act); + + filterAndSort(); + + } + + + public override void NotifyDataSetChanged() { + base.NotifyDataSetChanged(); + + filterAndSort(); + } + + + public override void NotifyDataSetInvalidated() { + base.NotifyDataSetInvalidated(); + + filterAndSort(); + } + + private void filterAndSort() { + entriesForViewing = new List(); + + foreach (PwEntry entry in mGroup.Entries) + { + entriesForViewing.Add(entry); + } + + bool sortLists = prefs.GetBoolean(mAct.GetString(Resource.String.sort_key), mAct.Resources.GetBoolean(Resource.Boolean.sort_default)); + if ( sortLists ) + { + groupsForViewing = new List(mGroup.Groups); + groupsForViewing.Sort( (PwGroup x,PwGroup y) => { return String.Compare (x.Name, y.Name, true); }); + entriesForViewing.Sort( (PwEntry x, PwEntry y) => + { + String nameX = x.Strings.ReadSafe(PwDefs.TitleField); + String nameY = y.Strings.ReadSafe(PwDefs.TitleField); + if (nameX.ToLower() != nameY.ToLower()) + return String.Compare (nameX,nameY,true); + else + return x.CreationTime.CompareTo(y.CreationTime); + } + ); + } else { + groupsForViewing = new List(mGroup.Groups); + } + } + + public override int Count + { + get{ + + return groupsForViewing.Count + entriesForViewing.Count; + } + } + + public override Java.Lang.Object GetItem(int position) { + return position; + } + + public override long GetItemId(int position) { + return position; + } + + public override View GetView(int position, View convertView, ViewGroup parent) { + int size = groupsForViewing.Count; + + if ( position < size ) { + return createGroupView(position, convertView); + } else { + return createEntryView(position - size, convertView); + } + } + + private View createGroupView(int position, View convertView) { + PwGroup g = groupsForViewing[position]; + PwGroupView gv; + + if (convertView == null || !(convertView is PwGroupView)) { + + gv = PwGroupView.getInstance(mAct, g); + } + else { + gv = (PwGroupView) convertView; + gv.convertView(g); + + } + + return gv; + } + + private PwEntryView createEntryView(int position, View convertView) { + PwEntry entry = entriesForViewing[position]; + PwEntryView ev; + + if (convertView == null || !(convertView is PwEntryView)) { + ev = PwEntryView.getInstance(mAct, entry, position); + } + else { + ev = (PwEntryView) convertView; + ev.convertView(entry, position); + } + + return ev; + } + + } + +} + diff --git a/src/keepass2android/PwUuidEqualityComparer.cs b/src/keepass2android/PwUuidEqualityComparer.cs new file mode 100644 index 00000000..f769ff03 --- /dev/null +++ b/src/keepass2android/PwUuidEqualityComparer.cs @@ -0,0 +1,49 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +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 +{ + class PwUuidEqualityComparer: IEqualityComparer + { + #region IEqualityComparer implementation + public bool Equals (PwUuid x, PwUuid y) + { + return x.EqualsValue(y); + } + public int GetHashCode (PwUuid obj) + { + return obj.ToHexString().GetHashCode(); + } +#endregion + } + + +} diff --git a/src/keepass2android/QuickUnlock.cs b/src/keepass2android/QuickUnlock.cs new file mode 100644 index 00000000..46f45f4e --- /dev/null +++ b/src/keepass2android/QuickUnlock.cs @@ -0,0 +1,116 @@ +/* +This file is part of Keepass2Android, Copyright 2013 Philipp Crocoll. + + Keepass2Android is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + Keepass2Android is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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; +using System.Text; + +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Content.PM; +using KeePassLib.Keys; +using Android.Preferences; +using Android.Views.InputMethods; +using KeePassLib.Serialization; + +namespace keepass2android +{ + [Activity (Label = "@string/app_name", ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.KeyboardHidden, Theme="@style/Base")] + public class QuickUnlock : LifecycleDebugActivity + { + IOConnectionInfo mIoc; + + protected override void OnCreate(Bundle bundle) + { + base.OnCreate(bundle); + + Intent i = Intent; + mIoc = App.getDB().mIoc; + + if (mIoc == null) + { + Finish(); + return; + } + + + SetContentView(Resource.Layout.QuickUnlock); + + ((TextView)FindViewById(Resource.Id.qu_filename)).Text = mIoc.GetDisplayName(); + + + TextView txtLabel = (TextView)FindViewById(Resource.Id.QuickUnlock_label); + + ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this); + int quickUnlockLength = App.getDB().QuickUnlockKeyLength; + + txtLabel.Text = GetString(Resource.String.QuickUnlock_label, new Java.Lang.Object[]{quickUnlockLength}); + + EditText pwd= (EditText)FindViewById(Resource.Id.QuickUnlock_password); + pwd.SetEms(quickUnlockLength); + pwd.PostDelayed(() => { + InputMethodManager keyboard = (InputMethodManager)GetSystemService(Context.InputMethodService); + keyboard.ShowSoftInput(pwd, 0); + }, 50); + + SetResult(KeePass.EXIT_CHANGE_DB); + + Button btnUnlock = (Button)FindViewById(Resource.Id.QuickUnlock_button); + btnUnlock.Click += (object sender, EventArgs e) => + { + KcpPassword kcpPassword = (KcpPassword)App.getDB().pm.MasterKey.GetUserKey(typeof(KcpPassword)); + String password = kcpPassword.Password.ReadString(); + String expectedPasswordPart = password.Substring(Math.Max(0,password.Length-quickUnlockLength),Math.Min(password.Length, quickUnlockLength)); + if (pwd.Text == expectedPasswordPart) + { + SetResult(KeePass.EXIT_QUICK_UNLOCK); + } + else + { + SetResult(KeePass.EXIT_FORCE_LOCK); + Toast.MakeText(this, GetString(Resource.String.QuickUnlock_fail), ToastLength.Long).Show(); + } + Finish(); + }; + + Button btnLock = (Button)FindViewById(Resource.Id.QuickUnlock_buttonLock); + btnLock.Click += (object sender, EventArgs e) => + { + SetResult(KeePass.EXIT_FORCE_LOCK_AND_CHANGE_DB); + Finish(); + }; + } + + + protected override void OnResume() + { + base.OnResume(); + + if ( ! App.getDB().Loaded ) { + SetResult(KeePass.EXIT_CHANGE_DB); + Finish(); + return; + } + } + } +} + diff --git a/src/keepass2android/Resources/AboutResources.txt b/src/keepass2android/Resources/AboutResources.txt new file mode 100644 index 00000000..6dff7bcc --- /dev/null +++ b/src/keepass2android/Resources/AboutResources.txt @@ -0,0 +1,44 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.axml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable/ + icon.png + + layout/ + main.axml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called "R" +(this is an Android convention) that contains the tokens for each one of the resources +included. For example, for the above Resources layout, this is what the R class would expose: + +public class R { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main +to reference the layout/main.axml file, or R.Strings.first_string to reference the first +string in the dictionary file values/strings.xml. diff --git a/src/keepass2android/Resources/Resource.designer.cs b/src/keepass2android/Resources/Resource.designer.cs new file mode 100644 index 00000000..bc06bdb7 --- /dev/null +++ b/src/keepass2android/Resources/Resource.designer.cs @@ -0,0 +1,1796 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.296 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +[assembly: Android.Runtime.ResourceDesignerAttribute("keepass2android.Resource", IsApplication=true)] + +namespace keepass2android +{ + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("Novell.MonoDroid.Build.Tasks", "1.0.0.0")] + public partial class Resource + { + + public static void UpdateIdValues() + { + KeePassLib2Android.Resource.String.library_name = keepass2android.Resource.String.library_name; + } + + public partial class Array + { + + // aapt resource value: 0x7f080002 + public const int clipboard_timeout_options = 2131230722; + + // aapt resource value: 0x7f080000 + public const int clipboard_timeout_values = 2131230720; + + // aapt resource value: 0x7f080004 + public const int cred_remember_modes = 2131230724; + + // aapt resource value: 0x7f080003 + public const int list_size_options = 2131230723; + + // aapt resource value: 0x7f080001 + public const int list_size_values = 2131230721; + + private Array() + { + } + } + + public partial class Attribute + { + + private Attribute() + { + } + } + + public partial class Boolean + { + + // aapt resource value: 0x7f070004 + public const int TanExpiresOnUse_default = 2131165188; + + // aapt resource value: 0x7f070001 + public const int keyfile_default = 2131165185; + + // aapt resource value: 0x7f070000 + public const int maskpass_default = 2131165184; + + // aapt resource value: 0x7f070003 + public const int omitbackup_default = 2131165187; + + // aapt resource value: 0x7f070002 + public const int sort_default = 2131165186; + + private Boolean() + { + } + } + + public partial class Color + { + + // aapt resource value: 0x7f050007 + public const int bg_gray = 2131034119; + + // aapt resource value: 0x7f050000 + public const int blue_highlight = 2131034112; + + // aapt resource value: 0x7f050005 + public const int emphasis = 2131034117; + + // aapt resource value: 0x7f050006 + public const int emphasis2 = 2131034118; + + // aapt resource value: 0x7f050001 + public const int group = 2131034113; + + // aapt resource value: 0x7f050004 + public const int group_header_button_pressed = 2131034116; + + // aapt resource value: 0x7f050002 + public const int icon_background = 2131034114; + + // aapt resource value: 0x7f050003 + public const int icon_text = 2131034115; + + private Color() + { + } + } + + public partial class Drawable + { + + // aapt resource value: 0x7f020000 + public const int BlueButton = 2130837504; + + // aapt resource value: 0x7f020001 + public const int btn_new_group = 2130837505; + + // aapt resource value: 0x7f020002 + public const int btn_new_group_dark = 2130837506; + + // aapt resource value: 0x7f020003 + public const int device_access_new_account = 2130837507; + + // aapt resource value: 0x7f020004 + public const int device_access_new_account_dark = 2130837508; + + // aapt resource value: 0x7f020005 + public const int EntryFieldHeaderBackground = 2130837509; + + // aapt resource value: 0x7f020006 + public const int extra_string_header = 2130837510; + + // aapt resource value: 0x7f020007 + public const int GreenButton = 2130837511; + + // aapt resource value: 0x7f020008 + public const int HeaderButtonBackground = 2130837512; + + // aapt resource value: 0x7f020009 + public const int ic00 = 2130837513; + + // aapt resource value: 0x7f02000a + public const int ic01 = 2130837514; + + // aapt resource value: 0x7f02000b + public const int ic02 = 2130837515; + + // aapt resource value: 0x7f02000c + public const int ic03 = 2130837516; + + // aapt resource value: 0x7f02000d + public const int ic04 = 2130837517; + + // aapt resource value: 0x7f02000e + public const int ic05 = 2130837518; + + // aapt resource value: 0x7f02000f + public const int ic06 = 2130837519; + + // aapt resource value: 0x7f020010 + public const int ic07 = 2130837520; + + // aapt resource value: 0x7f020011 + public const int ic08 = 2130837521; + + // aapt resource value: 0x7f020012 + public const int ic09 = 2130837522; + + // aapt resource value: 0x7f020013 + public const int ic10 = 2130837523; + + // aapt resource value: 0x7f020014 + public const int ic11 = 2130837524; + + // aapt resource value: 0x7f020015 + public const int ic12 = 2130837525; + + // aapt resource value: 0x7f020016 + public const int ic13 = 2130837526; + + // aapt resource value: 0x7f020017 + public const int ic14 = 2130837527; + + // aapt resource value: 0x7f020018 + public const int ic15 = 2130837528; + + // aapt resource value: 0x7f020019 + public const int ic16 = 2130837529; + + // aapt resource value: 0x7f02001a + public const int ic17 = 2130837530; + + // aapt resource value: 0x7f02001b + public const int ic18 = 2130837531; + + // aapt resource value: 0x7f02001c + public const int ic19 = 2130837532; + + // aapt resource value: 0x7f02001d + public const int ic20 = 2130837533; + + // aapt resource value: 0x7f02001e + public const int ic21 = 2130837534; + + // aapt resource value: 0x7f02001f + public const int ic22 = 2130837535; + + // aapt resource value: 0x7f020020 + public const int ic23 = 2130837536; + + // aapt resource value: 0x7f020021 + public const int ic24 = 2130837537; + + // aapt resource value: 0x7f020022 + public const int ic25 = 2130837538; + + // aapt resource value: 0x7f020023 + public const int ic26 = 2130837539; + + // aapt resource value: 0x7f020024 + public const int ic27 = 2130837540; + + // aapt resource value: 0x7f020025 + public const int ic28 = 2130837541; + + // aapt resource value: 0x7f020026 + public const int ic29 = 2130837542; + + // aapt resource value: 0x7f020027 + public const int ic30 = 2130837543; + + // aapt resource value: 0x7f020028 + public const int ic31 = 2130837544; + + // aapt resource value: 0x7f020029 + public const int ic32 = 2130837545; + + // aapt resource value: 0x7f02002a + public const int ic33 = 2130837546; + + // aapt resource value: 0x7f02002b + public const int ic34 = 2130837547; + + // aapt resource value: 0x7f02002c + public const int ic35 = 2130837548; + + // aapt resource value: 0x7f02002d + public const int ic36 = 2130837549; + + // aapt resource value: 0x7f02002e + public const int ic37 = 2130837550; + + // aapt resource value: 0x7f02002f + public const int ic38 = 2130837551; + + // aapt resource value: 0x7f020030 + public const int ic39 = 2130837552; + + // aapt resource value: 0x7f020031 + public const int ic40 = 2130837553; + + // aapt resource value: 0x7f020032 + public const int ic41 = 2130837554; + + // aapt resource value: 0x7f020033 + public const int ic42 = 2130837555; + + // aapt resource value: 0x7f020034 + public const int ic43 = 2130837556; + + // aapt resource value: 0x7f020035 + public const int ic44 = 2130837557; + + // aapt resource value: 0x7f020036 + public const int ic45 = 2130837558; + + // aapt resource value: 0x7f020037 + public const int ic46 = 2130837559; + + // aapt resource value: 0x7f020038 + public const int ic47 = 2130837560; + + // aapt resource value: 0x7f020039 + public const int ic48 = 2130837561; + + // aapt resource value: 0x7f02003a + public const int ic49 = 2130837562; + + // aapt resource value: 0x7f02003b + public const int ic50 = 2130837563; + + // aapt resource value: 0x7f02003c + public const int ic51 = 2130837564; + + // aapt resource value: 0x7f02003d + public const int ic52 = 2130837565; + + // aapt resource value: 0x7f02003e + public const int ic53 = 2130837566; + + // aapt resource value: 0x7f02003f + public const int ic54 = 2130837567; + + // aapt resource value: 0x7f020040 + public const int ic55 = 2130837568; + + // aapt resource value: 0x7f020041 + public const int ic56 = 2130837569; + + // aapt resource value: 0x7f020042 + public const int ic57 = 2130837570; + + // aapt resource value: 0x7f020043 + public const int ic58 = 2130837571; + + // aapt resource value: 0x7f020044 + public const int ic59 = 2130837572; + + // aapt resource value: 0x7f020045 + public const int ic60 = 2130837573; + + // aapt resource value: 0x7f020046 + public const int ic61 = 2130837574; + + // aapt resource value: 0x7f020047 + public const int ic62 = 2130837575; + + // aapt resource value: 0x7f020048 + public const int ic63 = 2130837576; + + // aapt resource value: 0x7f020049 + public const int ic64 = 2130837577; + + // aapt resource value: 0x7f02004a + public const int ic65 = 2130837578; + + // aapt resource value: 0x7f02004b + public const int ic66 = 2130837579; + + // aapt resource value: 0x7f02004c + public const int ic67 = 2130837580; + + // aapt resource value: 0x7f02004d + public const int ic68 = 2130837581; + + // aapt resource value: 0x7f02004e + public const int ic99_blank = 2130837582; + + // aapt resource value: 0x7f02004f + public const int ic_action_eye_open = 2130837583; + + // aapt resource value: 0x7f020050 + public const int ic_action_search = 2130837584; + + // aapt resource value: 0x7f020051 + public const int ic_launcher = 2130837585; + + // aapt resource value: 0x7f020052 + public const int ic_launcher_folder_small = 2130837586; + + // aapt resource value: 0x7f020053 + public const int ic_launcher_gray = 2130837587; + + // aapt resource value: 0x7f020054 + public const int ic_menu_view = 2130837588; + + // aapt resource value: 0x7f020055 + public const int navigation_accept = 2130837589; + + // aapt resource value: 0x7f020056 + public const int navigation_accept_dark = 2130837590; + + // aapt resource value: 0x7f020057 + public const int navigation_previous_item = 2130837591; + + // aapt resource value: 0x7f020058 + public const int navigation_previous_item_dark = 2130837592; + + // aapt resource value: 0x7f020059 + public const int notify = 2130837593; + + // aapt resource value: 0x7f02005a + public const int RedButton = 2130837594; + + // aapt resource value: 0x7f02005b + public const int section_header = 2130837595; + + // aapt resource value: 0x7f02005c + public const int YellowButton = 2130837596; + + private Drawable() + { + } + } + + public partial class Id + { + + // aapt resource value: 0x7f0b000a + public const int Credit = 2131427338; + + // aapt resource value: 0x7f0b0070 + public const int IconGridView = 2131427440; + + // aapt resource value: 0x7f0b007d + public const int QuickUnlock_button = 2131427453; + + // aapt resource value: 0x7f0b007e + public const int QuickUnlock_buttonLock = 2131427454; + + // aapt resource value: 0x7f0b007b + public const int QuickUnlock_label = 2131427451; + + // aapt resource value: 0x7f0b007c + public const int QuickUnlock_password = 2131427452; + + // aapt resource value: 0x7f0b0054 + public const int RelativeLayout = 2131427412; + + // aapt resource value: 0x7f0b0053 + public const int ScrollView = 2131427411; + + // aapt resource value: 0x7f0b0009 + public const int about_button = 2131427337; + + // aapt resource value: 0x7f0b0000 + public const int about_title = 2131427328; + + // aapt resource value: 0x7f0b0051 + public const int accept_button = 2131427409; + + // aapt resource value: 0x7f0b0024 + public const int add_advanced = 2131427364; + + // aapt resource value: 0x7f0b0067 + public const int add_entry = 2131427431; + + // aapt resource value: 0x7f0b0066 + public const int add_group = 2131427430; + + // aapt resource value: 0x7f0b0023 + public const int advanced_container = 2131427363; + + // aapt resource value: 0x7f0b0026 + public const int binaries = 2131427366; + + // aapt resource value: 0x7f0b0036 + public const int bottom_bar = 2131427382; + + // aapt resource value: 0x7f0b0050 + public const int bottom_layout = 2131427408; + + // aapt resource value: 0x7f0b0048 + public const int browse_button = 2131427400; + + // aapt resource value: 0x7f0b0059 + public const int btn_length12 = 2131427417; + + // aapt resource value: 0x7f0b0058 + public const int btn_length16 = 2131427416; + + // aapt resource value: 0x7f0b005b + public const int btn_length6 = 2131427419; + + // aapt resource value: 0x7f0b005a + public const int btn_length8 = 2131427418; + + // aapt resource value: 0x7f0b000e + public const int cancel = 2131427342; + + // aapt resource value: 0x7f0b0052 + public const int cancel_button = 2131427410; + + // aapt resource value: 0x7f0b008e + public const int cbCaseSensitive = 2131427470; + + // aapt resource value: 0x7f0b008f + public const int cbExcludeExpiredEntries = 2131427471; + + // aapt resource value: 0x7f0b0084 + public const int cbRegEx = 2131427460; + + // aapt resource value: 0x7f0b008d + public const int cbSearchInGroupName = 2131427469; + + // aapt resource value: 0x7f0b008a + public const int cbSearchInNotes = 2131427466; + + // aapt resource value: 0x7f0b008b + public const int cbSearchInOtherStrings = 2131427467; + + // aapt resource value: 0x7f0b0089 + public const int cbSearchInPassword = 2131427465; + + // aapt resource value: 0x7f0b008c + public const int cbSearchInTags = 2131427468; + + // aapt resource value: 0x7f0b0086 + public const int cbSearchInTitle = 2131427462; + + // aapt resource value: 0x7f0b0087 + public const int cbSearchInUrl = 2131427463; + + // aapt resource value: 0x7f0b0088 + public const int cbSearchInUsername = 2131427464; + + // aapt resource value: 0x7f0b0064 + public const int cb_brackets = 2131427428; + + // aapt resource value: 0x7f0b005f + public const int cb_digits = 2131427423; + + // aapt resource value: 0x7f0b005e + public const int cb_lowercase = 2131427422; + + // aapt resource value: 0x7f0b0060 + public const int cb_minus = 2131427424; + + // aapt resource value: 0x7f0b0062 + public const int cb_space = 2131427426; + + // aapt resource value: 0x7f0b0063 + public const int cb_specials = 2131427427; + + // aapt resource value: 0x7f0b0061 + public const int cb_underline = 2131427425; + + // aapt resource value: 0x7f0b005d + public const int cb_uppercase = 2131427421; + + // aapt resource value: 0x7f0b004b + public const int create = 2131427403; + + // aapt resource value: 0x7f0b0094 + public const int cred_password = 2131427476; + + // aapt resource value: 0x7f0b0095 + public const int cred_remember_mode = 2131427477; + + // aapt resource value: 0x7f0b0093 + public const int cred_username = 2131427475; + + // aapt resource value: 0x7f0b0078 + public const int default_database = 2131427448; + + // aapt resource value: 0x7f0b0030 + public const int delete = 2131427376; + + // aapt resource value: 0x7f0b0008 + public const int disclaimer = 2131427336; + + // aapt resource value: 0x7f0b0001 + public const int divider1 = 2131427329; + + // aapt resource value: 0x7f0b0004 + public const int divider2 = 2131427332; + + // aapt resource value: 0x7f0b0007 + public const int divider3 = 2131427335; + + // aapt resource value: 0x7f0b0032 + public const int divider_comment = 2131427378; + + // aapt resource value: 0x7f0b0079 + public const int enable_quickunlock = 2131427449; + + // aapt resource value: 0x7f0b0041 + public const int entry_accessed = 2131427393; + + // aapt resource value: 0x7f0b0040 + public const int entry_accessed_label = 2131427392; + + // aapt resource value: 0x7f0b0025 + public const int entry_binaries_label = 2131427365; + + // aapt resource value: 0x7f0b0021 + public const int entry_comment = 2131427361; + + // aapt resource value: 0x7f0b0020 + public const int entry_comment_label = 2131427360; + + // aapt resource value: 0x7f0b001f + public const int entry_confpassword = 2131427359; + + // aapt resource value: 0x7f0b001e + public const int entry_confpassword_label = 2131427358; + + // aapt resource value: 0x7f0b0039 + public const int entry_contents = 2131427385; + + // aapt resource value: 0x7f0b003d + public const int entry_created = 2131427389; + + // aapt resource value: 0x7f0b003c + public const int entry_created_label = 2131427388; + + // aapt resource value: 0x7f0b0038 + public const int entry_divider2 = 2131427384; + + // aapt resource value: 0x7f0b0037 + public const int entry_edit = 2131427383; + + // aapt resource value: 0x7f0b002d + public const int entry_expires = 2131427373; + + // aapt resource value: 0x7f0b002c + public const int entry_expires_checkbox = 2131427372; + + // aapt resource value: 0x7f0b002b + public const int entry_expires_label = 2131427371; + + // aapt resource value: 0x7f0b0022 + public const int entry_extra_strings_label = 2131427362; + + // aapt resource value: 0x7f0b0033 + public const int entry_icon = 2131427379; + + // aapt resource value: 0x7f0b003f + public const int entry_modified = 2131427391; + + // aapt resource value: 0x7f0b003e + public const int entry_modified_label = 2131427390; + + // aapt resource value: 0x7f0b002a + public const int entry_override_url = 2131427370; + + // aapt resource value: 0x7f0b0029 + public const int entry_override_url_label = 2131427369; + + // aapt resource value: 0x7f0b001d + public const int entry_password = 2131427357; + + // aapt resource value: 0x7f0b001b + public const int entry_password_label = 2131427355; + + // aapt resource value: 0x7f0b0012 + public const int entry_save = 2131427346; + + // aapt resource value: 0x7f0b0011 + public const int entry_save_header = 2131427345; + + // aapt resource value: 0x7f0b0013 + public const int entry_scroll = 2131427347; + + // aapt resource value: 0x7f0b003a + public const int entry_table = 2131427386; + + // aapt resource value: 0x7f0b0028 + public const int entry_tags = 2131427368; + + // aapt resource value: 0x7f0b0027 + public const int entry_tags_label = 2131427367; + + // aapt resource value: 0x7f0b0034 + public const int entry_text = 2131427380; + + // aapt resource value: 0x7f0b0016 + public const int entry_title = 2131427350; + + // aapt resource value: 0x7f0b0014 + public const int entry_title_label = 2131427348; + + // aapt resource value: 0x7f0b001a + public const int entry_url = 2131427354; + + // aapt resource value: 0x7f0b0019 + public const int entry_url_label = 2131427353; + + // aapt resource value: 0x7f0b0018 + public const int entry_user_name = 2131427352; + + // aapt resource value: 0x7f0b0017 + public const int entry_user_name_label = 2131427351; + + // aapt resource value: 0x7f0b003b + public const int extra_strings = 2131427387; + + // aapt resource value: 0x7f0b0006 + public const int feedback = 2131427334; + + // aapt resource value: 0x7f0b0042 + public const int file_filename = 2131427394; + + // aapt resource value: 0x7f0b0043 + public const int file_listtop = 2131427395; + + // aapt resource value: 0x7f0b0044 + public const int file_select = 2131427396; + + // aapt resource value: 0x7f0b0073 + public const int filename = 2131427443; + + // aapt resource value: 0x7f0b0045 + public const int filename_form = 2131427397; + + // aapt resource value: 0x7f0b0071 + public const int filename_label = 2131427441; + + // aapt resource value: 0x7f0b0072 + public const int filenamescroll = 2131427442; + + // aapt resource value: 0x7f0b004c + public const int fnv_cancel = 2131427404; + + // aapt resource value: 0x7f0b001c + public const int generate_button = 2131427356; + + // aapt resource value: 0x7f0b0056 + public const int generate_password_button = 2131427414; + + // aapt resource value: 0x7f0b0065 + public const int group_header = 2131427429; + + // aapt resource value: 0x7f0b006b + public const int group_icon = 2131427435; + + // aapt resource value: 0x7f0b006d + public const int group_label = 2131427437; + + // aapt resource value: 0x7f0b0068 + public const int group_name = 2131427432; + + // aapt resource value: 0x7f0b006c + public const int group_text = 2131427436; + + // aapt resource value: 0x7f0b0005 + public const int homepage = 2131427333; + + // aapt resource value: 0x7f0b006a + public const int icon = 2131427434; + + // aapt resource value: 0x7f0b0015 + public const int icon_button = 2131427349; + + // aapt resource value: 0x7f0b006e + public const int icon_image = 2131427438; + + // aapt resource value: 0x7f0b006f + public const int icon_text = 2131427439; + + // aapt resource value: 0x7f0b000c + public const int install_market = 2131427340; + + // aapt resource value: 0x7f0b000d + public const int install_web = 2131427341; + + // aapt resource value: 0x7f0b0047 + public const int label_open_by_filename = 2131427399; + + // aapt resource value: 0x7f0b0049 + public const int label_open_by_filename_details = 2131427401; + + // aapt resource value: 0x7f0b0046 + public const int label_warning = 2131427398; + + // aapt resource value: 0x7f0b005c + public const int length = 2131427420; + + // aapt resource value: 0x7f0b0057 + public const int length_label = 2131427415; + + // aapt resource value: 0x7f0b0083 + public const int linearLayout1 = 2131427459; + + // aapt resource value: 0x7f0b009b + public const int menu_about = 2131427483; + + // aapt resource value: 0x7f0b009a + public const int menu_app_settings = 2131427482; + + // aapt resource value: 0x7f0b0099 + public const int menu_cancel_edit = 2131427481; + + // aapt resource value: 0x7f0b009d + public const int menu_change_master_key = 2131427485; + + // aapt resource value: 0x7f0b0097 + public const int menu_goto_url = 2131427479; + + // aapt resource value: 0x7f0b0098 + public const int menu_lock = 2131427480; + + // aapt resource value: 0x7f0b009c + public const int menu_search = 2131427484; + + // aapt resource value: 0x7f0b009e + public const int menu_sort = 2131427486; + + // aapt resource value: 0x7f0b0096 + public const int menu_toggle_pass = 2131427478; + + // aapt resource value: 0x7f0b0069 + public const int ok = 2131427433; + + // aapt resource value: 0x7f0b004a + public const int open = 2131427402; + + // aapt resource value: 0x7f0b0091 + public const int pass_conf_password = 2131427473; + + // aapt resource value: 0x7f0b0076 + public const int pass_keyfile = 2131427446; + + // aapt resource value: 0x7f0b0077 + public const int pass_ok = 2131427447; + + // aapt resource value: 0x7f0b0090 + public const int pass_password = 2131427472; + + // aapt resource value: 0x7f0b0055 + public const int password = 2131427413; + + // aapt resource value: 0x7f0b0074 + public const int password_label = 2131427444; + + // aapt resource value: 0x7f0b002f + public const int protection = 2131427375; + + // aapt resource value: 0x7f0b007a + public const int qu_filename = 2131427450; + + // aapt resource value: 0x7f0b000f + public const int rounds = 2131427343; + + // aapt resource value: 0x7f0b0010 + public const int rounds_explaination = 2131427344; + + // aapt resource value: 0x7f0b0082 + public const int scrollView1 = 2131427458; + + // aapt resource value: 0x7f0b0081 + public const int searchEditText = 2131427457; + + // aapt resource value: 0x7f0b0080 + public const int search_button = 2131427456; + + // aapt resource value: 0x7f0b0085 + public const int search_in_label = 2131427461; + + // aapt resource value: 0x7f0b007f + public const int search_label = 2131427455; + + // aapt resource value: 0x7f0b004f + public const int start_create = 2131427407; + + // aapt resource value: 0x7f0b0092 + public const int start_create_import = 2131427474; + + // aapt resource value: 0x7f0b004d + public const int start_open_file = 2131427405; + + // aapt resource value: 0x7f0b004e + public const int start_open_url = 2131427406; + + // aapt resource value: 0x7f0b000b + public const int text = 2131427339; + + // aapt resource value: 0x7f0b002e + public const int title = 2131427374; + + // aapt resource value: 0x7f0b0035 + public const int title_block = 2131427381; + + // aapt resource value: 0x7f0b0075 + public const int toggle_password = 2131427445; + + // aapt resource value: 0x7f0b0031 + public const int value = 2131427377; + + // aapt resource value: 0x7f0b0003 + public const int version = 2131427331; + + // aapt resource value: 0x7f0b0002 + public const int version_title = 2131427330; + + private Id() + { + } + } + + public partial class Layout + { + + // aapt resource value: 0x7f030000 + public const int about = 2130903040; + + // aapt resource value: 0x7f030001 + public const int browser_install = 2130903041; + + // aapt resource value: 0x7f030002 + public const int database_settings = 2130903042; + + // aapt resource value: 0x7f030003 + public const int entry_edit = 2130903043; + + // aapt resource value: 0x7f030004 + public const int entry_edit_section = 2130903044; + + // aapt resource value: 0x7f030005 + public const int entry_list_entry = 2130903045; + + // aapt resource value: 0x7f030006 + public const int entry_section = 2130903046; + + // aapt resource value: 0x7f030007 + public const int entry_view = 2130903047; + + // aapt resource value: 0x7f030008 + public const int entry_view_contents = 2130903048; + + // aapt resource value: 0x7f030009 + public const int file_row = 2130903049; + + // aapt resource value: 0x7f03000a + public const int file_selection = 2130903050; + + // aapt resource value: 0x7f03000b + public const int file_selection_filename = 2130903051; + + // aapt resource value: 0x7f03000c + public const int file_selection_no_recent = 2130903052; + + // aapt resource value: 0x7f03000d + public const int generate_password = 2130903053; + + // aapt resource value: 0x7f03000e + public const int group_add_entry = 2130903054; + + // aapt resource value: 0x7f03000f + public const int group_edit = 2130903055; + + // aapt resource value: 0x7f030010 + public const int group_empty = 2130903056; + + // aapt resource value: 0x7f030011 + public const int group_header = 2130903057; + + // aapt resource value: 0x7f030012 + public const int group_list_entry = 2130903058; + + // aapt resource value: 0x7f030013 + public const int icon = 2130903059; + + // aapt resource value: 0x7f030014 + public const int icon_picker = 2130903060; + + // aapt resource value: 0x7f030015 + public const int password = 2130903061; + + // aapt resource value: 0x7f030016 + public const int QuickUnlock = 2130903062; + + // aapt resource value: 0x7f030017 + public const int search = 2130903063; + + // aapt resource value: 0x7f030018 + public const int set_password = 2130903064; + + // aapt resource value: 0x7f030019 + public const int StartScreenButtons = 2130903065; + + // aapt resource value: 0x7f03001a + public const int url_credentials = 2130903066; + + private Layout() + { + } + } + + public partial class Menu + { + + // aapt resource value: 0x7f0a0000 + public const int entry = 2131361792; + + // aapt resource value: 0x7f0a0001 + public const int entry_edit = 2131361793; + + // aapt resource value: 0x7f0a0002 + public const int fileselect = 2131361794; + + // aapt resource value: 0x7f0a0003 + public const int group = 2131361795; + + // aapt resource value: 0x7f0a0004 + public const int password = 2131361796; + + private Menu() + { + } + } + + public partial class String + { + + // aapt resource value: 0x7f06001e + public const int AboutText = 2131099678; + + // aapt resource value: 0x7f0600e7 + public const int AskOverwriteBinary = 2131099879; + + // aapt resource value: 0x7f0600ea + public const int AskOverwriteBinary_no = 2131099882; + + // aapt resource value: 0x7f0600e8 + public const int AskOverwriteBinary_title = 2131099880; + + // aapt resource value: 0x7f0600e9 + public const int AskOverwriteBinary_yes = 2131099881; + + // aapt resource value: 0x7f0600eb + public const int AttachFailed = 2131099883; + + // aapt resource value: 0x7f060016 + public const int BinaryDirectory_default = 2131099670; + + // aapt resource value: 0x7f060015 + public const int BinaryDirectory_key = 2131099669; + + // aapt resource value: 0x7f0600d9 + public const int BinaryDirectory_summary = 2131099865; + + // aapt resource value: 0x7f0600d8 + public const int BinaryDirectory_title = 2131099864; + + // aapt resource value: 0x7f060031 + public const int ClearClipboard = 2131099697; + + // aapt resource value: 0x7f06001f + public const int CreditsText = 2131099679; + + // aapt resource value: 0x7f060067 + public const int FileNotFound = 2131099751; + + // aapt resource value: 0x7f06007a + public const int InvalidPassword = 2131099770; + + // aapt resource value: 0x7f060084 + public const int MaskedPassword = 2131099780; + + // aapt resource value: 0x7f060017 + public const int QuickUnlockDefaultEnabled_key = 2131099671; + + // aapt resource value: 0x7f0600d3 + public const int QuickUnlockDefaultEnabled_summary = 2131099859; + + // aapt resource value: 0x7f0600d2 + public const int QuickUnlockDefaultEnabled_title = 2131099858; + + // aapt resource value: 0x7f0600d7 + public const int QuickUnlockLength_default = 2131099863; + + // aapt resource value: 0x7f060018 + public const int QuickUnlockLength_key = 2131099672; + + // aapt resource value: 0x7f0600d5 + public const int QuickUnlockLength_summary = 2131099861; + + // aapt resource value: 0x7f0600d4 + public const int QuickUnlockLength_title = 2131099860; + + // aapt resource value: 0x7f0600d0 + public const int QuickUnlock_button = 2131099856; + + // aapt resource value: 0x7f0600d6 + public const int QuickUnlock_fail = 2131099862; + + // aapt resource value: 0x7f0600cf + public const int QuickUnlock_label = 2131099855; + + // aapt resource value: 0x7f0600d1 + public const int QuickUnlock_lockButton = 2131099857; + + // aapt resource value: 0x7f0600ec + public const int RecycleBin = 2131099884; + + // aapt resource value: 0x7f0600db + public const int SaveAttachment_Failed = 2131099867; + + // aapt resource value: 0x7f0600da + public const int SaveAttachment_doneMessage = 2131099866; + + // aapt resource value: 0x7f060013 + public const int TanExpiresOnUse_key = 2131099667; + + // aapt resource value: 0x7f0600c1 + public const int TanExpiresOnUse_summary = 2131099841; + + // aapt resource value: 0x7f0600c0 + public const int TanExpiresOnUse_title = 2131099840; + + // aapt resource value: 0x7f060019 + public const int UseFileTransactions_key = 2131099673; + + // aapt resource value: 0x7f0600e6 + public const int UseFileTransactions_summary = 2131099878; + + // aapt resource value: 0x7f0600e5 + public const int UseFileTransactions_title = 2131099877; + + // aapt resource value: 0x7f06001c + public const int about_feedback = 2131099676; + + // aapt resource value: 0x7f06001d + public const int about_homepage = 2131099677; + + // aapt resource value: 0x7f0600ed + public const int about_twitter = 2131099885; + + // aapt resource value: 0x7f060020 + public const int accept = 2131099680; + + // aapt resource value: 0x7f0600e1 + public const int add_binary = 2131099873; + + // aapt resource value: 0x7f060021 + public const int add_entry = 2131099681; + + // aapt resource value: 0x7f0600e2 + public const int add_extra_string = 2131099874; + + // aapt resource value: 0x7f060022 + public const int add_group = 2131099682; + + // aapt resource value: 0x7f060023 + public const int add_group_title = 2131099683; + + // aapt resource value: 0x7f060024 + public const int algorithm = 2131099684; + + // aapt resource value: 0x7f060025 + public const int algorithm_colon = 2131099685; + + // aapt resource value: 0x7f060007 + public const int algorithm_key = 2131099655; + + // aapt resource value: 0x7f060008 + public const int app_key = 2131099656; + + // aapt resource value: 0x7f060026 + public const int app_name = 2131099686; + + // aapt resource value: 0x7f060029 + public const int app_timeout = 2131099689; + + // aapt resource value: 0x7f060009 + public const int app_timeout_key = 2131099657; + + // aapt resource value: 0x7f06002a + public const int app_timeout_summary = 2131099690; + + // aapt resource value: 0x7f06002b + public const int application = 2131099691; + + // aapt resource value: 0x7f06002c + public const int application_settings = 2131099692; + + // aapt resource value: 0x7f06002d + public const int brackets = 2131099693; + + // aapt resource value: 0x7f06002e + public const int browser_intall_text = 2131099694; + + // aapt resource value: 0x7f06002f + public const int building_search_idx = 2131099695; + + // aapt resource value: 0x7f060030 + public const int cancel = 2131099696; + + // aapt resource value: 0x7f0600c5 + public const int caseSensitive = 2131099845; + + // aapt resource value: 0x7f060032 + public const int clipboard_timeout = 2131099698; + + // aapt resource value: 0x7f06001a + public const int clipboard_timeout_default = 2131099674; + + // aapt resource value: 0x7f06000a + public const int clipboard_timeout_key = 2131099658; + + // aapt resource value: 0x7f060033 + public const int clipboard_timeout_summary = 2131099699; + + // aapt resource value: 0x7f060035 + public const int copy_password = 2131099701; + + // aapt resource value: 0x7f060034 + public const int copy_username = 2131099700; + + // aapt resource value: 0x7f060036 + public const int creating_db_key = 2131099702; + + // aapt resource value: 0x7f0600e4 + public const int credentials_dialog_title = 2131099876; + + // aapt resource value: 0x7f060037 + public const int current_group = 2131099703; + + // aapt resource value: 0x7f060038 + public const int current_group_root = 2131099704; + + // aapt resource value: 0x7f060039 + public const int database = 2131099705; + + // aapt resource value: 0x7f0600e3 + public const int database_loaded_quickunlock_enabled = 2131099875; + + // aapt resource value: 0x7f06000b + public const int db_key = 2131099659; + + // aapt resource value: 0x7f06003a + public const int decrypting_db = 2131099706; + + // aapt resource value: 0x7f06003b + public const int decrypting_entry = 2131099707; + + // aapt resource value: 0x7f06003c + public const int default_checkbox = 2131099708; + + // aapt resource value: 0x7f060000 + public const int default_file_path = 2131099648; + + // aapt resource value: 0x7f0600ac + public const int default_username = 2131099820; + + // aapt resource value: 0x7f060014 + public const int default_username_key = 2131099668; + + // aapt resource value: 0x7f0600ad + public const int default_username_summary = 2131099821; + + // aapt resource value: 0x7f06003d + public const int digits = 2131099709; + + // aapt resource value: 0x7f06003e + public const int disclaimer_formal = 2131099710; + + // aapt resource value: 0x7f060001 + public const int donate_url = 2131099649; + + // aapt resource value: 0x7f06003f + public const int ellipsis = 2131099711; + + // aapt resource value: 0x7f0600ce + public const int enable_quickunlock = 2131099854; + + // aapt resource value: 0x7f060040 + public const int enter_filename = 2131099712; + + // aapt resource value: 0x7f0600cc + public const int enter_filename_details_create = 2131099852; + + // aapt resource value: 0x7f0600cd + public const int enter_filename_details_create_import = 2131099853; + + // aapt resource value: 0x7f0600ca + public const int enter_filename_details_file = 2131099850; + + // aapt resource value: 0x7f0600cb + public const int enter_filename_details_url = 2131099851; + + // aapt resource value: 0x7f060041 + public const int entry_accessed = 2131099713; + + // aapt resource value: 0x7f060042 + public const int entry_and_or = 2131099714; + + // aapt resource value: 0x7f060052 + public const int entry_binaries = 2131099730; + + // aapt resource value: 0x7f060043 + public const int entry_cancel = 2131099715; + + // aapt resource value: 0x7f060044 + public const int entry_comment = 2131099716; + + // aapt resource value: 0x7f060047 + public const int entry_confpassword = 2131099719; + + // aapt resource value: 0x7f060048 + public const int entry_created = 2131099720; + + // aapt resource value: 0x7f060049 + public const int entry_expires = 2131099721; + + // aapt resource value: 0x7f060051 + public const int entry_extra_strings = 2131099729; + + // aapt resource value: 0x7f06004a + public const int entry_keyfile = 2131099722; + + // aapt resource value: 0x7f06004b + public const int entry_modified = 2131099723; + + // aapt resource value: 0x7f060046 + public const int entry_override_url = 2131099718; + + // aapt resource value: 0x7f06004c + public const int entry_password = 2131099724; + + // aapt resource value: 0x7f06004d + public const int entry_save = 2131099725; + + // aapt resource value: 0x7f060045 + public const int entry_tags = 2131099717; + + // aapt resource value: 0x7f06004e + public const int entry_title = 2131099726; + + // aapt resource value: 0x7f06004f + public const int entry_url = 2131099727; + + // aapt resource value: 0x7f060050 + public const int entry_user_name = 2131099728; + + // aapt resource value: 0x7f060053 + public const int error_arc4 = 2131099731; + + // aapt resource value: 0x7f060054 + public const int error_can_not_handle_uri = 2131099732; + + // aapt resource value: 0x7f060055 + public const int error_could_not_create_group = 2131099733; + + // aapt resource value: 0x7f060056 + public const int error_could_not_create_parent = 2131099734; + + // aapt resource value: 0x7f060057 + public const int error_database_exists = 2131099735; + + // aapt resource value: 0x7f060058 + public const int error_database_settings = 2131099736; + + // aapt resource value: 0x7f060059 + public const int error_failed_to_launch_link = 2131099737; + + // aapt resource value: 0x7f06005b + public const int error_file_not_create = 2131099739; + + // aapt resource value: 0x7f06005a + public const int error_filename_required = 2131099738; + + // aapt resource value: 0x7f06005c + public const int error_invalid_db = 2131099740; + + // aapt resource value: 0x7f0600dc + public const int error_invalid_expiry_date = 2131099868; + + // aapt resource value: 0x7f06005d + public const int error_invalid_path = 2131099741; + + // aapt resource value: 0x7f06005e + public const int error_no_name = 2131099742; + + // aapt resource value: 0x7f06005f + public const int error_nopass = 2131099743; + + // aapt resource value: 0x7f060060 + public const int error_out_of_memory = 2131099744; + + // aapt resource value: 0x7f060061 + public const int error_pass_gen_type = 2131099745; + + // aapt resource value: 0x7f060062 + public const int error_pass_match = 2131099746; + + // aapt resource value: 0x7f060063 + public const int error_rounds_not_number = 2131099747; + + // aapt resource value: 0x7f060064 + public const int error_rounds_too_large = 2131099748; + + // aapt resource value: 0x7f0600dd + public const int error_string_key = 2131099869; + + // aapt resource value: 0x7f060065 + public const int error_title_required = 2131099749; + + // aapt resource value: 0x7f060066 + public const int error_wrong_length = 2131099750; + + // aapt resource value: 0x7f0600c3 + public const int excludeExpiredEntries = 2131099843; + + // aapt resource value: 0x7f0600de + public const int field_name = 2131099870; + + // aapt resource value: 0x7f0600df + public const int field_value = 2131099871; + + // aapt resource value: 0x7f060068 + public const int file_browser = 2131099752; + + // aapt resource value: 0x7f060069 + public const int generate_password = 2131099753; + + // aapt resource value: 0x7f06006a + public const int group = 2131099754; + + // aapt resource value: 0x7f06006b + public const int hint_comment = 2131099755; + + // aapt resource value: 0x7f06006c + public const int hint_conf_pass = 2131099756; + + // aapt resource value: 0x7f06006d + public const int hint_generated_password = 2131099757; + + // aapt resource value: 0x7f06006e + public const int hint_group_name = 2131099758; + + // aapt resource value: 0x7f06006f + public const int hint_keyfile = 2131099759; + + // aapt resource value: 0x7f060070 + public const int hint_length = 2131099760; + + // aapt resource value: 0x7f060072 + public const int hint_login_pass = 2131099762; + + // aapt resource value: 0x7f060075 + public const int hint_override_url = 2131099765; + + // aapt resource value: 0x7f060071 + public const int hint_pass = 2131099761; + + // aapt resource value: 0x7f060076 + public const int hint_tags = 2131099766; + + // aapt resource value: 0x7f060073 + public const int hint_title = 2131099763; + + // aapt resource value: 0x7f060074 + public const int hint_url = 2131099764; + + // aapt resource value: 0x7f060077 + public const int hint_username = 2131099767; + + // aapt resource value: 0x7f060002 + public const int homepage = 2131099650; + + // aapt resource value: 0x7f060003 + public const int homepage_short = 2131099651; + + // aapt resource value: 0x7f060078 + public const int install_from_market = 2131099768; + + // aapt resource value: 0x7f060079 + public const int install_from_website = 2131099769; + + // aapt resource value: 0x7f06007b + public const int invalid_algorithm = 2131099771; + + // aapt resource value: 0x7f06007c + public const int invalid_db_sig = 2131099772; + + // aapt resource value: 0x7f060004 + public const int issues = 2131099652; + + // aapt resource value: 0x7f06007d + public const int keyfile_does_not_exist = 2131099773; + + // aapt resource value: 0x7f06007e + public const int keyfile_is_empty = 2131099774; + + // aapt resource value: 0x7f06000d + public const int keyfile_key = 2131099661; + + // aapt resource value: 0x7f0600c2 + public const int kp2a_findUrl = 2131099842; + + // aapt resource value: 0x7f06007f + public const int length = 2131099775; + + // aapt resource value: 0x7f060028 + public const int library_name = 2131099688; + + // aapt resource value: 0x7f06001b + public const int list_size_default = 2131099675; + + // aapt resource value: 0x7f060010 + public const int list_size_key = 2131099664; + + // aapt resource value: 0x7f060081 + public const int list_size_summary = 2131099777; + + // aapt resource value: 0x7f060080 + public const int list_size_title = 2131099776; + + // aapt resource value: 0x7f060082 + public const int loading_database = 2131099778; + + // aapt resource value: 0x7f060083 + public const int lowercase = 2131099779; + + // aapt resource value: 0x7f06000e + public const int maskpass_key = 2131099662; + + // aapt resource value: 0x7f060086 + public const int maskpass_summary = 2131099782; + + // aapt resource value: 0x7f060085 + public const int maskpass_title = 2131099781; + + // aapt resource value: 0x7f060087 + public const int menu_about = 2131099783; + + // aapt resource value: 0x7f06008c + public const int menu_app_settings = 2131099788; + + // aapt resource value: 0x7f060088 + public const int menu_change_key = 2131099784; + + // aapt resource value: 0x7f060089 + public const int menu_copy_pass = 2131099785; + + // aapt resource value: 0x7f06008a + public const int menu_copy_user = 2131099786; + + // aapt resource value: 0x7f06008b + public const int menu_create = 2131099787; + + // aapt resource value: 0x7f06008d + public const int menu_db_settings = 2131099789; + + // aapt resource value: 0x7f06008e + public const int menu_delete = 2131099790; + + // aapt resource value: 0x7f06008f + public const int menu_donate = 2131099791; + + // aapt resource value: 0x7f060090 + public const int menu_edit = 2131099792; + + // aapt resource value: 0x7f060091 + public const int menu_hide_password = 2131099793; + + // aapt resource value: 0x7f060092 + public const int menu_homepage = 2131099794; + + // aapt resource value: 0x7f060093 + public const int menu_lock = 2131099795; + + // aapt resource value: 0x7f060094 + public const int menu_open = 2131099796; + + // aapt resource value: 0x7f060095 + public const int menu_rename = 2131099797; + + // aapt resource value: 0x7f060096 + public const int menu_search = 2131099798; + + // aapt resource value: 0x7f060097 + public const int menu_url = 2131099799; + + // aapt resource value: 0x7f060098 + public const int minus = 2131099800; + + // aapt resource value: 0x7f060099 + public const int never = 2131099801; + + // aapt resource value: 0x7f06009a + public const int no_keys = 2131099802; + + // aapt resource value: 0x7f06009b + public const int no_results = 2131099803; + + // aapt resource value: 0x7f06009c + public const int no_url_handler = 2131099804; + + // aapt resource value: 0x7f060005 + public const int oi_filemanager_market = 2131099653; + + // aapt resource value: 0x7f060006 + public const int oi_filemanager_web = 2131099654; + + // aapt resource value: 0x7f06000f + public const int omitbackup_key = 2131099663; + + // aapt resource value: 0x7f06009f + public const int omitbackup_summary = 2131099807; + + // aapt resource value: 0x7f06009e + public const int omitbackup_title = 2131099806; + + // aapt resource value: 0x7f06009d + public const int open_recent = 2131099805; + + // aapt resource value: 0x7f0600a0 + public const int pass_filename = 2131099808; + + // aapt resource value: 0x7f0600a1 + public const int password_title = 2131099809; + + // aapt resource value: 0x7f0600a2 + public const int progress_create = 2131099810; + + // aapt resource value: 0x7f0600a3 + public const int progress_title = 2131099811; + + // aapt resource value: 0x7f0600e0 + public const int protection = 2131099872; + + // aapt resource value: 0x7f0600bf + public const int regular_expression = 2131099839; + + // aapt resource value: 0x7f0600a4 + public const int remember_keyfile_summary = 2131099812; + + // aapt resource value: 0x7f0600a5 + public const int remember_keyfile_title = 2131099813; + + // aapt resource value: 0x7f0600a6 + public const int remove_from_filelist = 2131099814; + + // aapt resource value: 0x7f0600a7 + public const int rijndael = 2131099815; + + // aapt resource value: 0x7f0600a8 + public const int root = 2131099816; + + // aapt resource value: 0x7f0600a9 + public const int rounds = 2131099817; + + // aapt resource value: 0x7f0600aa + public const int rounds_explaination = 2131099818; + + // aapt resource value: 0x7f0600ab + public const int rounds_hint = 2131099819; + + // aapt resource value: 0x7f06000c + public const int rounds_key = 2131099660; + + // aapt resource value: 0x7f0600ae + public const int saving_database = 2131099822; + + // aapt resource value: 0x7f0600b5 + public const int search_hint = 2131099829; + + // aapt resource value: 0x7f0600b7 + public const int search_in = 2131099831; + + // aapt resource value: 0x7f0600b0 + public const int search_label = 2131099824; + + // aapt resource value: 0x7f0600c4 + public const int search_options = 2131099844; + + // aapt resource value: 0x7f0600b6 + public const int search_results = 2131099830; + + // aapt resource value: 0x7f060027 + public const int short_app_name = 2131099687; + + // aapt resource value: 0x7f0600b1 + public const int show_password = 2131099825; + + // aapt resource value: 0x7f0600b3 + public const int sort_db = 2131099827; + + // aapt resource value: 0x7f060011 + public const int sort_key = 2131099665; + + // aapt resource value: 0x7f0600b2 + public const int sort_name = 2131099826; + + // aapt resource value: 0x7f0600af + public const int space = 2131099823; + + // aapt resource value: 0x7f0600b4 + public const int special = 2131099828; + + // aapt resource value: 0x7f0600c7 + public const int start_create = 2131099847; + + // aapt resource value: 0x7f0600c9 + public const int start_create_import = 2131099849; + + // aapt resource value: 0x7f0600c6 + public const int start_open_file = 2131099846; + + // aapt resource value: 0x7f0600c8 + public const int start_open_url = 2131099848; + + // aapt resource value: 0x7f060012 + public const int timeout_key = 2131099666; + + // aapt resource value: 0x7f0600b8 + public const int twofish = 2131099832; + + // aapt resource value: 0x7f0600b9 + public const int underline = 2131099833; + + // aapt resource value: 0x7f0600ba + public const int unsupported_db_version = 2131099834; + + // aapt resource value: 0x7f0600bb + public const int uppercase = 2131099835; + + // aapt resource value: 0x7f0600be + public const int version_label = 2131099838; + + // aapt resource value: 0x7f0600bc + public const int warning_read_only = 2131099836; + + // aapt resource value: 0x7f0600bd + public const int warning_unmounted = 2131099837; + + private String() + { + } + } + + public partial class Style + { + + // aapt resource value: 0x7f090011 + public const int Base = 2131296273; + + // aapt resource value: 0x7f090001 + public const int Dialog = 2131296257; + + // aapt resource value: 0x7f090006 + public const int ElementText = 2131296262; + + // aapt resource value: 0x7f090007 + public const int ElementTextLarge = 2131296263; + + // aapt resource value: 0x7f090005 + public const int ElementTextSmall = 2131296261; + + // aapt resource value: 0x7f09000e + public const int ElementTextTitle = 2131296270; + + // aapt resource value: 0x7f09000d + public const int EntryFieldHeader = 2131296269; + + // aapt resource value: 0x7f09000f + public const int EntryItem = 2131296271; + + // aapt resource value: 0x7f090010 + public const int ExtraFieldHeader = 2131296272; + + // aapt resource value: 0x7f09000a + public const int GroupAndEntryHeader = 2131296266; + + // aapt resource value: 0x7f090008 + public const int GroupLabel = 2131296264; + + // aapt resource value: 0x7f090003 + public const int GroupText = 2131296259; + + // aapt resource value: 0x7f090004 + public const int GroupTextLarge = 2131296260; + + // aapt resource value: 0x7f090002 + public const int GroupTextSmall = 2131296258; + + // aapt resource value: 0x7f090000 + public const int NoTitleBar = 2131296256; + + // aapt resource value: 0x7f090009 + public const int WhiteOnBlack = 2131296265; + + // aapt resource value: 0x7f09000b + public const int WhiteOnBlackSmall = 2131296267; + + // aapt resource value: 0x7f09000c + public const int WhiteOnDarkSmall = 2131296268; + + private Style() + { + } + } + + public partial class Xml + { + + // aapt resource value: 0x7f040000 + public const int preferences = 2130968576; + + // aapt resource value: 0x7f040001 + public const int searchable = 2130968577; + + private Xml() + { + } + } + } +} +#pragma warning restore 1591 diff --git a/src/keepass2android/Resources/drawable-hdpi/2_action_about.png b/src/keepass2android/Resources/drawable-hdpi/2_action_about.png new file mode 100644 index 0000000000000000000000000000000000000000..8f39c428ac6cacd0ad4fd9e7ab4252a77ce91a53 GIT binary patch literal 1764 zcmaJ?X;2eq7!F0za*QByiN{V56ohOx2O)t#fg~6p2!TRSYh98JNg>%BOA;)tBa9k| z9j`Lrg(DzZ$67$N7MO|x3d${t##%eHf>taPPz$2%1_Aq{bZ2(I?|bKcp7(mb+5Gsp zC^QcMqP5JI>FO+x^_0!~MS2rS7~ zw;~|~g7q4Ck_ZzCVp(ETL4qwlB!fbQqX~qNFoOyfXCN4mhNR1tY~pa;6(S&)u!$*j z0a>7mL}c;}+ciky_P8YR_6#voLJSK9LJTaNK!IQ|U{GW#wJZahIL*t#_ZBlq1g2fE z3^wsyQX)Y-5Q%CKfKDO@h{=Hv5J)3IG%}OM^am(phzvp$kjw~x$SgX8MTUTxhloeh zNTe(whc^=oKe3523{$Z{P_NgM^i&e6Ne3Y&lL?Y3AcYcudjx2+l^ARYP-?wq890bm ztdXlQIjRIKjBpy7g|UfvrteBnsOD&u+L<=t4Fe6Z3WP{xOG&ei0>S^gDim|xT1<$% z&-XuxwMp431Qa4#G)p7K2PgHigi^60H3*EMnj{p>ob6(~48>5b3{?SpmrGbw9y0<84`R?G$Q%gbLQERO^O7T6nE`|k9tzH)zO zYBkUjeP%&pAjG$=wYB5d+u2T9eexpl_lomNYdaRdBP^?oc$9%6WM4 zIeWz3-tJl3P@BKa*wwtey21Lf682#5U`~EcDEg-JfYG7JCe6BP=e>{0ZF-*8oOr7< zS(hgC=0Bg>!S^?&{+XKd$_)D)x<4`|S)3Q|8)uADi!xpANL98!rt?1I`kR*YA2#^j z%`+~dt76BE(gg3f6!WLej1oa_flUIaGwRe^>fIvK&i-WM*W|4(>F&ta54gE~cbJ&5 zP;s_+Q&cm*yXnHj>v($#;eaPO@i*Hn%N`Z#O=2)`q@@c&kl}eoDp}Q|BLlrMkI1Z*a<;vz{^UhU$)M)aI)j%o#hofZ|`kc3k_6#)k;I*Ch<{-CY0?yxT|eIYg}<$ z%`faQG?#3fXc5o&H9?GeZpZM6>OqhUF*tAj6`i|B}|^WXGgjkRaxz9thAG61^D_FQsCYe&)= zve%GOdR=9UC?lp@8}j-dLfgu_ZkDaQ*I;i~RZ@obb{p^d;W1)^M>R1X_BBB-k3S{b z7ayBCFkInP!t-j3}ZcC`IeV^nVC67AM3R#!`@hZ$Dp+Fic?11O}ZO)k|f zOFNYbQIGgFKG*7nN1Qwy86rtav!H0DZvU@UkKwg(J?UO1eZ#Z!!|7hs8~t$4X3t!H zQOp$OT()5%aB>xI{lSmCcy8>Abjem+;YR>ny#6rCQ2)m9s|Y2(6V z-?qSx>gbZ9;a8i#S$~Qosc2Hf?X9T1n6kw=J!V~|cj_aZ2U@pI^^74Zw#Z3>L`qlRr^9$-;)*7r%7WG+gJlVd=BJ4~c(9v`8vcDI& Y6RKUD#(0B`J1qYlJ~xhYK4M$$KMBsYYybcN literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic00.png b/src/keepass2android/Resources/drawable-hdpi/ic00.png new file mode 100644 index 0000000000000000000000000000000000000000..98d7607e281063da87a3204c455868b7cefbc198 GIT binary patch literal 3365 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 W5Qe&ay+K#!0RFx~>u>t7kNy`k_&F&6 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic01.png b/src/keepass2android/Resources/drawable-hdpi/ic01.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f28c4777f5c7c4a0a06f2f32ad07a64e712ca4 GIT binary patch literal 5597 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic02.png b/src/keepass2android/Resources/drawable-hdpi/ic02.png new file mode 100644 index 0000000000000000000000000000000000000000..b11a7b6a4f1825e1e2a22a7719165872d4f7cf48 GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic04.png b/src/keepass2android/Resources/drawable-hdpi/ic04.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9c78ed799a48b8d1db9a2afc1c13d361f5b826 GIT binary patch literal 3364 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 U*&RZ|M+_AB?T*d&{W!<}4@@tvng9R* literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic06.png b/src/keepass2android/Resources/drawable-hdpi/ic06.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1c867fe0d8ebd426aca6f6f78640b6c0733342 GIT binary patch literal 3346 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic07.png b/src/keepass2android/Resources/drawable-hdpi/ic07.png new file mode 100644 index 0000000000000000000000000000000000000000..36459cf4319924dddbc7886460ba1f4575c11b3b GIT binary patch literal 4979 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic08.png b/src/keepass2android/Resources/drawable-hdpi/ic08.png new file mode 100644 index 0000000000000000000000000000000000000000..1bacbaae01c1e97831372c493c03103926a883db GIT binary patch literal 5395 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic09.png b/src/keepass2android/Resources/drawable-hdpi/ic09.png new file mode 100644 index 0000000000000000000000000000000000000000..e21451fc736c438b8573aced52a398ed8cd8eb89 GIT binary patch literal 3024 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 b0eIPM+Hbn`U##XM1@QZ2x6i|^jI93!3k_fL literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic11.png b/src/keepass2android/Resources/drawable-hdpi/ic11.png new file mode 100644 index 0000000000000000000000000000000000000000..68046fae4e0e39f3c307dc800b15ba06ad158490 GIT binary patch literal 3094 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 pUN>|njl$rEG}8449j!KSlNqir<=0qrz_@p%5 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic13.png b/src/keepass2android/Resources/drawable-hdpi/ic13.png new file mode 100644 index 0000000000000000000000000000000000000000..99b3b7fc46a570de0b3091b5544f0cb04edc89d4 GIT binary patch literal 5167 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 Y@oSA6M_sB_KYqZLjb3i|H?ULw2W~np@&Et; literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic14.png b/src/keepass2android/Resources/drawable-hdpi/ic14.png new file mode 100644 index 0000000000000000000000000000000000000000..4a37878918a0a6ebb3c85f38233adec70aadae1e GIT binary patch literal 3855 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic16.png b/src/keepass2android/Resources/drawable-hdpi/ic16.png new file mode 100644 index 0000000000000000000000000000000000000000..1fae5e7c2cc62e9060782cba2931225ab7e02ee2 GIT binary patch literal 6066 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 M-nr%eFRau52OUXd`2YX_ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic17.png b/src/keepass2android/Resources/drawable-hdpi/ic17.png new file mode 100644 index 0000000000000000000000000000000000000000..1b0a5033936cbaf4ef611169e7fd6344deee82e8 GIT binary patch literal 4058 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic18.png b/src/keepass2android/Resources/drawable-hdpi/ic18.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9ab9e1303e9877705376381fd92e4d0d8630ae GIT binary patch literal 3071 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic19.png b/src/keepass2android/Resources/drawable-hdpi/ic19.png new file mode 100644 index 0000000000000000000000000000000000000000..79699c828dda5fbdec9fcc470c37ebd59c17a7a1 GIT binary patch literal 4286 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 CR}Q)W literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic20.png b/src/keepass2android/Resources/drawable-hdpi/ic20.png new file mode 100644 index 0000000000000000000000000000000000000000..0c17cd9a592e0fe08f90d755c2dbeb33162fe452 GIT binary patch literal 5083 zcmW+)c|25Y8$PoSW@EApVN{kh7)vOOGmR?4CXv|Iv(NzSKg$jqfCNHBx{1la{(v*T1SEwlq&wlme{Yew zs}hN(iez;$qknO#7dJUM3I2{n2L%Ob^Oq)SVclWB5O_>-&%WtX$G>}5F1*7x{O21GK6JI6F7N57lw=#rF{K+n=5~~vJ9kd) zY*?5vTeQ;IFU-&c|FsR_X~X~?QP)yZX5gf9_>&?X-CTNA%xY@?>%>7EQKMU@kqp2R zJ|hT(9$Y~I8du8^*{5rB_=6{TYj($RL$G`IDo8xI4}Zt)goFf@vN9ZK0%AA;7Z-nB zonBqkOtg(zIlZ<#S7J&12elh5Ba=c;PH{59VzDNtzrW049yxM}>Ftd^-S+jl+;kK` z<%ULaQ&RG^==Ajd(N@j3ZX?8SFI^0#5lFB?9e|E6!8(ljkvwczg(j2{`9>aBeUMqIC~w2aTm zF^Nx2#nrzEvE`;84XQjh>a#5UT+DO&TjBU)y*5N59PSSaFUP58VAr7`4L|?B{(hkF z-TU`-a`UCh1qJU9@82I>Ix2x7My$Lua&lntfBmIh|L-~B<3FL(t)Ua+&7}3$v3uvJ z^;|+2VgO}rU6qxZ8irF40mi=QKCd*!*xK8V%{8 z%l+=oFJY>vT(zdr%DTbU`W@?4p-^CVjad8vxA^OOz|wTTdeTAZl@7od3?@2c3QJcD z&}%a;6J!?Y>Fev<<5PwFk`iQuS*h8|>Y{C%i35MfGWSllc^BEYmNQ5ull}XKhvD}J zHUqvWUkY&Es>}x#XPd2 z%M-5Luq#7DnLRhsU;+ua{zGb|HEwPn;7afep7vL@ivJ&go0Wy8&sPerNfSk(Nb;XN zc~T&U#d6i*WqI5a({dG-Ye?EG>4e&VOy*Gu^Js$nqPbkn+ z0FG@$O!TQLdiEd`ZBbDp8|k8%_>%`RE$LAdpBgqM9mUc~3bfAD1=HbYnO`N6W5~<$ zyLVHmR6!kdtOS$3b4cNGT3Sk7hX+FCxF+v$`1YBp-d+LwwIymDn3}3D7+ME-Vo0EK z@<^Ob)K<}SYmqP6w>nB@FN5ENT_Bh8$#UXL!*lT&ARsHc4@g-1_l*5?}8s`S)KaAg~75H@0>H!Upe3BuICqHVnf zwJ@>xZd^hFK>xl4*1{J4?yGxvhUHac9f>V)pH-1&>U2R;k|Dhq92WOpguYzgtglaS zk;S#)T5!$9Wqq@nN^ptTI8N<6zZl`ZIyY*Rr0eR#yQ)&rf{3u(WW=PGjtvbA0NWjr z$*8(pd$C;qnSq9A!B??N+ggaADr|m3TSVOrD~qa2_oTroc?H6n7bZcWlB`S${FFb6 zngi&nWe)R6m^*If=1QUN%z)Z)~JHEt5J?e2L4@MP3IkphyI z*ue`lZ5xP%gmLR-!;odom&DE zWiNFQs0)v8TC-+7Agwz@71o>Rl-lzWbjW7k!r}3cfszi|>J^Ek(AmKvbVd zV&uz+0mes1MurCm$4|-^TZQkPz&DFA((X`fHxLTw?WMyn>zJ=AYi~r?C z&6(bsN9Zm_6#8UT{Oj%8w_oe;*zA~wBZ0KcHc2`1O2iQcgA@7$*uOjZBg)-AZWgZB z5^s&#V!~AEaONybpz71qlzXmkJ9oOj{?Y~4*tMm8d}%xUii;nG61fA4r-26#?vU%S z&&kP28i9F+Ip2xuFlRUn`>^z=Mj`dqFl2rq7?ZrLJhu9iInK92j8gcv2dxye&o-kpFT zRec&Q3Z|km1sb4Prxd-6xScR0sTpxnFyDj?qrWAW`^Lh}H*?}HGtQjZ8+r$IS;p(9 ztbQV>f#~d(Du!bh=SGIftXcGcQQn=#-dBQ=(BVtOkdURNg!kyJ`@o%B^mI6DODN~o z*t%f74*z_Z*Mtnu%G}e_kkVTdGm9DFZ3Tr!$lXPW_YhcW9>$EBrp-!$-9OKC8l4-} z>@!jKV8=CuFqw>troceHWLgJZ9NgNN*fR6Buc!L3oK$*je%sK{No-c@Q&rE_1W~ZI zO}GVBRTI#41!2W-WwxAee03pYl(RB#zS>)Bdzja9-JYNILMpV72A`jU1Wbe>D-|S( zm**@jZ;RtSpC+p=X?7v1s=7hpIaqsHnY?39tI>7l{{3=!emm=`H-}RV4Y&3W3Kw@t zs|NWV!IvsM{JVW)X$&_v4XEDrhL*`kOcy#8ZEpE6&+Fh9wvmtZQM@~X1h%;+yOHhV z3Yw`qzy{6Y00?=>tki35;fIA~5=$*q!lPv7@``*(W5-=|A&oZHzV@nHfB#K5c^!7O zUl%$Xsg_sevtzX(q;BhWIyXqF_nJne72UUj4ltzo_MZg8!c5}l@D<7!eY@Bqn`njg z+oe&$@0p3`rMZ4SHaD8_cU;_tzI42W1+lW2>)|8eQWkXSH=Z!(#$rnoC0uQ|ZiRam z#?w6GV)u8%OK#FCQx-snp71+<9F0Hd2y#^uz|bLKM!7`FC9jdGFxD_;4yf^*%r)xe zIjxdQFN(0ISE}GCQV?|^=0;p508fdPhliQnvuE?{p`q+~6f%Lw@Ps+sB6WS}t(71T zy-)i%jCei+8sFhlQMkZhR`RM;fcY8HDI@T!luD8K$7jt-45&zTv~45z3#^6M`$M3O zh2v9{`>0@+Vov1B=7jXtz-*?+@fG8>AltDf;{8!Ud zZ>(&7{=ugmoeR7h=M5m|bAm$MijQ~&O9}s{Uh-ZR$V1D6HYO0Q3W}Tr z@|1dWv$Hu!+M`+CjpKe!PMgv4^011H#)ofR33Z*G4FgOI8FW`H-TP&D-Sn5Im^+K^!+^(;m=jP11it)3ZIki{JEf;m0D& zO6w+Ks|^?=rDPc|eGZWJON9JF_>*pV%L_>eOoWNO{U#n;UocHV}#=3M7 z&vrHe4^t$53rMM8ax>6-i@zeX6&)O`7)l{-{*ouqK<-ban`U0cmL;RFMMygi5RLvg z6qJxLSZu#g#_s3Ez!?MrVX2F_Nfd*M z@MLg*pfl@v+A@ga&nQDMmMd;ZhE*uDO^2i&R)f3(XaPwI8-lCmS02{kdRCkLyeKd*Im;(3ay zx?PCoW{DvF5P$FX4M;5~OG|4wF@ z`zIhetlbWLMvmA7`nk9~4CQCNVzJe7!Xc?G@`48WbYOCSH6s+dfHN|hlIHLX;o!kY z=4E5A7Z9!J6f#EKHFO(!tIU9yt1aOa=WPR`TZ+b zHeIY#P}<^KD+Y*sp8xd>SL_(Y&#Kfa*6&n597&R!;BVPtSr0^e35l9LzCbh46g;}X z&x~IEt=%?bB#7}~asJBvjQj_@#!WNz39W^By|UZ&RHAj~tYa4M*>Y^X)v{nOK2IcV z{!mhktl2KO^*lWFMo2FQ_Nt(q7bqt4yIqpLy$CTxs3KGektr>RKW>cIQh1m0sgJW>oFA8)=9?Vf1UFe(M2{^!z#S;}=@yTDxZN_=h^7EYQYwZ^ zNI1aa&*M)&8Ho|C46Bo3qgUn|{UG%j_#s41HiwE1=R+QVwmmd_oqHW6Fv}hZinJeGzi@q~@p!^p? z?PAGdZ{^wBmkJ9H4}W`M)B!agjm&4Xe*wjY{0SAWbgU@W?Mj1ji7- zM-xxY^}(e?92Y{!ApttMFJi@O@Ss`WKDTX-hc78!PXL2&9&7DEs4oIt$jX_Y6P*vP zO6ipi>mq$y{P~Ud03_0oK|$jeraE|y=fs7LdHmZP;Q|`H3?(VnFvj;#V0qJPYR! zmfNW>42o74qlp^ULn!AndwgoD%2)g9s^bql^1d-W-mVL^7sAZy7uO$noI;S=g3|n` z0IIe&>Jb9G+5YKMp!BS#X%)wYH|yz@HVcJDLZL3TsilQDpFpaNdlf$Z-}mb1#Wz4_ z?=B-*9^U>SgTYvpwx90_=ENTGD*l7%0symrg2`ms+nd#=D(68)3Q@Ak5k340Rt@ELH^e8n%er=i+=_(xNO>QAQE_JgWsLS_f$WA w#a$tJKe(@&#pr~+{RzO#h7LRckSc)oW`mO6u($iA(>cIt=U)3qc2L~^0J*68%m4rY literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic21.png b/src/keepass2android/Resources/drawable-hdpi/ic21.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa37ad2594ae421f592e8b99fe25b245eac1fdb GIT binary patch literal 6476 zcmX9@c~p|w`)3hwc@>wEmvI5JOmjnU)N(<`vMd{|F{8=yMFm@I)Hat?APluAZB@%s zXWFx*-Np^Y(%hSxqD@52tW;3kP~iPJ-`^kiKIh(Z?zx}yZ1?j#H$URnwZ?`&86pq} z67xP<&D> ziyXR-nZVl2V#cSZykz+y5MXcU>Y&K953w2;rb{BQ2xN0Jr5PEBFiyuK^h}NNp!oRs zn-)w+e~1M^u{p6=J*%sZ&2D`8^4DtxF>nJVQ>PA9(&uk5Fw0(%F}rvF%L!`$6%Dmn zaQ`){?b-gUl6KLI_RhnL9Y9Da2h^dasOU~{Q3M^i*dUtxdAxiOZyE^Uhab==IY=A0 zsNBRs&;aXNZdy%jRaejN-s7~3k}Ntv(P-fUd5c1E#+xL2a?zKwrDq8$M{MpFR zs=Pg2JWJx67Fwc?Yf*w$~FsoI0_nX$GnJqXS zq@?4VNfrcxx4pZ!g+w6>Y>%O{W;;a}dHf2}@aeS_-%>RQPG>j8KGU~H|3#v>SnE6x zcaI^^|Bpk1Ty@3x`T|(b9@ovV&La;Q9Hy7I4Av!>-l5kxVMs@K~>9y7BZR#|lR8I{`b1+24F+K2?)p|s?Oo%yLQ+uW{blgGWP0rMf5_^mS z!zmi%^1nEN;TmMDWt0OJ3FWa|pS^^-f3%ZV7=@M5c_uLK(KixJLbuWxBcK zG5sAeK!bRp=7f}g)CGUSHHrI<%#SaY92rUiUOpswfYtM;-%Kcayhbga0WJ8ML_7;y z1fPHEi-upX?Wna#O+{XYFzbQK;+}*ECabR%!M1UO{?Ux%`jZ`!*F8k0*cG~VC10*E zbDS_EbH%m@2Lch&0q3hKp}sd;adXqg5}_6bFI*XbBF^^5Lu_^|#9}g`uavlC!l`)a z{wK$ny#*_QixaB=I!6vbP((`4v!M!Jm%zLjY@BMvF`C6P&1*fQ6(VKxC-GyclUOn-ZvJ$kP-o$?H6F+T$r zE-@W^LFb$#N{g3o8@|204()J$`)>+P>~Q=pgg#m1Ng-j4lr;VQx^% z^0eJ*8rSaqy9+_g|!KnL&Y- zGTxz=BAv=$4oA1>xQo0YL6IoGYI=379LzwZ2cSr zeGYPWFDhQ%TYIEa`K{dw>oCLt5?v~RPb1NQ-zPtyw$={_t1PUB=LyB9;2>2C-4v!5 z>(EzAc=aDv9c*qQkHNr!iGdfKxW=>XUrP~G5 zkP|jLz)R3DBxd-`m+|uPV0VL#vTl7IB@ed1tTJTiBWxxK#bNb)<&hA<*0PwRw5L8* zj*B6=3i?0z@4B|xzEi55kbc{g$PQzuTZ3WccEOL0Yc;fdie>E zsPW9EEZV0PCu_P0*u_C6f+QHGXws(&cvCAxdFUv&Fqng;`Pidr7R^E8{wutqOXuaU za@PX)kHm@Be7F7@3S3xmUA%eN+s8r2^*8jiWvDfJLnR6B^|UvjiZ)nh!cK!87R&FB zeEinv_8rLo&<50r)1NBFi-t9LH=+|>od@(g#Kl)MgFo!A4oVJk^DLCNH+Bu0bXC5yZb*6)3pXQ$@ zE55l4)^=yp{5aZ6^3S<+KvoaO%})LB=AS=f$Da&8gkAPW0M>iCoj~)~GvHl}4J+c@ z7j~gJI^$wleo$T!pLgQ&Nv6Ey3oz!~M3gS7qJ+&nVI^C<)!SkLv~ca{tgl&u<-d^> zn$)2K9z7m2_kT`7p!9o7buG=Jp>Yf7jZSa>y+3e#XR1q2~=Xegz!S7ZKer!x%y(m2~L9H zjqiaC(j(?`>4HoQQxvhNfy|Dx+*)SfOofF!<9kvL5 z)s+gk%R*_Hb9zF{Y)FMFK9wFr^GMF8@weZv3`CtfUBX)f+-zpXEoS9K8nGDrV-5L5 zM_q&SgO*UD2$ZXdcjNo|V4QGqiXdPm4@Bq`SQ~9MomuzEwZ80xJ{yuHP>DkRWi637}Zls7ivi z@XiM9yl^ros^BtjW~Dv40AVDug<@w-TsHM)Yg&|g#o=TA>ds`94v%%-7A~L{G!wmK zGKqMuEY~iyJ=e}Bu++}Im20>8-;=y=c#>p3hQwQ}APAgE3TnrDO&(7r^pw2ex(JfC zz4nQWKi}3D+FWIG2e)9{5hTvsR$Cu*M(TBgWHu;Eu4s%Q@j(GN_gR1UgPGN3w9Cj zi3g zsaBqntLJ0HYy^#8jeY(Q*B6s z0`FtsDSBPAQmxo4z|$KjwXph%T%{-gWN;R{dR%QHnb_w}tnLb>M$TQM>K&`5QcyL< zLq|EprU8_6=cQ{Ge#wZ80Yy_!|EJ1`pYa<)#MgiPom-&O>NLiVQy`;Mhk5dryMN~% z5~xF5>cUlVVj~c%&RsfN!V5leQm%R&1LX#Av_*2=YZ>sAggWs)w}CiDSEGd`B!JpK z0hpM(0l08FD@~`e>yej%0m!qRPdOywSY~~T=y1z+?9f?r;FigK;KPew0sIx1T|KW{ zE=h+xF5l{I>?@2iYa}P_#jUr6S|*UbfXhhoe+p%cwA0u59y8nQEYnP$m(PyQi+>-& ziH5T<&6Q2Sl1vh4y(oa{5}>h+?v+(*&&thSa|AeXM&I*M86a-T=Pi~#HaCUXg^Lnc zh3A=Zh3ME6$f4kn36#d!$d#M-RCaTEX_;!H%AXqo;-wGfX_7KYKTvVK0+<^b0~&Z* z6EA3AS2udkh?ZFm_o0KUU94zpcg;jXAp__dDMkt$-+_o+iWx%bnM%=Lb-!%xC}>bF zIrL@fPWgVbJd!mu+wFuF=7$3w0tGm|L(kzaJROYZ-6x~NR;?FDm}kQULFU5@yC6&K zAJ80*wFk1eEZ2VJh#6{wN~?3AC!>V~O)DE5#qKIr8zL4t<%XBc-#>Dk(ZKGX&6X}5YHsoRM13GoC9x7M4+n{4n{ z`uChi+N>J+o1>9LRU{+6y`0u9Ug6MDe$QS4B{{VBu~u}I+jVv;=ROm#&wu<#6z|ZB zn3hU3hWCLWi zT&u8%+2nv-HW>z(1}d*NKjst~j#~ZsmXR{$C&H+4HwTFn+5yy^7-;UKS7v*%X2Msn zwyK`$h_caN|6|1kKR}ZNBQ}tulFd*QLU=DtgUk2@F}yp7T#pDlx}>szI1*n!aYRHJ z{PPHc%`vq7e&2w7%OQbJE~j^r zO%l&(kq)j=%S;4S3ZCmm=$~};nEQf}*BqWlitf)W82rvt4sVNJgt6#XPwIs@$Eug? zygWS4vauGh4zv%tqBVLnY9tDsP|=D{;Q@TT2dI>>dH_pE*$1ub zW5pK+PcOVZjs8m851-;#+#`Li6h!LIl|~b<_F@J2RBp|kS{xhkZfH?5E4DS{ zKV%ia*v?}<)`

DjsR(-p7b1NZ_I*6B;G?4r+T?67kQIJ89ANa~I?<_~C%2R0uR3 ztpxTwK>=h9x_*qmoaziS>nckN|alU0FT%`*FIMsw4OuzEV4jzV~e9GX}VH zX<)hl9i~E_t+@3>Uy^@E0lJ}ooPH;^ynbs@&z5L$c3zbuA7>Rz^|t3P?dU`xbNYET zfg0lOt46~-ZPiX~)?A-k51QVMUgIMkwfFvV1E>ru1K*Oe8WD*pJgekN^GX2bmdv(a zRsiCoxpK7QXagc@ePBy3a@E}Py%Ec?3_LRKmynA#*1rAyi9mF1M_;`|>-zE-a5XQg z_;xZi58dgyO(otTI1_S9VVoe|SF?(JOnI4AXTe;7OWNw6?a&aDsyv#o03BsYg zbL%Ojg@x!=yAmS}=#Ru)2*HEVKhvo$AK{~NZxI^({YN%JptM3B7Hq)r&cBI^=>Fke zy<@2!uqh&csZk>0IO43iFTtYvkik!}$ZIJne_*jI>p6g*IAprBg#LxOrcSFwH;&w!2hsa zRD>mR#v&W(L8IiYMb!(%yIbAc-;BPOJ2t6;_07Eal;g7cm0ko>Hv=#l38{ z=@ZL%2<@-~Dk|bxF;Lq1sa*N{j|yO|g2VDjwvk35y*kV4G9+T%ydB@G+f|U3?+YB> zqX2;`F9asUARHw6ZJ(^gy2S<+Q&a^(G^slZ_ebD*G%lTfXlwU?Md2K$Hq!3j>_ z8;~1BGO=*JtT9rD4=z=0g>qqc{*y-(k%<|G-Ae)h8Ef8^(#AF%)v@}Bk;wdyb( zCt*%-?s#!foL3)kV1{BPdHjyki>y0n{YH#^W=!UaGWyJ}4&uUZXpRj|s>HF%{<~*6 zz{zvGEw(tyRXsHE(_jHD8EKVqlIBLs%m2*sF+4c=6;J1ls_DQgY6JMs$p)JARwk2j zPS-(pSDHyZ5rUDbB5^COe|ex4cSk7n*r;oy&%@HI`~Y|HLVxQI0bTry+*!0)qv>~- z;GompZ!JPJ*uIRp7;h&#XSVwh2Oy(4=?jn4*ZZ&T@x2TgKWHHrSoRGu*%~4)b)|1ui=gyDrgsy2|w7{acvh z^_XKTDEdJI$46XDb5Yx`bGTpN1n71Dz(9;R#6^^zJVTJ|E#wDv{_y5->aeXH1Uu z@&D*@7sy4j$k-=)h^TVSWdJbv9RU7)Fd}?VzUe@DFg?&_PH(t%t-{PC%f$EL3nYX@wq>Ep0iiEUkc4A7o5=RF58+e5|VQ&a*T0uOBAJ47NwnZ zS)G!4p7mhvmrSKoT1AGTbF>^CIpqAD=lt=$-{*bb@B6%;%lG@{af1R0`V@Tt0D;5y z4?!Y*Y3M@89EtvR5((IStRGka+->*L$sb47<|&(^QbH5=rX1xb#{!lxQ4mYz9OCbb z4TfAZ$DJ0m!za;7OgKCgNDUULQE1ZUKu4gUlHf<0fICXm z`m@9kTRlc&7?Cm;Ih6jv$>wuGuG`*S8OBC2ZhA+8$a~`dB+8GrFH=T~qgScR8oMK$ zVnf5#dF`FO^}kJDD0(zyE20ZTmoM)mntW-$vXQtw<>HPXHF3OnCX<;Y6$`91e251a zz^9SAYE@T*LZQ$JtI}^C%bZ=#_JINa7?742RgBD@!QY#ZY58ktQ<;`&!>t5}hiB;O z>$|f#oXnPD6;ySM^*uWeg(Vp<4wRQG?XM9d+ZFrEac(=GG=HAe?tusdf(%zYa&^Ky zvs`blDGY{Yfb|x=jSq;z*kr-B(l^-gYBLkHGLvNVV9vWhd!IC--SqlcftLp+- zYh;t{pXX){${dw5ydxHfq_=QM+c)>DIbFLOIQy~2S3I^+EXN?%%f16oOT&U3wOS}s z@a67)37934oZRQ$aM901BC&owuZ*&l_#YbwfnUX$&b+X6YG9TCZGvIT>6ez6=cfu^ zUgLk79_tl*+%GJ|i)(5eo~7zR0Ij=kS=CSWo8mJD`)eZy2gv72i~IQnC=sZN!*d5D zVtZ?@R7}5mhJ-~3#xdaAYN$4^&*E_X1d`JUG(+XOHxitQ6pcAm(DbA#*aH0cK(*q9P>jK?JG0 z4$Z?igQBC?p+ z%0vrXsivZH5txV0*+y|*H1!llyPf*fAjPZx65{2p0v`#-z{EI9(vcS5;(EC;WB>hc k*ygFs*|rR+0)@tdk+zi=q+Z2U$QKScn}YoB`0=v-1u%4dCIA2c literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic23.png b/src/keepass2android/Resources/drawable-hdpi/ic23.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4744f9803be786f7f03ec1d5caf71053618a78 GIT binary patch literal 4045 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

i+2@dKQ&))0P|~7RRQo@ChWdSk|(KJEArQt zsnQ2@+2Vble4t&7M2?t@zN=SAu}1j*gDb=!7=i0OBg{wmJ=k zGB1z@67^5P9h>243u&<&$)}~70v2AbL6~Q9awd)jIkFB)(f{)Z9XmTbv6Q_gch2Pz z3#VN(g{y-FO?gX%{GA>k!{$Ad`FjGaYcuIi*)=!J`#baDC;8`_JRY3Yss~y?;`Iwj zskr`Q6h;np@2xxN)19FB!m9IN%%f-E_TZhMssMox95Hto+~5dH3=`xFQz*2V6K1;y zA6g_+bBfLsB^9C49vmJB#Jo7;1IN#^Nt&@~OZ9!Qr`_zNmDH;C(-{BvOffRGMKj2m zI$%>fK=HjI`I$xj&=x`NSDjU)j}N+tySwArl#0{UH*U;<+GfEo-YaRW`+9o*aW60F z&6zxJijgKwPxn&wl9C%+fMd9Sap18tH?PH;FWVt*N$?Z4=lg(aVR(E(6hT5{k>owC zr`9^WQhJA@=O!kFPU`ukTPw@TP6l1RlviC#&C`xo{GxdPL~Q)^*D`RodKGoM?BMYr zcQE$757!U=H@$GQL;qV>4Q9T?D*5QE>SH zt0<aYvTJ+dVqFg=1zb&k~r-piQNmS@9~+&#wZU@4b^(TVJ1|A0M&_S+{OYNL-wc zd~99=bo1s3a%`*~Y80FdTFc(l-Z5&ki)s>Y%m(0vJNsq#T?gAKu4ZqCT;2{#?Y&n| z5);80M8*$OdS1L@D3sh56b`#Y6*&KidC_9M*Y?lY1(>UvZQ_xUD8XqP27?j8<1G&H zk%~R*KXZy+=cj1qu`z|V+x-o8VVDzt@xcNBg^dhW=VbeyRs{A^rFNX7Cwr?WJ{A$a z6u-ZYJUdPJYh^(@9{fmT?x)evza4&b<;s%uN7o7E8`ZK&)R1kJgA2QQd;v57Z!I0g zH44yX&b0(%s8{ytG~)41SyK=I)O{3^^KgUa?p3{)w{6`DKa_WLSmQUIN&tDEZr2Nb zS^c@fbpErhH4`v_vFKB~JBme*a literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic24.png b/src/keepass2android/Resources/drawable-hdpi/ic24.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2de8c7e55d7d80ca54e3c687932f3e94ecbfd1 GIT binary patch literal 4447 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic25.png b/src/keepass2android/Resources/drawable-hdpi/ic25.png new file mode 100644 index 0000000000000000000000000000000000000000..23365a12a65878b1d595a0941025b97cdf2b2fb6 GIT binary patch literal 4733 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 L;Et!;shR%+fv)5t literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic26.png b/src/keepass2android/Resources/drawable-hdpi/ic26.png new file mode 100644 index 0000000000000000000000000000000000000000..caee87ba500eb382826abe314aa82d1f5621ce6a GIT binary patch literal 2378 zcmYjTYgAL$5XMESH_MUz(qrktc!vDX{-E|r3Dt2hJ>a$s8``Ef@^o3XvVJH zQ#xbc%z5n+xPVg(cPW);L5DnGI(zrgb!>!oE$QOLi+cdi&R&}>edo4qgnfQ|z7OQ% z1DR#G_A9)8)84db3-B?~iE$3s0uPr}M!Ms;+`OvZ1{QDM!yljC>TP%#i%f*cX3@Z; zb)e+M-TU`{+?t;^7E(}nEx7c}+(}WQx=9qDsVT2h)s8&QF?d|`G0w$MSbbHI6~|mW zV%ZJB6)xIE@_EiaHB(QPLDbomCgEv0sz31pBAAv{LLE`764HsIE_z6` zFPwGE*&Xh)ugsG7ygF!r^~mCSC?J5Ks;}RqYH#oGxGDfBLUFXwX0zD(`kX>1S>ads zA+hE<-3V*LH_I^04SmGnykRwSTbh?3i?tqm)O}*(Au___4?)V7;+6dHqESlsy|x^h zo7-SH*jInO9mKO+y#S9Hmaf@Us=Z(gwaL=l^Qt1pSVe`nZIO1vM;=`Gygg3f5aJow zgLi>0SC=sN#)N+!^#Mulg|O*X!0j3FzJQ88${MEWt#lJ{cGi&tQE50h*3cXHTE;3PU|(LxNjrxkfA0 zA(&>}FW3e(2NV^Wr5DxIf?lpRbp zIfHO@`a`icGFo%w3ksU$d7#yMX=Ul1?!WGxZF!h9_=uX!l*IQd3(hZ+5Bj!DsNThz zj#fD89>pkENiVOtB*&s5_Co5=#pnIx_7>h&y0#{I?y7g-M$TbhU37JdPb@usLReC1 z9UDnS@5X1k#ug8~e5^FmPRX^N4gGhlp#%aU!J+2<7A_M)ja`TsP>=G|7dp#U`U;*} z3UMOQCbu}3;&X3pR1`LrG4!RcXPj^JzV%KUF!|X=%uj8~JIsbInggC)k%S)sxK*r} zGR)h@6;pGED)Y1ciTg^=&U<^;_qq|2s@E9g6VTn36Eor!mzsU#!7UW5BLd`NiuU&q z27>{ySmca|0pvaTvl-*~tsHuILmE}*Fm$nf>>XF*SKsV&slSB)Wc072B9P`4_6m1lp}OGLL56#dLH}f#lpMCh-OP5s7 z7hk_N1W&=IZR%~YhA}LIK?rq}-i@kE=AfO13cZl8Xl`$qTQ8ni2JU{{h1|IX21a_C zCO88hB~+!J?R0Hz5hcx`16Hy{RU@ZVVexy5e9s5N6k&(JSh-urVK^mw<#d*+?hRV2 zRIzruJqH^QtZha~Y_3hWCWdcNw)~LY;_JPgg*FJntDQ6BKY!4cZN(F6%RPygf0NE5 zm6eq6hZ(=QW1R1!w5Bp^+1JZfmkFAGv!=pmcva0kR!k@V#-|Ho?*?5*-+38ENT=GB z_N*unlu8EtiKD6zt`7vmaC^@>aA%*{I4~g6!JEny;0IMUn*otv#tFs6S&fIt{_Lz) zefQMZz+am?Y$)!nA1ku6vkk7k&9${Z0WTaKGC$Es2z!5BeiHEu=Wg`luq7Z; zH~t5W{-{eiJN8R${?_s)#rTz7KXgjhW`8hg{$vS)&bV0%0EUi6qg5042rbqBJK_LL X#fgpm>U$*gGXx}U-X4E7R#NdlH`d@0 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic27.png b/src/keepass2android/Resources/drawable-hdpi/ic27.png new file mode 100644 index 0000000000000000000000000000000000000000..20cd06b21153ab0f980cfda94bba7cca1af0fde2 GIT binary patch literal 3021 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic28.png b/src/keepass2android/Resources/drawable-hdpi/ic28.png new file mode 100644 index 0000000000000000000000000000000000000000..004b077fca90c3c242696e3d8ae5a059916c95db GIT binary patch literal 3341 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 S9M!63V3XIj4L3cw$^QrX+VgM# literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic30.png b/src/keepass2android/Resources/drawable-hdpi/ic30.png new file mode 100644 index 0000000000000000000000000000000000000000..aad1041b65d8e1330c33a4f4894c63931079f3b3 GIT binary patch literal 3180 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic31.png b/src/keepass2android/Resources/drawable-hdpi/ic31.png new file mode 100644 index 0000000000000000000000000000000000000000..05e15987033da39ae6959432bda693fc23f6dc40 GIT binary patch literal 3369 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 A&;S4c literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic33.png b/src/keepass2android/Resources/drawable-hdpi/ic33.png new file mode 100644 index 0000000000000000000000000000000000000000..d741485f3757794f1d48586fc8e9d441c0ab71a4 GIT binary patch literal 3171 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 Z_%S!h_VTTDCfY3l2-p_nchd*X{SVuck17BF literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic34.png b/src/keepass2android/Resources/drawable-hdpi/ic34.png new file mode 100644 index 0000000000000000000000000000000000000000..2bf463be3328f1afd8577f0f87b7bc4e2e6bcf7b GIT binary patch literal 2897 zcmYLLdpMM78-L%KF;2r^q#5TNYmIFf5k`ho&ZfxHT4u(fuSJB`NX(4U$RTW04mqr4 zQ>i4i+GJ)JA`{u1D#r{Wqa{M@9C#R=O48qERe>ubclCn~XE1&fod&LfwSH7OJ>=`cxCz|WmdMG>l;<=xRehZwLE* zN5}q|?lOC``Xzu2n9=rqchcYgt;X|4z0|q6i$3fQYTqc2ner>?;o|&g5G`^2zT~g) zfwR$La&k+s)BkeTqMfkR|=cUD=ND9 z9UYMf6!yp|2B6C-AiUWQ(pOeK7p*RRiB2uo;gpnE*}ldsvrD6434np(ig4DRnQZ)J zl((_+l`CG`-Sc8_25SVAy=AJh^f5TH}IgWfAm>=-gtMJgeuK3C*sw}X3edwQtos; z-PKv$Ztsj95DI7NBA`QvW8+j${MDGe1qQrpXgCPh+DMBZZCYJspNCPhW%I3kSa)hJ zT{BB^lt@6`KPOf>1%cWKc?^5uk94LRQx2DgX#2 zOLRcux3z2QP&5j%H`eE^1~EZR7p2v%1n@Vh-TdzT?W<#gdk9J(XdQUs1S0SsGD(2& zbhS_3g!Rko;7aWhWiqy{_}CEEF2u((8rMnD9pf*d)K9J2Ct&>3n)!lXw5oq_hV{1% z-tMrgh9WXNJXZG!B9pDD_+6w@71{|U{uTOK;^oXtz)dfbYwV@%1K35&{7Vp-dyIMs zY(HMBu4TmiUfMgy6b-!>bG_OYwZi}OEIta(7FXx!djA8OT970kWp6FZv%8loexs&57f_%kU48|Xvvtsf=3?UOGS zUzi&V*{)_TE)KQEc+--{%+6VjEIBKg`C#qgsn;ozX3fbLb=h%~kf z4D_tU?wy^SY{e}t%j1TIHXTX_W%1bx>94B4LfJ;Uo9AHS5lz5M<7}ehCA$%b?D*k+xuej)O~7Z zfzG8sYwKNBZf?fN0|z{iW@hK8BV#aI6(7e&rUWbqU|=gNQ`xv;1$AQ0>&mp}-78-g zf8_4-HX=rhG%hLE*2yE<7OVrRl-yCNL5&PHU6BkZuK=n( zCsFasxu{=__K{(cif-I^p`@-Zk1t8SC(S+Ba|91@@bO2XGAlwYs+LMa^48yJ@@gXF zb=L>jL(FZqw_Ww^#f@bv-7U<}0jWOB`1oQS*$WT9kW#Iurpv0H1*?tEa$K)H4&VJ# zu~n2&try$Qh^((s4g!?po9pw;=qsiM!dDa@AEA;~NhP=MLZHF{478P55fAN5ykXl^4>tnhcx4vF8L6^5{ID!RKWJ;HJ%viqGcUYeC zNU{iS3!!GN>R1?UbAn-m4S=P`AeO;sz;46CKfdq^War_kFLicyD$M;=1n(numKVz_ zk>i#D3!^UZ9RH@Z_kEADL*P(2M~J9U{by-a1Fl~?VYuge;R5<*eE}=7$`p0}{3H{i zCNpr@9lHIlG!>^&aC7tYtD?Bz+1~WAMFWca<_3Ibz7Eu2sn0H!4!(UmEm)F@h>$TCZK$;dvH;LsD6?ihV VyZZgZ<{eE8xE%3xy6;F$`8W4553T?J literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic35.png b/src/keepass2android/Resources/drawable-hdpi/ic35.png new file mode 100644 index 0000000000000000000000000000000000000000..f83e3dcc0cb131d0cb79e88fab7e427b99f89eda GIT binary patch literal 5622 zcmWlddpy(oAIHDD4_`JFw#X(r6fu-bF5BEv36;dDlaWhx6uL;cY(t|cLQyUor=oJQ z$~mc@Y>be(beGBup@g~Rvf1~y^T+4&d3^r)Jl>Dj`~7)-UhmH(f8Xtz>TA^j0MOjw z?Xg$2QvMrQv}!&8U&>G|$SC@5IsnwP*`qFhSM7;sJcG{ci-|mQF7#9cKo5@ziy-ef z5gHY-HzG9rd|Z2kGXUsh?(m=oB=m(TAc!jRM*}cyX`Vh1O7JSym=0Gbq@E4Bs>VRO zRyX}6J9g1HJ$I4Za$~jA&P8pbbV;n_TxVQ~d)FPEJ)!9GOdh%95`~jcj+T^r1SDE| z+3j~H?QYKgRQN9Wf603nckjH{_wU(~(PNEE>&zrvOIWj8wckIrwQv-w5{b%0Zewdy9E)WE8LsDaLF=`lP`zCaulQ$U8(LLmO9N^b-Pe-vN1Y z%sY`dcA{@H$2RI}1_DKbPe+iIoJmU-5N7mdI-8cEyDV=VPdx8vbM()Sp#b?534~CC z5Cc3#Xxl?xSXr7agb~sh=kc0Nj4m3cc z0G?@vJM_Q!3BkjM$|n*5)25yYsagC|EFI+JS3a~+DCciVA*vTAM37>uP-->{l)xte z`KN?QP_ig(duXoB)3hA6fz~f_b0eg*VY{r1T4_)W8*JO!X06lH)2(H)SX-<{mJIgy z5GE`>`XmBNuE@tz(oZHY&y`6(Kjku9_4M>aFEt+!bvJJl3Y$)L2!+Tk>O~#|)*gt| z92pLOQ_Zl(Lsa9{0VO(O^adRcB<2+$nzQk@U~SOc#YT@=?X;Sy13V0p^@!Yp@VT!L zFrhHfh)S~ceF!1mMWsnABxzU)Q%n!(AxI?CwAxx{%5VuGW%`yaMFy;EL2tRbZVVgG z6MZT&N(v-*HX$3uG|&eEefV?ePJl^2Hg1)R_7WA7KtFDB)Z)yNQyPzlO}l;DM9Zvyav(QE(l*+`;F*`w2@VUtCbDvA0W?KG_ds{)-IuH-z6k18xX~j7?h1x%0^ynpk%*yn2i;*;-?^c8?2vSxma6VoPYwbOB^s$YB z9Q*DRU|mPrNW#&*VHp=L-z45jFM55sT97-8=%Uh0Z4pQEv+|`a4@d*=nmRk%$tEW2 z;q!nQG1)U-j|Ny@^Z&krxk0d3o!bn&Lhvg50s^w>hjouiyK{tNm~90YiK*9IV0Y=~ z;e^3xn*7rzZGr{*&Zl5}QDKJkbw`YF)r1qm%E}%=72vB(RuXd4&EifnT++9y!I1bJhCtv%B{fAM(_Vw%y3)hmy!(O=%1*f$FvGju zq&^FXZ7uMA{6>TJtKZeMcnyUmaPpca7FJApy15R+W~WZ-py_{QT`U^{Rq3sCiq$yESr7x+c2^+27S^p zbBMk)Xv;s9ym*-{ozy^c79`~5x*$UTicWZfT&m%3u0cV21et93rbCZdbD;r+CF|~W zjveiq=RSY_asgVA|24bfWMZs=$geB`^+g@}v{nJy3*mhT81p_%9)X4VGV%t1un!VE z#@!80D5cGZu-LMBr(B%4SR zky%0B(Jz#caz*~tkL#K`3skK$hKt*T-VBH2)nj-qLvJKguIY;gLsHyqHdL=iycd$s zzl8kljBh(cK)8F&DsHUqMSy}JLfH$sX7vJXgSMV3yKXbWsG>9#j{qC`Cn zrJY!3$&>!rDZKltoYZ3?!ftlG_5&6468-UIHa^3a{Qf1x+iE>a_1@iyz5U6NI4MZL zMZ2#6dUukNQh9lqI2U6C62JPMA;4L_q6$}m+S=ccT0z2Eu!%RXW7;A^J-3j8LUo80 ztBwpaV37%oxB6p_c8twpbodjXg*J%aYJmr5ob{|kot0dI63E)??{yuRUEODpn~%^drhGQjwTPQf+e z#q?$m-j!{EMTx334*P(cF0rnQuV8XQY%+JX+ay8L`a$A2%29Jzr;Aem^$097=(k9J zy;Wmsx_Hf>fvL_&aQAP#TLNZ^jbdrKRNCFm9jNb|p2DQHNxH!jF_q}iQbZiSuC%EF zT#QZ4H6{(>;^HV+ELOv99Bvmh1*&ki!1}uOEaR7g6XzvF_GF(p= zvbkATq(fN(FgJ2z)$LFO<_(q6KC@y)xmyI;$l`1e57J}6q>z4VnL;ikTQxWG$Q|9} z&CQ);Bp7SNDBd1KD_~>B{398A!;$}#1fL+Jz{fL5)D-x-ZVhqUn~Jdw+B87Az-qPg zV&I=`G*^#U{=MV*r|;^gkH3nwmBBvG@siN@nf)os&e+kVbDS*af5CXcVe685GBROq%#ptXQVU2tWn^lkvJB~0G(y1#bur%tMvqKfntw0$J#{^@ zCm+aA>v@fz7t`j+o0+T#hbpaQoP~r7JSglmmDn1%oVjTv^2}^(_qZ&zGIruWZCAG( z5kQNLvGaYq8Kh+@!ir>7cLQ~HnZ52DFW5);^0Qy;(X_FJDXKDYd9G!uHHWKAlK<*_ zs-bt4>X7)WXCv=DhP_C^3((IHWEMYB81Xm1q@?X}MUcCFi2Gs2vw8hqZw1Dp&*%^@4m7S53U}hM{VDJ_v=7BO zT-O(g(ClcAA5*DN!Y8U(luXT^;glqnoqmJ+v}x5BQc#fUZh9Hw2csU&#=n2OW@NEN zwxDM$s-%j+_4UzUlTc}a;YW`!*a>s*N2wsGK>^ow@L}NCaJVj(M|h*FXpzwZ3#4B@ z>48(+knn^HkQhpqFL0H=COU$7dE5Onl02Kp7^Pbi53hus{Yjncat2jz)O}3SzYdN; z8}(LJrpxHMy}{CO%neYuKCdue?MpiB;-ZzmlSWaZBw3+uxt4qiq}aKCL*z@CVN_-{J=@uk%L{{H^p7~7my+(mbv#nnb!`gm);Go-~fyV~#+|arU44h(dg)4m}ItNTX{7P9(1>~Y({8Gb9#b+i*q5T z3~+D&mYxZl>KxfQ1Mjjw*&jKevnJ9(elK7ma>wE@$F-LD-A@+tsYT0ZjzkW(JHK|nk>%~VfyW}UheEBgL()*6sB&w*Z`C6wt zJ<#~^t?>8x{NjUniaT>P?8Z(TAuBH`BH}u0t#bfhjGLWw3!rwAwe6JN=2MYXifOHhc)zo(qKP7m0dCbi~&jASrEAO3a3@nDem z9Erct@;;AjWoAZheyJ6GFc!#q3keCyGTCc;VsK0Tl;p)t!Ji**UFmV2(fhA4z)E3s z%hOsgBMvU6hEks}lgjq=f`7p;d#5Eb2vQi zxY6bn!g#zX!r0b{a>>RC!+WglLMe8(07sp#jhV~5dT)bBRLCWEl{w-J zuO+MuZl$Ox06QjY!qCf(kpTuAdjyzoibNaj@I;5k?O==#QAHW{-NYc)jvaxY3+VfA zT%r5yyh%T_*N^~+2Oj+^U}_s@G1{5<#YNkRcRce=QUv+d4;pVj$^YR{JV!l5A z5<4^8|D3}JTAZ}}I zm>h$ri8VDf8Cg+NiDm7Li~GiOC~1%3pUueP<~DJx{KtOAxNcC%&RuX@Gya-oMDz&! zuVt$q_YlEKXu_E(?H*CI@XcjSXPeH(P7#AdXyo0!(=Pk<-I&uI6Jp!@`4&a7q%3C3 zKk74DGf+W^2y+jH1R0Pax==7Mf<=U_L2ub4>TbbWq@ai?DG<`-|5Igb&Se&T~X|V`bHy4ziVLlWckVG+NsThSt>BjCNGB)pXZLwV z{g+m@s--Hi-?#7a5sVkLDiwY<(1E?SHanZJ$ewS^A@u}cPQ(Ed2;C?3G@J~U-x(8o zLAUUFB;{X9=m6qwl|3`X+Q2pTvUJAN742t=;7Ek^>n%Ir;3o;K749x=)#tJRWMb1JNV zL0FZ!xF}b+kqvd3SW)pp2yxAt4Mgz?71P)|20wBCN{7RjqA?&mh_%Q_Svj}cv{=v zdvqh^YM#LxjY{pO8p2}FeL!;7VCsmlwK4FshZ)34YSMAtH_PE^SN~wQer0*KlNcup zwMUU32S~2U$X@;o*1h_hRqSY)&KN~g^DHByY_-iTt;zV*NXKAu{#K@u3m=0kLpWJm z5huSqgU08+uePc=?6M&1D(!fxatT_e9I9N-!ZNvVB>wp6Tf6r9Y&`Sw12*LJYX8-J z9)1QtVYx%0?W3f z_IpL84M2)nG)8Ow@!>CGN!^xaFJQ<@jebZ2ut?E~5yVPAs5l1crCd zq`Q(mJ{td1zNLlk_Q#DZY5TZ9_ws{|hpUkZ2(Y=g_ zgU^^E1QI2RwM_N&sh^R*l7LKoJf}GuonCI^%~MTy4kUqNj4+ z9av@g;zs9qBlq=8Uir>i_c)j;ZkJ84OKLrYY-fakqgh=2A}77##;u~-Jc_-5V9K9w zQ%p^9A+AKQG_Pz)i?NzKoFpG=f0O}|tiB?jV`?pcUh}Xz&2=t|?hoE?Qkkf31VxCx zs_8wKcGsz;d}!`aPxv%x?JeGI89I|o(~GK4zgqVCj0=v&f&m`WQ2LKTr&86&EwIDW K*W;lZBlZ6wsY?F< literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic36.png b/src/keepass2android/Resources/drawable-hdpi/ic36.png new file mode 100644 index 0000000000000000000000000000000000000000..3393d26a3e4232b42f9fe75098219ef634266e3a GIT binary patch literal 3979 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic37.png b/src/keepass2android/Resources/drawable-hdpi/ic37.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba9bf298260521e661ef4cc56e312e65ff3d94a GIT binary patch literal 6344 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 SWQ1WR1ca`L2)rHu=lvgfcyg-% literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic39.png b/src/keepass2android/Resources/drawable-hdpi/ic39.png new file mode 100644 index 0000000000000000000000000000000000000000..7907787f3c4024060bd2827d95393cee3ff8bd39 GIT binary patch literal 5804 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic40.png b/src/keepass2android/Resources/drawable-hdpi/ic40.png new file mode 100644 index 0000000000000000000000000000000000000000..56b68ee3befebfb16f2d9aae64a3d1da75ad934a GIT binary patch literal 4526 zcmWkydpwivAAYunP3;jSY{b?v7v;8LjfMSp)iJeP*yXgj3KOp z0jY0s){(A9V7dOlolH)qYc$K3=FLVMQYmih)_FXOc(os@_(u^?2~VDxAO99S4lCq} zcBaj>JEEF2VATb!s0O|D1qwK!*cJWq0 zDdTJFJXnCwt!fdjI|f!9Rl93YYZSY^G|&Q9R(20((%OaXsgc$(est|a!450Al-68G zT&Us_BV~BQg_K^!s&lqf;6oz_yI~b%75SpvDl50CDL4DeT(?czuxP_MR$zFMYlJ;6*jaq3Xzws zjg3K&f+wzr7aI7N$0AWi+YC{LrUBeu0TvqrYF&GnXD)hiV29}jwnDFjr} zj5Cx5shKR#RK5V-Y(uN~&aHoibf5dpg!Q62VbdF-P^HwriID4YiyHNf@!GyY)2r0#pIuemoN6jdyU`FV8l_xGlEf|zLO{zg?LBq?ZC+hWkv z(tIzHUah%d-PXp^hsDkGzz3~_b#Ir4n5YEnShI7eHQ(i~Xp=tATA0nT{*SnCGv{ zlCAGNuGz|YT!7^8HOXDK2=T$7oz#rDD=G}mm3)7#3sIO+i0g7D&eb&s8yoi$yJEuE zM>9(^z}aQMTe_gdyU9~B(O%73$Ku!*EObp9TVVUlF>K-N#78C^1B*sXS-`q_P)3d4 z1SY**ZD|>D(B<-8R5a*z_@RlO*L!Nh zo4F*)c$Ae@I2Ye*OS-w88RtD3dl3~X zK7-QNH)aIN(A@tKpJ9(>yJDf_L2SX!ORW*JXM3BK81$FsBamu&=nf_#>5Z2_5kEOK zlcCPVV}s{sKj*;RbQK8V1xbLUDK?&y02+cYJeB@7zaX8SCEjsULdqzI9;Ieyh>tP2*-V z@oEy8s0OrLTuVdIOA7t1nZGyKF^a52)fMZYJW~vrmzzKev*D8*5=lfEU@vR$gjw33 zy|`kgg3MZ#QKAWQ@(gV3!paaLa!4e%`m}%~4S!AcsAOD~OiH5rs#LZ>EiNB+w1lSsdbXjW_6Q{E95_`;L12!wWmOb>Ez{x7p zz`a#x;kXq(82{t;n>F^$ndIbWE@ z@amc1t~uS3A7p;Vm#0hHIl{5aklwRaD6jmNH_!TlDWB1Y9t)qzVSCqS#Y3+{1FNFs z5ieAUIyJW%{u@O__ALTjX{iV4cY&eDXv7+**tEu9IyHn5jp+vA=J1hFDQSWvLw~;Q z1eFR0XJX&fAJ@aqK7bA!=93+gU~lQvEJZYicM?t;94j?vpX>JOg-MJ_zBwSef@t)Y zg3~}6Y6?btrw43nVw}k{;&j|tFC0ecimq=vhx_<316zaCN+uHTKl){aGtKY(5H0`u zS=V*lqdlnz7O=aeHhBbxi+N`q^Cu+zPNo+BlBT~@VSv4t+-JI6beJ&GP=SZ=J=LeJ zp9L9m(%EFuqfQS9kL$wuEhvC*7BJS8eOmn*bm#}Xy==R#12 z5cJ2xeSY*|3DSqI-P(j|<(oiEcD9Nd=hfz3wjt2YB!q)0?Ee1S)S0>$%2|1VC|j7} zNSd=Tef_ws)qC0D?>bIGU5PI3+B)SJ`%p6~K)Us*yvVh(?d^2X*Qa+naXc1x<{}M3 zp5Vc2rL##R(7Lz6?#8!ulbrN8b{^O-#24M2DqPl8emX#kHo32O{v0@<)P@ORnL>Tk z)i0jo!`9C7W-l5I`QdD13(^q z?7bI9#mMA1T{F*`9U+58Am7smxQ}8S^NNz z<9v--0(7P%nTSP-i8aU6Ys)a>){PPyinr_RfmK#f(|5M$a*S6Qko0u?9jDHW__3i7) z=!OFNWmSojM5Ia7B}TyQ>rO1|{GxXWXiCe?(OgWd8fC @ zDtcArxdz{V8?kQOdEp;OPcI`a&8PD67*;edo?tyCsF)b$U|D;25oeGjOf3i(8L}3D z)u2)gFYdHB%qEq^hAqfQ;HDWbZn3zB)Xiip)rt$3B73X0KQpLa#$Ev+)v67tsc{X; z`&~EO5%r>@hn7p*lbj%#z^9=%U~2$qQplWcNoXux+L zp7WYR5H>WR0`ngbJ!&HI*&||OlqG#gb-#Jw`y z*Ja!7TRGpiR+M@A@CZ^n2DOx-253@ildswO`^zaylj$~)xBzIk;a^^uH!B$%c{4fs zDU$2n`GhzLN3=~&q3>$6rVKjp_wmxY9Qp~Di&p(=8%TvT4vnjXn#~*Rh)U$7UvMOn zF?P$}6Wxo3`c>ATHK}1Uz!6WLZ1humSH6wm!;QsF$V?5854SY*{rFMOkDS**h0=>z z`dyb|8q}Nul+O8$N>eTT;iKky3p3Up*6n zJN>O0Kh!vnK6#=3d1?j)!Hwie@SLS-QBx~aQn%UKg}D3d&^N0Bl7~(CH5zXL!zr!O z<5WLHi{foUm(O-SX@}2CuedI*AO+|0!=k^nb&a#m+@TF(tIPS&`vmlR0#hbj1OijIO z!C&LSKwfsTune3Qo~93n&kVm~(rw0?XLQX1_VkzMo*1@t1zZ8 z6;*$3#0|yk@tG@U=hQbJEs*SZ*;DsM!`0-}c6DeA{mWufI?dc&d&9^jTewlLXcLlp z%Ks8tY0sP12Mb+!^9y78z2O+klhx6o1CvR*4c7%x;UV8Ef`WQj?rBs!(m(|8HO zxrfJkR?93g_g4^Ds7L6clt@f+Ldl~@_|K`Av)ZmB(J$o+QLm%$al=-go-$lmGy2d4 iK%QxQk`1U4ftG`@e>S@RZ$KHi0FHYP?RmVLe&zqk^@5rJ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic41.png b/src/keepass2android/Resources/drawable-hdpi/ic41.png new file mode 100644 index 0000000000000000000000000000000000000000..9a35223934f9cb1609d43f8f38cb244b8cd52554 GIT binary patch literal 2717 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic42.png b/src/keepass2android/Resources/drawable-hdpi/ic42.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd8072697df9912753ff7066a98140ac0f68983 GIT binary patch literal 4185 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic43.png b/src/keepass2android/Resources/drawable-hdpi/ic43.png new file mode 100644 index 0000000000000000000000000000000000000000..906608fbaea9af474321268e7ffa71d2d9fe9993 GIT binary patch literal 2961 zcmY*bX;4$y623`D!g3*D^#&B8Kv2;kECM2s1ld&xVkwR@a>EjrK|uxuMliW7F(@-4 zio&Q6lo3YpvFH6cr~8~bU0tX9>#w_r z8x>}1Y-mdwPx97eUQ+g; zubtZp&g%1Hk1rv_sJ7_~4&wp7WGW>O?5V!Kzwoxt-n*gitc+a^jm{qIw6?rIDQ~k_ z>EZin`5?{vl&U-_buKT9NL}wPBY}+;62%$XdUVzA6E~UAU^=t=`b`gU51_~|Jgs(9 z^+{#yMRK}7lZoLS)f6U-p}Zum>8SMR)CKj^8*X4r)V~w6(%%pi!wu5iz?Sd(WS<)> z-~QfGqXgK%>GwEOQ59B8ID_ODZrG6j!%CO@y9^UWs^q||0|vKZ8WY7IEi5Qdpp|PT zd!t41!^b>yi(if-MsMwG7$njWZ$9au{Sir6Ayo61GgSU`CvA6tt|KjZ;78HKLZ!QI zVQOK8%5f)~vefahJ{Q3!$RN~)#V@aJud%Nf=$EAScWOo+xrt6bk$U)N=?c}0e>li$ zrp_R^wSg@>L+7n1?JIF6zLHlnS!{BB0YxH%9Sd>s`tiB+_3hS7G- z!h#!#0sGBicJJR-QM>Z|r)FKcE!h-ZLDtyE=#_S(G)dSo!Q6cyGPZOm9kf|>5M1-! zU6AY&pOkfY@{0*+JEIq4U38$P+pz(6^RigfUF+Gj_@t=sHGjl9F)8luw4;Iu+maaj zNjC63xpvk~AsuGxCMX7kWyDB7dbGSl0*yvcNy!#`?j8KOn1P0u{K2Pp^VAP}Gr>^z zZ^0B@y#@PbtoV>E8!#V7s<6Dn^>MUY{c*G-mGkYI(T+^gc8P-b%iMz9`@vyDa=Q}a zxHm%(hGbcMXW`lCnR9gZochD7T<`-v1xy&aEKAWmD}riq2Gm3L+QsOtyNS?and;7> zb_1ao6R^8<#Mc5T&wkG2@JM{!6|B7j#gObVw-aP}i1pG&kGleGo_ahJMyVqPkBkzO zzNU1ccv^-Du!2_1Gp)&;8E(?d)Zwol{j3Td&!2MZgMeuP$G_Mn61@ATtc1+Co?0b9 z);Ra*>nHdkSy;h7G0tkdngBB&jU-Y>5)!mi#BIT-s5U#U4kNhyCf%D5zMuUb(}i4r zAnTYG15UJ2r++~xaA0BX z%aU8S5dQOcf!wPcvs*Qd&YR4xVTP*B$m<-mHO{o+hZ|`I+iGZkKTm+QQ-sHxmxFrP z6vk16Cw9RBN_t0^j4r$1DO1Qf^ zdEDwCLC~^(rL4QJlU`HPP2Y2)i+=4&yJmuAqA-Og-u54rtYJ2y?mFk5WB>=P&9nk| zbaB)NtK~SBLCn#Q0>_wQcZu99@A8E##OmQd+p9^Xz0Cjg1z8!5tJ=K5jpUxzE!w!& z?59BZ>N37p<8|jEf6nRUMjM0TeQx*$@7Va+;$mrwhghB>-0pU9`pwg5R=TqQFAk^Z z-XI~X996nhnQ%K*AMbN~xRrQI*W^S|xURDo`BWuCfyeT^o*x6O7w643he}FCMHNWV z&p#vP;tJsdL*r*3hao61CkfVmE<)73JJOW6Wt4s8K_BMB&i3kKrgyQYAR9=!mkF;1 zZW};aUkLK*Kq}2iexqb6Az^C@6UWfQU~f?JQ+X3)XSTj1ja*FB<-vPi89 zcObq_!NKMK+ElbDNDq(lKr^_LePfFxQ8=R$`QZnn2q&eeFijz4jTqY%V~Zg* zU`aj?IvStf3IT@n6#>GP){<3L7pqU3_?7t9B?KHkg{WWqaJ_#spvD{Pk$-wdN3_#A z*ra3fFQ(TxZ1ezpe$<-z{Y_@

j>p#u1!jfj{?x-lZs|Hj~+}B%gC<*9BLmv-Q`8 z^wLj&<2J&|W%)}@Hx2Z$$1dXdatuA5~kJ-gpwb7A2z;bn&O zYAd~^MZyTHJ}M}pQc?~i?}lH5TvEBXQvd_1$%6_Ax}otGCV7h~DQ50DC@vy$#Hph= zyhEbXQT#vUH4HkjzP^mGra5{ku`AA14r~k&aZwa_bPb~g3P_JTSrY3(LEUj)8+n~; zxumHhJlkF$kA!DIQmEv)Fab~%xC~(KABN^ms^_LzvKg?xwb0KBA{Mi^^z~5#?Z}n{ zvX3Rf#Lm*`n(RT)F;MTX$z8L^+RET3g*p*S$Om7}_owMJ6w<*!2Fd$~N@(LasAh(F z;`W6y#I>l7)Tvrv!G!YiW1h?=4^Q15K2nzIbQI8&!~g*-`3V>ud02~>uFGbSh$c2F zs#U9HyHegQGgJ1hp@X9YS7R>VNyr61G3&~V%u*QP?fDr-X#NI&P>SN-AiqL8!|yBg z>Dd|p^wh9~hnf<{Geu8QQDjac)|wh|)5IH@e@*pKDNT*+gu+7WcGANXw!3%u)&w4I zW}R@+fSaasX@ZD`^veqb$r!G?dY}@;xfBVom`zrp{P1R6qRP~y@j6Tce8(Mp_CT4s@rySUmvlx6_=uha)87U#TSl8uO zNFXI286(<+7V|v^r!Z;<&2uG}ed%^Qi@m}@d_Eme>8H-Ojnr+`(` zyrDo$-EZs-n;S>Xs=Ulx85OEha}zIGQ}gn{5`TqZRJs6ZTU=OlQAn3$a^&fG|D|#m zWi3uD#7nPcJm-(RnIE7t+Dp%hbW>)wBp7)zADNZrFYZlq}zOSWsb{~PjnHdY=?*wgXD993#{V`P*SD?4GUVTqm=hzI9Cl8eq#r> zu+t#YPjz3_Fx&^m??&OQ+&5;5h1f0{dMtN=RK9zYaP<<4XZ!Wl^(wS>{VXTUSoV

>gE4}u3#`gNaaf=ADU)A_-E;>< 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 VaxiKaP5lc2eD?)-HF|_+{1=;G*u($; literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic45.png b/src/keepass2android/Resources/drawable-hdpi/ic45.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4497d5efbf2f24e1ec4337d09f4d0d08b22529 GIT binary patch literal 3640 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic46.png b/src/keepass2android/Resources/drawable-hdpi/ic46.png new file mode 100644 index 0000000000000000000000000000000000000000..079f8fc59e72f60a9fd0685a4e92421f333b2acd GIT binary patch literal 3829 zcmZWsX;@R|w%*Ck0Az;*MaUK;L1y7f0ti%w1dy>5aU``Z1PD-v3RNnDKoTN>0x~FS zEO-cttw*WETU1Wvn2iCM!qBP(sx@E{u!;l~NFZdN^xpgL{`jWn`JQjB=UwZ4zqP)N zkBcOmZ8QS_fE*pQW4Cc-{yj_x#yJ72D>W{-jF3-40HC$k4`2Suc!smXx!HR%)3bAu zkEH=2{LGXzM)X(78EL!IlKFXG_oW2_fO%>3j*z{%zo+O?l&y>>0GO^WW*3G7kn<=2 zZlq=z_`fZc&6Hn6_L9&}<14roxeLwskB>>0=?+!O^a zpg(a|@Je<~u&aSsSF(T>Yf{9UK5;y>}nGvFod)8I)@$v@>y4QQObq6 zTxn;~>ibncrGm{NVh%FX`2|X(tHbhZ0;t!Z69s5@a z4u0Hr4(9WB&>X|@v|OD(EWIeD8GuVmua}b~6uQE@BVQ+))crIHRcAi8)@k(nHja27 zgjA|Xq1_?kcXvk;OyIcn&T;9lX)x? z6;>HYkcKS~V$Audhq|B6*<}@;&{akQ%vhQ{PBv63i7eBQEQg2w%Ts@qNfLO2yMI_S7eRUe`JPM?>d$%s)cvh_gIizZQRDmQAR+h{81Ze&H&)5>unA zgwz5(W&m9oc%YeK+bHR>vC$+5%E@G>w71W@D(?}iMHYPpFwJHG>BzFP#qP)j7(%15 zevWt)6z@rRq^hys+$#;)bAFTbj;P9j?-QWHkYQ}BujliERR6qbU*+B5B*bpQVj^Q? z_k|2zaynnT`kJUrs);m+-Vy!89hYsz94SuuWc?4cqnm;u^(jT$e=sXML7sYIvNVlTedVCyNO@R z0l}fXwW+hS6G;#ReC&Nv}QtaANl3XZP201YBS!k zW7tE2%Hgk#QHu@VZx-8Ow=tc7)Rb;FP#!O!Ayp_bTP2Vv5R=@c6_U6r&}D1^6$P)Z zF4O(f4Os88OSO*T>o^At`pU-Jk%_|_LelN4a}%7Y2L2fPXRJ|1=}XG zvFrBVc*$t07nE>p%yLDr@0MPu;mAZ4(fT#DR8I()@{|tt_L?l(`gn^q?6Q}Yh<<@| z(=GxfUf3@X=KVQ5lL0A;45`##yi%$0HN;P;1RvLRXFBC4jrpKCIf0_-vLE#~-=0UH z0kgRGy?um+Y*~|zGz%wgJt1+gE@F1z&+Al3KQv|S%t%j8OKs0y1(mm5*s%W?7dfZHi> z9NJV>nm1v6CX!chkX0mefZ_h>pp+V_@YK?uegfK#a7Vb^p9|kd_2T9kx{v8vq?sjS zZPiJc$@4D%IPSFQRezd9pg_}r8>bh?zOyw-VX<;ekEA%2C+w&Z?cDv{`@2 z&=u(BwEL)L3XD@CXI`omf{A9vmfk@IGSIDoxwW@2-A}Yqg!SS5C>@GKBfLou(0&O`>=w}EPpq-k#0jK6$)#YOiW>k)UOcPq}5vzi18*Cx9 z@U*;9c53iLb@JN9Oz7!W12B^wKW=^uq43-s9Qp^dUYf2KAAad1Svt3j*y)$%T$D4z zY+7)ku1|v>I|MqpWL*I4PG0LH?6oLbSpsQXPLKHVhB5&-Fo#yga(2qa*ig&*Js516 zX(Xia^7aOw?v3U2p!m`2P$i0-dvu4Srv28q)~{K3O3&hof8QR9V3VRFq#-e(mC55x zJ0W+mNchqP-mUDJDo zz=M4hVf{F22s!)<8WoMR-oS2So zqA8x8j`-#agN}4KA7I7LU!W^!iG})JjRkiJMN#YDj|jT}SH#eHh!-_#2^zV5^Wn3c zn)#4lRJh7esYt%DN`xP4Dnv_@=V0FN)~U(y8#0n7W_Z|)I4UnKz1ZLGudLiyW@!0m zH4cg*lpO1&?$okd&ht5D9`Z|-NEz@w5WkL)ZhFKVZ^HO|5m5>_J%ZJDr$v_<8$}zq z1qMCEw6Hxx%D6QD*>Dl_S-v@x$76p|S9)>Mnz_k)R^GV@G>@-&D(ZVfloy=Tbxy`|N1XU(=Faeu?p zJqz>ng}M2wc1(B;xKqLvIjsY`)}v_CfpW`3nh{*y1lz-Ot+WR_med=K4;p7U(S1)G zl_d!m2M0!>iSv%2GWvg?VrkY%PmUH9EEuKitToi}tOW{{akUlG7y`dqAIZ;-h=TNy zRhahi-m2~wxw1_vj~2)Sp=s9^)+<|GhDF~=hr!bUrT;_d8+HJG^aW}Ru;AGHt^R+V z>+)yZ5?ag&YQ6k?E{XzyDxu&S3n<4s9gSd?v z@Nd?bB&@^cy)a>d4f!Yj+$vuY3^6t%os9odRaub)yDI)I7`a?iYnoV4{Ca(Jie*db zBt5-X9ESSIQ-=qUAqSH;V+F?l1gOh|ldw(+4l(X~0V+qk-A5n_ZbjcOK5ey$jKkc^ zSHPCt?XWhN%W&9_${jI;D2SsMoj+v=+p;ycrD>*7py<46Zr$iQa>!YdIeL_-2e-M? zr1?VZd{%oS#+X5l_T0x_Z*X@ytP}#xsYyf0VWhIVUuLiDK`=+YC?@8Nc>Cn?U$a4q z+;j-|G2DLJ3Y*9GVwRDPvxGOUsEy#PC1p9|o%S5XMDy;I+B9Srv2#t1J-1-6FiEY} zMiXrjwU>))n>KP?KYJdKf1sk|^reuPJ?BC`PAr?8zH%2zVhc(w>k(>NN?KY??Q}+# zFO?VdjTK+3)j7nwJI;w?&U!Wmd-;S%d7EHKr=FB1GCOj$mb10-=B%KVwia$)MLnLk~4 zJt&I5e&Ql&WK%WCC|kE!Kz%L~Ki$>MY1t}c3^39z4e2BeuLV(ju!yV^^P*h;utAXMKe~S zzfKcra2&X4lF&lk9{jA3s(ab(PO#tLL1-Fe#JaCUm+xSsX5hX!HVtfXcn{h;S(1S zUOVOGap!MWV*-Jg-w?t8J5$Cr8*x}d%qmaUmcXBH7Tpu6YTTUTPa5d*Xz0+s;-^c3 zklXf;@_0vv!2X+<>v^9%&bGBO_JY)_$N9(|mU4?MY(GmbrvYEdwdhQ%uiWjXcKLk* zE6b1S^JoEOGxsp>W3S^ky!8{>1(;g0D{h<(H8Z;Ku<8C|qXtX#fvo@EUDAN`Ia#@G TKB3Oow*t}OaXW5?@{0chln%~g literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic47.png b/src/keepass2android/Resources/drawable-hdpi/ic47.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a65a759f6b3202b6449313dec0673f2895dc37 GIT binary patch literal 3383 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic48.png b/src/keepass2android/Resources/drawable-hdpi/ic48.png new file mode 100644 index 0000000000000000000000000000000000000000..31c8a7ede1efd153cd0b05663e59b1a23353c16c GIT binary patch literal 4789 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 Mj=kF-_|eb(9}?dAKL7v# literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic49.png b/src/keepass2android/Resources/drawable-hdpi/ic49.png new file mode 100644 index 0000000000000000000000000000000000000000..f7314b3494168b156959a0fe7f27f124b9f63cb8 GIT binary patch literal 3806 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 sM)5HVxDhezSP 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 VczG)P5mM~~;UN*hw*&dP{|Ap!eK7z4 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic52.png b/src/keepass2android/Resources/drawable-hdpi/ic52.png new file mode 100644 index 0000000000000000000000000000000000000000..4d42a7e3dea5c31fd59f70a51c902a0ca10c8b81 GIT binary patch literal 2804 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 A@c;k- literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic54.png b/src/keepass2android/Resources/drawable-hdpi/ic54.png new file mode 100644 index 0000000000000000000000000000000000000000..3df00d2c4c0e6d21c47955cf9364af44a66dfa8a GIT binary patch literal 2367 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic56.png b/src/keepass2android/Resources/drawable-hdpi/ic56.png new file mode 100644 index 0000000000000000000000000000000000000000..16f440ddade625eb415d4d289fef9c8698d021b4 GIT binary patch literal 4069 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 DMyz!C literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic60.png b/src/keepass2android/Resources/drawable-hdpi/ic60.png new file mode 100644 index 0000000000000000000000000000000000000000..74f8aea85af4f556ca3cf4a4581a070340296a14 GIT binary patch literal 5001 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 U#G`mr_wNDxeS%kCUWJJM5AL+rd;kCd literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic62.png b/src/keepass2android/Resources/drawable-hdpi/ic62.png new file mode 100644 index 0000000000000000000000000000000000000000..1038b74073c4d7570048998dabcf2646e12d3204 GIT binary patch literal 2442 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 AUjP6A literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic64.png b/src/keepass2android/Resources/drawable-hdpi/ic64.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f573863d0ceef97415dd0dd54cc0eda7b569c3 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPi2Rk>Hj6v?+tw15k64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&1fbd2>aiAi3PZ!6KjC*enGBN^rO$z_l=Xp4Qm|&pK XreeUrm_2E)D2VIn>gTe~DWM4fb6zif literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic65.png b/src/keepass2android/Resources/drawable-hdpi/ic65.png new file mode 100644 index 0000000000000000000000000000000000000000..257c9d50ae79ea676692d23092735db558572176 GIT binary patch literal 3312 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 D!nIbb literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic68.png b/src/keepass2android/Resources/drawable-hdpi/ic68.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ac3110adaeb594eb2e1901446654cc996fb217 GIT binary patch literal 968 zcmV;(12_DMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2igb; z6Ey^hHHstv00T%#L_t(&-tC%CNEC4t$3MT>T@^tP6~u%fJqZY!9o`C@7yTNYlzO9b{3 zxb)$!Eq?s;cuBrqBH`KqC*_@#b|NQZ+#2C3g=XhpKPrdvrJiw;;Y3k4H@CGkjaad+ zjtvF|Mm*(jR|l-FHQUJ;4I~17I#y6JqJD&Rb!^z;@p!K-uBywnJgiZuNE>w`C*}9L z=9PR!VCCz3TYUZJ59;fp#G*O>G&HsE(b>*IED9N|vId~k*|KPBKL|uDsAeO&2-9{e zAAvl*I&736oc|1DNF<+`M~Jy$V4Fm8-hydH^;XdUAHNsVmU!7n>NCR{~q zQ07#wJu3AXB2q)jMi%D=fKC057&5bi5Rx~K`$)?j6vg7ZhyuIWY8VjZTcSU|>REb8 zZkU-gcbeF3AkE3?!92E{S}5G$LHR)T0kWl9VI+(-VCC3YqRw~2Spz*wZwq>Azd;H_ zYzz>e-J|Q@#;+2Y5)?+nWEl)0gxn;&n^4FAdu!23>`0Kn;0u8F6l>q8X zYncs85u1BY;2W8@2uQPTrc@vUNDEdFXO9Cycp4|X84yv5Lay0(UD)7GLmgF^g>>b+ zyHD88`w!J)09=oM+ULP0BnKM16PK5JD%OQo*P8!3R;ubUN70p3_s64Z1~|PMx%J=+ z05^vZ0FwJNYXIE2am3X-qQDL4TexgmFZ4Y%ty@}K^?z&T!TQWa3#abtjuKWfJl)&d zqp!oZ59l;;ZNi)io#Q1_%SaVDdCz=dY$_xX&<8Z51`N*|>(E7Dq|@GW?_SL6zYd$O z5097CfYeZ-_@0000Hj6v?+tw15k64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&1fbd2>aiAi3PZ!6KjC*enGBN^rO$z_l=Xp4Qm|&pK XreeUrm_2E)D2VIn>gTe~DWM4fb6zif literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic_action_eye_open.png b/src/keepass2android/Resources/drawable-hdpi/ic_action_eye_open.png new file mode 100644 index 0000000000000000000000000000000000000000..aa461c844303f1c85851c0e00c1f1adfa007ecab GIT binary patch literal 1373 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/ic_launcher.png b/src/keepass2android/Resources/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8cc3687e0bafc7b29eeb12c32f66c6cd03ecfe GIT binary patch literal 2799 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/navigation_accept_dark.png b/src/keepass2android/Resources/drawable-hdpi/navigation_accept_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..53cf6877eb72ad70368fd9e61fb780d42633a407 GIT binary patch literal 1335 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsViu)xy!q!qCao$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1PFwUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+d7Ppw0 zo0vEnx>*3tbHVNwh~5<3ZgIrv7JZ;&^g&UJ6xA>xVEO?u;RzSWfhYacJYae+0w!$c zeGexvFfgw4ba4!+xb|0uSaiB=&gzz|) zeHIPOP;}su6zlHbXs5?qvn2gF-PGqjm8BsheUo&jAzoFWWRjvlfM$7PiGfCjb)cOy_?6w^l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVit$imIc#mvmq$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1POzUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1= zG!Lpb1-DyFaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1z4q6#p&%nUs;pyTS zQgQ3e%-!BGfda?Q?~N=C4-uKDprItDw1VZ1pNolD=A*>|HKKL`N9;XVJ_dGhiP>E` z(%?0rq`QM7EJ>khs)pK+xb^oRY%kbwnfqSx3CSO#yEnY4D}Q$8XWBLHCWo6c`!?Ck zVNgH7S-`ZYH)00A`s9<_Yt}GbX^?*qc+X>L&_#|4=O@jM0laoitOfFsY;ls22^=Af z^$(0S7_}dqU}LlmDt$0({n8q*nWB%4KZtH=l-8B5Kj<=J`Tw}s6@n#A)(Yo7GJ7=N z++hFDmc?Vc};_M$UhyhpZ8kk z4VyHVQ&|#IZf}}8;bTF2okp=7*FlNixuV%qE2o7ttt{KM!i-jH0_kJ+uzt)dgDWUK1XhOPE=3CRVqTbECOd`im zgs$DYtTLWw)pOP9ADLA4U3~EJtto%c-Ewkc=l>K|L4U+Ml@rD6a6pL!V+I97kGXSLxpVCY;{u~l?#z&}t)>*?y}vd$@? F2>>ggAu0d> literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/navigation_previous_item_dark.png b/src/keepass2android/Resources/drawable-hdpi/navigation_previous_item_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..64538ce80be5ed2608fedb38230c0116ed35e968 GIT binary patch literal 1482 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi;$k5cp#lXbW$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1P0rUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnqfW zG!Lpb1-Dy_aq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zKFP;_n1O-G#?!?y zq~g|_ncf;MffC2x&;3{@;&sX?QXwcTXpzp1sDQ4iQ(JnUOf0|mDXJoEsgBFW4b!Fs zO;c%YojWP%VQyN?|Mma2r)gh4V`&-xcb0W|;qyQ5f1WGCe8fQPG>y(&#)ut?itThC7buL zXI!ya<8*x0?u#{gw=%dk?7Y0LA@=Iq63H1$=l|r|#2NHFyz~XT&B9M#CvLgSn!vlH zK0DItsUFEF1fec4$)!>iCoSzi2$ z#)->ISH?3{D|FsZ^<8q=F8x)Jmf^uEMXr0AWu$hd$g=Dy3XI<%UhsbEr3;mz;tGZS z;Z^5LA9PLlwkejKQRw;_r~ECFe3w@WUU{wH@JOWR^R3gDUM=6d?vi7}QM00%D^r3S z-iSLd@BpfPoiKat(xY>&M9*C8($;rK5|Y`lXP4RsF&npAXa1^P%J|S#xo6SUhj|6e wD(rEy7g{XbaQ6QZw+3)*{*OA)&%n&^&Zw?%d6zLT9WgL?y85}Sb4q9e0G}o&(*OVf literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-hdpi/notify.png b/src/keepass2android/Resources/drawable-hdpi/notify.png new file mode 100644 index 0000000000000000000000000000000000000000..786c7f86a1a7ec1902eb7bbfea2357636d280d0e GIT binary patch literal 4228 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 P00000NkvXXu0mjf&!-Qm literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic02.png b/src/keepass2android/Resources/drawable-ldpi/ic02.png new file mode 100644 index 0000000000000000000000000000000000000000..b5286fe724382cbeb6731bd76e89c3c8c1410354 GIT binary patch literal 1133 zcmV-z1d{uSP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN;j7LPgr00ZqwL_t(Y$IX^+Ox0x+$3M@#_jds=2nhnFyC5kSrG{e5fktkHuu*dr zY-VldV9gh8k@}*|#J1LIy=g92(}sVVPRCldL`SXhBJHknj#{;1i{)BPgzE(^+?#^vCvWLdGnm-oadag@ArIP9QePSp1aIbb1m-osS?k~B_P`<)sPhVrDHx3 zoPck~kG*fwXHJ=;@cX<{a~c{itgRLq8WI^8km#m*ISf1IjiOU9{PbsMiv#(K6_b-l zd_<0Jd(K^EB>RdWJO3uv_fN%7!b_3IH3(u;Ijp-Frkv zVn{^=F6M7r}*{SkgBg*v8WUF+_u57S%=^MZgo|OBrjiL+;Wj%5Y)65%F4=E zy?XVGJQQLK*LJ_i@JNDiz(~jnyx9d=owpmvA$a|A%cF9wCM17U=gReDT9Q*!;<~Pg zh(x1N>Fwi7swbzR zo-4y6G?o@g0zR6Zc;ExTr&yj_TH1Qg_-{-(Lb{;|+x1YvAXq`f%3@p#=Pz6&l}wVc zvT%&xpm4Oo&Sc1LYDRwyHe6Hy2jQzNJD#fZ`af3M2igH=`Tb}E z28F?g7BHgF20R0v5j+t*WAIQUfBFHfAmc%#aFHC2#RpHossMl$4Az9~ag|xI3at%V z8!T<#u(f9}v$i&PGjF2>ZzdjEn0Mo^XJ=Ht-?tKN2moXpr?cnmH}5ISvJ8S2!3b!X zwFM2+_pFaw<2P*(JR@epn0^2HqVW8Gv5ou%NJ$hB_4p-z00000NkvXXu0mjfo!=6b literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic03.png b/src/keepass2android/Resources/drawable-ldpi/ic03.png new file mode 100644 index 0000000000000000000000000000000000000000..f84a9c9020497af74cdfd56e5e9b79ab18855881 GIT binary patch literal 1067 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 Ef)*H6f&c&j literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic05.png b/src/keepass2android/Resources/drawable-ldpi/ic05.png new file mode 100644 index 0000000000000000000000000000000000000000..8860588a5bdf1db597d298fe2ec966e361c7702f GIT binary patch literal 1369 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 LNkvXXu0mjfhVq7A literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic08.png b/src/keepass2android/Resources/drawable-ldpi/ic08.png new file mode 100644 index 0000000000000000000000000000000000000000..2225ad07e6d4e0df4e8febb573e3c42e08c309ce GIT binary patch literal 1567 zcmV+)2H^RLP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN?_avGTc00o~(L_t(Y$F-JeY@Edz$A9y_d%W)+*0t^45QnKMNC+W7NZMo}i4)v9+t~3@ zJGH$&)_Zup@9w_G^us1G1u7^~A89lr&CLJz%<()k@P9V(UwdwR0gm1YO?x7E^bG`q zYp`uWZvFzffm382`PU~yZaz@0+n-opf7ju^?Cc(q``^vV!C6b5pR?uuzMQ%CLpl%qXXNPtfZ9D;XWR0d zhencIx$y>`>zAyH3z}|vBes6~`?3C> zRhwYE`#%Bok!xe|FoT08Wk+Bsg8o^_XiktCU*w5D9wZ(MSA`c#%w-DXas^@yjd(Q; z%^xH;Hq5eM1p*x#DU3e_l$QX}a7$r&l!4Q4Gtir$X-z9#_uP$HlEhcHuxU#dgM-6N zO{SQbA4d^hd?7E3`66C_4NafEmTTHuF{A^*SOW#TmjFujsD)cPHoia&!El`POqyr9 z_mU|&q;gPqaMq`*f#I%YQr^o5|81?U)}%b#|u4%^J@&HEO zFSb8YID9F_mQuykfs>P=uk2XgTDPoaRZzHq&*00Z=dc$;f11Fcx;GzvZ{gW@B9h#vbjI7ZlQ5|AB#C#C&NQ5HD zu3CjWejL^1MyeKmm&&`LS*);&6W?1QJ0dlWz)&^D-@5_;^Fn&~%=tG@=T>jMSHvrpMv;nIbI2s}SG_xeT1`v3r? z(eYI8^F2==^K{NTvDNd2&Y{yb!=f2+xSKYojHT;Xb#?d#2l3R`qxu8XSg<@Am9LGC z+6VLbeL(WV0RYlW%ZWqJo_q7T6Q_E|R3ks;F;eI4(|SX(*4D-JV84IRzX1|TXad#e Rf8YQB002ovPDHLkV1nuH@m&A_ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic09.png b/src/keepass2android/Resources/drawable-ldpi/ic09.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2e222f29642f5ec4290a079b73dab2dae21577 GIT binary patch literal 1000 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 IM6N<$g7%jPo&W#< literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic13.png b/src/keepass2android/Resources/drawable-ldpi/ic13.png new file mode 100644 index 0000000000000000000000000000000000000000..8675e51fd52969d085b6e0eee67e4e5df2fcb558 GIT binary patch literal 1474 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 nFIgc0_;QtYb3&< literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic15.png b/src/keepass2android/Resources/drawable-ldpi/ic15.png new file mode 100644 index 0000000000000000000000000000000000000000..330f4f0fdd356f0453d9cb435c7dc6b08a8b61d5 GIT binary patch literal 1440 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 Y6W9r&kV9*m_y7O^07*qoM6N<$f;zVLumAu6 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic17.png b/src/keepass2android/Resources/drawable-ldpi/ic17.png new file mode 100644 index 0000000000000000000000000000000000000000..f7e136c16fb79aa5ba207c70bd1fbabfc65eb2dc GIT binary patch literal 1370 zcmV-g1*Q6lP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN_1bt(@400i1eL_t(Y$F-JeY*bYg$A9glVB_X@>%~Sc({+8;F<`<%1H7 z^b?=N7?;EZ^rJB$F(epG{K^syXd{Kh1~e!TjDTn;Z754iOD#nfJ1x^`J2UO9Z{9n8 zcr&G?Y%%d9H}Br_&N=to|5@&Z|C!X22vt?>Es8`~X(W{guxU2kt7*fRy1KUaK2F#E zAZBgt0a{x(^Ze5N@4K=b+v;8{DX*xULt$YSC>R`wajn}=Zr(!Qu+O)rukYg>K;nsy zRbBI4Np0=H+h6bNk%%s4!W0>giUh-^1i~UC0g>Q@h=`a+j@*#CRZU@!=biOWWPHVn zrk5Hv9+lCMZiZtbfpL+s)EEtkjD$pnhDC-)MWQj0SX?BYFw8AmPKw8~^^^PU+0v7m znkI^hHWnAnb6;s{eod0PQpu#kFu^duOnnUl5(#i*f{3-&b=0QDh0@uTSwA#5?#<5j zbWBY2&kS;1UGwb&ha2ZPHJbv3h{YEyW9gwMATKBNFD)a2*pN3j9F(^9cbDsliObVY zu(WdD2k(7YwYhBZTqQ|md7Jh=H5aTkCfGGdrcNdTx~{m~t5klWTlIFvN&|t`AAqEm z-XJ&6xvinGTuc*mv6PLZWl(@n0J<(f=LMJu-P_DCAP|DPeu&0lX?2l!7Sy}~Q~+oI zD_8CjY3csI#SU65H5##KyLi;&E6a+&MNx*O%X5|AJsO76F zwS4#LHvnY^2#2X&QaP8zluR}>FoEb8T<=z_-{40WC!w2E)#Y%sWe&Lokl}`y0U4QK z2pCDBc!3+6t#Aq8)Bto{l@u1bCIgm^zGj14H{j`_IKnvf^-ZJe>c6>l=gt_O1yTOF zWjUgzq>6|l*X;mt=3|8lL_}%YBl?LZBytZ-;pxGYYYm`zbMFwEATR7|9 z5r6DHA<%Wmbwf|PgX+2*T3X&JjYN#n7nZp>e8|N!&siBZT~8Pf#4#lt1xyXVZuej6 z?eXJqfYKllhcQ3+2cftaN=o6UmN^7RN-*N{Iee%PS01>FnFcF>W>XB@43JC?4gtCb z(A~ZLuT!V44;wMWHvj>@RbAx^!JP+d)+uV&D#k)i#>TTKu2huODokT0M41k_+}g`n zpsfRlPa;1wpy{9Lm zzM-L1^rTWsf!7C#BsgbT#W&gb0K*irvy~j!)uvjSzr5=ApV$eUnbEHAZF2ss*BkO4 zKPIo2mCaUVWx4YAZIr2m441+*!4v_d$j%1e&0)Uy^td|q^Ji!L{^L7=qgFe7#GPDF zu!)I@lgkPU-u}FzqUP0?*H&ta%H0&rcVLQQWH`=^z5sum?xFSkiT=C3Z;u$s`1io2 z`y=$YOWz4pxZSH8lzOVdG@bciWPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN_1bt(@400Z<%L_t(Y$BmZHYg|{%X7ZzfluTi|lm-{Uw(8PFa3x*T zg<$;;M7j|KR|OHozrZY9`3I=0pyEd8qDBIxidd$T5=h#_Rx{4zy?f4aaqoMXGzoa& za__tEzH`p^d%pMFCji&4Uw^k=uQy4}-K+7m`SbhC?8J9@p3B|4cfYRPxN+mXwY9ac z8jS`ba>B^yhyQmSKtxzwUA_4QT*2IN12e}xuDg}=#pegV|H^lttk7Os!riG= zP~CZTS&NSs-r5HMKx&= zb5+`{jiennBK+V4E$N7cLIH(FR2t%31F@S`PE-w%>=cR+%p46dqLS-Sl&E6lA&_z- zX>VN9l<=Sq&pRlU}m^~iV#M|mmVSwb#Zb_N3XN_wUd#b{(@#G?u; z^P*+a)saz(j^`kuFi?xqjH4wdBa{^>@nzCO+;1V;I*A~a6iuZ-H69+-Bt<1srIw^? z)#0m7ctQZD9JEY?v09zR_!z;)qQlh9q2_T^hs;t}i_wbV0*2!>PDd~{KFPCt-?H|_ zFR?h51t9x7x!!0TtH=-j z>@pY(5D{kQW?5L6Kla{K397gmJG;Ax2w9d<+u7OqNn zbi3VudRx6`o12?EPo6w^w7dAQ3?~a z%*e8g#l=NwwOZ%$JpZ}h@1MA4YiHfR%gf8}EH5ute+*}}`T2QPR#sNm*VjJ-o}P7& zA8Q*M8{E8kb1}=Z&qD|^r~OHc{!#RLz0HGzgHIDh$J&2y_Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN_1bt(@400kOJL_t(Y$E}rXY?NgdfS-3}Iy2u)hYGbfr9eas6$9ER4O#?&;;u1X zLL*Tl=?~pRcQ=}qWc82x$M_E;-eUaYZGUXk?t0x#phhXB)j*+zQfv#oPuppkPW!bp zo$vOZ{V@ew>n-X@PR^V6{c@gj-t(RF!q3R|?Jw8x8^r%(2Y2528lh12hW-0%T4J%= z_Qm6Y6PZls5WlB9{q!e2BBDh^fBf+|*|Fork3yjv%YGN<)zz=m#pBbWMT>}t)*_y# z<-mbPS+(l#&jadLIo`A99V#pT5q$O4W3Gs3D=U&ti1mXo7-VvD@20nvtPs~lc`l?Rq4*e{=MoBs2<8Qe z#qv=;MN!E$JWyLo?}#l$WgBl99{hJP(7y;!U%!vq+P7Y+*>zK}v9Xt~o?hZ339?y> zU?`7JFhqVVN+1xx@Au;m_zC6($hi6Z^~p_yLr{E$Qe~?uRtyiaVIkmh4K{Dt_gU5} z@EvJvCzVVQ%{PcdqeLPR3?oc9940((^P>h6Qvsg%+h*36`*0jZIOwDGOq!09-4j|5 z9==qE%Yf37J8JgtuPLvstx!d4)-Ypw%$PO>1rZFxAZ&y&!UmCOnD|71r=Hxv#LRIVdX1XZ!7iY}tGzv$LSJ`W`@$wjnWU($v(JfYHMs;#=4U9Ua3h zvl&k^S(uyquE}gWr&Cj4nhM8JSXSTEy}>>GaK65;y9v6 zJCL?v)`nRN(iUXq?W~pC&p5frr?RPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN_1bt(@400uotL_t(Y$E}rpY}Mrz$3M^W``!Dy@1>V}OG9s4TH3BCRbB*j7Kt5B zdCSO<=pP$PWHH-PBQuaKU@SvwA`%9}EG`0>;2KPIuq;8=tq7&o(jqO$Y||HL=nHhE z?d{8L@4dg@z0dwAts32Q$`s>HPbl>{%Ll0Zk1^!N)5wU_R1?;OLpwo z$E&Yy13;SwID7W5l$5L~&&|y%9vhnw85zO5FN#1Q1((YZHk(9zp=(7&`N}X-f8cO9 zf4O19laHjQXXFF|nR&0h_N$ZAHX1-#*&)uK|A6A+Cjx%I|0$bI$Ln?Dav3N!6;acs zf`1O6&~+&a3$t0gxRBYiePm??85oG%H*a2k@5djXy9}U}mHm!HBH>%TdQ+ESI3Ayz zob=`8<&c#XM5(EOv6x9q%MCg@dg<=I!{lU~loSuT{&@?PQV1bPBy@G4%IP!&D2j^a#GkB4D_D`OaSf07kB5TrKP`+k}?aY z(}CS?yPGZuA-QzvDrIHQuf2Np(jPwi?8ONmo}d&CLzRW3gz5 zX~qHQ>guQq1pL1A^qhx7p)|Z+2SNzEUWZt@a)ra^3;uBK+C6 z5j0I=Sr)NaoJ2xlSr+;ExfBAx^}g-wP3f~u&gOwOl<+XSheaw z48uut^JTAo;J|NA01fNbJ+*DciYI@5|NTpd#Y}Wv!!#i?GmTZN*00ia?U+)D=YS}H zWyQCrrOmGgXMnM>3Hti_aJyaTx<+sB9j;&RqPx4T zZg6n0@k`4t7K>6)uz;qfhKfie{KT0v@4Zo3d3vf6Y;ZfpoXl=d0$&*JeG&Ee?4aBAaW}4jA*20Djn{HKBzH=Yo0HRK(ZTHB? z(AufV7)RH2nwpw9b?V3kk0&L2{rb&Wxw-Syhaa93=g-s)MS0b zr~gF>1_O_ULZQb4fwX0Qf7-(O`kEcRy?w`ZUALmqC_n+w2aNN75F6n6UmX4o4o8(w T5;+qh00000NkvXXu0mjfJTOl1 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic21.png b/src/keepass2android/Resources/drawable-ldpi/ic21.png new file mode 100644 index 0000000000000000000000000000000000000000..90fdd6b9d8ec66fd0ff4418433955ea9854bc9da GIT binary patch literal 1635 zcmV-p2AuhcP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN_1bt(@400rYoL_t(Y$IX>%P?Yx-#((eLFMuEsL9l>O5DB(kQb$dRsfrlM4AYpz zv@tP>&5T+zn#O8d+b^A%F_}2pajXq7t(s91nM&lXfv?O*u=-E*cD0Le+ld-Al| z|CvhxXvu>z*Iln`H>Izs4E<$!#kUGA77KxBfW0+Gn(E%F+hsG7Z^+Q)64XWsuv_0p z&%YJ;1jx3NYfNH`EjukcY4QV8PGnD;ab;tcU6*81L=r@`C1vzgKZD*ekmBFujsw|zXyw(wGl=FsFQ@)^RNlKVEIwCM{H?0QBO)W-po|VjMGcFD zf+C}%aT)SOWXKnhk&%e(ag0mv6NMVp#s^D3E_R=fza&M!E(`--1>lGcn`0g#b+3sG zACk&99THSk8LSVAKNu1JXjn!@!_w#R$>jGYOYP-PWz-)Rk2fT4Z%`yGGV84uwDnh) zNTaONO5QD1fwJ2L>An*p)X~jnT=_^aPa-wZMKr7tvLuL%C5XobM97+u#%${x&T4x& z-g1Iuixrn=fCV2eV#^wfvZ`dJyl~)3;>KF%LZIcgfW9^b`i2QlOY=WvTUbq+eUP&~ z1r(PU2sX#j(jlG@qKPU{p`>kV-`O1s-Lp}; zRb#Lje(UT4#rYYFrw2KD!Nt@mR&-GXG3yDd3M1nhONy6s_*4Twoc}E4%i^q?Tg_m^ z!}h}$`Eklt$=Q5h^Zj?Aza7jSZGb%=H1TrUYdl)x}l~kH59*o>e4*|yG$?;!B;S4{Q1<`l}t+N z=i{~_a`J7AT!~;QGGjIAF`9Lh<(Kltv3JNT4RPqBZl1Jk;NeA8-0b$@atFjdb$Z3M z%YAzoyB-110lcchn{c+FNgq`_mw2?;$Fa{l$VoL3HY>Q@8a#Se!*_f65<5vYJ;^CXLN3`YEM{NozqQ6b5u2T5@1+(~6yrNip} zeZX}M9Cs>s9rzVAHvZW-ti+osFZA-knKq_9pu=8l!`&Lj)gPm)Kh9VXj8;7vnI?*I zO=M4mAbM8TxcT;UJ(gKnvZTzo1Hf?qS~(r+yK4XWt)^+uuprGzSN|huImskGA0qRy zNu(ISB*Klp5C3+zju13U=7-RvpM;&YRJmo}O4oA2fGD<6T67|H||q h`e&F6r11ZYzX4U2(30dmVA}uy002ovPDHLkV1nHQ7fS#D literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic22.png b/src/keepass2android/Resources/drawable-ldpi/ic22.png new file mode 100644 index 0000000000000000000000000000000000000000..28dc82ea9db40527e034add58b86b86ba3b7996f GIT binary patch literal 633 zcmV-<0*3vGP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN_1bt(@400H?)L_t(Y$F-Kdsv1EQ$N%G87m>w2MIOOUuu36VTc*%w$QuahEbId} zjaZ2ReUA7HR-zF_1mnlJJ3BMy+{(puuO!!xfnkT;ne&@-{+zQ1c=8aZMWs^t+GsR> zNhu+ONNr^1_YGX^jiLyhPUq)nH2Ma>#2>od?t+<#h?t1jImgyow$^eKMXa@Etu+Th zz(EkOQi_#Qd^j9bJSt-S@udfW?3jkzJ04ZgbnFSHSITufBZEAh~wAMlh zf#Gn7#bN=iH9XG)fKLg)DFn>?;RyiK=@d#SFf)iKj!Xh@>jZ%Le2yRp67LcKBDxvi zoI|l#L_VL7ZJox;Ip9`Lj4`O!>(E+*h^~j|RxhNK==FM7E|=FsbdSi)jP-gAt@U$6 z7D8Y)o8fpoUI*MOa=BcF@B68&e|ZGJ7=v1^24f7IbB_;^loI`ZAFI{sd5N~!Y+{ig zo@f9tnM~qR;hcLcz*>uHwTeQaa9!kEZw>&~T9is9c%Bzu^ezo9&qygT7!2Y}ezz8V z6mVX<06-}P=iK8G?R18SAcVkpJjQmrO?er6V2t5RCi7oE@=GIHYc!ipWV2aFDG^0c z8qjLBe)zusT}qiU_OB*D2$3k3?RNVQfK8&S$mMb}48szD&j9$&PUSCv-vHDbXT=00000NkvXXu0mjf8r}@# literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic23.png b/src/keepass2android/Resources/drawable-ldpi/ic23.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4ee5f5b666ee1338ffb634c2ad4e9f31e60e0a GIT binary patch literal 1248 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 FV1mU(F#Z4l literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic28.png b/src/keepass2android/Resources/drawable-ldpi/ic28.png new file mode 100644 index 0000000000000000000000000000000000000000..127d638d986b8ce4f52a5fd266ffeca9bdadaf0f GIT binary patch literal 1082 zcmV-A1jYM_P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN`Le0#M300X*7L_t(Y$F-JQY*bYghQGbf%(O#i#&&8`8Ysn*;sq?JDJY4Ejj=%z z($GW`sVK%5FF}2hKw^CBLrp}Y#A39miVxMq@Ss321R{y84;JGE6EC1hi*1Eorl)7l zZ7-ijI_=mg5_ht5cFx{w{b#N9@Bb|LpNGmVT3T8j>FDU_vn&gx)VzZtQrN+qv!3VC z)6;WkU|?W3;QzDH+uM6tM2s;;j4=|1p#(u7K@f=NdE&aRxUMUXP(7LgP zjO`b&Glc>2A~C|1@fmg<7^1yxEiZ1?q{|>4flL;T^xGVH?Hq5u&_HG;C=QU@5D|dUl>JOQFd&pV@-OPn$3;u-ap9x=WoMy{5&7IQLxBSOVM@s z7arQS7T>_0SHI-p`XP?*t>N=Ml^j0y4XH$&4J!>+bv-})H1@9%=t4z~Miqm@5h{|3 zPflLq;A2TPZD=4gn%B=bJi4`k4?q2l%TAn*)@nZbVvLBT=dmddV0MwGr(LotN<_oe z;Xm1U*K&d&;F-QLQt2dZbuK#}SjwrhBP8Q6YHOkq7SAHB6iPy}K4{Crga)k?Tbrx6 zH5E`&8YAOOaZ@tJxC2^z%&f03nxZ9fi&d#ClQuLpuj0L<7l}nRTULhDRX}+%!rLdV zl1Nu@^t+H1DIeD}#aWb_89U(4Wg5}bBx+L(et$E+_x{X-P34SdeEJ5axPRMvs+I_+ zfBcn~TWj#VfSm3XWYO#tg~sqy+bx_v_BCs&L+-u1mZmMue3eb}M{+qkp1g;p=@?fW z#l9z2v-g9)D2wZB_F=d%fQT?@`}FQx$NTS|!5_NF9aW0Q@2g~cbBgMS&)JiMq?u$S z3&~Ur#N<)Es1_l@v=i{wOY0c;c9eIzPocEN4+0V~;koT~^d3Kl?YJa-8$VozF$S&m z;sCDI!{_$;avE1x5VbVM7+lZb2LaEvuOJ#xgrQ(NL7pO9mzpAi=NViH^3ve>g6rkW z!-8UWJ=#C_#?F3UkVU@li`IHkKl0f?bJvz-;d$Qt2s%4E4<-_cS1ik#=d4&0pp?o3 z>FVmb1dQi(6{V%6RyLb$25JGh!A@lY=m+e-0Rbdu{b!v@MF0Q*07*qoM6N<$f;c1f Avj6}9 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic29.png b/src/keepass2android/Resources/drawable-ldpi/ic29.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d88334b72a7ca7cacb1e63830b573369989dad GIT binary patch literal 1250 zcmV<81ReW{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN`Le0#M300d%5L_t(Y$IX^sY*bYc#(#6p-M!oHwty`nT?m3`u_kDs*bqcSFs2p% zgcl_ZhBT0(L=udEq6R^T5@Tu<6JLy=G3bMqsF9!{n)(k23Pddhv{I!@YbouvZo9X; z_Z%PYE^W~#f{Bw%a?U)=H{Uli=UxC-@ZXu_59>PgRp4XEmQry>5r;c6$4>V z$jd;2*;p;DCUM>{EA-`Plcd3n%-=cbX_ z{4x$@KnV~9#!djPfye@24vEhX+uHhl5}#LvSP&&BrBEV>2r}aAI1WGk+)PtblQ;mG z3?4RM13(0b^nsmzF;F(`DygZQ%ldcT9wC4M>w__Y`##3clJ-3|Y}!IoQ&W)id>2RY zn1|%1%H~}1LzW@YdVynu9c+B-B}62sRw+b4MCI5h`cr*uUs{JXcDM)KX@2mM+~&&g z@cIZk2V&Dbv>a(?N!UFt`{P$PBNi%@KB>^Gp}VzC22NVg=UtqZxQUJp-_&r-xd4fjB4) zxDMYQ^k`VFc;k*&dGy0o`1rXV31Sq=3*rAMcs*%!kqZipF{1%?2Zba{_j35gDsH`g zM(z<2MQ2}%?^k?B{kA&Bb;pTaUBrp@-zW@4(NzN^jXP+l-$}Yq;Yf^+AKSx&bC)8~FrmT-Iuf|!Mj#ZzT7y!T0PF%{ z(A9hhNPrFnB8zWmJ(pm|{#RI6xsu8mvuXaZna_@Vg&QkE7Zl(`A~>##c3nhkxKyG% zgI&;8ah7hvl=#*LRFqIwT*i}gRx|(2Ww>Kwd=hnWC&vgIgUM#`hlcQ#AYuV0kZt4? z>b?DOC`74X7c`&^CS)MuV~rsm9nVlUgOYz| zuw&MCp5C&6m{ABy6Aec>wCO!E$!?4Zk{IJ-jKLZo;~R|4-wjzmLvMdCN~?b|0BAnT zyO~~AD{aA820f2$FTQ|Dr-MiBqI1c8IHt8Gk?0r=khet(Ssj{=_~L)ZXGuwvnYvR!A+XXrjT z*am}F;J;Qwxa1MV2N@-<~}umAu6 M07*qoM6N<$f_>gI#sB~S literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic30.png b/src/keepass2android/Resources/drawable-ldpi/ic30.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4f0e8f6aab52b4d266d49b40438d18cb7092ed GIT binary patch literal 1130 zcmV-w1eN=VP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN`Le0#M300ZhtL_t(Y$JLfiXkA4V$A5EX?#p|5iRp`k6gA~7DwcMWl1;nup&?44 zNr+Mx8Y114cA|Nl8NbK(E~D1euC?i_jJ&7rRg+uAb-C=^O1CJLnl zNya3tC`rEk-NLY9uUr}bbo}c0M+V^a*IxPdt-(Gu|7a0wE#Urnh<}+XT4>+)yb$+( zIDU0}%mB2sFRpHOYx+j zoex_nh1R-Zezm%VwGI&tKms6$D9S5kmX?+Ph~pR$X>e9bAtHof$lB^EE9ElF%ga^_aBnV8+uMVJv@~Q`zpPy%9VuCYg&T#$uby{0nsaC5jJbJ{^;v$=s$`cui zlB9eZ7-&|@tIWAMMn^~K?Cj+H`SXm9jxuuiFp;$&0!l$P3(kSH-qL=`R3t6X1VC%F z2y1Jr^!Fd6R4UQk-Az+2M_We+kujh(tgk~Z=Yi6Nor5^`Q~WYM}Ifg9Fx zYjTpGZ{G9~S1L?RO>ua57%CMo1~M54g2on5qH7G~aftwa92?`0nHgp#CpmZaEF$6^ z3k5zteVUUePO!GJ!aIi!A;$QHQ!@qtol02;P-rclQ=!1_?rz>adX$sLkMqm5YY>Kz z%kk5V8|>P>n{O^%;`<91cy<5&di1F!0jITBmq^4<&>EVX`R?*%4h|2qZ|`1$wl)Bc zjEqp(*x*2^#LNBtT$`BiQ9lkKf)))*>Ht~`MjOzEXA1>>xOkBRy}b+#46qf3RHF!h zf!B?AgQHgM-|eon_z95EKd^ z!og$5AfJbh4qr7Q-n51&^125aZA^{9V;jwv;;(n_va6?u2h-EMf9e#!J$y(emm@F+ zX>G+iM-)YV=f<%Ih~sptgVGpnYB}%>L=gn0u4l1GS6?5wmKHkO+iA{b$pitSHO^YL zqKL}oCgqI{*4EdPg%dNHAQO;OdjbGtnzFD`_BC$|Dxaq*jxn1d8qjf!7Qs4)sYaME zBol_1FeF-Ahp6ghS}D`il&$S2lTs@di!9uq#aRmuoU>Tx4}9lb!?CXt9|a8;QF=_| z^EqzazTKFEOg6_eCV0y0(SvAXYJCGRJ$;8Szxd3*tX+NHA&uTsPS`l-HBR~|Q=G#l w^B&C2r)dY^IbdJy0Qt8re5HQ>&;Kg^1QcC%HvXT%umAu607*qoM6N<$f+R%<8~^|S literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic31.png b/src/keepass2android/Resources/drawable-ldpi/ic31.png new file mode 100644 index 0000000000000000000000000000000000000000..41f324f53e66ba1d0f5f10fd278de7791a9fd11e GIT binary patch literal 1345 zcmV-H1-|-;P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN`Le0#M300hBFL_t(Y$DNg3h?G?r$A9O2-}&5G$I+qOwA?Hc7NHNLHH6HKK2{K+ zTC9sLyr>AG3sI<>h`KVmF}f;(q>Jc-3aqvgmrAq5$aK+KEfL+B-EnqjW@mQx{XFOC zV%FTWb+bPl&fy&RKhN`jp65J@Iq=9M&)Dg7>}lJ!HCKQ!;<&E+?nfWJJ9!i%IekYZ<~w9nd?Esh}N^6msxuR7(f$620&l60Z{)!ZZ27RUL~x#9^&yN zN~w9s4N56uu@qMwK`fTQvaDGV=vn)PvjG(Gc;f0J=rl0;vUWJ4^LpslU>;=sU{|8Vd!iHgNyS5MD|{#C2G z?$6~GuUNVAmRuA?0$N=(aDn_{1jZQIym@o~nl-mQJULnW^W@3jzblnS-vbVB+O(-v zDm^_Lo_hA#=iln?UPn5e77g!h>fc5Kp-nj3+2k<X1A&EqcsVSEr2vORjYO;KDTrpGv>`OcQ61X|0-4gLs4gr!*oMbXV zTU#dUq|-_3`|pS7?CfC4k{p>#ifX0Khd*A&lnXclmb#o@W;L~&V{H07EAuI)r+rGL zD#c=zSjT=gMw0;Os4gp_`b`LBR`{*g&0Gdf_A02$p$r(0P%&W z0mcZSz=UNnj&S|58^~rCwyG@f@qMr2XdV6O`%N;LrHCj>r8Df_{U-T*o@6rlpJqoG zhLp?a>F4HT0g8YLOkxUbLUQMTgYZJXstPQY69O6jsviL`;M>c^}rO16H=`%EPD!QGkaBraN~Nldj#i{l7?)<#m%V!rOTF$&p)eu!dSG6D`ITb; z_LePMIDPt$eV*stRjbuA#o}l>pI;>Td`?A?Mr(~Rt;wZzYZ-HKZ^_}3&$n~nz#$nK zIa@h&=!akT?;m_}c=%))fX5$y>~B5$`kvcjjFG7+R~n6`)M_oS$H!|kUQfu#NLkLF zEy9!1n{Er{~e+;NZvJg}c81Lh9gd^~=Jh00000NkvXXu0mjf DYqpy* literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic32.png b/src/keepass2android/Resources/drawable-ldpi/ic32.png new file mode 100644 index 0000000000000000000000000000000000000000..5b3cf8058b055f94b50b457b5f6485a4503a8688 GIT binary patch literal 931 zcmV;U16=%xP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN`Le0#M300SdQL_t(Y$L*EDiyTE1#(z~kJ>yJvH!*P&5Dema+MERsB1FB22vG=v zClBsHau*3+Metw*4}lzIG5>%lIR`;K34#%cG8)kAx;vAd?VjoGs(Q~u_4G_ks}Mbj z1qD^_74Pfsz3;t-|JUCvvpAkV3jP%!{KJ?%*!u*o{|wNXTTiW@y71|DAHFl(0~eqS z;5<|z-mCh&Y@cuEqrD0sDSUR})fc9>IS))5fR(krd~u`Tn{R(Z)DQ%Mf(VGRbXS5z zzv$8%0l`rAkAn>-fbLxYCQaG7HRAHtBlnpZ1q|ojzl}{2om(3KwFzEhNyft=-(S2) zr`JOO0ZQk1dV3oM^xe0h=g|<*AZX=qPn~1%%yW1#=u&AL0I`-J5jfl5=kcposel~F zfDs_u+mY?z=jiDkj0()SfYBlRw2AU8B8pnu0+4j@vXIso@OAJUnAY|Hn7o1=fl+}@ z3Uq&lsG=f>f|?cpwF$l!sI3FKrQpTc$piTQ5#%o!BnyD`%}vhUym?nA8o-qf4Z`fo zHA)X!OI3nkik!alh(tZLFt824mp^{R2a`9j^q3S=CPl$;_g8*+@qn~5W9wsOW8IJ! zP&mj7%M&LJuRR$7u&p&n@gZUxV>otv4RIZug%Tz0b&(*53MU52Lq`l<1DOH!kQgC& zA%&)y{MbP)tmrPPZ4KtMXY ze8$JODpC6aj~xrFt#+|ewKE7>vyP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN`Le0#M300X{BL_t(Y$K{nM)3 zhzYSThUk+d>KhLtZ&ni%jZu>-UJ@_CHfre5+IlI`292q~mWwSSSSoGG%(Qc6dd}H< zukFLMP|=yFuk2(cD|;vF-~ammy%${bYd5TX999-O5C7MKdtg3L8=E<^wsQIMhwfap zD)LPt@hbxZmH!&xCE)4Fd>@p#aNqUt==^2NHY{Gdc3$O@CB&jp8}#-%x!zvRxbCgH zVb1$7dUY-5>W$|hWMN$?JQ!cSX6H@!u35CSp@DhnG@LxiL{AU?;2sn8l7_*A+sVc79zF@WTy(IcaMefhRn zArB;ZHn|DRhRulUB1&O05O7?H_~Sbk|c%-c^rvF=9bZYuQ9hL3g~)qh;vUUKXQr{v2H znN)Tg6CsW+8dMyrY zD*D-tq*9+`bGf}T&F@oeBocu`9}(L3Jegz?*Y_Dqrx-r|6BmzllRAB3unZ;&0=x{2 z!{=v*hW1v>nuXCClmeyjlp?7$W9Ck`|Em3*>YEytl zh%A~r*RNi%fMhnyXf9_*UDrwFa-@CVq>cG51Fb$BdL0Ie%@3#0!K=||cRU`izLZSj zdR|XTskQ(TFF@C{|BJ@|I|>`&?gQ}f0l043thff(pLX>}sFrfz;s5{u07*qoM6N<$ Ef<0;MSO5S3 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic34.png b/src/keepass2android/Resources/drawable-ldpi/ic34.png new file mode 100644 index 0000000000000000000000000000000000000000..6d845c5cab92b95bfd52219511d7f37a7fb0b689 GIT binary patch literal 1066 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 cQv4tKH)N`9B&eCPx# literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic36.png b/src/keepass2android/Resources/drawable-ldpi/ic36.png new file mode 100644 index 0000000000000000000000000000000000000000..5cce96240b683c064e77da1cd0ffe55c53d837cd GIT binary patch literal 1249 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 JPDHLkV1iCUm<0d; literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic39.png b/src/keepass2android/Resources/drawable-ldpi/ic39.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7743f11b833b9b580423db4a8809f9f8d73770 GIT binary patch literal 1789 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 RRuTXJ002ovPDHLkV1o31+F<|y literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic42.png b/src/keepass2android/Resources/drawable-ldpi/ic42.png new file mode 100644 index 0000000000000000000000000000000000000000..a24772ee8cfe313e0facd66c12f8134eb0567592 GIT binary patch literal 1250 zcmV<81ReW{P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN~kdrKn#00d%5L_t(Y$F-IFPt|o8$6udwzUO`phtu)EQEq||0YM7}2#8J+FH_Xq za@Dl0NrtUf|A0R=FKunP%F>2eQC`|~Yff!bvD>^hW9FU75%0)Rh&f%Qzryr;d z9h!+fKRAnQ$ppF)i=)l5I&@V}D8D z8Nf0!L0A(b>xPrv!$%p@M;VElWqOIeaL7NFM7KQg?-rG3!}%n|xZ2YlO|>My?A|0a z-8XRrwV>4?rIvX6O;$P=5{pi-Dmp5PFi88e##*4{!2Yh-1!9+1=8~osR=w0k`gNQAr+LN>h|-k5`u#ml7Vc z2{}AQu^|P2Bt#^l;;;@N<}cvWz9Uo_BAm(e$lQx&d3ksE0AY3jp6LaO^WgVXMYpQC zTQ|p=TxDG;MtnoW68i~`8knV8uv+>M#S7Tg+`x0zC})a2GUv2~_D@3J5SBZDw&}O1 zG#5JD2BrE+XVjr2ubsVKI6@(o$7l0%{|zqduj4dD$t+*OhfT-XoayFJ>3NxR#6tU? zU;|;f^B*{XxC>sEi}rjAtV->P*+j~Q+)Y9b4v=K95>caw3BmrrkK8tE&>OUrId1dA zx+^m8Gb^oog9jK_w@roLEl`n-rY}X2`R(n}q{(=-aI*;ZTxFIUupsM zeJ5BPui>V%Q;KVn=Doqggksx)rh5&U+@gh9&^Jd>3tHMtR{OjyC2tC!w-ZAkj4$BF z9|&WTSMg;$!@l0r)HuvEX8k5jy^`iVfrEr%+opq0POvxw`&ln{YTRCn&Xpnj4sx9? zG9p@{n#q{l@uSGx3U*)omL)EQQ>A~%f?sSj?GGIy6x|Lq-)|WwEviZEGODh*4mC{- zg>NyThADTYk))b%IY+P+F5|tQ4zk=4;^fj+ng6|w<}X5r|Asd`=#(Zc8W!J;Td#`& z-j*hQ`2N;j;e2^{E{R4?Vd_kJci86h(IL)FXCY%JKA*x({ z8tXhVdtV$K4S@#2u^m9`BRwh|zS_Poo zzE4-@l3PD2Q}f<1s~ELkJr?+sU<8%6dN!CPhQ|!QC!bOTnKOa>1-yT`;hJc@lK=n! M07*qoM6N<$g58rwNdN!< literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic43.png b/src/keepass2android/Resources/drawable-ldpi/ic43.png new file mode 100644 index 0000000000000000000000000000000000000000..5fcabcebaf9baff99da863112d1fc76b482779dc GIT binary patch literal 1005 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN~kdrKn#00V7FL_t(Y$K91rXk0}c$3HXk-tODYCaFzBvWD0iicKw|D2WFTwFpH# zXw_>GuUfn){y9}BBH}?1D&E9H!Gl`Gg9pKaAXsWKV*hSqC85}E{%p+dzJ2fQo0&Hr zUW(BsW_#3ufgjB9{rrCO{V_lIuP?Fb$>1_HcjR&L`UKr{63i%Q30WO4t6}b&1)zKe zqUjA~yv_7gpzg5E`mwQl)$^0nh04gTL4tmXHjdV+r9L0?+u6&>(v{^CNP85x(R&4A z`9O8AJay!qep)K!haVf%=bD6#Hl`IJwWhD6*fX_@{^~g29-(ez7G$R#*F~ z!&&(1#{=$zPZmVljBs&`X-Ak=glWg%|$-GzDl+TZm4 z3CM0FhYr6|;lodtgiE@RcCnoV+et7{7Zb(UPJ)gSoYsKHH^)wh$tU-KX+LpG!neMU zRy&6sBYlFj6_G^=HcBv2Lbe96af0b2U@Tx67$2q8(t!1Q02sz9j%N>yug@#@j?c|0k#)_^$?CQ73>>qTPWwbqo(Fyg*V|14s#( z$#6**4-a=69;hU7)M^^DW{2lXyn>)ukQ4$*v6SziEGd>1m4ZQd9+29t0mb6?Z@u{| z6T1VKBo5yP&(9&M0EOaBaYay;6p8{@E;&;>3sg>R4e0Kly>NQrg^%7nBl^l2JGLvV z6WBF3g#zUZf{G*<@JOw5^CwS=?D{W9;I&%s6HR?JiH+ZWc>l=LW_SoWIDjk#IN{Jy zmv+6u;^jG7SFd~x;thEH-0h7_|4Yz^kfqQ3EN(vt@dR|Yff10cf}BGHKjB_V;631F b{-5hlwFIByKS&V&00000NkvXXu0mjfVrR;w literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic44.png b/src/keepass2android/Resources/drawable-ldpi/ic44.png new file mode 100644 index 0000000000000000000000000000000000000000..bf57db20030b68203346981ba75aeb13fa40b63c GIT binary patch literal 1097 zcmV-P1h)H$P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN~kdrKn#00YTML_t(Y$JLe1iyTE5#(&k_^WD8Ov)Rq)>XL&WAUOnc^c0mGB2o0B z1ab(Xxfp_p|A7Y&9uz@O8gh|<2SpNBjR&J4DntdNF~TOU`;pnn?#^yzx_hRlKdQ^a z^vtyDt|EwF!Alo3{rsw)_o*)UzYiVY2=D`BUVx*AYPCo9gyFqkNjVEd{}w3wPNCq= z)@rITHKls{_p2Gh=smiVeJ3El-AAV$_PAK_CjiGN2uQmhnOc=l~%Qq{<&XMGt`w z^gw38>#;DeJU|(VRl%NP)9;_J-}hX2{t`i{K>oU5Ai_I z0cnqRK$pgR*rDHp5kSwY910NO7HLVm-%31kk_IQc5fROsK^Jg_fG?mdiXtVRYUH2> z;?hoeo>-HvAjfJmumKl91IR&DD-D{vop=vodz2Pwqap`l2PK@oUfc#xaJ|u68vqP| zj7ddQRVqDc@g(Q5n^-Yws89~>uPw}lTcB1^MX7{c67#WY0NxOgwHVi`aVqD7D5i6s zRA?vZu|YZb8v$l7hE7-YK8?kR(^s#20%sGUKA^CJnlL-S)g-1`|L_Tgh`s*tm)-ua zAnpuzAXS@eP=Y*MJFVnX7x-`%-U2QG@et57n45d%@-K1za>W`aH@1U(xn$%jR!+}a zMGUiuW);!QJXi%VbP$R#%93jdUO&0Ccye96t-%>!E`1+})Vu~%`aLHPm_W4v6E!GL zLb(c78B9yZESpBDT*;NbUFg^|@GkHX(A|9Dh<|v0Ynw_>-Z_c4|NZzKBo;I(zqwgG P00000NkvXXu0mjfzrN-? literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic45.png b/src/keepass2android/Resources/drawable-ldpi/ic45.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd34c454744eb1dc2829237b432fc2a1597e18b GIT binary patch literal 1393 zcmV-%1&;cOP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN~kdrKn#00i+#L_t(Y$Hi4!XcT7@{{Gq7*-NrJvzP2{Hk+MjE<`~oA*4QO5kYM& z6%|Gsni&m7>tmM_c8^Ll$M_EP^7et%y7d<8ox{5V`z23^yF z;nLDB&a$kB)6)%3L6|)39zTu~j>~>AIk_C%?}twmd0p2N?{C~F3w}R-?dj1IH*Z!Zfbr9d zejETCiN!!wwIo_woBELBBpf?NxRWQz-nlt3B#J4+FajN+&@ym4&%5U}ZRp*a8kuWp zA>_~@^5&*Zj+zY{hSvbq&t&jjU0veSNTkv_aDZ^t3wAm(0mmu24wA~ z3CZc?4bvQYClZM}+S`e1{dzFd1k2^XUAVx0K6mcX+r7P^d>HMgTy7vz|2hk4hR8Z%v_d1ds!LuY}Q*^Q2FaQavwcPiq@SHF8ir_ZY$QTBoX-S=EPw+rH4Vz;%k1j? z`!qE&QmF$EK6}xiEy+>8ADXI46{V#k+Z4s;-L(sjC6Yy%S5>4hUBb;LPn3aVvYIO> zOQG;95!e}n-R)L1P1CvJVoaSq3r~GLc&`_X5SWUBxl{^nw;QUe&O3ow2hRhB@#0^_ z()b5Nkyq#E6Ym9s@}s^!G7o?P&;c+2&f;PS9uIi88-c1ScCoiNlb)WA+X=~jP>|)a zIRJp;k_5ZW=GK6r-R0$Srmv5X#VE+4Gsp8FHrv8wj>GJO2W0!^&0bi4 zQE{vB=@Pj-o*+Llu?(025JMq$-Ql3gxw+Lg#>SnNH8-Q{@vf<%;Wd_ zM>lWTA`+()e+>>|pu78({lMQV&cW9J+(1=DW#u)_G_8M<$p!|DwLNDap8;S1zCbY8 z>yjjKbZBV%UZDGhOT2KOp0wLvy7bTDf0lm%7f2~&ZV}G600000NkvXXu0mjff;5Nn literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic46.png b/src/keepass2android/Resources/drawable-ldpi/ic46.png new file mode 100644 index 0000000000000000000000000000000000000000..f26b6917253b457476efdbead937e51e9301976a GIT binary patch literal 1265 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN~kdrKn#00ePKL_t(Y$K91nY?M_L$A91VwKJU=I_=PDp-&}+Mr|cfBn2a+!38Eh zaAPoWNm3SSkViBUL)0{248b782yv$iAsRMld;yYJB51L^5}VqzX=$6zOgrtozSn)Y zm_jH8bgO4|b8qhdan3#G!hb!C2cEVcgUj1t!xuqjXWQ{*GfJCa3=t^1%(bpO&4*!d z$9*A6?zy|>81!xj%UDUvN8LeBJpXW83ssAwNU51hW*8eB!LI$_97??dT%hp~jPCju z4sLOeT)OU0i93CdLp*H?_&F(Q#Na;}MMRdMOu1^RzFe}mNCHflbE z#GAJvt$73!r=ji0(T>iwTi@#Hz;(d$Br|!*%6NutFRY-my@ts|is9)}9NVLinIhWo zD6*uqCOxriHB)=Pyc5!#SJ1V`SC+@)ukP;Zz;?j%B?U*4FZh%OEVPoK6oEhqd0SF& z1h%WmCkCl*T~B#K{T5;eHs48L%~K!Q^x11Wx2#xN88JLxQE()-D-c3)rY}Q!CdV(= z(|mo=!!k{5S7JK?+f@`YX#!2Fbh@{v6>YVb{;LP(R@rL8So{L5!x$l;mR5^P&A zo^p7iG0)nKF@k{*;ef%#A3bZos(aFYe zW;#PvqXANYAxLH=CwdB$l`7inDS{}4ub_W;5=;q5K!FliW*9e<1H($7?{*L@>rD*Z zq;7E#e81SXQh+IOJRjH7C|xAb7$AJm5|jWTLAV4X6?hYqU|D?&Q*^Z}UzkjuwWp_a z#UeoY#mmw!u9YXc6O-%g)1+FPoM3e}tw zCD4G@3aJ!I1IjB3Py&QQc})}9-aZ4&efRF?BwVl*I3mOFQ!WSpkUo& z6%+~{LI@szC`c?GD+&-Uk*Ws#v6L2LqZgq22lES5nlNhmjbXLOq4;a_=2VravRCJ#zZ>W8- z>8W)(D@`Lck;J!cln|JviM1$7*feyux6km$Mtd+SJJES@C;0t;v|A%Lc3?BMb0An< zy*jj{8Y>(@N`;@v;Z7tFsYHJ<=iMh^A9sWQ^Ot!mqWkM`{dPQmDO#Ht<|L+h1^M1E b|NHnGU!rrO^qr#!00000NkvXXu0mjfg-AO6 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic47.png b/src/keepass2android/Resources/drawable-ldpi/ic47.png new file mode 100644 index 0000000000000000000000000000000000000000..060724787e1a09243c24a4381a929fc865ddbf2f GIT binary patch literal 1129 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 Hu0mjf6V9~b literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic49.png b/src/keepass2android/Resources/drawable-ldpi/ic49.png new file mode 100644 index 0000000000000000000000000000000000000000..f51a8d8c06cb7450745eb2a4ab2831528b343703 GIT binary patch literal 1169 zcmV;C1aA9@P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dN~kdrKn#00a?9L_t(Y$L*C(Y?MV9$A9zgyB}@Y?zRh*Vg)vQHbG4=0S^i$#6T$&jEd1jE+QrbQwtGkQ!L%Ww%c~gcDrBi$IQGl9^Tgg z>e0jt|77yalRPv3`9IIhGw>MyHv|C3zB^1Y|Jv|yZr9$C+^*S`UT5{|w~n)LrSgvz zPoFQ*pWn_vX`GS#fsI4C-P=pqvP|{uzj^-jVd~eeJRI)w^2H->pF8;DiGwAA2wU$W z8Xlavaq4r%-}ofEZEW9;VfWdsL)mhv*texTnrGLRe#)D&bMn-dq`I29R}OpfEBF6dtX? z)I0a4tEb4hqcj77v>Wd%5vOS3S!0_l`sFb91uaoosY9Ug%&P%X>cI3yF_=Tj;b%?R~JE7L0kh{d6WQP^NF)#N6&qz zf}ReW^PcQ1b%N$X)2z=f(yPrQmlv_UDo_WSzPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00nPJL_t(Y$E}uIXk6D7hQEF0Xl`dlm(kdctT>WoyRi(36D+B;v0Y(O z+O)P}f^i~nS>W=e}GjT`#Ig3V_0|7-ngv-XC2Kv!26UlzW5IW#dbL3ele@4LHC z_U_!dtHW_@nM$Q*0LlLgmo6n#1>VMnsS=4n_3EpyjUGF8{H1t2_Q01WK62y;9UUFt z&SbLcKfrSwS6#h2rrvz>?dcOIUV3fs-iO-$XOUB3)_W4@?ftO$MaMl!F1EI{wTGp20Zw9e@06{jrl3BOrd zW9-HZyLY$Zx~RUszBDkRBdl$=auIrlAsT?DT4;%&KK{e=?e&Ie4+=-sMMI)!L&1WQ z1JZ+qJlHN+F4$6GM54^xnWlNWgLF!wzyHDnFs-w2=jPY%%kzx~>#!U_QGzWInqI}~ zdX{)ywOGu7RNyI4ltU_TJaAmd*@Ad|lw0W>mSvNiO)@evG61Y;6q3o&gn0OLL0_LJ@&k zTp|C-%Y^=XkcPxDYCd|L;|%2uEKJ_l4Wa52?e`cncpv1E`sZr;;%QYVBIqV zXNVm|}!E2M1Ux*5b7N1i58DrUbJh zWLInwRgkrH))#M+s@oSd>`>METK{(a-S6>i=hM~A@zxh`(j&;Z>ugMYhBrG!Ce?)Q z*Jyq0yR^pIxbnvzbNSF^bhq3GSAi`nmU$4Y*~F*gf5#4YkQq5Q2Yjw)q)$~P|ANRS z@i!m9zhg6@+zf3>qc!q!7SWW2wJ3ulMSGw)rSPULpqHZ2y&4NZfb z0hWMuU=hfdZwd15kAS%AjR_O%IJzftbzk$Q@a`+g{9Jm&y$F0-@zkz_d#}&!KLGm3 V98M=yPJI9X002ovPDHLkV1k_Y+9?14 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic51.png b/src/keepass2android/Resources/drawable-ldpi/ic51.png new file mode 100644 index 0000000000000000000000000000000000000000..1c85e52fbd981ad25bfa303c89653fa65d31c02d GIT binary patch literal 1039 zcmV+q1n~QbP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00WOnL_t(Y$E}oIY*S?z$A9nXS=-e?x{!@+-P94p;S^XFh7yfyWJsK4 zZ47aVd}L_+xIl08LcKNOg;xlPnK&%LbU3_?>i@$#9_g}8I+iTZv*sxLBY_>fYE}TB-bnehYp&<7xF4x|7 zz2393zyE~vc=mi_cLMpAX`Dq8zQjM557jj?{=-P@hqaqsxbkJvwm+Etn{)hfge7y0U zVe;X&Nj~}@1L?{<0Fle+iZWG{iGmh`Y|Qv-F_@pi>w^~HQDATch~Bb`=IKo%@I?V6 zkd5bl9yc`mFPK%{bHYl%4!pA!AO-0dq~ke_87k#c5eSg;20i+$L64jRHBIM}R%(E1 zpsO9ESqGsNYuQFqGC%@k;?6fa&+zFatAKjommfi>W_Z9_s8yCCiqs;COc|qkM6OIl z5+WFHuEN6%__4grKSl^wfO=D2lQ;K=8`s z5%tI;uS!`dk)j~`vWSloqgfG3&>uQc^762IHUF0!+F5sd{U7^rcKH)IR^0#q002ov JPDHLkV1n_*=d=I- literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic52.png b/src/keepass2android/Resources/drawable-ldpi/ic52.png new file mode 100644 index 0000000000000000000000000000000000000000..875eccfd29bf1df2cdfee58ad6150643709ffd30 GIT binary patch literal 990 zcmV<410np0P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00Ul0L_t(Y$F-KQ4mFKezXnRO}4jp@7#OO@gci$ ze3S9corbj0I=3(Rn>?Hs(MEgAc`V#xg5Z73qZr5o1=)3&*!&noO2{e(h*!l z@H`I@*K~9qJh~@5v1ClBf z^IZ9Hh|;}2hwNFXt!_4gLLZ6j={V$$04S)W;MO3%1#X>RuI}ZN+3zS8`Z@Pz4#E{M z2Fw8PFv@@Q^rT2sK~jkSf#^1*RUWzPCZ(YwkL}OG+Sd@*+l-A-3@W<&8f+$EKmyR) zpdr!U*SQu9lV6G8=?vuS0`#+}2#U4{rT0a{fT;ozm;e*~%m>GQz^FpThrT*MwhyG0 z`!r2^0m$Z7_6pRUatAGU<2Uv1MuftqPaVVUrL-9`g3v+6-c?#W~lR!NkPG`~Cg> z?^tU)g7x|YG%H6{nVg(l0&ceaDtzC!wOZ{Eu)j%!cluMQ0N(?_zYZlxclv4^;s5{u M07*qoM6N<$g4S}&mjD0& literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic53.png b/src/keepass2android/Resources/drawable-ldpi/ic53.png new file mode 100644 index 0000000000000000000000000000000000000000..7d6473d7e92f4e43ff246006e147828d69b05327 GIT binary patch literal 974 zcmV;<12O!GP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00T}*L_t(Y$L&>XOp|96eqMTkmRg{+RA_~5mX?dany8rNea|`X^8)YfT^Xqk@;g;X$3Dy+U+~=$zq1E>0?J{6q+H!RGu>2iZb>G6|e@jr%@e6TTiXBfD(?6U>RGJUaP ztF9UVB1%6D2pX})9}g{w$q%cF<2T#0X&b+SRypzo`OZmfSgAHtzD*POMA}N@lZ@7M z8fuL_0|4rhglF>M>kWQzYuwMtCsJv>t3YUBi)hWrB0;q)o>Oj&i&m7zynrhjo%R$} z%)*%yrzxW4CWl7$@yL#jdhPmDxLXJOJ)f>N%QB9=gqEL(&*%3P1=won1m2F$AIAnQP)!}hM%BLILXeH!nKbS{`QQ3SW(#QCd3=sgwD+u(B&owec8jS=+zqHXVJXs{$L&PPY>+3}I!w2WnkKdH{7sd)uG0Fd(e7q6$Zfr93& wuOSYSgzyY0Br??S#Ot~C>ksdL)wg5+0AzPTf#F)D&;S4c07*qoM6N<$g2gDwmH+?% literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic54.png b/src/keepass2android/Resources/drawable-ldpi/ic54.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf164c8ee00cac8c5ccdde1583825aafc38f6b5 GIT binary patch literal 668 zcmV;N0%QG&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00JCIL_t(Y$JLchNR&|+g`aP-VU+QwQ5ey&qB6}z1(8A){!XG|X)cB= z{6qUAbY&n$6lH-F1Vu;_L<@&I>?&~w)? z9dp8#8f1E?3L2KK-{C&-sLB6YgwzNlN+eVZDoZT-*1WprwqZG=PYc!yccutC_|O9I z8o-rOajH}6l3PviiqLoymv0{89gx3xbVCNjLR6Bs@$0U_4il<`u}Zl22@-QGF{arU z`Dtjd-E@W=5^NMPJB4lS^*_B^@t1sijPaw^Hv7@l?q5kDFr%T7$w>u2WI`fUoBz^fPV`+eTlTW>;$FQflGts5F`5=?%lzK2;isJfa?ad zpju{dL|Payed()TTDHVe6S$+n&8jR(lcxQ8_TZv`9aix@x9UPPG0>>s%wuV^!Ytk% z_s+T%3{8QaQjNX6FTFpY?rQ}CiY;rfC(ZSF{MAi!{K-kxWJf3r&RUrvwU-;R)LdU6 zCv*TFE8(7GH_F`-EuefkLe>-EKtS$tCV4XdQ~d-an$Bu83LcpN0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00U-8L_t(Y$Gw(4Y#c=t$A52jZa?mP@%fH`l29O!5D`U63Ir9R!3|Q{ zlj!IWNGTu%1qDcaRDhHqDhir(NPI{Rm*>}Fg*7@$dyLY$qDAs3t zef~g5Fw$!0&3pU)^Z(Dxn}z?l$)wY4HlM0it6y4cjjA$voO2wsi{lPea4z$mQ-I-c zIFwGOb9r%b@!JB@{QUeID=RB{Qgco<%Tz}r)zQdlnr3@Xl4QEGGtzc@LoZ#r^!g;P zJ%HgxqY>+^EmoF)BO9flpqe{X6=avPC?bLgVDd2)%ef1W6GeIWQ2+pVn(_QApY!N5 zm+>Q|6bQzEB8-PHjFqG>47y6c3;p{FT?efNe)*w66x9p)rT`Rp_=$^LeD*o2Whj@x zdf*h2G4x}l*Ui|z=je9EY^`V9Z;gpZZH&=9#>WB}5h_)Wa}AgcAS!`1IY630KZJX} z#TbV=7^RS=5L@s(GqsDR07PIWgtHYm6GCVeV+2%5Ga>MD?Z-|SCLZy?5%(N~f{2_B zfEdapn2lh@heoJ85~Z{g%UWvj1TqInCJd^Euwn=*2IC7NW=bM+c=jSf$;+iFm*9o- zLmr#SczSNYg{o4ogLOTAz3~C%ir|NW^##w8GewUFP|brpQLG2_)^X~v)?$N*&d)b_ zr}-k;ctGdtD+Fi2`X#bqA9XS2GzK{fp}*ay*WKp5=6SyOYJqZSxxIXgH?O?JoL#{y zS;hi4norVM`UdaT%jn(rG1i-6U=K4Wg%PU@S9$Hzt2Aox?zN9;`w!sNDoDCUYYo2p z>_gHqH29rf>rax^C9<6jj2GZkPuoSp=62pc`(Qw_`aN&I`WMyO9D@WR+2H0UZ|%iD zw7x|9?w$OQ+7db*p3J~Au(_4nx9_C8o_w#$f5d@sP1~57Df`~(P za(Iew5h?gY6z4d-RP0MqoZU2&qkX4T(_%nTj$(qNr8;l)oMRozkV$a!vNz@CpAA%%Fq+YKt^MAF!0hYfv UEML&(NB{r;07*qoM6N<$f+_dO_5c6? literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic56.png b/src/keepass2android/Resources/drawable-ldpi/ic56.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6ab3cca5bac54f3dcb4a76b230e2891b6315b3 GIT binary patch literal 1161 zcmV;41a|w0P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00aq1L_t(Y$L*C{Y*bYghQD)WrbB0Xp$LVN8mHV+N#ex_~Lrr`M#aC|Ft&!UkhhENb&gbY+pLETuW6k6uG8s?|f0FuCM4(VC=}z zpPUWA`s3@mH~qTO+#Omi_D5zMv4eHQ9Mj*Ow_BI6Twu!( zk)W=70;?u$TDNrLervK&y8KD5#Z7dv5Z49GfP`*hv!?N0`6rmR6hyUBz1x0~T=~lARZJfCJIgR_YVJ;6J z1Y*|(i;AH7JTN(v72%Z+FPOP%`MhPbs%AY+j+!SIhcr5eGzz8`DGiPFxC+Y%Ck+e% zhfO7AniS-w^V!)ihhI5WjX$yhXaTtX27zGCl!D9> z$C-fq+-M~b)s(?t44Xy8swyaAB9cN8gScT*;3}r~aubF+iZr`}xUR6bX)`DGbadm7 z?EM1{aDDK4{C(X+=?>?X{PMS3TaMau_)ni zkjydTINrKV>g(E*{Rccdfqj5+vj9kT4%cXw2}`mH-4n;CJD8il1~F}DdW!7yG-62u zRaMXp!D6-G%+6(apodGoCTYJ~qttIbbPz*!0KOZua#Kv(K5{Qko^>XVwdP3bi5_yt zWuPbu3Eg0{!^X6{OiEl?dJo+cPS_B-?v5WC$HxTS!s%&`<$chMCS0$Ls50Xl%-NdAm=!10e4 b`LF9Y8CB;yRsR$C00000NkvXXu0mjfH54RV literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic57.png b/src/keepass2android/Resources/drawable-ldpi/ic57.png new file mode 100644 index 0000000000000000000000000000000000000000..59932cae2fd2b0ad827b6a77b813fe1710c9908b GIT binary patch literal 948 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic59.png b/src/keepass2android/Resources/drawable-ldpi/ic59.png new file mode 100644 index 0000000000000000000000000000000000000000..c70b7af85fbd21ab2ef374a0ea70c6965f09ce90 GIT binary patch literal 1235 zcmV;^1T6cBP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO3=#8$EZ00dJ>L_t(Y$E}rLOj~6b#-Hz;9-xI5=nAf6w1uuP5W^o?=LDvmTr81k zbi}ALVX{S{Va8;MiN<(iq89@bP0SXvgiYnbIYf*h+Xzu)FhmAxN*I6E4!V}MYftIF zLut$D=M5%g*#N=k_D!B&^1R>se83iDG#as8k&T8`RaF=tABRShU%6YI_d$WKuvVkh z7O<=&>F0T?$Kx8c+3udVSSE+I1<>nsyHvZ?eN88tD~~obKul6t=k6jNkAvelfG}8e z+R@c@d7!7KryjuS!yfG8%(WU#ZLP^P)zoBb-D+Q`6FvR)|&$WvwoofU@#c;l@%3l_hq0_jl}Qs5h1z)hGCIN ztRe{(wy|Ec=x?RZy7LV8yzVXl$<3ar1OP-)RGLinbIr}~WXohMak<!sd96P&1M59Vd?e0 zKKk9IOPvmfV=&JL|?5-}5zqQvl=-51-SPoV|8ZPKEvtsc5-CSB5^OuNCJ{1IYL<{lso`;YW+g zeztt1q{}01lsf;UW1kwRQC)Oy(}>oIZj|XP|DYRDb@QRpn4EA@qA{JI`{LL3-(65< z*+cyGEqBod5+m`fKa?wumXgY+K$4Uc9(j*yspa6*WHh-bga&pBfG-+waiY4wnCGmJ z=IX)FB-wl96x}1*OcP^^9$$QUY)1e9Agp{;5pta=snCPrq+kG2{9+T8g%%q|M<#DZ zsA%00z$*m8N@?M~qLkZZnYwbY3=5XaBvmiHO(U~YuMSU6{v-naZ36%x7?%ty6Dw!- z7RbTLRY-=M2wZ3;b#y3Yz?HAIhXTLu2oQ>eBMO;8o*y55R<6p$osQ2T2m+jf6rEG6 z^Zuyt%Z>m5Fzxg7snRs>vYugCkYp1xC}rf`2Um#pla>&G5_1L{{Uyw>W~8OSGWKG002ovPDHLkV1mOAJpKRx literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic60.png b/src/keepass2android/Resources/drawable-ldpi/ic60.png new file mode 100644 index 0000000000000000000000000000000000000000..13e358b6c5dd7761d5c0f9ee00ea639c86d9b062 GIT binary patch literal 1352 zcmV-O1-JT%P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb) z6dO5}!)7D^00hWML_t(Y$K94qY*bYo#eesGzj^bf?R44>rBGTxl-7t4Kp_|x3L+%n zSBOBUNTL#PVcZyXBf2ndG-wP7h>3B*0;6IKSO`YKX96OqEsB*E=m$)pEuFS+-n@6O zi;|{@y3vL4zdM_Aa?Z{F{4f0PX5GKcC&q)dz^_oYa@w?9A}Z)05K0ooN=X?-0#Hg3 z#j*%0mI^eXL=Z-DU;p)&4#5sUj^{MSgHM2$)9HQFM*{8sIaBHGIFFxj$qyHVpY%-% zc{IymFdvvn*I{UQ1lKkJT_rlqZ6|V9TLL&To>LnSHt70m4P|9>TKc+#RD+b%&7h}0 zz^|^Q=V~6UVk(3A5t7*{bX^<5udbtKAVB!#Vo7CEJ>|NeB1GmEfhU0FFn3XX{Tr9t z+SGHe%));N%*%rqwuur3x~>rxBZ62%$q37~2#Yb6Wf3EYWF(%yyD_^&sgFU7C8IwL zbb!93rshmlcaJmgkvdVgunNOY5=MO#FKEc2E~I9m4fTTVAoIOMN+5==A`BCT`asi> z!`GRfDxH3&Zy=w$5tX(Bn4L`SUZ_-Aw$>AOHZ=ea7%u5$cTip;@GEQaL`W)Iha&iZ1E;Ps5C_Ck5=JpZF~v|31`??yP=-rr zrwCnJU3XGqVy2=bcd0XDY>VS3f$8W}TiO#&DW zSP5bjt_kT0lG20^mIuNFOzz1l_ACY0^C49Q$qMeTcX)3;6djMEaEV79+$^907#5fw zQb|T6Ozbt$>`~EC0h_PR5A*uh7jax2{0fv;&5G0!8jfzFwy_amxd>3Vl$`>hd#O<} z6rqCrl_K_J2W$_71;CayS<;g`ApIz)0zww4UHmwzzYD@^Xl@cYu2IJvSdjbXosU#+ zdmAKBg%~<(A!#RXI4}S~de%xv&ln9=*x=PcrkdV<#kboJaj?0S0tDP}G3Hi^}WXxrb+p`BmEM-P8@`6nrVZif?j zI1L>C%M0X;x~j~;+9o)#b?Hob<@i=52iw(eyFXN)H7!${CiuDea4Z8K02_e$Kz1~U zzqx3CGA__?7pyLahF0k8hVOwNfHvR?qjCJ>(SYO)LGhpZMEnj7dB)pLsDKXu0000< KMNUMnLSTY9PE=n2 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic61.png b/src/keepass2android/Resources/drawable-ldpi/ic61.png new file mode 100644 index 0000000000000000000000000000000000000000..1ac441fb3261c3b0dfd5b4d1d23de0fd56696c69 GIT binary patch literal 1050 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 XYTdt03GV7u00000NkvXXu0mjf3X2>M literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic64.png b/src/keepass2android/Resources/drawable-ldpi/ic64.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8aa999e2e6a8e30f68866b5fe415f0313d6df4 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*O%l>?NMQuI#rs*txmQTThj40SZZ$xJHyX=jZ08 z=9Mrw7o{eaq^2m8XO?6rxO@5rgg5eu0~JYlx;Tb-9DjR|krBvinDB4?I}R>}hE

Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb+ z3N{1JRHKLh000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000DYNklV5OP z=bZOE=MVT_{%cVHAR-EYDRBn?rT#q50!Sh`S22z&rDgztqz1s0c$dIUB(=SJ_ik=) zZ-2=!jATvIXc&f;m6dh9zP|p{z`#Is|Ni}3VzHRbWHO0}z+^JbmX?-w*VotoO7a(y zzwO+)^OZm#@Z8kY)B?jWOirgWbn@iM?;#?lXf(R6rKRO#tJOLVfQ5yH;hvtJPYuJ^ zJv}|W<>t+syK{4MM*$E3PoF;h&G`8EyCiprh(|<{Z``=?LO2|LJ2^Rdrlh1~sK3Ae zAjw+9DM};h@%el|17LA+@$I3Zp$3x0B9bX0`HhW@uO}Q_xpL)e5qVxjmXJ(|+jvMs z9=BSpk;8`%pAr$ji1_C4T31*18UUuIrW$9@o;@le+_0wiA+5qlg<-Lz@b=Kz?KlQTu~ zEs~EWbV(+;-R>XOu3dXkM0Sga2LQCYDkEH4TKX*jG&eUFkaQ`fGUM=s*=+6ufRT}r zg{`fvMI@Jqhz0=X&!5li@9!_Gsj2B!N)0QeLVu}Q5m7BIEtLtbdwYA2kX$DsNuf~4 z>h*ft6PT{+y(C{H=>UL=ii#SC!!afzACW9e*qjrArfGD!T$kK#cMkyU+qbVY9);az zv!#uWj(S(FTsf?iLLd;x3WY-X0J23SB^V5D)OEdEDHR4VaNo`o5zB@R8$JU-yWKuR z@*R?eRaI4QxLmGKQ&ZDXrIgrgHlw+@`M8KYd*Hx~F7a~$c(tOVd;(3^G zyWKyT&F0BiEM_`(?AR&*OU|7;x3#3CB&6$lz+$mPqS0tlM@NSTz{7)sgR3$!GNueZ`T z{eFK3$sHsgdEkH&k>oXN)-(cOQBl$D?c2AvrKP3a5|Ix{7GJn<;fX}DFJHd=WqNvg z+$4S0O((<>a;Gsi@o{l%&?-q+?YTLGLXGG*p5y>U#C@3iC1VFFXd&}u`j)}jM++M$a{Sg3I zv0}wUet!NCfB~h{v{Guu(|8AsP5_Sq2m`pNl$!n5ck&;;-GK5BT}uoA O0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igb+ z3ji(xRRq5P00QwzL_t(Y$F-HuYgAVh$3OSp_ufqAWhPOliv$xaO{I_~rUan{TdM^@ z0Hh&hhyv|t z+o*%u;z=}$*Ab2ZBS0UTlrk!kSZ0BnD1KIHH7Q?9&>Ub44V(ieNI<0($|!7PadHkx zkRXA81OA|YIs0z*^HNXgIfzpy|AW8;F|-Y};rIKj-B=5wa+K;k+*z=Jow93oUwAj% z;dDCh+rVakrT`~Nz}w}K9nP+poY`NUt)4R5%?X{>x0d!S9RcVnboJHl*G}20t!);h z9-s#SH}4{ed|%vIoaPLvXT?$MF3tg8wW6YRG(@EclQj#pX!QV>&=4167B4N1GRj*( zT0|geT;Aq|H}CM5@>CDPkW^&{hA&X`ixuK>oK6OkcHYC`H}16F2LtHbx4Cn1Ii3jT zLu_Cld)STI73;thAxHU+a`S)<>y3LmqlM`7@~_Ls<3ik>el19d+ybo%w3rKQG5E6{HOVAXg;)|RT9g}($LZiH=MH-pzul|2A0c| z;SB3|AR^VpzQqUs{Z3Y7q$Umae=C3)zU=s*<4+02Y1HLkobD#Oo?JFG00000NkvXX Hu0mjf;$W5) literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-ldpi/ic67.png b/src/keepass2android/Resources/drawable-ldpi/ic67.png new file mode 100644 index 0000000000000000000000000000000000000000..d8048d1a1e414277e999d3db60bd66113eb0c44c GIT binary patch literal 495 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2igb@ z5)&c>^WJj+00D1FL_t(Y$L*CpPQySDg}+%PQ9|njK#!=%om`|qsZ+!*QkaH@CKuoq z+yK#V0WJVdq{JeQhr&PX#$KW%mS`AhwKKD`Z{CjAv+yqmL~1QUJ4KEP>|O<~^JT}( zLnT6_0Dn?gNsvrHpI$VwcRCtxL`#gsJ5(D`|ll2{lmrfg;p0GMha&DLjw z7wnZZTi3R+7xO$vM3Ayf_AFNEd@&V~=fHXN>VDu$ic; z!`f%temik%f;`Wip#2R#+n(jO1jZPLkE?pPy3FL(>o?j lGUcD4-QFVi?G^q)z5xgxv5WynPT~Ln002ovPDHLkV1kPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2igb; z6b2jh8T4cT00Ny!L_t(Y$EB4`NEBfh$A9n4_z|wLT2?H9hCu~cWZoo?fufcbeHdY1 zEZHIQ5JgZ3lHo1t5`$nWSs~SuM&ZH3sy8u8Aw391>A`BFR9bcBeLL)~AFZ?I_#9^b zJn!)Qc)sQpN-3Ny)pywOup>N(?oFp8oI`j#Ae_DvPJn-d=kLj(>E1;E&RuO};KL`R zQfML)+X-SU=NuUxS`xgk;}!}Hgbu*{J5>lIg=KX}rIaRw7#SW?J9h3C{{;X(OQo_m zuA4$mk5gQHnxrHH!-xPZ%VuuQ!Yc$?nooTH<8dsr696R@p>R4I3>_UPEiGJf-r3m) zz>jb`DCq(a?akQOAc-v1SAnK!s|U>6tGvj&e2{~c%>Z<@Rn6;_Y-K?CLIz!JRdG7i z7g!tMV?hZ3yZYY%^-=Fl_M0V9os4DK?g3kSpJCe)?4N`tuYvWO%#2_3o@m3eY_e)E zfLKEYN6){AmZXxCmmf#0A_jJbPU_J@oo>e%RtvP z(nN?YzI*_RiuO|aE{o26-!KfF?(P8qJSm%*RNmDCq*6?)Ox802Krr~8AP{*h*p!`t zbhBt8nz!dtYGfUbJRxUWW@NIyhL|in1wcs{5W?*y3$9e%0HF4EJ1q~Zky6r7-_C=Y zh@ZPpQBt{Ya!p?2yng;N7^hRb9(2t`2C>QL?`Z(QG)??|f1EBXt8=%>v5UksP0ZHO zs5f4xcs)qz++@e!pp4el@AuQ+(}4d>?y?#{2+e(o3JzSyeQL70(Y)*O%l>?NMQuI#rs*txmQTThj40SZZ$xJHyX=jZ08 z=9Mrw7o{eaq^2m8XO?6rxO@5rgg5eu0~JYlx;Tb-9DjR|krBvinDB4?I}R>}hE
StO&>uS)ve< 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 Qy#N3J07*qoM6N<$f`!V+(*OVf literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-mdpi/ic_action_eye_open.png b/src/keepass2android/Resources/drawable-mdpi/ic_action_eye_open.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e966f5310501debe7ec471198eca25162f3484 GIT binary patch literal 739 zcmV<90v!E`P)(#TT&_MYIaKS~Z%?o^x;3Xe)z?T0sQsfS`z$mV!kQ)QUxMus*3;74`S} z!J86GRGRifKjgr$$qdOk_so54lJw9+59<_#zpWT!F~(S2wx6`0x9xQ=pq-=>srSC@ zy)TClO0Dy?B2SVIQMZU{wc5@s%g&LU1TYKW34p0A%f?i7sDnFQ3tA%g-j_#4Mz)K{ zIDpq8G6&#}h>Y91P4Y3x_arAt?n{=rxMK2_rQZ8;yLv|641J1l7p&x3jm#S6|?_2$pw<1NPYzHhU8NK*YZ5yWo}(1nRhK9 zgi!L{msRx)$s=i+_FMGNNWLZc7Qkl_StNN6K&roSKF{-Q_FHw%9qLMeCEQ+;M`Dac zi~a`5d5iuh$*&@^C?XTJT5WT^Uay*%n)kjOV=Sub5Xns|7LX)KAO@LB~={~ zkr@;4h2%Gq3nKEtoR|YJOY#+fvn2asjKwrf`@Q!YyKs(PRs2bP+U-Tid{X|vfJP}M5{URou*vNdm4@hHo(W6rq>fQurMwYBJ#I}k!B zB}q~sx!an~gsLjZ5zB))lJfv&P1s2h8MjI}x|;d$#{jaD+-%+MG0FFBS^vyFzqTH6 z!8up?%fwtY3T+iJ3gD7iecI~1Z>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVip(7?jn$k5Ex$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1POzUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1= zG!Lpb1-DyFaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zo;KfUG6Mq>yQhm| zNX4x;*AIG&B+4B7IQNd#3dLDnZUJ&StyV44rH0n5Q(2akyj3VMIg?!9_DGS#QNQZl z1y@c{f8D(7km*4u%|x9pA6~X~^X>1g&o}Vwe%)9X#Q3bLeNETqHw<5I zef!H${PuzQtQ?jTt1it=J~MTz-~p4FY#*&>1vcwSGoD!;(k;#SY}eA=|5KC?RIho& zsP|*WbFIADdEKSbj6R0GtL1H+qdP6vJzV*07Jn4;QmaI#w^vJch*zu*&voyfnO-M+ zcZHMN+3aW|vvW<6zG>&0kNB6@@?D*8{81{}BAxze z-BQt{4L1~1jT0))7_Fz)pVeYK#P`9!fsw(ZrRLZbj)oVYg3{B~&t;ucLK6Vx856|- literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-mdpi/ic_launcher.png b/src/keepass2android/Resources/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f34f9b5b43bcefe53afa655648b3f48bb4911698 GIT binary patch literal 1561 zcmV+!2Il#RP){n}Bm}n9W3DhP?X&aH6#Klp-wQNuGaBbH4Zaz2Eu1 zuRR4A*SN+tl$RzD%f+hLLAFm>r$!Z-%UNj*arZ1WbSo{Pw@=idDOF8 zSkL(q031dpqFLGJ*G8R8&GPP!+vXVx024^v3;?s)d>83AmsyX~vI4zFCZlPkc_l#bdPTYDAP z1t>T2P;N--vyq32>jJ#;{np;ghAo{n20=qr3-45!HZCH&gy#4{J-h6StPN+Xg8qq0 zb~y(CGhrCrAJC+^ZnGEgc2n<(iI_$Jm{>~0GOAm7MG9j|hs=)RU)wU?E|$G^MV2i3UQA+jAn z!>xUT25;|D+H?klN*dmMSU0GKsx8BI00jgcRc-0m-bLU~of0h7ux!2t#LXdivqOaK zT?DFcA29=KCBVQ`Te1@g8&}}*VlHN!{RDF)30R=CbX%tN*D#l17yy>|SP>T)tLxFl zRgV;E3(j@bBXeynW*5iX=y4lCfLvKPE~cxHLe-*|j~0Ccuc6069a5-Tqz7KZuj_)x zHo)dR$B{zSVo-SX^RQx%fqt z0P_IAouogQ?_SwP2Eff-qyqqND{8s-XB_fvo&9MM!#yjH?nTBs(-$sX=BFkFKxa1U zQV;noAzLdekM4C^#Bc`_zsM%k7?M$8zwH7pXA(%Wz{{Bg@^_scTL5p;uRV!{O8S_# z*^@Xhd=CB}Yzkm104xFk#u)da{;aRaq5lJ?G481_I{#abYe@YI3D013-+pVu00000 LNkvXXu0mjf+nm)w literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-mdpi/navigation_accept.png b/src/keepass2android/Resources/drawable-mdpi/navigation_accept.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5fab3adf243318d11ec95448c6deae3f52d9b1 GIT binary patch literal 1197 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi#&Ct}+$imXp$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1O?oUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1@ zG!Lpb1-Dx)aO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1z*4|&C&cMJZ@9E+g zQgQ3ebbs!H2{Omc#n}0tv`#21C~#0@f8W4;a{i~dB^meHw?8lo^y+Np_VX($n(_YC z@+E&a+Mh40ocC+XEx!5ZZ+*78?c#g6#lYQ#qw)iToIq8>mujbJsbce3PBczkwdxup zkDJUF2f-x=jZU}=Fgph@h!N>j@?Pr!beU|A1vJvL35&6;ySFy-J4wL_Ed=se(2D>)PC;-R9y zdup`rq1*C;xs&W09=YXh=ju@sDp||AN+rHQcJ=j-`9~Vw?O~j!62JMM+>gE!%~B^t z*B7ZvUsQj@6<2p>=j`nZUu@e%9KIxLsV26jAO!7NINXVs5!)A%wJ}ZOCQfK1TtXVLsC%j7TwBxnPwfkF z143a#kWEwBVA^;<8Xe*Rfp{1b2r)6l`Y;&M1nSe+11d})!88@|fV7Em?wY^@!IFJ< zzx%%L_g6lYn|NZ!_P*@^fF0R!DNk4Ey(pw0(5088i)7NAAyvi3V61GGFwE-8 zEY4%4ytMcg9swY*TPqYvQGQZTO`TOd4D0F^Wdksha4kih#{`z}tY*ZS8=swLpjM7E z`=T;0TPZxJjn`~ES(_-RwRtsGW)h=t#1*K3j)?+YeZg=9H_mM83Uu$8IRnbK!7^B0|oRK@>M+ID<_E2|KE-Swu4p=qV~C zvqItwjr2|my48|3oUJm^f^n{5afs!;l$thx6lsB%Vi6QeN0Owy~geTP{a~;k?%VtJO^togZ)88eDp4jXpN$yxVlJ z-Cv(t1HjjtmBtG0mC~)-w-Xmc|0A#XI^Ws(K;?_ZB1i;ps&7oM9K80Hcy(u`J{-J! zdbY~~i`~KJeH#OC^tBa#;hyihJ_3vP2NPiZM{(hZJP-=q5YJropPZW7|DylYwX+t; zo|ydJw|oEcCEo{PfA{L?vmf`L4A}KQJA$0Q7k=X2m4k|oa!j;vhU>{?)YW-hl7Xr1vcVv^sZI*_)iaJn7(%p zizD|nDs^{PFwwE@!oRkyV)5LouYY~u*u`hiH$Bgax4IkWa~JIVp1~aX&A)!>c<1Bq zJzc+h?WLl>(Vc()^O^qZZyph**L;ENpbi4y=WoC4yxco}%=>j@(-YE%$>{@s18j_l Aq5uE@ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-mdpi/navigation_previous_item.png b/src/keepass2android/Resources/drawable-mdpi/navigation_previous_item.png new file mode 100644 index 0000000000000000000000000000000000000000..8d19e3911e0d6d2098ad89121f3815b7fe50dc50 GIT binary patch literal 1275 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVit*wDz-$k5Hy$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yuGh!_r(RHE$SnZc?2=lPS(cjOR+OKs0QR(1CN{Si zS-6?Gm|5U752`l>r&|nNaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1z-tv0q z0R{%fTu&FrkcwMxrtjBhNfc-+w`_UQ;iCCyipcEXSARUNsF!Gb(Es5cut52WkiC`a zPM0auyERmu+&fCo8K2a?cysUVGp5!jC!bZ@z4^WQ{WCS26Bl3PxRsfxryxEd#6iUM zzwISX*A)lDmj-!0*{*!}sLx?B9cTYb(>DnjaC(2>{A}=0GlAvWlhxek9;m%M-702p z$ME{XdYKKq_CAjnOy&4;h>a)O=&0YtHWXaMM*OKV^k0rk4*Z_cp9L zb*AM?B4e5jE6b|_^;Z>P@4L(VD!B}HHx$3P_Lr-tl8Zy6HQRNO|J#Za!49!M1E%&n z-ncUJfzp9DvSkkfry8y@(yib$s1B5_3oh<5nXm)MZm^a0+Q>F((s!2j uuua-uwzOu&(wUr}{x`)q+-Cj5VZb09nXrY!F)$od9C^C>xvXl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi;$kN=<$=K4=$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1O?oUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dR<{_M znz$I4;WQ7bHwCv_EO6@82RcR{6tzfE4HE*U9}p9saDg0n(of9;ruQOX!k)OLDUX4H z(aY1tF{I+wo9p)8PJt4~3-gyMec_U-Vr^=1%F z@{AR>1qFT_%D;<$%l+WJH0AlBVuyE)=N~Ni_s+8ad~wesi*qe8$}NDuF(JTCX-`t&3`XY;-!Ahweht=$KnR*`cr0(Fa zJj52qzBXq5(`~;6F8^?nzTI3`If{_$w-PwGa?G|OL~<6hTfpTp+855)g0Sn~KpRGh~xu8VOdlsb_8m&<_REK|s9-k`uKpt8o()z4*} HQ$iB}_Fb^< literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-v11/EntryFieldHeaderBackground.xml b/src/keepass2android/Resources/drawable-v11/EntryFieldHeaderBackground.xml new file mode 100644 index 00000000..508f0487 --- /dev/null +++ b/src/keepass2android/Resources/drawable-v11/EntryFieldHeaderBackground.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/keepass2android/Resources/drawable-xhdpi/2_action_about.png b/src/keepass2android/Resources/drawable-xhdpi/2_action_about.png new file mode 100644 index 0000000000000000000000000000000000000000..2641f142a4684cf149ac36e23417ad56cf021e61 GIT binary patch literal 2257 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-xhdpi/ic_launcher.png b/src/keepass2android/Resources/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..03304a0e3b3bff02b28350e2616152ccade772de GIT binary patch literal 3902 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 M07*qoM6N<$f<%2}4*&oF literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-xhdpi/navigation_accept.png b/src/keepass2android/Resources/drawable-xhdpi/navigation_accept.png new file mode 100644 index 0000000000000000000000000000000000000000..b8915716e06792d926f397a7b17346f656c86aa1 GIT binary patch literal 1546 zcmaJ>eM}Q~7(NOZ>jx?|Mx7)_1qW{Q?n+DPg;FVn(PM_rcwjwgk7z zaExq;FcCM$1T(WNW-4=WI(1VrnIo~NbIM>M*htY0#}vP^FxeFW{X=%i-TV8!d7tO~ zdUEwS*{>~}w{ji;01FLSdXr$+1>d=Igzo{O;<{i~@EK-4moDL57>fgGHrj%N1`;d9 zO*m%rRCM7f01z5Ogb|R~a#dE8&^Q=`4tJ)^jrh+MMR3IR69s}KEImMxFjdYS170y97Bn2l! zc!x&%v?#MN2TZ3~98}8S1S_0`fJq7&qJY&3^{b#9Mqmh$L$E3Vfl;Ljg%NP-kqX&Z zTM25?XHMl3ZW^hb=NS}&TrQW)l_;axQV3D2)etO)%@DX$DNsRmu?1h*=3L=$S+q zji`a*c#N{*2E9fqaL5S4h9>Hh6v?`@WTg&HMvx3dtw7Wn3SD|yrV>#pbjUPTPg|WN zPVv)N+cT_sR%}oVBqLvOnw4(~Yn#0m)vQ=ZC?~O*G{jdJEH8vU^=Avr+i|X?`*2LY9 z7jHvHE29PrBH!kINN(*uSt$Oev6h7iu1N7t^Bcq8%eH4kerw;l_*m?|A2AK`y6?34 zP`@{J#lYB+FlJ}1sp{bG{!_iCO_Q1c_7CzZkyMzhv`>@qo7TfY@Gmt3uSG*tgxNWQc=v|JYQSD*fn7li5 z#PB$#i7UEVf00h?$hp1uLQj2zQtZFGsWX7jD_#?wJrFj3Z4#6Vd{fyGdK_MQaQVc! gtQRZb>Mc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=WxrvFRp_`ehlYxt&p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaLa#Yay`aR9TL84#CABECEH%ZgC_h&L>}jh^+-@3U0TU;?%1Tbc{YIYLTKECIn1BASOKF0y*%cpPC0u??u3bZB!Xq$-uz0(bL5- zq~g|_S!caN0ws>6y9Ik+a-Cr<7@g9ops5=p+W6>D>wl-9>bJ~V0$XyPvIp%D{4IaW zg{ASqq1FJs9y8rZP8>{!ecBg3`zBMNC!?oq{QdEnz0dD`Kag)+;eP*l<+Wy?}knLGOY| zt-1@k;#p!J2uwK;YcQ!*?t$2S-|e3t=v45Ut+t)B{g2lgah;2m+kb?8U^~-bpDE^G zx-0Yoe_i&`{Km`=+Gp1v>`su3VRhH}C-Z|r?rPMYwM-=i=lL^b@9F+y{PFPlX(`>3 zxVJyEOMrak9nZH{+!k73T`zO3^0tt`&d+A52Rc4)Q#ml>vzf|)6`wu*8w#H{t1RIC zvh-->ex@xA%O8mDh-~M~{~+@G`{IACTR93CZJu8YI(zH<0o~hkzh7odOno7;SG z4X>jP2OoX^srq|yX^f-$L(vWA?Drfn*^%Ea9r~;@^4LF*-*2RaL#{tM%ptHueM`|i ziK|KP#n#7_#y^^|^Ke|(wOhhbTOM`aF?+T7ea*k(nD)LEd9D7hIr|TqEkAB(^*-a= zefIf}Y)V~K9hRz?G|qpZEgh%ndCpxI$X#Jq*!H;W;^ybc<@csA+*6rio8NH6BL9`! ziQi=>!e4yr)V%kk_X5|^xl1^z=X?+f-Q&r4M@7U!!qzA0qZ(_$_2_~LS04GAIKH0t pXZj2d1*Q%Lr3PebX3T$935KrZ$4s@67ObEm-P6_2Wt~$(6974yUf=)# literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-xhdpi/navigation_previous_item.png b/src/keepass2android/Resources/drawable-xhdpi/navigation_previous_item.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0b485f68107c7880f6340db12ecf16b4fb31fd GIT binary patch literal 1725 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=Ok%gO?i#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaLa#ASy`aR9TL84#CABECEH%ZgC_h&L>}jh^+-@3U0R;;?%1Tbc{YIYLTKECIn1BASOKF0y*%cpPC0u??u3by)V>cIWWKId%8G= zRNQ(q`+c@=q0I69>FYNBKB8kU@6+KV*Ap8Yr6TmSQ6SR$uZ6Fv?D!*9{yofh6MR-T z#3tyA%STWD%khHAe#^E)(FX<9c076Xyy5->t=S4wHy@BH=(!)iO-%nHe_V!a+q4Gb zgvPBuI+*gB7}s7-P`2Qm7Uk(LW-o8UuzgG4;Y|k~C)i4qr~FZj-)g7J#Mh|Xx6thf zPqUo6W{7fvym#Emi!8N?JAX%Z=hz4{ZQFQr&v%Dd#ZyT>n?qtdReOv1`T&vxo&lvR1ujy#t#jtOGZ41nKlUMW?Rv5p3w5Bwr z=I6fUHosSL$cHccK@_jbT53LsBid$JTkd^8_u%O&7G^{C&Oldx}?%Y4CTBt6T;$m8oC; zX3c#&qp57x%JxNBtR6MY;s^Ct8y#80$9}_WwWxyP`Jd~2gXMUuTg1*X@w6|pbFb9d zY*SXSBux9j29tYN8Z6c@VLZxO$rPFqEu)m0!p-sY$OR$ zsPgkVk#GQT4p7Td@lH2gCQ zVX7={l2AOBi&*ifIXJH8G8iV4iEdg*N3m=M%;9ht5R<`V(g+02kgvlPW}436KdvA| z3`$I`$JM9~bSNq^Q6tWy5|zH+f>u8vt22zXiD($Ztk5%HI^@{WI8ZA6f2dYFfi~bt z$cK9WQ`jKO*CUK1#DE$xC2??B{*F|7t^h+6IEu+oR5RYi#2gey4LPVD6eP3hFep_h z)jCIHlp&RJB{~DH&?ym#kVhpn=xVi!D`3KGmJov2(U2I1MKFg2b409YL6n#chq0pJ zajp2)|>5v9o1QOvLxHNFt1qnQf1DN=xFGd7bO6 zH1XjO*7+ZU+{x7T)(u}!t7nn@f`UR@i`xJ4@lyt5ebXl1Q%L`+B#`Xh9=)$k9JIGo zQ`n?zVqAT9|82sm1e464T6~CwcdMGhF*gbBdk@^+YIVrw%Q*80E9)moA?% z)RVIJ_9h@U_0c_i#njV9JiGR@6aB{kL(4S&fy3CkZsZ-ScWL*2fO*N*Rd9M=RhqoH zal2{0F4h9$>q%ZQox^jRIdg4^zW#Nta_{tXUdPNqw0Q3kkB>EnEhVwxOhL1TBJ41f z^(LO+WjDq&7Zu>ePX=o&1cBRW&U>yH`XqDI-7If~(uAMw%8{A9L;S>sL2E zweL7FpWE+i4z~15lf8{s4>bn{M{n5kx>>l})pIe0js*vZyyUq9owk;Ar?#!uM$P8! zDXNQoQP!r}kv2R1%HLaps4-6Um$RMP_;thOa~dSoOJ?M_ranCiZ0PAy-CLNRxyoO| zDz80z-5ng+RW47fK9|vSA>}&H&cXfRP$piS_{(Ruox!+qIe-?=-UU(#0Ui1%Ts*<_@ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable-xxhdpi/ic_launcher.png b/src/keepass2android/Resources/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..479eb39b27c8d527313f68e8f0e1fea6ad45f61f GIT binary patch literal 6861 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 Y6RKUD#(0B`J1qYlJ~xhYK4M$$KMBsYYybcN literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/BlueButton.xml b/src/keepass2android/Resources/drawable/BlueButton.xml new file mode 100644 index 00000000..de790c7f --- /dev/null +++ b/src/keepass2android/Resources/drawable/BlueButton.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/keepass2android/Resources/drawable/EntryFieldHeaderBackground.xml b/src/keepass2android/Resources/drawable/EntryFieldHeaderBackground.xml new file mode 100644 index 00000000..058b5119 --- /dev/null +++ b/src/keepass2android/Resources/drawable/EntryFieldHeaderBackground.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/src/keepass2android/Resources/drawable/GreenButton.xml b/src/keepass2android/Resources/drawable/GreenButton.xml new file mode 100644 index 00000000..26143578 --- /dev/null +++ b/src/keepass2android/Resources/drawable/GreenButton.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/keepass2android/Resources/drawable/HeaderButtonBackground.xml b/src/keepass2android/Resources/drawable/HeaderButtonBackground.xml new file mode 100644 index 00000000..231b6355 --- /dev/null +++ b/src/keepass2android/Resources/drawable/HeaderButtonBackground.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/keepass2android/Resources/drawable/Icon.png b/src/keepass2android/Resources/drawable/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a07c69fa5a0f4da5d5efe96eea12a543154dbab6 GIT binary patch literal 2574 zcmV+p3i0)cP)Q`Og{P|8RRXpj5bgrSmEzSMfBn+{{vpNxw?;5UX;iv9sYxy_`IQHs$i<61a_iv^L>h8s-`D(`e@|IgS*Fj zNGM876Gf;3D8*1UX9a%v>yJKD*QkCwW2AirU(L{qNA)JghmGItc;(H<$!ABY&gBy1vJIEUj-b8%el*o|VkG)LqNx#TG>Jvj^jIte!!+RY z)T4j$7+PoF1AkRBf}R#^T=-q|PaK1$c<4UH)Hpq3$4WA|xtr!ZQLC=*vNE>O6E9kp+5X0eKB$6>C(lPwI@3#oY zhS_%x7e|j!$yG?ECXmh~EH~^OeuK}+sWoJse3Z3?ha3n`MM9KvA?uqpEnBg4Q46)7 zM$p%a$@l;+O}vfvx%XjH`}a{(-HHth9!JaUwV0*VqGR48^gWNYN<&~7x)y$e!X>e` zZ5!6KZoxbKuV9XUDI%#M1~IVh?pNSdeb~6@$y`v|yk=XK+fHxnDqnUK4&=QRNyIVf zYbDM*cI>~qIy*a7=z7uqkw@agd(<=y-Q7L!ty_23SGdXmahO<;N=wB+j;lNm%=OHC zy zU|>La6h%92y4IPufI$9>Xu!@y`TaNgtg&41@PwMwBdmSm7)xAWDLoqjZ==P2#*k7! z3o1)cVSI3KP_!?d8G^Lg0FtLXC~JYdxi|c%h~lXEixY=%VSFF@!*3&&9>(Rb|iK54Cx5;s~PY5iaV1het%w`dgQFBAJ;aFK zImQC}(|QaCFYUm1JVfzSc)ebv=)ObI)0jwJb``}Zj9J0n0Xgn*Zc(rFM9$xh_makZbm-at_v5^SW zM1y1SW@%+FuIy*WR)i3A2N_q;(YO`O!A|Ts^%z}9ZepCj3ytlw#x%N_fNrKKtPh`< z|1{UqF`4LxHaCQ79+E=uUXCOZ35jAMRz%R%0(P!0FMv=sk>Nr8%+OzY^c-M9@+fz=G`qa@v4sF5u-2289-#$**LWnyNNDwDf1( zkUiMnw|y$tn>pQP=Vn!#|17L^5AGrjtBkN$D@v)Z7LXc5EFhLB4<;7Wehh)CMqX|W zqsiZaO^benJ_hwa&V0ub$-_HUk**?g6fm9|!@kguU6*zhK)$qn-<3*kFrYPIaqR=V zUaUvk>@F_89b@tHs8R!*QKY;INJ<2_U+K6Ca3e9Gsl2{qY0%a7J?uICWgHuLfj+MB z=GkAN1&ifT#2u}B+2S#~$5jA(Qn^;H%CCmIae4AE-Dsng|Hl*Ov!z72k3ZnJs{pp| z+pW`DDueC#mEWOf=ucJ!dTL}hzOeiS-i?m2E;`EKz4<&Lu~NnW?peqVU^@<+T3KKu z{yrI%Qy-Z%HEvLUz}n^~m?7x`xuCtNR#L2En!T>dQtIKdS#V-Hzt3RtwTeYtmQ&dR z6qXZvac*oc@BUYEH%@Ylv_1&tSjkbzzU6*h1(3^C`;1z;g_SmOtclS?KWk2VYE zM*oS<=C483XckW?GN|1jfh3Ro(h + + + + + + + + + + + + + + + + + + diff --git a/src/keepass2android/Resources/drawable/YellowButton.xml b/src/keepass2android/Resources/drawable/YellowButton.xml new file mode 100644 index 00000000..bad953c5 --- /dev/null +++ b/src/keepass2android/Resources/drawable/YellowButton.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/keepass2android/Resources/drawable/btn_new_group.png b/src/keepass2android/Resources/drawable/btn_new_group.png new file mode 100644 index 0000000000000000000000000000000000000000..44ffbbd825d8134a20783f1bbaa2304d53bd770e GIT binary patch literal 714 zcmV;*0yX`KP)as`fs5AKx4^gI92!$rOGG-;Adu)PQm_YHAK|^7a0IvoJPA!8QS06ZHb;SJ={5u3Z@a+Ku`~p4!r?e-S z0Lmx8dlC8KyNo8l8{n|65O6AIRVM)BlYjx90p}*DGJC-QcR3c{UQ&fz;WP&5(w2iKl;kABo{t&zzr>(E)aov4bucbM4Znm1W+4tb%^nO19&AO z{ZPYPNYsF)h@>H>(NM^|x*B?%4v7@_9GZX$qz6ztOM&)&WTMetG)e_#8WxcM*@533uTU| zmGXd@`j6wnT6;muCZi~qCeU-%4+Pcbj8a}ZPL;@4aPs-%t wtO=yRpE470eTK>pfQM|~0Dd4MBI5tVKQOeJO)9{i#Q*>R07*qoM6N<$f@b?Da{vGU literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/btn_new_group_dark.png b/src/keepass2android/Resources/drawable/btn_new_group_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..32ae9ebbb14a7f21622108cd5a113f7355aeb6d5 GIT binary patch literal 713 zcmV;)0yh1LP)x zK~!ko?U>7o6G0S)zp4ahPz056A&4L{KEd&_5YdewxR?hKAHkgu;7)Mi(xn@>;zD5r z3u06R@k#C9x(UFjaI9}23QZqE77y$T{CA|k4UNjJ{9qreg{ zobYWE=!!_cP6V1``^&%z@O#3yi@+n`UY!WovHb`bs0Z@aI&jW8w^UaGDf|u|Td8XZ zO+#V`TyW040ltmr(3G+|BGQ`&0jn!d!2xi6g7>z=A>bD9Bs2l5*1ZpGOd#QBkhKqZ z7dnKz3Tgp;;EIwc173?j>bV8rsfe`8Bw+Mi3%CZH0saQczXQO7vOQpcU%)5er1k_8 zKzR$i7m+Vzmr)D61`g^90k3jabpkMD5-`9s;Oq=lW;YlCFUoFYUgP~Oa7l%j0M<8J zAbu3Jex3&s;23aR3505%AIr)wn+cx<;D(k?ABe!BhN%S*5npB%0%(l6I>h+C4!jhR zVW?p)BpN_lM3RuxXegv!T@5`>heQH=4o$!WQr-ezfuEsn&iX?g8xB{CV~Zi>jAS*}&e#0j>pE&CbeJb#b&PSab4<(g{&<^2s6F3dr7Ln(BDv6zQO_lF8d}1Gn1ZI?Pi{xU} v1QOs+kqNk2q4Fc(AzL?qABc#E_&@Ov+QXH%{;rM@00000NkvXXu0mjf+E^pe literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/device_access_new_account.png b/src/keepass2android/Resources/drawable/device_access_new_account.png new file mode 100644 index 0000000000000000000000000000000000000000..ca751c87152adab9b4acf2b2c87ac5649b165dd3 GIT binary patch literal 1656 zcmaJ?eM}Q)81Kj26huD65ysTx{6Ie1yQ78Dlk!=rowg!$P=c`5_J9trceIBT#ic-0 zL}Z4<2`HKXnh^{*r{cFo@Poi~PB8@JLtUs*2Mo-h%5+x*+#h3?+`aGnjweun{z-yv6Mc4TUVS};5e2sNQJ0gh2>z=Utp8&Q)8oZ?04y*&(p zz*GvADFQ!;Qp#e1Xu^O2L0p)lfrAksn9oJ{u#hhd00LnIhLAuA7H|+44HBR*0!%+3 zUCp3PL*vAf>00zj1ZGeai9%3LP7XJR$0ZEu5F!)`Avh2U4CK%m9AmDYQkyt>K|>ENZH2uQiAEbRHANT{1hH-A7GpCAiZEsnBoG}R#6O43+AQlv=OBq+$_Bb8vM!Ey_begggOH7!(DI5hMl?@)2PSKPoy>5`+l& zQOFEdOlY!kOi#^VwI8vOb7Jjgz)8BY7&GX$V_J!Uz=5fzQQh2H1atCDW3_W@37HcM z(PAL`X#X|pnGo$C`*zm2^kLTen4b2#fj0Kpq>MfWgY`lxj#QYsUsbkeF5c{ZYq+&s zaWip$QBg{gM?rDfZigj#`QTHHclCtF#Q1#QAwT_P7mot3nA6p+KZRLhmT(eINSeQ` zuUP#o=ef_q!=64B6&+I5qRI6pnz z9%hdvEta)mz`vY%U^@|4-&wYxNSEBarfXjCMCp50V>27BY7@A$l$wpy7O;1;%4@(@ zIKVAu{F3TMI&4v03Q$@T;6tHd<9wy#t=y}Z%)JAlB)i)0UR|NII3&XAT$n_zOEy2Y z2GmUY0Hfi}K_ka**Dh)}^Xn$FkNc0oB}0rB@0#|nMs8TIJbByXe%kfbgCTZLWQ7es z;{NCAmtBmdge|PmPqnLPY)^l2h{^R7J9@z3ZHwDWtf=l}0$bjin>8A;Ke6Eao}0%) z4(b*ti(H-{-SxJ_XtAIz|I z73bvhE_v_;u+cSg*diK3`(;unIt^Y8;)=%A8Qo8_xNWNtX+qd)-{z zZF`&rX(M8b6lPt^j<*61!F0N1F0=umqWv`hy)9J7Lw6dt*0xN*N;P!B;_1)Euw)dTY$3e&E#9Mz0 YV^jCV@_qj8F7|(cG)69Nh*A~&1IGS+LjV8( literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/device_access_new_account_dark.png b/src/keepass2android/Resources/drawable/device_access_new_account_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..27889219ba7d5226113a00a7fa0ce1c17ec200c6 GIT binary patch literal 924 zcmV;N17rM&P)f19RFtoT`qh}es*2SE?E2R*c)C@3OoPojq&=fCiO@E~*$FNy~* z6+}evq6k(nMYP&m6V9`&&>1A%sU&$^E_I4 zWN7ixCeS8O=g8K&U}$J4)`L~m0rmrXfG*%K@Ew>JkT?m9O=2#mRv3-y0aZN-Tr%J#pd65FC$I)Q0VYIby&ex_61My~U<~L6R!uf# zI~Ag1_{qXYPWrN1B-kqj`foyFl$nAsz`}IQuAAXKJ7*P9{6U~j5_}cFqJleVJjWh zBd(h~@JvJ&QX`o$)Al(2d$HJ%syaeuuNHG-x zRlw(gw?Gj%WC<>7*SNq(;HikbXv&5rBKR%9YhYYNimKWR>;<;lUf?V6MMTO;6_Jtm z1DgP^BC?tkz(jXsA>gyVI)5r@@QF$&1iWXpJir2QyV>A3O`wA1OTbOwvxvAc)=>r+ z0d@lg5t(ZUfeMx{Z5(mH`*P4(U;tPK<{IUJ3%-i73zz}!8j+d1fwKh07INp@TR+Z6b4Xl*_cn|n#5ojQ!tC6+ysS|i(3C|7510&X6 znGDGTPK7>Gb0t(mUe~NCc3nhX#VO`ed% + + + + \ No newline at end of file diff --git a/src/keepass2android/Resources/drawable/ic00.png b/src/keepass2android/Resources/drawable/ic00.png new file mode 100644 index 0000000000000000000000000000000000000000..b74e831fe35bf6954ca28c0c6c3e6599dce1d742 GIT binary patch literal 2085 zcmV+=2-^3FP)ly;IB5SPTv^73F;jXvjH(55DWchFz@}zS@WN*``ucW zZzmc4EI~H|Ab=1KU}Pjd$bmWM_je|B6~iB^TuR?daPk1-;4LIgFmMAgFOYkajp5!7 zCI(@ZKMWR?KlvvAWt-l(frVo$!=E|GW&s2c+yVdDnTfL<=+2*C8Mp*Q|4y{e`5?i` z1hn-b)M6e8{r877!^U=|&$AD`IBm|wCS26WsBhZxi>LV)OaG^B%s&n@{Dp@EKmaiz znM)M@|CfP*nUNvMCh?;?pBRwy25LD7a{@6tP~A5LhN};m-=1LjJ@v@9-whwnGk;^? zVP`Nb{Lj;A^?$Mh19KECya56T?ttI_iNoK&G3n{Me`!*8_{zZW9H@~CiaDST0Mbm7 zuNcB34W+%=1g!k|SzRS9e{eAf7&9;!2QpYzunSCg`9Is0ktq&jKR^JnARItA4gCAd zC?KWrbCN~)M?r9$GedojWI346cALR8k&|_?f=V$n^9=@GOJSg#2{3eY85ksPGibP6 zSiuvjthJQPO5|04_ z2%ZMM0aMmDCPs#@K>8~ag#8U@-ggiN%Krdny*~{9zi+zvt$5okzL&pVF+%b?Fw6Y_ zn(~hg$Y+9D4z^Sbh=oCg0T9bGFx=e9@bC0Zh9%pW-)#Q(Z#z)%5D8Ms72mWv}{kV7u#sG;#27my9JK)Fff0z#V z`w#8_2B19iPo@H|@UOjAu^*TiM1h6gOJJFBn1Mk-pO1lANCxVAn8hHz0Fz){XgZ|PYpylfso*wwmFnKHcvz0%8ZG;B>7ns=q0mMR-<-eFR zt-U@>vWa-l0=68Oet(|;T5bliTnU=UfQA3vGYky;pj0oyz;LdM;qU4545xRpGE6+o zcw_aCpKF0$UJF!w57~Tx0Aj&k<^w(QhbhM;=-p)7kaytp^b%C;UIqrXqaXu=9MIyo zKx0{fsqpq;hVN&eGO%%8Wnku6&G6yWcZOB#IKTAX`hDmY!*7t!_W<#INCYDQKmg%% zz&}W^XE?aN>$MGi2TpJ=9{?q;F*1l-137ZQIKB(ax(|V6G22as4`=@{Y+T6qOG@%L zo1*w%hPgYqUQT=dW9uh|e;{82Ba7h!HhTa9hy|C=|NmpmbM|@D?;QG;i2>-@7r=mH zxy!&HVg<~162PFi{gC0^k%U)spAkE6Gu=m^dOaCCL z{UQ+m!sStb0Aj&r`LAEh*{+^%x}8ISmIJffvs=JW24)%&RbWtm{l);SX&62N)A8&X z{GS(H`gu~Eo%z@CPhYS6VEDiB+HZy{*M9#NfTr>nu+)wV00a;Vy5;}=GUYkBzn$nB z^qS#6FkQU_`kDin;)Se%zW)A$;l{E*4A;-G|2}b(`P0nHU$=hz|9j=NpA0vlz64cI zpz`q(v26>0077xV@83)rE?#f@T%eXeyA3Sj-!n1@*#SMo3yg;=PZ;(eIHURNQ^i)kM00CGl!NQ2t;FQJL;FSQ&15I}GT2y!tlzcc>1^zs9! z;c%5!eM5i%VubaM85tQt%?ovCm*O8%WBE0-4F5w52LJ>R<3M-M0RjvFDBsx9%}py6 P00000NkvXXu0mjfQi18S literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic01.png b/src/keepass2android/Resources/drawable/ic01.png new file mode 100644 index 0000000000000000000000000000000000000000..e164a9f3325873227dd68895ad6f1ce5fce39869 GIT binary patch literal 3141 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic05.png b/src/keepass2android/Resources/drawable/ic05.png new file mode 100644 index 0000000000000000000000000000000000000000..671181111807e44da6da4046c44086c66a18a78d GIT binary patch literal 2741 zcmW+&d0dit6Mx_l@xY)O5iK>dG&}T7 z4Li22?a+?R+*BSVwN(piGp#J-bH)^oQdy$>@0z*cbZX;4@gRRB>qD;QT@HsZFQKYLc) zp;VCo=H_k?M?~uMLmsfRv!_BPM`*Q}uHo<)CeF0ZWBa}Nw#1EjxY3Q7iqxUnQBPPQ zQzh8r?LWO`0jHK`ACAxT#32lJO4}-LZgP%Vz*-r^-fPuwCsJjHG0p}2ra#_=WXq+)Jw?a9qH*`Ejf@n9!2sSRLD;4$&HKm7w@Ev zT3h7+{kT#2@CWi`OqV#04&|x(s<8=;58UQ{$ZdF$Y>!K^YgZR3<(@lJ8^>f;NQ3O! zz9E1+94<&AlE!zS)YrfF2$Lqie>>8eTT?}1dw4)*lsCBC=dYC7NmXb*@7}R}sfAUE zi?i|{k$9B;(oi}TJC?je6W3FHp<(duPjMdhu4^YhfAC)opM^Fhhh&n`h!Il%XdatN z?cB)_N!{Pk%N)2r)sa?(LjBBRQ42F$=8u(1e7d~oj5KtHZdzkkpagg~zdyvjnAxc| z-?G@Uf>2qSBeZ$ik`%-U{WAA0yT{-Jg5KO!hb9!d;XwE(wc|Hs~^Xyo& z7whU?>F9GVa2z<)=b+L0e7Lv|=Y9f*wa*)xxnHOFv>nEChJeY>+ABsd41(j(gsGvLjgnP;)7 z2FC3>&-ShOPryEqdwuZn+Y}{%FSWJA`DMtY++F!nu2pse0X-z@teT|zMYaFt;Yt=q z3k13f%YEa)rgXnbRb}gm&CPOTRBJtAEp?dB*D))g{r>s01b-U|QCsyWvyQ3Xv9>3l=k>o?Nv}TaK)4%KUsh zcjs5)c^e{xGfO}l4E zn)N;wS3_iX__l$bmF5( zU19m3j72Z&(8S#`Y2JxqZprS;b?lEwQ_DeRfmGz<(13$*&!9sEC$vm$W6tKa#=mtS zBkwUlj9(jolI;W7y8c~lqWhvDL>_U}VG9Yge7?yHQ;=rbmG{xdR~6L+`*=xe5bgqY4m%)EWS8 zTfCEZ52$Hy#sK~S+o;omKA8rvfdqhYr4y*^+B*T>_XUIYb7L}yRl021#J}jfKRish z)PKNAg&?Q6CBYZfMr9$XH8&b<&M21ly3S{YBjWBacZ7l-fmk;&Jy*eQL`W*E+C)@+ zp3K{Di`AMnnThC%{ZUbl$Kt+jh{?<&6;jcLWkSZPod#P4ZWzpGxw}_SO`Yck`&o6) z6Lv)EbhG&-EH9@xdyQ+8nm8JxC1ZEk;x z$Wc@QQ?H0HaoXB$4Z>TMW)J0>3+6E6jA2hC0|bTKqpT5Tw$HNsmy|-uwfDaN9h6pX ztPd3^a8wOCk30vgSUN*+eC}ROi_~(2y>y-gSBj7Jr~nZ+&C}EaA3T*{mUWLjDGNQLo?a}Xw>V`=z7b*G{9Q`9asP@p<-}c3u0U5fMKE} zy_T%N^ytz~Ft)g2Et~UWgBgXBf0g=1A_}`GpxEA0|7B-YxcYC(%nRZONc&_2vDT;dZ=??gS00!1%p z6}uh&_Jmb&{}vRmNa&d0xKgks0{%^i*Dv6&2Gf&6Kn7F*U+jna_vC4mR4kQ9nBLDY zPY9s; W#O^XCw3_}-Xw!x*>+ksr(*F<4#x3&z literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic06.png b/src/keepass2android/Resources/drawable/ic06.png new file mode 100644 index 0000000000000000000000000000000000000000..57c1a1daa2c4c3c4aaef3972d7c33c5a7d824ee2 GIT binary patch literal 2065 zcmV+s2=4cZP)M|p{(~e5OdT?u?Ckx&nV1Bp zeE;5fn}Ojlx&bcYd<--7l^Fgr{bOMI`=8-I%RdG-=6?)-eli5{OMh>_@$Bc}^y6=u zE`R?02%7@{0*D2hAShY>W?=A@m6Ysqa&yyQ0VY)8{rmM7KYrZ1kAYz_Q0^-(AN~K$ z$o-Fzp}qRxc`TYwe5+XU^ye0I^#B3H2+IYq5ctW!zzvL-Qaw}C z8e3OaW_DIq28Qq78UBCy!f^QbafbPqE^S)>_iyP(28LV6A@Gm!9|PkLMjZ~xACrZG zo;z@AePUn$Dgrz8B{ReCQ*1vMAOGD`b?Hy{%U@s_FaQW36bJlZV9?>^=bvor>+7Il zU;wt5;qzw(hF`xR7^vpKqel!YjvTqS{QdjJOAHK)oPZ9PrK=2#yZ_02R_|K`BVS0c z2mrnD3TWtOCm90X|9cX#*YX$~3pq}p_Zy`rAl>P?|1tA6oJ{<;OV*!S2AWsD#fZz^b z1I97)DEIQ@NruPkH!}SF{fp@y=U)Y`k3W7f z>;}p|0T~3u%utJwG068I$6WwL1(5lVfg8w@00F8BjV{9l1#wRSB7!<{<}44$4q z*9t*G0|bB$`uX}b!!uw){B`#(!yBN^BO&5k56y&Zm;HUp8ub>a<^&MS1Fh4R&Aw!tfX=9RMx+3$+j+ zfRIA~6@U`q%9RZNO-vY`0fYS$FxWwAW?S+y9IrHH@Nk!95CVqIhYueaoD4-6PI5Cd z_+EOz&@S+m!HF5_Q;_LrfcQ1kF^q_U<{#8TfB<4aN-NCR(%hdjXBd8gLXQiWRihOd z1PZ(ua2)hCly6hW%qORperL%&*Llcjg&GxRFrwk15zk(x&0U&_jxnLdxL+vzR zz&}TG04NEr^b}#R3$tbL;?)L*>|Y>+TFwLsQ$}cR`StrB123>1&@mEW*u*BqaQqbu z#M1xJgb2j%uQD+7?qYbe^aHqFc@Gdk@DMn}z%cg)Ft&iDTTLmVH+?BYy^tl0SF-E%IFWU09&^hs1BG3E8`g$B0_*#`9Q(+?;pcIpk=pSpI~_L z53GjlL}{{D{P!mSew z;$q?qyu7>&oNP=C4_^Lf*bNN6m!F`C2IQ`PObl#4m>50-#kZZ1E~IZ@%%Z%w=bU>O`rh!X8CWakb89z>c!f<*0cLq>3yd8*dfRYNbT>t^Zf~T?aA6Rl8JI2D0 zEg-_Q*6JUlIm~&WcxPf^X888)JHzSwpv1?BupFGU|ASo0(D#P*Jh1qk4iq^8#LuD0 z5d{DQ5aA}74D-_;Y`>m<`1pf?m7NJ*J-|{w8w(>!0Rt)NfCA5$KvguT6aWSy!!vA_ zg8)DP5z!_D=JC~^CTw4L`_jd$uNYWZnSgZ?Bc^eT&_d)hkg*Y1C~SUonc>Ul6VM77 zCjbZ_czb{m*=yJUD}x?`5kr-Vmw2e9ixiWf01L3)_m5#CFjk*_hGw-pK(ls!`p9tU z`5}g1UpGKg`(yN~1{nYZ5b+Lx06_+E#zcM>;WFDG32_xIPKLGD{xduV<^qQEz?R~U zH}`>@t-z{g1GEh{OHMWZ&)}i{i-Dj2C{V5p zh;dt1kivx03g5sBH5!|s`S_E00000NkvXXu0mjf*3Y7f literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic07.png b/src/keepass2android/Resources/drawable/ic07.png new file mode 100644 index 0000000000000000000000000000000000000000..89ef01bad4e4b44c0f30aa1af7d18bb1742bd4e9 GIT binary patch literal 2805 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic08.png b/src/keepass2android/Resources/drawable/ic08.png new file mode 100644 index 0000000000000000000000000000000000000000..cb5f8f0a3ce2ae217e664e318ee984767516367e GIT binary patch literal 3000 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic09.png b/src/keepass2android/Resources/drawable/ic09.png new file mode 100644 index 0000000000000000000000000000000000000000..b38168a2fb8c3a9faa0204d7f56ca8e931b8c97d GIT binary patch literal 1820 zcmZWqYgAKb7X1?P0xl#FR=EL%C^jn6dI?Vlh9n3GUB#mH0oK8r$U~6ILmW~H+&t_B zB^I>UVyjIUm`=xO6|Jo}(k2jr@)GM~)PZFP0xp&)7ljf?a_^+S=f^pFoj>Qt-uvux zB4hhDFOL8Z0DxCoYSK;@3jZh$%hiuoRxY@JkuOV^0dV=(80N_t*DNSc&MbewIIp}y zUX}}FImL=xVcLiC{M?FdSK**2iCIcl0fhoa0Z;1o5~x5x z2^%o(sN#T7#Tugl+AaE8-Kl%xM~|~cGaqMWlFodGU9Ub(3nbaMAT*laI1Ij_%mv5e z6IbiJ-sk2-h{MShr+(Q!V*K#($gUsV7`#U`olbXSadBRQ_J3@a2%4MEos$)*06h-Cv(zuu)Cpn{ ztDCFAJ{l&Lr-NAAeXLwO%?_r7D16kQo>+#X+!4a#rl$};zxNu5+?%WAl zj!46jryyP)vc`^q6-1%-u$p@W&3&DNqldql`rC)_96 z4;V>RI>o&9ToUgnONKZrTIs4Wm&a zZg;xvTX8?MC2oBx6S-2w!iTuH-iU=)Q8vzb_{NRcx=-yGC49nsyf`Ph<+20g7+A-U zc6paZBRy9=BOK)X*XkF~Jn`Cx`tT~{QV`rk!EHIoaKg{kL&R6R>#a}BF%Wx6kB(2G z$tNpBVMQWCwg~;}-h7_#1Z{LNI3OO-j{DIum$vj!lAUw3zCher71~2M`=jvIo0}t2 z`|HCyl`EfH7tQt1{who`d43Rng4z3t<$HT^4BOH;p%?Vi4CN*$y{@sG3FWo_g=$&j z@^c*zum&y0Mjk46j1aFv+{`O|HBhCl9%dYW3}<&%_7V1H>+$OpL*QMLo?l{bHKX6G z)XLtHtlDUy*nzr$C1H4~NmJ(bYguZg*00-j4U7>cMuH!DC9F3@DY(BL7TmTt`wb!H zUg4pvA!5f>m9_snGc=cdD59z)yAREs8z5dh^~YaxDNXAqv}}iApZDRzs$0@`c~mfR zLFT)L0T{eUekP$qGDVl#39h;hG-;*4eUDk^J~~8V4C6AyF(^!gky;KFcZHCTb=nmoM=e`stLko0>rHj>ft zHI~DpNUe2r_yefe;>hn{mQQ}M^e(#fKC~eCTc=Wui`80Kf$Y3!Yxpv##_6E_RIm0q z!*colw5O_IoQwEeMaY9n_sIP=Hs73YD9%!!@u*PecAb3<%{{?#m4uCN#-exNdJ}zS z*dKjV?dT;IBlza)2Xt@&=*~;pSSKwQ_utSbJ4%xR*>k!GUF#SmoOTIIfc`neM#Y%_ z`EeL@(pLw~O4*L4pK@$dXSzy~%{ptJqz1<<0{9nty0LsF%4~_bDVWA48Tjf=kv5+l z;G}QnpTHF0^P^ZnZ%3zI;T{7nvY*pSq8XyZlxYh3dp0Hz6;Y;=c_`2=F8Gcxh>5%X z=7fe!*Iv*4=RJH*Pa!2v+W=3vTqhgNbX{TKwRYJqsX@cu!v=>xC`nb_?U$evr1M!! zr;yGO*14%}+quI*u85G2KO+b4zzce7ueJet&qC$eUOf$NZ>Nb?849D(Z#ki2@wWqr zI5jOa!ol1}Qo(J7+Mbv;CZVVOTngR^k*I%siIp7D#=3GIeK2onFmWsuL_D%ixKDOz z8uW`3FM8!=G=^)$8W)YdR=XxfB9NtDH9|ucQv4lbo<^@L qHGG@`Xp!UJEB^oWM2>p{4g%_D+TGt0kbKvB18K?IlP)Eqn*RZsH#C+2 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic10.png b/src/keepass2android/Resources/drawable/ic10.png new file mode 100644 index 0000000000000000000000000000000000000000..966610d9b9f53d94f956bba7988fb880f9a5f711 GIT binary patch literal 2642 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 IM6N<$g6xEGO8@`> literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic12.png b/src/keepass2android/Resources/drawable/ic12.png new file mode 100644 index 0000000000000000000000000000000000000000..92ca07dcb49d683440c1047237172a4eded21866 GIT binary patch literal 2927 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic13.png b/src/keepass2android/Resources/drawable/ic13.png new file mode 100644 index 0000000000000000000000000000000000000000..42b6ec071928c2206a2fd8dc4b7b0fe9228b5176 GIT binary patch literal 2746 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 A&;S4c literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic16.png b/src/keepass2android/Resources/drawable/ic16.png new file mode 100644 index 0000000000000000000000000000000000000000..47d4b36fd8810cd82ca946fa07d20bcc9456050d GIT binary patch literal 3243 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 H0B8RX22l|= literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic17.png b/src/keepass2android/Resources/drawable/ic17.png new file mode 100644 index 0000000000000000000000000000000000000000..209af79d15339d49c7bde66dab0de4fa41fa4079 GIT binary patch literal 2445 zcmV;833B#{P)&5egFOYiv%42 z5I`)%xbpY!f7ZW$F=PmfayvOVOH1kKh%tysax?Jqure?+Gcx@A^^f80tKSMwo_w;s ze(iPor33R2V^Mqf&K77UI z0Du6(>41NK85F<&_&3|tUBx*!N1s7Ko`>Pr9|ne>zaf_Y{|8YEV*^7740yO17`Qkf z>-i+Ou|vc6VUwhjX$P|3IN z5T7!_EQQ$)R?ooj=QqUnJX|nOFfece9rEe(ABMKJiwtX5?>zDN$;8B;KVRKIb^t&C zF(LaJg#Z6%;{N%QVSY@azE)bM4#N+i#h<EaFj(#{B6L8}^97jvzWiiouy-?H zkd+NiXJ;34huH}bK&TG*{Xf?)NR3rWnv3E4SExaMp*}_q{=e|(2U`l_u(BY9)Ne$T z{Q!F6{Rakydk+~H6jVeQ^oP>MxOplw0J9#$e^9{# zO<-{R7wS`>_?s6D4A(C(FkC*vz;O2_(1)LZ5y%Y9p8p~0zXGH0GcXEXy#qP~=qNT$ z1_o1mc?L--2PY;*c0Ewi0|+2^LG=B{Z$~$GWic^v4sfCa#phq3fuJ0~2=y)~m4keC z^*jT^(+41n{xh(!f_%)#@Zc5$gSs{ZgUSR@t^tME7ocZ80rhb50rdl8UO`icK~7Oq z7Ze>ppT2wz^f@pt6;-}7SlfSOc=qBI!}c9d82009I~1AqVi{r>mQe>|Fi(ZmhP+l=5i zH#X*CFf((Je(*pq)z(&1NmGlP;odDKum@P#5z&VY{Qdn8RDpnN6Mz6hMH+Wf<<>5@I;8QxI5wFfmA~1EYxzR##)DC6L2jKYI@> z^xnS*`5PdB;34qs`=b+=FTP3-2vG(57E}p=3M5c93rfk-57$nn-@n~^1Qh-V5I}GTynDB0|M3&1 zk1wD9EX%{s3$BDfB^nPft%{2R^DofSzyBZx=^F#{53nG8@E921K;JS0F}DEFp+Nf2 zFB~l&phH=K$?opeH^6e_%=;fdA6@|pzXu2)CPW%|`0&Y-v%7X|d%(cK2Jtn>VmWDG z;$w%F|IoY)tgacp0WA`hVPKF@Vqg%Ig!t~?Z#+#epiRJmI5)5q@^v@{qPgai={4&>bM?HdGx5*5hD|NbBf8C-x9*ibol zRr8fNd@yzA>54QF!TyP1PRsMj33_Uf2?D+5*5dwpfYF*vB{TLMkP8 zpwGDYpg9B9Zh$5>HejOt2ds%sA9=#CZrL%0^XC>{d-s0Z3ZPx9fJ$y6+XE0lI2{0O zsEP>+x|hhx2Bvy=7zp_KDlqU13Nift&&_;|+wL$N zJh=DcvuCT1efxfW1JJmgK>QHh4uAl{>i}3_aBxVtadBD1$jI0^X=-SR$jb`@8x{Nv zqQL5#5g05#e*6K}58oIbKYY({@9qnRYgbRdefDhswQoNz9QpePoZ!wP2RkwV2q0n{ z00Y3HhfSZGTf>o^T~e2YgY#LUSjm00uRHK7%q7lqT5s2M90#5~%!V7Z!P700000 LNkvXXu0mjf`UP)* literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic18.png b/src/keepass2android/Resources/drawable/ic18.png new file mode 100644 index 0000000000000000000000000000000000000000..30f1dfa03d4089a9ca5f6458c6eb7cbd7242fbc2 GIT binary patch literal 1965 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic21.png b/src/keepass2android/Resources/drawable/ic21.png new file mode 100644 index 0000000000000000000000000000000000000000..d80fc95a40040e14625c96a449437708068f0ac6 GIT binary patch literal 3173 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic22.png b/src/keepass2android/Resources/drawable/ic22.png new file mode 100644 index 0000000000000000000000000000000000000000..788d0e7cd7d7eb4feb6521843ed7629bb1672d70 GIT binary patch literal 1006 zcmVOiWCSzkdB?Hkw}Y>oy9APff}8;H+$=-C(D zVps?~dGZ7t3cz5;stzE42!;SY-{DIiAONz|-rk({T~ga``-WHSH)hy|BngnW)m zJ-TC@ot?oU@#)hixF?ZA79fDIh5#`>CnigRz^z-iztLx2Dxm54lKfD~^;NW2B?d=6sOrJo02B`rEAVwtL$no&-v`a}znF7T? zx#K@Eolar_C`bJG@q_8{SR{ c{{RFS09*&j56!a#AOHXW07*qoM6N<$g2E1-wg3PC literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic23.png b/src/keepass2android/Resources/drawable/ic23.png new file mode 100644 index 0000000000000000000000000000000000000000..6345beab59c0fc51fbef98b0cae151062c0eee8a GIT binary patch literal 2408 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 U2+gx(+p7d@{46&5W|ScBU#oLVPyhe` literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic24.png b/src/keepass2android/Resources/drawable/ic24.png new file mode 100644 index 0000000000000000000000000000000000000000..6b77a056b448ee0319dbda139c8c9a5ee50c70df GIT binary patch literal 2683 zcmW+&X;@Q-61^eh2H|GG1rpXEvZyRKP$e#ype$Ocf>sQck^~4S&q@RyTQMXCuONz4 zR033>Zn#hh(iW@=fuOSEQUw)-sE8ntAPT`O_oeU0%=zZ~=Fglt-g|J0H|&E!yOwl*3{G>cIwWg_|$Y>G9L(tON!ys zw*16P;P2q`;xZ3*@Ye%?Iblm+!1oz1Vst3VRIp4$KuipU3y@hJf@g8TAV^En?*oyl z`HZOUwr;ht2aJ!80Jm-PLYVs}AWO~$xLvR7P+KhPYad?j-3J$!l#AzvI7oAQ7L`h+ zh|^&ItTtJbPJu2fqOgFvuyJfeRjgO?48~qvrgSXw?(QSozl!nb;#c;`)mpz(-*UgN zSNp(s*0#xL$=9%iK_4`SN8shI8YpEBG^t%^8M}@aIoOw#fvAassKM*TU$kc?ND=b z_WY;m>g|=YGir4W|830rL&2=v7X6o$MUjVybdVZbbvB))BXm%NNYZFEeWFs9z?@+s znQ*uW*!W-IVe)}A5Zo34BC4W?Z-F;KJl>;f;UDB~_?rzTgpaFA#BrS7J=^ zFsBJE84JVqIg@7S`K_*9@T5M+$=p4Qkk^Nqj&yIDM(6Kq&{rPN&N4AFEB+Ptr?ruvdZ&j!Jw3oZ z%dqy_9uX4*Vr{h?#F5!V&&xkZZ|}&5Ctjx8jAwvgP!JAz?t2-Ib9D_VSnkW9wX_Ks|qWLhDYdlPRSD}yR?ba5KO zY0W3So1~H9rzmzyqEs+*dT35gt?JP}CP++6Lrn4iL2B(?OR8!n7%G6K}2C{TQhUBT!Cre9}PjC4{oy2Rb6jM=fHe%BWL81oe zeDEpA@^;KJ%Jb(g6rnI?z^>^#v-f~;^^9Rv&Mwftjtz3*`fS5JGM5;7q|yQKPa#Oh z45I1&ayzJh;3kz(YVgU%BlqW2%`BHiivCeYs?dK!J8hh6LJ)@8V8>BBgo$?rBUX{X z2+&nfCTvW$R9r6~8V<5&0ZwZ~Jc8of$$QXJyFp0adPMn=6UGKyM9<$aAG+yssBsRC zJjUF>QDt);4eLm9R5T=k#{OhVJzN%7f~jTf*{ zY4ky9qaM{BW!i`{wd=a~7#${H1=es^|EYHP(Om6ai$dQkXn1{e*)L_Lp@KO|lTh2M zwqQR)i}gJ;k7cbiHFfWm0S?#9s2Z*HY1<}W!QMo=n!U$YcHnsrZLy0&e)TGt56XU= zfK+|a@r~b%yn(n>S^1LXudt?MiygDE{oimis`quN6Sd0_l$431UJU()(xf))A-R$GAxMzFKqFWU(w{ z=Rh2XLp(0ds=ju11COz=zQK$g^+oayFfp?pmwNNdlx7A&3t)nCY##y z>!Evs3-c3exzT%aqYVF-1zk7UJA+amaP+umQ&3JdeDJ~Lz@Y6!!fXPg>5whF(nNA* zjEQCX`AMXC3`Ko{O5~)rpnMIL=W0p<0@y`L_lGwgEPb=?62b6;kBq(m&IW?*E#Rys z1FtbEb;58momo)&=$eDkFRmVEiz{$@3{#%geIZ^89`z*jRc5*@_3EZMd*ePk$vknX zHx8d)inWzdXFreGa=n0OBu*1u{ppj>;NA3crKa$ec7MfSlz05Hr3;SvfL#9;d2hEm zdHm^+BhkMW7vF-PC|Zak8U=A-bsTtqlE9;b4w#msB-QKkhJ&wy!QCNlV7QYLxFpC0 zTok(qvGtq6N*vk#`mYLkOG~f%gVGZr+@6abHB7GzKRQ#qq9orGw#O7C5v`D+2hl$J z#~BT_(q$zEz&eBsVU3d5VS5v>*X0#gDo@Bvv7{?O9bJPBsbl7(@Ni2k9v>q6+55-8 z9|%S|H*w!+NnU#o3<+BV=%cru`@21Y#MQ+03%`G-=Hs8a4M(X*92FHWc0x-y=!EXr z`*5lAzk_U`-=es)QcTVVS!IJtA)~>?e4i}Pr-RXLN&2ir2iH}e< zg_0<`zh1%Lzyd6vt^m(wFc}O+nu#YkXCW0wE(%0(k2i9d^ft#Ay>j&JIt7zx6&ny6 z4kDvN6r$g`thL&gs^qHKOPX%bjCS+q;Hu4ETRQJoebre?1{%Dp7$d{GtYz_MMq)Gk zCOgrP{?`f3OSx;zjMwxzQG*S|XPs2}WN_9lI3NThJ5FrpuvIUwmO$IBUP;ZNqbGQQ zY~%M9H+NiUayx!?dM#a`KiW{o$=>i;_n}(9J)ma}4D-E+$?M-#Ue*Y(06H;MMWKnn eJLwRa3p}jqOuLt+jWvFcz?PtGfj2gC5C0F#MdXtJ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic25.png b/src/keepass2android/Resources/drawable/ic25.png new file mode 100644 index 0000000000000000000000000000000000000000..280423f3f53b01ec3336b81a42f9e8b2873d49a6 GIT binary patch literal 3018 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic26.png b/src/keepass2android/Resources/drawable/ic26.png new file mode 100644 index 0000000000000000000000000000000000000000..9e278996530c07ab249b315a5274d1a8d195ff57 GIT binary patch literal 1596 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 Z0hY9-F#@#oNrxr_NeMgRuWv%i{|C|Adz1hG literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic29.png b/src/keepass2android/Resources/drawable/ic29.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ce18b9e5d8a2be208c340d70e1ea25b6215670 GIT binary patch literal 2295 zcmW-jdt8$D7snrN4~CCQV#$*kl()(ye` zOPv1pkw2N77f>LUV*{{oVtrWDL~d65}|V8g5N71`NfQY~&kUP)0^l`@!2CW!{?05;IJ z1Eo@nJ)XBz27G&aPU%Z%=!NcDsMK&)lE)oCmZ0a6UA}1rkfq zP~PH4@eNrNe-yyrOR#y_;F>*fLm69q$+|0J6MCoa1+Tn&>0}9K18po<%&El(;HpEH zDT+?jbRQ2W@swKZHfA7`>9ZgQX}b$SdBRAQcpaWaTw{r@e?d?-5o z9|vHbE8s+L!L_2i9CU=J@b$_vGorRLvZBHgbzBLIUmHe!Pn|{mH6r5wORyc3g~!n| z4; zB|>VIiE}J%=q72$3y(iHAxglsmF8cc< ztAtufi_lfiLKdAezP^1KTJJg`>^cySTWsspb{%#4mt%lyPYIXS7(b3KgXV08q2iP* za%OgIks3wj3~Kl}hn|J$Iy*J+_|uAAIc?@bq%u#z>6)7?nkM71x@ zOEU}fxC;e$gBdna%+>FwSj%TJL!`2IWk%!KPDmp|G5rChDI^jm=2O}%54m94D{-Ps zJtVK`XX}X@kD_$Hk>vUzDD7kweB#7XUW?4+A8l*h%Nw(TVs{<}ci*KBMzK3INJpN4 zZ?<8$X;>HD3jwj-XI%@fG}=+rO2$udpmOVhdWJMtf?3=HonH;Zk$JYRdxpf0Nz3oa z%F+H)!5OXY0)u67oAzyz$~d|;2t3i>&TeMl9;}H3J5sgrMP+43fx??QD_uo4n`mcO z;+^Oa5jgwe>5*=R<*AoyiH|dGIZYAXb!*br?*?Wr%2Yn@Uxhi)eh3WQldB{&G2!s{ z5!8V&36(1^JWd$fB~GA&NskzMZF|uQ5`cBOjoF}jKRM6+wINYtwwPF<>E?lH>gOjm z@VG|~I_r>EZ=m|U^-%8kJW;5{9HRTF?PbU z0wJh>)40fd=2eHb-Rk*p3vyJeX341f@?Q9OWJC|y_R>W$r(yw4eS@qBx<*p$&kff- z(zwAb*Cj|0DBfQCdFdwpSvuvRe})HL6z$NSwr>^LsW)y-+D*ye=9N6jTnRkrZ0DOl zj5y;co`JX#+B)S>?Sgl-TPB|MuT{FCA&orD;Hg8^+9DO^ej+Eqp?pUlVYJKXy}jUh zRqeM};pLD^!P_j`f*D0vN_8X!=NwwFAo--~C(q4+=&{+FV(8Uy2*i>XQp09q@#Oe0 z;QT)MtgX+x|A1WmPC!zQnAb)E$T&b=6wmOAT{BxMnm#EJ#W)mZh{^3k!XAm0~gaO>F+<_ax zyDu%mE+sZMYoA9jWS4`jXv5S;i9r&4nx;znUAC?Geu$m;8I}y~oqPIkX8^03@kJqC z7-%CrB5IofpL;8`tz?}WZ(ok-t#jkqK5a*A6cL|#4v%*ryl*0~&HyMo-mmx)PVyc* zcBP{-?;T^wg~QJ2gx~fORvR9qCSq`Ja>(sVwC-fDe^>40Y;2PcS@8o#>-!crc6UH> z84i{B4MbPzmuY&?uD#{l7}(S>K=>#dHT O3lO(9A?BATUj9GY{`Xn{ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic30.png b/src/keepass2android/Resources/drawable/ic30.png new file mode 100644 index 0000000000000000000000000000000000000000..49dcd2ca78619d8a4af89a12e9d4d5a77f5783e1 GIT binary patch literal 2095 zcmWkvX;f2(62A9lhno=g3ylzDlSRB3u%gi1unM6x3Mv-V1VY4C4IssU#Uw-m`V=W5 zMi2=c^r7uj1p2@y)j&j1wutyZOH057`edw zphj*A-C{)M7b6pm{$Nhddn4fYaK7aLz_re=3CCXDS-e$YKsiz#7UkeEgB4LEe6Seq$Gq7&}ALIEg)Sf;7?^19sqXA zULf*g^CF_Y!y?zFx}<4UgZ1adv^4G`zk5h?X@AW?Gshk@w>D& zXhjFuYmnF!lx8pa;a~T%Uk8l;UYa3=$WwqoP<_86+ruX(=Ra6aH*6@b$v2O3j<9mJ zcMKsE#S;SF|M^J_Z~whiJ3VsylcD=u;|>7CXUUZ14fzc<4DIacJ$5mb0i;i$4;FLf zv%%nqb9c8@G%BnWCBL~SRCRSAFP^}ZX=s45N4hO*opSZYk895d<`!|nzb_v(lE$6< zQ6v&66Pl;dRURIw%05*dNNK1beaYb`3FrHOlPm%uo9G%AresT(i&M;9f@J+BmL-TY z&dbXShxXbngFPunU0muJ7;s%dS2bGh;_BMAXy*8h zdOaj`>MUeqKQV)L-}+hp%&1+lVs?6jjVjOhM`KIg-rhO}0W^-s42=Kx!rKp~>+7&G z6AHyQT7}95S|t^xQmJrodppdSn&RVbA6d9Nv%GY;{`=yKaHvfxy~>#Z(6M?yp!bLd z<@K2%v*34cNBc#VVvR^Tcb+?@*%WIQ_it*N}x56-Dpv<^*W+$H9Z1{r&|Wv%7W#T zl1_|5DvigIuE`$Gny7M`_YHT>P=rn>6^OM{IO^nFnNyPRKrayemJS~`p%e3AvU8(= zf+Qxg+PEy^ZsZ*WST0md@pAHvm&RfiR{T-9Lc4(v#XWi`KjTK%4hH*U@@%U(4{oX+zCBf2t?XYyNxLRG4Cz!q*tEcBJI1pG+kjaSy zHX=zrk&YGSkz&eY*M{-U@%sA9C^ z-8lRg77>%ssv3R$>vkA!ZPoiheT4c3$f8e=C-)L`bb!p1Z0?5J)h*z*ip9i4xJ%Rn z+5Yoh%mpE;dz8$J z_Em?_M~)Yw*t<2uumr@9DH!+|Rk4Nba{*%1<`!yIk7a;pQB`ZUR&QzDK`*(`J7Zgy z-ZB3H7Mwc=U*p^&Jz#;)&Jre)ZPXpz7|FN2pGww_eN{%}kLmhtb{$++90f4IsUI+9 z)zV1$c-?kKd47+Ndd(oNaj@Fd7D49bke0d6c0)2{14J!&d_q5II}yUmT*4>OmmF`< zWMPE59Mat&R;NSlDx;`SD>Ot=M3~G`=U2&ZnGr;+b!u^#P>8h1E;2Xj(wPx57`*4j zqt;ClcP!(O;N2W+>$(lZd>e01K20t<y248LaYOS#zp-<}@a zJ``IP{?K&kn)+(zM;GTEfxj%Yc0Uncq1pJ9L1(MZF6^7TKH}=vCvniRgZNGU$BRZJ z;2UdfhCWAa8Xg?17rP#Vv zuNT9voX2P{@RzJp{I{n1aT1M}%)8#+B2L$`ej_Sr*#PcbaJ=ll;P@LdHfCt~bH#~G z)YbLLcJ$Rh#&2|(Fz4-Gc=hZs-wLz;!+5vEW@#DeI6GYwl<1)LOVme)CsmA2Q(Le`A6@z@@VcoEjUvf#afie%nx(st~krmqSi# zrM$w%Tawwa-hbGxN%&F^;MYKpQG0a}G?Y1?d0f8Z=%|B{o0j>B!PEf9h6o84TG6e> Pj}JtK#e`lB=I8w%sF!1S literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic31.png b/src/keepass2android/Resources/drawable/ic31.png new file mode 100644 index 0000000000000000000000000000000000000000..a510ec65587261c13de7ad697b9432bde448d973 GIT binary patch literal 2504 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic34.png b/src/keepass2android/Resources/drawable/ic34.png new file mode 100644 index 0000000000000000000000000000000000000000..feebf2bdbeefc6b385b6f4744e3b7954bedf0657 GIT binary patch literal 1907 zcmV-(2aNcMP)K^>!ocwV|M&0T?)>`o z%Pz`AvdkDNPqmO)fhn1Pd%jR6?!4Bx(eXW-^$XYlh2 zViFV-Zv?6rC)WW00R(pdFo?tK?A(2$qEdZ<@xK~qs5}!B^8;W=M6Oyj|KhoGXBY$o z_!-#QS%K+;4H!j#806*U81(c^b%1OKP!y5_00Ic^09ICZQ(0LB1}7&6hS1OiLpC<< zWxs#_k^!dhC%}*hTfKVWiK|zyF!1tnF|e>O1JyGF9m2w(rltxT%S^sO&nKF_~-^O}XJsVUF_ zObl#nEMP1mA_k;6R6c$Bz{bMD`is;M00!<9l!{*7~}v}P$)6Heft`iJKljZ@L!PQ zL3$DR4-o&u;Da0m0{{WUgmA#;qj&Dy1p5kPI4GDw8ca-#7~piloneGW-{oSYoMtoRccN?#bHr9~Oa%F0-+teiW)efw4lEW|P5 z8B|oGV;BGkASQ$&=7&$7JZN0EZaJ_J`VGwIT)>3M3dSJcg5n%h4sdd^gMI$y&3gtO z9!^lL!5}3i#86vX!{q4b*##^ksz}L_00G2;!eL=uboA&R6<~1H1P4blDl01i#n`|O z0QvmiKSqYvuRj7E@C_JB++YWAaj}E-N=OJYR99Dn>XC+>J2(DeV`J|k#sL5U#0V>T z&CSig@de7yKYsiO5f_)P1IDecy1EvFq@)zMu6X(KC4;uMHiL?a3@{zAfD0s0nm`6` z-h5(cZf<7Sx^-O(FdA$B{reA&e^4TX(V#^5^5rYAdVm1JZ~!QQfP{Yj{2>a|;K0Gb zWy{UYqXcxo&yOG9Guhg@`WF>dFsiA^0Mi9_Ux6Ia)YQzdVZ(|NVENJu%LUjR01!Yp z9RN}c0>JtoT3qt z^B0|XEYsYNF!3ju?*d)v0PEI^;M*3~sLDk+J<<-dRb$?*B}4{-GG z@^Uk@w6p@*Oijy|FZ>U5L>sz!00Bf+n-Js(c6N^T&6`(Owzf7h+`an}EdK4=4`BR% zhQ{@OVBz)+=m-u_qGSpUjc)z+?JGD@A_IT`Vj;I42RVY1le2sM`enSp=&i1;Z3Jgk zV7&m8V+GeKAT?jUdTI}mkb(eiVQtHUCh8TrDx^JMZiSO&<-*KAb==t zmIK>_ppfWYvt~(SM@J(t$NUAxIU6_xK)LEau<*Kh<1xbnU^UOj#|bPk>lu`kR8wL4 z0Ro6B{Q{69fN7$6>C$=C?d|pde*O9l7W)fy#2;XV#?8wKEH$|qK7ITN425n6V9RHX$h)7^mJ4hIM_KE>Kp1ACQRsT0jg_+=>rHL zsyP7W2w)a%TfBGHw%Cfcc%Z zY3b7WUqK13s;Y@$^5kBSbq7Fm2dM4PyKv!bwi73g#@@Yqdks*y t0n~y*2LJ)YIMBUgfB+is-Z4Oc0RRy|LM!TsSl|Ev002ovPDHLkV1gJOUYP&@ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic35.png b/src/keepass2android/Resources/drawable/ic35.png new file mode 100644 index 0000000000000000000000000000000000000000..629ad9aafe54a482f2d290655e55bb0a61e262fb GIT binary patch literal 3332 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 A+yDRo literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic36.png b/src/keepass2android/Resources/drawable/ic36.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc08855c9eff77d91a90ee248846ebc8164a9cb GIT binary patch literal 2508 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 Ogzbq4zWXom?Ee5e*Rret literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic37.png b/src/keepass2android/Resources/drawable/ic37.png new file mode 100644 index 0000000000000000000000000000000000000000..fef910681e99f54890492b891391c397bef83202 GIT binary patch literal 3496 zcmW+(X;@Q-(mq)Uav)Fz&M9aDRzU@`*^3q=LBy4-h+A+WAtc~}vbG8WAs}H9x4HmT z2(7j16$Qjrxe5scWDAScmdz3nC{)yhJ?lANzWZZlp7}HLywCH_%sY7@ySCac`f?Ef z0Jht=Z4R|W>i-*wXz__DDYKS+`)|CSMCuCD-Q^x=siQxXFJ^8<0c!jVnG$UfIZr( zP^<-iu4B+s|BL?)-~d$_t#WiHc=Te);-%Sefj*p0vazAltE(_+^`x5!`RTUVaT>AS zrwc0DD1!Y{O%C508*gj`y;L)92DIsT(XnGi`Dj$gsJ>Ov(bcRq8hxZYyW}jB&U(l3 z0y$I`B?$yak9h(l>dLaoru8e%C;sIvf@hP%S)>b#7^Y}JlumE9Qr=t8NOU-57lmW? z@&W|{Ecogr4L%aHAL8P5Z3;IX%J#TW#`(4OfnU~_T^>Zc@MUqKDX89AS#>ZI^w|B* zuqa94UWv>2d(-dr5zlb|HkWX}|KP5m@FP5(Zz=6zL5{F|Mo)nubNiUBWPk=ApE39~kz0(!m5fWIx!{D3+v02^gw@BseI>tLg zi?VV?3Od%GSPawgY=#=EC>ra9~cAv3@71v40=@p z(`25>8CDjuK_kVQb;R%7)J7a@uh05b)tLgL4^G*0*t5@`no$Jx_U$Jm_rhnxQ0z6V zXP_xkM+ja+_NTL6rfVm9F68V^XCo@R;8C(YE3AQKJZhPlO)8~VpUuq`jn3c%Yh4hg+-p(I;kJE4$M zZIDdYhDPl_E}q%w3zJ4IH_GIJ`J|8u6Yl2ik6tLuErMWf(+cjV*{`6aAb;F7M;oqY zYgzx%GtZ&Zyc+$I2}L-66XBcd@ZE`skX$~$do^(ez>>IMFqw7fXdY(YS6Qw=!_akd zFpsk;B*AQ4U^nVX$y=miFc@q*bO?OBLk&Ieu-=2^hR3%vEii28G;xad{l-dQl#qknw$!FOOfAPbG8o4h)m5y- zY8EDNnysW=84E@wCyHV2dOYO%D@vcp^|P9WCDR-=DiZZ3Wfu?Em-wP#_#kFqO>� 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

CGKmQYQn9TCFXj*@!;?(XipMRRDKTY6;7 zA;ZMSWp@@*WG0alk#G6*sr7ky2kp>MihgwTdk%*)F1j+H2B~loQ=L@k`0A&weMY*( zr^g<{KED6_FRmG7^IM#H>X-L77Fkgv%r|52rZvw@Pm$ktTm=wTJullfA&?NpDkLq< zHY7Io;PAx9d$2Nd)C@oOtcIBfCPv_n5gZJ^akh+mQ_o=-4jO}XY1iOtKduS>)b$dM zkSUDtnp!+XR3jDTrlIV>8WnZ8ha5e zpfV6ha`CJY$M4$Jr2jgxKKkv0pv2WWBEOhwU4UGzg}rsWv>pA7B5m>jno2VJGnS8j z;;B^wLuzB75P2vP7U!1D{t&&IUpe8lTyYy=QS}L09*Ii>s_H_bP}E(lM{&gH4~Ppn zHx71!Ezr3Jf7;{z0R&3(RVdxpd#;-tZ3A}gepzW_|ML`y0s(*JdIu>*iX_YM46F^^ Lxa!tQe%Aj1Y|2nt literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic39.png b/src/keepass2android/Resources/drawable/ic39.png new file mode 100644 index 0000000000000000000000000000000000000000..1f36acaa16023ac0fdba639a79e9142a4d0f035c GIT binary patch literal 3316 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 Y^ZoPbAJ-I^&lVsed|TM95JCR`0SwOn-2eap literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic40.png b/src/keepass2android/Resources/drawable/ic40.png new file mode 100644 index 0000000000000000000000000000000000000000..81d608855ec632d992067dcb5ad86809147ae0d1 GIT binary patch literal 2707 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 Q(D<`Jq#!!%yAZtO|6dLA8UO$Q literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic42.png b/src/keepass2android/Resources/drawable/ic42.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a295d091b0b2e83efd7b51b479e15f47470d39 GIT binary patch literal 2276 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic44.png b/src/keepass2android/Resources/drawable/ic44.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9d2090880ba3180366688aec1c5ca981c40cd4 GIT binary patch literal 2089 zcmX9{h->9Z4yf@F*4E5iZ-ad6GF z8q;RV*mp?)Ti!J)h6bjXbp9 z$-&J5005`(u)R@MPg*xSr1kv!rAtdzXOkH8V-Nt;c7A7@_t6^T&+m&lADzrOf03EW z27(fjS!`1H8D=6oip@+&Ki9?H0|2O};d_IA;tjG)5JYXI!9@Uz1u_6E4KW8;?_wVo z9$(gv$4~q_CN{qv!WyTj@!WWI5sd~6Yil-{R;U?8IHC=U;+V(_3`z-Aaw z8{%xfjqgSwks=^7Ky*dy(R}sh#Xr1oIE16CD?+VRqlfbHOvlQpry#z0P#RlUIjg2i z1JDZm2*t!QSfCGTMaA1iEe_F2$665Qfg;R-sDiCo01aq%ujpw%cDLi@OC5&mzlB0+ z)zTH4-%tz7<2q50wRf?m6}qP6fX3xzA@p2P?uw5N!- z@?oUss_;a;*#Nm{^tD2Tc>bwc0m@DA&?SYi-yOh;Pz!xQSi5+GcXvu?1mWzW%Wun% zc(Gv#??g2D)1MW0NEu#*X9n-hDnwVR-stypVFJnRLuEB>Q~nRf<9w4>53-#5nm@ZZ zeiiKWCR!*+nVWkNHJ>yD{+4_-gDa_)RcQ_+O`Ht;$E{5Xg6O(yNi}?1Yzr(Y2{L4u z7zXq5F2uG@*x(?#r@tTc8 zg0m&LV-pR@Xg)EJY(j=2dd=vbvNF)7Dih3l{8-ea<(5F9RYH$kC^OF-T5ZHE0OVaw zrdFNawiOe3%hrz6h&WVdj!O;EocY|hCiFB|Oo%V%U2^CWKE0@$@x?4AVwhTqgxbb) z)P4lp3;n_h0YqC>lga$m7NEd|@eSJm!_rbv{kdemeb|3i4XW?U$3|xA(Q2YPp0UA& zRdl{Su~(nQ8J%G4TQJkVb`Pi)l;N$i6?40T!tu>lTEzU>@l-<4&r~v zXoYyc#zsGXywYRQ8I0D*gIA37J%zMC2|q0fvRQUe0NJTYqS75+CljDK>df#%xa)|w z{w1t5ZWvxs$ozmE8VJf-b(^^yxm`q9`h;q|c~c0%4i;fZD8L3g1bb0~CPbK&yOC%M ztBa%g=Ncw0zgS`>R%aTJl|jx%j7lh{H1RDf9hVueP$z+PjQuP=DU|tC9qqt^n(J)H zpFVZm1E@EBxp@Q%aR*qE)R6`{y5|IBUd7E=MaIhWk3@v`mTj)yEig^9#qnT?#OSs& z+vP)8iG-j+tB4ttCf*wE1`u>ahqIzKE3Pdl$n-p}yrEQPwWcmLhPEp_0{7{S^sUdE zn<1xb*GEiD-twFl7gpSSH7F*E`sbd)N$iap>12^GELTS)CzOgV zjX?3d#aT6uTV}E5k2)KAR9jWbcDrSNL(pGnoZc3Eadi)tT8i63MDsh zgsWfxEUVLY2r`2H(3am}d-i$OO>Or8!p&A4GB3~l6=~@pieWm!X3PRXHmuk6E41a6 zvDgG}8sI@tE*=(%9sO;3C1%XEDf*Fvev{jQdwMEW4u3O5XGoFvb}(Lc>u}umuaVLV zpH2vB1nn{mckLv1YQ4)8l+1ygLnhY+#m#s|W-Egyy=@@WxKK#?#i2UMc4Nb6l0E>A zm{^0f$>TxWe-W}+MqB=JO4e)7s!V$O?lu-xpEinUNR{CRnOnN%lZ%haM43F`CHayVZ z$cr5qXzT~YrQ%<*CE~LDjS=-a8HEf#iDW#m|4d_$EC9Q%l?qP(DA(6bf9#o6ZdJH! zPbK8gs~Ymwl@ACF4UNnXf#ukG4BN;Wf=V63fMFF0SaK!G>PDyI8KYyYgwb&hb955U zI&>`5*~^!c=HDq@a+Hq literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic45.png b/src/keepass2android/Resources/drawable/ic45.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5e260a5f21585e0a76c81a0a66b6dbf5be60e6 GIT binary patch literal 2478 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic48.png b/src/keepass2android/Resources/drawable/ic48.png new file mode 100644 index 0000000000000000000000000000000000000000..bd433f4bfd9b001172c5ab8840a261ee9640a1d2 GIT binary patch literal 2972 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 BLk<7{ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic50.png b/src/keepass2android/Resources/drawable/ic50.png new file mode 100644 index 0000000000000000000000000000000000000000..174b86c3dc8a7ddf33563b9fc6e13c659339ab06 GIT binary patch literal 3154 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 E2TddK+5i9m literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic51.png b/src/keepass2android/Resources/drawable/ic51.png new file mode 100644 index 0000000000000000000000000000000000000000..2b49969a53751a05e235f0029bac43861732b5f4 GIT binary patch literal 2025 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 ZFaV=kJnltGL4N=M002ovPDHLkV1fmhH0uBW literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic57.png b/src/keepass2android/Resources/drawable/ic57.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6d2e056d63a5cf1b27aa28bf880527ac342d37 GIT binary patch literal 1759 zcmV<51|a!~P)Z!-or(M3|NnnMV&H&b1Tnyf0VakVUjG@; z#Vaqx@b%k&hQI$97=UUR z{sMLV1v=*si2et~Q1&0F9I{#v{STQBlm{}wG)O&2j)8@d;ltC{3>W6kd-dz<3~_(} z0*3%M7b};9jxxg!aR~DpV z%*+8a|Hp5j*-W7DU;qdpNE%>bV)*rkkzwVU2MpgoerI4{!i-;R;6HLiBQqHpFf@X= zOhEB}%xnzOvV34WK>#3tSRfjh89sdd%it{afuS&07Ufu|QnM#PA!KN`yst7*v&nX_MbTal**RASwQn;m;LNa6m!; zAb=naU}S=%(!bznVfgds55v!&Kfvw>o*zt`X+%LhTQ?Esp8wWZw$e~K|t&WmIEcs|4fi500$)JR$u&^+Llan(8Gcz-4C_`Eh6xUE6{`&`y`+wl_1Q_qYLV=5o6&eCSf*E2pKmb8QfDz)V|AZ`t z#495-_+T_BCcx$We~6<%mO&f`an!$mz%=&v7s6o>&0xI%0R$}vfN>3s0+{_@zITMUG&Qv`u(GnjqXOz7 zcqqag2g?PaVWAAF3E{xt2RV!pY$pf+1Q6T-fBqrLPh(>vhKUn}*3y?XbB1hZF+;pfs@Z`TYl22JkWb1Udwq2>(N}J_rB=5K1Ea5A_8vFAo@_ zre;Kf(`03d+iB_Svq{%6EYaOkNW zB=#2=iJ&=_D3_Eu013M72>}SNNA3$cXvGFk2nCT-L8BhlR1Q2Q>ga(0`nGwUxnG?Z55Ap%1 z%m?`b#0F(c6%}P*Wz>mO+WkjKgrM3IIRS#B1ezVe4n)d^00D%O2w}m(#>NK5$kpwi zUw;_>LK7r28?bt2XTwPKp!9+408pI&`wJ2O@$)x0sF=acB1Az15J2z{06F0MmmdsY zK7VKU{r5ktk&V*U2E`v3{)6WI|FC$6(%|?7$wPAiSPa5u0vFl9rr*z>KtWD;2mk~S ztS(^U4AAB^QfnB-|HpvT zGDd1aqniP44zMsWF#UKBk6eHN0z2T>KZc3NHXh6e=1mq*cw%eaV)Tfx@&DtOhZ@HS zj5=WI{<9Dy1`t4u1Kl|V2%rJ)oB{;UfI9#nzyP@nRr5RAP2vCm002ovPDHLkV1ikx B5TF16 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic58.png b/src/keepass2android/Resources/drawable/ic58.png new file mode 100644 index 0000000000000000000000000000000000000000..91d7c5f63c3a0641ccace37536ace532825cc80e GIT binary patch literal 3240 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic59.png b/src/keepass2android/Resources/drawable/ic59.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc4f6b5c4ce22589709feededec05338e77d406 GIT binary patch literal 2186 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 RXn6nt002ovPDHLkV1kEG&7=ST literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic62.png b/src/keepass2android/Resources/drawable/ic62.png new file mode 100644 index 0000000000000000000000000000000000000000..8640421a16f06deeff8942796e310fa46cb7bd21 GIT binary patch literal 1428 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 JPDHLkV1l_*BVqsm literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic64.png b/src/keepass2android/Resources/drawable/ic64.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd1edf299adebbec7be08a4ff11dd9a50147f89 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPi2Rk>nYFRPMAE1zAiEBiObAE1a zYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8c$4r;B4q#NoFG85x1RCWZg&^E@0t%=c^p X3Ji?XzlUE3au_^a{an^LB{Ts5<{2>@ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic65.png b/src/keepass2android/Resources/drawable/ic65.png new file mode 100644 index 0000000000000000000000000000000000000000..4721b68fcd506d7ce105d413e34f41d800cf09ea GIT binary patch literal 1827 zcmV+;2i*9HP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb+ z3N_CX>@2HM@dakSAh-}000JlNkl6Z;EE7XWh!e1fD?M3#!XAR+#zI}v(3p7DbR55BNt$Br8%B_%tjr>EDeYDRhx(=->{Zg=$9 zv131PYHFGgkqK43WEcj#Uhf}7ApKr#-hzKuUy!b*I?irHbP*u083dzSw?pv{9MGOFU@811; zl1EAYh~y6qi$ILz-Q&lP|JLnx&)URlYHC&k$O3SSUdB9b%=g8*g$T+7bRj+B&?+&X&nXq;pofN20%3@gT65g7yUT6J~xupM}0 zWF!C}PV$b3{29Po07mxh+xIJ<&lj=CVTJi;e}Dg9CMG6I zHf`GUI)J!{TqpTA0HX!~7>1!DGD-4ALqo&MHi4m`As+xQfLs8Eh|G#egyg@<%ga9? zIxsL0An6v7l>m|=@*qt|iPqNECjg+mz5P7^F#r(}xk>WIM^ve*kLBd#+_Y;vJUl!? z@_VZKB}>r&fR2uiCQGm^Dk@qa`5ThoAzAg|m@b#=mEz*!OC+Bo`7@HOBntq*_()%h zOjcD@y=wcXPoJ&;;1`h~0FV9r$dMy&IGxT}0JweocE;JWXUhQuNamAtriFCJ&FGR@u1x{QT-fBH^|D?(Xg~k^zfo zuKheKD{HHW;LxE%*F{7DOah3CNc^F<2+5*gFnGl-!@$767|9M*eVn8T0J*uj$4%2* z5D@~P-|t@}*`=zxNUkF(7J=8+tXXrOcD{m zw*f3z>5mwOv9RQjAQ>zyEPTfP5uU@_SqK(PU&Q6i+ zA-S967hNvbUqhkL>m+}ns?VzGH!UGzsSE(Xbai$0E4I_q(^Ce(Pck?+H`lao-MY6$ zB&W2r^j1MZ!P@{ZH#cXTI(6y`00KQdJ+<+8yso9C(Z{w0z>A^D`L<^#a!=xC|cUIf6cTen^(*{!P2kPNHpijRwLEQ7;bZEfxEY$qHJ z$6YShDgaYfU*7|O`uh4i#l^*AHm?bVqMvfW~!RKcJ10>(=-=nW@i3qr=MhgI_|=S z3q=lxBerGBmN!Wbk=#%6tCkS)(4}-4S%_`ky!k{l8olrJdQ(>VC+v}GTU}jUBpePu zziZd7OaKA<>iwk2w_E~L)iDt%CwZ-H-vG z+*;9+0IsC3UTL^&0BZp_?Zs0>QlFZDr3DcY6M$Mb-^0inmcUb=N__td`wytiXwskx R3qt?^002ovPDHLkV1lhcPniG! literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic66.png b/src/keepass2android/Resources/drawable/ic66.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a83b944f26f766f802926e36ff76ff9ab27e1a GIT binary patch literal 930 zcmV;T16}-yP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igb+ z3jiBb=D?f)00SaPL_t(o!^M|Ph!jT@$A48d)6+X2W|^H{G>W(g?wYtmP>|IaFoHSA ziimm=6%++Akb~ehWFdzr%q1Q?2!4T=gn-0@ByNV!U#dSY)c6w&J z%frlUvVP5&o^c)&Jm{)=KVH51ziRlu=JF#0{6cXX=&5JCWCS_KdQ z5D9k#;vLRB32X!UfnMN4K*^XS@Pc9B7Vrn~E4lh>L)01kYv5qrn_A*dW^-n#&gy*l zBXBu79XtRL71&)iDxnaTpsl+NYp#WiNhkpZ>`uEI>dQi;M(|I8z184}r3vD_aR~69 z{_@mFA?@U{Bq$CGDSG@de|cf3kTK5;z+`v;*j{z)g*Nez;^1>gXZ0Wh46Bq{0H8nC z`>XSu+sW_9M2jq#p%oGoOjO~@a}s|>8Wy1`NqQCNsiNv?FE2y%V`%v z?8C5SwM6h62p60}QEIsw=%Ajfjd9g}(|L zC$3CnOtE}(qnRk}U$k%4S^YzE+Oe#xHSoCS@t*PiaVL_D?5Tb(=@LO9_^zoBl9#PC zQaU*!w?$^ZSAbWlQJRoKLW=-5r}dE`}%W5^?x# zSTtXY0?!<&{3Yd|Bn}zwnOwc>UHc=Zg?Be~|9Y&V79ejdtHAf+!NIc%3=Pcp5502` zIZ+w6?(H4_-OPM4C!9a#9I2^Y*O6|wvzY1UOM#0^PyJ|m7u>gR#iVU}Po6niIOF(v zudjckExVW=u`k^iws}wZ+Xl1icRJqBX3coDwX)Y)jomBu`D>lGyxRM$5+a{RUD9GV z5m!lPU|9b}u5Hr^zgIf@va&dT?ub`)oYkNv(fTo!smH?qfL4$0>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2igb& z6bCU_1nidp00H+&L_t(o!{t}aPQpMC{xIB4eT0>SBZu|@Oa$*Hw#VKq2M;}%2#-KX zJa80l987FYyh}-ZfbD@J3HA}do^4VO^oK=$mfAwpNl0hdpZR8HXLhy#4ibnQfRoIb z14R%405jJrY@2_C15+Wb^#ilP$Th`Sxqh1$HV#rsgT;-Pm9C@ZHIgK))l=kkl>irt zQs&K=SL9zx5!gUSMrgZSslp33&mZ|fHRuFvJHlhVqQ~N{@0uVZUB}& z!*o21JKl&-#tmqi2C-6tRld&eX(m^N7|=RCv!_{_*YPgOxdEgB!J`}iz5rGfBds_) R)0Y4M002ovPDHLkV1gew4&?v< literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic99_blank.png b/src/keepass2android/Resources/drawable/ic99_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd1edf299adebbec7be08a4ff11dd9a50147f89 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPi2Rk>nYFRPMAE1zAiEBiObAE1a zYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8c$4r;B4q#NoFG85x1RCWZg&^E@0t%=c^p X3Ji?XzlUE3au_^a{an^LB{Ts5<{2>@ literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic_action_eye_open.png b/src/keepass2android/Resources/drawable/ic_action_eye_open.png new file mode 100644 index 0000000000000000000000000000000000000000..aa461c844303f1c85851c0e00c1f1adfa007ecab GIT binary patch literal 1373 zcmV-j1)}u(fQ7{;e}p-_ul3&oH+ve0SH&Uv2q%2%2iDsivB0s;T!|Ek#kZ20_rG7S#N_ zU`0{1)~&0z;0^1SAE4ej|E$)Qf_l@l6$8lgyzNZ@_0O{`YbV)}=Xsm|-Pf#N5xsUN z^E_|MvaG!*idK@VMPvxTS0Zwf?~uIWoIB{88z8v>fDw@+&bbrDnEv3^lWq(^z4Okw?asLq*4i;+On)55 zz0SE9z&QXDA~HjA4!}IgIT86&L+7@LT(Z`Vq-nZ248yK8O*f0k*8mP#Yqu^7fUh)J zmbE8IQYQI5$z6G#w^ggvRU|?3isryWk`EN(vD&n?_L#MHuu`e)u-1+^=SGtxSs#XB zmu|{{bM9aq$Db}6K$@mK&bd+N+-Js^?kI{n<2dfM){c?9s{m6ZX8}AV`3%5QJ%P`S zG2Nw7X{`e1BzHwow8o#X!VNaM!7Vg0V@$t@>?OIOD2moF47;qg8?Cj+YO2s2$rtMU zyf2^D+Oa5#)+oR*$%`VAB}ua0Z%|Pbt z5|J4Z`PVzIVf2vXBmG_gxGW;KNZuEblSz{7B-!Bs!Z7Uer_v~Zz`vYiM{PbtQM5)Y z$*&qFk2G1&0{BgxpAwN70P_I;@oRMb*>brYMN!o0E1iG0Ho1mqQ6KOSBs+{T-PYPc z?ZC5IfsR%xl^r7TrSHn>>>SA_3Nopua$ZD+qA2RDpPPc^=)_5qtREg8UgwWI48tyx zeE@z?fJyDJ8GzFoLVm1xLh`wW*`FjI0yu1~-C7$$aUAy=W4ap&urNB5%jIoJl9Y#s zhu8VjP@r!}KG3E$DI$dr8{PT8Nxsm^G);0=L~g}#yr*_U;yCUl`Ee9Qoec%>aT&*P zFMxe<9PcTWN^7$$Yd6Mp1K6isc~T+feF-J`jO25YPjvTZ6yS_8rauhBt~}4%j4_+6 zwN>ZbKus7m2Ed!&^>Vo!iO5lsu-0y@R;wQYsOa1?;l~FZDIREvogg`-pBJpPgCskw zwHpB(u-1+_=e8_I4!kn%hGE#HgV{KMLs|;^bU?f2dqPcPn^KTF0M3z2wP}fn9MOBi zmioWbFaRGyTAN#fAZSsCkBi7H5jmrSoE4ETbP~M^;GV+VBRMW2-;o>!P|*?m8p#U) zcE9G<);NIL&!8rp(lqUf<9H9ri#4;*9RSw>Tqk*xFE25FXd|1{vb*0Hv&koL5G>Cm zx(KB1#S6z>tyWiwNJ;Mj<0S8DqW(qlu_o?q5&20cPebyl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVip(7?jn$k5Ex$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1POzUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1= zG!Lpb1-DyFaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zo;KfUG6Mq>yQhm| zNX4x;*AIG&B+4B7IQNd#3dLDnZUJ&StyV44rH0n5Q(2akyj3VMIg?!9_DGS#QNQZl z1y@c{f8D(7km*4u%|x9pA6~X~^X>1g&o}Vwe%)9X#Q3bLeNETqHw<5I zef!H${PuzQtQ?jTt1it=J~MTz-~p4FY#*&>1vcwSGoD!;(k;#SY}eA=|5KC?RIho& zsP|*WbFIADdEKSbj6R0GtL1H+qdP6vJzV*07Jn4;QmaI#w^vJch*zu*&voyfnO-M+ zcZHMN+3aW|vvW<6zG>&0kNB6@@?D*8{81{}BAxze z-BQt{4L1~1jT0))7_Fz)pVeYK#P`9!fsw(ZrRLZbj)oVYg3{B~&t;ucLK6Vx856|- literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic_launcher.png b/src/keepass2android/Resources/drawable/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f34f9b5b43bcefe53afa655648b3f48bb4911698 GIT binary patch literal 1561 zcmV+!2Il#RP){n}Bm}n9W3DhP?X&aH6#Klp-wQNuGaBbH4Zaz2Eu1 zuRR4A*SN+tl$RzD%f+hLLAFm>r$!Z-%UNj*arZ1WbSo{Pw@=idDOF8 zSkL(q031dpqFLGJ*G8R8&GPP!+vXVx024^v3;?s)d>83AmsyX~vI4zFCZlPkc_l#bdPTYDAP z1t>T2P;N--vyq32>jJ#;{np;ghAo{n20=qr3-45!HZCH&gy#4{J-h6StPN+Xg8qq0 zb~y(CGhrCrAJC+^ZnGEgc2n<(iI_$Jm{>~0GOAm7MG9j|hs=)RU)wU?E|$G^MV2i3UQA+jAn z!>xUT25;|D+H?klN*dmMSU0GKsx8BI00jgcRc-0m-bLU~of0h7ux!2t#LXdivqOaK zT?DFcA29=KCBVQ`Te1@g8&}}*VlHN!{RDF)30R=CbX%tN*D#l17yy>|SP>T)tLxFl zRgV;E3(j@bBXeynW*5iX=y4lCfLvKPE~cxHLe-*|j~0Ccuc6069a5-Tqz7KZuj_)x zHo)dR$B{zSVo-SX^RQx%fqt z0P_IAouogQ?_SwP2Eff-qyqqND{8s-XB_fvo&9MM!#yjH?nTBs(-$sX=BFkFKxa1U zQV;noAzLdekM4C^#Bc`_zsM%k7?M$8zwH7pXA(%Wz{{Bg@^_scTL5p;uRV!{O8S_# z*^@Xhd=CB}Yzkm104xFk#u)da{;aRaq5lJ?G481_I{#abYe@YI3D013-+pVu00000 LNkvXXu0mjf+nm)w literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic_launcher_folder_small.png b/src/keepass2android/Resources/drawable/ic_launcher_folder_small.png new file mode 100644 index 0000000000000000000000000000000000000000..5df8d60f04bcd636d11402840ef9cccaf4aad404 GIT binary patch literal 1522 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOb; z5DW@B*yK0>00nYML_t(o!|j(%Y+P3r$A9PE`{w(N$JkErIH{f3b!@5>B`9eTin@Xg z5+GJ=sVae#3YMq{RTV6%Dyk|rY*fDfxvtS2|*lJkf>5iL}Hxr*UWf6 zJn!AZV%{5%$2Lt-5Sw1<>fZPC-aWtbKj(hIhvolVXRdwfp^V>n^|hR;z6e~m#*~e6A*v zJChR=KP(oDuUD(n5B?*-%dgz1OifNcTNxk!c%@Rgo6qHL8)N<3EH3pMZ7X&*v4t<=>pMw?*XU#>U2bo3+j7#F%HSF~$rTO{*mB&hBo0 zuhqH+90pL;kE-g|fH_rt=gqf%^4WX;yvNq|HUdOZM16OcX0wSkrjW^IFK4sa%Rvx) zDT*TRg1`)WETa%2{r4gOQ=^Kz{a)_{5xEXnfG>Rha|jT}F^xu(t?e!9^#(gTJM8VX zXm{FlI$gTmE=I(-Oy*dRhYcHJu+|`Asz(4+bwX7w{TQICNp=WfIix&RPU(rFh<3X} zr_-U?=tI>uH>uYfL{W4ifEa^_0d)L0fVTk!L={9vb5sXV#u!SaBBfH1$;k->5MuzS z*Xz`G>um4r&~CNqbUU=$9pX41K&a|z=iF2jMQxx1#Lj#FS6~k)^%XcUE}|R=(kDw{ zL<9whV*rZ9BBfG^nKLu^IHud}(r7eUy|sq-9udLEK3^`EuWfB@Z2)(H2PTf=dvWa7 zUg_SeVCJi?x5P%1Y<4PY=%y!i&v#sEV(4P91ysPkBs*o)M|IqMR9oWM*?63YaL>GsCuk5>6aep zx&HKue+7K={f&R{76j*Pe?F;_FBDt?un#mHfcO4Ss@f8f!U4d;C?dxya_FCA`ie+@ zHYDkh0JI&zOm({P?t6FN5aG+Ify0K6@1JON2(-Td^%pVkeHtfCrhX%pgE)?U3i3q} z#!~M_L5AUuH+&Sr81P=%-#>IDP@p+bAjyN@sp=m^*4*-^z78Q8&w=2JY zL5%rECJ4rDa<~}mbOU8ZD??yM70Lt|x}7d!gzfF^7SI5;fXI#RPPcBYeJ_{G-tk_a zpPrt+TqqXCoV8fz21}|v0ctoGhQTtK3{ezeon?1-cMqs1IS?NK`07`lYXENnKMR5& zys)(V#Ny)O;-yQMFP=Mh{+x66tP6t4%2?%8HkZx01k4?ymN5q*3(Fzv>+7vXqfrOe z69AQmI5pdJ*$jdpx3si8y?Eh5b$R(?=Yt@aFO|Ye)79$2=~Ji9T4!<2VU5K(J5bCR z!@c|WSy@@R|LvDv{1)&B;P1yOFjCTtjet(C*K4k>-rQVWy}6b^IUon*X6NQ+E?#`{ ziK|zix->U;Zr)f^4V)Vf!*C*BC=^7*H0t$tfp>uWK>R4~1u~+P1v2@3A^-T|;`Hq7 z?CFJt$7jMYoUzV5xpr&yFF$_cN3R3_N}PIh7n5U(84Y2w0ku=(|7(Dg?jQQ$g><<5 Y8^FyV#?4~7fdBvi07*qoM6N<$f={f|vj6}9 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic_launcher_gray.png b/src/keepass2android/Resources/drawable/ic_launcher_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9fe754fe35414a886a897940fe0168e39c0005 GIT binary patch literal 1379 zcmV-p1)TbcP)Px#0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*b@1t=>A zJ5$O4000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000ESNkl$pcq@)s`PWoN=DneP-vyur3VDJag|ozkAOA zo^xgw{vZFIv7;ig?CZ+X+v!@?QFrT;x%D>ooY@xIU25}@mCiPIoi9M>2L{c&uBS_B zetTFpg8kMPp!s**iZN>8XK|6X2Iv1{9+IRKWPvu`QV zStrWBLx(tnH{RK7hMP(T$7# z92Nk2KBtE|XL-@%KbN^OWZ%yUi%+6h;ODuPZSjO%>D#s z568?EwKl%UX0QEbr#$0rXnidJ0CabnHoLuLSq9cq(j?QFPQ6SN)Mudr^l2}L^|(E9 z{rlxZX{%eEF8Z6t`v}w5U9;qX7(1u+FhIu)=M7mXRa7PoE2#J`y!kc67_w0#v#96Pudh^=)0|G$DgKm#_ zdR1x#6d8^An=9$Zp(?SeeT#2y@YTRQy1{u#M|JL8Fy2AhW4%jtM1ZZ%xYuPB({hD* zvGMP`i6;@wv`AoVVb9Tu@%4s~sKvY|$`=Zp|ejC$uSUgSo7O=mK@i7k; z!JycJ%`1w*U~ksTOg&V)ey3L+USi17z7mfAc^ zSB_ecJz{*qSs;N$GHQe+fnsoh$*f>ZsXP!TmP*oztdy(7ldn8O;9U+_SVhO9PU;P{MTzi@=vctzbS6;i4Ba!4BLWRrsUn@1)lG)AVAY$^8Oi@ l2e9CjLIZlIMJRU|;2%AbrMmx4=ZF9R002ovPDHLkV1h#Me^LMd literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/ic_menu_view.png b/src/keepass2android/Resources/drawable/ic_menu_view.png new file mode 100644 index 0000000000000000000000000000000000000000..f13e199e496a5d0ce7ce939e336878ae8e929a26 GIT binary patch literal 1508 zcmVuKRIERWiW)ElMQMYG72h8k?L(SWqG{UVG$v!3I;P2FGIJm2Y(Jbx45_K&pINX! z4(!8Pd!K#w-oO%;@P7yW6K7^#>>d-*U;O8u7lQG3WV4r<8B$84;!gmyiV*;=m;%6# z<4Dsqy;(7fi7+liOhoWJj|{^w09ZW-dfJADhT5}dvbVD2D?NBNRT5z+0}vRB*T(lR zU$Ok-_Uqe++FIMrDW!Y>YBqBV384!`@4BvTnx=XD=<&7}UwQF4&-JcpT-I0}stF++ z3L_*!OgfRLJeDL$D`}W2Phn(i#P_DWUy`Zh-aSw5d96?=xRFT2xllG}e&mkhz%)%U zo*R$9^y*7@pFDN)iDZ2e$#jx~R*)>RK!U);fDV|-1OSw|3{7buB1}z9@!*L;0^_Tj zw%)XBbI0ZruIrWpfqXuOhX3E;CW__6-&iGGdfe6;r`?O zR3ES3{nXP>?FCREB3|eT2!MI}owxtk5N~KnG$z;#m=vG@+Yy_pVpZ?wC-Z}*H2YI6 zDW|W$?>!9~10Vr`Lb-sID_1@k4uu1wKaV~$QJm2IlFzI$v1A??7{IElR;}G}?~bpC z$e-oa=GC7bkHuT+mesK(ECK*s=rWN>?AqM1dB@?e4{!VY%g^_9z1j78?o2MPlpv*^p?+TecOODb291 z>ohz*TxxA@JqkeDVcV;2tY*ow+GG=s>o7492oNkFbfEw^wOm{58|t&0(oL`o3r4^| zFcg%vvD)!UzraEnU;wmfE_Q;jj0?F0ffk*zC+gnpl~F7#Ih_327;^$9n4Gu z0*Vzw0Ezm0Gw*vhTNS z*|M!JUU#2Py3`B}KMefv?C{8N-wee^i4T%QCk})Kz5_`AbwfzwQ<+=a< zqGtgS!F63t2od_=!w?^9#&k`bWQ!MePE6V5<&z3)a`$F|Fe@*lWQl=PsEBdMV%zUBM)}S_M$)MDe97F$4Or&y(D7^enLHRUJsDF)j_M9j=4nbX1+V^>^yMHYbL z`@U}&#-hu}MQ=p&glGWtc|Al`OkND>zrvh#>_72a!V;D+i{Al9YnODWC|*?n0000< KMNUMnLSTY&{?GjY literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/launcher.png b/src/keepass2android/Resources/drawable/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e52d5f33c704cbb3a6014deb01b93a64c7a51398 GIT binary patch literal 4936 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/navigation_accept_dark.png b/src/keepass2android/Resources/drawable/navigation_accept_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..53cf6877eb72ad70368fd9e61fb780d42633a407 GIT binary patch literal 1335 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 literal 0 HcmV?d00001 diff --git a/src/keepass2android/Resources/drawable/notify.png b/src/keepass2android/Resources/drawable/notify.png new file mode 100644 index 0000000000000000000000000000000000000000..57439167aab8b73b783eeeb5763472d11d818038 GIT binary patch literal 3934 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 sz>revUm49r + + + + \ No newline at end of file diff --git a/src/keepass2android/Resources/layout-v11/entry_view_contents.xml b/src/keepass2android/Resources/layout-v11/entry_view_contents.xml new file mode 100644 index 00000000..93d283a6 --- /dev/null +++ b/src/keepass2android/Resources/layout-v11/entry_view_contents.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/keepass2android/Resources/layout/QuickUnlock.xml b/src/keepass2android/Resources/layout/QuickUnlock.xml new file mode 100644 index 00000000..4f96d020 --- /dev/null +++ b/src/keepass2android/Resources/layout/QuickUnlock.xml @@ -0,0 +1,70 @@ + + + + + + + + +