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-/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-/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-/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-/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-/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-/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 similarity index 100% rename from Graphics/drawables/ic_cloud_search_24px.svg rename to 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png 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 Binary files /dev/null and b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.png 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 @@ + + + + \ 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" +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 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" -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 @@ - dehydratedLogs; + static { + // Static initializer for ConcurrentHashMap + dehydratedLogs = new ConcurrentHashMap(); + } + + /** + * 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 { 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 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 CREATOR = new Creator() { + 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 photoTask = - new AsyncTask() { - protected Bitmap doInBackground(String... fingerprint) { - return ContactHelper.photoFromFingerprint(getContentResolver(), fingerprint[0]); + AsyncTask photoTask = + new AsyncTask() { + 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 { @@ -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 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 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 { } 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 { 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> 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) 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 + * + * 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 . + */ + 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); + expiryLayout.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 - ); - } + currentExpiry.setText(R.string.btn_no_date); } else { noExpiry.setChecked(false); - datePicker.setVisibility(View.VISIBLE); + expiryLayout.setVisibility(View.VISIBLE); - // set date picker to current expiry - datePicker.init( - expiryCal.get(Calendar.YEAR), - expiryCal.get(Calendar.MONTH), - expiryCal.get(Calendar.DAY_OF_MONTH), - null - ); + // 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())); } - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { - datePicker.setMinDate(creationCal.getTime().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 + + Calendar creationCalPlusOne = (Calendar) creationCal.clone(); + creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1); + datePicker.setMinDate(creationCalPlusOne.getTime().getTime()); + datePicker.init( + creationCalPlusOne.get(Calendar.YEAR), + creationCalPlusOne.get(Calendar.MONTH), + creationCalPlusOne.get(Calendar.DAY_OF_MONTH), + null + ); + } else { + // Min Date: today + 1 day + + // 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 enum State { + REVOKED, + EXPIRED, + VERIFIED, + UNAVAILABLE, + ENCRYPTED, + NOT_ENCRYPTED, + UNVERIFIED, + UNKNOWN_KEY, + INVALID, + NOT_SIGNED + } - public static void setStatusImage(Context context, ImageView statusIcon, int state) { + 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 photoCache = new HashMap<>(); + private static final Map photoCache = new HashMap<>(); public static List getPossibleUserEmails(Context context) { Set accountMails = getAccountEmails(context); @@ -125,33 +91,33 @@ public class ContactHelper { * @return */ private static Set getContactNamesFromEmails(Context context, Set emails) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - Set 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 currNames = new HashSet<>(); - while (profileCursor.moveToNext()) { - String name = profileCursor.getString(1); - if (name != null) { - currNames.add(name); - } - } - profileCursor.close(); - names.addAll(currNames); + Set 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; } - return names; - } else { - return new HashSet<>(); + + Set currNames = new HashSet<>(); + while (profileCursor.moveToNext()) { + String name = profileCursor.getString(1); + if (name != null) { + currNames.add(name); + } + } + profileCursor.close(); + names.addAll(currNames); } + return names; } /** @@ -162,38 +128,37 @@ public class ContactHelper { * @return */ private static Set 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; - - Set 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<>(); + 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 emails = new HashSet<>(); + while (profileCursor.moveToNext()) { + String email = profileCursor.getString(0); + if (email != null) { + emails.add(email); + } + } + profileCursor.close(); + return emails; } /** @@ -204,26 +169,27 @@ public class ContactHelper { * @return */ private static List 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; - - Set 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<>(); + 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 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); } public static List 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 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 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 contactFingerprints = getRawContactFingerprints(resolver); + Set 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 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 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); } - } /** - * @return a set of all key fingerprints currently present in the contact db + * Delete all raw contacts associated to OpenKeychain. + *

+ * TODO: Does this work? */ - private static Set getRawContactFingerprints(ContentResolver resolver) { - HashSet 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 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 master key ids currently present in the contact db + */ + private static Set getRawContactMasterKeyIds(ContentResolver resolver) { + HashSet 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 ops, Context context, String fingerprint) { + private static void insertContact(ArrayList 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 { *

* This creates the link to OK in contact details */ - private static void writeContactKey(ArrayList ops, Context context, int rawContactId, + private static void writeContactKey(ArrayList 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 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 ops, int rawContactId, + private static void writeContactDisplayName(ArrayList 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png and b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png and b/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png and b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png and b/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png rename to OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png rename to OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png and /dev/null 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png and /dev/null 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png 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 Binary files a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.png and /dev/null 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96px.png rename to OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_accounts.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file.png rename to OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_file_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png rename to OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png 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 similarity index 100% rename from OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png rename to OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png 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 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.png 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 @@ @@ -90,42 +91,6 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ 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" /> 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" /> + layout="@layout/toolbar_standalone_orange" /> + layout="@layout/toolbar_standalone_orange" /> 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 @@ 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" /> @@ -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 @@ 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" /> 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" /> + style="?android:attr/borderlessButtonStyle" /> + style="?android:attr/borderlessButtonStyle" /> 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 @@ - - + + + + + + + + + + + + \ 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"> 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"/> 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"/> \ 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 @@ @@ -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" /> 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 @@ 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" /> 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 @@ - + android:orientation="vertical"> + + + android:visibility="invisible"> - \ No newline at end of file + \ 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 @@ + + + + + + + + + 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"> - + android:src="@drawable/ic_launcher" + android:baselineAlignBottom="false" + android:cropToPadding="false" + android:focusable="false" + android:adjustViewBounds="false" + android:layout_alignParentTop="false" + android:scaleType="centerCrop" /> + android:src="@drawable/ic_action_encrypt_file_24dp" /> + android:src="@drawable/ic_action_encrypt_text_24dp" /> @@ -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"> - - @@ -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" /> + android:layout_toLeftOf="@+id/subkey_item_status" + android:layout_toStartOf="@+id/subkey_item_status"> @@ -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 @@ + + 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 @@ -6,23 +6,6 @@ android:orientation="horizontal" android:singleLine="true"> - - - - - - + + + + + + + @@ -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 @@ 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 @@ + +

+ + + + 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

Jak přijmout klíče

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Podržte dvě zařízení zády k sobě (musí se téměř dotýkat) a ucítíte vibraci.
  4. -
  5. 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.
  6. -
  7. Tapněte na kartu a obsah se nahraje do zařízení.
  8. -
- - 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 @@ - - - -

Síť důvěry

-

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.

- -

Podpora v OpenKeychain

-

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.

- -

Model důvěry

-

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.

- -

Certifikace klíčů

-

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ů.

- - - 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 @@ - - - -

Wie kann man Schlüssel empfangen

-
    -
  1. Gehe zu den Schlüsseln deiner Partner und öffne den Schlüssel welcher geteilt werden soll.
  2. -
  3. Halten Sie die zwei Geräte rückseitig aneinander (sodass sie sich fast berühren) und es wird vibrieren
  4. -
  5. Nachdem es vibriert sehen sie wie sich der Inhalt des Gerätes ihres Bekannten von einer Warp-Geschwindigkeit Animation umgeben wird
  6. -
  7. Wenn sie die Karte antippen, wird der Inhalt auf ihr Gerät übertragen
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Vertrauens-Modell

-

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.

- -

Schlüssel beglaubigen

-

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.

- - - 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 @@ - - - -

Cómo recibir las claves

-
    -
  1. Vaya a las claves de socios y abra la clave que quiera compartir.
  2. -
  3. Mantén los dos dispositivos de con ambos reversos juntos (tienen que estar casi en contacto) y notarás una vibración.
  4. -
  5. 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.
  6. -
  7. Toca la ficha y el contenido se cargará en tu dispositivo.
  8. -
- - 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 @@ - - - -

Anillo de confianza

-

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.

- -

Soporte en OpenKeychain

-

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.

- -

Modelo de confianza

-

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.

- -

Certificando claves

-

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.

- - - 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

Comment recevoir des clefs

-
    -
  1. Allez aux clefs de votre partenaire et ouvrez la clef que vous voulez partager.
  2. -
  3. Tenir les deux appareils dos à dos (se touchant presque) et une vibration sera ressentie.
  4. -
  5. 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.
  6. -
  7. Toquer la carte et le contenu se chargera alors sur votre appareil.
  8. -
- - 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 @@ - - - -

Toile de confiance

-

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.

- -

Prise en charge dans OpenKeychain

-

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.

- -

Modèle de confiance

-

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.

- -

Certifications des clefs

-

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.

- - - 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

Come ricevere le chiavi

-
    -
  1. Vai alle chiavi dei contatti dei tuoi partner e apri la chiave che si desidera condividere.
  2. -
  3. Mantieni i due dispositivi vicini (devono quasi toccarsi) e sentirai una vibrazione.
  4. -
  5. 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.
  6. -
  7. Tocca la scheda e il contenuto dopo si trasferira' nel dispositivo dell'altra persona.
  8. -
- - 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 @@ - - - -

Rete di Fiducia

-

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.

- -

Supporto in OpenKeychain

-

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.

- -

Modello di Fiducia

-

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.

- -

Chiavi di certificazione

-

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.

- - - 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 @@ - - - -

鍵の受信方法

-
    -
  1. パートナーの連絡先に行き、共有したい連絡先を開きます。
  2. -
  3. 2つのデバイスを背中合せ(ほとんどすべてのタッチ方法)にしてバイブを感じるまで保持しておいてください。
  4. -
  5. バイブの後、相手のデバイスでスタートレック風のバックグラウンドアニメーションしているカード風のコンテンツを見ると思います。
  6. -
  7. カードをタップしコンテンツをあなたのデバイスにロードします。
  8. -
- - 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 @@ - - - -

信頼の輪

-

信頼の輪はOpenPGPの一面で証明の作成とその維持の一面を説明します。ユーザが公開鍵に属する者の追跡を維持し、他のユーザーとその情報を共有する手助けになるメカニズムを提供します。暗号化通信のプライバシーを確保するためには、あなたが暗号化したいという相手の公開鍵が必要な要素となります。

- -

OpenKeychainでサポート

-

OpenKeychainで信頼の輪の基本のみサポートされます。とても重い作業を進めており今後やってくるリリースにおいて状態が変更されていきます。

- -

信頼モデル

-

信頼の評価はシンプルな仮定に基づいています、それはすべての鍵は秘密鍵が信頼できるというものです。公開鍵は信頼された鍵で検証された最低1つのユーザIDを含んでおり、それは鍵リストにおいて、緑でマークされます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものには(まだ)しません。

- -

鍵の検証

-

鍵検証のサポートが提供されており、またユーザIDは個別に検証できます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものにはしないローカルもしくは他の特別なタイプの証明です。

- - - 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 @@ - - - -

Hoe sleutels te ontvangen

-
    -
  1. Ga naar je partner's sleutels en open de sleutel die je wil delen.
  2. -
  3. Houd de twee toestellen met de achterkant tegen elkaar (ze moeten elkaar bijna aanraken) en je zal een trilling voelen.
  4. -
  5. 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.
  6. -
  7. Druk op de kaart en de inhoud zal dan laden op het toestel.
  8. -
- - 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 @@ - - - -

Web van Vertrouwen

-

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.

- -

Ondersteuning in OpenKeychain

-

Er is alleen basisondersteuning voor Web van Vertrouwen in OpenKeychain. Dit is een zware 'werk in uitvoering' en onderwerp voor veranderingen in toekomstige releases.

- -

Vertrouwensmodel

-

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.

- -

Bezig met certificeren van sleutels<br>

-

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.

- - - 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 @@ - - - -

Jak odbierać klucze

-
    -
  1. Idź to kluczy swoich partnerów i otwórz klucz którym chcesz się podzielić.
  2. -
  3. Przytrzymaj oba urządzenia tyłem do siebie (powinny się niemal dotykać) aż poczujesz wibrację.
  4. -
  5. 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.
  6. -
  7. Dotknij wizytówkę, a jej zawartość zostanie wysłana na Twoje urządzenie.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - -

Как обменяться ключами

-
    -
  1. Нажмите и удерживайте ключ, который вы хотите передать.
  2. -
  3. Поднесите оба устройства вплотную обратными сторонами (до полного касания). Вы почувствуете небольшую вибрацию.
  4. -
  5. Как только устройства завибрируют, на экране появится карточка с передаваемым содержимым.
  6. -
  7. Нажмите на карточку, что бы передать данные (ключи) с одного устройства на другое.
  8. -
- - 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 @@ - - - -

Сеть доверия (WoT)

-

Сеть доверия (The Web of Trust) предоставляет механизм заверения ключей посредством присоединения и распространения информации о выполненной сертификации. Для гарантии безопасного зашифрованного общения крайне важно не сомневаться, что владельцем ключа является ваш собеседник.

- -

Поддержка в OpenKeychain

-

В настоящее время реализованы только базовые возможности WoT. Работа в самом разгаре и в будущих версиях OpenKeychain будут появляться дополнительные возможности.

- -

Модель доверия

-

Проверка доверия основана на простом принципе, что если доступен секретный ключ, то доверие к нему абсолютное. Однако, публичные должны содержать подписи кого-то, кому вы доверяете, что бы подпись, сделанная таким ключом, была отмечена зелёным индикатором. К сожалению, (пока) нельзя определять степень доверия к другим известным публичным ключам.

- -

Сертификация ключей

-

Поддержка сертификации ключей уже реализована, и Вы можете сертифицировать отдельные ID пользователя. Пока нельзя выбирать степень доверия, создавать локальные или специальные типы сертификатов.

- - - 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 @@ - - - -

Kako pridobiti ključe

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. S hrbtoma približajte dve napravi (vašo ter vašega partnerja - morata se skoraj dotikati) in začutili boste vibracijo.
  4. -
  5. Po vibraciji se bo vsebina na napravi vašega partnerja spremenila v vizitki podoben objekt s 'Star Trek' animacijo v ozadju.
  6. -
  7. Tapnite vizitko in njena vsebnina se bo prenesla na vašo napravo.
  8. -
- - 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 @@ - - - -

Omrežje zaupanja

-

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.

- -

Podpora v OpenKeychain

-

OpenKeychain ponuja zgolj osnovno podporo za 'Omrežje zaupanja'. V prihodnjih različicah bomo to podporo še nadgrajevali in izboljševali.

- -

Model zaupanja

-

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.

- -

Overjanje ključev

-

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.

- - - 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 @@ - - - -

Како примити кључеве

-
    -
  1. Идите у кључеве вашег другара и отворите кључ којег желите да поделите.
  2. -
  3. Држите оба уређаја леђа о леђа (треба да се скоро додирују) и осетићете вибрацију.
  4. -
  5. Након вибрације видећете да се садржај на уређају вашег другара претвара у нешто што личи на картицу са анимацијом сличном ворп брзини из Звезданих Стаза у позадини.
  6. -
  7. Додирните картицу и садржај ће се потом учитати на вашем уређају.
  8. -
- - 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 @@ - - - -

Веб Поверења

-

Веб Поверења описује део ОпенПГП-а који се бави прављењем и спремањем сертификата. Пружа механизме који помажу кориснику у праћењу коме јавни кључ припада и дељењу ове информације са осталима; да би се осигурала приватност шифроване комуникације, нужно је знати да јавни кључ на који шифрујете припада особи којој и мислите да припада.

- -

Подршка у Отвореном кључарнику

-

Постоји само основна подршка за Веб поверења у Отвореном кључарнику. Ово је велики посао у току и подложан променама у наредним издањима.

- -

Модел поверења

-

Евалуација поверења се заснива на једноставној претпоставци да су сви кључеви који имају доступне тајне кључеве, од поверења. Јавни кључеви који садрже најмање један кориснички ид оверен кључем од поверења биће означени зеленом тачком у исписима кључева. Није (још) могуће одредити нивое поверења за сертификате других познатих јавних кључева.

- -

Оверавање кључева

-

Подршка за оверу кључева је доступна, и кориснички ид-ови могу бити оверавани појединачно. Још није могуће одредити ниво поверења или направити локалне и друге посебне врсте сертификата.

- - - 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 @@ - - - -

Hur man tar emot nycklar

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Håll de två enheternas baksidor mot varandra (de måste nästan vidröras) och du känner av en vibration.
  4. -
  5. 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.
  6. -
  7. Tryck på kortet och innehållet kommer att laddas på den andra personens enhet.
  8. -
- - 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 @@ - - - -

Tillitsnät

-

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.

- -

Stöd i OpenKeychain

-

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.

- -

Tillitsmodell

-

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.

- -

Certifiera nycklar

-

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.

- - - 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 @@ - - - -

Anahtarlar nasıl alınır

-
    -
  1. Eşleşecek cihazın anahtarlarına girin ve paylaşmak istediğiniz anahtarı açın.
  2. -
  3. İki cihazı arka arkaya tutun (neredeyse temas edecek şekilde) ve bir titreşim hissedeceksiniz.
  4. -
  5. 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.
  6. -
  7. Kart'a tıklayın ve içerik sizin cihazınıza yüklensin.
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

OpenKeychain Desteği

-

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.

- -

Güven Modeli

-

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.

- -

Anahtar Tasdikleme

-

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.

- - - 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 @@ - - - -

Як обмінятися ключами

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Піднесіть обидва пристрої впритул зворотними сторонами (до повного торкання). Ви відчуєте невелику вібрацію.
  4. -
  5. Після вібрації пристроїв на екрані з'явиться картка з передаваним вмістом.
  6. -
  7. Натисніть на картку, що б передати дані з одного пристрою на інший.
  8. -
- - 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 @@ - - - -

Мережа довіри

-

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.

- -

Підтримка у OpenKeychain

-

Наразі реалізовані тільки базові можливості WoT. Робота в самому розпалі, і в майбутніх версіях OpenKeychain будуть з'являтися додаткові можливості.

- -

Модель довіри

-

Перевірка довіри заснована на простому принципі, що якщо доступний секретний ключ, то довіра до нього абсолютна. Однак, публічні повинні містити підписи когось, кому ви довіряєте, що б підпис, зроблений таким ключем, був відзначений зеленим індикатором. На жаль, (поки що) не можна визначати ступінь довіри до інших відомих публічних ключів.

- -

Сертифікація ключів

-

Підтримка сертифікації ключів вже реалізована, і Ви можете сертифікувати окремі ID користувача. Наразі не можна вибирати ступінь довіри, створювати локальні або спеціальні типи сертифікатів.

- - - 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 @@ - - - -

使用NFC接收和分享金鑰

-
    -
  1. 找到並打開你要分享的金鑰。
  2. -
  3. 將裝置背對背輕靠,直到感覺到震動。
  4. -
  5. 震動後會發現畫面變成卡片狀,並且背景帶有Star Trek的特效。
  6. -
  7. 輕觸畫面,內容將顯示在對方的畫面上。
  8. -
- - 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 @@ - - - -

信任網

-

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.

- -

OpenKeychain的支援狀況

-

目前OpenKeychain對信任網只有基本程度的支援。這是一件大工程,有任何進展將隨時發佈。

- -

信任模式

-

信用評價基於一個前提:所有帶有密鑰的金鑰都是可以信任的。所有可信任金鑰簽署過的公鑰,會在清單裡被標上一個綠圓點。目前並不支援指定其他公鑰的信任等級。

- -

金鑰認證

-

金鑰認證是支援的,而且每個身份可以個別進行認證。然而,目前並不支援指定簽署的信任等級與建立本機或其他形式的認證。

- - - 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 @@ - - - -

使用NFC功能接收和分享密钥

-
    -
  1. 选择并打开你想要分享的密钥。
  2. -
  3. 将两部手机背面接触,之后会感受到震动。
  4. -
  5. 震动后会发现界面变成卡片状,并有Star Trek 般的特效。
  6. -
  7. 轻触卡片,内容即可显示。
  8. -
- - 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 @@ - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 -->

Libraries

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 @@ + + + + + + +

Key Confirmation

+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. + +

Key Status

+


Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. +

Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. +

Expired: This key is no longer valid. Only the owner can extend its validity. +

Revoked: This key is no longer valid. It has been revoked by its owner.

+ +

Advanced Information

+

A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a "generic certification (0x10)" 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."

+ +

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.

+ + + 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 @@ - - - - - -

How can I specify connection port for Keyserver?

-

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.

-

Default connection port is 11371 and it doesn't need to be specified.

- -

A wrong primary user id is shown when searching on a Keyserver

-

Unfortunately, this is a bug in the SKS Keyserver software. Its machine-readable output returns the user ids in an arbitrary order. Read the related bug report for more information.

- -

How do I activate OpenKeychain in K-9 Mail?

-

To use OpenKeychain with K-9 Mail, you want to follow these steps:

-
    -
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. -
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. -
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. -
-

Thats it.

- - 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 @@ - - - - - -

How to receive keys

-
    -
  1. Go to your partners keys and open the key you want to share.
  2. -
  3. Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.
  4. -
  5. 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.
  6. -
  7. Tap the card and the content will then load on the your device.
  8. -
- - 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 --> -

Getting started

-

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.

-

On Android lower 4.4, it is recommended that you install OI File Manager for enhanced file selection.

+

How do I activate OpenKeychain in K-9 Mail?

+

To use OpenKeychain with K-9 Mail, you want to follow these steps:

+
    +
  1. Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.
  2. +
  3. Select "Account settings" and scroll to the very bottom and click "Cryptography".
  4. +
  5. Click on "OpenPGP Provider" and select OpenKeychain from the list.
  6. +

I found a bug in OpenKeychain!

Please report the bug using the issue tracker of OpenKeychain.

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 @@ - - - - - -

Web of Trust

-

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.

- -

Support in OpenKeychain

-

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.

- -

Trust Model

-

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.

- -

Certifying keys

-

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.

- - - 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 @@ - - - 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 @@ 141dp 243dp + -25dp \ 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 @@ 0dp 120dp 222dp + 0dp \ 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 @@ "Export Keys" "Key Not Found" "Upload to Keyserver" - "Certify Identities" + "Confirm Key" "Key Details" "Help" "Log" @@ -43,6 +43,8 @@ "Exchange Keys" "Advanced Key Info" "Keys" + "Delete YOUR key \'%s\'?" + "Export Log" "Identities" @@ -55,19 +57,19 @@ "Defaults" "Advanced" "Passphrase Cache" - "Certify" + "Confirm" "Actions" "Key" - "Your Key used for certification" "Synchronize Key" "Keyserver" "Fingerprint" - "Key to be certified" "Files" "Text" "Certificates" "Encrypt" "Decrypt" + "Current expiry" + "New expiry" "Decrypt, verify, and save file" @@ -113,7 +115,8 @@ "Search cloud" "Export all keys" "Show advanced info" - "Verify via fingerprint comparison" + "Confirm via fingerprint comparison" + "Export Log" "Message" @@ -162,13 +165,6 @@ "<no name>" "<none>" - "<no key>" - "can encrypt" - "can sign" - "can certify" - "cannot certify" - "expired" - "revoked" "1 key" @@ -202,7 +198,6 @@ "ECDH" "ECDSA" "Open…" - "Warning" "Error" "Error: %s" @@ -227,15 +222,14 @@ "Select a file first." "Successfully signed and/or encrypted." "Successfully signed and/or encrypted to clipboard." - "Enter the passphrase twice." "Select at least one encryption key." "Select at least one encryption key or a signature key." "Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists." "Please specify which file to export to.\nWARNING: File will be overwritten if it exists." - "Do you really want to delete all selected public keys?\nYou can't undo this!" - "Do you really want to delete the SECRET key '%s'?\nYou can't undo this!" - "Do you really want to delete the public key '%s'?\nYou can't undo this!" + "Do you really want to delete all selected keys?" + "After deletion you will not be able to read messages encrypted with this key and lose all key confirmations done with it!" + "Delete key '%s'?" "Also export secret keys" "You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys." @@ -245,6 +239,8 @@ "Note: only subkeys support ElGamal." "Couldn't find key %08X." + "Please specify file to export to. \nWARNING: File will be overwritten if it exists." + " "%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."" "%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."" @@ -254,7 +250,7 @@ "Successfully sent key with NFC Beam!" "Key has been copied to the clipboard!" "Fingerprint has been copied to the clipboard!" - "Please select a key to be used for certification!" + "Please select a key to be used for confirmation!" "Key is too big to be shared this way!" "Text has been copied to the clipboard!" @@ -393,7 +389,7 @@ "Start" "FAQ" - "Web of Trust" + "Key Confirmation" "NFC Beam" "Changelog" "About" @@ -535,7 +531,7 @@ "Edit key" "Encrypt text" "files" - "Certify identities" + "Confirm key" "Update from keyserver" "Share with…" "Share over NFC" @@ -555,16 +551,16 @@ "Something is wrong with this identity!" - "You have already certified this key!" + "You have already confirmed this key!" "This is one of your keys!" - "This key is neither revoked nor expired.\nYou haven’t certified it, but you may choose to trust it." + "This key is neither revoked nor expired.\nYou haven’t confirmed it, but you may choose to trust it." "This key has been revoked by its owner. You should not trust it." "This key has expired. You should not trust it." " It may be OK to use this to decrypt an old message dating from the time when this key was valid." "No proof from the cloud on this key’s trustworthiness." "Start search" "Keybase.io offers “proofs” which assert that the owner of this key: " - "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." + "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." "Posts to Twitter as" @@ -637,8 +633,8 @@ "Expired: The contact needs to extend the key's validity!" "Expired: You can extend the keys validity by editing it!" "My Key" - "Verified Key" - "Unverified: Scan QR Code to verify key!" + "Confirmed Key" + "Unconfirmed: Scan QR Code to confirm key!" "Keys" @@ -840,7 +836,7 @@ "No valid self-certificate found for user ID '%s', removing from ring" "Removing invalid user ID '%s'" "Removing duplicate user ID '%s'. The keyring contained two of them. This may result in missing certificates!" - "User id does not verify as UTF-8!" + "User ID does not verify as UTF-8!" "Processing user attribute of type JPEG" "Processing user attribute of unknown type" "Removing bad self certificate for user attribute" @@ -855,7 +851,7 @@ "Removing outdated revocation certificate for user attribute" "No valid self-certificate found for user attribute, removing from ring" "Removing invalid user attribute" - "User id does not verify as UTF-8!" + "User ID does not verify as UTF-8!" "New public subkey found, but secret subkey dummy generation is not supported!" @@ -1028,7 +1024,7 @@ "Filename: %s" "MIME type: %s" "Modification time: %s" - "Filesize: %s" + "File size: %s" "Verifying signature data" "Integrity check error!" "OK" @@ -1180,6 +1176,13 @@ "An error occurred when searching for keys." + + "Exporting log" + "Error opening file" + "No file name specified!" + "I/O error writing to file!" + "Log exported successfully!" + "Click to clear cached passphrases" "OpenKeychain has cached %d passphrases" @@ -1201,11 +1204,10 @@ "No certificates for this key" "Only validated self-certificates and validated certificates created with your keys are displayed here." "Identities for " - "The keys you are importing contain “identities”: names and emails. Select exactly those for certification which match what you expected." + "The keys you are importing contain “identities”: names and emails. Select exactly those for confirmation which match what you expected." "Compare the displayed fingerprint, character by character, with the one displayed on your partners device." "Do the displayed fingerprints match?" "Revocation Reason" - "Verification Status" "Type" "Key not found!" "Error processing key!" 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 index c866dc22b..1861415d7 160000 --- a/extern/openpgp-api-lib +++ b/extern/openpgp-api-lib @@ -1 +1 @@ -Subproject commit c866dc22bcfa004ec2c46bc86c08694e76d1058d +Subproject commit 1861415d77f46a466a0ae654ee72f5768f1eed14 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'