aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-03-05 12:10:51 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-03-05 12:10:51 +0100
commit7b3bc4ca98c2be52bec996287c5997c3c52e3603 (patch)
tree861f5c7d329ea8c96e673b2c16f068d593a55fb9
parent98ce06dbc9bea56d2960df2d7b8e7a5bc9e9e43a (diff)
parent8c8fdd6c495bb12f5c76c9d1fc4a6a44f1c3808b (diff)
downloadopen-keychain-7b3bc4ca98c2be52bec996287c5997c3c52e3603.tar.gz
open-keychain-7b3bc4ca98c2be52bec996287c5997c3c52e3603.tar.bz2
open-keychain-7b3bc4ca98c2be52bec996287c5997c3c52e3603.zip
Merge branch 'development' into linked-identities
Conflicts: OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java
-rw-r--r--.gitmodules4
-rw-r--r--.tx/config15
-rw-r--r--Graphics/android-icon-copier/README.md3
-rw-r--r--Graphics/android-icon-copier/options.templ.json2
-rw-r--r--Graphics/drawables/ic_cloud_search.svg (renamed from Graphics/drawables/ic_cloud_search_24px.svg)0
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.pngbin0 -> 466 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.pngbin0 -> 434 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.pngbin0 -> 661 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.pngbin0 -> 583 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.pngbin0 -> 651 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.pngbin0 -> 642 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.pngbin0 -> 938 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.pngbin0 -> 954 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.pngbin0 -> 480 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.pngbin0 -> 467 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.pngbin0 -> 717 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.pngbin0 -> 704 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.pngbin0 -> 331 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.pngbin0 -> 261 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.pngbin0 -> 434 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.pngbin0 -> 371 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.pngbin0 -> 449 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.pngbin0 -> 382 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.pngbin0 -> 642 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.pngbin0 -> 583 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.pngbin0 -> 353 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.pngbin0 -> 280 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.pngbin0 -> 467 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.pngbin0 -> 446 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.pngbin0 -> 434 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.pngbin0 -> 371 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.pngbin0 -> 583 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.pngbin0 -> 730 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.pngbin0 -> 642 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.pngbin0 -> 583 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.pngbin0 -> 954 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.pngbin0 -> 1155 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.pngbin0 -> 467 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.pngbin0 -> 446 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.pngbin0 -> 704 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.pngbin0 -> 908 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.pngbin0 -> 661 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.pngbin0 -> 583 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.pngbin0 -> 1080 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.pngbin0 -> 1093 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.pngbin0 -> 938 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.pngbin0 -> 954 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.pngbin0 -> 1578 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.pngbin0 -> 1805 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.pngbin0 -> 717 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.pngbin0 -> 704 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.pngbin0 -> 1254 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.pngbin0 -> 1351 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.pngbin0 -> 583 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.pngbin0 -> 730 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.pngbin0 -> 1093 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.pngbin0 -> 1703 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.pngbin0 -> 954 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.pngbin0 -> 1155 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.pngbin0 -> 1805 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.pngbin0 -> 2523 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.pngbin0 -> 704 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.pngbin0 -> 908 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.pngbin0 -> 1351 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.pngbin0 -> 2081 bytes
-rw-r--r--Graphics/drawables/originals/key-plus/drawable/key-plus.xml8
-rw-r--r--Graphics/drawables/originals/key-plus/readme.txt5
-rwxr-xr-xGraphics/get-material-icons.sh27
-rwxr-xr-xGraphics/update-drawables.sh45
-rw-r--r--OpenKeychain/build.gradle44
-rw-r--r--OpenKeychain/src/main/AndroidManifest.xml2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java30
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java75
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java19
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java18
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java23
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java19
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java17
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java198
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java58
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java9
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java61
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java9
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java5
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java5
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java9
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java17
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java5
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java17
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java78
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java1
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateDnsStep2Fragment.java6
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateHttpsStep2Fragment.java6
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep3Fragment.java6
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java80
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java393
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.pngbin641 -> 669 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.pngbin679 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.pngbin1358 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.pngbin450 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.pngbin422 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.pngbin381 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.pngbin454 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.pngbin1320 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.pngbin398 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.pngbin884 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.pngbin0 -> 524 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.pngbin0 -> 651 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.pngbin497 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.pngbin497 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.pngbin556 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.pngbin373 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.pngbin458 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.pngbin573 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.pngbin497 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.pngbin398 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.pngbin702 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.pngbin394 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.pngbin507 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.pngbin953 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.pngbin647 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.pngbin356 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.pngbin0 -> 805 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.pngbin309 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.pngbin0 -> 329 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.pngbin0 -> 416 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.pngbin0 -> 726 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.pngbin0 -> 287 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.pngbin0 -> 325 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.pngbin0 -> 248 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.pngbin0 -> 326 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.pngbin0 -> 276 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.pngbin0 -> 262 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.pngbin0 -> 227 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.pngbin2375 -> 381 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.pngbin0 -> 588 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.pngbin0 -> 300 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.pngbin0 -> 642 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.pngbin0 -> 409 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.pngbin0 -> 408 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.pngbin0 -> 351 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.pngbin0 -> 394 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.pngbin0 -> 381 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.pngbin0 -> 301 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.pngbin0 -> 344 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.pngbin0 -> 341 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.pngbin0 -> 522 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.pngbin0 -> 314 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.pngbin0 -> 572 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.pngbin0 -> 513 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.pngbin0 -> 209 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.pngbin0 -> 443 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.pngbin0 -> 1535 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.pngbin1302 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.pngbin0 -> 2598 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.pngbin2289 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.pngbin0 -> 1749 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.pngbin1530 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.pngbin0 -> 1950 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.pngbin1751 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.pngbin0 -> 743 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.pngbin675 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.pngbin0 -> 806 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.pngbin748 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.pngbin0 -> 736 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.pngbin675 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.pngbin0 -> 906 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.pngbin789 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96px.png)bin3241 -> 3241 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.pngbin0 -> 485 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.pngbin444 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png)bin1656 -> 1656 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.pngbin0 -> 962 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.pngbin861 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png)bin3638 -> 3638 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.pngbin0 -> 742 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.pngbin740 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96px.png)bin2878 -> 2878 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.pngbin0 -> 925 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.pngbin813 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96px.png)bin3257 -> 3257 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.pngbin0 -> 772 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.pngbin695 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png)bin3277 -> 3277 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.pngbin506 -> 499 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.pngbin513 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.pngbin1202 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.pngbin335 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.pngbin336 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.pngbin288 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.pngbin333 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.pngbin1197 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.pngbin324 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.pngbin587 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.pngbin480 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.pngbin0 -> 406 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.pngbin572 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.pngbin0 -> 513 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.pngbin404 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.pngbin410 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.pngbin424 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.pngbin321 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.pngbin348 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.pngbin468 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.pngbin375 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.pngbin359 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.pngbin2349 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.pngbin317 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.pngbin292 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.pngbin594 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.pngbin472 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.pngbin291 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.pngbin0 -> 585 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.pngbin245 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.pngbin0 -> 269 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.pngbin0 -> 307 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.pngbin0 -> 506 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.pngbin712 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.pngbin0 -> 217 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.pngbin0 -> 242 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.pngbin0 -> 199 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.pngbin0 -> 244 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.pngbin0 -> 213 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.pngbin0 -> 211 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.pngbin0 -> 207 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.pngbin1657 -> 288 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.pngbin0 -> 406 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.pngbin0 -> 230 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.pngbin0 -> 382 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.pngbin0 -> 305 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.pngbin0 -> 298 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.pngbin0 -> 276 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.pngbin0 -> 301 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.pngbin0 -> 288 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.pngbin0 -> 248 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.pngbin0 -> 259 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.pngbin0 -> 257 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.pngbin0 -> 356 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.pngbin0 -> 224 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.pngbin0 -> 423 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.pngbin0 -> 371 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.pngbin0 -> 170 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.pngbin0 -> 335 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png)bin897 -> 897 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png)bin1746 -> 1746 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png)bin1153 -> 1153 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png)bin1353 -> 1353 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png)bin528 -> 528 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png)bin622 -> 622 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png)bin522 -> 522 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png)bin643 -> 643 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png)bin2411 -> 2411 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png)bin410 -> 410 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png)bin958 -> 958 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png)bin685 -> 685 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png)bin2475 -> 2475 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png)bin589 -> 589 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png)bin2105 -> 2105 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png)bin667 -> 667 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png)bin2314 -> 2314 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png)bin557 -> 557 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png)bin2148 -> 2148 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.pngbin765 -> 827 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.pngbin884 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.pngbin1488 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.pngbin538 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.pngbin496 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.pngbin353 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.pngbin552 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.pngbin1546 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.pngbin552 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.pngbin1179 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.pngbin836 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png)bin623 -> 623 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.pngbin976 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png)bin787 -> 787 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.pngbin648 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.pngbin633 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.pngbin701 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.pngbin483 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.pngbin494 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.pngbin781 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.pngbin531 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.pngbin451 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.pngbin900 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.pngbin510 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.pngbin351 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.pngbin1231 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.pngbin785 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.pngbin477 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.pngbin0 -> 1080 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.pngbin341 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.pngbin0 -> 400 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.pngbin0 -> 490 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24dp.png (renamed from OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24px.png)bin1025 -> 1025 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.pngbin1428 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.pngbin0 -> 320 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.pngbin0 -> 355 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.pngbin0 -> 271 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.pngbin0 -> 373 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.pngbin0 -> 283 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.pngbin0 -> 275 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.pngbin0 -> 284 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.pngbin3149 -> 431 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.pngbin0 -> 716 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.pngbin0 -> 332 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.pngbin0 -> 583 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.pngbin0 -> 481 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.pngbin0 -> 463 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.pngbin0 -> 379 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.pngbin0 -> 445 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.pngbin0 -> 431 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.pngbin0 -> 319 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.pngbin0 -> 440 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.pngbin0 -> 359 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.pngbin0 -> 597 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.pngbin0 -> 337 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.pngbin0 -> 704 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.pngbin0 -> 629 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.pngbin0 -> 199 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.pngbin0 -> 477 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24px.png)bin2161 -> 2161 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24px.png)bin3713 -> 3713 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24px.png)bin2310 -> 2310 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24px.png)bin2705 -> 2705 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24px.png)bin911 -> 911 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24px.png)bin1008 -> 1008 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24px.png)bin911 -> 911 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24px.png)bin1179 -> 1179 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96px.png)bin4973 -> 4973 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24px.png)bin676 -> 676 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96px.png)bin2306 -> 2306 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24px.png)bin1218 -> 1218 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96px.png)bin5757 -> 5757 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24px.png)bin1043 -> 1043 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96px.png)bin4395 -> 4395 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24px.png)bin1166 -> 1166 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96px.png)bin4908 -> 4908 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24px.png)bin1017 -> 1017 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96px.png)bin5309 -> 5309 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.pngbin1093 -> 1212 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.pngbin1171 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.pngbin760 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.pngbin650 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.pngbin470 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.pngbin781 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.pngbin650 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.pngbin1670 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.pngbin0 -> 905 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.pngbin0 -> 1082 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.pngbin925 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.pngbin896 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.pngbin855 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.pngbin619 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.pngbin687 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.pngbin1004 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.pngbin778 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.pngbin500 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.pngbin1153 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.pngbin624 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.pngbin563 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.pngbin1863 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.pngbin1094 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.pngbin588 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.pngbin0 -> 1615 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.pngbin441 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.pngbin0 -> 484 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.pngbin0 -> 687 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.pngbin0 -> 1587 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.pngbin0 -> 435 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.pngbin0 -> 527 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.pngbin0 -> 341 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.pngbin0 -> 451 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.pngbin0 -> 353 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.pngbin0 -> 339 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.pngbin0 -> 356 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.pngbin3607 -> 576 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.pngbin0 -> 1018 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.pngbin0 -> 418 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.pngbin0 -> 954 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.pngbin0 -> 796 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.pngbin0 -> 772 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.pngbin0 -> 493 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.pngbin0 -> 704 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.pngbin0 -> 576 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.pngbin0 -> 400 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.pngbin0 -> 493 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.pngbin0 -> 489 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.pngbin0 -> 881 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.pngbin0 -> 433 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.pngbin0 -> 994 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.pngbin0 -> 866 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.pngbin0 -> 226 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.pngbin0 -> 769 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.pngbin0 -> 3678 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.pngbin3073 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.pngbin0 -> 6148 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.pngbin5303 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.pngbin0 -> 3497 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.pngbin3158 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.pngbin0 -> 4231 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.pngbin3765 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.pngbin0 -> 1300 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.pngbin1160 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.pngbin0 -> 1481 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.pngbin1316 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.pngbin0 -> 1310 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.pngbin1165 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.pngbin0 -> 1719 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.pngbin1590 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png)bin6986 -> 6986 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.pngbin0 -> 809 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.pngbin694 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96px.png)bin3701 -> 3701 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.pngbin0 -> 1835 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.pngbin1660 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png)bin7922 -> 7922 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.pngbin0 -> 1512 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.pngbin1377 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96px.png)bin5952 -> 5952 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.pngbin0 -> 1714 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.pngbin1555 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png)bin6544 -> 6544 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.pngbin0 -> 1424 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.pngbin1319 -> 0 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96px.png)bin7353 -> 7353 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_accounts.pngbin0 -> 1663 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_file_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file.png)bin1095 -> 1095 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png)bin1331 -> 1331 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.pngbin0 -> 2168 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.pngbin0 -> 644 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.pngbin0 -> 875 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png (renamed from OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png)bin2128 -> 2128 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.pngbin0 -> 521 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.pngbin0 -> 694 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.pngbin0 -> 402 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.pngbin0 -> 588 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.pngbin0 -> 434 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.pngbin0 -> 407 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.pngbin0 -> 527 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.pngbin0 -> 751 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.pngbin0 -> 1384 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.pngbin0 -> 531 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.pngbin0 -> 1155 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.pngbin0 -> 992 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.pngbin0 -> 992 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.pngbin0 -> 639 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.pngbin0 -> 925 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.pngbin0 -> 751 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.pngbin0 -> 478 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.pngbin0 -> 747 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.pngbin0 -> 747 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.pngbin0 -> 1106 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.pngbin0 -> 529 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.pngbin0 -> 1299 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.pngbin0 -> 1134 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.pngbin0 -> 258 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.pngbin0 -> 887 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.pngbin0 -> 5211 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.pngbin0 -> 8878 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.pngbin0 -> 4734 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.pngbin0 -> 6060 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.pngbin0 -> 1740 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.pngbin0 -> 1919 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.pngbin0 -> 1764 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.pngbin0 -> 2411 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.pngbin0 -> 958 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.pngbin0 -> 2475 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.pngbin0 -> 2105 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.pngbin0 -> 2314 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.pngbin0 -> 2148 bytes
-rw-r--r--OpenKeychain/src/main/res/layout/add_subkey_dialog.xml83
-rw-r--r--OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/certify_key_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/certify_key_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/create_key_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/create_key_final_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/create_key_input_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_files_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_result_include.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_text_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/edit_key_fragment.xml12
-rw-r--r--OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml53
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml23
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_files_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_text_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/file_dialog.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/file_list_entry.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/file_list_entry_add.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/first_time_activity.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/import_keys_activity.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/import_keys_list_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/key_list_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/key_list_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/keyspinner_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step1.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step2.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_https_fragment_step1.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_https_fragment_step2.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step1.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step3.xml4
-rw-r--r--OpenKeychain/src/main/res/layout/linked_id_item_dns.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_id_item_unknown.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/log_display_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/passphrase_dialog.xml27
-rw-r--r--OpenKeychain/src/main/res/layout/select_key_item.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml31
-rw-r--r--OpenKeychain/src/main/res/layout/upload_key_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/view_cert_activity.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_activity.xml20
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml10
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml42
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml41
-rw-r--r--OpenKeychain/src/main/res/menu/key_view.xml2
-rw-r--r--OpenKeychain/src/main/res/menu/log_display.xml11
-rw-r--r--OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-bg/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-cs/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-de/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-de/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-es/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-es/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-et/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-et/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-eu/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-fi/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-fr/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-is/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-is/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-it/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-it/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-ja/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-nl/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-pl/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-pt/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-ro/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-ru/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-sl/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-sr/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-sv/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-tr/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-uk/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html12
-rw-r--r--OpenKeychain/src/main/res/raw-zh/help_wot.html17
-rw-r--r--OpenKeychain/src/main/res/raw/help_about.html16
-rw-r--r--OpenKeychain/src/main/res/raw/help_certification.html32
-rw-r--r--OpenKeychain/src/main/res/raw/help_faq.html24
-rw-r--r--OpenKeychain/src/main/res/raw/help_nfc_beam.html16
-rw-r--r--OpenKeychain/src/main/res/raw/help_start.html10
-rw-r--r--OpenKeychain/src/main/res/raw/help_wot.html21
-rw-r--r--OpenKeychain/src/main/res/values-large/dimens.xml3
-rw-r--r--OpenKeychain/src/main/res/values-v21/dimens.xml1
-rw-r--r--OpenKeychain/src/main/res/values/dimens.xml1
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml62
-rw-r--r--README.md28
m---------extern/openpgp-api-lib0
-rw-r--r--settings.gradle2
598 files changed, 1234 insertions, 1502 deletions
diff --git a/.gitmodules b/.gitmodules
index 8238c3f80..1577e4f83 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -19,9 +19,11 @@
[submodule "extern/minidns"]
path = extern/minidns
url = https://github.com/open-keychain/minidns.git
+ ignore = dirty
[submodule "extern/TokenAutoComplete"]
path = extern/TokenAutoComplete
url = https://github.com/open-keychain/TokenAutoComplete
[submodule "extern/safeslinger-exchange"]
path = extern/safeslinger-exchange
- url = https://github.com/open-keychain/exchange-android
+ url = https://github.com/open-keychain/exchange-android
+ ignore = dirty
diff --git a/.tx/config b/.tx/config
index c7ec499c4..fe16cc2f4 100644
--- a/.tx/config
+++ b/.tx/config
@@ -17,14 +17,9 @@ file_filter = OpenKeychain/src/main/res/raw-<lang>/help_changelog.html
source_file = OpenKeychain/src/main/res/raw/help_changelog.html
source_lang = en
-[open-keychain.help-wot]
-file_filter = OpenKeychain/src/main/res/raw-<lang>/help_wot.html
-source_file = OpenKeychain/src/main/res/raw/help_wot.html
-source_lang = en
-
-[open-keychain.help-nfc-beam]
-file_filter = OpenKeychain/src/main/res/raw-<lang>/help_nfc_beam.html
-source_file = OpenKeychain/src/main/res/raw/help_nfc_beam.html
+[open-keychain.help-certification]
+file_filter = OpenKeychain/src/main/res/raw-<lang>/help_certification.html
+source_file = OpenKeychain/src/main/res/raw/help_certification.html
source_lang = en
[open-keychain.help-start]
@@ -32,7 +27,3 @@ file_filter = OpenKeychain/src/main/res/raw-<lang>/help_start.html
source_file = OpenKeychain/src/main/res/raw/help_start.html
source_lang = en
-[open-keychain.nfc-beam-share]
-file_filter = OpenKeychain/src/main/res/raw-<lang>/nfc_beam_share.html
-source_file = OpenKeychain/src/main/res/raw/nfc_beam_share.html
-source_lang = en
diff --git a/Graphics/android-icon-copier/README.md b/Graphics/android-icon-copier/README.md
index 3e12ae472..5e00ae376 100644
--- a/Graphics/android-icon-copier/README.md
+++ b/Graphics/android-icon-copier/README.md
@@ -73,6 +73,9 @@ Mapping vars:
Options file
============
+
+*In this project, if you need to fetch new icons, rename options.templ.json to options.json. And then run script get-material-icons.sh*
+
Named `options.json` in same dir. Sample:
```json
{
diff --git a/Graphics/android-icon-copier/options.templ.json b/Graphics/android-icon-copier/options.templ.json
index 319d90f42..c680d399f 100644
--- a/Graphics/android-icon-copier/options.templ.json
+++ b/Graphics/android-icon-copier/options.templ.json
@@ -1,5 +1,5 @@
{
- "basePath": "~/Documents",
+ "basePath": "../../",
"filenameMap": {
"classic": "ic_action_{name}{bgSuffix}.png",
"fa": "ic_action_fa_{name}{bgSuffix}.png",
diff --git a/Graphics/drawables/ic_cloud_search_24px.svg b/Graphics/drawables/ic_cloud_search.svg
index 3b20e2d90..3b20e2d90 100644
--- a/Graphics/drawables/ic_cloud_search_24px.svg
+++ b/Graphics/drawables/ic_cloud_search.svg
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png
new file mode 100644
index 000000000..d5420e3b3
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.png
new file mode 100644
index 000000000..7df34be77
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.png
new file mode 100644
index 000000000..970f44336
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png
new file mode 100644
index 000000000..80bcc9e62
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png
new file mode 100644
index 000000000..3cbf76ba3
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..af3bc9d05
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png
new file mode 100644
index 000000000..c9e69db00
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png
new file mode 100644
index 000000000..e0999bd81
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.png
new file mode 100644
index 000000000..a23143024
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png
new file mode 100644
index 000000000..8fed05005
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png
new file mode 100644
index 000000000..387d046b4
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png
new file mode 100644
index 000000000..d45e7a4b6
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png
new file mode 100644
index 000000000..ef4f8b36e
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png
new file mode 100644
index 000000000..797d1f492
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.png
new file mode 100644
index 000000000..7df34be77
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.png
new file mode 100644
index 000000000..8bb7eb218
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png
new file mode 100644
index 000000000..6ca369e37
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..6a9b6a9fe
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png
new file mode 100644
index 000000000..af3bc9d05
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png
new file mode 100644
index 000000000..144e82989
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.png
new file mode 100644
index 000000000..053348dbb
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png
new file mode 100644
index 000000000..e52ae7e22
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.png
new file mode 100644
index 000000000..8fed05005
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png
new file mode 100644
index 000000000..cb1ca76e4
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.png
new file mode 100644
index 000000000..7df34be77
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.png
new file mode 100644
index 000000000..8bb7eb218
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png
new file mode 100644
index 000000000..80bcc9e62
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png
new file mode 100644
index 000000000..827aa4b85
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png
new file mode 100644
index 000000000..af3bc9d05
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..144e82989
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.png
new file mode 100644
index 000000000..e0999bd81
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.png
new file mode 100644
index 000000000..e69e5732c
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png
new file mode 100644
index 000000000..8fed05005
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png
new file mode 100644
index 000000000..cb1ca76e4
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.png
new file mode 100644
index 000000000..d45e7a4b6
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png
new file mode 100644
index 000000000..e236e0176
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png
new file mode 100644
index 000000000..970f44336
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png
new file mode 100644
index 000000000..80bcc9e62
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png
new file mode 100644
index 000000000..28af77c8b
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png
new file mode 100644
index 000000000..5b859b5c8
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.png
new file mode 100644
index 000000000..c9e69db00
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..e0999bd81
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.png
new file mode 100644
index 000000000..3065946ce
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png
new file mode 100644
index 000000000..e3f5674bc
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png
new file mode 100644
index 000000000..387d046b4
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png
new file mode 100644
index 000000000..d45e7a4b6
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png
new file mode 100644
index 000000000..c82204fa3
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.png
new file mode 100644
index 000000000..4694a2a20
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.png
new file mode 100644
index 000000000..80bcc9e62
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png
new file mode 100644
index 000000000..827aa4b85
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png
new file mode 100644
index 000000000..5b859b5c8
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.png
new file mode 100644
index 000000000..7ab9fa2c3
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png
new file mode 100644
index 000000000..e0999bd81
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..e69e5732c
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png
new file mode 100644
index 000000000..e3f5674bc
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png
new file mode 100644
index 000000000..1151dfa16
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png
new file mode 100644
index 000000000..d45e7a4b6
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png
new file mode 100644
index 000000000..e236e0176
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png
new file mode 100644
index 000000000..4694a2a20
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.png b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.png
new file mode 100644
index 000000000..1d5f4942d
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.png
Binary files differ
diff --git a/Graphics/drawables/originals/key-plus/drawable/key-plus.xml b/Graphics/drawables/originals/key-plus/drawable/key-plus.xml
new file mode 100644
index 000000000..9cfdbe3e8
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/drawable/key-plus.xml
@@ -0,0 +1,8 @@
+<!-- drawable/key-plus.xml -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#000" android:pathData="M6.5,3C8.46,3 10.13,4.25 10.74,6H22V9H18V12H15V9H10.74C10.13,10.75 8.46,12 6.5,12C4,12 2,10 2,7.5C2,5 4,3 6.5,3M6.5,6A1.5,1.5 0 0,0 5,7.5A1.5,1.5 0 0,0 6.5,9A1.5,1.5 0 0,0 8,7.5A1.5,1.5 0 0,0 6.5,6M8,17H11V14H13V17H16V19H13V22H11V19H8V17Z" />
+</vector> \ No newline at end of file
diff --git a/Graphics/drawables/originals/key-plus/readme.txt b/Graphics/drawables/originals/key-plus/readme.txt
new file mode 100644
index 000000000..cb0ceb16a
--- /dev/null
+++ b/Graphics/drawables/originals/key-plus/readme.txt
@@ -0,0 +1,5 @@
+Thanks for visiting MaterialDesignIcons.com
+Check back often for new icons and follow @MaterialIcons for updates.
+
+Icon: key-plus
+By: Austin Andrews \ No newline at end of file
diff --git a/Graphics/get-material-icons.sh b/Graphics/get-material-icons.sh
index f24735642..95df5ca9d 100755
--- a/Graphics/get-material-icons.sh
+++ b/Graphics/get-material-icons.sh
@@ -10,6 +10,31 @@ python copy OpenKeychain navigation white refresh 24
python copy OpenKeychain av white repeat 24
python copy OpenKeychain av grey repeat 24
python copy OpenKeychain editor white mode_edit 24
+python copy OpenKeychain content white save 24
+
+python copy OpenKeychain action grey delete 24
+python copy OpenKeychain action grey done 24
+python copy OpenKeychain action grey search 24
+python copy OpenKeychain action grey settings 24
+python copy OpenKeychain action grey view_list 24
+python copy OpenKeychain action grey lock 24
+python copy OpenKeychain action grey lock_open 24
+python copy OpenKeychain alert grey warning 24
+python copy OpenKeychain av grey play_arrow 24
+python copy OpenKeychain communication grey import_export 24
+python copy OpenKeychain content grey content_copy 24
+python copy OpenKeychain content grey content_paste 24
+python copy OpenKeychain content grey save 24
+python copy OpenKeychain content grey select_all 24
+python copy OpenKeychain editor grey mode_edit 24
+python copy OpenKeychain file grey cloud 24
+python copy OpenKeychain file grey folder 24
+python copy OpenKeychain file grey file_download 24
+python copy OpenKeychain file grey file_upload 24
+python copy OpenKeychain navigation grey close 24
+python copy OpenKeychain social grey person 24
+python copy OpenKeychain social grey person_add 24
+python copy OpenKeychain social grey share 24
# navigation drawer sections
python copy OpenKeychain communication black vpn_key 24
@@ -25,4 +50,4 @@ python copy OpenKeychain av white play_arrow 24
python copy OpenKeychain file white folder 24
# multi select
-python copy OpenKeychain action white lock 24 \ No newline at end of file
+python copy OpenKeychain action white lock 24
diff --git a/Graphics/update-drawables.sh b/Graphics/update-drawables.sh
index 2e73641f5..4784af204 100755
--- a/Graphics/update-drawables.sh
+++ b/Graphics/update-drawables.sh
@@ -10,17 +10,6 @@ XXXDPI_DIR=$APP_DIR/res/drawable-xxxhdpi
PLAY_DIR=./drawables/
SRC_DIR=./drawables/
-
-
-# Launcher Icon:
-# -----------------------
-# mdpi: 48x48
-# hdpi: 72x72
-# xhdpi: 96x96
-# xxhdpi: 144x144.
-# xxxhdpi 192x192.
-# google play: 512x512
-
# Adobe Illustrator (.ai) exports by Tha Phlash are way better than the Inkscape exports (.svg)
#NAME="ic_launcher"
@@ -32,38 +21,24 @@ SRC_DIR=./drawables/
#inkscape -w 192 -h 192 -e "$XXXDPI_DIR/$NAME.png" $NAME.svg
#inkscape -w 512 -h 512 -e "$PLAY_DIR/$NAME.png" $NAME.svg
-# Actionbar Icons
-# -----------------------
-# mdpi: 32x32
-# hdpi: 48x48
-# xhdpi: 64x64
-# xxhdpi: 96x96
-
-for NAME in "ic_action_search_cloud" "ic_cloud_search_24px" "ic_action_encrypt_file" "ic_action_encrypt_text" "ic_action_verified_cutout"
-do
-echo $NAME
-inkscape -w 32 -h 32 -e "$MDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 48 -h 48 -e "$HDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 64 -h 64 -e "$XDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 96 -h 96 -e "$XXDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg"
-done
-for NAME in "status_lock_closed" "status_lock_error" "status_lock_open" "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" "key_flag_authenticate" "key_flag_certify" "key_flag_encrypt" "key_flag_sign"
+for NAME in "ic_cloud_search" "ic_action_encrypt_file" "ic_action_encrypt_text" "ic_action_verified_cutout" "status_lock_closed" "status_lock_error" "status_lock_open" "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" "key_flag_authenticate" "key_flag_certify" "key_flag_encrypt" "key_flag_sign"
do
echo $NAME
-inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 32 -h 32 -e "$HDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 64 -h 64 -e "$XXDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 36 -h 36 -e "$HDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 72 -h 72 -e "$XXDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 96 -h 96 -e "$XXXDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg"
done
for NAME in "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout"
do
echo $NAME
-inkscape -w 96 -h 96 -e "$MDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 128 -h 128 -e "$HDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 192 -h 192 -e "$XDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg"
-inkscape -w 256 -h 256 -e "$XXDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 96 -h 96 -e "$MDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 128 -h 128 -e "$HDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 192 -h 192 -e "$XDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg"
+inkscape -w 256 -h 256 -e "$XXDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg"
done
for NAME in "create_key_robot"
diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle
index 4567f54dc..97c8a6d5e 100644
--- a/OpenKeychain/build.gradle
+++ b/OpenKeychain/build.gradle
@@ -3,11 +3,25 @@ apply plugin: 'witness'
dependencies {
// NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information
+ // NOTE: libraries are pinned to a specific build, see below
+ // from local Android SDK
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
+
+ // JCenter etc.
+ compile 'com.eftimoff:android-patternview:1.0.1@aar'
+ compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar'
+ compile 'com.journeyapps:zxing-android-integration:2.0.1@aar'
+ compile 'com.google.zxing:core:3.0.1'
+ compile 'com.jpardogo.materialtabstrip:library:1.0.9'
+ compile 'it.neokree:MaterialNavigationDrawer:1.3.1'
+ compile 'com.nispok:snackbar:2.9.1'
+ compile 'com.getbase:floatingactionbutton:1.8.0'
+
+ // libs as submodules
compile project(':extern:openpgp-api-lib')
compile project(':extern:openkeychain-api-lib')
compile project(':extern:html-textview')
@@ -20,16 +34,6 @@ dependencies {
compile project(':extern:KeybaseLib:Lib')
compile project(':extern:TokenAutoComplete:library')
compile project(':extern:safeslinger-exchange')
-
- // NOTE: libraries are pinned to a specific build, see below
- compile 'com.eftimoff:android-patternview:1.0.0@aar'
- compile 'com.journeyapps:zxing-android-embedded:2.0.1@aar'
- compile 'com.journeyapps:zxing-android-integration:2.0.1@aar'
- compile 'com.google.zxing:core:3.0.1'
- compile 'com.jpardogo.materialtabstrip:library:1.0.9'
- compile 'it.neokree:MaterialNavigationDrawer:1.3.1'
- compile 'com.nispok:snackbar:2.9.1'
- compile 'com.getbase:floatingactionbutton:1.8.0'
}
// Output of ./gradlew -q calculateChecksums
@@ -40,6 +44,16 @@ dependencyVerification {
'com.android.support:appcompat-v7:5dbeb5316d0a6027d646ae552804c3baa5e3bd53f7f33db50904d51505c8a0e5',
'com.android.support:recyclerview-v7:e525ad3f33c84bb12b73d2dc975b55364a53f0f2d0697e043efba59ba73e22d2',
'com.android.support:cardview-v7:45c48c2ab056bc7a8573970b10f8902742c5d443f180dae43c56557397ac39af',
+ 'com.eftimoff:android-patternview:cec80e7265b8d8278b3c55b5fcdf551e4600ac2c8bf60d8dd76adca538af0b1e',
+ 'com.journeyapps:zxing-android-embedded:5d6ba3931bd0b999695e363b571e95bd6bc9956340c1e6ce740cd0bff3d89a50',
+ 'com.journeyapps:zxing-android-integration:6f50bb07c057ac94319777ddfbb66f5d4f6190393418b2fc861e0e60d06f3c0d',
+ 'com.google.zxing:core:38c49045765281e4c170062fa3f48e4e988629bf985cab850c7497be5eaa72a1',
+ 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
+ 'it.neokree:MaterialNavigationDrawer:1174d751a54689fccf53c1fbcdf439745926ae19024f4f1017afb6b29643c57d',
+ 'com.nispok:snackbar:59dc092a44c877e9ce5f9040c632d99e62d8932b0a4d67ba0ec9e35467d9047c',
+ 'com.getbase:floatingactionbutton:e63966148212e9685afad2370780ea239b6dbd2a06f6a3f919b98882318e6a32',
+ 'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de',
+ 'com.balysv:material-ripple:587f19c1e27f16c7dc67ff9ac73838aa1451086ef05a15cee38bee3e4e1454ae',
//'OpenKeychain.extern:openpgp-api-lib:b17bb282321351e4b00b4cd6422a57aadc13decae264019a88707bcb556439ea',
//'OpenKeychain.extern:openkeychain-api-lib:5f95f01c066069d4bde68992fd8da5faac21510d009b1fdae7a2e28e43e82cf4',
//'OpenKeychain.extern:html-textview:b58e343cf4c145e91f888806d06a2a7770a9e9331a72f08cfcf1128db30dcff3',
@@ -52,16 +66,6 @@ dependencyVerification {
//'OpenKeychain.extern.KeybaseLib:Lib:af9bff087148e0859430d0b99ece096c41b315c5dc1ed500a68580b9b0e5ab11',
//'OpenKeychain.extern.TokenAutoComplete:library:40d4212a95e947efdb02f2ca66c95a27d49fba848471a6317eca2b9cc18e8780',
//'OpenKeychain.extern:safeslinger-exchange:94a1ce68217af7499579a042758283b1530912c53241bdfa06d1a079a5ae3faf',
- 'com.eftimoff:android-patternview:a031eaed3b5cef8ea06c2d4a6e27693937f89ae483598d61b7027eeee0bed408',
- 'com.journeyapps:zxing-android-embedded:5d6ba3931bd0b999695e363b571e95bd6bc9956340c1e6ce740cd0bff3d89a50',
- 'com.journeyapps:zxing-android-integration:6f50bb07c057ac94319777ddfbb66f5d4f6190393418b2fc861e0e60d06f3c0d',
- 'com.google.zxing:core:38c49045765281e4c170062fa3f48e4e988629bf985cab850c7497be5eaa72a1',
- 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
- 'it.neokree:MaterialNavigationDrawer:1174d751a54689fccf53c1fbcdf439745926ae19024f4f1017afb6b29643c57d',
- 'com.nispok:snackbar:59dc092a44c877e9ce5f9040c632d99e62d8932b0a4d67ba0ec9e35467d9047c',
- 'com.getbase:floatingactionbutton:e63966148212e9685afad2370780ea239b6dbd2a06f6a3f919b98882318e6a32',
- 'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de',
- 'com.balysv:material-ripple:587f19c1e27f16c7dc67ff9ac73838aa1451086ef05a15cee38bee3e4e1454ae',
]
}
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml
index efe4b8926..886a8f7a5 100644
--- a/OpenKeychain/src/main/AndroidManifest.xml
+++ b/OpenKeychain/src/main/AndroidManifest.xml
@@ -67,10 +67,8 @@
<uses-permission android:name="android.permission.READ_PROFILE" />
<!-- android:allowBackup="false": Don't allow backup over adb backup or other apps! -->
- <!-- tools:replace="android:allowBackup" is a workaround for https://github.com/geftimov/android-patternview/pull/2 -->
<application
android:name=".KeychainApplication"
- tools:replace="android:allowBackup"
android:allowBackup="false"
android:hardwareAccelerated="true"
android:icon="@drawable/ic_launcher"
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java
index 67fa30a44..2d3ee6188 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java
@@ -33,6 +33,7 @@ public final class Constants {
public static final String ACCOUNT_NAME = "OpenKeychain";
public static final String ACCOUNT_TYPE = PACKAGE_NAME + ".account";
+ public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key";
// as defined in http://tools.ietf.org/html/rfc3156, section 7
public static final String NFC_MIME = "application/pgp-keys";
@@ -49,8 +50,6 @@ public final class Constants {
public static final String INTENT_PREFIX = PACKAGE_NAME + ".action.";
public static final String EXTRA_PREFIX = PACKAGE_NAME + ".";
- public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key";
-
public static final int TEMPFILE_TTL = 24 * 60 * 60 * 1000; // 1 day
public static final String SAFESLINGER_SERVER = "safeslinger-openpgp.appspot.com";
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java
index 01f6735ea..a4dc12a37 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java
@@ -140,20 +140,22 @@ public class KeychainApplication extends Application {
}
static void brandGlowEffect(Context context, int brandColor) {
- try {
- // terrible hack to brand the edge overscroll glow effect
- // https://gist.github.com/menny/7878762#file-brandgloweffect_full-java
-
- //glow
- int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
- Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
- androidGlow.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
- //edge
- int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android");
- Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
- androidEdge.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
- } catch (Resources.NotFoundException e) {
- // no hack on Android 5
+ // no hack on Android 5
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ try {
+ // terrible hack to brand the edge overscroll glow effect
+ // https://gist.github.com/menny/7878762#file-brandgloweffect_full-java
+
+ //glow
+ int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
+ Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
+ androidGlow.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
+ //edge
+ int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android");
+ Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
+ androidEdge.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
+ } catch (Resources.NotFoundException e) {
+ }
}
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java
index ea4fedc56..a856a4fc3 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java
@@ -38,6 +38,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
/** Represent the result of an operation.
*
@@ -51,6 +53,56 @@ import java.util.List;
public abstract class OperationResult implements Parcelable {
public static final String EXTRA_RESULT = "operation_result";
+ public static final UUID NULL_UUID = new UUID(0,0);
+
+ /**
+ * A HashMap of UUID:OperationLog which contains logs that we don't need
+ * to care about. This is used such that when we become parceled, we are
+ * well below the 1Mbit boundary that is specified.
+ */
+ private static ConcurrentHashMap<UUID, OperationLog> dehydratedLogs;
+ static {
+ // Static initializer for ConcurrentHashMap
+ dehydratedLogs = new ConcurrentHashMap<UUID,OperationLog>();
+ }
+
+ /**
+ * Dehydrate a log (such that it is available after deparcelization)
+ *
+ * Returns the NULL uuid (0) if you hand it null.
+ * @param log An OperationLog to dehydrate
+ * @return a UUID, the ticket for your dehydrated log
+ *
+ */
+ private static UUID dehydrateLog(OperationLog log) {
+ if(log == null) {
+ return NULL_UUID;
+ }
+ else {
+ UUID ticket = UUID.randomUUID();
+ dehydratedLogs.put(ticket, log);
+ return ticket;
+ }
+ }
+
+ /***
+ * Rehydrate a log after going through parcelization, invalidating its place in the
+ * dehydration pool.
+ * This is used such that when parcelized, the parcel is no larger than 1mbit.
+ * @param ticket A UUID ticket that identifies the log in question.
+ * @return An OperationLog.
+ */
+ private static OperationLog rehydrateLog(UUID ticket) {
+ // UUID.equals isn't well documented; we use compareTo instead.
+ if( NULL_UUID.compareTo(ticket) == 0 ) {
+ return null;
+ }
+ else {
+ OperationLog log = dehydratedLogs.get(ticket);
+ dehydratedLogs.remove(ticket);
+ return log;
+ }
+ }
/** Holds the overall result, the number specifying varying degrees of success:
* - The first bit is 0 on overall success, 1 on overall failure
@@ -65,7 +117,7 @@ public abstract class OperationResult implements Parcelable {
public static final int RESULT_WARNINGS = 4;
/// A list of log entries tied to the operation result.
- final OperationLog mLog;
+ protected OperationLog mLog;
public OperationResult(int result, OperationLog log) {
mResult = result;
@@ -74,8 +126,11 @@ public abstract class OperationResult implements Parcelable {
public OperationResult(Parcel source) {
mResult = source.readInt();
- mLog = new OperationLog();
- mLog.addAll(source.createTypedArrayList(LogEntryParcel.CREATOR));
+ long mostSig = source.readLong();
+ long leastSig = source.readLong();
+ UUID mTicket = new UUID(mostSig, leastSig);
+ // fetch the dehydrated log out of storage (this removes it from the dehydration pool)
+ mLog = rehydrateLog(mTicket);
}
public int getResult() {
@@ -723,6 +778,12 @@ public abstract class OperationResult implements Parcelable {
MSG_LV_FETCH_ERROR_URL (LogLevel.ERROR, R.string.msg_lv_fetch_error_url),
MSG_LV_FETCH_ERROR_IO (LogLevel.ERROR, R.string.msg_lv_fetch_error_io),
+ //export log
+ MSG_EXPORT_LOG(LogLevel.START,R.string.msg_export_log_start),
+ MSG_EXPORT_LOG_EXPORT_ERROR_NO_FILE(LogLevel.ERROR,R.string.msg_export_log_error_no_file),
+ MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN(LogLevel.ERROR,R.string.msg_export_log_error_fopen),
+ MSG_EXPORT_LOG_EXPORT_ERROR_WRITING(LogLevel.ERROR,R.string.msg_export_log_error_writing),
+ MSG_EXPORT_LOG_EXPORT_SUCCESS (LogLevel.OK, R.string.msg_export_log_success),
;
public final int mMsgId;
@@ -755,9 +816,11 @@ public abstract class OperationResult implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mResult);
- if (mLog != null) {
- dest.writeTypedList(mLog.toList());
- }
+ // Get a ticket for our log.
+ UUID mTicket = dehydrateLog(mLog);
+ // And write out the UUID most and least significant bits.
+ dest.writeLong(mTicket.getMostSignificantBits());
+ dest.writeLong(mTicket.getLeastSignificantBits());
}
public static class OperationLog implements Iterable<LogEntryParcel> {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java
index 1a251eb79..da0394573 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java
@@ -100,8 +100,8 @@ public class PgpKeyOperation {
private static final int[] PREFERRED_HASH_ALGORITHMS = new int[]{
HashAlgorithmTags.SHA512,
HashAlgorithmTags.SHA384,
- HashAlgorithmTags.SHA224,
HashAlgorithmTags.SHA256,
+ HashAlgorithmTags.SHA224,
HashAlgorithmTags.RIPEMD160
};
private static final int[] PREFERRED_COMPRESSION_ALGORITHMS = new int[]{
@@ -131,6 +131,7 @@ public class PgpKeyOperation {
private static final int SECRET_KEY_ENCRYPTOR_S2K_COUNT = 0x90;
private static final int SECRET_KEY_ENCRYPTOR_HASH_ALGO = HashAlgorithmTags.SHA256;
private static final int SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO = SymmetricKeyAlgorithmTags.AES_256;
+ private static final int SECRET_KEY_SIGNATURE_HASH_ALGO = HashAlgorithmTags.SHA256;
public PgpKeyOperation(Progressable progress) {
super();
@@ -1025,7 +1026,7 @@ public class PgpKeyOperation {
// add packet with EMPTY notation data (updates old one, but will be stripped later)
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
{ // set subpackets
@@ -1051,7 +1052,7 @@ public class PgpKeyOperation {
// add packet with "pin" notation data
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
{ // set subpackets
@@ -1236,7 +1237,7 @@ public class PgpKeyOperation {
int flags, long expiry)
throws IOException, PGPException, SignatureException {
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
@@ -1279,7 +1280,7 @@ public class PgpKeyOperation {
PGPUserAttributeSubpacketVector vector)
throws IOException, PGPException, SignatureException {
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
@@ -1298,7 +1299,7 @@ public class PgpKeyOperation {
PGPPrivateKey masterPrivateKey, PGPPublicKey pKey, String userId)
throws IOException, PGPException, SignatureException {
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPrivateKey.getPublicKeyPacket().getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator();
@@ -1312,7 +1313,7 @@ public class PgpKeyOperation {
PGPPublicKey masterPublicKey, PGPPrivateKey masterPrivateKey, PGPPublicKey pKey)
throws IOException, PGPException, SignatureException {
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPublicKey.getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPublicKey.getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator();
@@ -1356,7 +1357,7 @@ public class PgpKeyOperation {
PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator();
subHashedPacketsGen.setSignatureCreationTime(false, creationTime);
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- pKey.getAlgorithm(), HashAlgorithmTags.SHA512)
+ pKey.getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
sGen.init(PGPSignature.PRIMARYKEY_BINDING, subPrivateKey);
@@ -1377,7 +1378,7 @@ public class PgpKeyOperation {
}
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
- masterPublicKey.getAlgorithm(), HashAlgorithmTags.SHA512)
+ masterPublicKey.getAlgorithm(), SECRET_KEY_SIGNATURE_HASH_ALGO)
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder);
sGen.init(PGPSignature.SUBKEY_BINDING, masterPrivateKey);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
index 62c38d136..60cc404b6 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
@@ -28,9 +28,11 @@ public class CreateKeyActivity extends BaseActivity {
public static final String EXTRA_NAME = "name";
public static final String EXTRA_EMAIL = "email";
- public static final int FRAG_ACTION_START = 0;
- public static final int FRAG_ACTION_TO_RIGHT = 1;
- public static final int FRAG_ACTION_TO_LEFT = 2;
+ public static enum FragAction {
+ START,
+ TO_RIGHT,
+ TO_LEFT
+ }
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -42,7 +44,7 @@ public class CreateKeyActivity extends BaseActivity {
getIntent().getStringExtra(EXTRA_NAME),
getIntent().getStringExtra(EXTRA_EMAIL)
);
- loadFragment(null, frag, FRAG_ACTION_START);
+ loadFragment(null, frag, FragAction.START);
}
@Override
@@ -50,7 +52,7 @@ public class CreateKeyActivity extends BaseActivity {
setContentView(R.layout.create_key_activity);
}
- public void loadFragment(Bundle savedInstanceState, Fragment fragment, int action) {
+ public void loadFragment(Bundle savedInstanceState, Fragment fragment, FragAction action) {
// However, if we're being restored from a previous state,
// then we don't need to do anything and should return or else
// we could end up with overlapping fragments.
@@ -63,15 +65,15 @@ public class CreateKeyActivity extends BaseActivity {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch (action) {
- case FRAG_ACTION_START:
+ case START:
transaction.setCustomAnimations(0, 0);
transaction.replace(R.id.create_key_fragment_container, fragment)
.commitAllowingStateLoss();
break;
- case FRAG_ACTION_TO_LEFT:
+ case TO_LEFT:
getSupportFragmentManager().popBackStackImmediate();
break;
- case FRAG_ACTION_TO_RIGHT:
+ case TO_RIGHT:
transaction.setCustomAnimations(R.anim.frag_slide_in_from_right, R.anim.frag_slide_out_to_left,
R.anim.frag_slide_in_from_left, R.anim.frag_slide_out_to_right);
transaction.addToBackStack(null);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
index 6e0115342..920488e3e 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
@@ -43,6 +43,7 @@ import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Algorithm;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.ChangeUnlockParcel;
+import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Preferences;
@@ -117,7 +118,7 @@ public class CreateKeyFinalFragment extends Fragment {
mBackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- mCreateKeyActivity.loadFragment(null, null, CreateKeyActivity.FRAG_ACTION_TO_LEFT);
+ mCreateKeyActivity.loadFragment(null, null, FragAction.TO_LEFT);
}
});
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java
index 8aa9fa6db..ac74e87ed 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyInputFragment.java
@@ -32,6 +32,7 @@ import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import org.sufficientlysecure.keychain.R;
+import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
import org.sufficientlysecure.keychain.util.ContactHelper;
import java.util.regex.Matcher;
@@ -161,7 +162,7 @@ public class CreateKeyInputFragment extends Fragment {
);
hideKeyboard();
- mCreateKeyActivity.loadFragment(null, frag, CreateKeyActivity.FRAG_ACTION_TO_RIGHT);
+ mCreateKeyActivity.loadFragment(null, frag, FragAction.TO_RIGHT);
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
index 8723c7255..7d8fd1388 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
@@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult;
import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
public abstract class DecryptFragment extends Fragment {
private static final int RESULT_CODE_LOOKUP_KEY = 0x00007006;
@@ -141,16 +142,16 @@ public abstract class DecryptFragment extends Fragment {
if (signatureResult.isSignatureOnly()) {
mEncryptionText.setText(R.string.decrypt_result_not_encrypted);
- KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_NOT_ENCRYPTED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, State.NOT_ENCRYPTED);
} else {
mEncryptionText.setText(R.string.decrypt_result_encrypted);
- KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_ENCRYPTED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, State.ENCRYPTED);
}
switch (signatureResult.getStatus()) {
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: {
mSignatureText.setText(R.string.decrypt_result_signature_certified);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_VERIFIED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.VERIFIED);
setSignatureLayoutVisibility(View.VISIBLE);
setShowAction(mSignatureKeyId);
@@ -161,7 +162,7 @@ public abstract class DecryptFragment extends Fragment {
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: {
mSignatureText.setText(R.string.decrypt_result_signature_uncertified);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNVERIFIED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.UNVERIFIED);
setSignatureLayoutVisibility(View.VISIBLE);
setShowAction(mSignatureKeyId);
@@ -172,11 +173,11 @@ public abstract class DecryptFragment extends Fragment {
case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: {
mSignatureText.setText(R.string.decrypt_result_signature_missing_key);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNKNOWN_KEY);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.UNKNOWN_KEY);
setSignatureLayoutVisibility(View.VISIBLE);
mSignatureAction.setText(R.string.decrypt_result_action_Lookup);
- mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_download, 0);
+ mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_file_download_grey_24dp, 0);
mSignatureLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -190,7 +191,7 @@ public abstract class DecryptFragment extends Fragment {
case OpenPgpSignatureResult.SIGNATURE_KEY_EXPIRED: {
mSignatureText.setText(R.string.decrypt_result_signature_expired_key);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_EXPIRED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.EXPIRED);
setSignatureLayoutVisibility(View.VISIBLE);
setShowAction(mSignatureKeyId);
@@ -201,7 +202,7 @@ public abstract class DecryptFragment extends Fragment {
case OpenPgpSignatureResult.SIGNATURE_KEY_REVOKED: {
mSignatureText.setText(R.string.decrypt_result_signature_revoked_key);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_REVOKED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.REVOKED);
setSignatureLayoutVisibility(View.VISIBLE);
setShowAction(mSignatureKeyId);
@@ -212,7 +213,7 @@ public abstract class DecryptFragment extends Fragment {
case OpenPgpSignatureResult.SIGNATURE_ERROR: {
mSignatureText.setText(R.string.decrypt_result_invalid_signature);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_INVALID);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.INVALID);
setSignatureLayoutVisibility(View.GONE);
@@ -224,9 +225,9 @@ public abstract class DecryptFragment extends Fragment {
setSignatureLayoutVisibility(View.GONE);
mSignatureText.setText(R.string.decrypt_result_no_signature);
- KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_NOT_SIGNED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, State.NOT_SIGNED);
mEncryptionText.setText(R.string.decrypt_result_encrypted);
- KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_ENCRYPTED);
+ KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, State.ENCRYPTED);
valid = true;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java
index 2eb35351e..cd6cdf4d6 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java
@@ -32,10 +32,9 @@ public class HelpActivity extends BaseActivity {
public static final int TAB_START = 0;
public static final int TAB_FAQ = 1;
- public static final int TAB_WOT = 2;
- public static final int TAB_NFC = 3;
- public static final int TAB_CHANGELOG = 4;
- public static final int TAB_ABOUT = 5;
+ public static final int TAB_TRUST = 2;
+ public static final int TAB_CHANGELOG = 3;
+ public static final int TAB_ABOUT = 4;
ViewPager mViewPager;
private PagerTabStripAdapter mTabsAdapter;
@@ -69,21 +68,11 @@ public class HelpActivity extends BaseActivity {
mTabsAdapter.addTab(HelpHtmlFragment.class, startBundle,
getString(R.string.help_tab_start));
- Bundle faqBundle = new Bundle();
- faqBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_faq);
- mTabsAdapter.addTab(HelpHtmlFragment.class, faqBundle,
- getString(R.string.help_tab_faq));
-
Bundle wotBundle = new Bundle();
- wotBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_wot);
+ wotBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_certification);
mTabsAdapter.addTab(HelpHtmlFragment.class, wotBundle,
getString(R.string.help_tab_wot));
- Bundle nfcBundle = new Bundle();
- nfcBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_nfc_beam);
- mTabsAdapter.addTab(HelpHtmlFragment.class, nfcBundle,
- getString(R.string.help_tab_nfc_beam));
-
Bundle changelogBundle = new Bundle();
changelogBundle.putInt(HelpHtmlFragment.ARG_HTML_FILE, R.raw.help_changelog);
mTabsAdapter.addTab(HelpHtmlFragment.class, changelogBundle,
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
index b56da463a..a44eef216 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
@@ -70,6 +70,7 @@ import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment;
import org.sufficientlysecure.keychain.ui.util.Highlighter;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.util.ExportHelper;
import org.sufficientlysecure.keychain.util.FabContainer;
@@ -77,7 +78,6 @@ import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Preferences;
import java.io.IOException;
-import java.util.Date;
import java.util.HashMap;
import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter;
@@ -268,7 +268,7 @@ public class KeyListFragment extends LoaderFragment
KeyRings.MASTER_KEY_ID,
KeyRings.USER_ID,
KeyRings.IS_REVOKED,
- KeyRings.EXPIRY,
+ KeyRings.IS_EXPIRED,
KeyRings.VERIFIED,
KeyRings.HAS_ANY_SECRET
};
@@ -276,7 +276,7 @@ public class KeyListFragment extends LoaderFragment
static final int INDEX_MASTER_KEY_ID = 1;
static final int INDEX_USER_ID = 2;
static final int INDEX_IS_REVOKED = 3;
- static final int INDEX_EXPIRY = 4;
+ static final int INDEX_IS_EXPIRED = 4;
static final int INDEX_VERIFIED = 5;
static final int INDEX_HAS_ANY_SECRET = 6;
@@ -708,21 +708,20 @@ public class KeyListFragment extends LoaderFragment
long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID);
boolean isSecret = cursor.getInt(INDEX_HAS_ANY_SECRET) != 0;
boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0;
- boolean isExpired = !cursor.isNull(INDEX_EXPIRY)
- && new Date(cursor.getLong(INDEX_EXPIRY) * 1000).before(new Date());
+ boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0;
boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0;
h.mMasterKeyId = masterKeyId;
// Note: order is important!
if (isRevoked) {
- KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, State.REVOKED, R.color.bg_gray);
h.mStatus.setVisibility(View.VISIBLE);
h.mSlinger.setVisibility(View.GONE);
h.mMainUserId.setTextColor(context.getResources().getColor(R.color.bg_gray));
h.mMainUserIdRest.setTextColor(context.getResources().getColor(R.color.bg_gray));
} else if (isExpired) {
- KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, null, State.EXPIRED, R.color.bg_gray);
h.mStatus.setVisibility(View.VISIBLE);
h.mSlinger.setVisibility(View.GONE);
h.mMainUserId.setTextColor(context.getResources().getColor(R.color.bg_gray));
@@ -735,10 +734,10 @@ public class KeyListFragment extends LoaderFragment
} else {
// this is a public key - show if it's verified
if (isVerified) {
- KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, KeyFormattingUtils.STATE_VERIFIED);
+ KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, State.VERIFIED);
h.mStatus.setVisibility(View.VISIBLE);
} else {
- KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, KeyFormattingUtils.STATE_UNVERIFIED);
+ KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, State.UNVERIFIED);
h.mStatus.setVisibility(View.VISIBLE);
}
h.mSlinger.setVisibility(View.GONE);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java
index b655a7e55..138f2f4e7 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java
@@ -22,9 +22,13 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
+import android.os.Parcel;
import android.support.v4.app.ListFragment;
import android.util.TypedValue;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
@@ -33,11 +37,19 @@ import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
+import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogEntryParcel;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogLevel;
import org.sufficientlysecure.keychain.operations.results.OperationResult.SubLogEntryParcel;
+import org.sufficientlysecure.keychain.util.FileHelper;
+import org.sufficientlysecure.keychain.util.Log;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.util.Iterator;
public class LogDisplayFragment extends ListFragment implements OnItemClickListener {
@@ -46,6 +58,12 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe
OperationResult mResult;
public static final String EXTRA_RESULT = "log";
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setHasOptionsMenu(true);
+ }
@Override
public void onActivityCreated(Bundle savedInstanceState) {
@@ -70,6 +88,183 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe
getListView().setFastScrollEnabled(true);
getListView().setDividerHeight(0);
+
+ }
+
+ @Override
+ public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
+ inflater.inflate(R.menu.log_display, menu);
+
+ super.onCreateOptionsMenu(menu, inflater);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.menu_log_display_export_log:
+ exportLog();
+ break;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ private void exportLog() {
+
+ showExportLogDialog(new File(Constants.Path.APP_DIR, "export.log"));
+ }
+
+ private void writeToLogFile(final OperationResult.OperationLog operationLog, final File f) {
+ OperationResult.OperationLog currLog = new OperationResult.OperationLog();
+ currLog.add(OperationResult.LogType.MSG_EXPORT_LOG, 0);
+
+ boolean error = false;
+
+ PrintWriter pw = null;
+ try {
+ pw = new PrintWriter(f);
+ pw.print(getPrintableOperationLog(operationLog, ""));
+ if (pw.checkError()) {//IOException
+ Log.e(Constants.TAG, "Log Export I/O Exception " + f.getAbsolutePath());
+ currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING, 1);
+ error = true;
+ }
+ } catch (FileNotFoundException e) {
+ Log.e(Constants.TAG, "File not found for exporting log " + f.getAbsolutePath());
+ currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN, 1);
+ error = true;
+ }
+ if (pw != null) {
+ pw.close();
+ if (!error && pw.checkError()) {//check if it is only pw.close() which generated error
+ currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING, 1);
+ error = true;
+ }
+ }
+
+ if (!error) currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_SUCCESS, 1);
+
+ int opResultCode = error ? OperationResult.RESULT_ERROR : OperationResult.RESULT_OK;
+ OperationResult opResult = new LogExportResult(opResultCode, currLog);
+ opResult.createNotify(getActivity()).show();
+ }
+
+ /**
+ * returns an indented String of an entire OperationLog
+ *
+ * @param opLog log to be converted to indented, printable format
+ * @param basePadding padding to add at the start of all log entries, made for use with SubLogs
+ * @return printable, indented version of passed operationLog
+ */
+ private String getPrintableOperationLog(OperationResult.OperationLog opLog, String basePadding) {
+ String log = "";
+ for (Iterator<LogEntryParcel> logIterator = opLog.iterator(); logIterator.hasNext(); ) {
+ log += getPrintableLogEntry(logIterator.next(), basePadding) + "\n";
+ }
+ log = log.substring(0, log.length() - 1);//gets rid of extra new line
+ return log;
+ }
+
+ /**
+ * returns an indented String of a LogEntryParcel including any sub-logs it may contain
+ *
+ * @param entryParcel log entryParcel whose String representation is to be obtained
+ * @return indented version of passed log entryParcel in a readable format
+ */
+ private String getPrintableLogEntry(OperationResult.LogEntryParcel entryParcel,
+ String basePadding) {
+
+ final String indent = " ";//4 spaces = 1 Indent level
+
+ String padding = basePadding;
+ for (int i = 0; i < entryParcel.mIndent; i++) {
+ padding += indent;
+ }
+ String logText = padding;
+
+ switch (entryParcel.mType.mLevel) {
+ case DEBUG:
+ logText += "[DEBUG]";
+ break;
+ case INFO:
+ logText += "[INFO]";
+ break;
+ case WARN:
+ logText += "[WARN]";
+ break;
+ case ERROR:
+ logText += "[ERROR]";
+ break;
+ case START:
+ logText += "[START]";
+ break;
+ case OK:
+ logText += "[OK]";
+ break;
+ case CANCELLED:
+ logText += "[CANCELLED]";
+ break;
+ }
+
+ // special case: first parameter may be a quantity
+ if (entryParcel.mParameters != null && entryParcel.mParameters.length > 0
+ && entryParcel.mParameters[0] instanceof Integer) {
+ logText += getResources().getQuantityString(entryParcel.mType.getMsgId(),
+ (Integer) entryParcel.mParameters[0],
+ entryParcel.mParameters);
+ } else {
+ logText += getResources().getString(entryParcel.mType.getMsgId(),
+ entryParcel.mParameters);
+ }
+
+ if (entryParcel instanceof SubLogEntryParcel) {
+ OperationResult subResult = ((SubLogEntryParcel) entryParcel).getSubResult();
+ LogEntryParcel subEntry = subResult.getLog().getLast();
+ if (subEntry != null) {
+ //the first line of log of subResult is same as entryParcel, so replace logText
+ logText = getPrintableOperationLog(subResult.getLog(), padding);
+ }
+ }
+
+ return logText;
+ }
+
+ private void showExportLogDialog(final File exportFile) {
+
+ String title = this.getString(R.string.title_export_log);
+
+ String message = this.getString(R.string.specify_file_to_export_log_to);
+
+ FileHelper.saveFile(new FileHelper.FileDialogCallback() {
+ @Override
+ public void onFileSelected(File file, boolean checked) {
+ writeToLogFile(mResult.getLog(), file);
+ }
+ }, this.getActivity().getSupportFragmentManager(), title, message, exportFile, null);
+ }
+
+ private static class LogExportResult extends OperationResult {
+
+ public static Creator<LogExportResult> CREATOR = new Creator<LogExportResult>() {
+ public LogExportResult createFromParcel(final Parcel source) {
+ return new LogExportResult(source);
+ }
+
+ public LogExportResult[] newArray(final int size) {
+ return new LogExportResult[size];
+ }
+ };
+
+ public LogExportResult(int result, OperationLog log) {
+ super(result, log);
+ }
+
+ /**
+ * trivial but necessary to implement the Parcelable protocol.
+ */
+ public LogExportResult(Parcel source) {
+ super(source);
+ }
}
@Override
@@ -109,7 +304,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe
mSecondImg = secondImg;
}
}
-
+ // Check if convertView.setPadding is redundant
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LogEntryParcel entry = getItem(position);
@@ -132,7 +327,6 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe
if (entry instanceof SubLogEntryParcel) {
ih.mSub.setVisibility(View.VISIBLE);
convertView.setClickable(false);
-
convertView.setPadding((entry.mIndent) * dipFactor, 0, 0, 0);
OperationResult result = ((SubLogEntryParcel) entry).getSubResult();
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java
index 53fd9cdfd..29621662f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java
@@ -46,6 +46,7 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKeyRing;
+import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;
import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;
@@ -149,6 +150,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
public static class PassphraseDialogFragment extends DialogFragment implements TextView.OnEditorActionListener {
private EditText mPassphraseEditText;
+ private TextView mPassphraseText;
private View mInput, mProgress;
private CanonicalizedSecretKeyRing mSecretRing = null;
@@ -167,7 +169,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
// if the dialog is displayed from the application class, design is missing
// hack to get holo design (which is not automatically applied due to activity's Theme.NoDisplay
ContextThemeWrapper theme = new ContextThemeWrapper(activity,
- R.style.Theme_AppCompat_Light);
+ R.style.Theme_AppCompat_Light_Dialog);
mSubKeyId = getArguments().getLong(EXTRA_SUBKEY_ID);
mServiceIntent = getArguments().getParcelable(EXTRA_DATA);
@@ -176,13 +178,30 @@ public class PassphraseDialogActivity extends FragmentActivity {
alert.setTitle(R.string.title_unlock);
+ LayoutInflater inflater = LayoutInflater.from(theme);
+ View view = inflater.inflate(R.layout.passphrase_dialog, null);
+ alert.setView(view);
+
+ mPassphraseText = (TextView) view.findViewById(R.id.passphrase_text);
+ mPassphraseEditText = (EditText) view.findViewById(R.id.passphrase_passphrase);
+ mInput = view.findViewById(R.id.input);
+ mProgress = view.findViewById(R.id.progress);
+
+ alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.cancel();
+ }
+ });
+
String userId;
CanonicalizedSecretKey.SecretKeyType keyType = CanonicalizedSecretKey.SecretKeyType.PASSPHRASE;
+ String message;
if (mSubKeyId == Constants.key.symmetric || mSubKeyId == Constants.key.none) {
- alert.setMessage(R.string.passphrase_for_symmetric_encryption);
+ message = getString(R.string.passphrase_for_symmetric_encryption);
} else {
- String message;
try {
ProviderHelper helper = new ProviderHelper(activity);
mSecretRing = helper.getCanonicalizedSecretKeyRing(
@@ -191,7 +210,13 @@ public class PassphraseDialogActivity extends FragmentActivity {
// above can't be statically verified to have been set in all cases because
// the catch clause doesn't return.
try {
- userId = mSecretRing.getPrimaryUserIdWithFallback();
+ String mainUserId = mSecretRing.getPrimaryUserIdWithFallback();
+ String[] mainUserIdSplit = KeyRing.splitUserId(mainUserId);
+ if (mainUserIdSplit[0] != null) {
+ userId = mainUserIdSplit[0];
+ } else {
+ userId = getString(R.string.user_id_no_name);
+ }
} catch (PgpKeyNotFoundException e) {
userId = null;
}
@@ -231,33 +256,16 @@ public class PassphraseDialogActivity extends FragmentActivity {
alert.setCancelable(false);
return alert.create();
}
-
- alert.setMessage(message);
}
- LayoutInflater inflater = LayoutInflater.from(theme);
- View view = inflater.inflate(R.layout.passphrase_dialog, null);
- alert.setView(view);
-
- mPassphraseEditText = (EditText) view.findViewById(R.id.passphrase_passphrase);
- mInput = view.findViewById(R.id.input);
- mProgress = view.findViewById(R.id.progress);
-
- alert.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
-
+ mPassphraseText.setText(message);
if (keyType == CanonicalizedSecretKey.SecretKeyType.PATTERN) {
// start pattern dialog and show progress circle here...
// Intent patternActivity = new Intent(getActivity(), LockPatternActivity.class);
// patternActivity.putExtra(LockPatternActivity.EXTRA_PATTERN, "123");
// startActivityForResult(patternActivity, REQUEST_CODE_ENTER_PATTERN);
- mInput.setVisibility(View.GONE);
+ mInput.setVisibility(View.INVISIBLE);
mProgress.setVisibility(View.VISIBLE);
} else {
// Hack to open keyboard.
@@ -325,7 +333,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
return;
}
- mInput.setVisibility(View.GONE);
+ mInput.setVisibility(View.INVISIBLE);
mProgress.setVisibility(View.VISIBLE);
positive.setEnabled(false);
@@ -367,7 +375,7 @@ public class PassphraseDialogActivity extends FragmentActivity {
mPassphraseEditText.setText("");
mPassphraseEditText.setError(getString(R.string.wrong_passphrase));
mInput.setVisibility(View.VISIBLE);
- mProgress.setVisibility(View.GONE);
+ mProgress.setVisibility(View.INVISIBLE);
positive.setEnabled(true);
return;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java
index afec3bf06..65d7eca37 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java
@@ -46,6 +46,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.provider.KeychainDatabase.Tables;
import org.sufficientlysecure.keychain.ui.adapter.SelectKeyCursorAdapter;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
import java.util.Vector;
@@ -136,7 +137,7 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements T
mSearchView.setId(SEARCH_ID);
mSearchView.setHint(R.string.menu_search);
mSearchView.setCompoundDrawablesWithIntrinsicBounds(
- getResources().getDrawable(R.drawable.ic_action_search), null, null, null);
+ getResources().getDrawable(R.drawable.ic_search_grey_24dp), null, null, null);
linearLayout.addView(mSearchView, new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
@@ -376,15 +377,15 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements T
// Check if key is viable for our purposes
if (cursor.getInt(mIndexHasEncrypt) == 0) {
h.statusIcon.setVisibility(View.VISIBLE);
- KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_UNAVAILABLE);
+ KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, State.UNAVAILABLE);
enabled = false;
} else if (cursor.getInt(mIndexIsVerified) != 0) {
h.statusIcon.setVisibility(View.VISIBLE);
- KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_VERIFIED);
+ KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, State.VERIFIED);
enabled = true;
} else {
h.statusIcon.setVisibility(View.VISIBLE);
- KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_UNVERIFIED);
+ KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, State.UNVERIFIED);
enabled = true;
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
index 51dec767c..678ecd289 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
@@ -75,16 +75,15 @@ import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
import org.sufficientlysecure.keychain.ui.linked.LinkedIdWizard;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.ui.util.QrCodeUtils;
-import org.sufficientlysecure.keychain.ui.widget.AspectRatioImageView;
import org.sufficientlysecure.keychain.util.ContactHelper;
import org.sufficientlysecure.keychain.util.ExportHelper;
import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Preferences;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
public class ViewKeyActivity extends BaseActivity implements
@@ -106,7 +105,7 @@ public class ViewKeyActivity extends BaseActivity implements
private ImageButton mActionEncryptText;
private ImageButton mActionNfc;
private FloatingActionButton mFab;
- private AspectRatioImageView mPhoto;
+ private ImageView mPhoto;
private ImageView mQrCode;
private CardView mQrCodeLayout;
@@ -122,6 +121,9 @@ public class ViewKeyActivity extends BaseActivity implements
private boolean mIsSecret = false;
private boolean mHasEncrypt = false;
private boolean mIsVerified = false;
+ private boolean mIsRevoked = false;
+ private boolean mIsExpired = false;
+
private MenuItem mRefreshItem;
private boolean mIsRefreshing;
private Animation mRotate, mRotateSpin;
@@ -148,7 +150,7 @@ public class ViewKeyActivity extends BaseActivity implements
mActionEncryptText = (ImageButton) findViewById(R.id.view_key_action_encrypt_text);
mActionNfc = (ImageButton) findViewById(R.id.view_key_action_nfc);
mFab = (FloatingActionButton) findViewById(R.id.fab);
- mPhoto = (AspectRatioImageView) findViewById(R.id.view_key_photo);
+ mPhoto = (ImageView) findViewById(R.id.view_key_photo);
mQrCode = (ImageView) findViewById(R.id.view_key_qr_code);
mQrCodeLayout = (CardView) findViewById(R.id.view_key_qr_code_layout);
@@ -174,7 +176,7 @@ public class ViewKeyActivity extends BaseActivity implements
}
});
- mRotate = AnimationUtils.loadAnimation(this, R.anim.rotate);
+ mRotate = AnimationUtils.loadAnimation(this, R.anim.rotate);
mRotate.setRepeatCount(Animation.INFINITE);
mRotate.setAnimationListener(new Animation.AnimationListener() {
@Override
@@ -358,7 +360,7 @@ public class ViewKeyActivity extends BaseActivity implements
addLinked.setVisible(mIsSecret);
MenuItem certifyFingerprint = menu.findItem(R.id.menu_key_view_certify_fingerprint);
- certifyFingerprint.setVisible(!mIsSecret && !mIsVerified);
+ certifyFingerprint.setVisible(!mIsSecret && !mIsVerified && !mIsExpired && !mIsRevoked);
return true;
}
@@ -409,12 +411,12 @@ public class ViewKeyActivity extends BaseActivity implements
private void certifyImmediate() {
Intent intent = new Intent(this, CertifyKeyActivity.class);
- intent.putExtra(CertifyKeyActivity.EXTRA_KEY_IDS, new long[]{ mMasterKeyId });
+ intent.putExtra(CertifyKeyActivity.EXTRA_KEY_IDS, new long[]{mMasterKeyId});
startCertifyIntent(intent);
}
- private void startCertifyIntent (Intent intent) {
+ private void startCertifyIntent(Intent intent) {
// Message is received after signing is done in KeychainIntentService
KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(this) {
public void handleMessage(Message message) {
@@ -761,7 +763,7 @@ public class ViewKeyActivity extends BaseActivity implements
KeychainContract.KeyRings.MASTER_KEY_ID,
KeychainContract.KeyRings.USER_ID,
KeychainContract.KeyRings.IS_REVOKED,
- KeychainContract.KeyRings.EXPIRY,
+ KeychainContract.KeyRings.IS_EXPIRED,
KeychainContract.KeyRings.VERIFIED,
KeychainContract.KeyRings.HAS_ANY_SECRET,
KeychainContract.KeyRings.FINGERPRINT,
@@ -771,7 +773,7 @@ public class ViewKeyActivity extends BaseActivity implements
static final int INDEX_MASTER_KEY_ID = 1;
static final int INDEX_USER_ID = 2;
static final int INDEX_IS_REVOKED = 3;
- static final int INDEX_EXPIRY = 4;
+ static final int INDEX_IS_EXPIRED = 4;
static final int INDEX_VERIFIED = 5;
static final int INDEX_HAS_ANY_SECRET = 6;
static final int INDEX_FINGERPRINT = 7;
@@ -820,9 +822,8 @@ public class ViewKeyActivity extends BaseActivity implements
mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0;
- boolean isRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
- boolean isExpired = !data.isNull(INDEX_EXPIRY)
- && new Date(data.getLong(INDEX_EXPIRY) * 1000).before(new Date());
+ mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
+ mIsExpired = data.getInt(INDEX_IS_EXPIRED) != 0;
mIsVerified = data.getInt(INDEX_VERIFIED) > 0;
// if the refresh animation isn't playing
@@ -832,10 +833,10 @@ public class ViewKeyActivity extends BaseActivity implements
// this is done at the end of the animation otherwise
}
- AsyncTask<String, Void, Bitmap> photoTask =
- new AsyncTask<String, Void, Bitmap>() {
- protected Bitmap doInBackground(String... fingerprint) {
- return ContactHelper.photoFromFingerprint(getContentResolver(), fingerprint[0]);
+ AsyncTask<Long, Void, Bitmap> photoTask =
+ new AsyncTask<Long, Void, Bitmap>() {
+ protected Bitmap doInBackground(Long... mMasterKeyId) {
+ return ContactHelper.loadPhotoByMasterKeyId(getContentResolver(), mMasterKeyId[0], true);
}
protected void onPostExecute(Bitmap photo) {
@@ -846,11 +847,11 @@ public class ViewKeyActivity extends BaseActivity implements
// Note: order is important
int color;
- if (isRevoked) {
+ if (mIsRevoked) {
mStatusText.setText(R.string.view_key_revoked);
mStatusImage.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText,
- KeyFormattingUtils.STATE_REVOKED, R.color.icons, true);
+ State.REVOKED, R.color.icons, true);
color = getResources().getColor(R.color.android_red_light);
mActionEncryptFile.setVisibility(View.GONE);
@@ -858,7 +859,7 @@ public class ViewKeyActivity extends BaseActivity implements
mActionNfc.setVisibility(View.GONE);
mFab.setVisibility(View.GONE);
mQrCodeLayout.setVisibility(View.GONE);
- } else if (isExpired) {
+ } else if (mIsExpired) {
if (mIsSecret) {
mStatusText.setText(R.string.view_key_expired_secret);
} else {
@@ -866,7 +867,7 @@ public class ViewKeyActivity extends BaseActivity implements
}
mStatusImage.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText,
- KeyFormattingUtils.STATE_EXPIRED, R.color.icons, true);
+ State.EXPIRED, R.color.icons, true);
color = getResources().getColor(R.color.android_red_light);
mActionEncryptFile.setVisibility(View.GONE);
@@ -879,10 +880,10 @@ public class ViewKeyActivity extends BaseActivity implements
mStatusImage.setVisibility(View.GONE);
color = getResources().getColor(R.color.primary);
// reload qr code only if the fingerprint changed
- if ( !mFingerprint.equals(oldFingerprint)) {
+ if (!mFingerprint.equals(oldFingerprint)) {
loadQrCode(mFingerprint);
}
- photoTask.execute(mFingerprint);
+ photoTask.execute(mMasterKeyId);
mQrCodeLayout.setVisibility(View.VISIBLE);
// and place leftOf qr code
@@ -926,16 +927,16 @@ public class ViewKeyActivity extends BaseActivity implements
mStatusText.setText(R.string.view_key_verified);
mStatusImage.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText,
- KeyFormattingUtils.STATE_VERIFIED, R.color.icons, true);
+ State.VERIFIED, R.color.icons, true);
color = getResources().getColor(R.color.primary);
- photoTask.execute(mFingerprint);
+ photoTask.execute(mMasterKeyId);
mFab.setVisibility(View.GONE);
} else {
mStatusText.setText(R.string.view_key_unverified);
mStatusImage.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText,
- KeyFormattingUtils.STATE_UNVERIFIED, R.color.icons, true);
+ State.UNVERIFIED, R.color.icons, true);
color = getResources().getColor(R.color.android_orange_light);
mFab.setVisibility(View.VISIBLE);
@@ -943,27 +944,21 @@ public class ViewKeyActivity extends BaseActivity implements
}
if (mPreviousColor == 0 || mPreviousColor == color) {
- mToolbar.setBackgroundColor(color);
mStatusBar.setBackgroundColor(color);
mBigToolbar.setBackgroundColor(color);
mPreviousColor = color;
} else {
ObjectAnimator colorFade1 =
- ObjectAnimator.ofObject(mToolbar, "backgroundColor",
- new ArgbEvaluator(), mPreviousColor, color);
- ObjectAnimator colorFade2 =
ObjectAnimator.ofObject(mStatusBar, "backgroundColor",
new ArgbEvaluator(), mPreviousColor, color);
- ObjectAnimator colorFade3 =
+ ObjectAnimator colorFade2 =
ObjectAnimator.ofObject(mBigToolbar, "backgroundColor",
new ArgbEvaluator(), mPreviousColor, color);
colorFade1.setDuration(1200);
colorFade2.setDuration(1200);
- colorFade3.setDuration(1200);
colorFade1.start();
colorFade2.start();
- colorFade3.start();
mPreviousColor = color;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
index 9d79b377c..9390e8a69 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java
@@ -43,8 +43,6 @@ import org.sufficientlysecure.keychain.util.ContactHelper;
import org.sufficientlysecure.keychain.util.ExportHelper;
import org.sufficientlysecure.keychain.util.Log;
-import java.util.Date;
-
public class ViewKeyAdvActivity extends BaseActivity implements
LoaderManager.LoaderCallbacks<Cursor> {
@@ -159,7 +157,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements
KeychainContract.KeyRings.MASTER_KEY_ID,
KeychainContract.KeyRings.USER_ID,
KeychainContract.KeyRings.IS_REVOKED,
- KeychainContract.KeyRings.EXPIRY,
+ KeychainContract.KeyRings.IS_EXPIRED,
KeychainContract.KeyRings.VERIFIED,
KeychainContract.KeyRings.HAS_ANY_SECRET
};
@@ -167,7 +165,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements
static final int INDEX_MASTER_KEY_ID = 1;
static final int INDEX_USER_ID = 2;
static final int INDEX_IS_REVOKED = 3;
- static final int INDEX_EXPIRY = 4;
+ static final int INDEX_IS_EXPIRED = 4;
static final int INDEX_VERIFIED = 5;
static final int INDEX_HAS_ANY_SECRET = 6;
@@ -212,8 +210,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements
boolean isSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
boolean isRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
- boolean isExpired = !data.isNull(INDEX_EXPIRY)
- && new Date(data.getLong(INDEX_EXPIRY) * 1000).before(new Date());
+ boolean isExpired = data.getInt(INDEX_IS_EXPIRED) != 0;
boolean isVerified = data.getInt(INDEX_VERIFIED) > 0;
// Note: order is important
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java
index 8d0a2dd1d..95a6faea9 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java
@@ -260,7 +260,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
static final String[] UNIFIED_PROJECTION = new String[]{
KeyRings._ID, KeyRings.MASTER_KEY_ID, KeyRings.HAS_ANY_SECRET,
KeyRings.USER_ID, KeyRings.FINGERPRINT,
- KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.EXPIRY,
+ KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.IS_EXPIRED,
};
static final int INDEX_UNIFIED_MASTER_KEY_ID = 1;
@@ -270,7 +270,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
static final int INDEX_UNIFIED_ALGORITHM = 5;
static final int INDEX_UNIFIED_KEY_SIZE = 6;
static final int INDEX_UNIFIED_CREATION = 7;
- static final int INDEX_UNIFIED_EXPIRY = 8;
+ static final int INDEX_UNIFIED_ID_EXPIRED = 8;
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
setContentShown(false);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java
index 492dfd0f7..ad437f924 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java
@@ -114,12 +114,12 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements
static final String[] UNIFIED_PROJECTION = new String[]{
KeyRings._ID, KeyRings.MASTER_KEY_ID,
- KeyRings.HAS_ANY_SECRET, KeyRings.IS_REVOKED, KeyRings.EXPIRY, KeyRings.HAS_ENCRYPT
+ KeyRings.HAS_ANY_SECRET, KeyRings.IS_REVOKED, KeyRings.IS_EXPIRED, KeyRings.HAS_ENCRYPT
};
static final int INDEX_UNIFIED_MASTER_KEY_ID = 1;
static final int INDEX_UNIFIED_HAS_ANY_SECRET = 2;
static final int INDEX_UNIFIED_IS_REVOKED = 3;
- static final int INDEX_UNIFIED_EXPIRY = 4;
+ static final int INDEX_UNIFIED_IS_EXPIRED = 4;
static final int INDEX_UNIFIED_HAS_ENCRYPT = 5;
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java
index 25edc7a02..d22f01a48 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java
@@ -115,12 +115,12 @@ public class ViewKeyTrustFragment extends LoaderFragment implements
}
static final String[] TRUST_PROJECTION = new String[]{
- KeyRings._ID, KeyRings.FINGERPRINT, KeyRings.IS_REVOKED, KeyRings.EXPIRY,
+ KeyRings._ID, KeyRings.FINGERPRINT, KeyRings.IS_REVOKED, KeyRings.IS_EXPIRED,
KeyRings.HAS_ANY_SECRET, KeyRings.VERIFIED
};
static final int INDEX_TRUST_FINGERPRINT = 1;
static final int INDEX_TRUST_IS_REVOKED = 2;
- static final int INDEX_TRUST_EXPIRY = 3;
+ static final int INDEX_TRUST_IS_EXPIRED = 3;
static final int INDEX_UNIFIED_HAS_ANY_SECRET = 4;
static final int INDEX_VERIFIED = 5;
@@ -169,8 +169,7 @@ public class ViewKeyTrustFragment extends LoaderFragment implements
nothingSpecial = false;
} else {
- Date expiryDate = new Date(data.getLong(INDEX_TRUST_EXPIRY) * 1000);
- if (!data.isNull(INDEX_TRUST_EXPIRY) && expiryDate.before(new Date())) {
+ if (data.getInt(INDEX_TRUST_IS_EXPIRED) != 0) {
// if expired, don’t trust it!
message.append(getString(R.string.key_trust_expired)).
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
index 6ba9e26ad..429feb075 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java
@@ -37,6 +37,7 @@ import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Highlighter;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
import java.util.ArrayList;
import java.util.HashMap;
@@ -175,9 +176,9 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> {
}
if (entry.isRevoked()) {
- KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.REVOKED, R.color.bg_gray);
} else if (entry.isExpired()) {
- KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.EXPIRED, R.color.bg_gray);
}
if (entry.isRevoked() || entry.isExpired()) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java
index a44358172..329b95ebc 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java
@@ -39,9 +39,9 @@ import org.sufficientlysecure.keychain.pgp.linked.RawLinkedIdentity;
import org.sufficientlysecure.keychain.pgp.linked.resources.DnsResource;
import org.sufficientlysecure.keychain.provider.KeychainContract.Certs;
import org.sufficientlysecure.keychain.provider.KeychainContract.UserPackets;
-import org.sufficientlysecure.keychain.ui.ViewKeyFragment;
import org.sufficientlysecure.keychain.ui.linked.LinkedIdViewFragment;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
import java.io.IOException;
import java.util.WeakHashMap;
@@ -66,15 +66,15 @@ public class LinkedIdsAdapter extends UserAttributesAdapter {
switch (isVerified) {
case Certs.VERIFIED_SECRET:
KeyFormattingUtils.setStatusImage(mContext, holder.vVerified,
- null, KeyFormattingUtils.STATE_VERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
+ null, State.VERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
break;
case Certs.VERIFIED_SELF:
KeyFormattingUtils.setStatusImage(mContext, holder.vVerified,
- null, KeyFormattingUtils.STATE_UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
+ null, State.UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
break;
default:
KeyFormattingUtils.setStatusImage(mContext, holder.vVerified,
- null, KeyFormattingUtils.STATE_INVALID, KeyFormattingUtils.DEFAULT_COLOR);
+ null, State.INVALID, KeyFormattingUtils.DEFAULT_COLOR);
break;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java
index a836b35df..226fda20b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java
@@ -33,6 +33,7 @@ import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.ui.util.Highlighter;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
/**
@@ -133,11 +134,11 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter {
boolean enabled;
if (cursor.getInt(mIndexIsRevoked) != 0) {
h.statusIcon.setVisibility(View.VISIBLE);
- KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.REVOKED, R.color.bg_gray);
enabled = false;
} else if (cursor.getInt(mIndexIsExpiry) != 0) {
h.statusIcon.setVisibility(View.VISIBLE);
- KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.EXPIRED, R.color.bg_gray);
enabled = false;
} else {
h.statusIcon.setVisibility(View.GONE);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
index ff5fbb49a..096dea51f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
@@ -272,12 +272,12 @@ public class SubkeysAdapter extends CursorAdapter {
PorterDuff.Mode.SRC_IN);
if (isRevoked) {
- vStatus.setImageResource(R.drawable.status_signature_revoked_cutout_24px);
+ vStatus.setImageResource(R.drawable.status_signature_revoked_cutout_24dp);
vStatus.setColorFilter(
mContext.getResources().getColor(R.color.bg_gray),
PorterDuff.Mode.SRC_IN);
} else if (isExpired) {
- vStatus.setImageResource(R.drawable.status_signature_expired_cutout_24px);
+ vStatus.setImageResource(R.drawable.status_signature_expired_cutout_24dp);
vStatus.setColorFilter(
mContext.getResources().getColor(R.color.bg_gray),
PorterDuff.Mode.SRC_IN);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java
index 3c4b0fedf..1cf3f4d38 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java
@@ -36,6 +36,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.Certs;
import org.sufficientlysecure.keychain.provider.KeychainContract.UserPackets;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
public class UserIdsAdapter extends UserAttributesAdapter {
protected LayoutInflater mInflater;
@@ -127,7 +128,7 @@ public class UserIdsAdapter extends UserAttributesAdapter {
if (isRevoked) {
// set revocation icon (can this even be primary?)
- KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.REVOKED, R.color.bg_gray);
// disable revoked user ids
vName.setEnabled(false);
@@ -149,13 +150,13 @@ public class UserIdsAdapter extends UserAttributesAdapter {
int isVerified = cursor.getInt(INDEX_VERIFIED);
switch (isVerified) {
case Certs.VERIFIED_SECRET:
- KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_VERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
+ KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.VERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
break;
case Certs.VERIFIED_SELF:
- KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
+ KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.UNVERIFIED, KeyFormattingUtils.DEFAULT_COLOR);
break;
default:
- KeyFormattingUtils.setStatusImage(mContext, vVerified, null, KeyFormattingUtils.STATE_INVALID, KeyFormattingUtils.DEFAULT_COLOR);
+ KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.INVALID, KeyFormattingUtils.DEFAULT_COLOR);
break;
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java
index 01218a4e4..970855c77 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAddedAdapter.java
@@ -24,7 +24,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
@@ -73,10 +72,8 @@ public class UserIdsAddedAdapter extends ArrayAdapter<String> {
holder.vDelete.setVisibility(View.VISIBLE); // always visible
// not used:
- CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.user_id_item_check_box);
View certifiedLayout = convertView.findViewById(R.id.user_id_item_certified_layout);
ImageView editImage = (ImageView) convertView.findViewById(R.id.user_id_item_edit_image);
- checkBox.setVisibility(View.GONE);
certifiedLayout.setVisibility(View.GONE);
editImage.setVisibility(View.GONE);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java
index d5376cbdc..0b1d39fc1 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java
@@ -137,12 +137,10 @@ public class AddSubkeyDialogFragment extends DialogFragment {
}
});
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
- // date picker works based on default time zone
- Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault());
- minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today)
- mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime());
- }
+ // date picker works based on default time zone
+ Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault());
+ minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today)
+ mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime());
{
ArrayList<Choice<Algorithm>> choices = new ArrayList<>();
@@ -283,7 +281,7 @@ public class AddSubkeyDialogFragment extends DialogFragment {
// For EC keys, add a curve
if (algorithm == Algorithm.ECDH || algorithm == Algorithm.ECDSA) {
curve = ((Choice<Curve>) mCurveSpinner.getSelectedItem()).getId();
- // Otherwise, get a keysize
+ // Otherwise, get a keysize
} else {
keySize = getProperKeyLength(algorithm, getSelectedKeyLength());
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java
index d405b1dda..794af5b15 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java
@@ -1,3 +1,20 @@
+/*
+ * Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de>
+ *
+ * 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 3 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 <http://www.gnu.org/licenses/>.
+ */
+
package org.sufficientlysecure.keychain.ui.dialog;
import android.app.AlertDialog;
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
index 879e3f6da..07462b4ff 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
@@ -62,12 +62,9 @@ public class DeleteFileDialogFragment extends DialogFragment {
CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity);
-
- alert.setIcon(R.drawable.ic_dialog_alert_holo_light);
- alert.setTitle(R.string.warning);
alert.setMessage(this.getString(R.string.file_delete_confirmation, deleteFilename));
- alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ alert.setPositiveButton(R.string.btn_delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java
index 802f0c11b..32789d53b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java
@@ -83,8 +83,6 @@ public class DeleteKeyDialogFragment extends DialogFragment {
mMainMessage = (TextView) mInflateView.findViewById(R.id.mainMessage);
- builder.setTitle(R.string.warning);
-
final boolean hasSecret;
// If only a single key has been selected
@@ -110,12 +108,14 @@ public class DeleteKeyDialogFragment extends DialogFragment {
}
hasSecret = ((Long) data.get(KeyRings.HAS_ANY_SECRET)) == 1;
- // Set message depending on which key it is.
- mMainMessage.setText(getString(
- hasSecret ? R.string.secret_key_deletion_confirmation
- : R.string.public_key_deletetion_confirmation,
- name
- ));
+ if (hasSecret) {
+ // show title only for secret key deletions,
+ // see http://www.google.com/design/spec/components/dialogs.html#dialogs-behavior
+ builder.setTitle(getString(R.string.title_delete_secret_key, name));
+ mMainMessage.setText(getString(R.string.secret_key_deletion_confirmation, name));
+ } else {
+ mMainMessage.setText(getString(R.string.public_key_deletetion_confirmation, name));
+ }
} catch (ProviderHelper.NotFoundException e) {
dismiss();
return null;
@@ -125,7 +125,6 @@ public class DeleteKeyDialogFragment extends DialogFragment {
hasSecret = false;
}
- builder.setIcon(R.drawable.ic_dialog_alert_holo_light);
builder.setPositiveButton(R.string.btn_delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java
index f46e253c0..37e05a61d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java
@@ -25,11 +25,14 @@ import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import android.support.v4.app.DialogFragment;
+import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
+import android.widget.LinearLayout;
+import android.widget.TextView;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
@@ -97,62 +100,63 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment {
final CheckBox noExpiry = (CheckBox) view.findViewById(R.id.edit_subkey_expiry_no_expiry);
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.edit_subkey_expiry_date_picker);
+ final TextView currentExpiry = (TextView) view.findViewById(R.id.edit_subkey_expiry_current_expiry);
+ final LinearLayout expiryLayout = (LinearLayout) view.findViewById(R.id.edit_subkey_expiry_layout);
noExpiry.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
- datePicker.setVisibility(View.GONE);
+ expiryLayout.setVisibility(View.GONE);
} else {
- datePicker.setVisibility(View.VISIBLE);
+ expiryLayout.setVisibility(View.VISIBLE);
}
}
});
- // init date picker with default selected date
if (expiry == 0L) {
noExpiry.setChecked(true);
- datePicker.setVisibility(View.GONE);
-
- Calendar todayCal = Calendar.getInstance(TimeZone.getDefault());
- if (creationCal.after(todayCal)) {
- // Note: This is just for the rare cases where creation is _after_ today
-
- // set it to creation date +1 day (don't set it to creationCal, it would break crash
- // datePicker.setMinDate() execution with IllegalArgumentException
- Calendar creationCalPlusOne = (Calendar) creationCal.clone();
- creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1);
- datePicker.init(
- creationCalPlusOne.get(Calendar.YEAR),
- creationCalPlusOne.get(Calendar.MONTH),
- creationCalPlusOne.get(Calendar.DAY_OF_MONTH),
- null
- );
-
- } else {
- // normally, just init with today
- datePicker.init(
- todayCal.get(Calendar.YEAR),
- todayCal.get(Calendar.MONTH),
- todayCal.get(Calendar.DAY_OF_MONTH),
- null
- );
- }
+ expiryLayout.setVisibility(View.GONE);
+
+ currentExpiry.setText(R.string.btn_no_date);
} else {
noExpiry.setChecked(false);
- datePicker.setVisibility(View.VISIBLE);
+ expiryLayout.setVisibility(View.VISIBLE);
+
+ // convert from UTC to time zone of device
+ Calendar expiryCalTimeZone = (Calendar) expiryCal.clone();
+ expiryCalTimeZone.setTimeZone(TimeZone.getDefault());
+ currentExpiry.setText(DateFormat.getDateFormat(
+ getActivity()).format(expiryCalTimeZone.getTime()));
+ }
+
+ // date picker works based on default time zone
+ Calendar todayCal = Calendar.getInstance(TimeZone.getDefault());
+ if (creationCal.after(todayCal)) {
+ // NOTE: This is just for the rare cases where creation is _after_ today
+ // Min Date: Creation date + 1 day
- // set date picker to current expiry
+ Calendar creationCalPlusOne = (Calendar) creationCal.clone();
+ creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1);
+ datePicker.setMinDate(creationCalPlusOne.getTime().getTime());
datePicker.init(
- expiryCal.get(Calendar.YEAR),
- expiryCal.get(Calendar.MONTH),
- expiryCal.get(Calendar.DAY_OF_MONTH),
+ creationCalPlusOne.get(Calendar.YEAR),
+ creationCalPlusOne.get(Calendar.MONTH),
+ creationCalPlusOne.get(Calendar.DAY_OF_MONTH),
null
);
- }
+ } else {
+ // Min Date: today + 1 day
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
- datePicker.setMinDate(creationCal.getTime().getTime());
+ // at least one day after creation (today)
+ todayCal.add(Calendar.DAY_OF_YEAR, 1);
+ datePicker.setMinDate(todayCal.getTime().getTime());
+ datePicker.init(
+ todayCal.get(Calendar.YEAR),
+ todayCal.get(Calendar.MONTH),
+ todayCal.get(Calendar.DAY_OF_MONTH),
+ null
+ );
}
alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
index a05719072..a3ffe250b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
@@ -92,7 +92,6 @@ public class SetPassphraseDialogFragment extends DialogFragment implements OnEdi
CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity);
alert.setTitle(title);
- alert.setMessage(R.string.enter_passphrase_twice);
LayoutInflater inflater = activity.getLayoutInflater();
View view = inflater.inflate(R.layout.passphrase_repeat_dialog, null);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateDnsStep2Fragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateDnsStep2Fragment.java
index 71a3673f2..3b0860fa9 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateDnsStep2Fragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateDnsStep2Fragment.java
@@ -162,17 +162,17 @@ public class LinkedIdCreateDnsStep2Fragment extends Fragment {
mVerifyImage.setVisibility(on ? View.GONE : View.VISIBLE);
if (success == null) {
mVerifyStatus.setText(R.string.linked_verifying);
- mVerifyImage.setImageResource(R.drawable.status_signature_unverified_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_unverified_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.tertiary_text_light),
PorterDuff.Mode.SRC_IN);
} else if (success) {
mVerifyStatus.setText(R.string.linked_verify_success);
- mVerifyImage.setImageResource(R.drawable.status_signature_verified_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_verified_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.android_green_dark),
PorterDuff.Mode.SRC_IN);
} else {
mVerifyStatus.setText(R.string.linked_verify_error);
- mVerifyImage.setImageResource(R.drawable.status_signature_unknown_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_unknown_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.android_red_dark),
PorterDuff.Mode.SRC_IN);
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateHttpsStep2Fragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateHttpsStep2Fragment.java
index 78c7caf53..7d2f3dfdb 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateHttpsStep2Fragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateHttpsStep2Fragment.java
@@ -165,17 +165,17 @@ public class LinkedIdCreateHttpsStep2Fragment extends Fragment {
mVerifyImage.setVisibility(on ? View.GONE : View.VISIBLE);
if (success == null) {
mVerifyStatus.setText(R.string.linked_verifying);
- mVerifyImage.setImageResource(R.drawable.status_signature_unverified_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_unverified_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.tertiary_text_light),
PorterDuff.Mode.SRC_IN);
} else if (success) {
mVerifyStatus.setText(R.string.linked_verify_success);
- mVerifyImage.setImageResource(R.drawable.status_signature_verified_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_verified_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.android_green_dark),
PorterDuff.Mode.SRC_IN);
} else {
mVerifyStatus.setText(R.string.linked_verify_error);
- mVerifyImage.setImageResource(R.drawable.status_signature_unknown_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_unknown_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.android_red_dark),
PorterDuff.Mode.SRC_IN);
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep3Fragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep3Fragment.java
index f395807cf..d298e8251 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep3Fragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep3Fragment.java
@@ -144,17 +144,17 @@ public class LinkedIdCreateTwitterStep3Fragment extends Fragment {
mVerifyImage.setVisibility(on ? View.GONE : View.VISIBLE);
if (success == null) {
mVerifyStatus.setText(R.string.linked_verifying);
- mVerifyImage.setImageResource(R.drawable.status_signature_unverified_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_unverified_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.tertiary_text_light),
PorterDuff.Mode.SRC_IN);
} else if (success) {
mVerifyStatus.setText(R.string.linked_verify_success);
- mVerifyImage.setImageResource(R.drawable.status_signature_verified_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_verified_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.android_green_dark),
PorterDuff.Mode.SRC_IN);
} else {
mVerifyStatus.setText(R.string.linked_verify_error);
- mVerifyImage.setImageResource(R.drawable.status_signature_unknown_cutout_24px);
+ mVerifyImage.setImageResource(R.drawable.status_signature_unknown_cutout_24dp);
mVerifyImage.setColorFilter(getResources().getColor(R.color.android_red_dark),
PorterDuff.Mode.SRC_IN);
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java
index 38ed88b9c..c5403e054 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java
@@ -379,27 +379,29 @@ public class KeyFormattingUtils {
public static final int DEFAULT_COLOR = -1;
- public static final int STATE_REVOKED = 1;
- public static final int STATE_EXPIRED = 2;
- public static final int STATE_VERIFIED = 3;
- public static final int STATE_UNAVAILABLE = 4;
- public static final int STATE_ENCRYPTED = 5;
- public static final int STATE_NOT_ENCRYPTED = 6;
- public static final int STATE_UNVERIFIED = 7;
- public static final int STATE_UNKNOWN_KEY = 8;
- public static final int STATE_INVALID = 9;
- public static final int STATE_NOT_SIGNED = 10;
-
- public static void setStatusImage(Context context, ImageView statusIcon, int state) {
+ public static enum State {
+ REVOKED,
+ EXPIRED,
+ VERIFIED,
+ UNAVAILABLE,
+ ENCRYPTED,
+ NOT_ENCRYPTED,
+ UNVERIFIED,
+ UNKNOWN_KEY,
+ INVALID,
+ NOT_SIGNED
+ }
+
+ public static void setStatusImage(Context context, ImageView statusIcon, State state) {
setStatusImage(context, statusIcon, null, state);
}
- public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, int state) {
+ public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, State state) {
setStatusImage(context, statusIcon, statusText, state, KeyFormattingUtils.DEFAULT_COLOR, false);
}
public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText,
- int state, int color) {
+ State state, int color) {
setStatusImage(context, statusIcon, statusText, state, color, false);
}
@@ -407,16 +409,16 @@ public class KeyFormattingUtils {
* Sets status image based on constant
*/
public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText,
- int state, int color, boolean big) {
+ State state, int color, boolean big) {
switch (state) {
/** GREEN: everything is good **/
- case STATE_VERIFIED: {
+ case VERIFIED: {
if (big) {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96px));
+ context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96dp));
} else {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24dp));
}
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_green_light;
@@ -428,9 +430,9 @@ public class KeyFormattingUtils {
}
break;
}
- case STATE_ENCRYPTED: {
+ case ENCRYPTED: {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_lock_closed_24px));
+ context.getResources().getDrawable(R.drawable.status_lock_closed_24dp));
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_green_light;
}
@@ -442,13 +444,13 @@ public class KeyFormattingUtils {
break;
}
/** ORANGE: mostly bad... **/
- case STATE_UNVERIFIED: {
+ case UNVERIFIED: {
if (big) {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96px));
+ context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96dp));
} else {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24dp));
}
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_orange_light;
@@ -460,9 +462,9 @@ public class KeyFormattingUtils {
}
break;
}
- case STATE_UNKNOWN_KEY: {
+ case UNKNOWN_KEY: {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp));
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_orange_light;
}
@@ -474,13 +476,13 @@ public class KeyFormattingUtils {
break;
}
/** RED: really bad... **/
- case STATE_REVOKED: {
+ case REVOKED: {
if (big) {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96px));
+ context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96dp));
} else {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24dp));
}
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_red_light;
@@ -492,13 +494,13 @@ public class KeyFormattingUtils {
}
break;
}
- case STATE_EXPIRED: {
+ case EXPIRED: {
if (big) {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96px));
+ context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96dp));
} else {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24dp));
}
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_red_light;
@@ -510,9 +512,9 @@ public class KeyFormattingUtils {
}
break;
}
- case STATE_NOT_ENCRYPTED: {
+ case NOT_ENCRYPTED: {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_lock_open_24px));
+ context.getResources().getDrawable(R.drawable.status_lock_open_24dp));
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_red_light;
}
@@ -523,9 +525,9 @@ public class KeyFormattingUtils {
}
break;
}
- case STATE_NOT_SIGNED: {
+ case NOT_SIGNED: {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp));
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_red_light;
}
@@ -536,9 +538,9 @@ public class KeyFormattingUtils {
}
break;
}
- case STATE_INVALID: {
+ case INVALID: {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp));
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.android_red_light;
}
@@ -550,9 +552,9 @@ public class KeyFormattingUtils {
break;
}
/** special **/
- case STATE_UNAVAILABLE: {
+ case UNAVAILABLE: {
statusIcon.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px));
+ context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp));
if (color == KeyFormattingUtils.DEFAULT_COLOR) {
color = R.color.bg_gray;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
index 6d0e6556f..fc912fccb 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
@@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.KeychainDatabase;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
public class CertifyKeySpinner extends KeySpinner {
private long mHiddenMasterKeyId = Constants.key.none;
@@ -103,16 +104,16 @@ public class CertifyKeySpinner extends KeySpinner {
@Override
boolean setStatus(Context context, Cursor cursor, ImageView statusView) {
if (cursor.getInt(mIndexIsRevoked) != 0) {
- KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.REVOKED, R.color.bg_gray);
return false;
}
if (cursor.getInt(mIndexIsExpired) != 0) {
- KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.EXPIRED, R.color.bg_gray);
return false;
}
// don't invalidate the "None" entry, which is also null!
if (cursor.getPosition() != 0 && cursor.isNull(mIndexHasCertify)) {
- KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_UNAVAILABLE, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.UNAVAILABLE, R.color.bg_gray);
return false;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java
index f05f5f96b..d20e2bc99 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java
@@ -90,7 +90,7 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView {
}
private void setImageByKey(ImageView view, EncryptionKey key) {
- Bitmap photo = ContactHelper.photoFromFingerprint(getContext().getContentResolver(), key.getFingerprint());
+ Bitmap photo = ContactHelper.getCachedPhotoByMasterKeyId(getContext().getContentResolver(), key.getKeyId());
if (photo != null) {
view.setImageBitmap(photo);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java
index fe91e306e..10327a6a4 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java
@@ -29,6 +29,7 @@ import android.widget.ImageView;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State;
public class SignKeySpinner extends KeySpinner {
public SignKeySpinner(Context context) {
@@ -84,15 +85,15 @@ public class SignKeySpinner extends KeySpinner {
@Override
boolean setStatus(Context context, Cursor cursor, ImageView statusView) {
if (cursor.getInt(mIndexIsRevoked) != 0) {
- KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.REVOKED, R.color.bg_gray);
return false;
}
if (cursor.getInt(mIndexIsExpired) != 0) {
- KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.EXPIRED, R.color.bg_gray);
return false;
}
if (cursor.getInt(mIndexHasSign) == 0) {
- KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_UNAVAILABLE, R.color.bg_gray);
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.UNAVAILABLE, R.color.bg_gray);
return false;
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
index 3cf201ed7..44bcc52a5 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java
@@ -41,7 +41,6 @@ import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -50,40 +49,7 @@ import java.util.Set;
public class ContactHelper {
- public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{
- KeychainContract.KeyRings.USER_ID,
- KeychainContract.KeyRings.FINGERPRINT,
- KeychainContract.KeyRings.KEY_ID,
- KeychainContract.KeyRings.MASTER_KEY_ID,
- KeychainContract.KeyRings.EXPIRY,
- KeychainContract.KeyRings.IS_REVOKED};
-
- public static final int INDEX_USER_ID = 0;
- public static final int INDEX_FINGERPRINT = 1;
- public static final int INDEX_KEY_ID = 2;
- public static final int INDEX_MASTER_KEY_ID = 3;
- public static final int INDEX_EXPIRY = 4;
- public static final int INDEX_IS_REVOKED = 5;
-
- public static final String[] USER_IDS_PROJECTION = new String[]{
- UserPackets.USER_ID
- };
-
- public static final int INDEX_USER_IDS_USER_ID = 0;
-
- public static final String NON_REVOKED_SELECTION = UserPackets.IS_REVOKED + "=0";
-
- public static final String[] ID_PROJECTION = new String[]{ContactsContract.RawContacts._ID};
- public static final String[] SOURCE_ID_PROJECTION = new String[]{ContactsContract.RawContacts.SOURCE_ID};
-
- public static final String ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION =
- ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?";
- public static final String ACCOUNT_TYPE_SELECTION = ContactsContract.RawContacts.ACCOUNT_TYPE + "=?";
- public static final String RAW_CONTACT_AND_MIMETYPE_SELECTION =
- ContactsContract.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=?";
- public static final String ID_SELECTION = ContactsContract.RawContacts._ID + "=?";
-
- private static final Map<String, Bitmap> photoCache = new HashMap<>();
+ private static final Map<Long, Bitmap> photoCache = new HashMap<>();
public static List<String> getPossibleUserEmails(Context context) {
Set<String> accountMails = getAccountEmails(context);
@@ -125,33 +91,33 @@ public class ContactHelper {
* @return
*/
private static Set<String> getContactNamesFromEmails(Context context, Set<String> emails) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
- Set<String> names = new HashSet<>();
- for (String email : emails) {
- ContentResolver resolver = context.getContentResolver();
- Cursor profileCursor = resolver.query(
- ContactsContract.CommonDataKinds.Email.CONTENT_URI,
- new String[]{ContactsContract.CommonDataKinds.Email.ADDRESS,
- ContactsContract.Contacts.DISPLAY_NAME},
- ContactsContract.CommonDataKinds.Email.ADDRESS + "=?",
- new String[]{email}, null
- );
- if (profileCursor == null) return null;
-
- Set<String> currNames = new HashSet<>();
- while (profileCursor.moveToNext()) {
- String name = profileCursor.getString(1);
- if (name != null) {
- currNames.add(name);
- }
+ Set<String> names = new HashSet<>();
+ for (String email : emails) {
+ ContentResolver resolver = context.getContentResolver();
+ Cursor profileCursor = resolver.query(
+ ContactsContract.CommonDataKinds.Email.CONTENT_URI,
+ new String[]{
+ ContactsContract.CommonDataKinds.Email.ADDRESS,
+ ContactsContract.Contacts.DISPLAY_NAME
+ },
+ ContactsContract.CommonDataKinds.Email.ADDRESS + "=?",
+ new String[]{email}, null
+ );
+ if (profileCursor == null) {
+ return null;
+ }
+
+ Set<String> currNames = new HashSet<>();
+ while (profileCursor.moveToNext()) {
+ String name = profileCursor.getString(1);
+ if (name != null) {
+ currNames.add(name);
}
- profileCursor.close();
- names.addAll(currNames);
}
- return names;
- } else {
- return new HashSet<>();
+ profileCursor.close();
+ names.addAll(currNames);
}
+ return names;
}
/**
@@ -162,38 +128,37 @@ public class ContactHelper {
* @return
*/
private static Set<String> getMainProfileContactEmails(Context context) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
- ContentResolver resolver = context.getContentResolver();
- Cursor profileCursor = resolver.query(
- Uri.withAppendedPath(
- ContactsContract.Profile.CONTENT_URI,
- ContactsContract.Contacts.Data.CONTENT_DIRECTORY),
- new String[]{ContactsContract.CommonDataKinds.Email.ADDRESS,
- ContactsContract.CommonDataKinds.Email.IS_PRIMARY},
-
- // Selects only email addresses
- ContactsContract.Contacts.Data.MIMETYPE + "=?",
- new String[]{
- ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE,
- },
- // Show primary rows first. Note that there won't be a primary email address if the
- // user hasn't specified one.
- ContactsContract.Contacts.Data.IS_PRIMARY + " DESC"
- );
- if (profileCursor == null) return null;
+ ContentResolver resolver = context.getContentResolver();
+ Cursor profileCursor = resolver.query(
+ Uri.withAppendedPath(
+ ContactsContract.Profile.CONTENT_URI,
+ ContactsContract.Contacts.Data.CONTENT_DIRECTORY),
+ new String[]{
+ ContactsContract.CommonDataKinds.Email.ADDRESS,
+ ContactsContract.CommonDataKinds.Email.IS_PRIMARY
+ },
+ // Selects only email addresses
+ ContactsContract.Contacts.Data.MIMETYPE + "=?",
+ new String[]{
+ ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE,
+ },
+ // Show primary rows first. Note that there won't be a primary email address if the
+ // user hasn't specified one.
+ ContactsContract.Contacts.Data.IS_PRIMARY + " DESC"
+ );
+ if (profileCursor == null) {
+ return null;
+ }
- Set<String> emails = new HashSet<>();
- while (profileCursor.moveToNext()) {
- String email = profileCursor.getString(0);
- if (email != null) {
- emails.add(email);
- }
+ Set<String> emails = new HashSet<>();
+ while (profileCursor.moveToNext()) {
+ String email = profileCursor.getString(0);
+ if (email != null) {
+ emails.add(email);
}
- profileCursor.close();
- return emails;
- } else {
- return new HashSet<>();
}
+ profileCursor.close();
+ return emails;
}
/**
@@ -204,26 +169,27 @@ public class ContactHelper {
* @return
*/
private static List<String> getMainProfileContactName(Context context) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
- ContentResolver resolver = context.getContentResolver();
- Cursor profileCursor = resolver.query(ContactsContract.Profile.CONTENT_URI,
- new String[]{ContactsContract.Profile.DISPLAY_NAME},
- null, null, null);
- if (profileCursor == null) return null;
+ ContentResolver resolver = context.getContentResolver();
+ Cursor profileCursor = resolver.query(
+ ContactsContract.Profile.CONTENT_URI,
+ new String[]{
+ ContactsContract.Profile.DISPLAY_NAME
+ },
+ null, null, null);
+ if (profileCursor == null) {
+ return null;
+ }
- Set<String> names = new HashSet<>();
- // should only contain one entry!
- while (profileCursor.moveToNext()) {
- String name = profileCursor.getString(0);
- if (name != null) {
- names.add(name);
- }
+ Set<String> names = new HashSet<>();
+ // should only contain one entry!
+ while (profileCursor.moveToNext()) {
+ String name = profileCursor.getString(0);
+ if (name != null) {
+ names.add(name);
}
- profileCursor.close();
- return new ArrayList<>(names);
- } else {
- return new ArrayList<>();
}
+ profileCursor.close();
+ return new ArrayList<>(names);
}
public static List<String> getContactMails(Context context) {
@@ -231,7 +197,9 @@ public class ContactHelper {
Cursor mailCursor = resolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Email.DATA},
null, null, null);
- if (mailCursor == null) return new ArrayList<>();
+ if (mailCursor == null) {
+ return new ArrayList<>();
+ }
Set<String> mails = new HashSet<>();
while (mailCursor.moveToNext()) {
@@ -249,7 +217,9 @@ public class ContactHelper {
Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI,
new String[]{ContactsContract.Contacts.DISPLAY_NAME},
null, null, null);
- if (cursor == null) return new ArrayList<>();
+ if (cursor == null) {
+ return new ArrayList<>();
+ }
Set<String> names = new HashSet<>();
while (cursor.moveToNext()) {
@@ -275,72 +245,111 @@ public class ContactHelper {
return null;
}
- public static Bitmap photoFromFingerprint(ContentResolver contentResolver, String fingerprint) {
- if (fingerprint == null) return null;
- if (!photoCache.containsKey(fingerprint)) {
- photoCache.put(fingerprint, loadPhotoFromFingerprint(contentResolver, fingerprint));
+ public static Bitmap getCachedPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId) {
+ if (masterKeyId == -1) {
+ return null;
}
- return photoCache.get(fingerprint);
+ if (!photoCache.containsKey(masterKeyId)) {
+ photoCache.put(masterKeyId, loadPhotoByMasterKeyId(contentResolver, masterKeyId, false));
+ }
+ return photoCache.get(masterKeyId);
}
- private static Bitmap loadPhotoFromFingerprint(ContentResolver contentResolver, String fingerprint) {
- if (fingerprint == null) return null;
+ public static Bitmap loadPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId,
+ boolean highRes) {
+ if (masterKeyId == -1) {
+ return null;
+ }
try {
- int rawContactId = findRawContactId(contentResolver, fingerprint);
- if (rawContactId == -1) return null;
+ long rawContactId = findRawContactId(contentResolver, masterKeyId);
+ if (rawContactId == -1) {
+ return null;
+ }
Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId);
Uri contactUri = ContactsContract.RawContacts.getContactLookupUri(contentResolver, rawContactUri);
InputStream photoInputStream =
- ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri);
- if (photoInputStream == null) return null;
+ ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri, highRes);
+ if (photoInputStream == null) {
+ return null;
+ }
return BitmapFactory.decodeStream(photoInputStream);
} catch (Throwable ignored) {
return null;
}
}
+ public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{
+ KeychainContract.KeyRings.MASTER_KEY_ID,
+ KeychainContract.KeyRings.USER_ID,
+ KeychainContract.KeyRings.IS_EXPIRED,
+ KeychainContract.KeyRings.IS_REVOKED};
+
+ public static final int INDEX_MASTER_KEY_ID = 0;
+ public static final int INDEX_USER_ID = 1;
+ public static final int INDEX_IS_EXPIRED = 2;
+ public static final int INDEX_IS_REVOKED = 3;
+
/**
- * Write the current Keychain to the contact db
+ * Write/Update the current OpenKeychain keys to the contact db
*/
public static void writeKeysToContacts(Context context) {
ContentResolver resolver = context.getContentResolver();
- Set<String> contactFingerprints = getRawContactFingerprints(resolver);
+ Set<Long> deletedKeys = getRawContactMasterKeyIds(resolver);
+
+// debugDeleteRawContacts(resolver);
+
+// ContentProviderClient client = resolver.acquireContentProviderClient(ContactsContract.AUTHORITY_URI);
+// ContentValues values = new ContentValues();
+// Account account = new Account(Constants.ACCOUNT_NAME, Constants.ACCOUNT_TYPE);
+// values.put(ContactsContract.Settings.ACCOUNT_NAME, account.name);
+// values.put(ContactsContract.Settings.ACCOUNT_TYPE, account.type);
+// values.put(ContactsContract.Settings.UNGROUPED_VISIBLE, true);
+// try {
+// client.insert(ContactsContract.Settings.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build(), values);
+// } catch (RemoteException e) {
+// e.printStackTrace();
+// }
// Load all Keys from OK
Cursor cursor = resolver.query(KeychainContract.KeyRings.buildUnifiedKeyRingsUri(), KEYS_TO_CONTACT_PROJECTION,
null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
- String[] primaryUserId = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID));
- String fingerprint = KeyFormattingUtils.convertFingerprintToHex(cursor.getBlob(INDEX_FINGERPRINT));
- contactFingerprints.remove(fingerprint);
- String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_KEY_ID));
long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID);
- boolean isExpired = !cursor.isNull(INDEX_EXPIRY)
- && new Date(cursor.getLong(INDEX_EXPIRY) * 1000).before(new Date());
+ String[] userIdSplit = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID));
+ String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_MASTER_KEY_ID));
+ boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0;
boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0;
- int rawContactId = findRawContactId(resolver, fingerprint);
- ArrayList<ContentProviderOperation> ops = new ArrayList<>();
- Log.d(Constants.TAG, "raw contact id: "+rawContactId);
+ Log.d(Constants.TAG, "masterKeyId: " + masterKeyId);
+
+ deletedKeys.remove(masterKeyId);
+
+ // get raw contact to this master key id
+ long rawContactId = findRawContactId(resolver, masterKeyId);
+ Log.d(Constants.TAG, "rawContactId: " + rawContactId);
+
+ ArrayList<ContentProviderOperation> ops = new ArrayList<>();
// Do not store expired or revoked keys in contact db - and remove them if they already exist
if (isExpired || isRevoked) {
+ Log.d(Constants.TAG, "Expired or revoked: Deleting " + rawContactId);
if (rawContactId != -1) {
- resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ID_SELECTION,
- new String[]{Integer.toString(rawContactId)});
+ deleteRawContactById(resolver, rawContactId);
}
- } else if (primaryUserId[0] != null) {
+ } else if (userIdSplit[0] != null) {
// Create a new rawcontact with corresponding key if it does not exist yet
if (rawContactId == -1) {
- insertContact(ops, context, fingerprint);
+ Log.d(Constants.TAG, "Insert new raw contact with masterKeyId " + masterKeyId);
+
+ insertContact(ops, context, masterKeyId);
writeContactKey(ops, context, rawContactId, masterKeyId, keyIdShort);
}
// We always update the display name (which is derived from primary user id)
// and email addresses from user id
- writeContactDisplayName(ops, rawContactId, primaryUserId[0]);
+ writeContactDisplayName(ops, rawContactId, userIdSplit[0]);
writeContactEmail(ops, resolver, rawContactId, masterKeyId);
try {
resolver.applyBatch(ContactsContract.AUTHORITY, ops);
@@ -352,43 +361,84 @@ public class ContactHelper {
cursor.close();
}
- // Delete fingerprints that are no longer present in OK
- for (String fingerprint : contactFingerprints) {
- resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION,
- new String[]{Constants.ACCOUNT_TYPE, fingerprint});
+ // Delete master key ids that are no longer present in OK
+ for (Long masterKeyId : deletedKeys) {
+ Log.d(Constants.TAG, "Delete raw contact with masterKeyId " + masterKeyId);
+ deleteRawContactByMasterKeyId(resolver, masterKeyId);
}
+ }
+
+ /**
+ * Delete all raw contacts associated to OpenKeychain.
+ * <p/>
+ * TODO: Does this work?
+ */
+ private static int debugDeleteRawContacts(ContentResolver resolver) {
+ Log.d(Constants.TAG, "Deleting all raw contacts associated to OK...");
+ return resolver.delete(ContactsContract.RawContacts.CONTENT_URI,
+ ContactsContract.RawContacts.ACCOUNT_TYPE + "=?",
+ new String[]{
+ Constants.ACCOUNT_TYPE
+ });
+ }
+
+ private static int deleteRawContactById(ContentResolver resolver, long rawContactId) {
+ return resolver.delete(ContactsContract.RawContacts.CONTENT_URI,
+ ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts._ID + "=?",
+ new String[]{
+ Constants.ACCOUNT_TYPE, Long.toString(rawContactId)
+ });
+ }
+ private static int deleteRawContactByMasterKeyId(ContentResolver resolver, long masterKeyId) {
+ return resolver.delete(ContactsContract.RawContacts.CONTENT_URI,
+ ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?",
+ new String[]{
+ Constants.ACCOUNT_TYPE, Long.toString(masterKeyId)
+ });
}
/**
- * @return a set of all key fingerprints currently present in the contact db
+ * @return a set of all key master key ids currently present in the contact db
*/
- private static Set<String> getRawContactFingerprints(ContentResolver resolver) {
- HashSet<String> result = new HashSet<>();
- Cursor fingerprints = resolver.query(ContactsContract.RawContacts.CONTENT_URI, SOURCE_ID_PROJECTION,
- ACCOUNT_TYPE_SELECTION, new String[]{Constants.ACCOUNT_TYPE}, null);
- if (fingerprints != null) {
- while (fingerprints.moveToNext()) {
- result.add(fingerprints.getString(0));
+ private static Set<Long> getRawContactMasterKeyIds(ContentResolver resolver) {
+ HashSet<Long> result = new HashSet<>();
+ Cursor masterKeyIds = resolver.query(ContactsContract.RawContacts.CONTENT_URI,
+ new String[]{
+ ContactsContract.RawContacts.SOURCE_ID
+ },
+ ContactsContract.RawContacts.ACCOUNT_TYPE + "=?",
+ new String[]{
+ Constants.ACCOUNT_TYPE
+ }, null);
+ if (masterKeyIds != null) {
+ while (masterKeyIds.moveToNext()) {
+ result.add(masterKeyIds.getLong(0));
}
- fingerprints.close();
+ masterKeyIds.close();
}
return result;
}
/**
- * This will search the contact db for a raw contact with a given fingerprint
+ * This will search the contact db for a raw contact with a given master key id
*
* @return raw contact id or -1 if not found
*/
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
- private static int findRawContactId(ContentResolver resolver, String fingerprint) {
- int rawContactId = -1;
- Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI, ID_PROJECTION,
- ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, new String[]{Constants.ACCOUNT_TYPE, fingerprint}, null, null);
+ private static long findRawContactId(ContentResolver resolver, long masterKeyId) {
+ long rawContactId = -1;
+ Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI,
+ new String[]{
+ ContactsContract.RawContacts._ID
+ },
+ ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?",
+ new String[]{
+ Constants.ACCOUNT_TYPE, Long.toString(masterKeyId)
+ }, null, null);
if (raw != null) {
if (raw.moveToNext()) {
- rawContactId = raw.getInt(0);
+ rawContactId = raw.getLong(0);
}
raw.close();
}
@@ -396,13 +446,13 @@ public class ContactHelper {
}
/**
- * Creates a empty raw contact with a given fingerprint
+ * Creates a empty raw contact with a given masterKeyId
*/
- private static void insertContact(ArrayList<ContentProviderOperation> ops, Context context, String fingerprint) {
+ private static void insertContact(ArrayList<ContentProviderOperation> ops, Context context, long masterKeyId) {
ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE)
- .withValue(ContactsContract.RawContacts.SOURCE_ID, fingerprint)
+ .withValue(ContactsContract.RawContacts.SOURCE_ID, Long.toString(masterKeyId))
.build());
}
@@ -411,7 +461,7 @@ public class ContactHelper {
* <p/>
* This creates the link to OK in contact details
*/
- private static void writeContactKey(ArrayList<ContentProviderOperation> ops, Context context, int rawContactId,
+ private static void writeContactKey(ArrayList<ContentProviderOperation> ops, Context context, long rawContactId,
long masterKeyId, String keyIdShort) {
ops.add(referenceRawContact(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), rawContactId)
.withValue(ContactsContract.Data.MIMETYPE, Constants.CUSTOM_CONTACT_DATA_MIME_TYPE)
@@ -424,16 +474,22 @@ public class ContactHelper {
* Write all known email addresses of a key (derived from user ids) to a given raw contact
*/
private static void writeContactEmail(ArrayList<ContentProviderOperation> ops, ContentResolver resolver,
- int rawContactId, long masterKeyId) {
- ops.add(selectByRawContactAndItemType(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI),
+ long rawContactId, long masterKeyId) {
+ ops.add(selectByRawContactAndItemType(
+ ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI),
rawContactId, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE).build());
Cursor ids = resolver.query(UserPackets.buildUserIdsUri(masterKeyId),
- USER_IDS_PROJECTION, NON_REVOKED_SELECTION, null, null);
+ new String[]{
+ UserPackets.USER_ID
+ },
+ UserPackets.IS_REVOKED + "=0",
+ null, null);
if (ids != null) {
while (ids.moveToNext()) {
String[] userId = KeyRing.splitUserId(ids.getString(0));
if (userId[1] != null) {
- ops.add(referenceRawContact(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI),
+ ops.add(referenceRawContact(
+ ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI),
rawContactId)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
@@ -445,7 +501,7 @@ public class ContactHelper {
}
}
- private static void writeContactDisplayName(ArrayList<ContentProviderOperation> ops, int rawContactId,
+ private static void writeContactDisplayName(ArrayList<ContentProviderOperation> ops, long rawContactId,
String displayName) {
if (displayName != null) {
ops.add(insertOrUpdateForRawContact(ContactsContract.Data.CONTENT_URI, rawContactId,
@@ -456,13 +512,13 @@ public class ContactHelper {
}
private static ContentProviderOperation.Builder referenceRawContact(ContentProviderOperation.Builder builder,
- int rawContactId) {
+ long rawContactId) {
return rawContactId == -1 ?
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) :
builder.withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
}
- private static ContentProviderOperation.Builder insertOrUpdateForRawContact(Uri uri, int rawContactId,
+ private static ContentProviderOperation.Builder insertOrUpdateForRawContact(Uri uri, long rawContactId,
String itemType) {
if (rawContactId == -1) {
return referenceRawContact(ContentProviderOperation.newInsert(uri), rawContactId).withValue(
@@ -473,8 +529,11 @@ public class ContactHelper {
}
private static ContentProviderOperation.Builder selectByRawContactAndItemType(
- ContentProviderOperation.Builder builder, int rawContactId, String itemType) {
- return builder.withSelection(RAW_CONTACT_AND_MIMETYPE_SELECTION,
- new String[]{Integer.toString(rawContactId), itemType});
+ ContentProviderOperation.Builder builder, long rawContactId, String itemType) {
+ return builder.withSelection(
+ ContactsContract.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=?",
+ new String[]{
+ Long.toString(rawContactId), itemType
+ });
}
}
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png
index 7cc407315..10c77d07d 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png
deleted file mode 100644
index 5ebac9706..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png
deleted file mode 100644
index cde36e1fa..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png
deleted file mode 100644
index 3daa64131..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png
deleted file mode 100644
index 8de91173c..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png
deleted file mode 100644
index 22327391e..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png
deleted file mode 100644
index 9c717dd32..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png
deleted file mode 100644
index 58bf97217..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png
deleted file mode 100644
index 1f3d06519..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png
deleted file mode 100644
index 5f7c6eff3..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png
new file mode 100644
index 000000000..944a99199
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.png
new file mode 100644
index 000000000..9166133b1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png
deleted file mode 100644
index 382d314ca..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png
deleted file mode 100644
index 742ba271c..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png
deleted file mode 100644
index 790af372d..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png
deleted file mode 100644
index 5ee148080..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png
deleted file mode 100644
index 9438aa597..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png
deleted file mode 100644
index 9fd81097b..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png
deleted file mode 100644
index 869f0014b..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png
deleted file mode 100644
index c4b7783cc..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png
deleted file mode 100644
index f594b4e48..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png
deleted file mode 100644
index 287ae2fb0..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png
deleted file mode 100644
index fc0dd57b6..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png
deleted file mode 100644
index 0eb78f7c7..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png
deleted file mode 100644
index 8a6cbfea2..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png
deleted file mode 100644
index b53640176..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.png
new file mode 100644
index 000000000..56bd81589
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.png
deleted file mode 100644
index e08afae85..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png
new file mode 100644
index 000000000..325803180
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.png
new file mode 100644
index 000000000..c3255bdf6
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png
new file mode 100644
index 000000000..6f8c72cd6
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.png
new file mode 100644
index 000000000..5592d5c80
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png
new file mode 100644
index 000000000..f657587d7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png
new file mode 100644
index 000000000..b72a9f3c6
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png
new file mode 100644
index 000000000..6e42e1359
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png
new file mode 100644
index 000000000..c2222fb8e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.png
new file mode 100644
index 000000000..569b7704f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.png
new file mode 100644
index 000000000..e3dccd298
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png
index b6b3129f5..af025f2d1 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png
new file mode 100644
index 000000000..e2779ba95
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png
new file mode 100644
index 000000000..961aedecc
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..af3bc9d05
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png
new file mode 100644
index 000000000..4034dc9f2
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.png
new file mode 100644
index 000000000..ddd39f2fc
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.png
new file mode 100644
index 000000000..25d5688e3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.png
new file mode 100644
index 000000000..da48a4952
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png
new file mode 100644
index 000000000..af025f2d1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png
new file mode 100644
index 000000000..264416933
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png
new file mode 100644
index 000000000..3ead270a0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png
new file mode 100644
index 000000000..8c9e9cec0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.png
new file mode 100644
index 000000000..ba65a135b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png
new file mode 100644
index 000000000..99f57a2da
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png
new file mode 100644
index 000000000..20d2b66e0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.png
new file mode 100644
index 000000000..987e9b86c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.png
new file mode 100644
index 000000000..c031adccf
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.png
new file mode 100644
index 000000000..eeea75b6f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png
new file mode 100644
index 000000000..8ca38976f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png
deleted file mode 100644
index 9d4ed6e84..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png
new file mode 100644
index 000000000..32a8a5df7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.png
deleted file mode 100644
index e76393659..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png
new file mode 100644
index 000000000..ee330eaf3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.png
deleted file mode 100644
index 3c2f8c09c..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.png
new file mode 100644
index 000000000..925b4b9b0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png
deleted file mode 100644
index 046424643..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png
new file mode 100644
index 000000000..350268538
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png
deleted file mode 100644
index a1b090630..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png
new file mode 100644
index 000000000..a615c93a0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png
deleted file mode 100644
index e567055aa..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.png
new file mode 100644
index 000000000..0fbe18533
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png
deleted file mode 100644
index 98e32eadc..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.png
new file mode 100644
index 000000000..f7f296b69
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png
deleted file mode 100644
index 84ac9bec2..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96dp.png
index 63546068f..63546068f 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.png
new file mode 100644
index 000000000..d27b1841d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png
deleted file mode 100644
index 967e00e80..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png
index 9957db288..9957db288 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png
new file mode 100644
index 000000000..82799481a
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.png
deleted file mode 100644
index 244dd0708..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png
index 1c3a15c07..1c3a15c07 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png
new file mode 100644
index 000000000..919ffd1d3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png
deleted file mode 100644
index 82cc25a4b..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96dp.png
index ce46c6317..ce46c6317 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.png
new file mode 100644
index 000000000..825322dc7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.png
deleted file mode 100644
index e752eaeab..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96dp.png
index 19ee3c241..19ee3c241 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.png
new file mode 100644
index 000000000..5a6e68b5f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.png
deleted file mode 100644
index 08a9f464c..000000000
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png
index ed3db0aca..ed3db0aca 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png
index 2bf88c183..41b89b5b6 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png
deleted file mode 100644
index c43cf6553..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png
deleted file mode 100644
index 9f4c3d6a2..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png
deleted file mode 100644
index 266d4c21f..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png
deleted file mode 100644
index b89ea93ff..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png
deleted file mode 100644
index 713482020..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png
deleted file mode 100644
index 9dfb7cc2c..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png
deleted file mode 100644
index cf5fab3ad..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png
deleted file mode 100644
index c2ead0cef..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png
deleted file mode 100644
index 650b4d899..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.png
deleted file mode 100644
index 06a054160..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png
new file mode 100644
index 000000000..a1500ff3d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.png
deleted file mode 100644
index 97cb03def..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png
new file mode 100644
index 000000000..4a7f53d97
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png
deleted file mode 100644
index 5876cdea4..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png
deleted file mode 100644
index 1d6522beb..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png
deleted file mode 100644
index 69c801dcc..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png
deleted file mode 100644
index dd5289ee4..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png
deleted file mode 100644
index 940aae781..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png
deleted file mode 100644
index 359da1c12..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png
deleted file mode 100644
index 5f3bf86fd..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png
deleted file mode 100644
index 61304a68c..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png
deleted file mode 100644
index f6719d228..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png
deleted file mode 100644
index d49217234..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png
deleted file mode 100644
index da37d7a6e..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png
deleted file mode 100644
index c290e5902..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png
deleted file mode 100644
index bff81179a..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png
deleted file mode 100644
index 5bef3ca81..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.png
new file mode 100644
index 000000000..c94877886
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png
deleted file mode 100644
index 4fe0edfa3..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png
new file mode 100644
index 000000000..1c382e5f5
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png
new file mode 100644
index 000000000..a90997d7b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png
new file mode 100644
index 000000000..eceece7ca
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.png
deleted file mode 100644
index 7a69993fd..000000000
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.png
new file mode 100644
index 000000000..bab9b4d66
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png
new file mode 100644
index 000000000..fbf5786b3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png
new file mode 100644
index 000000000..e757fdb07
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png
new file mode 100644
index 000000000..9f860915d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png
new file mode 100644
index 000000000..b3ef8ce73
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png
new file mode 100644
index 000000000..ca89ff472
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png
new file mode 100644
index 000000000..1028bfaf3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png
index f763dd259..a78e7e6a0 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png
new file mode 100644
index 000000000..2f086e41a
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png
new file mode 100644
index 000000000..f7faa5cf4
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..6a9b6a9fe
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png
new file mode 100644
index 000000000..3aa7f36a1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png
new file mode 100644
index 000000000..eff685ef1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png
new file mode 100644
index 000000000..bae3480cb
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.png
new file mode 100644
index 000000000..58edadf61
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png
new file mode 100644
index 000000000..a78e7e6a0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png
new file mode 100644
index 000000000..4ff5decb0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.png
new file mode 100644
index 000000000..e72945d9e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png
new file mode 100644
index 000000000..bb26bc075
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.png
new file mode 100644
index 000000000..29954062c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.png
new file mode 100644
index 000000000..d88de42e6
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png
new file mode 100644
index 000000000..5a1b41f03
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.png
new file mode 100644
index 000000000..ee0248838
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png
new file mode 100644
index 000000000..b90d335f9
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.png
new file mode 100644
index 000000000..f00e106c2
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png
index ed1ba24d2..ed1ba24d2 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png
index d54d461fa..d54d461fa 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png
index 81c1b3dfa..81c1b3dfa 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png
index 9afc43901..9afc43901 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png
index cfc39f0e7..cfc39f0e7 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png
index 824dc2672..824dc2672 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png
index 9bca59ae3..9bca59ae3 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png
index bc91094b5..bc91094b5 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png
index df385bb1b..df385bb1b 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png
index bc2f56e2a..bc2f56e2a 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png
index aeb899599..aeb899599 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png
index 2d2593194..2d2593194 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png
index d77c5e1c1..d77c5e1c1 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png
index 0fc74d07e..0fc74d07e 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png
index ee0661234..ee0661234 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png
index 96a2d1413..96a2d1413 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png
index 1602747f1..1602747f1 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png
index 9f7cf837c..9f7cf837c 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png
index 61c23f749..61c23f749 100644
--- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png
index f1ec295d2..ee8067c7d 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png
deleted file mode 100644
index 91434a47b..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png
deleted file mode 100644
index ca7d159fd..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png
deleted file mode 100644
index 0769899fd..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png
deleted file mode 100644
index 88240fd30..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png
deleted file mode 100644
index 5ddf15139..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png
deleted file mode 100644
index db69d6c25..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png
deleted file mode 100644
index b8915716e..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png
deleted file mode 100644
index 38a3aeea6..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png
deleted file mode 100644
index 8ab436d87..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png
deleted file mode 100644
index 5f528864d..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png
index 1e397ebed..1e397ebed 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png
deleted file mode 100644
index f8867e922..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png
index 1cbd993a7..1cbd993a7 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png
deleted file mode 100644
index 19a9df332..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png
deleted file mode 100644
index 5e48a9c6b..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png
deleted file mode 100644
index c6dfd0bcb..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png
deleted file mode 100644
index 312a230e7..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png
deleted file mode 100644
index 5fa309cd8..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png
deleted file mode 100644
index 03eeb8d6a..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png
deleted file mode 100644
index 7f709bbf1..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png
deleted file mode 100644
index 29c5f4d3b..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png
deleted file mode 100644
index aad535e97..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png
deleted file mode 100644
index 2a0898381..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png
deleted file mode 100644
index af37a3680..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png
deleted file mode 100644
index 999d0f0d8..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png
deleted file mode 100644
index 2f6dc413b..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png
deleted file mode 100644
index 27af9a43c..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png
new file mode 100644
index 000000000..896aca575
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png
deleted file mode 100644
index a38638e4d..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png
new file mode 100644
index 000000000..fb9f88d2a
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png
new file mode 100644
index 000000000..efcffe3fb
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24dp.png
index 6f9b343ad..6f9b343ad 100644
--- a/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.png
deleted file mode 100644
index 1f0db264a..000000000
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png
new file mode 100644
index 000000000..68ccece61
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png
new file mode 100644
index 000000000..9ad5aab8f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.png
new file mode 100644
index 000000000..c6bb43e8b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png
new file mode 100644
index 000000000..36ed24eec
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png
new file mode 100644
index 000000000..aa89d4977
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.png
new file mode 100644
index 000000000..908b1567c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.png
new file mode 100644
index 000000000..190df8236
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png
index 212293db0..738e3490d 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.png
new file mode 100644
index 000000000..5f01b9362
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.png
new file mode 100644
index 000000000..22ff0c308
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..144e82989
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.png
new file mode 100644
index 000000000..c398ccf04
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.png
new file mode 100644
index 000000000..4b7c23f46
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png
new file mode 100644
index 000000000..4c95bd577
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.png
new file mode 100644
index 000000000..1ab31fed1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png
new file mode 100644
index 000000000..738e3490d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.png
new file mode 100644
index 000000000..689fda259
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png
new file mode 100644
index 000000000..fad94a7fc
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.png
new file mode 100644
index 000000000..aa0332092
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.png
new file mode 100644
index 000000000..f9c0b2ec3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.png
new file mode 100644
index 000000000..3d385f50c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.png
new file mode 100644
index 000000000..2251d2bbb
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.png
new file mode 100644
index 000000000..88a0edd6c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png
new file mode 100644
index 000000000..0e7f15a4b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.png
new file mode 100644
index 000000000..08177e7b4
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24dp.png
index 8d36d7202..8d36d7202 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24dp.png
index 01a74bcc0..01a74bcc0 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24dp.png
index ff07bd0a4..ff07bd0a4 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24dp.png
index b8002162a..b8002162a 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24dp.png
index 7c6bb2d18..7c6bb2d18 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24dp.png
index da4a5d89a..da4a5d89a 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24dp.png
index cd02fc1e4..cd02fc1e4 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24dp.png
index 83f6fde35..83f6fde35 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96dp.png
index 568b48c43..568b48c43 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24dp.png
index 29830f5ba..29830f5ba 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96dp.png
index 89f899212..89f899212 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24dp.png
index 2f7695043..2f7695043 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96dp.png
index 3db663e2e..3db663e2e 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24dp.png
index 2ce28c7ca..2ce28c7ca 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96dp.png
index 4e0e04375..4e0e04375 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24dp.png
index 442c55eee..442c55eee 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96dp.png
index 0b2ccc9f7..0b2ccc9f7 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24dp.png
index 160ec7cbe..160ec7cbe 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96dp.png
index 471e5e513..471e5e513 100644
--- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png
index da24654eb..d9b5cc007 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png
deleted file mode 100644
index f18aa6144..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png
deleted file mode 100644
index f97084dbe..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png
deleted file mode 100644
index c41ca8c8b..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png
deleted file mode 100644
index a0508df8c..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png
deleted file mode 100644
index b522daffe..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png
deleted file mode 100644
index ef7785a48..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png
deleted file mode 100644
index f2b2078b0..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.png
new file mode 100644
index 000000000..8202a612d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.png
new file mode 100644
index 000000000..66b115713
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png
deleted file mode 100644
index c5a34319b..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png
deleted file mode 100644
index f054a68e6..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png
deleted file mode 100644
index 38589ba0e..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.png
deleted file mode 100644
index 4aa9dc85c..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png
deleted file mode 100644
index 3589aeb55..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png
deleted file mode 100644
index fd1bcdd45..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png
deleted file mode 100644
index df5994710..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png
deleted file mode 100644
index 744350049..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png
deleted file mode 100644
index 9c0ea3ca0..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png
deleted file mode 100644
index d8c094ed8..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png
deleted file mode 100644
index aa5937eab..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png
deleted file mode 100644
index 530227e2d..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png
deleted file mode 100644
index 3e441000f..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png
deleted file mode 100644
index 48a0cd149..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.png
new file mode 100644
index 000000000..3858675e3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.png
deleted file mode 100644
index b00a85f6d..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png
new file mode 100644
index 000000000..3179d765c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png
new file mode 100644
index 000000000..0bcacc545
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png
new file mode 100644
index 000000000..a0924d025
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png
new file mode 100644
index 000000000..2fdbbea13
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png
new file mode 100644
index 000000000..b1348527b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png
new file mode 100644
index 000000000..4886ab1e9
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png
new file mode 100644
index 000000000..c836c5490
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.png
new file mode 100644
index 000000000..e61a48a4d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png
new file mode 100644
index 000000000..77d80081f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png
new file mode 100644
index 000000000..6fbc40459
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png
index 130c670c9..de2a86e89 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png
new file mode 100644
index 000000000..d64fa5160
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.png
new file mode 100644
index 000000000..3edec452e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..e0999bd81
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png
new file mode 100644
index 000000000..aac70d9bb
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.png
new file mode 100644
index 000000000..3280b2658
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.png
new file mode 100644
index 000000000..6ed4351ca
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.png
new file mode 100644
index 000000000..993118372
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.png
new file mode 100644
index 000000000..de2a86e89
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.png
new file mode 100644
index 000000000..ba62a8102
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.png
new file mode 100644
index 000000000..6ecab92a7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png
new file mode 100644
index 000000000..6c87e1358
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.png
new file mode 100644
index 000000000..9424ae98e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png
new file mode 100644
index 000000000..f61ac41df
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.png
new file mode 100644
index 000000000..6a70402b4
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.png
new file mode 100644
index 000000000..89136d7c3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png
new file mode 100644
index 000000000..ccedde141
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.png
new file mode 100644
index 000000000..dc007ee65
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.png
new file mode 100644
index 000000000..29be2882d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png
deleted file mode 100644
index d786dc72f..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png
new file mode 100644
index 000000000..671fb88c3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.png
deleted file mode 100644
index 4bb97f992..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.png
new file mode 100644
index 000000000..063736684
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.png
deleted file mode 100644
index fe0c8e41b..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.png
new file mode 100644
index 000000000..2b156e46a
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.png
deleted file mode 100644
index 51ab367a9..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.png
new file mode 100644
index 000000000..67b3b0769
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.png
deleted file mode 100644
index 5a9664d59..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.png
new file mode 100644
index 000000000..032602f70
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png
deleted file mode 100644
index 608f065af..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png
new file mode 100644
index 000000000..b15100f6a
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png
deleted file mode 100644
index ee34dd396..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png
new file mode 100644
index 000000000..e07f9d651
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png
deleted file mode 100644
index 33a3efed1..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png
index ba7e8c2f4..ba7e8c2f4 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png
new file mode 100644
index 000000000..8eaeba8d2
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.png
deleted file mode 100644
index bc39d3496..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96dp.png
index 1fbf5ceb2..1fbf5ceb2 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.png
new file mode 100644
index 000000000..d2d11e557
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png
deleted file mode 100644
index 58929661f..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png
index 338c696ac..338c696ac 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png
new file mode 100644
index 000000000..3b9684786
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.png
deleted file mode 100644
index 3020357a4..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96dp.png
index 2690310a6..2690310a6 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.png
new file mode 100644
index 000000000..4d0b4e796
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png
deleted file mode 100644
index 3829bb3a0..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png
index e559faf9d..e559faf9d 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png
new file mode 100644
index 000000000..12d43f635
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.png
deleted file mode 100644
index 3548ee2b6..000000000
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.png
+++ /dev/null
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96px.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96dp.png
index 79e4ec4a9..79e4ec4a9 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96px.png
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_accounts.png
new file mode 100644
index 000000000..be1bc9ef4
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_accounts.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_file_24dp.png
index c77329563..c77329563 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file.png
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_file_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png
index 15650500d..15650500d 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png
new file mode 100644
index 000000000..49b13017c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png
new file mode 100644
index 000000000..e3121dbff
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png
new file mode 100644
index 000000000..ec5434a3c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png
index 852cdc2a6..852cdc2a6 100644
--- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png
new file mode 100644
index 000000000..1eb62d42c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png
new file mode 100644
index 000000000..42240540c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png
new file mode 100644
index 000000000..e4e218123
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.png
new file mode 100644
index 000000000..c4899687b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.png
new file mode 100644
index 000000000..c7e86f9dc
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png
new file mode 100644
index 000000000..995a3879e
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png
new file mode 100644
index 000000000..0107ea21c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png
new file mode 100644
index 000000000..e664e94ac
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png
new file mode 100644
index 000000000..8fc671147
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png
new file mode 100644
index 000000000..3dea0d014
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png
new file mode 100644
index 000000000..e69e5732c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png
new file mode 100644
index 000000000..0580f3290
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.png
new file mode 100644
index 000000000..e500bc8f7
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.png
new file mode 100644
index 000000000..0c0fd76f6
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png
new file mode 100644
index 000000000..5f3ac2804
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png
new file mode 100644
index 000000000..e664e94ac
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png
new file mode 100644
index 000000000..1cb4aaac5
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.png
new file mode 100644
index 000000000..6c8f219e8
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png
new file mode 100644
index 000000000..51998492c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.png
new file mode 100644
index 000000000..037640959
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png
new file mode 100644
index 000000000..93657cbde
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.png
new file mode 100644
index 000000000..5eba9e8ec
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png
new file mode 100644
index 000000000..e15c0568d
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.png
new file mode 100644
index 000000000..f2c9d42de
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png
new file mode 100644
index 000000000..88e618bab
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png
new file mode 100644
index 000000000..438d9eb84
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png
new file mode 100644
index 000000000..6b6d6f46f
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png
new file mode 100644
index 000000000..77c2e1911
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.png
new file mode 100644
index 000000000..7ffa3aea2
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png
new file mode 100644
index 000000000..4116e13fa
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.png
new file mode 100644
index 000000000..6053b7bec
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.png
new file mode 100644
index 000000000..67b4ae314
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.png
new file mode 100644
index 000000000..df385bb1b
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png
new file mode 100644
index 000000000..aeb899599
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png
new file mode 100644
index 000000000..d77c5e1c1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png
new file mode 100644
index 000000000..ee0661234
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png
new file mode 100644
index 000000000..1602747f1
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.png
new file mode 100644
index 000000000..61c23f749
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml
index d32b1496f..4b5058a81 100644
--- a/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -90,42 +91,6 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
- <TableRow
- android:layout_marginTop="8dp"
- android:layout_marginBottom="8dp">
-
- <TextView
- android:id="@+id/label_expiry"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:paddingRight="10dip"
- android:text="@string/label_expiry" />
-
- <CheckBox
- android:id="@+id/add_subkey_no_expiry"
- android:checked="true"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/btn_no_date" />
-
- </TableRow>
-
- <TableRow
- android:id="@+id/add_subkey_expiry_row"
- android:visibility="gone">
-
- <DatePicker
- android:id="@+id/add_subkey_expiry_date_picker"
- android:layout_span="2"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:spinnersShown="true"
- android:calendarViewShown="false" />
-
- </TableRow>
-
<TableRow>
<TextView
@@ -190,6 +155,52 @@
android:text="@string/flag_authenticate" />
</TableRow>
+ <TableRow
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp">
+
+ <TextView
+ android:id="@+id/label_expiry"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="10dip"
+ android:text="@string/label_expiry" />
+
+ <CheckBox
+ android:id="@+id/add_subkey_no_expiry"
+ android:checked="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/btn_no_date" />
+
+ </TableRow>
+
+ <TableRow
+ android:id="@+id/add_subkey_expiry_row"
+ android:visibility="gone">
+
+ <!--
+ Use Spinner style DatePicker, not the full calendar view
+ Android < 5:
+ android:spinnersShown="true"
+ android:calendarViewShown="false"
+ Android >= 5:
+ android:datePickerMode="spinner"
+ -->
+ <DatePicker
+ android:id="@+id/add_subkey_expiry_date_picker"
+ android:layout_span="2"
+ android:layout_gravity="center_horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:ignore="UnusedAttribute"
+ android:datePickerMode="spinner"
+ android:spinnersShown="true"
+ android:calendarViewShown="false" />
+
+ </TableRow>
+
</TableLayout>
</ScrollView> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml
index cd74255c7..f9a8e9933 100644
--- a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml
@@ -21,7 +21,7 @@
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dp"
- android:src="@drawable/ic_action_person" />
+ android:src="@drawable/ic_person_grey_24dp" />
<TextView
android:id="@+id/api_account_settings_acc_name"
@@ -79,7 +79,7 @@
android:layout_width="match_parent"
android:text="@string/api_settings_create_key"
android:layout_height="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_new_account"
+ android:drawableRight="@drawable/ic_key_plus_grey600_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true" />
diff --git a/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml b/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml
index d31ae52d7..39d87ee25 100644
--- a/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml
+++ b/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml
@@ -14,7 +14,7 @@
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:id="@+id/imageView"
- android:src="@drawable/ic_action_person" />
+ android:src="@drawable/ic_person_grey_24dp" />
<TextView
android:id="@+id/api_accounts_adapter_item_name"
diff --git a/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml b/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml
index c4ea46d43..9166f958e 100644
--- a/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml
+++ b/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml
@@ -17,7 +17,7 @@
android:id="@+id/api_apps_adapter_install_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/ic_action_download"
+ android:src="@drawable/ic_file_download_grey_24dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
diff --git a/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml b/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml
index ec91d1455..764b2eac0 100644
--- a/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml
+++ b/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml
@@ -7,7 +7,7 @@
<include
android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ layout="@layout/toolbar_standalone_orange" />
<LinearLayout
android:layout_below="@id/toolbar_include"
diff --git a/OpenKeychain/src/main/res/layout/certify_key_activity.xml b/OpenKeychain/src/main/res/layout/certify_key_activity.xml
index fab8bc2d2..56dca302f 100644
--- a/OpenKeychain/src/main/res/layout/certify_key_activity.xml
+++ b/OpenKeychain/src/main/res/layout/certify_key_activity.xml
@@ -5,7 +5,7 @@
<include
android:id="@+id/toolbar_include"
- layout="@layout/toolbar_standalone" />
+ layout="@layout/toolbar_standalone_orange" />
<LinearLayout
android:layout_below="@id/toolbar_include"
diff --git a/OpenKeychain/src/main/res/layout/certify_key_fragment.xml b/OpenKeychain/src/main/res/layout/certify_key_fragment.xml
index 2df3755a4..c1227f906 100644
--- a/OpenKeychain/src/main/res/layout/certify_key_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/certify_key_fragment.xml
@@ -95,7 +95,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/status_signature_verified_cutout_24px"
+ android:src="@drawable/status_signature_verified_cutout_24dp"
android:layout_gravity="center_vertical" />
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/create_key_activity.xml b/OpenKeychain/src/main/res/layout/create_key_activity.xml
index b9d5206a1..ecf69e640 100644
--- a/OpenKeychain/src/main/res/layout/create_key_activity.xml
+++ b/OpenKeychain/src/main/res/layout/create_key_activity.xml
@@ -14,7 +14,7 @@
<FrameLayout
android:layout_below="@id/toolbar_include"
android:fitsSystemWindows="true"
- android:layout_marginTop="-25dp"
+ android:layout_marginTop="@dimen/minus_statusbar_height"
android:layout_width="match_parent"
android:layout_height="match_parent">
diff --git a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml
index 9b6a807cb..84625d1fd 100644
--- a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml
@@ -180,7 +180,7 @@
android:layout_weight="1"
android:text="@string/btn_create_key"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_new_account"
+ android:drawableRight="@drawable/ic_key_plus_grey600_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
index f678825aa..d817f9269 100644
--- a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml
@@ -135,7 +135,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_play_arrow_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml
index 394ef10f4..a5646dc26 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml
@@ -50,7 +50,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="@string/filemanager_title_open"
- android:drawableRight="@drawable/ic_action_collection"
+ android:drawableRight="@drawable/ic_folder_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
</LinearLayout>
@@ -82,7 +82,7 @@
android:text="@string/btn_decrypt_verify_file"
android:clickable="true"
style="@style/SelectableItem"
- android:drawableRight="@drawable/ic_action_save"
+ android:drawableRight="@drawable/ic_save_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:layout_alignParentBottom="true"
diff --git a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml
index 06c1dda7b..3cf4a9e7b 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml
@@ -14,7 +14,7 @@
<LinearLayout
android:layout_below="@id/toolbar_include"
android:fitsSystemWindows="true"
- android:layout_marginTop="-25dp"
+ android:layout_marginTop="@dimen/minus_statusbar_height"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
diff --git a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml
index 659d1c207..7317e7742 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml
@@ -24,7 +24,7 @@
android:id="@+id/result_encryption_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/status_lock_open_24px"
+ android:src="@drawable/status_lock_open_24dp"
android:layout_gravity="center_vertical" />
<TextView
@@ -47,7 +47,7 @@
android:id="@+id/result_signature_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/status_signature_unverified_cutout_24px"
+ android:src="@drawable/status_signature_unverified_cutout_24dp"
android:layout_gravity="center_vertical" />
<TextView
diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml
index a692b3681..da4aa7099 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml
@@ -14,7 +14,7 @@
<LinearLayout
android:layout_below="@id/toolbar_include"
android:fitsSystemWindows="true"
- android:layout_marginTop="-25dp"
+ android:layout_marginTop="@dimen/minus_statusbar_height"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml
index cbe03056c..0f341b2d6 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml
@@ -59,7 +59,7 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:text="@string/btn_add_share_decrypted_text"
- android:drawableRight="@drawable/ic_action_share"
+ android:drawableRight="@drawable/ic_share_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:layout_weight="1" />
@@ -77,7 +77,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_copy"
+ android:src="@drawable/ic_content_copy_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
diff --git a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml
index 2ffbc66f4..8f9709711 100644
--- a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml
@@ -26,11 +26,11 @@
android:layout_height="match_parent"
android:text="@string/edit_key_action_change_passphrase"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_edit"
+ android:drawableRight="@drawable/ic_mode_edit_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
- style="@style/SelectableItem" />
+ style="?android:attr/borderlessButtonStyle" />
<TextView
style="@style/SectionHeader"
@@ -69,11 +69,11 @@
android:layout_height="match_parent"
android:text="@string/edit_key_action_add_identity"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_add_person"
+ android:drawableRight="@drawable/ic_person_add_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
- style="@style/SelectableItem" />
+ style="?android:attr/borderlessButtonStyle" />
<TextView
style="@style/SectionHeader"
@@ -111,11 +111,11 @@
android:layout_height="match_parent"
android:text="@string/edit_key_action_add_subkey"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_new_account"
+ android:drawableRight="@drawable/ic_key_plus_grey600_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
- style="@style/SelectableItem" />
+ style="?android:attr/borderlessButtonStyle" />
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml
index a692db574..38dc03627 100644
--- a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:paddingTop="16dp"
android:paddingBottom="16dp"
@@ -15,13 +16,49 @@
android:layout_height="wrap_content"
android:text="@string/btn_no_date" />
- <DatePicker
- android:id="@+id/edit_subkey_expiry_date_picker"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:spinnersShown="true"
- android:calendarViewShown="false" />
- <!-- Hide calendarView in tablets because of the unix warparound bug. -->
+ <LinearLayout
+ android:id="@+id/edit_subkey_expiry_layout"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <TextView
+ style="@style/SectionHeader"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/section_current_expiry" />
+
+ <TextView
+ android:id="@+id/edit_subkey_expiry_current_expiry"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ android:padding="8dp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ style="@style/SectionHeader"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/section_new_expiry" />
+
+ <!--
+ Use Spinner style DatePicker, not the full calendar view
+ Android < 5:
+ android:spinnersShown="true"
+ android:calendarViewShown="false"
+ Android >= 5:
+ android:datePickerMode="spinner"
+ -->
+ <!-- Hide calendarView in tablets because of the unix warparound bug. -->
+ <DatePicker
+ android:id="@+id/edit_subkey_expiry_date_picker"
+ android:layout_gravity="center_horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:ignore="UnusedAttribute"
+ android:datePickerMode="spinner"
+ android:spinnersShown="true"
+ android:calendarViewShown="false" />
+ </LinearLayout>
</LinearLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml
index d62c9f32b..3ef8e3551 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml
@@ -23,9 +23,9 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:clickable="true"
- style="@style/SelectableItem"
+ style="?android:attr/borderlessButtonStyle"
android:text="@string/btn_encrypt_files"
- android:drawableRight="@drawable/ic_action_collection"
+ android:drawableRight="@drawable/ic_folder_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -43,9 +43,9 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:clickable="true"
- style="@style/SelectableItem"
+ style="?android:attr/borderlessButtonStyle"
android:text="@string/btn_encrypt_text"
- android:drawableRight="@drawable/ic_action_copy"
+ android:drawableRight="@drawable/ic_content_copy_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -70,9 +70,9 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:clickable="true"
- style="@style/SelectableItem"
+ style="?android:attr/borderlessButtonStyle"
android:text="@string/btn_decrypt_files"
- android:drawableRight="@drawable/ic_action_collection"
+ android:drawableRight="@drawable/ic_folder_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -86,9 +86,10 @@
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:clickable="true"
- android:paddingRight="4dp"
- style="@style/SelectableItem"
- android:orientation="horizontal">
+ style="?android:attr/borderlessButtonStyle"
+ android:orientation="horizontal"
+ android:paddingLeft="8dp"
+ android:paddingRight="0dp">
<LinearLayout
android:layout_width="0dp"
@@ -99,14 +100,12 @@
android:orientation="vertical">
<TextView
- android:paddingLeft="8dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_decrypt_clipboard" />
<TextView
- android:paddingLeft="8dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -121,7 +120,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_paste"
+ android:src="@drawable/ic_content_paste_grey_24dp"
android:layout_gravity="center_vertical" />
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml
index 168e6d0be..f9efd81b4 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml
@@ -15,7 +15,7 @@
android:layout_below="@id/toolbar_include"
android:id="@+id/content_frame"
android:fitsSystemWindows="true"
- android:layout_marginTop="-25dp"
+ android:layout_marginTop="@dimen/minus_statusbar_height"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml
index f4c479ee9..26b1d809d 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml
@@ -46,7 +46,7 @@
android:layout_height="match_parent"
android:text="@string/btn_encrypt_share_file"
android:layout_weight="1"
- android:drawableRight="@drawable/ic_action_share"
+ android:drawableRight="@drawable/ic_share_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -63,7 +63,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_save"
+ android:src="@drawable/ic_save_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml
index fd7fd6672..67f17fa81 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml
@@ -15,7 +15,7 @@
android:layout_below="@id/toolbar_include"
android:id="@+id/content_frame"
android:fitsSystemWindows="true"
- android:layout_marginTop="-25dp"
+ android:layout_marginTop="@dimen/minus_statusbar_height"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml
index 83e2cf9ee..6f7b636e1 100644
--- a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml
@@ -42,7 +42,7 @@
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:text="@string/btn_share_encrypted_signed"
- android:drawableRight="@drawable/ic_action_share"
+ android:drawableRight="@drawable/ic_share_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:layout_weight="1" />
@@ -60,7 +60,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_copy"
+ android:src="@drawable/ic_content_copy_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
diff --git a/OpenKeychain/src/main/res/layout/file_dialog.xml b/OpenKeychain/src/main/res/layout/file_dialog.xml
index deefd0428..3a559c71c 100644
--- a/OpenKeychain/src/main/res/layout/file_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/file_dialog.xml
@@ -41,7 +41,7 @@
android:layout_margin="4dp"
android:contentDescription="@string/filemanager_title_open"
android:background="@drawable/button_rounded"
- android:src="@drawable/ic_action_collection"/>
+ android:src="@drawable/ic_folder_grey_24dp"/>
</LinearLayout>
<CheckBox
diff --git a/OpenKeychain/src/main/res/layout/file_list_entry.xml b/OpenKeychain/src/main/res/layout/file_list_entry.xml
index f6fde2447..fafdd1713 100644
--- a/OpenKeychain/src/main/res/layout/file_list_entry.xml
+++ b/OpenKeychain/src/main/res/layout/file_list_entry.xml
@@ -53,7 +53,7 @@
android:layout_alignParentRight="true"
android:paddingRight="16dip"
android:paddingLeft="16dip"
- android:src="@drawable/ic_action_cancel"
+ android:src="@drawable/ic_close_grey_24dp"
android:clickable="true"
android:layout_centerVertical="true"
style="@style/SelectableItem"/>
diff --git a/OpenKeychain/src/main/res/layout/file_list_entry_add.xml b/OpenKeychain/src/main/res/layout/file_list_entry_add.xml
index f2caab653..f2ee4079e 100644
--- a/OpenKeychain/src/main/res/layout/file_list_entry_add.xml
+++ b/OpenKeychain/src/main/res/layout/file_list_entry_add.xml
@@ -15,7 +15,7 @@
android:layout_height="match_parent"
android:layout_gravity="center"
android:text="@string/btn_add_files"
- android:drawableLeft="@drawable/ic_action_collection"
+ android:drawableLeft="@drawable/ic_folder_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center"/>
</FrameLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/first_time_activity.xml b/OpenKeychain/src/main/res/layout/first_time_activity.xml
index ba80214a6..bab9e2e27 100644
--- a/OpenKeychain/src/main/res/layout/first_time_activity.xml
+++ b/OpenKeychain/src/main/res/layout/first_time_activity.xml
@@ -38,7 +38,7 @@
android:layout_weight="1"
android:text="@string/first_time_import_key"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_collection"
+ android:drawableRight="@drawable/ic_folder_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
@@ -62,7 +62,7 @@
android:layout_weight="1"
android:text="@string/first_time_create_key"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_new_account"
+ android:drawableRight="@drawable/ic_key_plus_grey600_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
diff --git a/OpenKeychain/src/main/res/layout/import_keys_activity.xml b/OpenKeychain/src/main/res/layout/import_keys_activity.xml
index dcdd9a31a..6ac0b468c 100644
--- a/OpenKeychain/src/main/res/layout/import_keys_activity.xml
+++ b/OpenKeychain/src/main/res/layout/import_keys_activity.xml
@@ -14,7 +14,7 @@
<LinearLayout
android:layout_below="@id/toolbar_include"
android:fitsSystemWindows="true"
- android:layout_marginTop="-25dp"
+ android:layout_marginTop="@dimen/minus_statusbar_height"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
@@ -73,7 +73,7 @@
android:layout_height="match_parent"
android:text="@string/import_import"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_download"
+ android:drawableRight="@drawable/ic_file_download_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml
index 6f52e1938..a7234d848 100644
--- a/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml
@@ -29,7 +29,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_search"
+ android:src="@drawable/ic_search_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
@@ -46,7 +46,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_settings"
+ android:src="@drawable/ic_settings_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
diff --git a/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml
index b1056dab3..bde4dafc0 100644
--- a/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml
@@ -21,7 +21,7 @@
android:layout_height="match_parent"
android:text="@string/filemanager_title_open"
android:layout_weight="1"
- android:drawableRight="@drawable/ic_action_collection"
+ android:drawableRight="@drawable/ic_folder_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -38,7 +38,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_paste"
+ android:src="@drawable/ic_content_paste_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
diff --git a/OpenKeychain/src/main/res/layout/import_keys_list_item.xml b/OpenKeychain/src/main/res/layout/import_keys_list_item.xml
index bf9d33852..e0b19b608 100644
--- a/OpenKeychain/src/main/res/layout/import_keys_list_item.xml
+++ b/OpenKeychain/src/main/res/layout/import_keys_list_item.xml
@@ -73,7 +73,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:src="@drawable/status_signature_revoked_cutout_24px"
+ android:src="@drawable/status_signature_revoked_cutout_24dp"
android:padding="16dp" />
<TextView
diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml
index 65935f9c8..ea3426f90 100644
--- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml
@@ -70,7 +70,7 @@
android:id="@+id/fab_add_cloud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- fab:fab_icon="@drawable/ic_cloud_search_24px"
+ fab:fab_icon="@drawable/ic_cloud_search_24dp"
fab:fab_colorNormal="@color/primary"
fab:fab_colorPressed="@color/primary_dark"
fab:fab_title="Search Cloud"
diff --git a/OpenKeychain/src/main/res/layout/key_list_item.xml b/OpenKeychain/src/main/res/layout/key_list_item.xml
index 27444a260..595dcd77b 100644
--- a/OpenKeychain/src/main/res/layout/key_list_item.xml
+++ b/OpenKeychain/src/main/res/layout/key_list_item.xml
@@ -69,7 +69,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:src="@drawable/status_signature_revoked_cutout_24px"
+ android:src="@drawable/status_signature_revoked_cutout_24dp"
android:padding="16dp" />
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/keyspinner_item.xml b/OpenKeychain/src/main/res/layout/keyspinner_item.xml
index 757dae5be..45147e7b1 100644
--- a/OpenKeychain/src/main/res/layout/keyspinner_item.xml
+++ b/OpenKeychain/src/main/res/layout/keyspinner_item.xml
@@ -50,7 +50,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:src="@drawable/status_signature_revoked_cutout_24px"
+ android:src="@drawable/status_signature_revoked_cutout_24dp"
android:paddingLeft="16dp"
android:paddingRight="16dp" />
diff --git a/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step1.xml b/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step1.xml
index 606f56abe..9665f3e80 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step1.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step1.xml
@@ -133,7 +133,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_play_arrow_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step2.xml b/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step2.xml
index b54bab008..af5937067 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step2.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_dns_fragment_step2.xml
@@ -74,7 +74,7 @@
<ImageView
android:id="@+id/verify_image"
- android:src="@drawable/status_signature_unverified_cutout_24px"
+ android:src="@drawable/status_signature_unverified_cutout_24dp"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -176,7 +176,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_play_arrow_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step1.xml b/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step1.xml
index f94090f16..799de2997 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step1.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step1.xml
@@ -128,7 +128,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_play_arrow_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step2.xml b/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step2.xml
index 4db33121b..e726c48be 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step2.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_https_fragment_step2.xml
@@ -78,7 +78,7 @@
<ImageView
android:id="@+id/verify_image"
- android:src="@drawable/status_signature_unverified_cutout_24px"
+ android:src="@drawable/status_signature_unverified_cutout_24dp"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -180,7 +180,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_done_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step1.xml b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step1.xml
index a20e0d7ee..33db6ed5f 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step1.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step1.xml
@@ -120,7 +120,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_play_arrow_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml
index c81144029..3ae871f5a 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml
@@ -134,7 +134,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_play_arrow_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step3.xml b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step3.xml
index 81fd610ef..a37cf01cf 100644
--- a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step3.xml
+++ b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step3.xml
@@ -82,7 +82,7 @@
<ImageView
android:id="@+id/verify_image"
- android:src="@drawable/status_signature_unverified_cutout_24px"
+ android:src="@drawable/status_signature_unverified_cutout_24dp"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -184,7 +184,7 @@
android:layout_weight="1"
android:text="@string/btn_next"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_play"
+ android:drawableRight="@drawable/ic_done_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/linked_id_item_dns.xml b/OpenKeychain/src/main/res/layout/linked_id_item_dns.xml
index 36b40f30d..449947b4b 100644
--- a/OpenKeychain/src/main/res/layout/linked_id_item_dns.xml
+++ b/OpenKeychain/src/main/res/layout/linked_id_item_dns.xml
@@ -55,7 +55,7 @@
android:id="@+id/user_id_item_certified"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/status_signature_unverified_cutout_24px"
+ android:src="@drawable/status_signature_unknown_cutout_24dp"
android:layout_gravity="center_horizontal" />
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/linked_id_item_unknown.xml b/OpenKeychain/src/main/res/layout/linked_id_item_unknown.xml
index dcd46884d..269365eef 100644
--- a/OpenKeychain/src/main/res/layout/linked_id_item_unknown.xml
+++ b/OpenKeychain/src/main/res/layout/linked_id_item_unknown.xml
@@ -46,7 +46,7 @@
android:id="@+id/user_id_item_certified"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/status_signature_unverified_cutout_24px"
+ android:src="@drawable/status_signature_unverified_cutout_24dp"
android:layout_gravity="center_horizontal" />
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/log_display_item.xml b/OpenKeychain/src/main/res/layout/log_display_item.xml
index d3938aaf0..d35413185 100644
--- a/OpenKeychain/src/main/res/layout/log_display_item.xml
+++ b/OpenKeychain/src/main/res/layout/log_display_item.xml
@@ -32,7 +32,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/log_sub"
- android:src="@drawable/ic_action_view_as_list"
+ android:src="@drawable/ic_view_list_grey_24dp"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
diff --git a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml
index 2ca5199fd..d2e85633f 100644
--- a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml
@@ -1,16 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp"
+ android:paddingLeft="24dp"
+ android:paddingRight="24dp"
android:orientation="vertical">
<LinearLayout
+ android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:id="@+id/input">
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/passphrase_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ android:text="@string/enter_passphrase" />
<EditText
android:id="@+id/passphrase_passphrase"
@@ -26,11 +35,12 @@
</LinearLayout>
<LinearLayout
+ android:id="@+id/progress"
+ android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:id="@+id/progress"
- android:visibility="gone">
+ android:visibility="invisible">
<ProgressBar
style="?android:attr/progressBarStyle"
@@ -42,11 +52,10 @@
style="?android:attr/textAppearanceMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingLeft="8dp"
android:padding="4dp"
android:text="@string/label_unlock"
android:layout_gravity="center_vertical" />
</LinearLayout>
-</LinearLayout> \ No newline at end of file
+</RelativeLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/select_key_item.xml b/OpenKeychain/src/main/res/layout/select_key_item.xml
index 13f63d2ee..e12892aae 100644
--- a/OpenKeychain/src/main/res/layout/select_key_item.xml
+++ b/OpenKeychain/src/main/res/layout/select_key_item.xml
@@ -50,7 +50,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:src="@drawable/status_signature_revoked_cutout_24px"
+ android:src="@drawable/status_signature_revoked_cutout_24dp"
android:paddingLeft="16dp"
android:paddingRight="16dp" />
diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml
new file mode 100644
index 000000000..0336b51fd
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/toolbar_include"
+ android:elevation="4dp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <!--
+ We always have windowTranslucentStatus=true to get under the status bar.
+ Thus this ImageView is the part under the status bar!
+ -->
+ <ImageView
+ android:id="@+id/status_bar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/statusbar_height"
+ android:background="@color/android_orange_light" />
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_below="@+id/status_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?attr/actionBarSize"
+ android:background="@color/android_orange_light"
+ app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
+ tools:ignore="UnusedAttribute" />
+
+</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/upload_key_activity.xml b/OpenKeychain/src/main/res/layout/upload_key_activity.xml
index 19e37783b..6b7390b27 100644
--- a/OpenKeychain/src/main/res/layout/upload_key_activity.xml
+++ b/OpenKeychain/src/main/res/layout/upload_key_activity.xml
@@ -59,7 +59,7 @@
android:layout_height="match_parent"
android:text="@string/btn_export_to_server"
android:minHeight="?android:attr/listPreferredItemHeight"
- android:drawableRight="@drawable/ic_action_upload"
+ android:drawableRight="@drawable/ic_file_upload_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:clickable="true"
diff --git a/OpenKeychain/src/main/res/layout/view_cert_activity.xml b/OpenKeychain/src/main/res/layout/view_cert_activity.xml
index 0a6b46a93..08be4ab05 100644
--- a/OpenKeychain/src/main/res/layout/view_cert_activity.xml
+++ b/OpenKeychain/src/main/res/layout/view_cert_activity.xml
@@ -214,7 +214,7 @@
style="@style/SelectableItem"
android:text="@string/btn_view_cert_key"
android:layout_weight="1"
- android:drawableRight="@drawable/ic_action_person"
+ android:drawableRight="@drawable/ic_person_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml
index 1a45370a5..4dbd793ea 100644
--- a/OpenKeychain/src/main/res/layout/view_key_activity.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml
@@ -15,16 +15,21 @@
android:background="?attr/colorPrimary"
android:orientation="horizontal">
- <org.sufficientlysecure.keychain.ui.widget.AspectRatioImageView
+ <ImageView
android:id="@+id/view_key_photo"
- app:aspectRatioEnabled="true"
android:visibility="gone"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_below="@+id/status_bar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:src="@drawable/first_time_1" />
+ android:src="@drawable/ic_launcher"
+ android:baselineAlignBottom="false"
+ android:cropToPadding="false"
+ android:focusable="false"
+ android:adjustViewBounds="false"
+ android:layout_alignParentTop="false"
+ android:scaleType="centerCrop" />
<ImageView
android:id="@+id/status_bar"
@@ -34,6 +39,7 @@
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
+ android:background="@color/transparent"
android:layout_below="@+id/status_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -90,7 +96,7 @@
android:layout_height="64dp"
android:visibility="invisible"
style="?android:attr/borderlessButtonStyle"
- android:src="@drawable/ic_action_encrypt_file" />
+ android:src="@drawable/ic_action_encrypt_file_24dp" />
<ImageButton
android:id="@+id/view_key_action_encrypt_text"
@@ -98,7 +104,7 @@
android:layout_height="64dp"
android:visibility="invisible"
style="?android:attr/borderlessButtonStyle"
- android:src="@drawable/ic_action_encrypt_text" />
+ android:src="@drawable/ic_action_encrypt_text_24dp" />
<ImageButton
android:id="@+id/view_key_action_nfc"
@@ -114,7 +120,7 @@
android:id="@+id/view_key_status_image"
android:layout_width="96dp"
android:visibility="invisible"
- android:src="@drawable/status_signature_unverified_cutout_96px"
+ android:src="@drawable/status_signature_unverified_cutout_96dp"
android:layout_height="96dp"
android:layout_above="@id/toolbar2"
android:layout_alignParentRight="true"
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml
index a29c9fbee..b6679524f 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml
@@ -64,7 +64,7 @@
android:layout_height="?android:attr/listPreferredItemHeight"
android:clickable="true"
android:paddingRight="4dp"
- style="@style/SelectableItem"
+ style="?android:attr/borderlessButtonStyle"
android:orientation="horizontal">
<TextView
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml
index a6224a8d1..ec26b4a76 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml
@@ -40,7 +40,7 @@
android:text=""
android:layout_weight="1"
android:typeface="monospace"
- android:drawableRight="@drawable/ic_action_share"
+ android:drawableRight="@drawable/ic_share_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -57,7 +57,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_copy"
+ android:src="@drawable/ic_content_copy_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
@@ -114,7 +114,7 @@
android:layout_height="match_parent"
android:text="@string/key_view_action_share_with"
android:layout_weight="1"
- android:drawableRight="@drawable/ic_action_share"
+ android:drawableRight="@drawable/ic_share_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
@@ -131,7 +131,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_copy"
+ android:src="@drawable/ic_content_copy_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
@@ -171,7 +171,7 @@
style="@style/SelectableItem"
android:text="@string/key_view_action_upload"
android:layout_weight="1"
- android:drawableRight="@drawable/ic_action_upload"
+ android:drawableRight="@drawable/ic_file_upload_grey_24dp"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml
index f41109d84..28eef58a4 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml
@@ -6,16 +6,6 @@
android:orientation="horizontal"
android:singleLine="true">
- <ImageView
- android:id="@+id/subkey_item_status"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:src="@drawable/status_signature_revoked_cutout_24px"
- android:paddingLeft="8dp"
- android:layout_centerVertical="true"
- android:layout_alignParentStart="true" />
-
<FrameLayout
android:id="@+id/subkey_item_buttons"
android:layout_width="wrap_content"
@@ -26,7 +16,7 @@
<ImageView
android:id="@+id/subkey_item_edit_image"
- android:src="@drawable/ic_action_edit"
+ android:src="@drawable/ic_mode_edit_grey_24dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp" />
@@ -36,20 +26,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
- android:src="@drawable/ic_action_cancel"
+ android:src="@drawable/ic_close_grey_24dp"
style="@style/SelectableItem" />
</FrameLayout>
<LinearLayout
android:orientation="vertical"
- android:layout_toLeftOf="@id/subkey_item_buttons"
- android:layout_toRightOf="@id/subkey_item_status"
- android:layout_centerVertical="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_marginLeft="8dp"
- android:layout_marginRight="8dp">
+ android:layout_toLeftOf="@+id/subkey_item_status"
+ android:layout_toStartOf="@+id/subkey_item_status">
<LinearLayout
android:layout_width="match_parent"
@@ -71,7 +62,7 @@
android:id="@+id/subkey_item_ic_certify"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/key_flag_certify_24px"
+ android:src="@drawable/key_flag_certify_24dp"
android:layout_marginLeft="8dp"
android:layout_gravity="center_vertical" />
@@ -79,7 +70,7 @@
android:id="@+id/subkey_item_ic_sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/key_flag_sign_24px"
+ android:src="@drawable/key_flag_sign_24dp"
android:layout_marginLeft="8dp"
android:layout_gravity="center_vertical" />
@@ -87,7 +78,7 @@
android:id="@+id/subkey_item_ic_encrypt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/key_flag_encrypt_24px"
+ android:src="@drawable/key_flag_encrypt_24dp"
android:layout_marginLeft="8dp"
android:layout_gravity="center_vertical" />
@@ -95,7 +86,7 @@
android:id="@+id/subkey_item_ic_authenticate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/key_flag_authenticate_24px"
+ android:src="@drawable/key_flag_authenticate_24dp"
android:layout_marginLeft="8dp"
android:layout_gravity="center_vertical" />
@@ -127,4 +118,15 @@
</LinearLayout>
+ <ImageView
+ android:id="@+id/subkey_item_status"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="left|center_vertical"
+ android:src="@drawable/status_signature_revoked_cutout_24dp"
+ android:paddingLeft="8dp"
+ android:layout_centerVertical="true"
+ android:layout_toLeftOf="@+id/subkey_item_buttons"
+ android:layout_toStartOf="@+id/subkey_item_buttons" />
+
</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml
index 63c1ee70f..cd7a79663 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml
@@ -7,23 +7,6 @@
android:singleLine="true">
<LinearLayout
- android:id="@+id/user_id_item_certified_layout"
- android:layout_width="22dp"
- android:layout_height="wrap_content"
- android:layout_marginLeft="8dp"
- android:layout_gravity="center_vertical"
- android:orientation="vertical">
-
- <ImageView
- android:id="@+id/user_id_item_certified"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/status_signature_unverified_cutout_24px"
- android:layout_gravity="center_horizontal" />
-
- </LinearLayout>
-
- <LinearLayout
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_width="0dip"
@@ -57,11 +40,31 @@
</LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/user_id_item_certified_layout"
+ android:layout_width="22dp"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="16dp"
+ android:layout_marginRight="16dp"
+
+ android:layout_gravity="center_vertical"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@+id/user_id_item_certified"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/status_signature_unverified_cutout_24dp"
+ android:layout_gravity="center_horizontal" />
+
+ </LinearLayout>
+
<ImageView
android:id="@+id/user_id_item_edit_image"
android:layout_width="wrap_content"
android:layout_height="match_parent"
- android:src="@drawable/ic_action_edit"
+ android:src="@drawable/ic_mode_edit_grey_24dp"
android:padding="8dp"
android:layout_gravity="center_vertical" />
@@ -70,7 +73,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
- android:src="@drawable/ic_action_cancel"
+ android:src="@drawable/ic_close_grey_24dp"
android:layout_gravity="center_vertical"
style="@style/SelectableItem" />
diff --git a/OpenKeychain/src/main/res/menu/key_view.xml b/OpenKeychain/src/main/res/menu/key_view.xml
index 37a926e7c..3d1b02958 100644
--- a/OpenKeychain/src/main/res/menu/key_view.xml
+++ b/OpenKeychain/src/main/res/menu/key_view.xml
@@ -22,7 +22,7 @@
<item
android:id="@+id/menu_key_view_delete"
- android:icon="@drawable/ic_action_discard"
+ android:icon="@drawable/ic_delete_grey_24dp"
app:showAsAction="never"
android:title="@string/menu_delete_key" />
diff --git a/OpenKeychain/src/main/res/menu/log_display.xml b/OpenKeychain/src/main/res/menu/log_display.xml
new file mode 100644
index 000000000..7a2f77b79
--- /dev/null
+++ b/OpenKeychain/src/main/res/menu/log_display.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/menu_log_display_export_log"
+ android:icon="@drawable/ic_save_white_24dp"
+ android:title="@string/menu_export_log"
+ app:showAsAction="ifRoom|withText" />
+
+</menu>
diff --git a/OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-bg/help_wot.html b/OpenKeychain/src/main/res/raw-bg/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-bg/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html
deleted file mode 100644
index e40da69bf..000000000
--- a/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Jak přijmout klíče</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Podržte dvě zařízení zády k sobě (musí se téměř dotýkat) a ucítíte vibraci.</li>
-<li>Po tom co ucítíte vibraci, uvidíte že se obsah na displeji zařízení vašeho partnera změní na objekt typu karta s animací na pozadí připomínající rychlost warpu ze Star Treku.</li>
-<li>Tapněte na kartu a obsah se nahraje do zařízení.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-cs/help_wot.html b/OpenKeychain/src/main/res/raw-cs/help_wot.html
deleted file mode 100644
index 29b4fc420..000000000
--- a/OpenKeychain/src/main/res/raw-cs/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Síť důvěry</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Podpora v OpenKeychain</h2>
-<p>Podpora pro síť důvěry v OpenKeychain je teprve ve svých začátcích. Tento stav se bude velmi měnit v dalších verzích aplikace.</p>
-
-<h2>Model důvěry</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifikace klíčů</h2>
-<p>Podpora pro certifikaci klíčů je dostupná a uživatelská ID mohou být certifikována jednotlivě. Ještě není možné určovat úroveň důvěryhodnosti nebo vytvářet lokální a jiné speciální typy certifikátů.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html
deleted file mode 100644
index 3f1b9e22d..000000000
--- a/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Wie kann man Schlüssel empfangen</h2>
-<ol>
-<li>Gehe zu den Schlüsseln deiner Partner und öffne den Schlüssel welcher geteilt werden soll.</li>
-<li>Halten Sie die zwei Geräte rückseitig aneinander (sodass sie sich fast berühren) und es wird vibrieren</li>
-<li>Nachdem es vibriert sehen sie wie sich der Inhalt des Gerätes ihres Bekannten von einer Warp-Geschwindigkeit Animation umgeben wird</li>
-<li>Wenn sie die Karte antippen, wird der Inhalt auf ihr Gerät übertragen</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-de/help_wot.html b/OpenKeychain/src/main/res/raw-de/help_wot.html
deleted file mode 100644
index ad33ddbb1..000000000
--- a/OpenKeychain/src/main/res/raw-de/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>Das Web of Trust beschreibt den Teil von PGP der sich mit der Erstellung und dem Verwalten von Zertifikaten beschäftigt. Nutzer können so im Auge behalten zu wem ein bestimmter Public Key gehört, sowie diese Information teilen: Um die Privatsphäre von verschlüsselter Kommunikation zu gewährleisten ist es essentiell zu wissen ob der Public Key den man zum Verschlüsseln nutzt zu der Person gehört, die man erwartet.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>Es gibt nur eine rudimentäre Unterstützung für das Web of Trust in OpenKeychain. Am Web of Trust System wird kontinuierlich gearbeitet und es wird in den kommenden Version überarbeitet.</p>
-
-<h2>Vertrauens-Modell</h2>
-<p>Die Bewertung des Vertrauens basiert auf der Grundannahme, dass alle Schlüssel zu denen ein privater Schlüssel vorhanden ist, vertrauenswürdig sind. Öffentliche Schlüssel welche mindestens eine User ID beinhalten, die von einem Trusted Key verifiziert wurden, werden mit einem grünen Punkt in der Schlüsselliste gekennzeichnet. Es ist (noch) nicht möglich bestimmte Trust Level für Zertifikate anderer bekannter öffentlicher Schlüssel festzulegen.</p>
-
-<h2>Schlüssel beglaubigen</h2>
-<p>Die Unterstützung für die Zertifizierung von Schlüsseln ist vorhanden. Nutzer IDs können separat zertifiziert werden. Es ist jedoch sowohl noch nicht möglich das Vertrauenslevel festzulegen, als auch lokale oder andere spezielle Zertifikate zu erstellen.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html
deleted file mode 100644
index b1c29183f..000000000
--- a/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Cómo recibir las claves</h2>
-<ol>
-<li>Vaya a las claves de socios y abra la clave que quiera compartir.</li>
-<li>Mantén los dos dispositivos de con ambos reversos juntos (tienen que estar casi en contacto) y notarás una vibración.</li>
-<li>Después de que vibre, verás el contenido en el dispositivo de tu compañero convertirse en una especie de ficha con una animación de Star Trek de fondo.</li>
-<li>Toca la ficha y el contenido se cargará en tu dispositivo.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-es/help_wot.html b/OpenKeychain/src/main/res/raw-es/help_wot.html
deleted file mode 100644
index 3af2cae10..000000000
--- a/OpenKeychain/src/main/res/raw-es/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Anillo de confianza</h2>
-<p>El anillo de confianza (web of trust) describe la parte de OpenPGP que se encarga de la creación y registro de las certificaciones. Proporciona mecanismos para ayudar al usuario a llevar un seguimiento de a quién pertenece una clave pública, y compartir esta información con otros. Para asegurar la privacidad de la comunicación cifrada, es esencial saber que la clave pública con la que usted la cifra pertenece a la persona que usted cree.</p>
-
-<h2>Soporte en OpenKeychain</h2>
-<p>Sólo hay soporte básico para el anillo de confianza (web of trust) en OpenKeychain. Esta es una pesada tarea que tenemos en marcha sujeta a cambios en versiones posteriores.</p>
-
-<h2>Modelo de confianza</h2>
-<p>La evaluación de la confianza está basada en la simple asunción de que todas las claves que tienen disponibles claves privadas (secretas) son de confianza. Las claves públicas que contienen al menos una identificación de usuario certificada por una clave de confianza serán marcadas con un punto verde en los listados de claves. No es posible (aún) especificar niveles de confianza para certificados de otras claves públicas conocidas.</p>
-
-<h2>Certificando claves</h2>
-<p>Está disponible el soporte para certificación de clave, y las identificaciones de usuario pueden ser certificadas individualmente. No es posible aún especificar el nivel de confianza o crear certificados locales y otros tipos especiales de certificados.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-et/help_wot.html b/OpenKeychain/src/main/res/raw-et/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-et/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-eu/help_wot.html b/OpenKeychain/src/main/res/raw-eu/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-eu/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-fi/help_wot.html b/OpenKeychain/src/main/res/raw-fi/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-fi/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html
deleted file mode 100644
index 374975b73..000000000
--- a/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Comment recevoir des clefs</h2>
-<ol>
-<li>Allez aux clefs de votre partenaire et ouvrez la clef que vous voulez partager.</li>
-<li>Tenir les deux appareils dos à dos (se touchant presque) et une vibration sera ressentie.</li>
-<li>Après la vibration, le contenu de l'appareil de votre partenaire deviendra un objet en forme de carte avec une animation à la Star Trek en arrière-plan.</li>
-<li>Toquer la carte et le contenu se chargera alors sur votre appareil.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-fr/help_wot.html b/OpenKeychain/src/main/res/raw-fr/help_wot.html
deleted file mode 100644
index 6763b8969..000000000
--- a/OpenKeychain/src/main/res/raw-fr/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Toile de confiance</h2>
-<p>La toile de confiance décrit la partie d'OpenPGP qui s'occupe de la création et du suivi des certifications. Elle fournit des mécanismes pour aider l'utilisateur à suivre à qui appartient une clef publique, et partager cette information avec d'autres. Pour assurer la confidentialité d'une communication chiffrée, il est essentiel de savoir que la clef publique vers laquelle vous chiffrez appartient à la personne à qui vous croyez qu'elle appartient.</p>
-
-<h2>Prise en charge dans OpenKeychain</h2>
-<p>OpenKeychain offre seulement une prise en charge de base de la toile de confiance. Un travail important est en cours et ceci pourrait changer dans les versions à venir.</p>
-
-<h2>Modèle de confiance</h2>
-<p>L'évaluation de la confiance est fondée sur la simple supposition que toutes les clefs proposant des clefs secrètes sont de confiance. Les clefs publiques contenant au moins un ID utilisateur certifié par une clef de confiance seront marquées par un point vert dans le listage des clefs. Il n'est pas (encore) possible de spécifier les niveaux de confiance pour les certificats d'autres clefs publiques inconnues.</p>
-
-<h2>Certifications des clefs</h2>
-<p>La prise en charge de la certification des clefs est proposée et les ID utilisateurs peuvent être certifiées individuellement. Il n'est pas encore possible de spécifier le niveau de confiance ou de créer des certificats locaux et d'autres types spéciaux.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-is/help_wot.html b/OpenKeychain/src/main/res/raw-is/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-is/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html
deleted file mode 100644
index f6bf27fe8..000000000
--- a/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Come ricevere le chiavi</h2>
-<ol>
-<li>Vai alle chiavi dei contatti dei tuoi partner e apri la chiave che si desidera condividere.</li>
-<li>Mantieni i due dispositivi vicini (devono quasi toccarsi) e sentirai una vibrazione.</li>
-<li>Dopo che ha vibrato, vedrai il contenuto del tuo dispositivo diventare come una scheda e nello sfondo apparirà una animazione come la propulsione a curvatura di Star Trek.</li>
-<li>Tocca la scheda e il contenuto dopo si trasferira' nel dispositivo dell'altra persona.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-it/help_wot.html b/OpenKeychain/src/main/res/raw-it/help_wot.html
deleted file mode 100644
index 09b38199b..000000000
--- a/OpenKeychain/src/main/res/raw-it/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Rete di Fiducia</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Supporto in OpenKeychain</h2>
-<p>Esiste solo un supporto di base per le Reti di Fiducia in OpenKeychain. Questo è un grosso lavoro in corso e soggetto a modifiche nei prossimi rilasci.</p>
-
-<h2>Modello di Fiducia</h2>
-<p>La valutazione di fiducia si basa sul semplice presupposto che tutte le chiavi che hanno chiavi segrete disponibili sono attendibili. Le chiavi pubbliche che contengono almeno un id utente certificato da una chiave di fiducia saranno contrassegnati con un punto verde negli elenchi principali. Non è (ancora) possibile specificare livelli di attendibilità per i certificati di altre chiavi pubbliche conosciute.</p>
-
-<h2>Chiavi di certificazione</h2>
-<p>Il supporto per la certificazione chiave è disponibile, e gli id utenti possono essere certificati singolarmente. Non è ancora possibile specificare il livello di fiducia o creare certificati locali e altro di tipo speciale.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html
deleted file mode 100644
index c19280fd1..000000000
--- a/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>鍵の受信方法</h2>
-<ol>
-<li>パートナーの連絡先に行き、共有したい連絡先を開きます。</li>
-<li>2つのデバイスを背中合せ(ほとんどすべてのタッチ方法)にしてバイブを感じるまで保持しておいてください。</li>
-<li>バイブの後、相手のデバイスでスタートレック風のバックグラウンドアニメーションしているカード風のコンテンツを見ると思います。</li>
-<li>カードをタップしコンテンツをあなたのデバイスにロードします。</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-ja/help_wot.html b/OpenKeychain/src/main/res/raw-ja/help_wot.html
deleted file mode 100644
index e4db99bb8..000000000
--- a/OpenKeychain/src/main/res/raw-ja/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>信頼の輪</h2>
-<p>信頼の輪はOpenPGPの一面で証明の作成とその維持の一面を説明します。ユーザが公開鍵に属する者の追跡を維持し、他のユーザーとその情報を共有する手助けになるメカニズムを提供します。暗号化通信のプライバシーを確保するためには、あなたが暗号化したいという相手の公開鍵が必要な要素となります。</p>
-
-<h2>OpenKeychainでサポート</h2>
-<p>OpenKeychainで信頼の輪の基本のみサポートされます。とても重い作業を進めており今後やってくるリリースにおいて状態が変更されていきます。</p>
-
-<h2>信頼モデル</h2>
-<p>信頼の評価はシンプルな仮定に基づいています、それはすべての鍵は秘密鍵が信頼できるというものです。公開鍵は信頼された鍵で検証された最低1つのユーザIDを含んでおり、それは鍵リストにおいて、緑でマークされます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものには(まだ)しません。</p>
-
-<h2>鍵の検証</h2>
-<p>鍵検証のサポートが提供されており、またユーザIDは個別に検証できます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものにはしないローカルもしくは他の特別なタイプの証明です。</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html
deleted file mode 100644
index 4caf75748..000000000
--- a/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Hoe sleutels te ontvangen</h2>
-<ol>
-<li>Ga naar je partner's sleutels en open de sleutel die je wil delen.</li>
-<li>Houd de twee toestellen met de achterkant tegen elkaar (ze moeten elkaar bijna aanraken) en je zal een trilling voelen.</li>
-<li>Nadat het trilt zal je de inhoud op je partner's toestel in een soort kaart zien veranderen met Star Trek warp snelheid-eruitziende animatie op de achtergrond.</li>
-<li>Druk op de kaart en de inhoud zal dan laden op het toestel.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-nl/help_wot.html b/OpenKeychain/src/main/res/raw-nl/help_wot.html
deleted file mode 100644
index 4c72a875c..000000000
--- a/OpenKeychain/src/main/res/raw-nl/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web van Vertrouwen</h2>
-<p>Het Web van Vertrouwen beschrijft het deel van OpenPGP dat te maken heeft met aanmaken en boekhouden van certificaten. Het voorziet van mechanismes zodat de gebruiker bij kan houden van aan wie een publieke sleutel toebehoort, en deze informatie met anderen kan delen; om de privacy van versleutelde communicatie te verzekeren, is het essentiëel om te weten dat de publieke sleutel die je versleutelt, toebehoort aan de persoon aan wie je denkt dat het toebehoort.</p>
-
-<h2>Ondersteuning in OpenKeychain</h2>
-<p>Er is alleen basisondersteuning voor Web van Vertrouwen in OpenKeychain. Dit is een zware 'werk in uitvoering' en onderwerp voor veranderingen in toekomstige releases.</p>
-
-<h2>Vertrouwensmodel</h2>
-<p>Vertrouwensevaluatie is gebaseerd om de simpele aanname dat alle sleutels die beschikbare geheime sleutels hebben, vertrouwd zijn. Publieke sleutels die minstens een gebruikers-ID bevatten, gecertificeerd door een vertrouwde sleutel, zullen gemarkeerd worden met een groene stip in de sleutel lijsten. Het is (nog) niet mogelijk om vertrouwen niveaus voor certificaten van andere bekende publieke sleutels te specifiëren.</p>
-
-<h2>Bezig met certificeren van sleutels&lt;br&gt;</h2>
-<p>Ondersteuning voor sleutelcertificatie is beschikbaar, en gebruikers-ID's kunnen individueel gecertificeerd worden. Het is nog niet mogelijk om het niveau van vertrouwen te specifiëren om locale en andere speciale typen van certificaten te maken.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html
deleted file mode 100644
index 8d42a8261..000000000
--- a/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Jak odbierać klucze</h2>
-<ol>
-<li>Idź to kluczy swoich partnerów i otwórz klucz którym chcesz się podzielić.</li>
-<li>Przytrzymaj oba urządzenia tyłem do siebie (powinny się niemal dotykać) aż poczujesz wibrację.</li>
-<li>Po zakończeniu wibracji zobaczysz, że zawartość urządzenia partnera zamienia się w obiekt zbliżony do wizytówki, z animacją rodem ze Star Treka w tle.</li>
-<li>Dotknij wizytówkę, a jej zawartość zostanie wysłana na Twoje urządzenie.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-pl/help_wot.html b/OpenKeychain/src/main/res/raw-pl/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-pl/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-pt/help_wot.html b/OpenKeychain/src/main/res/raw-pt/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-pt/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html
deleted file mode 100644
index 966fb554a..000000000
--- a/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-ro/help_wot.html b/OpenKeychain/src/main/res/raw-ro/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-ro/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html
deleted file mode 100644
index fcf55cdaf..000000000
--- a/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Как обменяться ключами</h2>
-<ol>
-<li>Нажмите и удерживайте ключ, который вы хотите передать.</li>
-<li>Поднесите оба устройства вплотную обратными сторонами (до полного касания). Вы почувствуете небольшую вибрацию.</li>
-<li>Как только устройства завибрируют, на экране появится карточка с передаваемым содержимым.</li>
-<li>Нажмите на карточку, что бы передать данные (ключи) с одного устройства на другое.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-ru/help_wot.html b/OpenKeychain/src/main/res/raw-ru/help_wot.html
deleted file mode 100644
index 7fbde44d3..000000000
--- a/OpenKeychain/src/main/res/raw-ru/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Сеть доверия (WoT)</h2>
-<p>Сеть доверия (The Web of Trust) предоставляет механизм заверения ключей посредством присоединения и распространения информации о выполненной сертификации. Для гарантии безопасного зашифрованного общения крайне важно не сомневаться, что владельцем ключа является ваш собеседник.</p>
-
-<h2>Поддержка в OpenKeychain</h2>
-<p>В настоящее время реализованы только базовые возможности WoT. Работа в самом разгаре и в будущих версиях OpenKeychain будут появляться дополнительные возможности.</p>
-
-<h2>Модель доверия</h2>
-<p>Проверка доверия основана на простом принципе, что если доступен секретный ключ, то доверие к нему абсолютное. Однако, публичные должны содержать подписи кого-то, кому вы доверяете, что бы подпись, сделанная таким ключом, была отмечена зелёным индикатором. К сожалению, (пока) нельзя определять степень доверия к другим известным публичным ключам.</p>
-
-<h2>Сертификация ключей</h2>
-<p>Поддержка сертификации ключей уже реализована, и Вы можете сертифицировать отдельные ID пользователя. Пока нельзя выбирать степень доверия, создавать локальные или специальные типы сертификатов.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html
deleted file mode 100644
index 62599edc2..000000000
--- a/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Kako pridobiti ključe</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>S hrbtoma približajte dve napravi (vašo ter vašega partnerja - morata se skoraj dotikati) in začutili boste vibracijo.</li>
-<li>Po vibraciji se bo vsebina na napravi vašega partnerja spremenila v vizitki podoben objekt s 'Star Trek' animacijo v ozadju.</li>
-<li>Tapnite vizitko in njena vsebnina se bo prenesla na vašo napravo.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-sl/help_wot.html b/OpenKeychain/src/main/res/raw-sl/help_wot.html
deleted file mode 100644
index 224110e18..000000000
--- a/OpenKeychain/src/main/res/raw-sl/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Omrežje zaupanja</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Podpora v OpenKeychain</h2>
-<p>OpenKeychain ponuja zgolj osnovno podporo za 'Omrežje zaupanja'. V prihodnjih različicah bomo to podporo še nadgrajevali in izboljševali.</p>
-
-<h2>Model zaupanja</h2>
-<p>Ocena zaupanja temelji na predpostavki, da so vsi ključi, ki vsebujejo tudi zasebne ključe, vredni zaupanja. Javni ključi, ki vsebujejo vsaj en uporabniški ID, ki je overjen z zaupanja vrednim ključem, so na seznamu ključev označeni z zeleno piko. Zaenkrat (še) ni možno natančneje določiti stopnje zaupanja potrdil drugih znanih javnih ključev.</p>
-
-<h2>Overjanje ključev</h2>
-<p>Overjanje ključev je na voljo. Uporabniške ID-je ključev overjamo individualno. Zaenkrat ni možno natančneje določiti stopnje zaupanja ali ustvarjati lokalne ali druge posebne vrste potrdil.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html
deleted file mode 100644
index bef6f591e..000000000
--- a/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Како примити кључеве</h2>
-<ol>
-<li>Идите у кључеве вашег другара и отворите кључ којег желите да поделите.</li>
-<li>Држите оба уређаја леђа о леђа (треба да се скоро додирују) и осетићете вибрацију.</li>
-<li>Након вибрације видећете да се садржај на уређају вашег другара претвара у нешто што личи на картицу са анимацијом сличном ворп брзини из Звезданих Стаза у позадини.</li>
-<li>Додирните картицу и садржај ће се потом учитати на вашем уређају.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-sr/help_wot.html b/OpenKeychain/src/main/res/raw-sr/help_wot.html
deleted file mode 100644
index 713b3e331..000000000
--- a/OpenKeychain/src/main/res/raw-sr/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Веб Поверења</h2>
-<p>Веб Поверења описује део ОпенПГП-а који се бави прављењем и спремањем сертификата. Пружа механизме који помажу кориснику у праћењу коме јавни кључ припада и дељењу ове информације са осталима; да би се осигурала приватност шифроване комуникације, нужно је знати да јавни кључ на који шифрујете припада особи којој и мислите да припада.</p>
-
-<h2>Подршка у Отвореном кључарнику</h2>
-<p>Постоји само основна подршка за Веб поверења у Отвореном кључарнику. Ово је велики посао у току и подложан променама у наредним издањима.</p>
-
-<h2>Модел поверења</h2>
-<p>Евалуација поверења се заснива на једноставној претпоставци да су сви кључеви који имају доступне тајне кључеве, од поверења. Јавни кључеви који садрже најмање један кориснички ид оверен кључем од поверења биће означени зеленом тачком у исписима кључева. Није (још) могуће одредити нивое поверења за сертификате других познатих јавних кључева.</p>
-
-<h2>Оверавање кључева</h2>
-<p>Подршка за оверу кључева је доступна, и кориснички ид-ови могу бити оверавани појединачно. Још није могуће одредити ниво поверења или направити локалне и друге посебне врсте сертификата.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html
deleted file mode 100644
index 4e940a398..000000000
--- a/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Hur man tar emot nycklar</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Håll de två enheternas baksidor mot varandra (de måste nästan vidröras) och du känner av en vibration.</li>
-<li>Efter vibrationen kommer du att se innehållet på din partners enhet omvandlas till ett kortliknande föremål och en animation i bakgrunden som ser ut som Star Treks warp speed.</li>
-<li>Tryck på kortet och innehållet kommer att laddas på den andra personens enhet.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-sv/help_wot.html b/OpenKeychain/src/main/res/raw-sv/help_wot.html
deleted file mode 100644
index 68a2e3997..000000000
--- a/OpenKeychain/src/main/res/raw-sv/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Tillitsnät</h2>
-<p>Tillitsnätet beskriver den del av OpenPGP som handlar om hur man skapar och bokför certifieringar. Det gör det möjligt för användaren att hålla reda på vem en publik nyckel tillhör, och dela denna information med andra; för att försäkra sig om integriteten i krypterad kommunikation är det avgörande att veta att den publika nyckel du krypterar till tillhör den person du tror att den gör.</p>
-
-<h2>Stöd i OpenKeychain</h2>
-<p>Endast grundläggande stöd för tillitsnät finns i OpenKeychain. Arbetet med funktionen pågår och den kan komma att ändras i kommande versioner.</p>
-
-<h2>Tillitsmodell</h2>
-<p>Värderingen av tillit utgår från det enkla antagandet att alla nycklar som har en privat nyckel är tillförlitliga. Publika nycklar som innehåller åtminstone ett användar-ID certifierat av en tillförlitlig nyckel kommer att ha en grön prick i nyckellistorna. Det är (ännu) inte möjligt att ange nivån av tillit för andra kända publika nycklars certifikat.</p>
-
-<h2>Certifiera nycklar</h2>
-<p>Stöd för nyckelcertifiering finns, och enskilda användar-ID:n kan certifieras. Det är ännu inte möjligt att ange nivån av tillit eller skapa ett lokalt eller andra typer av certifikat.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html
deleted file mode 100644
index 49f79e157..000000000
--- a/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Anahtarlar nasıl alınır</h2>
-<ol>
-<li>Eşleşecek cihazın anahtarlarına girin ve paylaşmak istediğiniz anahtarı açın.</li>
-<li>İki cihazı arka arkaya tutun (neredeyse temas edecek şekilde) ve bir titreşim hissedeceksiniz.</li>
-<li>Titreşimden sonra içeriğin eşleşecek cihazda arkaplanında Star Trek ışınlanma animasyonu olan kart'a benzer bir objeye dönüştüğünü göreceksiniz.</li>
-<li>Kart'a tıklayın ve içerik sizin cihazınıza yüklensin.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-tr/help_wot.html b/OpenKeychain/src/main/res/raw-tr/help_wot.html
deleted file mode 100644
index f2282908b..000000000
--- a/OpenKeychain/src/main/res/raw-tr/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>OpenKeychain Desteği</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Güven Modeli</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Anahtar Tasdikleme</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html
deleted file mode 100644
index fb4698b7f..000000000
--- a/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Як обмінятися ключами</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Піднесіть обидва пристрої впритул зворотними сторонами (до повного торкання). Ви відчуєте невелику вібрацію.</li>
-<li>Після вібрації пристроїв на екрані з'явиться картка з передаваним вмістом.</li>
-<li>Натисніть на картку, що б передати дані з одного пристрою на інший.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-uk/help_wot.html b/OpenKeychain/src/main/res/raw-uk/help_wot.html
deleted file mode 100644
index 669aa0649..000000000
--- a/OpenKeychain/src/main/res/raw-uk/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Мережа довіри</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Підтримка у OpenKeychain</h2>
-<p>Наразі реалізовані тільки базові можливості WoT. Робота в самому розпалі, і в майбутніх версіях OpenKeychain будуть з'являтися додаткові можливості.</p>
-
-<h2>Модель довіри</h2>
-<p>Перевірка довіри заснована на простому принципі, що якщо доступний секретний ключ, то довіра до нього абсолютна. Однак, публічні повинні містити підписи когось, кому ви довіряєте, що б підпис, зроблений таким ключем, був відзначений зеленим індикатором. На жаль, (поки що) не можна визначати ступінь довіри до інших відомих публічних ключів.</p>
-
-<h2>Сертифікація ключів</h2>
-<p>Підтримка сертифікації ключів вже реалізована, і Ви можете сертифікувати окремі ID користувача. Наразі не можна вибирати ступінь довіри, створювати локальні або спеціальні типи сертифікатів.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html
deleted file mode 100644
index f789438a7..000000000
--- a/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>使用NFC接收和分享金鑰</h2>
-<ol>
-<li>找到並打開你要分享的金鑰。</li>
-<li>將裝置背對背輕靠,直到感覺到震動。</li>
-<li>震動後會發現畫面變成卡片狀,並且背景帶有Star Trek的特效。</li>
-<li>輕觸畫面,內容將顯示在對方的畫面上。</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html
deleted file mode 100644
index 0db0d354f..000000000
--- a/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>信任網</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>OpenKeychain的支援狀況</h2>
-<p>目前OpenKeychain對信任網只有基本程度的支援。這是一件大工程,有任何進展將隨時發佈。</p>
-
-<h2>信任模式</h2>
-<p>信用評價基於一個前提:所有帶有密鑰的金鑰都是可以信任的。所有可信任金鑰簽署過的公鑰,會在清單裡被標上一個綠圓點。目前並不支援指定其他公鑰的信任等級。</p>
-
-<h2>金鑰認證</h2>
-<p>金鑰認證是支援的,而且每個身份可以個別進行認證。然而,目前並不支援指定簽署的信任等級與建立本機或其他形式的認證。</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html
deleted file mode 100644
index 3f08fa6a2..000000000
--- a/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>使用NFC功能接收和分享密钥</h2>
-<ol>
-<li>选择并打开你想要分享的密钥。</li>
-<li>将两部手机背面接触,之后会感受到震动。</li>
-<li>震动后会发现界面变成卡片状,并有Star Trek 般的特效。</li>
-<li>轻触卡片,内容即可显示。</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw-zh/help_wot.html b/OpenKeychain/src/main/res/raw-zh/help_wot.html
deleted file mode 100644
index 2a551f79c..000000000
--- a/OpenKeychain/src/main/res/raw-zh/help_wot.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-<head></head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw/help_about.html b/OpenKeychain/src/main/res/raw/help_about.html
index 1933a9225..6c034cc21 100644
--- a/OpenKeychain/src/main/res/raw/help_about.html
+++ b/OpenKeychain/src/main/res/raw/help_about.html
@@ -35,17 +35,19 @@ And don't add newlines before or after p tags because of transifex -->
<h2>Libraries</h2>
<ul>
-<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Library v4</a> (Apache License v2)</li>
-<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Library v7 'appcompat'</a> (Apache License v2)</li>
+<li><a href="http://rtyley.github.com/spongycastle/">SpongyCastle</a> (MIT X11 License)</li>
+<li><a href="https://github.com/SafeSlingerProject/exchange-android">SafeSlinger Exchange library</a> (MIT License)</li>
+<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Libraries</a> (Apache License v2)</li>
<li><a href="https://github.com/timbray/KeybaseLib">KeybaseLib</a> (Apache License v2)</li>
-<li><a href="https://github.com/JohnPersano/SuperToasts">SuperToasts</a> (Apache License v2)</li>
<li><a href="https://github.com/splitwise/TokenAutoComplete">TokenAutoComplete</a> (Apache License v2)</li>
<li><a href="https://github.com/rtreffer/minidns">MiniDNS</a> (Apache License v2)</li>
<li><a href="https://github.com/emilsjolander/StickyListHeaders">StickyListHeaders</a> (Apache License v2)</li>
-<li><a href="http://code.google.com/p/zxing/">ZXing</a> (Apache License v2)</li>
-<li><a href="http://rtyley.github.com/spongycastle/">SpongyCastle</a> (MIT X11 License)</li>
-<li><a href="https://github.com/dschuermann/html-textview">HtmlTextView</a> (Apache License v2)</li>
-<li><a href="https://github.com/SafeSlingerProject/exchange-android">SafeSlinger Exchange library</a> (MIT License)</li>
+<li><a href="https://github.com/zxing/zxing">ZXing</a> (Apache License v2)</li>
+<li><a href="https://github.com/journeyapps/zxing-android-embedded">ZXing Android Minimal</a> (Apache License v2)</li>
+<li><a href="https://github.com/jpardogo/PagerSlidingTabStrip">PagerSlidingTabStrip (Material Design)</a> (Apache License v2)</li>
+<li><a href="https://github.com/neokree/MaterialNavigationDrawer">MaterialNavigationDrawer</a> (Apache License v2)</li>
+<li><a href="https://github.com/nispok/snackbar">Snackbar</a> (MIT License)</li>
+<li><a href="https://github.com/futuresimple/android-floating-action-button">FloatingActionButton</a> (Apache License v2)</li>
</ul>
</body>
</html>
diff --git a/OpenKeychain/src/main/res/raw/help_certification.html b/OpenKeychain/src/main/res/raw/help_certification.html
new file mode 100644
index 000000000..8228a4ac1
--- /dev/null
+++ b/OpenKeychain/src/main/res/raw/help_certification.html
@@ -0,0 +1,32 @@
+<!-- Maintain structure with headings with h2 tags and content with p tags.
+This makes it easy to translate the values with transifex!
+And don't add newlines before or after p tags because of transifex -->
+<html>
+<head>
+</head>
+<body>
+
+<h2>Key Confirmation</h2>
+Without confirmation, you cannot be sure if a key really corresponds to a specific person.
+The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC.
+To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys.
+
+<h2>Key Status</h2>
+<p><img src="status_signature_verified_cutout_24dp"/><br/>Confirmed: You have already confirmed this key, e.g., by scanning the QR Code.
+<br/><img src="status_signature_unverified_cutout_24dp"/><br/>Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person.
+<br/><img src="status_signature_expired_cutout_24dp"/><br/>Expired: This key is no longer valid. Only the owner can extend its validity.
+<br/><img src="status_signature_revoked_cutout_24dp"/><br/>Revoked: This key is no longer valid. It has been revoked by its owner.</p>
+
+<h2>Advanced Information</h2>
+<p>A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard.
+This certification is a <a href="http://tools.ietf.org/html/rfc4880#section-5.2.1">"generic certification (0x10)"</a> described in the standard by:
+"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID."</p>
+
+<p>Traditionally, certifications (often with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust.
+Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust.
+We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go".
+We also do not implement (potentially transitive) trust signatures or any other internal trust model.
+Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings.</p>
+
+</body>
+</html>
diff --git a/OpenKeychain/src/main/res/raw/help_faq.html b/OpenKeychain/src/main/res/raw/help_faq.html
deleted file mode 100644
index 094065909..000000000
--- a/OpenKeychain/src/main/res/raw/help_faq.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!-- Maintain structure with headings with h2 tags and content with p tags.
-This makes it easy to translate the values with transifex!
-And don't add newlines before or after p tags because of transifex -->
-<html>
-<head>
-</head>
-<body>
-<h2>How can I specify connection port for Keyserver?</h2>
-<p>Add a new Keyserver (or modify existing one) by going to Preferences -> General -> Keyservers. Enter the port number after the Keyserver address and preceded it by a colon. For example, "p80.pool.sks-keyservers.net:80" (without quotation marks) means that server "p80.pool.sks-keyservers.net" is working on a port 80.</p>
-<p>Default connection port is 11371 and it doesn't need to be specified.</p>
-
-<h2>A wrong primary user id is shown when searching on a Keyserver</h2>
-<p>Unfortunately, this is a bug in the SKS Keyserver software. Its machine-readable output returns the user ids in an arbitrary order. Read the <a href="https://bitbucket.org/skskeyserver/sks-keyserver/issue/28/primary-uid-in-machine-readable-index">related bug report</a> for more information.</p>
-
-<h2>How do I activate OpenKeychain in K-9 Mail?</h2>
-<p>To use OpenKeychain with K-9 Mail, you want to follow these steps:</p>
-<ol>
- <li>Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.</li>
- <li>Select "Account settings" and scroll to the very bottom and click "Cryptography".</li>
- <li>Click on "OpenPGP Provider" and select OpenKeychain from the list.</li>
-</ol>
-<p>Thats it.</p>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw/help_nfc_beam.html b/OpenKeychain/src/main/res/raw/help_nfc_beam.html
deleted file mode 100644
index 30060a897..000000000
--- a/OpenKeychain/src/main/res/raw/help_nfc_beam.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- Maintain structure with headings with h2 tags and content with p tags.
-This makes it easy to translate the values with transifex!
-And don't add newlines before or after p tags because of transifex -->
-<html>
-<head>
-</head>
-<body>
-<h2>How to receive keys</h2>
-<ol>
-<li>Go to your partners keys and open the key you want to share.</li>
-<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li>
-<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li>
-<li>Tap the card and the content will then load on the your device.</li>
-</ol>
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/raw/help_start.html b/OpenKeychain/src/main/res/raw/help_start.html
index 75fe9de26..0a30cbd92 100644
--- a/OpenKeychain/src/main/res/raw/help_start.html
+++ b/OpenKeychain/src/main/res/raw/help_start.html
@@ -5,10 +5,14 @@ And don't add newlines before or after p tags because of transifex -->
<head>
</head>
<body>
-<h2>Getting started</h2>
-<p>First you need a personal key. Create one via the menu in "Keys" or import existing secret keys. Afterwards, you can download your friends' keys or exchange them via QR Codes or NFC.</p>
-<p>On Android lower 4.4, it is recommended that you install <a href="market://details?id=org.openintents.filemanager">OI File Manager</a> for enhanced file selection.</p>
+<h2>How do I activate OpenKeychain in K-9 Mail?</h2>
+<p>To use OpenKeychain with K-9 Mail, you want to follow these steps:</p>
+<ol>
+ <li>Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.</li>
+ <li>Select "Account settings" and scroll to the very bottom and click "Cryptography".</li>
+ <li>Click on "OpenPGP Provider" and select OpenKeychain from the list.</li>
+</ol>
<h2>I found a bug in OpenKeychain!</h2>
<p>Please report the bug using the <a href="https://github.com/openpgp-keychain/openpgp-keychain/issues">issue tracker of OpenKeychain</a>.</p>
diff --git a/OpenKeychain/src/main/res/raw/help_wot.html b/OpenKeychain/src/main/res/raw/help_wot.html
deleted file mode 100644
index d2ce4a7ae..000000000
--- a/OpenKeychain/src/main/res/raw/help_wot.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!-- Maintain structure with headings with h2 tags and content with p tags.
-This makes it easy to translate the values with transifex!
-And don't add newlines before or after p tags because of transifex -->
-<html>
-<head>
-</head>
-<body>
-<h2>Web of Trust</h2>
-<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p>
-
-<h2>Support in OpenKeychain</h2>
-<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p>
-
-<h2>Trust Model</h2>
-<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p>
-
-<h2>Certifying keys</h2>
-<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p>
-
-</body>
-</html>
diff --git a/OpenKeychain/src/main/res/values-large/dimens.xml b/OpenKeychain/src/main/res/values-large/dimens.xml
deleted file mode 100644
index 045e125f3..000000000
--- a/OpenKeychain/src/main/res/values-large/dimens.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-</resources>
diff --git a/OpenKeychain/src/main/res/values-v21/dimens.xml b/OpenKeychain/src/main/res/values-v21/dimens.xml
index 7e07ae0f9..f06cbbb80 100644
--- a/OpenKeychain/src/main/res/values-v21/dimens.xml
+++ b/OpenKeychain/src/main/res/values-v21/dimens.xml
@@ -8,4 +8,5 @@
<!-- 120dp + statusbar_height -->
<dimen name="big_toolbar">141dp</dimen>
<dimen name="huge_toolbar">243dp</dimen>
+ <dimen name="minus_statusbar_height">-25dp</dimen>
</resources> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/values/dimens.xml b/OpenKeychain/src/main/res/values/dimens.xml
index 434a0a171..2aae06e2e 100644
--- a/OpenKeychain/src/main/res/values/dimens.xml
+++ b/OpenKeychain/src/main/res/values/dimens.xml
@@ -4,4 +4,5 @@
<dimen name="statusbar_height">0dp</dimen>
<dimen name="big_toolbar">120dp</dimen>
<dimen name="huge_toolbar">222dp</dimen>
+ <dimen name="minus_statusbar_height">0dp</dimen>
</resources> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index 3e1b84e5a..799008a2d 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -35,7 +35,7 @@
<string name="title_export_keys">"Export Keys"</string>
<string name="title_key_not_found">"Key Not Found"</string>
<string name="title_send_key">"Upload to Keyserver"</string>
- <string name="title_certify_key">"Certify Identities"</string>
+ <string name="title_certify_key">"Confirm Key"</string>
<string name="title_key_details">"Key Details"</string>
<string name="title_help">"Help"</string>
<string name="title_log_display">"Log"</string>
@@ -43,6 +43,8 @@
<string name="title_exchange_keys">"Exchange Keys"</string>
<string name="title_advanced_key_info">"Advanced Key Info"</string>
<string name="title_keys">"Keys"</string>
+ <string name="title_delete_secret_key">"Delete YOUR key \'%s\'?"</string>
+ <string name="title_export_log">"Export Log"</string>
<!-- section -->
<string name="section_user_ids">"Identities"</string>
@@ -55,19 +57,19 @@
<string name="section_defaults">"Defaults"</string>
<string name="section_advanced">"Advanced"</string>
<string name="section_passphrase_cache">"Passphrase Cache"</string>
- <string name="section_certify">"Certify"</string>
+ <string name="section_certify">"Confirm"</string>
<string name="section_actions">"Actions"</string>
<string name="section_share_key">"Key"</string>
- <string name="section_certification_key">"Your Key used for certification"</string>
<string name="section_upload_key">"Synchronize Key"</string>
<string name="section_key_server">"Keyserver"</string>
<string name="section_fingerprint">"Fingerprint"</string>
- <string name="section_key_to_certify">"Key to be certified"</string>
<string name="section_decrypt_files">"Files"</string>
<string name="section_decrypt_text">"Text"</string>
<string name="section_certs">"Certificates"</string>
<string name="section_encrypt">"Encrypt"</string>
<string name="section_decrypt">"Decrypt"</string>
+ <string name="section_current_expiry">"Current expiry"</string>
+ <string name="section_new_expiry">"New expiry"</string>
<!-- button -->
<string name="btn_decrypt_verify_file">"Decrypt, verify, and save file"</string>
@@ -113,7 +115,8 @@
<string name="menu_search_cloud">"Search cloud"</string>
<string name="menu_export_all_keys">"Export all keys"</string>
<string name="menu_advanced">"Show advanced info"</string>
- <string name="menu_certify_fingerprint">"Verify via fingerprint comparison"</string>
+ <string name="menu_certify_fingerprint">"Confirm via fingerprint comparison"</string>
+ <string name="menu_export_log">"Export Log"</string>
<!-- label -->
<string name="label_message">"Message"</string>
@@ -162,13 +165,6 @@
<string name="user_id_no_name">"&lt;no name&gt;"</string>
<string name="none">"&lt;none&gt;"</string>
- <string name="no_key">"&lt;no key&gt;"</string>
- <string name="can_encrypt">"can encrypt"</string>
- <string name="can_sign">"can sign"</string>
- <string name="can_certify">"can certify"</string>
- <string name="can_certify_not">"cannot certify"</string>
- <string name="expired">"expired"</string>
- <string name="revoked">"revoked"</string>
<plurals name="n_keys">
<item quantity="one">"1 key"</item>
@@ -202,7 +198,6 @@
<string name="ecdh">"ECDH"</string>
<string name="ecdsa">"ECDSA"</string>
<string name="filemanager_title_open">"Open…"</string>
- <string name="warning">"Warning"</string>
<string name="error">"Error"</string>
<string name="error_message">"Error: %s"</string>
@@ -227,15 +222,14 @@
<string name="no_file_selected">"Select a file first."</string>
<string name="encrypt_sign_successful">"Successfully signed and/or encrypted."</string>
<string name="encrypt_sign_clipboard_successful">"Successfully signed and/or encrypted to clipboard."</string>
- <string name="enter_passphrase_twice">"Enter the passphrase twice."</string>
<string name="select_encryption_key">"Select at least one encryption key."</string>
<string name="select_encryption_or_signature_key">"Select at least one encryption key or a signature key."</string>
<string name="specify_file_to_encrypt_to">"Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists."</string>
<string name="specify_file_to_decrypt_to">"Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists."</string>
<string name="specify_file_to_export_to">"Please specify which file to export to.\nWARNING: File will be overwritten if it exists."</string>
- <string name="key_deletion_confirmation_multi">"Do you really want to delete all selected public keys?\nYou can't undo this!"</string>
- <string name="secret_key_deletion_confirmation">"Do you really want to delete the SECRET key '%s'?\nYou can't undo this!"</string>
- <string name="public_key_deletetion_confirmation">"Do you really want to delete the public key '%s'?\nYou can't undo this!"</string>
+ <string name="key_deletion_confirmation_multi">"Do you really want to delete all selected keys?"</string>
+ <string name="secret_key_deletion_confirmation">"After deletion you will not be able to read messages encrypted with this key and lose all key confirmations done with it!"</string>
+ <string name="public_key_deletetion_confirmation">"Delete key '%s'?"</string>
<string name="also_export_secret_keys">"Also export secret keys"</string>
<string name="reinstall_openkeychain">"You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys."</string>
@@ -245,6 +239,8 @@
<string name="key_creation_el_gamal_info">"Note: only subkeys support ElGamal."</string>
<string name="key_not_found">"Couldn't find key %08X."</string>
+ <string name="specify_file_to_export_log_to">"Please specify file to export to. \nWARNING: File will be overwritten if it exists."</string>
+
<plurals name="bad_keys_encountered">"
<item quantity="one">"%d bad secret key ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.""</item>
<item quantity="other">"%d bad secret keys ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.""</item>
@@ -254,7 +250,7 @@
<string name="nfc_successful">"Successfully sent key with NFC Beam!"</string>
<string name="key_copied_to_clipboard">"Key has been copied to the clipboard!"</string>
<string name="fingerprint_copied_to_clipboard">"Fingerprint has been copied to the clipboard!"</string>
- <string name="select_key_to_certify">"Please select a key to be used for certification!"</string>
+ <string name="select_key_to_certify">"Please select a key to be used for confirmation!"</string>
<string name="key_too_big_for_sharing">"Key is too big to be shared this way!"</string>
<string name="text_copied_to_clipboard">"Text has been copied to the clipboard!"</string>
@@ -393,7 +389,7 @@
<!-- Help -->
<string name="help_tab_start">"Start"</string>
<string name="help_tab_faq">"FAQ"</string>
- <string name="help_tab_wot">"Web of Trust"</string>
+ <string name="help_tab_wot">"Key Confirmation"</string>
<string name="help_tab_nfc_beam">"NFC Beam"</string>
<string name="help_tab_changelog">"Changelog"</string>
<string name="help_tab_about">"About"</string>
@@ -535,7 +531,7 @@
<string name="key_view_action_edit">"Edit key"</string>
<string name="key_view_action_encrypt">"Encrypt text"</string>
<string name="key_view_action_encrypt_files">"files"</string>
- <string name="key_view_action_certify">"Certify identities"</string>
+ <string name="key_view_action_certify">"Confirm key"</string>
<string name="key_view_action_update">"Update from keyserver"</string>
<string name="key_view_action_share_with">"Share with…"</string>
<string name="key_view_action_share_nfc">"Share over NFC"</string>
@@ -555,16 +551,16 @@
<string name="user_id_info_invalid_text">"Something is wrong with this identity!"</string>
<!-- Key trust -->
- <string name="key_trust_already_verified">"You have already certified this key!"</string>
+ <string name="key_trust_already_verified">"You have already confirmed this key!"</string>
<string name="key_trust_it_is_yours">"This is one of your keys!"</string>
- <string name="key_trust_maybe">"This key is neither revoked nor expired.\nYou haven’t certified it, but you may choose to trust it."</string>
+ <string name="key_trust_maybe">"This key is neither revoked nor expired.\nYou haven’t confirmed it, but you may choose to trust it."</string>
<string name="key_trust_revoked">"This key has been revoked by its owner. You should not trust it."</string>
<string name="key_trust_expired">"This key has expired. You should not trust it."</string>
<string name="key_trust_old_keys">" It may be OK to use this to decrypt an old message dating from the time when this key was valid."</string>
<string name="key_trust_no_cloud_evidence">"No proof from the cloud on this key’s trustworthiness."</string>
<string name="key_trust_start_cloud_search">"Start search"</string>
<string name="key_trust_results_prefix">"Keybase.io offers “proofs” which assert that the owner of this key: "</string>
- <string name="key_trust_header_text">"Note: Keybase.io proofs are an experimental feature of OpenKeychain. We encourage you to scan QR Codes or exchange keys via NFC in addition to verifying them."</string>
+ <string name="key_trust_header_text">"Note: Keybase.io proofs are an experimental feature of OpenKeychain. We encourage you to scan QR Codes or exchange keys via NFC in addition to confirming them."</string>
<!-- keybase proof stuff -->
<string name="keybase_narrative_twitter">"Posts to Twitter as"</string>
@@ -637,8 +633,8 @@
<string name="view_key_expired">"Expired: The contact needs to extend the key's validity!"</string>
<string name="view_key_expired_secret">"Expired: You can extend the keys validity by editing it!"</string>
<string name="view_key_my_key">"My Key"</string>
- <string name="view_key_verified">"Verified Key"</string>
- <string name="view_key_unverified">"Unverified: Scan QR Code to verify key!"</string>
+ <string name="view_key_verified">"Confirmed Key"</string>
+ <string name="view_key_unverified">"Unconfirmed: Scan QR Code to confirm key!"</string>
<!-- Navigation Drawer -->
<string name="nav_keys">"Keys"</string>
@@ -840,7 +836,7 @@
<string name="msg_kc_uid_no_cert">"No valid self-certificate found for user ID '%s', removing from ring"</string>
<string name="msg_kc_uid_remove">"Removing invalid user ID '%s'"</string>
<string name="msg_kc_uid_dup">"Removing duplicate user ID '%s'. The keyring contained two of them. This may result in missing certificates!"</string>
- <string name="msg_kc_uid_warn_encoding">"User id does not verify as UTF-8!"</string>
+ <string name="msg_kc_uid_warn_encoding">"User ID does not verify as UTF-8!"</string>
<string name="msg_kc_uat_jpeg">"Processing user attribute of type JPEG"</string>
<string name="msg_kc_uat_unknown">"Processing user attribute of unknown type"</string>
<string name="msg_kc_uat_bad_err">"Removing bad self certificate for user attribute"</string>
@@ -855,7 +851,7 @@
<string name="msg_kc_uat_revoke_old">"Removing outdated revocation certificate for user attribute"</string>
<string name="msg_kc_uat_no_cert">"No valid self-certificate found for user attribute, removing from ring"</string>
<string name="msg_kc_uat_remove">"Removing invalid user attribute"</string>
- <string name="msg_kc_uat_warn_encoding">"User id does not verify as UTF-8!"</string>
+ <string name="msg_kc_uat_warn_encoding">"User ID does not verify as UTF-8!"</string>
<!-- Keyring merging log entries -->
<string name="msg_mg_error_secret_dummy">"New public subkey found, but secret subkey dummy generation is not supported!"</string>
@@ -1028,7 +1024,7 @@
<string name="msg_vl_clear_meta_file">"Filename: %s"</string>
<string name="msg_vl_clear_meta_mime">"MIME type: %s"</string>
<string name="msg_vl_clear_meta_time">"Modification time: %s"</string>
- <string name="msg_vl_clear_meta_size">"Filesize: %s"</string>
+ <string name="msg_vl_clear_meta_size">"File size: %s"</string>
<string name="msg_vl_clear_signature_check">"Verifying signature data"</string>
<string name="msg_vl_error_integrity_check">"Integrity check error!"</string>
<string name="msg_vl_ok">"OK"</string>
@@ -1180,6 +1176,13 @@
<string name="msg_download_query_failed">"An error occurred when searching for keys."</string>
+ <!-- Messages for Export Log operation -->
+ <string name="msg_export_log_start">"Exporting log"</string>
+ <string name="msg_export_log_error_fopen">"Error opening file"</string>
+ <string name="msg_export_log_error_no_file">"No file name specified!"</string>
+ <string name="msg_export_log_error_writing">"I/O error writing to file!"</string>
+ <string name="msg_export_log_success">"Log exported successfully!"</string>
+
<!-- PassphraseCache -->
<string name="passp_cache_notif_click_to_clear">"Click to clear cached passphrases"</string>
<string name="passp_cache_notif_n_keys">"OpenKeychain has cached %d passphrases"</string>
@@ -1201,11 +1204,10 @@
<string name="empty_certs">"No certificates for this key"</string>
<string name="certs_text">"Only validated self-certificates and validated certificates created with your keys are displayed here."</string>
<string name="section_uids_to_certify">"Identities for "</string>
- <string name="certify_text">"The keys you are importing contain “identities”: names and emails. Select exactly those for certification which match what you expected."</string>
+ <string name="certify_text">"The keys you are importing contain “identities”: names and emails. Select exactly those for confirmation which match what you expected."</string>
<string name="certify_fingerprint_text">"Compare the displayed fingerprint, character by character, with the one displayed on your partners device."</string>
<string name="certify_fingerprint_text2">"Do the displayed fingerprints match?"</string>
<string name="label_revocation">"Revocation Reason"</string>
- <string name="label_verify_status">"Verification Status"</string>
<string name="label_cert_type">"Type"</string>
<string name="error_key_not_found">"Key not found!"</string>
<string name="error_key_processing">"Error processing key!"</string>
diff --git a/README.md b/README.md
index 77ae69262..617416aa1 100644
--- a/README.md
+++ b/README.md
@@ -214,33 +214,7 @@ Some parts and some libraries are Apache License v2, MIT X11 License (see below)
### Libraries
-* SpongyCastle
- https://github.com/rtyley/spongycastle
- MIT X11 License
-
-* Android Support Library v4
- http://developer.android.com/tools/support-library/index.html
- Apache License v2
-
-* Android Support Library v7 'appcompat'
- http://developer.android.com/tools/support-library/index.html
- Apache License v2
-
-* HtmlTextView
- https://github.com/dschuermann/html-textview
- Apache License v2
-
-* ZXing
- https://github.com/zxing/zxing
- Apache License v2
-
-* StickyListHeaders
- https://github.com/emilsjolander/StickyListHeaders
- Apache License v2
-
-* https://github.com/jpardogo/PagerSlidingTabStrip
-
-* https://github.com/journeyapps/zxing-android-embedded
+See https://github.com/open-keychain/open-keychain/blob/development/OpenKeychain/src/main/res/raw/help_about.html
### Images
* icon.svg
diff --git a/extern/openpgp-api-lib b/extern/openpgp-api-lib
-Subproject c866dc22bcfa004ec2c46bc86c08694e76d1058
+Subproject 1861415d77f46a466a0ae654ee72f5768f1eed1
diff --git a/settings.gradle b/settings.gradle
index d12c56b58..bb7db9f86 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -7,10 +7,8 @@ include ':extern:spongycastle:core'
include ':extern:spongycastle:pg'
include ':extern:spongycastle:pkix'
include ':extern:spongycastle:prov'
-include ':extern:SuperToasts:supertoasts'
include ':extern:minidns'
include ':extern:KeybaseLib:Lib'
include ':extern:TokenAutoComplete:library'
include ':extern:safeslinger-exchange'
-include ':extern:android-lockpattern:code'
include ':OpenKeychain-Test'