diff options
604 files changed, 1375 insertions, 1821 deletions
diff --git a/.gitmodules b/.gitmodules index 8238c3f80..1577e4f83 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,9 +19,11 @@ [submodule "extern/minidns"] path = extern/minidns url = https://github.com/open-keychain/minidns.git + ignore = dirty [submodule "extern/TokenAutoComplete"] path = extern/TokenAutoComplete url = https://github.com/open-keychain/TokenAutoComplete [submodule "extern/safeslinger-exchange"] path = extern/safeslinger-exchange - url = https://github.com/open-keychain/exchange-android + url = https://github.com/open-keychain/exchange-android + ignore = dirty diff --git a/.tx/config b/.tx/config index c7ec499c4..fe16cc2f4 100644 --- a/.tx/config +++ b/.tx/config @@ -17,14 +17,9 @@ file_filter = OpenKeychain/src/main/res/raw-<lang>/help_changelog.html source_file = OpenKeychain/src/main/res/raw/help_changelog.html source_lang = en -[open-keychain.help-wot] -file_filter = OpenKeychain/src/main/res/raw-<lang>/help_wot.html -source_file = OpenKeychain/src/main/res/raw/help_wot.html -source_lang = en - -[open-keychain.help-nfc-beam] -file_filter = OpenKeychain/src/main/res/raw-<lang>/help_nfc_beam.html -source_file = OpenKeychain/src/main/res/raw/help_nfc_beam.html +[open-keychain.help-certification] +file_filter = OpenKeychain/src/main/res/raw-<lang>/help_certification.html +source_file = OpenKeychain/src/main/res/raw/help_certification.html source_lang = en [open-keychain.help-start] @@ -32,7 +27,3 @@ file_filter = OpenKeychain/src/main/res/raw-<lang>/help_start.html source_file = OpenKeychain/src/main/res/raw/help_start.html source_lang = en -[open-keychain.nfc-beam-share] -file_filter = OpenKeychain/src/main/res/raw-<lang>/nfc_beam_share.html -source_file = OpenKeychain/src/main/res/raw/nfc_beam_share.html -source_lang = en diff --git a/Graphics/android-icon-copier/README.md b/Graphics/android-icon-copier/README.md index 3e12ae472..5e00ae376 100644 --- a/Graphics/android-icon-copier/README.md +++ b/Graphics/android-icon-copier/README.md @@ -73,6 +73,9 @@ Mapping vars: Options file ============ + +*In this project, if you need to fetch new icons, rename options.templ.json to options.json. And then run script get-material-icons.sh* + Named `options.json` in same dir. Sample: ```json { diff --git a/Graphics/android-icon-copier/options.templ.json b/Graphics/android-icon-copier/options.templ.json index 319d90f42..c680d399f 100644 --- a/Graphics/android-icon-copier/options.templ.json +++ b/Graphics/android-icon-copier/options.templ.json @@ -1,5 +1,5 @@ { - "basePath": "~/Documents", + "basePath": "../../", "filenameMap": { "classic": "ic_action_{name}{bgSuffix}.png", "fa": "ic_action_fa_{name}{bgSuffix}.png", diff --git a/Graphics/drawables/ic_cloud_search_24px.svg b/Graphics/drawables/ic_cloud_search.svg index 3b20e2d90..3b20e2d90 100644 --- a/Graphics/drawables/ic_cloud_search_24px.svg +++ b/Graphics/drawables/ic_cloud_search.svg diff --git a/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png Binary files differnew file mode 100644 index 000000000..d5420e3b3 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_18dp.png 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 Binary files differnew file mode 100644 index 000000000..7df34be77 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_24dp.png 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 Binary files differnew file mode 100644 index 000000000..970f44336 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_36dp.png 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 Binary files differnew file mode 100644 index 000000000..80bcc9e62 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_black_48dp.png 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 Binary files differnew file mode 100644 index 000000000..3cbf76ba3 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_18dp.png 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 Binary files differnew file mode 100644 index 000000000..af3bc9d05 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c9e69db00 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_36dp.png 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 Binary files differnew file mode 100644 index 000000000..e0999bd81 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_grey600_48dp.png 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 Binary files differnew file mode 100644 index 000000000..a23143024 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_18dp.png 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 Binary files differnew file mode 100644 index 000000000..8fed05005 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..387d046b4 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_36dp.png 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 Binary files differnew file mode 100644 index 000000000..d45e7a4b6 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-hdpi/ic_key_plus_white_48dp.png 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 Binary files differnew file mode 100644 index 000000000..ef4f8b36e --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_18dp.png 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 Binary files differnew file mode 100644 index 000000000..797d1f492 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_24dp.png 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 Binary files differnew file mode 100644 index 000000000..7df34be77 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_36dp.png 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 Binary files differnew file mode 100644 index 000000000..8bb7eb218 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_black_48dp.png 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 Binary files differnew file mode 100644 index 000000000..6ca369e37 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_18dp.png 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 Binary files differnew file mode 100644 index 000000000..6a9b6a9fe --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..af3bc9d05 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_36dp.png 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 Binary files differnew file mode 100644 index 000000000..144e82989 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_grey600_48dp.png 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 Binary files differnew file mode 100644 index 000000000..053348dbb --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_18dp.png 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 Binary files differnew file mode 100644 index 000000000..e52ae7e22 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..8fed05005 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_36dp.png 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 Binary files differnew file mode 100644 index 000000000..cb1ca76e4 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-mdpi/ic_key_plus_white_48dp.png 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 Binary files differnew file mode 100644 index 000000000..7df34be77 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_18dp.png 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 Binary files differnew file mode 100644 index 000000000..8bb7eb218 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_24dp.png 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 Binary files differnew file mode 100644 index 000000000..80bcc9e62 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_36dp.png 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 Binary files differnew file mode 100644 index 000000000..827aa4b85 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_black_48dp.png 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 Binary files differnew file mode 100644 index 000000000..af3bc9d05 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_18dp.png 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 Binary files differnew file mode 100644 index 000000000..144e82989 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e0999bd81 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_36dp.png 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 Binary files differnew file mode 100644 index 000000000..e69e5732c --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_grey600_48dp.png 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 Binary files differnew file mode 100644 index 000000000..8fed05005 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_18dp.png 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 Binary files differnew file mode 100644 index 000000000..cb1ca76e4 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..d45e7a4b6 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_36dp.png 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 Binary files differnew file mode 100644 index 000000000..e236e0176 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xhdpi/ic_key_plus_white_48dp.png 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 Binary files differnew file mode 100644 index 000000000..970f44336 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_18dp.png 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 Binary files differnew file mode 100644 index 000000000..80bcc9e62 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_24dp.png 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 Binary files differnew file mode 100644 index 000000000..28af77c8b --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_36dp.png 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 Binary files differnew file mode 100644 index 000000000..5b859b5c8 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_black_48dp.png 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 Binary files differnew file mode 100644 index 000000000..c9e69db00 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_18dp.png 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 Binary files differnew file mode 100644 index 000000000..e0999bd81 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3065946ce --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_36dp.png 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 Binary files differnew file mode 100644 index 000000000..e3f5674bc --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_grey600_48dp.png 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 Binary files differnew file mode 100644 index 000000000..387d046b4 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_18dp.png 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 Binary files differnew file mode 100644 index 000000000..d45e7a4b6 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c82204fa3 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_36dp.png 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 Binary files differnew file mode 100644 index 000000000..4694a2a20 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxhdpi/ic_key_plus_white_48dp.png 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 Binary files differnew file mode 100644 index 000000000..80bcc9e62 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_18dp.png 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 Binary files differnew file mode 100644 index 000000000..827aa4b85 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_24dp.png 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 Binary files differnew file mode 100644 index 000000000..5b859b5c8 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_36dp.png 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 Binary files differnew file mode 100644 index 000000000..7ab9fa2c3 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_black_48dp.png 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 Binary files differnew file mode 100644 index 000000000..e0999bd81 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_18dp.png 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 Binary files differnew file mode 100644 index 000000000..e69e5732c --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e3f5674bc --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_36dp.png 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 Binary files differnew file mode 100644 index 000000000..1151dfa16 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_grey600_48dp.png 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 Binary files differnew file mode 100644 index 000000000..d45e7a4b6 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_18dp.png 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 Binary files differnew file mode 100644 index 000000000..e236e0176 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4694a2a20 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_36dp.png 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 Binary files differnew file mode 100644 index 000000000..1d5f4942d --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable-xxxhdpi/ic_key_plus_white_48dp.png diff --git a/Graphics/drawables/originals/key-plus/drawable/key-plus.xml b/Graphics/drawables/originals/key-plus/drawable/key-plus.xml new file mode 100644 index 000000000..9cfdbe3e8 --- /dev/null +++ b/Graphics/drawables/originals/key-plus/drawable/key-plus.xml @@ -0,0 +1,8 @@ +<!-- drawable/key-plus.xml -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#000" android:pathData="M6.5,3C8.46,3 10.13,4.25 10.74,6H22V9H18V12H15V9H10.74C10.13,10.75 8.46,12 6.5,12C4,12 2,10 2,7.5C2,5 4,3 6.5,3M6.5,6A1.5,1.5 0 0,0 5,7.5A1.5,1.5 0 0,0 6.5,9A1.5,1.5 0 0,0 8,7.5A1.5,1.5 0 0,0 6.5,6M8,17H11V14H13V17H16V19H13V22H11V19H8V17Z" />
+</vector>
\ No newline at end of file diff --git a/Graphics/drawables/originals/key-plus/readme.txt b/Graphics/drawables/originals/key-plus/readme.txt new file mode 100644 index 000000000..cb0ceb16a --- /dev/null +++ b/Graphics/drawables/originals/key-plus/readme.txt @@ -0,0 +1,5 @@ +Thanks for visiting MaterialDesignIcons.com
+Check back often for new icons and follow @MaterialIcons for updates.
+
+Icon: key-plus
+By: Austin Andrews
\ No newline at end of file diff --git a/Graphics/get-material-icons.sh b/Graphics/get-material-icons.sh index f24735642..d34e572fc 100755 --- a/Graphics/get-material-icons.sh +++ b/Graphics/get-material-icons.sh @@ -10,6 +10,32 @@ 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 +python copy OpenKeychain communication grey vpn_key 24 # navigation drawer sections python copy OpenKeychain communication black vpn_key 24 @@ -25,4 +51,4 @@ python copy OpenKeychain av white play_arrow 24 python copy OpenKeychain file white folder 24 # multi select -python copy OpenKeychain action white lock 24
\ No newline at end of file +python copy OpenKeychain action white lock 24 diff --git a/Graphics/update-drawables.sh b/Graphics/update-drawables.sh index 2e73641f5..4784af204 100755 --- a/Graphics/update-drawables.sh +++ b/Graphics/update-drawables.sh @@ -10,17 +10,6 @@ XXXDPI_DIR=$APP_DIR/res/drawable-xxxhdpi PLAY_DIR=./drawables/ SRC_DIR=./drawables/ - - -# Launcher Icon: -# ----------------------- -# mdpi: 48x48 -# hdpi: 72x72 -# xhdpi: 96x96 -# xxhdpi: 144x144. -# xxxhdpi 192x192. -# google play: 512x512 - # Adobe Illustrator (.ai) exports by Tha Phlash are way better than the Inkscape exports (.svg) #NAME="ic_launcher" @@ -32,38 +21,24 @@ SRC_DIR=./drawables/ #inkscape -w 192 -h 192 -e "$XXXDPI_DIR/$NAME.png" $NAME.svg #inkscape -w 512 -h 512 -e "$PLAY_DIR/$NAME.png" $NAME.svg -# Actionbar Icons -# ----------------------- -# mdpi: 32x32 -# hdpi: 48x48 -# xhdpi: 64x64 -# xxhdpi: 96x96 - -for NAME in "ic_action_search_cloud" "ic_cloud_search_24px" "ic_action_encrypt_file" "ic_action_encrypt_text" "ic_action_verified_cutout" -do -echo $NAME -inkscape -w 32 -h 32 -e "$MDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -inkscape -w 48 -h 48 -e "$HDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -inkscape -w 64 -h 64 -e "$XDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -inkscape -w 96 -h 96 -e "$XXDPI_DIR/$NAME.png" "$SRC_DIR/$NAME.svg" -done -for NAME in "status_lock_closed" "status_lock_error" "status_lock_open" "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" "key_flag_authenticate" "key_flag_certify" "key_flag_encrypt" "key_flag_sign" +for NAME in "ic_cloud_search" "ic_action_encrypt_file" "ic_action_encrypt_text" "ic_action_verified_cutout" "status_lock_closed" "status_lock_error" "status_lock_open" "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" "key_flag_authenticate" "key_flag_certify" "key_flag_encrypt" "key_flag_sign" do echo $NAME -inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 32 -h 32 -e "$HDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 64 -h 64 -e "$XXDPI_DIR/${NAME}_24px.png" "$SRC_DIR/$NAME.svg" +inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 36 -h 36 -e "$HDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 72 -h 72 -e "$XXDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 96 -h 96 -e "$XXXDPI_DIR/${NAME}_24dp.png" "$SRC_DIR/$NAME.svg" done for NAME in "status_signature_expired_cutout" "status_signature_invalid_cutout" "status_signature_revoked_cutout" "status_signature_unknown_cutout" "status_signature_unverified_cutout" "status_signature_verified_cutout" do echo $NAME -inkscape -w 96 -h 96 -e "$MDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 128 -h 128 -e "$HDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 192 -h 192 -e "$XDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" -inkscape -w 256 -h 256 -e "$XXDPI_DIR/${NAME}_96px.png" "$SRC_DIR/$NAME.svg" +inkscape -w 96 -h 96 -e "$MDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 128 -h 128 -e "$HDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 192 -h 192 -e "$XDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" +inkscape -w 256 -h 256 -e "$XXDPI_DIR/${NAME}_96dp.png" "$SRC_DIR/$NAME.svg" done for NAME in "create_key_robot" diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java index 67fa30a44..30d855a74 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java @@ -19,6 +19,8 @@ package org.sufficientlysecure.keychain; import android.os.Environment; +import org.spongycastle.bcpg.HashAlgorithmTags; +import org.spongycastle.bcpg.SymmetricKeyAlgorithmTags; import org.spongycastle.jce.provider.BouncyCastleProvider; import java.io.File; @@ -26,6 +28,8 @@ import java.io.File; public final class Constants { public static final boolean DEBUG = BuildConfig.DEBUG; + public static final boolean DEBUG_LOG_DB_QUERIES = false; + public static final boolean DEBUG_SYNC_REMOVE_CONTACTS = false; public static final String TAG = "Keychain"; @@ -33,6 +37,7 @@ public final class Constants { public static final String ACCOUNT_NAME = "OpenKeychain"; public static final String ACCOUNT_TYPE = PACKAGE_NAME + ".account"; + public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key"; // as defined in http://tools.ietf.org/html/rfc3156, section 7 public static final String NFC_MIME = "application/pgp-keys"; @@ -49,8 +54,6 @@ public final class Constants { public static final String INTENT_PREFIX = PACKAGE_NAME + ".action."; public static final String EXTRA_PREFIX = PACKAGE_NAME + "."; - public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key"; - public static final int TEMPFILE_TTL = 24 * 60 * 60 * 1000; // 1 day public static final String SAFESLINGER_SERVER = "safeslinger-openpgp.appspot.com"; @@ -61,24 +64,17 @@ public final class Constants { } public static final class Pref { - public static final String DEFAULT_ENCRYPTION_ALGORITHM = "defaultEncryptionAlgorithm"; - public static final String DEFAULT_HASH_ALGORITHM = "defaultHashAlgorithm"; - public static final String DEFAULT_ASCII_ARMOR = "defaultAsciiArmor"; - public static final String DEFAULT_MESSAGE_COMPRESSION = "defaultMessageCompression"; - public static final String DEFAULT_FILE_COMPRESSION = "defaultFileCompression"; public static final String PASSPHRASE_CACHE_TTL = "passphraseCacheTtl"; public static final String PASSPHRASE_CACHE_SUBS = "passphraseCacheSubs"; public static final String LANGUAGE = "language"; public static final String KEY_SERVERS = "keyServers"; public static final String PREF_DEFAULT_VERSION = "keyServersDefaultVersion"; - public static final String WRITE_VERSION_HEADER = "writeVersionHeader"; public static final String FIRST_TIME = "firstTime"; - public static final String SHOW_ADVANCED_TABS = "showAdvancedTabs"; public static final String CACHED_CONSOLIDATE = "cachedConsolidate"; public static final String SEARCH_KEYSERVER = "search_keyserver_pref"; public static final String SEARCH_KEYBASE = "search_keybase_pref"; public static final String USE_DEFAULT_YUBIKEY_PIN = "useDefaultYubikeyPin"; - public static final String USE_NUMKEYPAD_FOR_YUBIKEY_PIN="useNumKeypadForYubikeyPin"; + public static final String USE_NUMKEYPAD_FOR_YUBIKEY_PIN = "useNumKeypadForYubikeyPin"; } public static final class Defaults { @@ -90,4 +86,5 @@ public final class Constants { public static final int none = 0; public static final int symmetric = -1; } + } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java index 8f10377cd..20dba95e9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java @@ -505,10 +505,6 @@ public class ImportExportOperation extends BaseOperation { // Create an output stream try { arOutStream = new ArmoredOutputStream(outStream); - String version = PgpHelper.getVersionForHeader(mContext); - if (version != null) { - arOutStream.setHeader("Version", version); - } log.add(LogType.MSG_EXPORT_PUBLIC, 1, KeyFormattingUtils.beautifyKeyId(keyId)); @@ -533,10 +529,6 @@ public class ImportExportOperation extends BaseOperation { if (exportSecret && cursor.getInt(3) > 0) { try { arOutStream = new ArmoredOutputStream(outStream); - String version = PgpHelper.getVersionForHeader(mContext); - if (version != null) { - arOutStream.setHeader("Version", version); - } // export secret key part log.add(LogType.MSG_EXPORT_SECRET, 2, KeyFormattingUtils.beautifyKeyId(keyId)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java index f79900aab..a96cec8cf 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java @@ -38,6 +38,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; /** Represent the result of an operation. * @@ -51,6 +53,56 @@ import java.util.List; public abstract class OperationResult implements Parcelable { public static final String EXTRA_RESULT = "operation_result"; + public static final UUID NULL_UUID = new UUID(0,0); + + /** + * A HashMap of UUID:OperationLog which contains logs that we don't need + * to care about. This is used such that when we become parceled, we are + * well below the 1Mbit boundary that is specified. + */ + private static ConcurrentHashMap<UUID, OperationLog> dehydratedLogs; + static { + // Static initializer for ConcurrentHashMap + dehydratedLogs = new ConcurrentHashMap<UUID,OperationLog>(); + } + + /** + * Dehydrate a log (such that it is available after deparcelization) + * + * Returns the NULL uuid (0) if you hand it null. + * @param log An OperationLog to dehydrate + * @return a UUID, the ticket for your dehydrated log + * + */ + private static UUID dehydrateLog(OperationLog log) { + if(log == null) { + return NULL_UUID; + } + else { + UUID ticket = UUID.randomUUID(); + dehydratedLogs.put(ticket, log); + return ticket; + } + } + + /*** + * Rehydrate a log after going through parcelization, invalidating its place in the + * dehydration pool. + * This is used such that when parcelized, the parcel is no larger than 1mbit. + * @param ticket A UUID ticket that identifies the log in question. + * @return An OperationLog. + */ + private static OperationLog rehydrateLog(UUID ticket) { + // UUID.equals isn't well documented; we use compareTo instead. + if( NULL_UUID.compareTo(ticket) == 0 ) { + return null; + } + else { + OperationLog log = dehydratedLogs.get(ticket); + dehydratedLogs.remove(ticket); + return log; + } + } /** Holds the overall result, the number specifying varying degrees of success: * - The first bit is 0 on overall success, 1 on overall failure @@ -65,7 +117,7 @@ public abstract class OperationResult implements Parcelable { public static final int RESULT_WARNINGS = 4; /// A list of log entries tied to the operation result. - final OperationLog mLog; + protected OperationLog mLog; public OperationResult(int result, OperationLog log) { mResult = result; @@ -74,8 +126,11 @@ public abstract class OperationResult implements Parcelable { public OperationResult(Parcel source) { mResult = source.readInt(); - mLog = new OperationLog(); - mLog.addAll(source.createTypedArrayList(LogEntryParcel.CREATOR)); + long mostSig = source.readLong(); + long leastSig = source.readLong(); + UUID mTicket = new UUID(mostSig, leastSig); + // fetch the dehydrated log out of storage (this removes it from the dehydration pool) + mLog = rehydrateLog(mTicket); } public int getResult() { @@ -571,6 +626,7 @@ public abstract class OperationResult implements Parcelable { MSG_DC_ERROR_NO_DATA (LogLevel.ERROR, R.string.msg_dc_error_no_data), MSG_DC_ERROR_NO_KEY (LogLevel.ERROR, R.string.msg_dc_error_no_key), MSG_DC_ERROR_PGP_EXCEPTION (LogLevel.ERROR, R.string.msg_dc_error_pgp_exception), + MSG_DC_ERROR_UNSUPPORTED_HASH_ALGO (LogLevel.ERROR, R.string.msg_dc_error_unsupported_hash_algo), MSG_DC_INTEGRITY_CHECK_OK (LogLevel.INFO, R.string.msg_dc_integrity_check_ok), MSG_DC_OK_META_ONLY (LogLevel.OK, R.string.msg_dc_ok_meta_only), MSG_DC_OK (LogLevel.OK, R.string.msg_dc_ok), @@ -585,6 +641,7 @@ public abstract class OperationResult implements Parcelable { MSG_DC_TRAIL_SYM (LogLevel.DEBUG, R.string.msg_dc_trail_sym), MSG_DC_TRAIL_UNKNOWN (LogLevel.DEBUG, R.string.msg_dc_trail_unknown), MSG_DC_UNLOCKING (LogLevel.INFO, R.string.msg_dc_unlocking), + MSG_DC_OLD_SYMMETRIC_ENCRYPTION_ALGO (LogLevel.WARN, R.string.msg_dc_old_symmetric_encryption_algo), // verify signed literal data MSG_VL (LogLevel.INFO, R.string.msg_vl), @@ -707,6 +764,13 @@ public abstract class OperationResult implements Parcelable { MSG_DEL_CONSOLIDATE (LogLevel.DEBUG, R.string.msg_del_consolidate), MSG_DEL_OK (LogLevel.OK, R.plurals.msg_del_ok), MSG_DEL_FAIL (LogLevel.WARN, R.plurals.msg_del_fail), + + //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; @@ -739,9 +803,11 @@ public abstract class OperationResult implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mResult); - if (mLog != null) { - dest.writeTypedList(mLog.toList()); - } + // Get a ticket for our log. + UUID mTicket = dehydrateLog(mLog); + // And write out the UUID most and least significant bits. + dest.writeLong(mTicket.getMostSignificantBits()); + dest.writeLong(mTicket.getLeastSignificantBits()); } public static class OperationLog implements Iterable<LogEntryParcel> { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKey.java index 40f2f48ad..fe5db8c6d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKey.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.pgp; import org.spongycastle.bcpg.HashAlgorithmTags; import org.spongycastle.bcpg.S2K; +import org.spongycastle.bcpg.SymmetricKeyAlgorithmTags; import org.spongycastle.openpgp.PGPException; import org.spongycastle.openpgp.PGPPrivateKey; import org.spongycastle.openpgp.PGPPublicKey; @@ -44,6 +45,7 @@ import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.util.IterableIterator; import org.sufficientlysecure.keychain.util.Log; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; @@ -137,7 +139,7 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey { // It means the passphrase is empty return SecretKeyType.PASSPHRASE_EMPTY; } catch (PGPException e) { - HashMap<String,String> notation = getRing().getLocalNotationData(); + HashMap<String, String> notation = getRing().getLocalNotationData(); if (notation.containsKey("unlock.pin@sufficientlysecure.org") && "1".equals(notation.get("unlock.pin@sufficientlysecure.org"))) { return SecretKeyType.PIN; @@ -176,33 +178,13 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey { } /** - * Returns a list of all supported hash algorithms. This list is currently hardcoded to return - * a limited set of algorithms supported by Yubikeys. - * - * @return + * Returns a list of all supported hash algorithms. */ - public LinkedList<Integer> getSupportedHashAlgorithms() { - LinkedList<Integer> supported = new LinkedList<>(); - - if (mPrivateKeyState == PRIVATE_KEY_STATE_DIVERT_TO_CARD) { - // No support for MD5 - supported.add(HashAlgorithmTags.RIPEMD160); - supported.add(HashAlgorithmTags.SHA1); - supported.add(HashAlgorithmTags.SHA224); - supported.add(HashAlgorithmTags.SHA256); - supported.add(HashAlgorithmTags.SHA384); - supported.add(HashAlgorithmTags.SHA512); // preferred is latest - } else { - supported.add(HashAlgorithmTags.MD5); - supported.add(HashAlgorithmTags.RIPEMD160); - supported.add(HashAlgorithmTags.SHA1); - supported.add(HashAlgorithmTags.SHA224); - supported.add(HashAlgorithmTags.SHA256); - supported.add(HashAlgorithmTags.SHA384); - supported.add(HashAlgorithmTags.SHA512); // preferred is latest - } + public ArrayList<Integer> getSupportedHashAlgorithms() { + // TODO: intersection between preferred hash algos of this key and PgpConstants.PREFERRED_HASH_ALGORITHMS + // choose best algo - return supported; + return PgpConstants.sPreferredHashAlgorithms; } private PGPContentSignerBuilder getContentSignerBuilder(int hashAlgo, byte[] nfcSignedHash, @@ -358,7 +340,7 @@ public class CanonicalizedSecretKey extends CanonicalizedPublicKey { } // HACK, for TESTING ONLY!! - PGPPrivateKey getPrivateKey () { + PGPPrivateKey getPrivateKey() { return mPrivateKey; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKeyRing.java index b5f6a5b09..97b5fa6fe 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/CanonicalizedSecretKeyRing.java @@ -19,11 +19,11 @@ package org.sufficientlysecure.keychain.pgp; import org.spongycastle.openpgp.PGPKeyRing; -import org.spongycastle.openpgp.PGPObjectFactory; import org.spongycastle.openpgp.PGPPublicKey; import org.spongycastle.openpgp.PGPSecretKey; import org.spongycastle.openpgp.PGPSecretKeyRing; import org.spongycastle.openpgp.PGPSignature; +import org.spongycastle.openpgp.jcajce.JcaPGPObjectFactory; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.util.IterableIterator; @@ -45,7 +45,7 @@ public class CanonicalizedSecretKeyRing extends CanonicalizedKeyRing { public CanonicalizedSecretKeyRing(byte[] blob, boolean isRevoked, int verified) { super(verified); - PGPObjectFactory factory = new PGPObjectFactory(blob); + JcaPGPObjectFactory factory = new JcaPGPObjectFactory(blob); PGPKeyRing keyRing = null; try { if ((keyRing = (PGPKeyRing) factory.nextObject()) == null) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConstants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConstants.java new file mode 100644 index 000000000..90991ba15 --- /dev/null +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConstants.java @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2015 Dominik Schürmann <dominik@dominikschuermann.de> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +package org.sufficientlysecure.keychain.pgp; + +import org.spongycastle.bcpg.CompressionAlgorithmTags; +import org.spongycastle.bcpg.HashAlgorithmTags; +import org.spongycastle.bcpg.SymmetricKeyAlgorithmTags; + +import java.util.ArrayList; + +public class PgpConstants { + + public static ArrayList<Integer> sPreferredSymmetricAlgorithms = new ArrayList<>(); + public static ArrayList<Integer> sPreferredHashAlgorithms = new ArrayList<>(); + public static ArrayList<Integer> sPreferredCompressionAlgorithms = new ArrayList<>(); + + // TODO: use hashmaps for contains in O(1) and intersections! + + /* + * Most preferred is first + * These arrays are written as preferred algorithms into the keys on creation. + * Other implementations may choose to honor this selection. + * + * These lists also define the only algorithms which are used in OpenKeychain. + * We do not support algorithms such as MD5 + */ + static { + sPreferredSymmetricAlgorithms.add(SymmetricKeyAlgorithmTags.AES_256); + sPreferredSymmetricAlgorithms.add(SymmetricKeyAlgorithmTags.AES_192); + sPreferredSymmetricAlgorithms.add(SymmetricKeyAlgorithmTags.AES_128); + sPreferredSymmetricAlgorithms.add(SymmetricKeyAlgorithmTags.TWOFISH); + + // NOTE: some implementations do not support SHA512, thus we choose SHA256 as default (Mailvelope?) + sPreferredHashAlgorithms.add(HashAlgorithmTags.SHA256); + sPreferredHashAlgorithms.add(HashAlgorithmTags.SHA512); + sPreferredHashAlgorithms.add(HashAlgorithmTags.SHA384); + sPreferredHashAlgorithms.add(HashAlgorithmTags.SHA224); + sPreferredHashAlgorithms.add(HashAlgorithmTags.SHA1); + sPreferredHashAlgorithms.add(HashAlgorithmTags.RIPEMD160); + + sPreferredCompressionAlgorithms.add(CompressionAlgorithmTags.ZLIB); + sPreferredCompressionAlgorithms.add(CompressionAlgorithmTags.BZIP2); + sPreferredCompressionAlgorithms.add(CompressionAlgorithmTags.ZIP); + } + + /* + * Note: s2kcount is a number between 0 and 0xff that controls the + * number of times to iterate the password hash before use. More + * iterations are useful against offline attacks, as it takes more + * time to check each password. The actual number of iterations is + * rather complex, and also depends on the hash function in use. + * Refer to Section 3.7.1.3 in rfc4880.txt. Bigger numbers give + * you more iterations. As a rough rule of thumb, when using + * SHA256 as the hashing function, 0x10 gives you about 64 + * iterations, 0x20 about 128, 0x30 about 256 and so on till 0xf0, + * or about 1 million iterations. The maximum you can go to is + * 0xff, or about 2 million iterations. + * from http://kbsriram.com/2013/01/generating-rsa-keys-with-bouncycastle.html + * + * Bouncy Castle default: 0x60 + * kbsriram proposes: 0xc0 + * OpenKeychain: 0x90 + */ + public static final int SECRET_KEY_ENCRYPTOR_S2K_COUNT = 0x90; + public static final int SECRET_KEY_ENCRYPTOR_HASH_ALGO = HashAlgorithmTags.SHA256; + public static final int SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO = SymmetricKeyAlgorithmTags.AES_256; + public static final int SECRET_KEY_SIGNATURE_HASH_ALGO = HashAlgorithmTags.SHA256; + // NOTE: only SHA1 is supported for key checksum calculations in OpenPGP, + // see http://tools.ietf.org/html/rfc488 0#section-5.5.3 + public static final int SECRET_KEY_SIGNATURE_CHECKSUM_HASH_ALGO = HashAlgorithmTags.SHA1; + + public static interface OpenKeychainSymmetricKeyAlgorithmTags extends SymmetricKeyAlgorithmTags { + public static final int USE_PREFERRED = -1; + } + + public static interface OpenKeychainHashAlgorithmTags extends HashAlgorithmTags { + public static final int USE_PREFERRED = -1; + } + + public static interface OpenKeychainCompressionAlgorithmTags extends CompressionAlgorithmTags { + public static final int USE_PREFERRED = -1; + } + + public static int[] getAsArray(ArrayList<Integer> list) { + int[] array = new int[list.size()]; + for (int i = 0; i < list.size(); i++) { + array[i] = list.get(i); + } + return array; + } +} diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java index 2ba0b6231..14bc56538 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java @@ -563,6 +563,7 @@ public class PgpDecryptVerify extends BaseOperation { log.add(LogType.MSG_DC_PREP_STREAMS, indent); // we made sure above one of these two would be true + int symmetricEncryptionAlgo; if (symmetricPacketFound) { currentProgress += 2; updateProgress(R.string.progress_preparing_streams, currentProgress, 100); @@ -576,6 +577,7 @@ public class PgpDecryptVerify extends BaseOperation { clear = encryptedDataSymmetric.getDataStream(decryptorFactory); encryptedData = encryptedDataSymmetric; + symmetricEncryptionAlgo = encryptedDataSymmetric.getSymmetricAlgorithm(decryptorFactory); } else if (asymmetricPacketFound) { currentProgress += 2; updateProgress(R.string.progress_extracting_key, currentProgress, 100); @@ -598,6 +600,8 @@ public class PgpDecryptVerify extends BaseOperation { PublicKeyDataDecryptorFactory decryptorFactory = secretEncryptionKey.getDecryptorFactory(mDecryptedSessionKey); clear = encryptedDataAsymmetric.getDataStream(decryptorFactory); + + symmetricEncryptionAlgo = encryptedDataAsymmetric.getSymmetricAlgorithm(decryptorFactory); } catch (NfcSyncPublicKeyDataDecryptorFactoryBuilder.NfcInteractionNeeded e) { log.add(LogType.MSG_DC_PENDING_NFC, indent + 1); DecryptVerifyResult result = @@ -614,6 +618,11 @@ public class PgpDecryptVerify extends BaseOperation { return new DecryptVerifyResult(DecryptVerifyResult.RESULT_ERROR, log); } + // Warn about old encryption algorithms! + if (!PgpConstants.sPreferredSymmetricAlgorithms.contains(symmetricEncryptionAlgo)) { + log.add(LogType.MSG_DC_OLD_SYMMETRIC_ENCRYPTION_ALGO, indent + 1); + } + JcaPGPObjectFactory plainFact = new JcaPGPObjectFactory(clear); Object dataChunk = plainFact.nextObject(); OpenPgpSignatureResultBuilder signatureResultBuilder = new OpenPgpSignatureResultBuilder(); @@ -811,6 +820,13 @@ public class PgpDecryptVerify extends BaseOperation { } else { log.add(LogType.MSG_DC_CLEAR_SIGNATURE_BAD, indent + 1); } + + // Don't allow verification of old hash algorithms! + if (!PgpConstants.sPreferredHashAlgorithms.contains(signature.getHashAlgorithm())) { + validSignature = false; + log.add(LogType.MSG_DC_ERROR_UNSUPPORTED_HASH_ALGO, indent + 1); + } + signatureResultBuilder.setValidSignature(validSignature); } @@ -936,6 +952,13 @@ public class PgpDecryptVerify extends BaseOperation { } else { log.add(LogType.MSG_DC_CLEAR_SIGNATURE_BAD, indent + 1); } + + // Don't allow verification of old hash algorithms! + if (!PgpConstants.sPreferredHashAlgorithms.contains(signature.getHashAlgorithm())) { + validSignature = false; + log.add(LogType.MSG_DC_ERROR_UNSUPPORTED_HASH_ALGO, indent + 1); + } + signatureResultBuilder.setValidSignature(validSignature); } catch (SignatureException e) { @@ -1024,6 +1047,13 @@ public class PgpDecryptVerify extends BaseOperation { } else { log.add(LogType.MSG_DC_CLEAR_SIGNATURE_BAD, indent + 1); } + + // Don't allow verification of old hash algorithms! + if (!PgpConstants.sPreferredHashAlgorithms.contains(signature.getHashAlgorithm())) { + validSignature = false; + log.add(LogType.MSG_DC_ERROR_UNSUPPORTED_HASH_ALGO, indent + 1); + } + signatureResultBuilder.setValidSignature(validSignature); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java index 12de2f637..d8b86a18c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java @@ -47,26 +47,6 @@ public class PgpHelper { ".*?(-----BEGIN PGP PUBLIC KEY BLOCK-----.*?-----END PGP PUBLIC KEY BLOCK-----).*", Pattern.DOTALL); - public static String getVersion(Context context) { - String version; - try { - PackageInfo pi = context.getPackageManager().getPackageInfo(Constants.PACKAGE_NAME, 0); - version = pi.versionName; - return version; - } catch (NameNotFoundException e) { - Log.e(Constants.TAG, "Version could not be retrieved!", e); - return "0.0"; - } - } - - public static String getVersionForHeader(Context context) { - if(Preferences.getPreferences(context).getWriteVersionHeader()){ - return "OpenKeychain v" + getVersion(context); - } else { - return null; - } - } - /** * Deletes file securely by overwriting it with random data before deleting it. * <p/> 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..8fb5392e3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -18,9 +18,7 @@ package org.sufficientlysecure.keychain.pgp; -import org.spongycastle.bcpg.CompressionAlgorithmTags; import org.spongycastle.bcpg.HashAlgorithmTags; -import org.spongycastle.bcpg.SymmetricKeyAlgorithmTags; import org.spongycastle.bcpg.sig.Features; import org.spongycastle.bcpg.sig.KeyFlags; import org.spongycastle.jce.spec.ElGamalParameterSpec; @@ -90,48 +88,6 @@ public class PgpKeyOperation { private Stack<Progressable> mProgress; private AtomicBoolean mCancelled; - // most preferred is first - private static final int[] PREFERRED_SYMMETRIC_ALGORITHMS = new int[]{ - SymmetricKeyAlgorithmTags.AES_256, - SymmetricKeyAlgorithmTags.AES_192, - SymmetricKeyAlgorithmTags.AES_128, - SymmetricKeyAlgorithmTags.CAST5 - }; - private static final int[] PREFERRED_HASH_ALGORITHMS = new int[]{ - HashAlgorithmTags.SHA512, - HashAlgorithmTags.SHA384, - HashAlgorithmTags.SHA224, - HashAlgorithmTags.SHA256, - HashAlgorithmTags.RIPEMD160 - }; - private static final int[] PREFERRED_COMPRESSION_ALGORITHMS = new int[]{ - CompressionAlgorithmTags.ZLIB, - CompressionAlgorithmTags.BZIP2, - CompressionAlgorithmTags.ZIP - }; - - /* - * Note: s2kcount is a number between 0 and 0xff that controls the - * number of times to iterate the password hash before use. More - * iterations are useful against offline attacks, as it takes more - * time to check each password. The actual number of iterations is - * rather complex, and also depends on the hash function in use. - * Refer to Section 3.7.1.3 in rfc4880.txt. Bigger numbers give - * you more iterations. As a rough rule of thumb, when using - * SHA256 as the hashing function, 0x10 gives you about 64 - * iterations, 0x20 about 128, 0x30 about 256 and so on till 0xf0, - * or about 1 million iterations. The maximum you can go to is - * 0xff, or about 2 million iterations. - * from http://kbsriram.com/2013/01/generating-rsa-keys-with-bouncycastle.html - * - * Bouncy Castle default: 0x60 - * kbsriram proposes 0xc0 - * we use 0x90, a good trade-off between usability and security against offline attacks - */ - 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; - public PgpKeyOperation(Progressable progress) { super(); if (progress != null) { @@ -345,14 +301,14 @@ public class PgpKeyOperation { // Build key encrypter and decrypter based on passphrase PGPDigestCalculator encryptorHashCalc = new JcaPGPDigestCalculatorProviderBuilder() - .build().get(SECRET_KEY_ENCRYPTOR_HASH_ALGO); + .build().get(PgpConstants.SECRET_KEY_ENCRYPTOR_HASH_ALGO); PBESecretKeyEncryptor keyEncryptor = new JcePBESecretKeyEncryptorBuilder( - SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO, encryptorHashCalc, SECRET_KEY_ENCRYPTOR_S2K_COUNT) + PgpConstants.SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO, + encryptorHashCalc, PgpConstants.SECRET_KEY_ENCRYPTOR_S2K_COUNT) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build("".toCharArray()); - // NOTE: only SHA1 is supported for key checksum calculations. PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder() - .build().get(HashAlgorithmTags.SHA1); + .build().get(PgpConstants.SECRET_KEY_SIGNATURE_CHECKSUM_HASH_ALGO); PGPSecretKey masterSecretKey = new PGPSecretKey(keyPair.getPrivateKey(), keyPair.getPublicKey(), sha1Calc, true, keyEncryptor); @@ -879,14 +835,14 @@ public class PgpKeyOperation { PGPSecretKey sKey; { // Build key encrypter and decrypter based on passphrase PGPDigestCalculator encryptorHashCalc = new JcaPGPDigestCalculatorProviderBuilder() - .build().get(SECRET_KEY_ENCRYPTOR_HASH_ALGO); + .build().get(PgpConstants.SECRET_KEY_ENCRYPTOR_HASH_ALGO); PBESecretKeyEncryptor keyEncryptor = new JcePBESecretKeyEncryptorBuilder( - SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO, encryptorHashCalc, SECRET_KEY_ENCRYPTOR_S2K_COUNT) + PgpConstants.SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO, encryptorHashCalc, + PgpConstants.SECRET_KEY_ENCRYPTOR_S2K_COUNT) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(passphrase.toCharArray()); - // NOTE: only SHA1 is supported for key checksum calculations. PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder() - .build().get(HashAlgorithmTags.SHA1); + .build().get(PgpConstants.SECRET_KEY_SIGNATURE_CHECKSUM_HASH_ALGO); sKey = new PGPSecretKey(keyPair.getPrivateKey(), pKey, sha1Calc, false, keyEncryptor); } @@ -1025,7 +981,8 @@ 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(), + PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); { // set subpackets @@ -1051,7 +1008,8 @@ public class PgpKeyOperation { // add packet with "pin" notation data PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), + PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); { // set subpackets @@ -1098,12 +1056,13 @@ public class PgpKeyOperation { OperationLog log, int indent) throws PGPException { PGPDigestCalculator encryptorHashCalc = new JcaPGPDigestCalculatorProviderBuilder().build() - .get(SECRET_KEY_ENCRYPTOR_HASH_ALGO); + .get(PgpConstants.SECRET_KEY_ENCRYPTOR_HASH_ALGO); PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder().setProvider( Constants.BOUNCY_CASTLE_PROVIDER_NAME).build(passphrase.toCharArray()); // Build key encryptor based on new passphrase PBESecretKeyEncryptor keyEncryptorNew = new JcePBESecretKeyEncryptorBuilder( - SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO, encryptorHashCalc, SECRET_KEY_ENCRYPTOR_S2K_COUNT) + PgpConstants.SECRET_KEY_ENCRYPTOR_SYMMETRIC_ALGO, encryptorHashCalc, + PgpConstants.SECRET_KEY_ENCRYPTOR_S2K_COUNT) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build( newPassphrase.toCharArray()); @@ -1236,7 +1195,8 @@ public class PgpKeyOperation { int flags, long expiry) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), + PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); @@ -1253,9 +1213,12 @@ public class PgpKeyOperation { * error than be ignored. */ /* non-critical subpackets: */ - hashedPacketsGen.setPreferredSymmetricAlgorithms(false, PREFERRED_SYMMETRIC_ALGORITHMS); - hashedPacketsGen.setPreferredHashAlgorithms(false, PREFERRED_HASH_ALGORITHMS); - hashedPacketsGen.setPreferredCompressionAlgorithms(false, PREFERRED_COMPRESSION_ALGORITHMS); + hashedPacketsGen.setPreferredSymmetricAlgorithms(false, + PgpConstants.getAsArray(PgpConstants.sPreferredSymmetricAlgorithms)); + hashedPacketsGen.setPreferredHashAlgorithms(false, + PgpConstants.getAsArray(PgpConstants.sPreferredHashAlgorithms)); + hashedPacketsGen.setPreferredCompressionAlgorithms(false, + PgpConstants.getAsArray(PgpConstants.sPreferredCompressionAlgorithms)); hashedPacketsGen.setPrimaryUserID(false, primary); /* critical subpackets: we consider those important for a modern pgp implementation */ @@ -1279,7 +1242,8 @@ public class PgpKeyOperation { PGPUserAttributeSubpacketVector vector) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512) + masterPrivateKey.getPublicKeyPacket().getAlgorithm(), + PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); @@ -1298,7 +1262,8 @@ 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(), + PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator(); @@ -1312,7 +1277,7 @@ public class PgpKeyOperation { PGPPublicKey masterPublicKey, PGPPrivateKey masterPrivateKey, PGPPublicKey pKey) throws IOException, PGPException, SignatureException { PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPublicKey.getAlgorithm(), HashAlgorithmTags.SHA512) + masterPublicKey.getAlgorithm(), PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator(); @@ -1356,7 +1321,7 @@ public class PgpKeyOperation { PGPSignatureSubpacketGenerator subHashedPacketsGen = new PGPSignatureSubpacketGenerator(); subHashedPacketsGen.setSignatureCreationTime(false, creationTime); PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - pKey.getAlgorithm(), HashAlgorithmTags.SHA512) + pKey.getAlgorithm(), PgpConstants.SECRET_KEY_SIGNATURE_HASH_ALGO) .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME); PGPSignatureGenerator sGen = new PGPSignatureGenerator(signerBuilder); sGen.init(PGPSignature.PRIMARYKEY_BINDING, subPrivateKey); @@ -1377,7 +1342,7 @@ public class PgpKeyOperation { } PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder( - masterPublicKey.getAlgorithm(), HashAlgorithmTags.SHA512) + masterPublicKey.getAlgorithm(), PgpConstants.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/pgp/PgpSignEncryptInput.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInput.java index 9318be006..1ed0a4720 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInput.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptInput.java @@ -12,10 +12,10 @@ public class PgpSignEncryptInput { protected int mCompressionId = CompressionAlgorithmTags.UNCOMPRESSED; protected long[] mEncryptionMasterKeyIds = null; protected String mSymmetricPassphrase = null; - protected int mSymmetricEncryptionAlgorithm = 0; + protected int mSymmetricEncryptionAlgorithm = PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED; protected long mSignatureMasterKeyId = Constants.key.none; protected Long mSignatureSubKeyId = null; - protected int mSignatureHashAlgorithm = 0; + protected int mSignatureHashAlgorithm = PgpConstants.OpenKeychainHashAlgorithmTags.USE_PREFERRED; protected String mSignaturePassphrase = null; protected long mAdditionalEncryptId = Constants.key.none; protected byte[] mNfcSignedHash = null; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java index 2fa01d241..81cc2c847 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncryptOperation.java @@ -25,7 +25,6 @@ import org.spongycastle.bcpg.ArmoredOutputStream; import org.spongycastle.bcpg.BCPGOutputStream; import org.spongycastle.bcpg.CompressionAlgorithmTags; import org.spongycastle.openpgp.PGPCompressedDataGenerator; -import org.spongycastle.openpgp.PGPEncryptedData; import org.spongycastle.openpgp.PGPEncryptedDataGenerator; import org.spongycastle.openpgp.PGPException; import org.spongycastle.openpgp.PGPLiteralData; @@ -58,6 +57,7 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.security.SignatureException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.LinkedList; @@ -206,12 +206,12 @@ public class PgpSignEncryptOperation extends BaseOperation { return new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_ERROR, log); } - // check if hash algo is supported + // Use preferred hash algo int requestedAlgorithm = input.getSignatureHashAlgorithm(); - LinkedList<Integer> supported = signingKey.getSupportedHashAlgorithms(); - if (requestedAlgorithm == 0) { + ArrayList<Integer> supported = signingKey.getSupportedHashAlgorithms(); + if (requestedAlgorithm == PgpConstants.OpenKeychainHashAlgorithmTags.USE_PREFERRED) { // get most preferred - input.setSignatureHashAlgorithm(supported.getLast()); + input.setSignatureHashAlgorithm(supported.get(0)); } else if (!supported.contains(requestedAlgorithm)) { log.add(LogType.MSG_PSE_ERROR_HASH_ALGO, indent); return new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_ERROR, log); @@ -222,9 +222,13 @@ public class PgpSignEncryptOperation extends BaseOperation { /* Initialize PGPEncryptedDataGenerator for later usage */ PGPEncryptedDataGenerator cPk = null; if (enableEncryption) { + + // Use preferred encryption algo int algo = input.getSymmetricEncryptionAlgorithm(); - if (algo == 0) { - algo = PGPEncryptedData.AES_128; + if (algo == PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED) { + // get most preferred + // TODO: get from recipients + algo = PgpConstants.sPreferredSymmetricAlgorithms.get(0); } // has Integrity packet enabled! JcePGPDataEncryptorBuilder encryptorBuilder = diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java index 2601c1f69..4ccfc3cd9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java @@ -650,7 +650,7 @@ public class KeychainProvider extends ContentProvider { cursor.setNotificationUri(getContext().getContentResolver(), uri); } - if (Constants.DEBUG) { + if (Constants.DEBUG && Constants.DEBUG_LOG_DB_QUERIES) { Log.d(Constants.TAG, "Query: " + qb.buildQuery(projection, selection, selectionArgs, null, null, diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java index d947ae053..6366e8536 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java @@ -1372,8 +1372,7 @@ public class ProviderHelper { UncachedKeyRing keyRing = UncachedKeyRing.decodeFromData(data); ByteArrayOutputStream bos = new ByteArrayOutputStream(); - String version = PgpHelper.getVersionForHeader(mContext); - keyRing.encodeArmored(bos, version); + keyRing.encodeArmored(bos, null); String armoredKey = bos.toString("UTF-8"); Log.d(Constants.TAG, "armoredKey:" + armoredKey); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index 1a65b1bee..03fa41984 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -30,13 +30,16 @@ import org.openintents.openpgp.OpenPgpError; import org.openintents.openpgp.OpenPgpMetadata; import org.openintents.openpgp.OpenPgpSignatureResult; import org.openintents.openpgp.util.OpenPgpApi; +import org.spongycastle.bcpg.CompressionAlgorithmTags; import org.spongycastle.util.encoders.Hex; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogEntryParcel; import org.sufficientlysecure.keychain.operations.results.PgpSignEncryptResult; +import org.sufficientlysecure.keychain.pgp.PgpConstants; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerify; import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyOperation; import org.sufficientlysecure.keychain.pgp.PgpSignEncryptInput; import org.sufficientlysecure.keychain.pgp.PgpSignEncryptOperation; import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; @@ -52,6 +55,7 @@ import org.sufficientlysecure.keychain.ui.PassphraseDialogActivity; import org.sufficientlysecure.keychain.ui.ViewKeyActivity; import org.sufficientlysecure.keychain.util.InputData; import org.sufficientlysecure.keychain.util.Log; +import org.sufficientlysecure.keychain.util.Preferences; import java.io.IOException; import java.io.InputStream; @@ -258,8 +262,8 @@ public class OpenPgpService extends RemoteService { .setEnableAsciiArmorOutput(asciiArmor) .setCleartextSignature(cleartextSign) .setDetachedSignature(!cleartextSign) - .setVersionHeader(PgpHelper.getVersionForHeader(this)) - .setSignatureHashAlgorithm(accSettings.getHashAlgorithm()) + .setVersionHeader(null) + .setSignatureHashAlgorithm(PgpConstants.OpenKeychainHashAlgorithmTags.USE_PREFERRED) .setSignatureMasterKeyId(accSettings.getKeyId()) .setNfcState(nfcSignedHash, nfcCreationDate); @@ -356,9 +360,9 @@ public class OpenPgpService extends RemoteService { PgpSignEncryptInput pseInput = new PgpSignEncryptInput(); pseInput.setEnableAsciiArmorOutput(asciiArmor) - .setVersionHeader(PgpHelper.getVersionForHeader(this)) - .setCompressionId(accSettings.getCompression()) - .setSymmetricEncryptionAlgorithm(accSettings.getEncryptionAlgorithm()) + .setVersionHeader(null) + .setCompressionId(CompressionAlgorithmTags.UNCOMPRESSED) + .setSymmetricEncryptionAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED) .setEncryptionMasterKeyIds(keyIds) .setFailOnMissingEncryptionKeyIds(true) .setAdditionalEncryptId(accSettings.getKeyId()); // add acc key for encryption @@ -374,7 +378,7 @@ public class OpenPgpService extends RemoteService { } // sign and encrypt - pseInput.setSignatureHashAlgorithm(accSettings.getHashAlgorithm()) + pseInput.setSignatureHashAlgorithm(PgpConstants.OpenKeychainHashAlgorithmTags.USE_PREFERRED) .setSignatureMasterKeyId(accSettings.getKeyId()) .setNfcState(nfcSignedHash, nfcCreationDate); } 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 091418304..115614808 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.ui.widget.passwordstrengthindicator.PasswordStrengthView; import org.sufficientlysecure.keychain.util.ContactHelper; @@ -187,7 +188,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..60103f344 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; } @@ -242,7 +243,7 @@ public abstract class DecryptFragment extends Fragment { private void setShowAction(final long signatureKeyId) { mSignatureAction.setText(R.string.decrypt_result_action_show); - mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0); + mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_vpn_key_grey_24dp, 0); mSignatureLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java index 54fe369a7..baf445293 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java @@ -28,6 +28,7 @@ public interface EncryptActivityInterface { } public boolean isUseArmor(); + public boolean isUseCompression(); public long getSignatureKey(); public long[] getEncryptionKeys(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java index 1286617d3..11b596c24 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFilesActivity.java @@ -25,11 +25,13 @@ import android.support.v4.app.Fragment; import android.view.Menu; import android.view.MenuItem; +import org.spongycastle.bcpg.CompressionAlgorithmTags; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.api.OpenKeychainIntents; import org.sufficientlysecure.keychain.operations.results.SignEncryptResult; import org.sufficientlysecure.keychain.pgp.KeyRing; +import org.sufficientlysecure.keychain.pgp.PgpConstants; import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.ui.dialog.DeleteFileDialogFragment; import org.sufficientlysecure.keychain.ui.util.Notify; @@ -66,6 +68,7 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi private long mSigningKeyId = Constants.key.none; private String mPassphrase = ""; private boolean mUseArmor; + private boolean mUseCompression; private boolean mDeleteAfterEncrypt = false; private boolean mShareAfterEncrypt = false; private ArrayList<Uri> mInputUris; @@ -82,6 +85,11 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi } @Override + public boolean isUseCompression() { + return mUseCompression; + } + + @Override public long getSignatureKey() { return mSigningKeyId; } @@ -196,10 +204,13 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi data.addInputUris(mInputUris); data.addOutputUris(mOutputUris); - data.setCompressionId(Preferences.getPreferences(this).getDefaultMessageCompression()); - - // Always use armor for messages - data.setEnableAsciiArmorOutput(mUseArmor); + if (mUseCompression) { + data.setCompressionId(PgpConstants.sPreferredCompressionAlgorithms.get(0)); + } else { + data.setCompressionId(CompressionAlgorithmTags.UNCOMPRESSED); + } + data.setSymmetricEncryptionAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED); + data.setSignatureHashAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED); if (isModeSymmetric()) { Log.d(Constants.TAG, "Symmetric encryption enabled!"); @@ -315,8 +326,6 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi // Handle intent actions handleActions(getIntent()); updateModeFragment(); - - mUseArmor = Preferences.getPreferences(this).getDefaultAsciiArmor(); } @Override @@ -327,7 +336,6 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.encrypt_file_activity, menu); - menu.findItem(R.id.check_use_armor).setChecked(mUseArmor); return super.onCreateOptionsMenu(menu); } @@ -348,21 +356,30 @@ public class EncryptFilesActivity extends EncryptActivity implements EncryptActi item.setChecked(!item.isChecked()); } switch (item.getItemId()) { - case R.id.check_use_symmetric: + case R.id.check_use_symmetric: { mCurrentMode = item.isChecked() ? MODE_SYMMETRIC : MODE_ASYMMETRIC; updateModeFragment(); notifyUpdate(); break; - case R.id.check_use_armor: + } + case R.id.check_use_armor: { mUseArmor = item.isChecked(); notifyUpdate(); break; - case R.id.check_delete_after_encrypt: + } + case R.id.check_delete_after_encrypt: { mDeleteAfterEncrypt = item.isChecked(); notifyUpdate(); break; - default: + } + case R.id.check_enable_compression: { + mUseCompression = item.isChecked(); + notifyUpdate(); + break; + } + default: { return super.onOptionsItemSelected(item); + } } return true; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java index 2dd861d07..08ff5b962 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java @@ -25,12 +25,14 @@ import android.support.v4.app.Fragment; import android.view.Menu; import android.view.MenuItem; +import org.spongycastle.bcpg.CompressionAlgorithmTags; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.api.OpenKeychainIntents; import org.sufficientlysecure.keychain.compatibility.ClipboardReflection; import org.sufficientlysecure.keychain.operations.results.SignEncryptResult; import org.sufficientlysecure.keychain.pgp.KeyRing; +import org.sufficientlysecure.keychain.pgp.PgpConstants; import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.util.Log; @@ -70,6 +72,7 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv private ArrayList<Uri> mInputUris; private ArrayList<Uri> mOutputUris; private String mMessage = ""; + private boolean mUseCompression; public boolean isModeSymmetric() { return MODE_SYMMETRIC == mCurrentMode; @@ -81,6 +84,11 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv } @Override + public boolean isUseCompression() { + return mUseCompression; + } + + @Override public long getSignatureKey() { return mSigningKeyId; } @@ -189,7 +197,13 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv data.setBytes(mMessage.getBytes()); data.setCleartextSignature(true); - data.setCompressionId(Preferences.getPreferences(this).getDefaultMessageCompression()); + if (mUseCompression) { + data.setCompressionId(PgpConstants.sPreferredCompressionAlgorithms.get(0)); + } else { + data.setCompressionId(CompressionAlgorithmTags.UNCOMPRESSED); + } + data.setSymmetricEncryptionAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED); + data.setSignatureHashAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED); // Always use armor for messages data.setEnableAsciiArmorOutput(true); @@ -328,13 +342,20 @@ public class EncryptTextActivity extends EncryptActivity implements EncryptActiv item.setChecked(!item.isChecked()); } switch (item.getItemId()) { - case R.id.check_use_symmetric: + case R.id.check_use_symmetric: { mCurrentMode = item.isChecked() ? MODE_SYMMETRIC : MODE_ASYMMETRIC; updateModeFragment(); notifyUpdate(); break; - default: + } + case R.id.check_enable_compression: { + mUseCompression = item.isChecked(); + notifyUpdate(); + break; + } + default: { return super.onOptionsItemSelected(item); + } } return 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..43d893fa6 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; @@ -678,9 +678,6 @@ public class KeyListFragment extends LoaderFragment /** * Bind cursor data to the item list view - * <p/> - * NOTE: CursorAdapter already implements the ViewHolder pattern in its getView() method. - * Thus no ViewHolder is required here. */ @Override public void bindView(View view, Context context, Cursor cursor) { @@ -708,21 +705,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 +731,10 @@ public class KeyListFragment extends LoaderFragment } else { // this is a public key - show if it's verified if (isVerified) { - KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, KeyFormattingUtils.STATE_VERIFIED); + KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, State.VERIFIED); h.mStatus.setVisibility(View.VISIBLE); } else { - KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, KeyFormattingUtils.STATE_UNVERIFIED); + KeyFormattingUtils.setStatusImage(getActivity(), h.mStatus, State.UNVERIFIED); h.mStatus.setVisibility(View.VISIBLE); } h.mSlinger.setVisibility(View.GONE); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java index b655a7e55..138f2f4e7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/LogDisplayFragment.java @@ -22,9 +22,13 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; +import android.os.Parcel; import android.support.v4.app.ListFragment; import android.util.TypedValue; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; @@ -33,11 +37,19 @@ import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogEntryParcel; import org.sufficientlysecure.keychain.operations.results.OperationResult.LogLevel; import org.sufficientlysecure.keychain.operations.results.OperationResult.SubLogEntryParcel; +import org.sufficientlysecure.keychain.util.FileHelper; +import org.sufficientlysecure.keychain.util.Log; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; +import java.util.Iterator; public class LogDisplayFragment extends ListFragment implements OnItemClickListener { @@ -46,6 +58,12 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe OperationResult mResult; public static final String EXTRA_RESULT = "log"; + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setHasOptionsMenu(true); + } @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -70,6 +88,183 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe getListView().setFastScrollEnabled(true); getListView().setDividerHeight(0); + + } + + @Override + public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { + inflater.inflate(R.menu.log_display, menu); + + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_log_display_export_log: + exportLog(); + break; + } + + return super.onOptionsItemSelected(item); + } + + private void exportLog() { + + showExportLogDialog(new File(Constants.Path.APP_DIR, "export.log")); + } + + private void writeToLogFile(final OperationResult.OperationLog operationLog, final File f) { + OperationResult.OperationLog currLog = new OperationResult.OperationLog(); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG, 0); + + boolean error = false; + + PrintWriter pw = null; + try { + pw = new PrintWriter(f); + pw.print(getPrintableOperationLog(operationLog, "")); + if (pw.checkError()) {//IOException + Log.e(Constants.TAG, "Log Export I/O Exception " + f.getAbsolutePath()); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING, 1); + error = true; + } + } catch (FileNotFoundException e) { + Log.e(Constants.TAG, "File not found for exporting log " + f.getAbsolutePath()); + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_FOPEN, 1); + error = true; + } + if (pw != null) { + pw.close(); + if (!error && pw.checkError()) {//check if it is only pw.close() which generated error + currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_ERROR_WRITING, 1); + error = true; + } + } + + if (!error) currLog.add(OperationResult.LogType.MSG_EXPORT_LOG_EXPORT_SUCCESS, 1); + + int opResultCode = error ? OperationResult.RESULT_ERROR : OperationResult.RESULT_OK; + OperationResult opResult = new LogExportResult(opResultCode, currLog); + opResult.createNotify(getActivity()).show(); + } + + /** + * returns an indented String of an entire OperationLog + * + * @param opLog log to be converted to indented, printable format + * @param basePadding padding to add at the start of all log entries, made for use with SubLogs + * @return printable, indented version of passed operationLog + */ + private String getPrintableOperationLog(OperationResult.OperationLog opLog, String basePadding) { + String log = ""; + for (Iterator<LogEntryParcel> logIterator = opLog.iterator(); logIterator.hasNext(); ) { + log += getPrintableLogEntry(logIterator.next(), basePadding) + "\n"; + } + log = log.substring(0, log.length() - 1);//gets rid of extra new line + return log; + } + + /** + * returns an indented String of a LogEntryParcel including any sub-logs it may contain + * + * @param entryParcel log entryParcel whose String representation is to be obtained + * @return indented version of passed log entryParcel in a readable format + */ + private String getPrintableLogEntry(OperationResult.LogEntryParcel entryParcel, + String basePadding) { + + final String indent = " ";//4 spaces = 1 Indent level + + String padding = basePadding; + for (int i = 0; i < entryParcel.mIndent; i++) { + padding += indent; + } + String logText = padding; + + switch (entryParcel.mType.mLevel) { + case DEBUG: + logText += "[DEBUG]"; + break; + case INFO: + logText += "[INFO]"; + break; + case WARN: + logText += "[WARN]"; + break; + case ERROR: + logText += "[ERROR]"; + break; + case START: + logText += "[START]"; + break; + case OK: + logText += "[OK]"; + break; + case CANCELLED: + logText += "[CANCELLED]"; + break; + } + + // special case: first parameter may be a quantity + if (entryParcel.mParameters != null && entryParcel.mParameters.length > 0 + && entryParcel.mParameters[0] instanceof Integer) { + logText += getResources().getQuantityString(entryParcel.mType.getMsgId(), + (Integer) entryParcel.mParameters[0], + entryParcel.mParameters); + } else { + logText += getResources().getString(entryParcel.mType.getMsgId(), + entryParcel.mParameters); + } + + if (entryParcel instanceof SubLogEntryParcel) { + OperationResult subResult = ((SubLogEntryParcel) entryParcel).getSubResult(); + LogEntryParcel subEntry = subResult.getLog().getLast(); + if (subEntry != null) { + //the first line of log of subResult is same as entryParcel, so replace logText + logText = getPrintableOperationLog(subResult.getLog(), padding); + } + } + + return logText; + } + + private void showExportLogDialog(final File exportFile) { + + String title = this.getString(R.string.title_export_log); + + String message = this.getString(R.string.specify_file_to_export_log_to); + + FileHelper.saveFile(new FileHelper.FileDialogCallback() { + @Override + public void onFileSelected(File file, boolean checked) { + writeToLogFile(mResult.getLog(), file); + } + }, this.getActivity().getSupportFragmentManager(), title, message, exportFile, null); + } + + private static class LogExportResult extends OperationResult { + + public static Creator<LogExportResult> CREATOR = new Creator<LogExportResult>() { + public LogExportResult createFromParcel(final Parcel source) { + return new LogExportResult(source); + } + + public LogExportResult[] newArray(final int size) { + return new LogExportResult[size]; + } + }; + + public LogExportResult(int result, OperationLog log) { + super(result, log); + } + + /** + * trivial but necessary to implement the Parcelable protocol. + */ + public LogExportResult(Parcel source) { + super(source); + } } @Override @@ -109,7 +304,7 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe mSecondImg = secondImg; } } - + // Check if convertView.setPadding is redundant @Override public View getView(int position, View convertView, ViewGroup parent) { LogEntryParcel entry = getItem(position); @@ -132,7 +327,6 @@ public class LogDisplayFragment extends ListFragment implements OnItemClickListe if (entry instanceof SubLogEntryParcel) { ih.mSub.setVisibility(View.VISIBLE); convertView.setClickable(false); - convertView.setPadding((entry.mIndent) * dipFactor, 0, 0, 0); OperationResult result = ((SubLogEntryParcel) entry).getSubResult(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java index d5ca08936..bb669f6b8 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; } @@ -228,33 +253,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. @@ -322,7 +330,7 @@ public class PassphraseDialogActivity extends FragmentActivity { return; } - mInput.setVisibility(View.GONE); + mInput.setVisibility(View.INVISIBLE); mProgress.setVisibility(View.VISIBLE); positive.setEnabled(false); @@ -364,7 +372,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/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java index 53986a392..210960b65 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java @@ -33,8 +33,6 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import org.spongycastle.bcpg.CompressionAlgorithmTags; -import org.spongycastle.bcpg.HashAlgorithmTags; -import org.spongycastle.openpgp.PGPEncryptedData; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.widget.IntegerListPreference; @@ -93,12 +91,6 @@ public class SettingsActivity extends PreferenceActivity { initializePassphraseCacheTtl( (IntegerListPreference) findPreference(Constants.Pref.PASSPHRASE_CACHE_TTL)); - initializeEncryptionAlgorithm( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_ENCRYPTION_ALGORITHM)); - - initializeHashAlgorithm( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_HASH_ALGORITHM)); - int[] valueIds = new int[]{ CompressionAlgorithmTags.UNCOMPRESSED, CompressionAlgorithmTags.ZIP, @@ -115,20 +107,6 @@ public class SettingsActivity extends PreferenceActivity { values[i] = "" + valueIds[i]; } - initializeMessageCompression( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_MESSAGE_COMPRESSION), - entries, values); - - initializeFileCompression( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_FILE_COMPRESSION), - entries, values); - - initializeAsciiArmor( - (CheckBoxPreference) findPreference(Constants.Pref.DEFAULT_ASCII_ARMOR)); - - initializeWriteVersionHeader( - (CheckBoxPreference) findPreference(Constants.Pref.WRITE_VERSION_HEADER)); - initializeUseDefaultYubikeyPin( (CheckBoxPreference) findPreference(Constants.Pref.USE_DEFAULT_YUBIKEY_PIN)); @@ -265,12 +243,6 @@ public class SettingsActivity extends PreferenceActivity { initializePassphraseCacheTtl( (IntegerListPreference) findPreference(Constants.Pref.PASSPHRASE_CACHE_TTL)); - initializeEncryptionAlgorithm( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_ENCRYPTION_ALGORITHM)); - - initializeHashAlgorithm( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_HASH_ALGORITHM)); - int[] valueIds = new int[]{ CompressionAlgorithmTags.UNCOMPRESSED, CompressionAlgorithmTags.ZIP, @@ -290,20 +262,6 @@ public class SettingsActivity extends PreferenceActivity { values[i] = "" + valueIds[i]; } - initializeMessageCompression( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_MESSAGE_COMPRESSION), - entries, values); - - initializeFileCompression( - (IntegerListPreference) findPreference(Constants.Pref.DEFAULT_FILE_COMPRESSION), - entries, values); - - initializeAsciiArmor( - (CheckBoxPreference) findPreference(Constants.Pref.DEFAULT_ASCII_ARMOR)); - - initializeWriteVersionHeader( - (CheckBoxPreference) findPreference(Constants.Pref.WRITE_VERSION_HEADER)); - initializeUseDefaultYubikeyPin( (CheckBoxPreference) findPreference(Constants.Pref.USE_DEFAULT_YUBIKEY_PIN)); @@ -344,113 +302,6 @@ public class SettingsActivity extends PreferenceActivity { }); } - private static void initializeEncryptionAlgorithm(final IntegerListPreference mEncryptionAlgorithm) { - int valueIds[] = {PGPEncryptedData.AES_128, PGPEncryptedData.AES_192, - PGPEncryptedData.AES_256, PGPEncryptedData.BLOWFISH, PGPEncryptedData.TWOFISH, - PGPEncryptedData.CAST5, PGPEncryptedData.DES, PGPEncryptedData.TRIPLE_DES, - PGPEncryptedData.IDEA,}; - String entries[] = {"AES-128", "AES-192", "AES-256", "Blowfish", "Twofish", "CAST5", - "DES", "Triple DES", "IDEA",}; - String values[] = new String[valueIds.length]; - for (int i = 0; i < values.length; ++i) { - values[i] = "" + valueIds[i]; - } - mEncryptionAlgorithm.setEntries(entries); - mEncryptionAlgorithm.setEntryValues(values); - mEncryptionAlgorithm.setValue("" + sPreferences.getDefaultEncryptionAlgorithm()); - mEncryptionAlgorithm.setSummary(mEncryptionAlgorithm.getEntry()); - mEncryptionAlgorithm - .setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - mEncryptionAlgorithm.setValue(newValue.toString()); - mEncryptionAlgorithm.setSummary(mEncryptionAlgorithm.getEntry()); - sPreferences.setDefaultEncryptionAlgorithm(Integer.parseInt(newValue - .toString())); - return false; - } - }); - } - - private static void initializeHashAlgorithm(final IntegerListPreference mHashAlgorithm) { - int[] valueIds = new int[]{HashAlgorithmTags.RIPEMD160, - HashAlgorithmTags.SHA1, HashAlgorithmTags.SHA224, HashAlgorithmTags.SHA256, - HashAlgorithmTags.SHA384, HashAlgorithmTags.SHA512,}; - String[] entries = new String[]{"RIPEMD-160", "SHA-1", "SHA-224", "SHA-256", "SHA-384", - "SHA-512",}; - String[] values = new String[valueIds.length]; - for (int i = 0; i < values.length; ++i) { - values[i] = "" + valueIds[i]; - } - mHashAlgorithm.setEntries(entries); - mHashAlgorithm.setEntryValues(values); - mHashAlgorithm.setValue("" + sPreferences.getDefaultHashAlgorithm()); - mHashAlgorithm.setSummary(mHashAlgorithm.getEntry()); - mHashAlgorithm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - mHashAlgorithm.setValue(newValue.toString()); - mHashAlgorithm.setSummary(mHashAlgorithm.getEntry()); - sPreferences.setDefaultHashAlgorithm(Integer.parseInt(newValue.toString())); - return false; - } - }); - } - - private static void initializeMessageCompression(final IntegerListPreference mMessageCompression, - String[] entries, String[] values) { - mMessageCompression.setEntries(entries); - mMessageCompression.setEntryValues(values); - mMessageCompression.setValue("" + sPreferences.getDefaultMessageCompression()); - mMessageCompression.setSummary(mMessageCompression.getEntry()); - mMessageCompression - .setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - mMessageCompression.setValue(newValue.toString()); - mMessageCompression.setSummary(mMessageCompression.getEntry()); - sPreferences.setDefaultMessageCompression(Integer.parseInt(newValue - .toString())); - return false; - } - }); - } - - private static void initializeFileCompression - (final IntegerListPreference mFileCompression, String[] entries, String[] values) { - mFileCompression.setEntries(entries); - mFileCompression.setEntryValues(values); - mFileCompression.setValue("" + sPreferences.getDefaultFileCompression()); - mFileCompression.setSummary(mFileCompression.getEntry()); - mFileCompression.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - mFileCompression.setValue(newValue.toString()); - mFileCompression.setSummary(mFileCompression.getEntry()); - sPreferences.setDefaultFileCompression(Integer.parseInt(newValue.toString())); - return false; - } - }); - } - - private static void initializeAsciiArmor(final CheckBoxPreference mAsciiArmor) { - mAsciiArmor.setChecked(sPreferences.getDefaultAsciiArmor()); - mAsciiArmor.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - mAsciiArmor.setChecked((Boolean) newValue); - sPreferences.setDefaultAsciiArmor((Boolean) newValue); - return false; - } - }); - } - - private static void initializeWriteVersionHeader(final CheckBoxPreference mWriteVersionHeader) { - mWriteVersionHeader.setChecked(sPreferences.getWriteVersionHeader()); - mWriteVersionHeader.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange(Preference preference, Object newValue) { - mWriteVersionHeader.setChecked((Boolean) newValue); - sPreferences.setWriteVersionHeader((Boolean) newValue); - return false; - } - }); - } - private static void initializeSearchKeyserver(final CheckBoxPreference mSearchKeyserver) { Preferences.CloudSearchPrefs prefs = sPreferences.getCloudSearchPrefs(); mSearchKeyserver.setChecked(prefs.searchKeyserver); 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 0be6c26f6..1b4fc503c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -74,16 +74,15 @@ import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; 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 @@ -105,7 +104,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; @@ -121,6 +120,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; @@ -147,7 +149,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); @@ -173,7 +175,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 @@ -347,7 +349,7 @@ public class ViewKeyActivity extends BaseActivity implements MenuItem editKey = menu.findItem(R.id.menu_key_view_edit); editKey.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; } @@ -398,12 +400,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) { @@ -750,7 +752,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, @@ -760,7 +762,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; @@ -809,9 +811,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 @@ -821,10 +822,10 @@ public class ViewKeyActivity extends BaseActivity implements // this is done at the end of the animation otherwise } - AsyncTask<String, Void, Bitmap> photoTask = - new AsyncTask<String, Void, Bitmap>() { - protected Bitmap doInBackground(String... fingerprint) { - return ContactHelper.photoFromFingerprint(getContentResolver(), fingerprint[0]); + AsyncTask<Long, Void, Bitmap> photoTask = + new AsyncTask<Long, Void, Bitmap>() { + protected Bitmap doInBackground(Long... mMasterKeyId) { + return ContactHelper.loadPhotoByMasterKeyId(getContentResolver(), mMasterKeyId[0], true); } protected void onPostExecute(Bitmap photo) { @@ -835,11 +836,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); @@ -847,7 +848,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 { @@ -855,7 +856,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); @@ -868,10 +869,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 @@ -915,16 +916,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); @@ -932,27 +933,21 @@ public class ViewKeyActivity extends BaseActivity implements } if (mPreviousColor == 0 || mPreviousColor == color) { - mToolbar.setBackgroundColor(color); mStatusBar.setBackgroundColor(color); mBigToolbar.setBackgroundColor(color); mPreviousColor = color; } else { ObjectAnimator colorFade1 = - ObjectAnimator.ofObject(mToolbar, "backgroundColor", - new ArgbEvaluator(), mPreviousColor, color); - ObjectAnimator colorFade2 = ObjectAnimator.ofObject(mStatusBar, "backgroundColor", new ArgbEvaluator(), mPreviousColor, color); - ObjectAnimator colorFade3 = + ObjectAnimator colorFade2 = ObjectAnimator.ofObject(mBigToolbar, "backgroundColor", new ArgbEvaluator(), mPreviousColor, color); colorFade1.setDuration(1200); colorFade2.setDuration(1200); - colorFade3.setDuration(1200); colorFade1.start(); colorFade2.start(); - colorFade3.start(); mPreviousColor = color; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 9d79b377c..9390e8a69 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -43,8 +43,6 @@ import org.sufficientlysecure.keychain.util.ContactHelper; import org.sufficientlysecure.keychain.util.ExportHelper; import org.sufficientlysecure.keychain.util.Log; -import java.util.Date; - public class ViewKeyAdvActivity extends BaseActivity implements LoaderManager.LoaderCallbacks<Cursor> { @@ -159,7 +157,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements KeychainContract.KeyRings.MASTER_KEY_ID, KeychainContract.KeyRings.USER_ID, KeychainContract.KeyRings.IS_REVOKED, - KeychainContract.KeyRings.EXPIRY, + KeychainContract.KeyRings.IS_EXPIRED, KeychainContract.KeyRings.VERIFIED, KeychainContract.KeyRings.HAS_ANY_SECRET }; @@ -167,7 +165,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements static final int INDEX_MASTER_KEY_ID = 1; static final int INDEX_USER_ID = 2; static final int INDEX_IS_REVOKED = 3; - static final int INDEX_EXPIRY = 4; + static final int INDEX_IS_EXPIRED = 4; static final int INDEX_VERIFIED = 5; static final int INDEX_HAS_ANY_SECRET = 6; @@ -212,8 +210,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements boolean isSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0; boolean isRevoked = data.getInt(INDEX_IS_REVOKED) > 0; - boolean isExpired = !data.isNull(INDEX_EXPIRY) - && new Date(data.getLong(INDEX_EXPIRY) * 1000).before(new Date()); + boolean isExpired = data.getInt(INDEX_IS_EXPIRED) != 0; boolean isVerified = data.getInt(INDEX_VERIFIED) > 0; // Note: order is important diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java index 8d0a2dd1d..95a6faea9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java @@ -260,7 +260,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements static final String[] UNIFIED_PROJECTION = new String[]{ KeyRings._ID, KeyRings.MASTER_KEY_ID, KeyRings.HAS_ANY_SECRET, KeyRings.USER_ID, KeyRings.FINGERPRINT, - KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.EXPIRY, + KeyRings.ALGORITHM, KeyRings.KEY_SIZE, KeyRings.CREATION, KeyRings.IS_EXPIRED, }; static final int INDEX_UNIFIED_MASTER_KEY_ID = 1; @@ -270,7 +270,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements static final int INDEX_UNIFIED_ALGORITHM = 5; static final int INDEX_UNIFIED_KEY_SIZE = 6; static final int INDEX_UNIFIED_CREATION = 7; - static final int INDEX_UNIFIED_EXPIRY = 8; + static final int INDEX_UNIFIED_ID_EXPIRED = 8; public Loader<Cursor> onCreateLoader(int id, Bundle args) { setContentShown(false); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java index c4e6639a8..7bfebaf62 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvUserIdsFragment.java @@ -114,12 +114,12 @@ public class ViewKeyAdvUserIdsFragment extends LoaderFragment implements static final String[] UNIFIED_PROJECTION = new String[]{ KeyRings._ID, KeyRings.MASTER_KEY_ID, - KeyRings.HAS_ANY_SECRET, KeyRings.IS_REVOKED, KeyRings.EXPIRY, KeyRings.HAS_ENCRYPT + KeyRings.HAS_ANY_SECRET, KeyRings.IS_REVOKED, KeyRings.IS_EXPIRED, KeyRings.HAS_ENCRYPT }; static final int INDEX_UNIFIED_MASTER_KEY_ID = 1; static final int INDEX_UNIFIED_HAS_ANY_SECRET = 2; static final int INDEX_UNIFIED_IS_REVOKED = 3; - static final int INDEX_UNIFIED_EXPIRY = 4; + static final int INDEX_UNIFIED_IS_EXPIRED = 4; static final int INDEX_UNIFIED_HAS_ENCRYPT = 5; public Loader<Cursor> onCreateLoader(int id, Bundle args) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java index 32630b459..628970b27 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java @@ -121,7 +121,7 @@ public class ViewKeyFragment extends LoaderFragment 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, @@ -131,7 +131,7 @@ public class ViewKeyFragment extends LoaderFragment 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; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java index 25edc7a02..d22f01a48 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyTrustFragment.java @@ -115,12 +115,12 @@ public class ViewKeyTrustFragment extends LoaderFragment implements } static final String[] TRUST_PROJECTION = new String[]{ - KeyRings._ID, KeyRings.FINGERPRINT, KeyRings.IS_REVOKED, KeyRings.EXPIRY, + KeyRings._ID, KeyRings.FINGERPRINT, KeyRings.IS_REVOKED, KeyRings.IS_EXPIRED, KeyRings.HAS_ANY_SECRET, KeyRings.VERIFIED }; static final int INDEX_TRUST_FINGERPRINT = 1; static final int INDEX_TRUST_IS_REVOKED = 2; - static final int INDEX_TRUST_EXPIRY = 3; + static final int INDEX_TRUST_IS_EXPIRED = 3; static final int INDEX_UNIFIED_HAS_ANY_SECRET = 4; static final int INDEX_VERIFIED = 5; @@ -169,8 +169,7 @@ public class ViewKeyTrustFragment extends LoaderFragment implements nothingSpecial = false; } else { - Date expiryDate = new Date(data.getLong(INDEX_TRUST_EXPIRY) * 1000); - if (!data.isNull(INDEX_TRUST_EXPIRY) && expiryDate.before(new Date())) { + if (data.getInt(INDEX_TRUST_IS_EXPIRED) != 0) { // if expired, don’t trust it! message.append(getString(R.string.key_trust_expired)). diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java index 6ba9e26ad..429feb075 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java @@ -37,6 +37,7 @@ import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.Highlighter; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; import java.util.ArrayList; import java.util.HashMap; @@ -175,9 +176,9 @@ public class ImportKeysAdapter extends ArrayAdapter<ImportKeysListEntry> { } if (entry.isRevoked()) { - KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.REVOKED, R.color.bg_gray); } else if (entry.isExpired()) { - KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.EXPIRED, R.color.bg_gray); } if (entry.isRevoked() || entry.isExpired()) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/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 6a4f61f4b..3486f1516 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/dialog/AddSubkeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java index d5376cbdc..0b1d39fc1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java @@ -137,12 +137,10 @@ public class AddSubkeyDialogFragment extends DialogFragment { } }); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { - // date picker works based on default time zone - Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault()); - minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today) - mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime()); - } + // date picker works based on default time zone + Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault()); + minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today) + mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime()); { ArrayList<Choice<Algorithm>> choices = new ArrayList<>(); @@ -283,7 +281,7 @@ public class AddSubkeyDialogFragment extends DialogFragment { // For EC keys, add a curve if (algorithm == Algorithm.ECDH || algorithm == Algorithm.ECDSA) { curve = ((Choice<Curve>) mCurveSpinner.getSelectedItem()).getId(); - // Otherwise, get a keysize + // Otherwise, get a keysize } else { keySize = getProperKeyLength(algorithm, getSelectedKeyLength()); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java index d405b1dda..794af5b15 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CustomAlertDialogBuilder.java @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + package org.sufficientlysecure.keychain.ui.dialog; import android.app.AlertDialog; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java index 879e3f6da..07462b4ff 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java @@ -62,12 +62,9 @@ public class DeleteFileDialogFragment extends DialogFragment { CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity); - - alert.setIcon(R.drawable.ic_dialog_alert_holo_light); - alert.setTitle(R.string.warning); alert.setMessage(this.getString(R.string.file_delete_confirmation, deleteFilename)); - alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + alert.setPositiveButton(R.string.btn_delete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java index 802f0c11b..32789d53b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java @@ -83,8 +83,6 @@ public class DeleteKeyDialogFragment extends DialogFragment { mMainMessage = (TextView) mInflateView.findViewById(R.id.mainMessage); - builder.setTitle(R.string.warning); - final boolean hasSecret; // If only a single key has been selected @@ -110,12 +108,14 @@ public class DeleteKeyDialogFragment extends DialogFragment { } hasSecret = ((Long) data.get(KeyRings.HAS_ANY_SECRET)) == 1; - // Set message depending on which key it is. - mMainMessage.setText(getString( - hasSecret ? R.string.secret_key_deletion_confirmation - : R.string.public_key_deletetion_confirmation, - name - )); + if (hasSecret) { + // show title only for secret key deletions, + // see http://www.google.com/design/spec/components/dialogs.html#dialogs-behavior + builder.setTitle(getString(R.string.title_delete_secret_key, name)); + mMainMessage.setText(getString(R.string.secret_key_deletion_confirmation, name)); + } else { + mMainMessage.setText(getString(R.string.public_key_deletetion_confirmation, name)); + } } catch (ProviderHelper.NotFoundException e) { dismiss(); return null; @@ -125,7 +125,6 @@ public class DeleteKeyDialogFragment extends DialogFragment { hasSecret = false; } - builder.setIcon(R.drawable.ic_dialog_alert_holo_light); builder.setPositiveButton(R.string.btn_delete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java index fc618c9eb..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,61 +100,64 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment { final CheckBox noExpiry = (CheckBox) view.findViewById(R.id.edit_subkey_expiry_no_expiry); final DatePicker datePicker = (DatePicker) view.findViewById(R.id.edit_subkey_expiry_date_picker); + final TextView currentExpiry = (TextView) view.findViewById(R.id.edit_subkey_expiry_current_expiry); + final LinearLayout expiryLayout = (LinearLayout) view.findViewById(R.id.edit_subkey_expiry_layout); noExpiry.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { - datePicker.setVisibility(View.GONE); + expiryLayout.setVisibility(View.GONE); } else { - datePicker.setVisibility(View.VISIBLE); + expiryLayout.setVisibility(View.VISIBLE); } } }); - // init date picker with default selected date if (expiry == 0L) { noExpiry.setChecked(true); - datePicker.setVisibility(View.GONE); - - Calendar todayCal = Calendar.getInstance(TimeZone.getDefault()); - if (creationCal.after(todayCal)) { - // Note: This is just for the rare cases where creation is _after_ today - - // set it to creation date +1 day (don't set it to creationCal, it would break crash - // datePicker.setMinDate() execution with IllegalArgumentException - Calendar creationCalPlusOne = (Calendar) creationCal.clone(); - creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1); - datePicker.init( - creationCalPlusOne.get(Calendar.YEAR), - creationCalPlusOne.get(Calendar.MONTH), - creationCalPlusOne.get(Calendar.DAY_OF_MONTH), - null - ); - - } else { - // normally, just init with today - datePicker.init( - todayCal.get(Calendar.YEAR), - todayCal.get(Calendar.MONTH), - todayCal.get(Calendar.DAY_OF_MONTH), - null - ); - } + expiryLayout.setVisibility(View.GONE); + + currentExpiry.setText(R.string.btn_no_date); } else { noExpiry.setChecked(false); - datePicker.setVisibility(View.VISIBLE); + expiryLayout.setVisibility(View.VISIBLE); + + // convert from UTC to time zone of device + Calendar expiryCalTimeZone = (Calendar) expiryCal.clone(); + expiryCalTimeZone.setTimeZone(TimeZone.getDefault()); + currentExpiry.setText(DateFormat.getDateFormat( + getActivity()).format(expiryCalTimeZone.getTime())); + } + + // date picker works based on default time zone + Calendar todayCal = Calendar.getInstance(TimeZone.getDefault()); + if (creationCal.after(todayCal)) { + // NOTE: This is just for the rare cases where creation is _after_ today + // Min Date: Creation date + 1 day - // set date picker to current expiry + Calendar creationCalPlusOne = (Calendar) creationCal.clone(); + creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1); + datePicker.setMinDate(creationCalPlusOne.getTime().getTime()); datePicker.init( - expiryCal.get(Calendar.YEAR), - expiryCal.get(Calendar.MONTH), - expiryCal.get(Calendar.DAY_OF_MONTH), + creationCalPlusOne.get(Calendar.YEAR), + creationCalPlusOne.get(Calendar.MONTH), + creationCalPlusOne.get(Calendar.DAY_OF_MONTH), null ); - } + } else { + // Min Date: today + 1 day - datePicker.setMinDate(creationCal.getTime().getTime()); + // at least one day after creation (today) + todayCal.add(Calendar.DAY_OF_YEAR, 1); + datePicker.setMinDate(todayCal.getTime().getTime()); + datePicker.init( + todayCal.get(Calendar.YEAR), + todayCal.get(Calendar.MONTH), + todayCal.get(Calendar.DAY_OF_MONTH), + null + ); + } alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override 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/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index 38ed88b9c..c5403e054 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -379,27 +379,29 @@ public class KeyFormattingUtils { public static final int DEFAULT_COLOR = -1; - public static final int STATE_REVOKED = 1; - public static final int STATE_EXPIRED = 2; - public static final int STATE_VERIFIED = 3; - public static final int STATE_UNAVAILABLE = 4; - public static final int STATE_ENCRYPTED = 5; - public static final int STATE_NOT_ENCRYPTED = 6; - public static final int STATE_UNVERIFIED = 7; - public static final int STATE_UNKNOWN_KEY = 8; - public static final int STATE_INVALID = 9; - public static final int STATE_NOT_SIGNED = 10; - - public static void setStatusImage(Context context, ImageView statusIcon, int state) { + public static enum State { + REVOKED, + EXPIRED, + VERIFIED, + UNAVAILABLE, + ENCRYPTED, + NOT_ENCRYPTED, + UNVERIFIED, + UNKNOWN_KEY, + INVALID, + NOT_SIGNED + } + + public static void setStatusImage(Context context, ImageView statusIcon, State state) { setStatusImage(context, statusIcon, null, state); } - public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, int state) { + public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, State state) { setStatusImage(context, statusIcon, statusText, state, KeyFormattingUtils.DEFAULT_COLOR, false); } public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, - int state, int color) { + State state, int color) { setStatusImage(context, statusIcon, statusText, state, color, false); } @@ -407,16 +409,16 @@ public class KeyFormattingUtils { * Sets status image based on constant */ public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, - int state, int color, boolean big) { + State state, int color, boolean big) { switch (state) { /** GREEN: everything is good **/ - case STATE_VERIFIED: { + case VERIFIED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_green_light; @@ -428,9 +430,9 @@ public class KeyFormattingUtils { } break; } - case STATE_ENCRYPTED: { + case ENCRYPTED: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_lock_closed_24px)); + context.getResources().getDrawable(R.drawable.status_lock_closed_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_green_light; } @@ -442,13 +444,13 @@ public class KeyFormattingUtils { break; } /** ORANGE: mostly bad... **/ - case STATE_UNVERIFIED: { + case UNVERIFIED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_orange_light; @@ -460,9 +462,9 @@ public class KeyFormattingUtils { } break; } - case STATE_UNKNOWN_KEY: { + case UNKNOWN_KEY: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_orange_light; } @@ -474,13 +476,13 @@ public class KeyFormattingUtils { break; } /** RED: really bad... **/ - case STATE_REVOKED: { + case REVOKED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; @@ -492,13 +494,13 @@ public class KeyFormattingUtils { } break; } - case STATE_EXPIRED: { + case EXPIRED: { if (big) { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96px)); + context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_96dp)); } else { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; @@ -510,9 +512,9 @@ public class KeyFormattingUtils { } break; } - case STATE_NOT_ENCRYPTED: { + case NOT_ENCRYPTED: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_lock_open_24px)); + context.getResources().getDrawable(R.drawable.status_lock_open_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; } @@ -523,9 +525,9 @@ public class KeyFormattingUtils { } break; } - case STATE_NOT_SIGNED: { + case NOT_SIGNED: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; } @@ -536,9 +538,9 @@ public class KeyFormattingUtils { } break; } - case STATE_INVALID: { + case INVALID: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.android_red_light; } @@ -550,9 +552,9 @@ public class KeyFormattingUtils { break; } /** special **/ - case STATE_UNAVAILABLE: { + case UNAVAILABLE: { statusIcon.setImageDrawable( - context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24px)); + context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { color = R.color.bg_gray; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java index 6d0e6556f..fc912fccb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java @@ -31,6 +31,7 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.KeychainDatabase; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; public class CertifyKeySpinner extends KeySpinner { private long mHiddenMasterKeyId = Constants.key.none; @@ -103,16 +104,16 @@ public class CertifyKeySpinner extends KeySpinner { @Override boolean setStatus(Context context, Cursor cursor, ImageView statusView) { if (cursor.getInt(mIndexIsRevoked) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.REVOKED, R.color.bg_gray); return false; } if (cursor.getInt(mIndexIsExpired) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.EXPIRED, R.color.bg_gray); return false; } // don't invalidate the "None" entry, which is also null! if (cursor.getPosition() != 0 && cursor.isNull(mIndexHasCertify)) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_UNAVAILABLE, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.UNAVAILABLE, R.color.bg_gray); return false; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java index f05f5f96b..d20e2bc99 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java @@ -90,7 +90,7 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView { } private void setImageByKey(ImageView view, EncryptionKey key) { - Bitmap photo = ContactHelper.photoFromFingerprint(getContext().getContentResolver(), key.getFingerprint()); + Bitmap photo = ContactHelper.getCachedPhotoByMasterKeyId(getContext().getContentResolver(), key.getKeyId()); if (photo != null) { view.setImageBitmap(photo); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java index fe91e306e..10327a6a4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SignKeySpinner.java @@ -29,6 +29,7 @@ import android.widget.ImageView; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; +import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; public class SignKeySpinner extends KeySpinner { public SignKeySpinner(Context context) { @@ -84,15 +85,15 @@ public class SignKeySpinner extends KeySpinner { @Override boolean setStatus(Context context, Cursor cursor, ImageView statusView) { if (cursor.getInt(mIndexIsRevoked) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.REVOKED, R.color.bg_gray); return false; } if (cursor.getInt(mIndexIsExpired) != 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.EXPIRED, R.color.bg_gray); return false; } if (cursor.getInt(mIndexHasSign) == 0) { - KeyFormattingUtils.setStatusImage(getContext(), statusView, null, KeyFormattingUtils.STATE_UNAVAILABLE, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), statusView, null, State.UNAVAILABLE, R.color.bg_gray); return false; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java index 28480cee5..c66dc04d0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ContactHelper.java @@ -20,18 +20,15 @@ package org.sufficientlysecure.keychain.util; import android.accounts.Account; import android.accounts.AccountManager; import android.annotation.TargetApi; -import android.content.ContentProviderClient; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentUris; -import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Build; -import android.os.RemoteException; import android.provider.ContactsContract; import android.util.Patterns; @@ -44,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; @@ -53,40 +49,7 @@ import java.util.Set; public class ContactHelper { - public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{ - KeychainContract.KeyRings.USER_ID, - KeychainContract.KeyRings.FINGERPRINT, - KeychainContract.KeyRings.KEY_ID, - KeychainContract.KeyRings.MASTER_KEY_ID, - KeychainContract.KeyRings.EXPIRY, - KeychainContract.KeyRings.IS_REVOKED}; - - public static final int INDEX_USER_ID = 0; - public static final int INDEX_FINGERPRINT = 1; - public static final int INDEX_KEY_ID = 2; - public static final int INDEX_MASTER_KEY_ID = 3; - public static final int INDEX_EXPIRY = 4; - public static final int INDEX_IS_REVOKED = 5; - - public static final String[] USER_IDS_PROJECTION = new String[]{ - UserPackets.USER_ID - }; - - public static final int INDEX_USER_IDS_USER_ID = 0; - - public static final String NON_REVOKED_SELECTION = UserPackets.IS_REVOKED + "=0"; - - public static final String[] ID_PROJECTION = new String[]{ContactsContract.RawContacts._ID}; - public static final String[] SOURCE_ID_PROJECTION = new String[]{ContactsContract.RawContacts.SOURCE_ID}; - - public static final String ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION = - ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?"; - public static final String ACCOUNT_TYPE_SELECTION = ContactsContract.RawContacts.ACCOUNT_TYPE + "=?"; - public static final String RAW_CONTACT_AND_MIMETYPE_SELECTION = - ContactsContract.Data.RAW_CONTACT_ID + "=? AND " + ContactsContract.Data.MIMETYPE + "=?"; - public static final String ID_SELECTION = ContactsContract.RawContacts._ID + "=?"; - - private static final Map<String, Bitmap> photoCache = new HashMap<>(); + private static final Map<Long, Bitmap> photoCache = new HashMap<>(); public static List<String> getPossibleUserEmails(Context context) { Set<String> accountMails = getAccountEmails(context); @@ -282,27 +245,30 @@ public class ContactHelper { return null; } - public static Bitmap photoFromFingerprint(ContentResolver contentResolver, String fingerprint) { - if (fingerprint == null) { + public static Bitmap getCachedPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId) { + if (masterKeyId == -1) { return null; } - if (!photoCache.containsKey(fingerprint)) { - photoCache.put(fingerprint, loadPhotoFromFingerprint(contentResolver, fingerprint)); + if (!photoCache.containsKey(masterKeyId)) { + photoCache.put(masterKeyId, loadPhotoByMasterKeyId(contentResolver, masterKeyId, false)); } - return photoCache.get(fingerprint); + 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); + 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); + ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri, highRes); if (photoInputStream == null) { return null; } @@ -312,12 +278,27 @@ public class ContactHelper { } } + public static final String[] KEYS_TO_CONTACT_PROJECTION = new String[]{ + KeychainContract.KeyRings.MASTER_KEY_ID, + KeychainContract.KeyRings.USER_ID, + KeychainContract.KeyRings.IS_EXPIRED, + KeychainContract.KeyRings.IS_REVOKED}; + + public static final int INDEX_MASTER_KEY_ID = 0; + public static final int INDEX_USER_ID = 1; + public static final int INDEX_IS_EXPIRED = 2; + public static final int INDEX_IS_REVOKED = 3; + /** - * Write the current Keychain to the contact db + * Write/Update the current OpenKeychain keys to the contact db */ public static void writeKeysToContacts(Context context) { ContentResolver resolver = context.getContentResolver(); - Set<String> deletedKeys = getRawContactFingerprints(resolver); + Set<Long> deletedKeys = getRawContactMasterKeyIds(resolver); + + if (Constants.DEBUG_SYNC_REMOVE_CONTACTS) { + debugDeleteRawContacts(resolver); + } // ContentProviderClient client = resolver.acquireContentProviderClient(ContactsContract.AUTHORITY_URI); // ContentValues values = new ContentValues(); @@ -336,42 +317,41 @@ public class ContactHelper { 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)); - deletedKeys.remove(fingerprint); - - Log.d(Constants.TAG, "fingerprint: " + fingerprint); - - String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_KEY_ID)); long masterKeyId = cursor.getLong(INDEX_MASTER_KEY_ID); - boolean isExpired = !cursor.isNull(INDEX_EXPIRY) - && new Date(cursor.getLong(INDEX_EXPIRY) * 1000).before(new Date()); + String[] userIdSplit = KeyRing.splitUserId(cursor.getString(INDEX_USER_ID)); + String keyIdShort = KeyFormattingUtils.convertKeyIdToHexShort(cursor.getLong(INDEX_MASTER_KEY_ID)); + boolean isExpired = cursor.getInt(INDEX_IS_EXPIRED) != 0; boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0; - int rawContactId = findRawContactId(resolver, fingerprint); - ArrayList<ContentProviderOperation> ops = new ArrayList<>(); - Log.d(Constants.TAG, "raw contact id: " + rawContactId); + Log.d(Constants.TAG, "masterKeyId: " + masterKeyId); + + deletedKeys.remove(masterKeyId); + + // get raw contact to this master key id + long rawContactId = findRawContactId(resolver, masterKeyId); + Log.d(Constants.TAG, "rawContactId: " + rawContactId); + + ArrayList<ContentProviderOperation> ops = new ArrayList<>(); // Do not store expired or revoked keys in contact db - and remove them if they already exist if (isExpired || isRevoked) { Log.d(Constants.TAG, "Expired or revoked: Deleting " + rawContactId); if (rawContactId != -1) { - resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ID_SELECTION, - new String[]{Integer.toString(rawContactId)}); + deleteRawContactById(resolver, rawContactId); } - } else if (primaryUserId[0] != null) { + } else if (userIdSplit[0] != null) { // Create a new rawcontact with corresponding key if it does not exist yet if (rawContactId == -1) { - Log.d(Constants.TAG, "Insert new raw contact with fingerprint " + fingerprint); + Log.d(Constants.TAG, "Insert new raw contact with masterKeyId " + masterKeyId); - insertContact(ops, context, fingerprint); + 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); @@ -383,42 +363,84 @@ public class ContactHelper { cursor.close(); } - // Delete fingerprints that are no longer present in OK - for (String fingerprint : deletedKeys) { - 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. + * <p/> + * TODO: Does this work? + */ + private static int debugDeleteRawContacts(ContentResolver resolver) { + Log.d(Constants.TAG, "Deleting all raw contacts associated to OK..."); + return resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=?", + new String[]{ + Constants.ACCOUNT_TYPE + }); + } + + private static int deleteRawContactById(ContentResolver resolver, long rawContactId) { + return resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts._ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(rawContactId) + }); + } + + private static int deleteRawContactByMasterKeyId(ContentResolver resolver, long masterKeyId) { + return resolver.delete(ContactsContract.RawContacts.CONTENT_URI, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(masterKeyId) + }); + } + + /** + * @return a set of all key master key ids currently present in the contact db */ - private static Set<String> getRawContactFingerprints(ContentResolver resolver) { - HashSet<String> result = new HashSet<>(); - Cursor fingerprints = resolver.query(ContactsContract.RawContacts.CONTENT_URI, SOURCE_ID_PROJECTION, - ACCOUNT_TYPE_SELECTION, new String[]{Constants.ACCOUNT_TYPE}, null); - if (fingerprints != null) { - while (fingerprints.moveToNext()) { - result.add(fingerprints.getString(0)); + private static Set<Long> getRawContactMasterKeyIds(ContentResolver resolver) { + HashSet<Long> result = new HashSet<>(); + Cursor masterKeyIds = resolver.query(ContactsContract.RawContacts.CONTENT_URI, + new String[]{ + ContactsContract.RawContacts.SOURCE_ID + }, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=?", + new String[]{ + Constants.ACCOUNT_TYPE + }, null); + if (masterKeyIds != null) { + while (masterKeyIds.moveToNext()) { + result.add(masterKeyIds.getLong(0)); } - fingerprints.close(); + masterKeyIds.close(); } return result; } /** - * This will search the contact db for a raw contact with a given fingerprint + * This will search the contact db for a raw contact with a given master key id * * @return raw contact id or -1 if not found */ @TargetApi(Build.VERSION_CODES.JELLY_BEAN) - private static int findRawContactId(ContentResolver resolver, String fingerprint) { - int rawContactId = -1; - Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI, ID_PROJECTION, - ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, new String[]{Constants.ACCOUNT_TYPE, fingerprint}, null, null); + private static long findRawContactId(ContentResolver resolver, long masterKeyId) { + long rawContactId = -1; + Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI, + new String[]{ + ContactsContract.RawContacts._ID + }, + ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " + ContactsContract.RawContacts.SOURCE_ID + "=?", + new String[]{ + Constants.ACCOUNT_TYPE, Long.toString(masterKeyId) + }, null, null); if (raw != null) { if (raw.moveToNext()) { - rawContactId = raw.getInt(0); + rawContactId = raw.getLong(0); } raw.close(); } @@ -426,13 +448,13 @@ public class ContactHelper { } /** - * Creates a empty raw contact with a given fingerprint + * Creates a empty raw contact with a given masterKeyId */ - private static void insertContact(ArrayList<ContentProviderOperation> ops, Context context, String fingerprint) { + private static void insertContact(ArrayList<ContentProviderOperation> ops, Context context, long masterKeyId) { ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE) - .withValue(ContactsContract.RawContacts.SOURCE_ID, fingerprint) + .withValue(ContactsContract.RawContacts.SOURCE_ID, Long.toString(masterKeyId)) .build()); } @@ -441,7 +463,7 @@ public class ContactHelper { * <p/> * This creates the link to OK in contact details */ - private static void writeContactKey(ArrayList<ContentProviderOperation> ops, Context context, int rawContactId, + private static void writeContactKey(ArrayList<ContentProviderOperation> ops, Context context, long rawContactId, long masterKeyId, String keyIdShort) { ops.add(referenceRawContact(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), rawContactId) .withValue(ContactsContract.Data.MIMETYPE, Constants.CUSTOM_CONTACT_DATA_MIME_TYPE) @@ -454,16 +476,22 @@ public class ContactHelper { * Write all known email addresses of a key (derived from user ids) to a given raw contact */ private static void writeContactEmail(ArrayList<ContentProviderOperation> ops, ContentResolver resolver, - int rawContactId, long masterKeyId) { - ops.add(selectByRawContactAndItemType(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI), + long rawContactId, long masterKeyId) { + ops.add(selectByRawContactAndItemType( + ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI), rawContactId, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE).build()); Cursor ids = resolver.query(UserPackets.buildUserIdsUri(masterKeyId), - USER_IDS_PROJECTION, NON_REVOKED_SELECTION, null, null); + new String[]{ + UserPackets.USER_ID + }, + UserPackets.IS_REVOKED + "=0", + null, null); if (ids != null) { while (ids.moveToNext()) { String[] userId = KeyRing.splitUserId(ids.getString(0)); if (userId[1] != null) { - ops.add(referenceRawContact(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), + ops.add(referenceRawContact( + ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI), rawContactId) .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) @@ -475,7 +503,7 @@ public class ContactHelper { } } - private static void writeContactDisplayName(ArrayList<ContentProviderOperation> ops, int rawContactId, + private static void writeContactDisplayName(ArrayList<ContentProviderOperation> ops, long rawContactId, String displayName) { if (displayName != null) { ops.add(insertOrUpdateForRawContact(ContactsContract.Data.CONTENT_URI, rawContactId, @@ -486,13 +514,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( @@ -503,8 +531,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/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index a36af5c87..44c1e6b6c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -20,11 +20,7 @@ package org.sufficientlysecure.keychain.util; import android.content.Context; import android.content.SharedPreferences; -import android.os.Build; -import org.spongycastle.bcpg.CompressionAlgorithmTags; -import org.spongycastle.bcpg.HashAlgorithmTags; -import org.spongycastle.openpgp.PGPEncryptedData; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants.Pref; @@ -59,12 +55,8 @@ public class Preferences { } public void updateSharedPreferences(Context context) { - // multi-process preferences - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - mSharedPreferences = context.getSharedPreferences("APG.main", Context.MODE_MULTI_PROCESS); - } else { - mSharedPreferences = context.getSharedPreferences("APG.main", Context.MODE_PRIVATE); - } + // multi-process safe preferences + mSharedPreferences = context.getSharedPreferences("APG.main", Context.MODE_MULTI_PROCESS); } public String getLanguage() { @@ -103,60 +95,6 @@ public class Preferences { editor.commit(); } - public int getDefaultEncryptionAlgorithm() { - return mSharedPreferences.getInt(Constants.Pref.DEFAULT_ENCRYPTION_ALGORITHM, - PGPEncryptedData.AES_256); - } - - public void setDefaultEncryptionAlgorithm(int value) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.Pref.DEFAULT_ENCRYPTION_ALGORITHM, value); - editor.commit(); - } - - public int getDefaultHashAlgorithm() { - return mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, - HashAlgorithmTags.SHA256); - } - - public void setDefaultHashAlgorithm(int value) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, value); - editor.commit(); - } - - public int getDefaultMessageCompression() { - return mSharedPreferences.getInt(Constants.Pref.DEFAULT_MESSAGE_COMPRESSION, - CompressionAlgorithmTags.ZLIB); - } - - public void setDefaultMessageCompression(int value) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.Pref.DEFAULT_MESSAGE_COMPRESSION, value); - editor.commit(); - } - - public int getDefaultFileCompression() { - return mSharedPreferences.getInt(Constants.Pref.DEFAULT_FILE_COMPRESSION, - CompressionAlgorithmTags.UNCOMPRESSED); - } - - public void setDefaultFileCompression(int value) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.Pref.DEFAULT_FILE_COMPRESSION, value); - editor.commit(); - } - - public boolean getDefaultAsciiArmor() { - return mSharedPreferences.getBoolean(Constants.Pref.DEFAULT_ASCII_ARMOR, false); - } - - public void setDefaultAsciiArmor(boolean value) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Constants.Pref.DEFAULT_ASCII_ARMOR, value); - editor.commit(); - } - public boolean getCachedConsolidate() { return mSharedPreferences.getBoolean(Pref.CACHED_CONSOLIDATE, false); } @@ -210,6 +148,7 @@ public class Preferences { } return servers.toArray(chunks); } + public String getPreferredKeyserver() { return getKeyServers()[0]; } @@ -231,21 +170,12 @@ public class Preferences { editor.commit(); } - public void setWriteVersionHeader(boolean conceal) { - SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Constants.Pref.WRITE_VERSION_HEADER, conceal); - editor.commit(); - } - - public boolean getWriteVersionHeader() { - return mSharedPreferences.getBoolean(Constants.Pref.WRITE_VERSION_HEADER, false); - } - public void setSearchKeyserver(boolean searchKeyserver) { SharedPreferences.Editor editor = mSharedPreferences.edit(); editor.putBoolean(Pref.SEARCH_KEYSERVER, searchKeyserver); editor.commit(); } + public void setSearchKeybase(boolean searchKeybase) { SharedPreferences.Editor editor = mSharedPreferences.edit(); editor.putBoolean(Pref.SEARCH_KEYBASE, searchKeybase); @@ -253,7 +183,7 @@ public class Preferences { } public CloudSearchPrefs getCloudSearchPrefs() { - return new CloudSearchPrefs(mSharedPreferences.getBoolean(Pref.SEARCH_KEYSERVER, true), + return new CloudSearchPrefs(mSharedPreferences.getBoolean(Pref.SEARCH_KEYSERVER, true), mSharedPreferences.getBoolean(Pref.SEARCH_KEYBASE, true), getPreferredKeyserver()); } @@ -301,26 +231,9 @@ public class Preferences { } setKeyServers(servers.toArray(new String[servers.size()])); - - // migrate old uncompressed constant to new one - if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_FILE_COMPRESSION, 0) - == 0x21070001) { - setDefaultFileCompression(CompressionAlgorithmTags.UNCOMPRESSED); - } - - // migrate away from MD5 - if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, 0) - == HashAlgorithmTags.MD5) { - setDefaultHashAlgorithm(HashAlgorithmTags.SHA256); - } } // fall through case 4: { - // for compatibility: change from SHA512 to SHA256 - if (mSharedPreferences.getInt(Constants.Pref.DEFAULT_HASH_ALGORITHM, 0) - == HashAlgorithmTags.SHA512) { - setDefaultHashAlgorithm(HashAlgorithmTags.SHA256); - } } } diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index 7cc407315..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_accounts.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5ebac9706..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png Binary files differdeleted file mode 100644 index cde36e1fa..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png Binary files differdeleted file mode 100644 index 3daa64131..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png Binary files differdeleted file mode 100644 index 8de91173c..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_collection.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png Binary files differdeleted file mode 100644 index 22327391e..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_copy.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index 9c717dd32..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png Binary files differdeleted file mode 100644 index 58bf97217..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png Binary files differdeleted file mode 100644 index 1f3d06519..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_download.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png Binary files differdeleted file mode 100644 index 5f7c6eff3..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_edit.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..944a99199 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file_24dp.png 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 Binary files differnew file mode 100644 index 000000000..9166133b1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png Binary files differdeleted file mode 100644 index 382d314ca..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_help.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 742ba271c..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 790af372d..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_new_account.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5ee148080..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_not_secure.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png Binary files differdeleted file mode 100644 index 9438aa597..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_paste.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png Binary files differdeleted file mode 100644 index 9fd81097b..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png Binary files differdeleted file mode 100644 index 869f0014b..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_play.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png Binary files differdeleted file mode 100644 index c4b7783cc..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png Binary files differdeleted file mode 100644 index f594b4e48..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png Binary files differdeleted file mode 100644 index 287ae2fb0..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index fc0dd57b6..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png Binary files differdeleted file mode 100644 index 0eb78f7c7..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_settings.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png Binary files differdeleted file mode 100644 index 8a6cbfea2..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png Binary files differdeleted file mode 100644 index b53640176..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_upload.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..56bd81589 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_verified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index e08afae85..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_view_as_list.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..325803180 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_close_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c3255bdf6 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6f8c72cd6 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24dp.png 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 Binary files differnew file mode 100644 index 000000000..5592d5c80 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_copy_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..f657587d7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_content_paste_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..b72a9f3c6 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_delete_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6e42e1359 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_done_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c2222fb8e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_download_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..569b7704f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_file_upload_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e3dccd298 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png Binary files differindex b6b3129f5..af025f2d1 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_generic_man.png 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 Binary files differnew file mode 100644 index 000000000..e2779ba95 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_help_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..961aedecc --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_import_export_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..af3bc9d05 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4034dc9f2 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ddd39f2fc --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_lock_open_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..25d5688e3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_mode_edit_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..da48a4952 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_add_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..af025f2d1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_person_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..264416933 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3ead270a0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..8c9e9cec0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_save_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ba65a135b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_search_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..99f57a2da --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_select_all_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..20d2b66e0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_settings_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..987e9b86c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_share_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c031adccf --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_view_list_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_vpn_key_grey_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_vpn_key_grey_24dp.png Binary files differnew file mode 100644 index 000000000..cbc93ca36 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_vpn_key_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..eeea75b6f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_warning_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..8ca38976f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24dp.png 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 Binary files differdeleted file mode 100644 index 9d4ed6e84..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..32a8a5df7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24dp.png 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 Binary files differdeleted file mode 100644 index e76393659..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..ee330eaf3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24dp.png 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 Binary files differdeleted file mode 100644 index 3c2f8c09c..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..925b4b9b0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24dp.png 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 Binary files differdeleted file mode 100644 index 046424643..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..350268538 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24dp.png 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 Binary files differdeleted file mode 100644 index a1b090630..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..a615c93a0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24dp.png 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 Binary files differdeleted file mode 100644 index e567055aa..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..0fbe18533 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24dp.png 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 Binary files differdeleted file mode 100644 index 98e32eadc..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..f7f296b69 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 84ac9bec2..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_24px.png +++ /dev/null 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 Binary files differindex 63546068f..63546068f 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..d27b1841d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 967e00e80..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_24px.png +++ /dev/null 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 Binary files differindex 9957db288..9957db288 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..82799481a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 244dd0708..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_24px.png +++ /dev/null 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 Binary files differindex 1c3a15c07..1c3a15c07 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..919ffd1d3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 82cc25a4b..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_24px.png +++ /dev/null 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 Binary files differindex ce46c6317..ce46c6317 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..825322dc7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index e752eaeab..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_24px.png +++ /dev/null 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 Binary files differindex 19ee3c241..19ee3c241 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..5a6e68b5f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 08a9f464c..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_24px.png +++ /dev/null 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 Binary files differindex ed3db0aca..ed3db0aca 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index 2bf88c183..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_accounts.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index c43cf6553..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png Binary files differdeleted file mode 100644 index 9f4c3d6a2..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png Binary files differdeleted file mode 100644 index 266d4c21f..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png Binary files differdeleted file mode 100644 index b89ea93ff..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_collection.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png Binary files differdeleted file mode 100644 index 713482020..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_copy.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index 9dfb7cc2c..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png Binary files differdeleted file mode 100644 index cf5fab3ad..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png Binary files differdeleted file mode 100644 index c2ead0cef..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_download.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png Binary files differdeleted file mode 100644 index 650b4d899..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_edit.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 06a054160..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..a1500ff3d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_file_24dp.png 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 Binary files differdeleted file mode 100644 index 97cb03def..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..4a7f53d97 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_encrypt_text_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png Binary files differdeleted file mode 100644 index 5876cdea4..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_help.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1d6522beb..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 69c801dcc..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_new_account.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index dd5289ee4..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_not_secure.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png Binary files differdeleted file mode 100644 index 940aae781..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_paste.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png Binary files differdeleted file mode 100644 index 359da1c12..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png Binary files differdeleted file mode 100644 index 5f3bf86fd..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_play.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png Binary files differdeleted file mode 100644 index 61304a68c..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png Binary files differdeleted file mode 100644 index f6719d228..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png Binary files differdeleted file mode 100644 index d49217234..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index da37d7a6e..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png Binary files differdeleted file mode 100644 index c290e5902..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_settings.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png Binary files differdeleted file mode 100644 index bff81179a..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png Binary files differdeleted file mode 100644 index 5bef3ca81..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_upload.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..c94877886 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_verified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 4fe0edfa3..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_view_as_list.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..1c382e5f5 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_close_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..a90997d7b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..eceece7ca --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24dp.png 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 Binary files differdeleted file mode 100644 index 7a69993fd..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_cloud_search_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..bab9b4d66 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_copy_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..fbf5786b3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_content_paste_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e757fdb07 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_delete_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..9f860915d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_done_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..b3ef8ce73 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_download_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ca89ff472 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_file_upload_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..1028bfaf3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png Binary files differindex f763dd259..a78e7e6a0 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_generic_man.png 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 Binary files differnew file mode 100644 index 000000000..2f086e41a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_help_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..f7faa5cf4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_import_export_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6a9b6a9fe --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3aa7f36a1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..eff685ef1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_lock_open_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..bae3480cb --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_mode_edit_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..58edadf61 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_add_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..a78e7e6a0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_person_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4ff5decb0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e72945d9e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..bb26bc075 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_save_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..29954062c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_search_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..d88de42e6 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_select_all_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..5a1b41f03 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_settings_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ee0248838 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_share_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..b90d335f9 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_view_list_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_vpn_key_grey_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_vpn_key_grey_24dp.png Binary files differnew file mode 100644 index 000000000..7acfab4f4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_vpn_key_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..f00e106c2 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_warning_grey_24dp.png 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 Binary files differindex ed1ba24d2..ed1ba24d2 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate_24dp.png 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 Binary files differindex d54d461fa..d54d461fa 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify_24dp.png 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 Binary files differindex 81c1b3dfa..81c1b3dfa 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt_24dp.png 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 Binary files differindex 9afc43901..9afc43901 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign_24dp.png 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 Binary files differindex cfc39f0e7..cfc39f0e7 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed_24dp.png 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 Binary files differindex 824dc2672..824dc2672 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error_24dp.png 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 Binary files differindex 9bca59ae3..9bca59ae3 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open_24dp.png 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 Binary files differindex bc91094b5..bc91094b5 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_24dp.png 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 Binary files differindex df385bb1b..df385bb1b 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout_96dp.png 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 Binary files differindex bc2f56e2a..bc2f56e2a 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_24dp.png 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 Binary files differindex aeb899599..aeb899599 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout_96dp.png 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 Binary files differindex 2d2593194..2d2593194 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_24dp.png 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 Binary files differindex d77c5e1c1..d77c5e1c1 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout_96dp.png 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 Binary files differindex 0fc74d07e..0fc74d07e 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_24dp.png 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 Binary files differindex ee0661234..ee0661234 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout_96dp.png 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 Binary files differindex 96a2d1413..96a2d1413 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_24dp.png 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 Binary files differindex 1602747f1..1602747f1 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout_96dp.png 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 Binary files differindex 9f7cf837c..9f7cf837c 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_24dp.png 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 Binary files differindex 61c23f749..61c23f749 100644 --- a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index f1ec295d2..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_accounts.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 91434a47b..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png Binary files differdeleted file mode 100644 index ca7d159fd..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png Binary files differdeleted file mode 100644 index 0769899fd..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png Binary files differdeleted file mode 100644 index 88240fd30..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_collection.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png Binary files differdeleted file mode 100644 index 5ddf15139..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_copy.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index db69d6c25..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png Binary files differdeleted file mode 100644 index b8915716e..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png Binary files differdeleted file mode 100644 index 38a3aeea6..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_download.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png Binary files differdeleted file mode 100644 index 8ab436d87..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_edit.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5f528864d..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file.png +++ /dev/null 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 Binary files differindex 1e397ebed..1e397ebed 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_file.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_file_24dp.png 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 Binary files differdeleted file mode 100644 index f8867e922..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text.png +++ /dev/null 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 Binary files differindex 1cbd993a7..1cbd993a7 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_encrypt_text.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_encrypt_text_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png Binary files differdeleted file mode 100644 index 19a9df332..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_help.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5e48a9c6b..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index c6dfd0bcb..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_new_account.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 312a230e7..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_not_secure.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png Binary files differdeleted file mode 100644 index 5fa309cd8..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_paste.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png Binary files differdeleted file mode 100644 index 03eeb8d6a..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png Binary files differdeleted file mode 100644 index 7f709bbf1..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_play.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png Binary files differdeleted file mode 100644 index 29c5f4d3b..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png Binary files differdeleted file mode 100644 index aad535e97..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png Binary files differdeleted file mode 100644 index 2a0898381..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index af37a3680..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png Binary files differdeleted file mode 100644 index 999d0f0d8..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_settings.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png Binary files differdeleted file mode 100644 index 2f6dc413b..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png Binary files differdeleted file mode 100644 index 27af9a43c..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_upload.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..896aca575 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_verified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index a38638e4d..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_view_as_list.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..fb9f88d2a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_close_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..efcffe3fb --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_grey_24dp.png 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 Binary files differindex 6f9b343ad..6f9b343ad 100644 --- a/OpenKeychain/src/main/res/drawable-hdpi/ic_cloud_search_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24dp.png 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 Binary files differdeleted file mode 100644 index 1f0db264a..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_cloud_search_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..68ccece61 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_copy_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..9ad5aab8f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_content_paste_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c6bb43e8b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_delete_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..36ed24eec --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_done_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..aa89d4977 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_download_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..908b1567c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_file_upload_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..190df8236 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png Binary files differindex 212293db0..738e3490d 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_generic_man.png 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 Binary files differnew file mode 100644 index 000000000..5f01b9362 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_help_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..22ff0c308 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_import_export_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..144e82989 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c398ccf04 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4b7c23f46 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_lock_open_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4c95bd577 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_mode_edit_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..1ab31fed1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_add_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..738e3490d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_person_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..689fda259 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..fad94a7fc --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..aa0332092 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_save_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..f9c0b2ec3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_search_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3d385f50c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_select_all_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..2251d2bbb --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_settings_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..88a0edd6c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_share_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..0e7f15a4b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_view_list_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_vpn_key_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_vpn_key_grey_24dp.png Binary files differnew file mode 100644 index 000000000..49a44704c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_vpn_key_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..08177e7b4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_warning_grey_24dp.png 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 Binary files differindex 8d36d7202..8d36d7202 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate_24dp.png 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 Binary files differindex 01a74bcc0..01a74bcc0 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify_24dp.png 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 Binary files differindex ff07bd0a4..ff07bd0a4 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt_24dp.png 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 Binary files differindex b8002162a..b8002162a 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign_24dp.png 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 Binary files differindex 7c6bb2d18..7c6bb2d18 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed_24dp.png 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 Binary files differindex da4a5d89a..da4a5d89a 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error_24dp.png 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 Binary files differindex cd02fc1e4..cd02fc1e4 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open_24dp.png 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 Binary files differindex 83f6fde35..83f6fde35 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_24dp.png 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 Binary files differindex 568b48c43..568b48c43 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout_96dp.png 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 Binary files differindex 29830f5ba..29830f5ba 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_24dp.png 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 Binary files differindex 89f899212..89f899212 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout_96dp.png 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 Binary files differindex 2f7695043..2f7695043 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_24dp.png 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 Binary files differindex 3db663e2e..3db663e2e 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout_96dp.png 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 Binary files differindex 2ce28c7ca..2ce28c7ca 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_24dp.png 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 Binary files differindex 4e0e04375..4e0e04375 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout_96dp.png 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 Binary files differindex 442c55eee..442c55eee 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_24dp.png 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 Binary files differindex 0b2ccc9f7..0b2ccc9f7 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout_96dp.png 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 Binary files differindex 160ec7cbe..160ec7cbe 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_24dp.png 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 Binary files differindex 471e5e513..471e5e513 100644 --- a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout_96dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png Binary files differdeleted file mode 100644 index da24654eb..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_accounts.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f18aa6144..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png Binary files differdeleted file mode 100644 index f97084dbe..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png Binary files differdeleted file mode 100644 index c41ca8c8b..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_collection.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png Binary files differdeleted file mode 100644 index a0508df8c..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_copy.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png Binary files differdeleted file mode 100644 index b522daffe..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png Binary files differdeleted file mode 100644 index ef7785a48..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_download.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png Binary files differdeleted file mode 100644 index f2b2078b0..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_edit.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..8202a612d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file_24dp.png 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 Binary files differnew file mode 100644 index 000000000..66b115713 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png Binary files differdeleted file mode 100644 index c5a34319b..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_help.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f054a68e6..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 38589ba0e..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_new_account.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4aa9dc85c..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_not_secure.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png Binary files differdeleted file mode 100644 index 3589aeb55..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_paste.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png Binary files differdeleted file mode 100644 index fd1bcdd45..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png Binary files differdeleted file mode 100644 index df5994710..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_play.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png Binary files differdeleted file mode 100644 index 744350049..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png Binary files differdeleted file mode 100644 index 9c0ea3ca0..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png Binary files differdeleted file mode 100644 index d8c094ed8..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index aa5937eab..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png Binary files differdeleted file mode 100644 index 530227e2d..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_settings.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png Binary files differdeleted file mode 100644 index 3e441000f..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png Binary files differdeleted file mode 100644 index 48a0cd149..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_upload.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..3858675e3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_verified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index b00a85f6d..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_view_as_list.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..3179d765c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_close_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..0bcacc545 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..a0924d025 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24dp.png 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 Binary files differnew file mode 100644 index 000000000..2fdbbea13 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_copy_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..b1348527b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_content_paste_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4886ab1e9 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_delete_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c836c5490 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_done_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e61a48a4d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_download_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..77d80081f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_file_upload_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6fbc40459 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png Binary files differindex 130c670c9..de2a86e89 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_generic_man.png 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 Binary files differnew file mode 100644 index 000000000..d64fa5160 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_help_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3edec452e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_import_export_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e0999bd81 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..aac70d9bb --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3280b2658 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_lock_open_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6ed4351ca --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_mode_edit_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..993118372 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_add_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..de2a86e89 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_person_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ba62a8102 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6ecab92a7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6c87e1358 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..9424ae98e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_search_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..f61ac41df --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_select_all_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6a70402b4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_settings_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..89136d7c3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_share_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ccedde141 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_view_list_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_vpn_key_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_vpn_key_grey_24dp.png Binary files differnew file mode 100644 index 000000000..6e1aa32c4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_vpn_key_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..dc007ee65 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_warning_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..29be2882d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24dp.png 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 Binary files differdeleted file mode 100644 index d786dc72f..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..671fb88c3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24dp.png 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 Binary files differdeleted file mode 100644 index 4bb97f992..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..063736684 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24dp.png 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 Binary files differdeleted file mode 100644 index fe0c8e41b..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..2b156e46a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24dp.png 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 Binary files differdeleted file mode 100644 index 51ab367a9..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..67b3b0769 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24dp.png 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 Binary files differdeleted file mode 100644 index 5a9664d59..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..032602f70 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24dp.png 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 Binary files differdeleted file mode 100644 index 608f065af..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..b15100f6a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24dp.png 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 Binary files differdeleted file mode 100644 index ee34dd396..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open_24px.png +++ /dev/null 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 Binary files differnew file mode 100644 index 000000000..e07f9d651 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 33a3efed1..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_24px.png +++ /dev/null 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 Binary files differindex ba7e8c2f4..ba7e8c2f4 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..8eaeba8d2 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index bc39d3496..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_24px.png +++ /dev/null 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 Binary files differindex 1fbf5ceb2..1fbf5ceb2 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..d2d11e557 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 58929661f..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_24px.png +++ /dev/null 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 Binary files differindex 338c696ac..338c696ac 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..3b9684786 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 3020357a4..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_24px.png +++ /dev/null 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 Binary files differindex 2690310a6..2690310a6 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..4d0b4e796 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 3829bb3a0..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_24px.png +++ /dev/null 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 Binary files differindex e559faf9d..e559faf9d 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout_96dp.png 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 Binary files differnew file mode 100644 index 000000000..12d43f635 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24dp.png 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 Binary files differdeleted file mode 100644 index 3548ee2b6..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_24px.png +++ /dev/null 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 Binary files differindex 79e4ec4a9..79e4ec4a9 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96px.png +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout_96dp.png 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 Binary files differindex c77329563..c77329563 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_file.png +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_file_24dp.png 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 Binary files differindex 15650500d..15650500d 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_encrypt_text.png +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_encrypt_text_24dp.png 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 Binary files differnew file mode 100644 index 000000000..49b13017c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_action_verified_cutout_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e3121dbff --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_close_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ec5434a3c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_grey_24dp.png 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 Binary files differindex 852cdc2a6..852cdc2a6 100644 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_cloud_search_24px.png +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_cloud_search_24dp.png 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 Binary files differnew file mode 100644 index 000000000..1eb62d42c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_copy_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..42240540c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_content_paste_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e4e218123 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_delete_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c4899687b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_done_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..c7e86f9dc --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_download_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..995a3879e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_file_upload_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..0107ea21c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png Binary files differnew file mode 100644 index 000000000..e664e94ac --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_generic_man.png 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 Binary files differnew file mode 100644 index 000000000..8fc671147 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_help_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..3dea0d014 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_import_export_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e69e5732c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_key_plus_grey600_24dp.png 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 Binary files differnew file mode 100644 index 000000000..0580f3290 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e500bc8f7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_lock_open_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..0c0fd76f6 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_mode_edit_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..5f3ac2804 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_add_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e664e94ac --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_person_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..1cb4aaac5 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6c8f219e8 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..51998492c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png 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 Binary files differnew file mode 100644 index 000000000..037640959 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_search_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..93657cbde --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_select_all_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..5eba9e8ec --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_settings_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..e15c0568d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_share_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..f2c9d42de --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_view_list_grey_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_vpn_key_grey_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_vpn_key_grey_24dp.png Binary files differnew file mode 100644 index 000000000..2ea2bf77c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_vpn_key_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..88e618bab --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_warning_grey_24dp.png 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 Binary files differnew file mode 100644 index 000000000..438d9eb84 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_authenticate_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6b6d6f46f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_certify_24dp.png 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 Binary files differnew file mode 100644 index 000000000..77c2e1911 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_encrypt_24dp.png 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 Binary files differnew file mode 100644 index 000000000..7ffa3aea2 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/key_flag_sign_24dp.png 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 Binary files differnew file mode 100644 index 000000000..4116e13fa --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_closed_24dp.png 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 Binary files differnew file mode 100644 index 000000000..6053b7bec --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_error_24dp.png 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 Binary files differnew file mode 100644 index 000000000..67b4ae314 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_lock_open_24dp.png 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 Binary files differnew file mode 100644 index 000000000..df385bb1b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_expired_cutout_24dp.png 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 Binary files differnew file mode 100644 index 000000000..aeb899599 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_invalid_cutout_24dp.png 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 Binary files differnew file mode 100644 index 000000000..d77c5e1c1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_revoked_cutout_24dp.png 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 Binary files differnew file mode 100644 index 000000000..ee0661234 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unknown_cutout_24dp.png 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 Binary files differnew file mode 100644 index 000000000..1602747f1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_unverified_cutout_24dp.png 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 Binary files differnew file mode 100644 index 000000000..61c23f749 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/status_signature_verified_cutout_24dp.png diff --git a/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml index d32b1496f..4b5058a81 100644 --- a/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml +++ b/OpenKeychain/src/main/res/layout/add_subkey_dialog.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> @@ -90,42 +91,6 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> - <TableRow - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp"> - - <TextView - android:id="@+id/label_expiry" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:paddingRight="10dip" - android:text="@string/label_expiry" /> - - <CheckBox - android:id="@+id/add_subkey_no_expiry" - android:checked="true" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/btn_no_date" /> - - </TableRow> - - <TableRow - android:id="@+id/add_subkey_expiry_row" - android:visibility="gone"> - - <DatePicker - android:id="@+id/add_subkey_expiry_date_picker" - android:layout_span="2" - android:layout_gravity="center_horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:spinnersShown="true" - android:calendarViewShown="false" /> - - </TableRow> - <TableRow> <TextView @@ -190,6 +155,52 @@ android:text="@string/flag_authenticate" /> </TableRow> + <TableRow + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp"> + + <TextView + android:id="@+id/label_expiry" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:paddingRight="10dip" + android:text="@string/label_expiry" /> + + <CheckBox + android:id="@+id/add_subkey_no_expiry" + android:checked="true" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/btn_no_date" /> + + </TableRow> + + <TableRow + android:id="@+id/add_subkey_expiry_row" + android:visibility="gone"> + + <!-- + Use Spinner style DatePicker, not the full calendar view + Android < 5: + android:spinnersShown="true" + android:calendarViewShown="false" + Android >= 5: + android:datePickerMode="spinner" + --> + <DatePicker + android:id="@+id/add_subkey_expiry_date_picker" + android:layout_span="2" + android:layout_gravity="center_horizontal" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + tools:ignore="UnusedAttribute" + android:datePickerMode="spinner" + android:spinnersShown="true" + android:calendarViewShown="false" /> + + </TableRow> + </TableLayout> </ScrollView>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml index cd74255c7..f9a8e9933 100644 --- a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml +++ b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml @@ -21,7 +21,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentTop="true" android:layout_marginRight="6dp" - android:src="@drawable/ic_action_person" /> + android:src="@drawable/ic_person_grey_24dp" /> <TextView android:id="@+id/api_account_settings_acc_name" @@ -79,7 +79,7 @@ android:layout_width="match_parent" android:text="@string/api_settings_create_key" android:layout_height="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_new_account" + android:drawableRight="@drawable/ic_key_plus_grey600_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" /> diff --git a/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml b/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml index d31ae52d7..39d87ee25 100644 --- a/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml +++ b/OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml @@ -14,7 +14,7 @@ android:paddingTop="4dp" android:paddingBottom="4dp" android:id="@+id/imageView" - android:src="@drawable/ic_action_person" /> + android:src="@drawable/ic_person_grey_24dp" /> <TextView android:id="@+id/api_accounts_adapter_item_name" diff --git a/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml b/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml index c4ea46d43..9166f958e 100644 --- a/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml +++ b/OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml @@ -17,7 +17,7 @@ android:id="@+id/api_apps_adapter_install_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_action_download" + android:src="@drawable/ic_file_download_grey_24dp" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" diff --git a/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml b/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml index ec91d1455..764b2eac0 100644 --- a/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml +++ b/OpenKeychain/src/main/res/layout/certify_fingerprint_activity.xml @@ -7,7 +7,7 @@ <include android:id="@+id/toolbar_include" - layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone_orange" /> <LinearLayout android:layout_below="@id/toolbar_include" diff --git a/OpenKeychain/src/main/res/layout/certify_key_activity.xml b/OpenKeychain/src/main/res/layout/certify_key_activity.xml index fab8bc2d2..56dca302f 100644 --- a/OpenKeychain/src/main/res/layout/certify_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/certify_key_activity.xml @@ -5,7 +5,7 @@ <include android:id="@+id/toolbar_include" - layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone_orange" /> <LinearLayout android:layout_below="@id/toolbar_include" diff --git a/OpenKeychain/src/main/res/layout/certify_key_fragment.xml b/OpenKeychain/src/main/res/layout/certify_key_fragment.xml index 2df3755a4..c1227f906 100644 --- a/OpenKeychain/src/main/res/layout/certify_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/certify_key_fragment.xml @@ -95,7 +95,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/status_signature_verified_cutout_24px" + android:src="@drawable/status_signature_verified_cutout_24dp" android:layout_gravity="center_vertical" /> </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/create_key_activity.xml b/OpenKeychain/src/main/res/layout/create_key_activity.xml index b9d5206a1..ecf69e640 100644 --- a/OpenKeychain/src/main/res/layout/create_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/create_key_activity.xml @@ -14,7 +14,7 @@ <FrameLayout android:layout_below="@id/toolbar_include" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent"> diff --git a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml index 9b6a807cb..84625d1fd 100644 --- a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml @@ -180,7 +180,7 @@ android:layout_weight="1" android:text="@string/btn_create_key" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_new_account" + android:drawableRight="@drawable/ic_key_plus_grey600_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml index d59cd7b86..d7be00bcd 100644 --- a/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_input_fragment.xml @@ -153,7 +153,7 @@ android:layout_weight="1" android:text="@string/btn_next" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_play" + android:drawableRight="@drawable/ic_play_arrow_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml index 394ef10f4..a5646dc26 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml @@ -50,7 +50,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:hint="@string/filemanager_title_open" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> </LinearLayout> @@ -82,7 +82,7 @@ android:text="@string/btn_decrypt_verify_file" android:clickable="true" style="@style/SelectableItem" - android:drawableRight="@drawable/ic_action_save" + android:drawableRight="@drawable/ic_save_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_alignParentBottom="true" diff --git a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml index 06c1dda7b..3cf4a9e7b 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_files_activity.xml @@ -14,7 +14,7 @@ <LinearLayout android:layout_below="@id/toolbar_include" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> diff --git a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml index 659d1c207..9d47009b9 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml @@ -24,7 +24,7 @@ android:id="@+id/result_encryption_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/status_lock_open_24px" + android:src="@drawable/status_lock_open_24dp" android:layout_gravity="center_vertical" /> <TextView @@ -47,7 +47,7 @@ android:id="@+id/result_signature_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/status_signature_unverified_cutout_24px" + android:src="@drawable/status_signature_unverified_cutout_24dp" android:layout_gravity="center_vertical" /> <TextView @@ -118,7 +118,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:text="Show" - android:drawableRight="@drawable/ic_action_accounts" + android:drawableRight="@drawable/ic_vpn_key_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml index a692b3681..da4aa7099 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_text_activity.xml @@ -14,7 +14,7 @@ <LinearLayout android:layout_below="@id/toolbar_include" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> diff --git a/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml index cbe03056c..0f341b2d6 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml @@ -59,7 +59,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:text="@string/btn_add_share_decrypted_text" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_weight="1" /> @@ -77,7 +77,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml index 2ffbc66f4..8f9709711 100644 --- a/OpenKeychain/src/main/res/layout/edit_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/edit_key_fragment.xml @@ -26,11 +26,11 @@ android:layout_height="match_parent" android:text="@string/edit_key_action_change_passphrase" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_edit" + android:drawableRight="@drawable/ic_mode_edit_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" - style="@style/SelectableItem" /> + style="?android:attr/borderlessButtonStyle" /> <TextView style="@style/SectionHeader" @@ -69,11 +69,11 @@ android:layout_height="match_parent" android:text="@string/edit_key_action_add_identity" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_add_person" + android:drawableRight="@drawable/ic_person_add_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" - style="@style/SelectableItem" /> + style="?android:attr/borderlessButtonStyle" /> <TextView style="@style/SectionHeader" @@ -111,11 +111,11 @@ android:layout_height="match_parent" android:text="@string/edit_key_action_add_subkey" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_new_account" + android:drawableRight="@drawable/ic_key_plus_grey600_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" - style="@style/SelectableItem" /> + style="?android:attr/borderlessButtonStyle" /> </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml index a692db574..38dc03627 100644 --- a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml +++ b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:paddingTop="16dp" android:paddingBottom="16dp" @@ -15,13 +16,49 @@ android:layout_height="wrap_content" android:text="@string/btn_no_date" /> - <DatePicker - android:id="@+id/edit_subkey_expiry_date_picker" - android:layout_gravity="center_horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:spinnersShown="true" - android:calendarViewShown="false" /> - <!-- Hide calendarView in tablets because of the unix warparound bug. --> + <LinearLayout + android:id="@+id/edit_subkey_expiry_layout" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <TextView + style="@style/SectionHeader" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/section_current_expiry" /> + + <TextView + android:id="@+id/edit_subkey_expiry_current_expiry" + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + android:padding="8dp" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + + <TextView + style="@style/SectionHeader" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/section_new_expiry" /> + + <!-- + Use Spinner style DatePicker, not the full calendar view + Android < 5: + android:spinnersShown="true" + android:calendarViewShown="false" + Android >= 5: + android:datePickerMode="spinner" + --> + <!-- Hide calendarView in tablets because of the unix warparound bug. --> + <DatePicker + android:id="@+id/edit_subkey_expiry_date_picker" + android:layout_gravity="center_horizontal" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + tools:ignore="UnusedAttribute" + android:datePickerMode="spinner" + android:spinnersShown="true" + android:calendarViewShown="false" /> + </LinearLayout> </LinearLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml index d62c9f32b..3ef8e3551 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml @@ -23,9 +23,9 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:text="@string/btn_encrypt_files" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -43,9 +43,9 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:text="@string/btn_encrypt_text" - android:drawableRight="@drawable/ic_action_copy" + android:drawableRight="@drawable/ic_content_copy_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -70,9 +70,9 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:text="@string/btn_decrypt_files" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -86,9 +86,10 @@ android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:clickable="true" - android:paddingRight="4dp" - style="@style/SelectableItem" - android:orientation="horizontal"> + style="?android:attr/borderlessButtonStyle" + android:orientation="horizontal" + android:paddingLeft="8dp" + android:paddingRight="0dp"> <LinearLayout android:layout_width="0dp" @@ -99,14 +100,12 @@ android:orientation="vertical"> <TextView - android:paddingLeft="8dp" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn_decrypt_clipboard" /> <TextView - android:paddingLeft="8dp" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -121,7 +120,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_paste" + android:src="@drawable/ic_content_paste_grey_24dp" android:layout_gravity="center_vertical" /> </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml index 168e6d0be..f9efd81b4 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_files_activity.xml @@ -15,7 +15,7 @@ android:layout_below="@id/toolbar_include" android:id="@+id/content_frame" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> diff --git a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml index f4c479ee9..26b1d809d 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_files_fragment.xml @@ -46,7 +46,7 @@ android:layout_height="match_parent" android:text="@string/btn_encrypt_share_file" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -63,7 +63,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_save" + android:src="@drawable/ic_save_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml index fd7fd6672..67f17fa81 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_text_activity.xml @@ -15,7 +15,7 @@ android:layout_below="@id/toolbar_include" android:id="@+id/content_frame" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> diff --git a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml index 83e2cf9ee..6f7b636e1 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_text_fragment.xml @@ -42,7 +42,7 @@ android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:text="@string/btn_share_encrypted_signed" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_weight="1" /> @@ -60,7 +60,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/file_dialog.xml b/OpenKeychain/src/main/res/layout/file_dialog.xml index deefd0428..3a559c71c 100644 --- a/OpenKeychain/src/main/res/layout/file_dialog.xml +++ b/OpenKeychain/src/main/res/layout/file_dialog.xml @@ -41,7 +41,7 @@ android:layout_margin="4dp" android:contentDescription="@string/filemanager_title_open" android:background="@drawable/button_rounded" - android:src="@drawable/ic_action_collection"/> + android:src="@drawable/ic_folder_grey_24dp"/> </LinearLayout> <CheckBox diff --git a/OpenKeychain/src/main/res/layout/file_list_entry.xml b/OpenKeychain/src/main/res/layout/file_list_entry.xml index f6fde2447..fafdd1713 100644 --- a/OpenKeychain/src/main/res/layout/file_list_entry.xml +++ b/OpenKeychain/src/main/res/layout/file_list_entry.xml @@ -53,7 +53,7 @@ android:layout_alignParentRight="true" android:paddingRight="16dip" android:paddingLeft="16dip" - android:src="@drawable/ic_action_cancel" + android:src="@drawable/ic_close_grey_24dp" android:clickable="true" android:layout_centerVertical="true" style="@style/SelectableItem"/> diff --git a/OpenKeychain/src/main/res/layout/file_list_entry_add.xml b/OpenKeychain/src/main/res/layout/file_list_entry_add.xml index f2caab653..f2ee4079e 100644 --- a/OpenKeychain/src/main/res/layout/file_list_entry_add.xml +++ b/OpenKeychain/src/main/res/layout/file_list_entry_add.xml @@ -15,7 +15,7 @@ android:layout_height="match_parent" android:layout_gravity="center" android:text="@string/btn_add_files" - android:drawableLeft="@drawable/ic_action_collection" + android:drawableLeft="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center"/> </FrameLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/first_time_activity.xml b/OpenKeychain/src/main/res/layout/first_time_activity.xml index ba80214a6..bab9e2e27 100644 --- a/OpenKeychain/src/main/res/layout/first_time_activity.xml +++ b/OpenKeychain/src/main/res/layout/first_time_activity.xml @@ -38,7 +38,7 @@ android:layout_weight="1" android:text="@string/first_time_import_key" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_gravity="center_vertical" @@ -62,7 +62,7 @@ android:layout_weight="1" android:text="@string/first_time_create_key" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_new_account" + android:drawableRight="@drawable/ic_key_plus_grey600_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:layout_gravity="center_vertical" diff --git a/OpenKeychain/src/main/res/layout/import_keys_activity.xml b/OpenKeychain/src/main/res/layout/import_keys_activity.xml index dcdd9a31a..6ac0b468c 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_activity.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_activity.xml @@ -14,7 +14,7 @@ <LinearLayout android:layout_below="@id/toolbar_include" android:fitsSystemWindows="true" - android:layout_marginTop="-25dp" + android:layout_marginTop="@dimen/minus_statusbar_height" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> @@ -73,7 +73,7 @@ android:layout_height="match_parent" android:text="@string/import_import" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_download" + android:drawableRight="@drawable/ic_file_download_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml index 6f52e1938..a7234d848 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_cloud_fragment.xml @@ -29,7 +29,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_search" + android:src="@drawable/ic_search_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> @@ -46,7 +46,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_settings" + android:src="@drawable/ic_settings_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml b/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml index b1056dab3..bde4dafc0 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml @@ -21,7 +21,7 @@ android:layout_height="match_parent" android:text="@string/filemanager_title_open" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_collection" + android:drawableRight="@drawable/ic_folder_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -38,7 +38,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_paste" + android:src="@drawable/ic_content_paste_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/layout/import_keys_list_item.xml b/OpenKeychain/src/main/res/layout/import_keys_list_item.xml index bf9d33852..e0b19b608 100644 --- a/OpenKeychain/src/main/res/layout/import_keys_list_item.xml +++ b/OpenKeychain/src/main/res/layout/import_keys_list_item.xml @@ -73,7 +73,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/status_signature_revoked_cutout_24px" + android:src="@drawable/status_signature_revoked_cutout_24dp" android:padding="16dp" /> <TextView diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml index 65935f9c8..ea3426f90 100644 --- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml +++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml @@ -70,7 +70,7 @@ android:id="@+id/fab_add_cloud" android:layout_width="wrap_content" android:layout_height="wrap_content" - fab:fab_icon="@drawable/ic_cloud_search_24px" + fab:fab_icon="@drawable/ic_cloud_search_24dp" fab:fab_colorNormal="@color/primary" fab:fab_colorPressed="@color/primary_dark" fab:fab_title="Search Cloud" diff --git a/OpenKeychain/src/main/res/layout/key_list_item.xml b/OpenKeychain/src/main/res/layout/key_list_item.xml index 27444a260..595dcd77b 100644 --- a/OpenKeychain/src/main/res/layout/key_list_item.xml +++ b/OpenKeychain/src/main/res/layout/key_list_item.xml @@ -69,7 +69,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/status_signature_revoked_cutout_24px" + android:src="@drawable/status_signature_revoked_cutout_24dp" android:padding="16dp" /> </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/keyspinner_item.xml b/OpenKeychain/src/main/res/layout/keyspinner_item.xml index 757dae5be..45147e7b1 100644 --- a/OpenKeychain/src/main/res/layout/keyspinner_item.xml +++ b/OpenKeychain/src/main/res/layout/keyspinner_item.xml @@ -50,7 +50,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/status_signature_revoked_cutout_24px" + android:src="@drawable/status_signature_revoked_cutout_24dp" android:paddingLeft="16dp" android:paddingRight="16dp" /> diff --git a/OpenKeychain/src/main/res/layout/log_display_item.xml b/OpenKeychain/src/main/res/layout/log_display_item.xml index d3938aaf0..d35413185 100644 --- a/OpenKeychain/src/main/res/layout/log_display_item.xml +++ b/OpenKeychain/src/main/res/layout/log_display_item.xml @@ -32,7 +32,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/log_sub" - android:src="@drawable/ic_action_view_as_list" + android:src="@drawable/ic_view_list_grey_24dp" android:layout_marginBottom="4dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" diff --git a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml index 2ca5199fd..d2e85633f 100644 --- a/OpenKeychain/src/main/res/layout/passphrase_dialog.xml +++ b/OpenKeychain/src/main/res/layout/passphrase_dialog.xml @@ -1,16 +1,25 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingLeft="16dp" - android:paddingRight="16dp" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:paddingLeft="24dp" + android:paddingRight="24dp" android:orientation="vertical"> <LinearLayout + android:id="@+id/input" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="horizontal" - android:id="@+id/input"> + android:orientation="vertical"> + + <TextView + android:id="@+id/passphrase_text" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + android:text="@string/enter_passphrase" /> <EditText android:id="@+id/passphrase_passphrase" @@ -26,11 +35,12 @@ </LinearLayout> <LinearLayout + android:id="@+id/progress" + android:layout_centerInParent="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:id="@+id/progress" - android:visibility="gone"> + android:visibility="invisible"> <ProgressBar style="?android:attr/progressBarStyle" @@ -42,11 +52,10 @@ style="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingLeft="8dp" android:padding="4dp" android:text="@string/label_unlock" android:layout_gravity="center_vertical" /> </LinearLayout> -</LinearLayout>
\ No newline at end of file +</RelativeLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/select_key_item.xml b/OpenKeychain/src/main/res/layout/select_key_item.xml index 13f63d2ee..e12892aae 100644 --- a/OpenKeychain/src/main/res/layout/select_key_item.xml +++ b/OpenKeychain/src/main/res/layout/select_key_item.xml @@ -50,7 +50,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:src="@drawable/status_signature_revoked_cutout_24px" + android:src="@drawable/status_signature_revoked_cutout_24dp" android:paddingLeft="16dp" android:paddingRight="16dp" /> diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml new file mode 100644 index 000000000..0336b51fd --- /dev/null +++ b/OpenKeychain/src/main/res/layout/toolbar_standalone_orange.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/toolbar_include" + android:elevation="4dp" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <!-- + We always have windowTranslucentStatus=true to get under the status bar. + Thus this ImageView is the part under the status bar! + --> + <ImageView + android:id="@+id/status_bar" + android:layout_width="match_parent" + android:layout_height="@dimen/statusbar_height" + android:background="@color/android_orange_light" /> + + <android.support.v7.widget.Toolbar + android:id="@+id/toolbar" + android:layout_below="@+id/status_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?attr/actionBarSize" + android:background="@color/android_orange_light" + app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" + app:popupTheme="@style/ThemeOverlay.AppCompat.Light" + tools:ignore="UnusedAttribute" /> + +</RelativeLayout> diff --git a/OpenKeychain/src/main/res/layout/upload_key_activity.xml b/OpenKeychain/src/main/res/layout/upload_key_activity.xml index 19e37783b..6b7390b27 100644 --- a/OpenKeychain/src/main/res/layout/upload_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/upload_key_activity.xml @@ -59,7 +59,7 @@ android:layout_height="match_parent" android:text="@string/btn_export_to_server" android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_upload" + android:drawableRight="@drawable/ic_file_upload_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" android:clickable="true" diff --git a/OpenKeychain/src/main/res/layout/view_cert_activity.xml b/OpenKeychain/src/main/res/layout/view_cert_activity.xml index 0a6b46a93..08be4ab05 100644 --- a/OpenKeychain/src/main/res/layout/view_cert_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_cert_activity.xml @@ -214,7 +214,7 @@ style="@style/SelectableItem" android:text="@string/btn_view_cert_key" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_person" + android:drawableRight="@drawable/ic_person_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml index 1a45370a5..4dbd793ea 100644 --- a/OpenKeychain/src/main/res/layout/view_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml @@ -15,16 +15,21 @@ android:background="?attr/colorPrimary" android:orientation="horizontal"> - <org.sufficientlysecure.keychain.ui.widget.AspectRatioImageView + <ImageView android:id="@+id/view_key_photo" - app:aspectRatioEnabled="true" android:visibility="gone" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:layout_below="@+id/status_bar" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:src="@drawable/first_time_1" /> + android:src="@drawable/ic_launcher" + android:baselineAlignBottom="false" + android:cropToPadding="false" + android:focusable="false" + android:adjustViewBounds="false" + android:layout_alignParentTop="false" + android:scaleType="centerCrop" /> <ImageView android:id="@+id/status_bar" @@ -34,6 +39,7 @@ <android.support.v7.widget.Toolbar android:id="@+id/toolbar" + android:background="@color/transparent" android:layout_below="@+id/status_bar" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -90,7 +96,7 @@ android:layout_height="64dp" android:visibility="invisible" style="?android:attr/borderlessButtonStyle" - android:src="@drawable/ic_action_encrypt_file" /> + android:src="@drawable/ic_action_encrypt_file_24dp" /> <ImageButton android:id="@+id/view_key_action_encrypt_text" @@ -98,7 +104,7 @@ android:layout_height="64dp" android:visibility="invisible" style="?android:attr/borderlessButtonStyle" - android:src="@drawable/ic_action_encrypt_text" /> + android:src="@drawable/ic_action_encrypt_text_24dp" /> <ImageButton android:id="@+id/view_key_action_nfc" @@ -114,7 +120,7 @@ android:id="@+id/view_key_status_image" android:layout_width="96dp" android:visibility="invisible" - android:src="@drawable/status_signature_unverified_cutout_96px" + android:src="@drawable/status_signature_unverified_cutout_96dp" android:layout_height="96dp" android:layout_above="@id/toolbar2" android:layout_alignParentRight="true" diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml index a29c9fbee..b6679524f 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml @@ -64,7 +64,7 @@ android:layout_height="?android:attr/listPreferredItemHeight" android:clickable="true" android:paddingRight="4dp" - style="@style/SelectableItem" + style="?android:attr/borderlessButtonStyle" android:orientation="horizontal"> <TextView diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml index a6224a8d1..ec26b4a76 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml @@ -40,7 +40,7 @@ android:text="" android:layout_weight="1" android:typeface="monospace" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -57,7 +57,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> @@ -114,7 +114,7 @@ android:layout_height="match_parent" android:text="@string/key_view_action_share_with" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_share" + android:drawableRight="@drawable/ic_share_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> @@ -131,7 +131,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_copy" + android:src="@drawable/ic_content_copy_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> @@ -171,7 +171,7 @@ style="@style/SelectableItem" android:text="@string/key_view_action_upload" android:layout_weight="1" - android:drawableRight="@drawable/ic_action_upload" + android:drawableRight="@drawable/ic_file_upload_grey_24dp" android:drawablePadding="8dp" android:gravity="center_vertical" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml index f41109d84..28eef58a4 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_subkey_item.xml @@ -6,16 +6,6 @@ android:orientation="horizontal" android:singleLine="true"> - <ImageView - android:id="@+id/subkey_item_status" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:src="@drawable/status_signature_revoked_cutout_24px" - android:paddingLeft="8dp" - android:layout_centerVertical="true" - android:layout_alignParentStart="true" /> - <FrameLayout android:id="@+id/subkey_item_buttons" android:layout_width="wrap_content" @@ -26,7 +16,7 @@ <ImageView android:id="@+id/subkey_item_edit_image" - android:src="@drawable/ic_action_edit" + android:src="@drawable/ic_mode_edit_grey_24dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" /> @@ -36,20 +26,21 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" - android:src="@drawable/ic_action_cancel" + android:src="@drawable/ic_close_grey_24dp" style="@style/SelectableItem" /> </FrameLayout> <LinearLayout android:orientation="vertical" - android:layout_toLeftOf="@id/subkey_item_buttons" - android:layout_toRightOf="@id/subkey_item_status" - android:layout_centerVertical="true" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" android:layout_marginLeft="8dp" - android:layout_marginRight="8dp"> + android:layout_toLeftOf="@+id/subkey_item_status" + android:layout_toStartOf="@+id/subkey_item_status"> <LinearLayout android:layout_width="match_parent" @@ -71,7 +62,7 @@ android:id="@+id/subkey_item_ic_certify" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_certify_24px" + android:src="@drawable/key_flag_certify_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -79,7 +70,7 @@ android:id="@+id/subkey_item_ic_sign" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_sign_24px" + android:src="@drawable/key_flag_sign_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -87,7 +78,7 @@ android:id="@+id/subkey_item_ic_encrypt" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_encrypt_24px" + android:src="@drawable/key_flag_encrypt_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -95,7 +86,7 @@ android:id="@+id/subkey_item_ic_authenticate" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/key_flag_authenticate_24px" + android:src="@drawable/key_flag_authenticate_24dp" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> @@ -127,4 +118,15 @@ </LinearLayout> + <ImageView + android:id="@+id/subkey_item_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="left|center_vertical" + android:src="@drawable/status_signature_revoked_cutout_24dp" + android:paddingLeft="8dp" + android:layout_centerVertical="true" + android:layout_toLeftOf="@+id/subkey_item_buttons" + android:layout_toStartOf="@+id/subkey_item_buttons" /> + </RelativeLayout> diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml index 63c1ee70f..cd7a79663 100644 --- a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml @@ -7,23 +7,6 @@ android:singleLine="true"> <LinearLayout - android:id="@+id/user_id_item_certified_layout" - android:layout_width="22dp" - android:layout_height="wrap_content" - android:layout_marginLeft="8dp" - android:layout_gravity="center_vertical" - android:orientation="vertical"> - - <ImageView - android:id="@+id/user_id_item_certified" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:src="@drawable/status_signature_unverified_cutout_24px" - android:layout_gravity="center_horizontal" /> - - </LinearLayout> - - <LinearLayout android:orientation="vertical" android:layout_gravity="center_vertical" android:layout_width="0dip" @@ -57,11 +40,31 @@ </LinearLayout> + + <LinearLayout + android:id="@+id/user_id_item_certified_layout" + android:layout_width="22dp" + android:layout_height="wrap_content" + android:layout_marginLeft="16dp" + android:layout_marginRight="16dp" + + android:layout_gravity="center_vertical" + android:orientation="vertical"> + + <ImageView + android:id="@+id/user_id_item_certified" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/status_signature_unverified_cutout_24dp" + android:layout_gravity="center_horizontal" /> + + </LinearLayout> + <ImageView android:id="@+id/user_id_item_edit_image" android:layout_width="wrap_content" android:layout_height="match_parent" - android:src="@drawable/ic_action_edit" + android:src="@drawable/ic_mode_edit_grey_24dp" android:padding="8dp" android:layout_gravity="center_vertical" /> @@ -70,7 +73,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:padding="8dp" - android:src="@drawable/ic_action_cancel" + android:src="@drawable/ic_close_grey_24dp" android:layout_gravity="center_vertical" style="@style/SelectableItem" /> diff --git a/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml b/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml index fd0a85d6c..9a26d1757 100644 --- a/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml +++ b/OpenKeychain/src/main/res/menu/encrypt_file_activity.xml @@ -12,4 +12,9 @@ android:id="@+id/check_delete_after_encrypt" android:title="@string/label_delete_after_encryption" android:checkable="true" /> + <item + android:id="@+id/check_enable_compression" + android:title="@string/label_enable_compression" + android:checked="true" + android:checkable="true" /> </menu>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml b/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml index 8deb59514..71d254bb9 100644 --- a/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml +++ b/OpenKeychain/src/main/res/menu/encrypt_text_activity.xml @@ -4,4 +4,9 @@ android:id="@+id/check_use_symmetric" android:title="@string/label_symmetric" android:checkable="true" /> + <item + android:id="@+id/check_enable_compression" + android:title="@string/label_enable_compression" + android:checked="true" + android:checkable="true" /> </menu>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/menu/key_view.xml b/OpenKeychain/src/main/res/menu/key_view.xml index c724c46a5..4a9fe16c7 100644 --- a/OpenKeychain/src/main/res/menu/key_view.xml +++ b/OpenKeychain/src/main/res/menu/key_view.xml @@ -22,7 +22,7 @@ <item android:id="@+id/menu_key_view_delete" - android:icon="@drawable/ic_action_discard" + android:icon="@drawable/ic_delete_grey_24dp" app:showAsAction="never" android:title="@string/menu_delete_key" /> diff --git a/OpenKeychain/src/main/res/menu/log_display.xml b/OpenKeychain/src/main/res/menu/log_display.xml new file mode 100644 index 000000000..7a2f77b79 --- /dev/null +++ b/OpenKeychain/src/main/res/menu/log_display.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <item + android:id="@+id/menu_log_display_export_log" + android:icon="@drawable/ic_save_white_24dp" + android:title="@string/menu_export_log" + app:showAsAction="ifRoom|withText" /> + +</menu> diff --git a/OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-bg/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-bg/help_wot.html b/OpenKeychain/src/main/res/raw-bg/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-bg/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html deleted file mode 100644 index e40da69bf..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Jak přijmout klíče</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Podržte dvě zařízení zády k sobě (musí se téměř dotýkat) a ucítíte vibraci.</li> -<li>Po tom co ucítíte vibraci, uvidíte že se obsah na displeji zařízení vašeho partnera změní na objekt typu karta s animací na pozadí připomínající rychlost warpu ze Star Treku.</li> -<li>Tapněte na kartu a obsah se nahraje do zařízení.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-cs/help_wot.html b/OpenKeychain/src/main/res/raw-cs/help_wot.html deleted file mode 100644 index 29b4fc420..000000000 --- a/OpenKeychain/src/main/res/raw-cs/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Síť důvěry</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Podpora v OpenKeychain</h2> -<p>Podpora pro síť důvěry v OpenKeychain je teprve ve svých začátcích. Tento stav se bude velmi měnit v dalších verzích aplikace.</p> - -<h2>Model důvěry</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifikace klíčů</h2> -<p>Podpora pro certifikaci klíčů je dostupná a uživatelská ID mohou být certifikována jednotlivě. Ještě není možné určovat úroveň důvěryhodnosti nebo vytvářet lokální a jiné speciální typy certifikátů.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html deleted file mode 100644 index 3f1b9e22d..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Wie kann man Schlüssel empfangen</h2> -<ol> -<li>Gehe zu den Schlüsseln deiner Partner und öffne den Schlüssel welcher geteilt werden soll.</li> -<li>Halten Sie die zwei Geräte rückseitig aneinander (sodass sie sich fast berühren) und es wird vibrieren</li> -<li>Nachdem es vibriert sehen sie wie sich der Inhalt des Gerätes ihres Bekannten von einer Warp-Geschwindigkeit Animation umgeben wird</li> -<li>Wenn sie die Karte antippen, wird der Inhalt auf ihr Gerät übertragen</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-de/help_wot.html b/OpenKeychain/src/main/res/raw-de/help_wot.html deleted file mode 100644 index ad33ddbb1..000000000 --- a/OpenKeychain/src/main/res/raw-de/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>Das Web of Trust beschreibt den Teil von PGP der sich mit der Erstellung und dem Verwalten von Zertifikaten beschäftigt. Nutzer können so im Auge behalten zu wem ein bestimmter Public Key gehört, sowie diese Information teilen: Um die Privatsphäre von verschlüsselter Kommunikation zu gewährleisten ist es essentiell zu wissen ob der Public Key den man zum Verschlüsseln nutzt zu der Person gehört, die man erwartet.</p> - -<h2>Support in OpenKeychain</h2> -<p>Es gibt nur eine rudimentäre Unterstützung für das Web of Trust in OpenKeychain. Am Web of Trust System wird kontinuierlich gearbeitet und es wird in den kommenden Version überarbeitet.</p> - -<h2>Vertrauens-Modell</h2> -<p>Die Bewertung des Vertrauens basiert auf der Grundannahme, dass alle Schlüssel zu denen ein privater Schlüssel vorhanden ist, vertrauenswürdig sind. Öffentliche Schlüssel welche mindestens eine User ID beinhalten, die von einem Trusted Key verifiziert wurden, werden mit einem grünen Punkt in der Schlüsselliste gekennzeichnet. Es ist (noch) nicht möglich bestimmte Trust Level für Zertifikate anderer bekannter öffentlicher Schlüssel festzulegen.</p> - -<h2>Schlüssel beglaubigen</h2> -<p>Die Unterstützung für die Zertifizierung von Schlüsseln ist vorhanden. Nutzer IDs können separat zertifiziert werden. Es ist jedoch sowohl noch nicht möglich das Vertrauenslevel festzulegen, als auch lokale oder andere spezielle Zertifikate zu erstellen.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html deleted file mode 100644 index b1c29183f..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Cómo recibir las claves</h2> -<ol> -<li>Vaya a las claves de socios y abra la clave que quiera compartir.</li> -<li>Mantén los dos dispositivos de con ambos reversos juntos (tienen que estar casi en contacto) y notarás una vibración.</li> -<li>Después de que vibre, verás el contenido en el dispositivo de tu compañero convertirse en una especie de ficha con una animación de Star Trek de fondo.</li> -<li>Toca la ficha y el contenido se cargará en tu dispositivo.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-es/help_wot.html b/OpenKeychain/src/main/res/raw-es/help_wot.html deleted file mode 100644 index 3af2cae10..000000000 --- a/OpenKeychain/src/main/res/raw-es/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Anillo de confianza</h2> -<p>El anillo de confianza (web of trust) describe la parte de OpenPGP que se encarga de la creación y registro de las certificaciones. Proporciona mecanismos para ayudar al usuario a llevar un seguimiento de a quién pertenece una clave pública, y compartir esta información con otros. Para asegurar la privacidad de la comunicación cifrada, es esencial saber que la clave pública con la que usted la cifra pertenece a la persona que usted cree.</p> - -<h2>Soporte en OpenKeychain</h2> -<p>Sólo hay soporte básico para el anillo de confianza (web of trust) en OpenKeychain. Esta es una pesada tarea que tenemos en marcha sujeta a cambios en versiones posteriores.</p> - -<h2>Modelo de confianza</h2> -<p>La evaluación de la confianza está basada en la simple asunción de que todas las claves que tienen disponibles claves privadas (secretas) son de confianza. Las claves públicas que contienen al menos una identificación de usuario certificada por una clave de confianza serán marcadas con un punto verde en los listados de claves. No es posible (aún) especificar niveles de confianza para certificados de otras claves públicas conocidas.</p> - -<h2>Certificando claves</h2> -<p>Está disponible el soporte para certificación de clave, y las identificaciones de usuario pueden ser certificadas individualmente. No es posible aún especificar el nivel de confianza o crear certificados locales y otros tipos especiales de certificados.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-et/help_wot.html b/OpenKeychain/src/main/res/raw-et/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-et/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-eu/help_wot.html b/OpenKeychain/src/main/res/raw-eu/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-eu/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-fi/help_wot.html b/OpenKeychain/src/main/res/raw-fi/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-fi/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html deleted file mode 100644 index 374975b73..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Comment recevoir des clefs</h2> -<ol> -<li>Allez aux clefs de votre partenaire et ouvrez la clef que vous voulez partager.</li> -<li>Tenir les deux appareils dos à dos (se touchant presque) et une vibration sera ressentie.</li> -<li>Après la vibration, le contenu de l'appareil de votre partenaire deviendra un objet en forme de carte avec une animation à la Star Trek en arrière-plan.</li> -<li>Toquer la carte et le contenu se chargera alors sur votre appareil.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-fr/help_wot.html b/OpenKeychain/src/main/res/raw-fr/help_wot.html deleted file mode 100644 index 6763b8969..000000000 --- a/OpenKeychain/src/main/res/raw-fr/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Toile de confiance</h2> -<p>La toile de confiance décrit la partie d'OpenPGP qui s'occupe de la création et du suivi des certifications. Elle fournit des mécanismes pour aider l'utilisateur à suivre à qui appartient une clef publique, et partager cette information avec d'autres. Pour assurer la confidentialité d'une communication chiffrée, il est essentiel de savoir que la clef publique vers laquelle vous chiffrez appartient à la personne à qui vous croyez qu'elle appartient.</p> - -<h2>Prise en charge dans OpenKeychain</h2> -<p>OpenKeychain offre seulement une prise en charge de base de la toile de confiance. Un travail important est en cours et ceci pourrait changer dans les versions à venir.</p> - -<h2>Modèle de confiance</h2> -<p>L'évaluation de la confiance est fondée sur la simple supposition que toutes les clefs proposant des clefs secrètes sont de confiance. Les clefs publiques contenant au moins un ID utilisateur certifié par une clef de confiance seront marquées par un point vert dans le listage des clefs. Il n'est pas (encore) possible de spécifier les niveaux de confiance pour les certificats d'autres clefs publiques inconnues.</p> - -<h2>Certifications des clefs</h2> -<p>La prise en charge de la certification des clefs est proposée et les ID utilisateurs peuvent être certifiées individuellement. Il n'est pas encore possible de spécifier le niveau de confiance ou de créer des certificats locaux et d'autres types spéciaux.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-is/help_wot.html b/OpenKeychain/src/main/res/raw-is/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-is/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html deleted file mode 100644 index f6bf27fe8..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Come ricevere le chiavi</h2> -<ol> -<li>Vai alle chiavi dei contatti dei tuoi partner e apri la chiave che si desidera condividere.</li> -<li>Mantieni i due dispositivi vicini (devono quasi toccarsi) e sentirai una vibrazione.</li> -<li>Dopo che ha vibrato, vedrai il contenuto del tuo dispositivo diventare come una scheda e nello sfondo apparirà una animazione come la propulsione a curvatura di Star Trek.</li> -<li>Tocca la scheda e il contenuto dopo si trasferira' nel dispositivo dell'altra persona.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-it/help_wot.html b/OpenKeychain/src/main/res/raw-it/help_wot.html deleted file mode 100644 index 09b38199b..000000000 --- a/OpenKeychain/src/main/res/raw-it/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Rete di Fiducia</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Supporto in OpenKeychain</h2> -<p>Esiste solo un supporto di base per le Reti di Fiducia in OpenKeychain. Questo è un grosso lavoro in corso e soggetto a modifiche nei prossimi rilasci.</p> - -<h2>Modello di Fiducia</h2> -<p>La valutazione di fiducia si basa sul semplice presupposto che tutte le chiavi che hanno chiavi segrete disponibili sono attendibili. Le chiavi pubbliche che contengono almeno un id utente certificato da una chiave di fiducia saranno contrassegnati con un punto verde negli elenchi principali. Non è (ancora) possibile specificare livelli di attendibilità per i certificati di altre chiavi pubbliche conosciute.</p> - -<h2>Chiavi di certificazione</h2> -<p>Il supporto per la certificazione chiave è disponibile, e gli id utenti possono essere certificati singolarmente. Non è ancora possibile specificare il livello di fiducia o creare certificati locali e altro di tipo speciale.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html deleted file mode 100644 index c19280fd1..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>鍵の受信方法</h2> -<ol> -<li>パートナーの連絡先に行き、共有したい連絡先を開きます。</li> -<li>2つのデバイスを背中合せ(ほとんどすべてのタッチ方法)にしてバイブを感じるまで保持しておいてください。</li> -<li>バイブの後、相手のデバイスでスタートレック風のバックグラウンドアニメーションしているカード風のコンテンツを見ると思います。</li> -<li>カードをタップしコンテンツをあなたのデバイスにロードします。</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-ja/help_wot.html b/OpenKeychain/src/main/res/raw-ja/help_wot.html deleted file mode 100644 index e4db99bb8..000000000 --- a/OpenKeychain/src/main/res/raw-ja/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>信頼の輪</h2> -<p>信頼の輪はOpenPGPの一面で証明の作成とその維持の一面を説明します。ユーザが公開鍵に属する者の追跡を維持し、他のユーザーとその情報を共有する手助けになるメカニズムを提供します。暗号化通信のプライバシーを確保するためには、あなたが暗号化したいという相手の公開鍵が必要な要素となります。</p> - -<h2>OpenKeychainでサポート</h2> -<p>OpenKeychainで信頼の輪の基本のみサポートされます。とても重い作業を進めており今後やってくるリリースにおいて状態が変更されていきます。</p> - -<h2>信頼モデル</h2> -<p>信頼の評価はシンプルな仮定に基づいています、それはすべての鍵は秘密鍵が信頼できるというものです。公開鍵は信頼された鍵で検証された最低1つのユーザIDを含んでおり、それは鍵リストにおいて、緑でマークされます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものには(まだ)しません。</p> - -<h2>鍵の検証</h2> -<p>鍵検証のサポートが提供されており、またユーザIDは個別に検証できます。ただしそれは他の既知の公開鍵の信頼レベルを特別なものにはしないローカルもしくは他の特別なタイプの証明です。</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html deleted file mode 100644 index 4caf75748..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Hoe sleutels te ontvangen</h2> -<ol> -<li>Ga naar je partner's sleutels en open de sleutel die je wil delen.</li> -<li>Houd de twee toestellen met de achterkant tegen elkaar (ze moeten elkaar bijna aanraken) en je zal een trilling voelen.</li> -<li>Nadat het trilt zal je de inhoud op je partner's toestel in een soort kaart zien veranderen met Star Trek warp snelheid-eruitziende animatie op de achtergrond.</li> -<li>Druk op de kaart en de inhoud zal dan laden op het toestel.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-nl/help_wot.html b/OpenKeychain/src/main/res/raw-nl/help_wot.html deleted file mode 100644 index 4c72a875c..000000000 --- a/OpenKeychain/src/main/res/raw-nl/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web van Vertrouwen</h2> -<p>Het Web van Vertrouwen beschrijft het deel van OpenPGP dat te maken heeft met aanmaken en boekhouden van certificaten. Het voorziet van mechanismes zodat de gebruiker bij kan houden van aan wie een publieke sleutel toebehoort, en deze informatie met anderen kan delen; om de privacy van versleutelde communicatie te verzekeren, is het essentiëel om te weten dat de publieke sleutel die je versleutelt, toebehoort aan de persoon aan wie je denkt dat het toebehoort.</p> - -<h2>Ondersteuning in OpenKeychain</h2> -<p>Er is alleen basisondersteuning voor Web van Vertrouwen in OpenKeychain. Dit is een zware 'werk in uitvoering' en onderwerp voor veranderingen in toekomstige releases.</p> - -<h2>Vertrouwensmodel</h2> -<p>Vertrouwensevaluatie is gebaseerd om de simpele aanname dat alle sleutels die beschikbare geheime sleutels hebben, vertrouwd zijn. Publieke sleutels die minstens een gebruikers-ID bevatten, gecertificeerd door een vertrouwde sleutel, zullen gemarkeerd worden met een groene stip in de sleutel lijsten. Het is (nog) niet mogelijk om vertrouwen niveaus voor certificaten van andere bekende publieke sleutels te specifiëren.</p> - -<h2>Bezig met certificeren van sleutels<br></h2> -<p>Ondersteuning voor sleutelcertificatie is beschikbaar, en gebruikers-ID's kunnen individueel gecertificeerd worden. Het is nog niet mogelijk om het niveau van vertrouwen te specifiëren om locale en andere speciale typen van certificaten te maken.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html deleted file mode 100644 index 8d42a8261..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Jak odbierać klucze</h2> -<ol> -<li>Idź to kluczy swoich partnerów i otwórz klucz którym chcesz się podzielić.</li> -<li>Przytrzymaj oba urządzenia tyłem do siebie (powinny się niemal dotykać) aż poczujesz wibrację.</li> -<li>Po zakończeniu wibracji zobaczysz, że zawartość urządzenia partnera zamienia się w obiekt zbliżony do wizytówki, z animacją rodem ze Star Treka w tle.</li> -<li>Dotknij wizytówkę, a jej zawartość zostanie wysłana na Twoje urządzenie.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-pl/help_wot.html b/OpenKeychain/src/main/res/raw-pl/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-pl/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-pt/help_wot.html b/OpenKeychain/src/main/res/raw-pt/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-pt/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html deleted file mode 100644 index 966fb554a..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-ro/help_wot.html b/OpenKeychain/src/main/res/raw-ro/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-ro/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html deleted file mode 100644 index fcf55cdaf..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Как обменяться ключами</h2> -<ol> -<li>Нажмите и удерживайте ключ, который вы хотите передать.</li> -<li>Поднесите оба устройства вплотную обратными сторонами (до полного касания). Вы почувствуете небольшую вибрацию.</li> -<li>Как только устройства завибрируют, на экране появится карточка с передаваемым содержимым.</li> -<li>Нажмите на карточку, что бы передать данные (ключи) с одного устройства на другое.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-ru/help_wot.html b/OpenKeychain/src/main/res/raw-ru/help_wot.html deleted file mode 100644 index 7fbde44d3..000000000 --- a/OpenKeychain/src/main/res/raw-ru/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Сеть доверия (WoT)</h2> -<p>Сеть доверия (The Web of Trust) предоставляет механизм заверения ключей посредством присоединения и распространения информации о выполненной сертификации. Для гарантии безопасного зашифрованного общения крайне важно не сомневаться, что владельцем ключа является ваш собеседник.</p> - -<h2>Поддержка в OpenKeychain</h2> -<p>В настоящее время реализованы только базовые возможности WoT. Работа в самом разгаре и в будущих версиях OpenKeychain будут появляться дополнительные возможности.</p> - -<h2>Модель доверия</h2> -<p>Проверка доверия основана на простом принципе, что если доступен секретный ключ, то доверие к нему абсолютное. Однако, публичные должны содержать подписи кого-то, кому вы доверяете, что бы подпись, сделанная таким ключом, была отмечена зелёным индикатором. К сожалению, (пока) нельзя определять степень доверия к другим известным публичным ключам.</p> - -<h2>Сертификация ключей</h2> -<p>Поддержка сертификации ключей уже реализована, и Вы можете сертифицировать отдельные ID пользователя. Пока нельзя выбирать степень доверия, создавать локальные или специальные типы сертификатов.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html deleted file mode 100644 index 62599edc2..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Kako pridobiti ključe</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>S hrbtoma približajte dve napravi (vašo ter vašega partnerja - morata se skoraj dotikati) in začutili boste vibracijo.</li> -<li>Po vibraciji se bo vsebina na napravi vašega partnerja spremenila v vizitki podoben objekt s 'Star Trek' animacijo v ozadju.</li> -<li>Tapnite vizitko in njena vsebnina se bo prenesla na vašo napravo.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-sl/help_wot.html b/OpenKeychain/src/main/res/raw-sl/help_wot.html deleted file mode 100644 index 224110e18..000000000 --- a/OpenKeychain/src/main/res/raw-sl/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Omrežje zaupanja</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Podpora v OpenKeychain</h2> -<p>OpenKeychain ponuja zgolj osnovno podporo za 'Omrežje zaupanja'. V prihodnjih različicah bomo to podporo še nadgrajevali in izboljševali.</p> - -<h2>Model zaupanja</h2> -<p>Ocena zaupanja temelji na predpostavki, da so vsi ključi, ki vsebujejo tudi zasebne ključe, vredni zaupanja. Javni ključi, ki vsebujejo vsaj en uporabniški ID, ki je overjen z zaupanja vrednim ključem, so na seznamu ključev označeni z zeleno piko. Zaenkrat (še) ni možno natančneje določiti stopnje zaupanja potrdil drugih znanih javnih ključev.</p> - -<h2>Overjanje ključev</h2> -<p>Overjanje ključev je na voljo. Uporabniške ID-je ključev overjamo individualno. Zaenkrat ni možno natančneje določiti stopnje zaupanja ali ustvarjati lokalne ali druge posebne vrste potrdil.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html deleted file mode 100644 index bef6f591e..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Како примити кључеве</h2> -<ol> -<li>Идите у кључеве вашег другара и отворите кључ којег желите да поделите.</li> -<li>Држите оба уређаја леђа о леђа (треба да се скоро додирују) и осетићете вибрацију.</li> -<li>Након вибрације видећете да се садржај на уређају вашег другара претвара у нешто што личи на картицу са анимацијом сличном ворп брзини из Звезданих Стаза у позадини.</li> -<li>Додирните картицу и садржај ће се потом учитати на вашем уређају.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-sr/help_wot.html b/OpenKeychain/src/main/res/raw-sr/help_wot.html deleted file mode 100644 index 713b3e331..000000000 --- a/OpenKeychain/src/main/res/raw-sr/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Веб Поверења</h2> -<p>Веб Поверења описује део ОпенПГП-а који се бави прављењем и спремањем сертификата. Пружа механизме који помажу кориснику у праћењу коме јавни кључ припада и дељењу ове информације са осталима; да би се осигурала приватност шифроване комуникације, нужно је знати да јавни кључ на који шифрујете припада особи којој и мислите да припада.</p> - -<h2>Подршка у Отвореном кључарнику</h2> -<p>Постоји само основна подршка за Веб поверења у Отвореном кључарнику. Ово је велики посао у току и подложан променама у наредним издањима.</p> - -<h2>Модел поверења</h2> -<p>Евалуација поверења се заснива на једноставној претпоставци да су сви кључеви који имају доступне тајне кључеве, од поверења. Јавни кључеви који садрже најмање један кориснички ид оверен кључем од поверења биће означени зеленом тачком у исписима кључева. Није (још) могуће одредити нивое поверења за сертификате других познатих јавних кључева.</p> - -<h2>Оверавање кључева</h2> -<p>Подршка за оверу кључева је доступна, и кориснички ид-ови могу бити оверавани појединачно. Још није могуће одредити ниво поверења или направити локалне и друге посебне врсте сертификата.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html deleted file mode 100644 index 4e940a398..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Hur man tar emot nycklar</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Håll de två enheternas baksidor mot varandra (de måste nästan vidröras) och du känner av en vibration.</li> -<li>Efter vibrationen kommer du att se innehållet på din partners enhet omvandlas till ett kortliknande föremål och en animation i bakgrunden som ser ut som Star Treks warp speed.</li> -<li>Tryck på kortet och innehållet kommer att laddas på den andra personens enhet.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-sv/help_wot.html b/OpenKeychain/src/main/res/raw-sv/help_wot.html deleted file mode 100644 index 68a2e3997..000000000 --- a/OpenKeychain/src/main/res/raw-sv/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Tillitsnät</h2> -<p>Tillitsnätet beskriver den del av OpenPGP som handlar om hur man skapar och bokför certifieringar. Det gör det möjligt för användaren att hålla reda på vem en publik nyckel tillhör, och dela denna information med andra; för att försäkra sig om integriteten i krypterad kommunikation är det avgörande att veta att den publika nyckel du krypterar till tillhör den person du tror att den gör.</p> - -<h2>Stöd i OpenKeychain</h2> -<p>Endast grundläggande stöd för tillitsnät finns i OpenKeychain. Arbetet med funktionen pågår och den kan komma att ändras i kommande versioner.</p> - -<h2>Tillitsmodell</h2> -<p>Värderingen av tillit utgår från det enkla antagandet att alla nycklar som har en privat nyckel är tillförlitliga. Publika nycklar som innehåller åtminstone ett användar-ID certifierat av en tillförlitlig nyckel kommer att ha en grön prick i nyckellistorna. Det är (ännu) inte möjligt att ange nivån av tillit för andra kända publika nycklars certifikat.</p> - -<h2>Certifiera nycklar</h2> -<p>Stöd för nyckelcertifiering finns, och enskilda användar-ID:n kan certifieras. Det är ännu inte möjligt att ange nivån av tillit eller skapa ett lokalt eller andra typer av certifikat.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html deleted file mode 100644 index 49f79e157..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Anahtarlar nasıl alınır</h2> -<ol> -<li>Eşleşecek cihazın anahtarlarına girin ve paylaşmak istediğiniz anahtarı açın.</li> -<li>İki cihazı arka arkaya tutun (neredeyse temas edecek şekilde) ve bir titreşim hissedeceksiniz.</li> -<li>Titreşimden sonra içeriğin eşleşecek cihazda arkaplanında Star Trek ışınlanma animasyonu olan kart'a benzer bir objeye dönüştüğünü göreceksiniz.</li> -<li>Kart'a tıklayın ve içerik sizin cihazınıza yüklensin.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-tr/help_wot.html b/OpenKeychain/src/main/res/raw-tr/help_wot.html deleted file mode 100644 index f2282908b..000000000 --- a/OpenKeychain/src/main/res/raw-tr/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>OpenKeychain Desteği</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Güven Modeli</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Anahtar Tasdikleme</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html deleted file mode 100644 index fb4698b7f..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>Як обмінятися ключами</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Піднесіть обидва пристрої впритул зворотними сторонами (до повного торкання). Ви відчуєте невелику вібрацію.</li> -<li>Після вібрації пристроїв на екрані з'явиться картка з передаваним вмістом.</li> -<li>Натисніть на картку, що б передати дані з одного пристрою на інший.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-uk/help_wot.html b/OpenKeychain/src/main/res/raw-uk/help_wot.html deleted file mode 100644 index 669aa0649..000000000 --- a/OpenKeychain/src/main/res/raw-uk/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Мережа довіри</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Підтримка у OpenKeychain</h2> -<p>Наразі реалізовані тільки базові можливості WoT. Робота в самому розпалі, і в майбутніх версіях OpenKeychain будуть з'являтися додаткові можливості.</p> - -<h2>Модель довіри</h2> -<p>Перевірка довіри заснована на простому принципі, що якщо доступний секретний ключ, то довіра до нього абсолютна. Однак, публічні повинні містити підписи когось, кому ви довіряєте, що б підпис, зроблений таким ключем, був відзначений зеленим індикатором. На жаль, (поки що) не можна визначати ступінь довіри до інших відомих публічних ключів.</p> - -<h2>Сертифікація ключів</h2> -<p>Підтримка сертифікації ключів вже реалізована, і Ви можете сертифікувати окремі ID користувача. Наразі не можна вибирати ступінь довіри, створювати локальні або спеціальні типи сертифікатів.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html deleted file mode 100644 index f789438a7..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>使用NFC接收和分享金鑰</h2> -<ol> -<li>找到並打開你要分享的金鑰。</li> -<li>將裝置背對背輕靠,直到感覺到震動。</li> -<li>震動後會發現畫面變成卡片狀,並且背景帶有Star Trek的特效。</li> -<li>輕觸畫面,內容將顯示在對方的畫面上。</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html b/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html deleted file mode 100644 index 0db0d354f..000000000 --- a/OpenKeychain/src/main/res/raw-zh-rTW/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>信任網</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>OpenKeychain的支援狀況</h2> -<p>目前OpenKeychain對信任網只有基本程度的支援。這是一件大工程,有任何進展將隨時發佈。</p> - -<h2>信任模式</h2> -<p>信用評價基於一個前提:所有帶有密鑰的金鑰都是可以信任的。所有可信任金鑰簽署過的公鑰,會在清單裡被標上一個綠圓點。目前並不支援指定其他公鑰的信任等級。</p> - -<h2>金鑰認證</h2> -<p>金鑰認證是支援的,而且每個身份可以個別進行認證。然而,目前並不支援指定簽署的信任等級與建立本機或其他形式的認證。</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html b/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html deleted file mode 100644 index 3f08fa6a2..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html +++ /dev/null @@ -1,12 +0,0 @@ -<html> -<head></head> -<body> -<h2>使用NFC功能接收和分享密钥</h2> -<ol> -<li>选择并打开你想要分享的密钥。</li> -<li>将两部手机背面接触,之后会感受到震动。</li> -<li>震动后会发现界面变成卡片状,并有Star Trek 般的特效。</li> -<li>轻触卡片,内容即可显示。</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw-zh/help_wot.html b/OpenKeychain/src/main/res/raw-zh/help_wot.html deleted file mode 100644 index 2a551f79c..000000000 --- a/OpenKeychain/src/main/res/raw-zh/help_wot.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> -<head></head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw/help_about.html b/OpenKeychain/src/main/res/raw/help_about.html index 1933a9225..6c034cc21 100644 --- a/OpenKeychain/src/main/res/raw/help_about.html +++ b/OpenKeychain/src/main/res/raw/help_about.html @@ -35,17 +35,19 @@ And don't add newlines before or after p tags because of transifex --> <h2>Libraries</h2> <ul> -<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Library v4</a> (Apache License v2)</li> -<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Library v7 'appcompat'</a> (Apache License v2)</li> +<li><a href="http://rtyley.github.com/spongycastle/">SpongyCastle</a> (MIT X11 License)</li> +<li><a href="https://github.com/SafeSlingerProject/exchange-android">SafeSlinger Exchange library</a> (MIT License)</li> +<li><a href="http://developer.android.com/tools/support-library/index.html">Android Support Libraries</a> (Apache License v2)</li> <li><a href="https://github.com/timbray/KeybaseLib">KeybaseLib</a> (Apache License v2)</li> -<li><a href="https://github.com/JohnPersano/SuperToasts">SuperToasts</a> (Apache License v2)</li> <li><a href="https://github.com/splitwise/TokenAutoComplete">TokenAutoComplete</a> (Apache License v2)</li> <li><a href="https://github.com/rtreffer/minidns">MiniDNS</a> (Apache License v2)</li> <li><a href="https://github.com/emilsjolander/StickyListHeaders">StickyListHeaders</a> (Apache License v2)</li> -<li><a href="http://code.google.com/p/zxing/">ZXing</a> (Apache License v2)</li> -<li><a href="http://rtyley.github.com/spongycastle/">SpongyCastle</a> (MIT X11 License)</li> -<li><a href="https://github.com/dschuermann/html-textview">HtmlTextView</a> (Apache License v2)</li> -<li><a href="https://github.com/SafeSlingerProject/exchange-android">SafeSlinger Exchange library</a> (MIT License)</li> +<li><a href="https://github.com/zxing/zxing">ZXing</a> (Apache License v2)</li> +<li><a href="https://github.com/journeyapps/zxing-android-embedded">ZXing Android Minimal</a> (Apache License v2)</li> +<li><a href="https://github.com/jpardogo/PagerSlidingTabStrip">PagerSlidingTabStrip (Material Design)</a> (Apache License v2)</li> +<li><a href="https://github.com/neokree/MaterialNavigationDrawer">MaterialNavigationDrawer</a> (Apache License v2)</li> +<li><a href="https://github.com/nispok/snackbar">Snackbar</a> (MIT License)</li> +<li><a href="https://github.com/futuresimple/android-floating-action-button">FloatingActionButton</a> (Apache License v2)</li> </ul> </body> </html> diff --git a/OpenKeychain/src/main/res/raw/help_certification.html b/OpenKeychain/src/main/res/raw/help_certification.html new file mode 100644 index 000000000..8228a4ac1 --- /dev/null +++ b/OpenKeychain/src/main/res/raw/help_certification.html @@ -0,0 +1,32 @@ +<!-- Maintain structure with headings with h2 tags and content with p tags. +This makes it easy to translate the values with transifex! +And don't add newlines before or after p tags because of transifex --> +<html> +<head> +</head> +<body> + +<h2>Key Confirmation</h2> +Without confirmation, you cannot be sure if a key really corresponds to a specific person. +The most simplest way to confirm a key is by scanning the QR Code or exchanging it via NFC. +To confirm keys between more than two persons, we suggest to use the key exchange method available for your keys. + +<h2>Key Status</h2> +<p><img src="status_signature_verified_cutout_24dp"/><br/>Confirmed: You have already confirmed this key, e.g., by scanning the QR Code. +<br/><img src="status_signature_unverified_cutout_24dp"/><br/>Unconfirmed: This key has not been confirmed yet. You cannot be sure if the key really corresponds to a specific person. +<br/><img src="status_signature_expired_cutout_24dp"/><br/>Expired: This key is no longer valid. Only the owner can extend its validity. +<br/><img src="status_signature_revoked_cutout_24dp"/><br/>Revoked: This key is no longer valid. It has been revoked by its owner.</p> + +<h2>Advanced Information</h2> +<p>A "key confirmation" in OpenKeychain is implemented by creating a certification according to the OpenPGP standard. +This certification is a <a href="http://tools.ietf.org/html/rfc4880#section-5.2.1">"generic certification (0x10)"</a> described in the standard by: +"The issuer of this certification does not make any particular assertion as to how well the certifier has checked that the owner of the key is in fact the person described by the User ID."</p> + +<p>Traditionally, certifications (often with higher certification levels, such as "positive certifications" (0x13)) are organized in OpenPGP's Web of Trust. +Our model of key confirmation is a much simpler concept to avoid common usability problems related to this Web of Trust. +We assume that keys are verified only to a certain degree that is still usable enough to be executed "on the go". +We also do not implement (potentially transitive) trust signatures or any other internal trust model. +Furthermore, keys which contain at least one user ID certified by a trusted key will be marked as "confirmed" in the key listings.</p> + +</body> +</html> diff --git a/OpenKeychain/src/main/res/raw/help_faq.html b/OpenKeychain/src/main/res/raw/help_faq.html deleted file mode 100644 index 094065909..000000000 --- a/OpenKeychain/src/main/res/raw/help_faq.html +++ /dev/null @@ -1,24 +0,0 @@ -<!-- Maintain structure with headings with h2 tags and content with p tags. -This makes it easy to translate the values with transifex! -And don't add newlines before or after p tags because of transifex --> -<html> -<head> -</head> -<body> -<h2>How can I specify connection port for Keyserver?</h2> -<p>Add a new Keyserver (or modify existing one) by going to Preferences -> General -> Keyservers. Enter the port number after the Keyserver address and preceded it by a colon. For example, "p80.pool.sks-keyservers.net:80" (without quotation marks) means that server "p80.pool.sks-keyservers.net" is working on a port 80.</p> -<p>Default connection port is 11371 and it doesn't need to be specified.</p> - -<h2>A wrong primary user id is shown when searching on a Keyserver</h2> -<p>Unfortunately, this is a bug in the SKS Keyserver software. Its machine-readable output returns the user ids in an arbitrary order. Read the <a href="https://bitbucket.org/skskeyserver/sks-keyserver/issue/28/primary-uid-in-machine-readable-index">related bug report</a> for more information.</p> - -<h2>How do I activate OpenKeychain in K-9 Mail?</h2> -<p>To use OpenKeychain with K-9 Mail, you want to follow these steps:</p> -<ol> - <li>Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.</li> - <li>Select "Account settings" and scroll to the very bottom and click "Cryptography".</li> - <li>Click on "OpenPGP Provider" and select OpenKeychain from the list.</li> -</ol> -<p>Thats it.</p> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw/help_nfc_beam.html b/OpenKeychain/src/main/res/raw/help_nfc_beam.html deleted file mode 100644 index 30060a897..000000000 --- a/OpenKeychain/src/main/res/raw/help_nfc_beam.html +++ /dev/null @@ -1,16 +0,0 @@ -<!-- Maintain structure with headings with h2 tags and content with p tags. -This makes it easy to translate the values with transifex! -And don't add newlines before or after p tags because of transifex --> -<html> -<head> -</head> -<body> -<h2>How to receive keys</h2> -<ol> -<li>Go to your partners keys and open the key you want to share.</li> -<li>Hold the two devices back to back (they have to be almost touching) and you’ll feel a vibration.</li> -<li>After it vibrates you’ll see the content on your partners device turn into a card-like object with Star Trek warp speed-looking animation in the background.</li> -<li>Tap the card and the content will then load on the your device.</li> -</ol> -</body> -</html> diff --git a/OpenKeychain/src/main/res/raw/help_start.html b/OpenKeychain/src/main/res/raw/help_start.html index 75fe9de26..0a30cbd92 100644 --- a/OpenKeychain/src/main/res/raw/help_start.html +++ b/OpenKeychain/src/main/res/raw/help_start.html @@ -5,10 +5,14 @@ And don't add newlines before or after p tags because of transifex --> <head> </head> <body> -<h2>Getting started</h2> -<p>First you need a personal key. Create one via the menu in "Keys" or import existing secret keys. Afterwards, you can download your friends' keys or exchange them via QR Codes or NFC.</p> -<p>On Android lower 4.4, it is recommended that you install <a href="market://details?id=org.openintents.filemanager">OI File Manager</a> for enhanced file selection.</p> +<h2>How do I activate OpenKeychain in K-9 Mail?</h2> +<p>To use OpenKeychain with K-9 Mail, you want to follow these steps:</p> +<ol> + <li>Open K-9 Mail and long-tap on the account you want to use OpenKeychain with.</li> + <li>Select "Account settings" and scroll to the very bottom and click "Cryptography".</li> + <li>Click on "OpenPGP Provider" and select OpenKeychain from the list.</li> +</ol> <h2>I found a bug in OpenKeychain!</h2> <p>Please report the bug using the <a href="https://github.com/openpgp-keychain/openpgp-keychain/issues">issue tracker of OpenKeychain</a>.</p> diff --git a/OpenKeychain/src/main/res/raw/help_wot.html b/OpenKeychain/src/main/res/raw/help_wot.html deleted file mode 100644 index d2ce4a7ae..000000000 --- a/OpenKeychain/src/main/res/raw/help_wot.html +++ /dev/null @@ -1,21 +0,0 @@ -<!-- Maintain structure with headings with h2 tags and content with p tags. -This makes it easy to translate the values with transifex! -And don't add newlines before or after p tags because of transifex --> -<html> -<head> -</head> -<body> -<h2>Web of Trust</h2> -<p>The Web of Trust describes the part of OpenPGP which deals with creation and bookkeeping of certifications. It provides mechanisms to help the user keep track of who a public key belongs to, and share this information with others; To ensure the privacy of encrypted communication, it is essential to know that the public key you encrypt to belongs to the person you think it does.</p> - -<h2>Support in OpenKeychain</h2> -<p>There is only basic support for Web of Trust in OpenKeychain. This is a heavy work in progress and subject to changes in upcoming releases.</p> - -<h2>Trust Model</h2> -<p>Trust evaluation is based on the simple assumption that all keys which have secret keys available are trusted. Public keys which contain at least one user id certified by a trusted key will be marked with a green dot in the key listings. It is not (yet) possible to specify trust levels for certificates of other known public keys.</p> - -<h2>Certifying keys</h2> -<p>Support for key certification is available, and user ids can be certified individually. It is not yet possible to specify the level of trust or create local and other special types of certificates.</p> - -</body> -</html> diff --git a/OpenKeychain/src/main/res/values-large/dimens.xml b/OpenKeychain/src/main/res/values-large/dimens.xml deleted file mode 100644 index 045e125f3..000000000 --- a/OpenKeychain/src/main/res/values-large/dimens.xml +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> -</resources> diff --git a/OpenKeychain/src/main/res/values-v21/dimens.xml b/OpenKeychain/src/main/res/values-v21/dimens.xml index 7e07ae0f9..f06cbbb80 100644 --- a/OpenKeychain/src/main/res/values-v21/dimens.xml +++ b/OpenKeychain/src/main/res/values-v21/dimens.xml @@ -8,4 +8,5 @@ <!-- 120dp + statusbar_height --> <dimen name="big_toolbar">141dp</dimen> <dimen name="huge_toolbar">243dp</dimen> + <dimen name="minus_statusbar_height">-25dp</dimen> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/dimens.xml b/OpenKeychain/src/main/res/values/dimens.xml index 434a0a171..2aae06e2e 100644 --- a/OpenKeychain/src/main/res/values/dimens.xml +++ b/OpenKeychain/src/main/res/values/dimens.xml @@ -4,4 +4,5 @@ <dimen name="statusbar_height">0dp</dimen> <dimen name="big_toolbar">120dp</dimen> <dimen name="huge_toolbar">222dp</dimen> + <dimen name="minus_statusbar_height">0dp</dimen> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index ca6ce1f7d..d9460882c 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -34,7 +34,7 @@ <string name="title_export_keys">"Export Keys"</string> <string name="title_key_not_found">"Key Not Found"</string> <string name="title_send_key">"Upload to Keyserver"</string> - <string name="title_certify_key">"Certify Identities"</string> + <string name="title_certify_key">"Confirm Key"</string> <string name="title_key_details">"Key Details"</string> <string name="title_help">"Help"</string> <string name="title_log_display">"Log"</string> @@ -42,6 +42,8 @@ <string name="title_exchange_keys">"Exchange Keys"</string> <string name="title_advanced_key_info">"Advanced Key Info"</string> <string name="title_keys">"Keys"</string> + <string name="title_delete_secret_key">"Delete YOUR key \'%s\'?"</string> + <string name="title_export_log">"Export Log"</string> <!-- section --> <string name="section_user_ids">"Identities"</string> @@ -54,19 +56,19 @@ <string name="section_defaults">"Defaults"</string> <string name="section_advanced">"Advanced"</string> <string name="section_passphrase_cache">"Passphrase Cache"</string> - <string name="section_certify">"Certify"</string> + <string name="section_certify">"Confirm"</string> <string name="section_actions">"Actions"</string> <string name="section_share_key">"Key"</string> - <string name="section_certification_key">"Your Key used for certification"</string> <string name="section_upload_key">"Synchronize Key"</string> <string name="section_key_server">"Keyserver"</string> <string name="section_fingerprint">"Fingerprint"</string> - <string name="section_key_to_certify">"Key to be certified"</string> <string name="section_decrypt_files">"Files"</string> <string name="section_decrypt_text">"Text"</string> <string name="section_certs">"Certificates"</string> <string name="section_encrypt">"Encrypt"</string> <string name="section_decrypt">"Decrypt"</string> + <string name="section_current_expiry">"Current expiry"</string> + <string name="section_new_expiry">"New expiry"</string> <!-- button --> <string name="btn_decrypt_verify_file">"Decrypt, verify, and save file"</string> @@ -112,7 +114,8 @@ <string name="menu_search_cloud">"Search cloud"</string> <string name="menu_export_all_keys">"Export all keys"</string> <string name="menu_advanced">"Show advanced info"</string> - <string name="menu_certify_fingerprint">"Verify via fingerprint comparison"</string> + <string name="menu_certify_fingerprint">"Confirm via fingerprint comparison"</string> + <string name="menu_export_log">"Export Log"</string> <!-- label --> <string name="label_message">"Message"</string> @@ -158,16 +161,10 @@ <string name="expiry_date_dialog_title">"Set expiry date"</string> <string name="label_first_keyserver_is_used">"(First keyserver listed is preferred)"</string> <string name="label_preferred">"preferred"</string> + <string name="label_enable_compression">"Enable compression"</string> <string name="user_id_no_name">"<no name>"</string> <string name="none">"<none>"</string> - <string name="no_key">"<no key>"</string> - <string name="can_encrypt">"can encrypt"</string> - <string name="can_sign">"can sign"</string> - <string name="can_certify">"can certify"</string> - <string name="can_certify_not">"cannot certify"</string> - <string name="expired">"expired"</string> - <string name="revoked">"revoked"</string> <plurals name="n_keys"> <item quantity="one">"1 key"</item> @@ -201,7 +198,6 @@ <string name="ecdh">"ECDH"</string> <string name="ecdsa">"ECDSA"</string> <string name="filemanager_title_open">"Open…"</string> - <string name="warning">"Warning"</string> <string name="error">"Error"</string> <string name="error_message">"Error: %s"</string> @@ -226,15 +222,14 @@ <string name="no_file_selected">"Select a file first."</string> <string name="encrypt_sign_successful">"Successfully signed and/or encrypted."</string> <string name="encrypt_sign_clipboard_successful">"Successfully signed and/or encrypted to clipboard."</string> - <string name="enter_passphrase_twice">"Enter the passphrase twice."</string> <string name="select_encryption_key">"Select at least one encryption key."</string> <string name="select_encryption_or_signature_key">"Select at least one encryption key or a signature key."</string> <string name="specify_file_to_encrypt_to">"Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists."</string> <string name="specify_file_to_decrypt_to">"Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists."</string> <string name="specify_file_to_export_to">"Please specify which file to export to.\nWARNING: File will be overwritten if it exists."</string> - <string name="key_deletion_confirmation_multi">"Do you really want to delete all selected public keys?\nYou can't undo this!"</string> - <string name="secret_key_deletion_confirmation">"Do you really want to delete the SECRET key '%s'?\nYou can't undo this!"</string> - <string name="public_key_deletetion_confirmation">"Do you really want to delete the public key '%s'?\nYou can't undo this!"</string> + <string name="key_deletion_confirmation_multi">"Do you really want to delete all selected keys?"</string> + <string name="secret_key_deletion_confirmation">"After deletion you will not be able to read messages encrypted with this key and lose all key confirmations done with it!"</string> + <string name="public_key_deletetion_confirmation">"Delete key '%s'?"</string> <string name="also_export_secret_keys">"Also export secret keys"</string> <string name="reinstall_openkeychain">"You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys."</string> @@ -244,6 +239,8 @@ <string name="key_creation_el_gamal_info">"Note: only subkeys support ElGamal."</string> <string name="key_not_found">"Couldn't find key %08X."</string> + <string name="specify_file_to_export_log_to">"Please specify file to export to. \nWARNING: File will be overwritten if it exists."</string> + <plurals name="bad_keys_encountered">" <item quantity="one">"%d bad secret key ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.""</item> <item quantity="other">"%d bad secret keys ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.""</item> @@ -253,7 +250,7 @@ <string name="nfc_successful">"Successfully sent key with NFC Beam!"</string> <string name="key_copied_to_clipboard">"Key has been copied to the clipboard!"</string> <string name="fingerprint_copied_to_clipboard">"Fingerprint has been copied to the clipboard!"</string> - <string name="select_key_to_certify">"Please select a key to be used for certification!"</string> + <string name="select_key_to_certify">"Please select a key to be used for confirmation!"</string> <string name="key_too_big_for_sharing">"Key is too big to be shared this way!"</string> <string name="text_copied_to_clipboard">"Text has been copied to the clipboard!"</string> @@ -392,7 +389,7 @@ <!-- Help --> <string name="help_tab_start">"Start"</string> <string name="help_tab_faq">"FAQ"</string> - <string name="help_tab_wot">"Web of Trust"</string> + <string name="help_tab_wot">"Key Confirmation"</string> <string name="help_tab_nfc_beam">"NFC Beam"</string> <string name="help_tab_changelog">"Changelog"</string> <string name="help_tab_about">"About"</string> @@ -534,7 +531,7 @@ <string name="key_view_action_edit">"Edit key"</string> <string name="key_view_action_encrypt">"Encrypt text"</string> <string name="key_view_action_encrypt_files">"files"</string> - <string name="key_view_action_certify">"Certify identities"</string> + <string name="key_view_action_certify">"Confirm key"</string> <string name="key_view_action_update">"Update from keyserver"</string> <string name="key_view_action_share_with">"Share with…"</string> <string name="key_view_action_share_nfc">"Share over NFC"</string> @@ -554,16 +551,16 @@ <string name="user_id_info_invalid_text">"Something is wrong with this identity!"</string> <!-- Key trust --> - <string name="key_trust_already_verified">"You have already certified this key!"</string> + <string name="key_trust_already_verified">"You have already confirmed this key!"</string> <string name="key_trust_it_is_yours">"This is one of your keys!"</string> - <string name="key_trust_maybe">"This key is neither revoked nor expired.\nYou haven’t certified it, but you may choose to trust it."</string> + <string name="key_trust_maybe">"This key is neither revoked nor expired.\nYou haven’t confirmed it, but you may choose to trust it."</string> <string name="key_trust_revoked">"This key has been revoked by its owner. You should not trust it."</string> <string name="key_trust_expired">"This key has expired. You should not trust it."</string> <string name="key_trust_old_keys">" It may be OK to use this to decrypt an old message dating from the time when this key was valid."</string> <string name="key_trust_no_cloud_evidence">"No proof from the cloud on this key’s trustworthiness."</string> <string name="key_trust_start_cloud_search">"Start search"</string> <string name="key_trust_results_prefix">"Keybase.io offers “proofs” which assert that the owner of this key: "</string> - <string name="key_trust_header_text">"Note: Keybase.io proofs are an experimental feature of OpenKeychain. We encourage you to scan QR Codes or exchange keys via NFC in addition to verifying them."</string> + <string name="key_trust_header_text">"Note: Keybase.io proofs are an experimental feature of OpenKeychain. We encourage you to scan QR Codes or exchange keys via NFC in addition to confirming them."</string> <!-- keybase proof stuff --> <string name="keybase_narrative_twitter">"Posts to Twitter as"</string> @@ -636,8 +633,8 @@ <string name="view_key_expired">"Expired: The contact needs to extend the key's validity!"</string> <string name="view_key_expired_secret">"Expired: You can extend the keys validity by editing it!"</string> <string name="view_key_my_key">"My Key"</string> - <string name="view_key_verified">"Verified Key"</string> - <string name="view_key_unverified">"Unverified: Scan QR Code to verify key!"</string> + <string name="view_key_verified">"Confirmed Key"</string> + <string name="view_key_unverified">"Unconfirmed: Scan QR Code to confirm key!"</string> <!-- Navigation Drawer --> <string name="nav_keys">"Keys"</string> @@ -839,7 +836,7 @@ <string name="msg_kc_uid_no_cert">"No valid self-certificate found for user ID '%s', removing from ring"</string> <string name="msg_kc_uid_remove">"Removing invalid user ID '%s'"</string> <string name="msg_kc_uid_dup">"Removing duplicate user ID '%s'. The keyring contained two of them. This may result in missing certificates!"</string> - <string name="msg_kc_uid_warn_encoding">"User id does not verify as UTF-8!"</string> + <string name="msg_kc_uid_warn_encoding">"User ID does not verify as UTF-8!"</string> <string name="msg_kc_uat_jpeg">"Processing user attribute of type JPEG"</string> <string name="msg_kc_uat_unknown">"Processing user attribute of unknown type"</string> <string name="msg_kc_uat_bad_err">"Removing bad self certificate for user attribute"</string> @@ -854,7 +851,7 @@ <string name="msg_kc_uat_revoke_old">"Removing outdated revocation certificate for user attribute"</string> <string name="msg_kc_uat_no_cert">"No valid self-certificate found for user attribute, removing from ring"</string> <string name="msg_kc_uat_remove">"Removing invalid user attribute"</string> - <string name="msg_kc_uat_warn_encoding">"User id does not verify as UTF-8!"</string> + <string name="msg_kc_uat_warn_encoding">"User ID does not verify as UTF-8!"</string> <!-- Keyring merging log entries --> <string name="msg_mg_error_secret_dummy">"New public subkey found, but secret subkey dummy generation is not supported!"</string> @@ -991,6 +988,7 @@ <string name="msg_dc_clear_meta_size_unknown">"File size is unknown"</string> <string name="msg_dc_clear_meta_time">"Modification time: %s"</string> <string name="msg_dc_clear_signature_bad">"Signature check NOT OK!"</string> + <string name="msg_dc_error_unsupported_hash_algo">"Unsupported and potentially insecure hash algorithm!"</string> <string name="msg_dc_clear_signature_check">"Verifying signature data"</string> <string name="msg_dc_clear_signature_ok">"Signature check OK"</string> <string name="msg_dc_clear_signature">"Saving signature data for later"</string> @@ -1006,7 +1004,7 @@ <string name="msg_dc_error_pgp_exception">"Encountered OpenPGP Exception during operation!"</string> <string name="msg_dc_integrity_check_ok">"Integrity check OK!"</string> <string name="msg_dc_ok_meta_only">"Only metadata was requested, skipping decryption"</string> - <string name="msg_dc_ok">"OK"</string> + <string name="msg_dc_ok">"Decryption/Verification finished"</string> <string name="msg_dc_pass_cached">"Using passphrase from cache"</string> <string name="msg_dc_pending_nfc">"NFC token required, requesting user input…"</string> <string name="msg_dc_pending_passphrase">"Passphrase required, requesting user input…"</string> @@ -1018,6 +1016,7 @@ <string name="msg_dc_trail_sym">"Encountered trailing, symmetrically encrypted data"</string> <string name="msg_dc_trail_unknown">"Encountered trailing data of unknown type"</string> <string name="msg_dc_unlocking">"Unlocking secret key"</string> + <string name="msg_dc_old_symmetric_encryption_algo">"Potentially insecure encryption algorithm has been used!"</string> <!-- Messages for VerifySignedLiteralData operation --> <string name="msg_vl">"Starting signature check"</string> @@ -1027,7 +1026,7 @@ <string name="msg_vl_clear_meta_file">"Filename: %s"</string> <string name="msg_vl_clear_meta_mime">"MIME type: %s"</string> <string name="msg_vl_clear_meta_time">"Modification time: %s"</string> - <string name="msg_vl_clear_meta_size">"Filesize: %s"</string> + <string name="msg_vl_clear_meta_size">"File size: %s"</string> <string name="msg_vl_clear_signature_check">"Verifying signature data"</string> <string name="msg_vl_error_integrity_check">"Integrity check error!"</string> <string name="msg_vl_ok">"OK"</string> @@ -1163,6 +1162,13 @@ <string name="msg_download_query_failed">"An error occurred when searching for keys."</string> + <!-- Messages for Export Log operation --> + <string name="msg_export_log_start">"Exporting log"</string> + <string name="msg_export_log_error_fopen">"Error opening file"</string> + <string name="msg_export_log_error_no_file">"No file name specified!"</string> + <string name="msg_export_log_error_writing">"I/O error writing to file!"</string> + <string name="msg_export_log_success">"Log exported successfully!"</string> + <!-- PassphraseCache --> <string name="passp_cache_notif_click_to_clear">"Click to clear cached passphrases"</string> <string name="passp_cache_notif_n_keys">"OpenKeychain has cached %d passphrases"</string> @@ -1184,11 +1190,10 @@ <string name="empty_certs">"No certificates for this key"</string> <string name="certs_text">"Only validated self-certificates and validated certificates created with your keys are displayed here."</string> <string name="section_uids_to_certify">"Identities for "</string> - <string name="certify_text">"The keys you are importing contain “identities”: names and emails. Select exactly those for certification which match what you expected."</string> + <string name="certify_text">"The keys you are importing contain “identities”: names and emails. Select exactly those for confirmation which match what you expected."</string> <string name="certify_fingerprint_text">"Compare the displayed fingerprint, character by character, with the one displayed on your partners device."</string> <string name="certify_fingerprint_text2">"Do the displayed fingerprints match?"</string> <string name="label_revocation">"Revocation Reason"</string> - <string name="label_verify_status">"Verification Status"</string> <string name="label_cert_type">"Type"</string> <string name="error_key_not_found">"Key not found!"</string> <string name="error_key_processing">"Error processing key!"</string> diff --git a/OpenKeychain/src/main/res/xml/adv_preferences.xml b/OpenKeychain/src/main/res/xml/adv_preferences.xml index 02986bdad..7dd649e5d 100644 --- a/OpenKeychain/src/main/res/xml/adv_preferences.xml +++ b/OpenKeychain/src/main/res/xml/adv_preferences.xml @@ -1,52 +1,23 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> - <PreferenceCategory android:title="@string/section_defaults"> - <CheckBoxPreference - android:key="writeVersionHeader" - android:persistent="false" - android:title="@string/label_write_version_header" - android:summary="@string/label_write_version_header_summary" /> - <org.sufficientlysecure.keychain.ui.widget.IntegerListPreference - android:key="defaultEncryptionAlgorithm" - android:persistent="false" - android:title="@string/label_encryption_algorithm" /> - <org.sufficientlysecure.keychain.ui.widget.IntegerListPreference - android:key="defaultHashAlgorithm" - android:persistent="false" - android:title="@string/label_hash_algorithm" /> - <org.sufficientlysecure.keychain.ui.widget.IntegerListPreference - android:key="defaultMessageCompression" - android:persistent="false" - android:title="@string/label_message_compression" /> - <org.sufficientlysecure.keychain.ui.widget.IntegerListPreference - android:key="defaultFileCompression" - android:persistent="false" - android:title="@string/label_file_compression" /> - <CheckBoxPreference - android:key="defaultAsciiArmor" - android:persistent="false" - android:title="@string/label_ascii_armor" /> - </PreferenceCategory> - <PreferenceCategory android:title="@string/section_passphrase_cache"> - <org.sufficientlysecure.keychain.ui.widget.IntegerListPreference - android:entries="@array/passphrase_cache_ttl_entries" - android:entryValues="@array/passphrase_cache_ttl_values" - android:key="passphraseCacheTtl" - android:persistent="false" - android:title="@string/label_passphrase_cache_ttl" /> - <CheckBoxPreference - android:key="passphraseCacheSubs" - android:persistent="false" - android:title="@string/label_passphrase_cache_subs" /> - <CheckBoxPreference - android:key="useDefaultYubikeyPin" - android:persistent="false" - android:defaultValue="true" - android:title="@string/label_use_default_yubikey_pin" - android:summary="@string/label_label_use_default_yubikey_pin_summary" /> - <CheckBoxPreference - android:key="useNumKeypadForYubikeyPin" - android:persistent="false" - android:defaultValue="false" - android:title="@string/label_use_num_keypad_for_yubikey_pin" /> - </PreferenceCategory> + <org.sufficientlysecure.keychain.ui.widget.IntegerListPreference + android:entries="@array/passphrase_cache_ttl_entries" + android:entryValues="@array/passphrase_cache_ttl_values" + android:key="passphraseCacheTtl" + android:persistent="false" + android:title="@string/label_passphrase_cache_ttl" /> + <CheckBoxPreference + android:key="passphraseCacheSubs" + android:persistent="false" + android:title="@string/label_passphrase_cache_subs" /> + <CheckBoxPreference + android:key="useDefaultYubikeyPin" + android:persistent="false" + android:defaultValue="true" + android:title="@string/label_use_default_yubikey_pin" + android:summary="@string/label_label_use_default_yubikey_pin_summary" /> + <CheckBoxPreference + android:key="useNumKeypadForYubikeyPin" + android:persistent="false" + android:defaultValue="false" + android:title="@string/label_use_num_keypad_for_yubikey_pin" /> </PreferenceScreen> diff --git a/OpenKeychain/src/main/res/xml/preference_headers.xml b/OpenKeychain/src/main/res/xml/preference_headers.xml index 347394b06..e3447ff48 100644 --- a/OpenKeychain/src/main/res/xml/preference_headers.xml +++ b/OpenKeychain/src/main/res/xml/preference_headers.xml @@ -4,5 +4,5 @@ android:title="@string/section_cloud_search" /> <header android:fragment="org.sufficientlysecure.keychain.ui.SettingsActivity$AdvancedPrefsFragment" - android:title="@string/section_advanced" /> + android:title="@string/section_passphrase_cache" /> </preference-headers> @@ -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 |