From 6d1137190529dc7add74926cea52c377883319be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sun, 6 Apr 2014 12:57:42 +0200 Subject: Rename folder structure from OpenPGP Keychain to OpenKeychain --- OpenKeychain-API/.gitignore | 29 + OpenKeychain-API/build.gradle | 3 + OpenKeychain-API/example-app/build.gradle | 61 ++ OpenKeychain-API/example-app/ic_launcher-web.png | Bin 0 -> 23512 bytes .../example-app/src/main/AndroidManifest.xml | 33 + .../keychain/demo/BaseActivity.java | 63 ++ .../keychain/demo/Constants.java | 21 + .../keychain/demo/IntentActivity.java | 583 +++++++++++++ .../keychain/demo/OpenPgpProviderActivity.java | 308 +++++++ .../src/main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 2626 bytes .../src/main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 1732 bytes .../src/main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 3517 bytes .../src/main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 5717 bytes .../src/main/res/layout/openpgp_provider.xml | 123 +++ .../src/main/res/xml/base_preference.xml | 18 + .../src/main/res/xml/intent_preference.xml | 30 + .../gradle/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 50557 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + OpenKeychain-API/gradle/gradlew | 164 ++++ OpenKeychain-API/gradle/gradlew.bat | 90 ++ OpenKeychain-API/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 50557 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + OpenKeychain-API/gradlew | 164 ++++ OpenKeychain-API/gradlew.bat | 90 ++ .../libraries/openkeychain-api-library/.gitignore | 29 + .../openkeychain-api-library/AndroidManifest.xml | 13 + .../libraries/openkeychain-api-library/LICENSE | 202 +++++ .../openkeychain-api-library/build.gradle | 35 + .../libraries/openkeychain-api-library/build.xml | 92 +++ .../openkeychain-api-library/proguard-project.txt | 20 + .../openkeychain-api-library/project.properties | 15 + .../keychain/api/OpenKeychainIntents.java | 37 + .../libraries/openpgp-api-library/.gitignore | 29 + .../openpgp-api-library/AndroidManifest.xml | 13 + .../libraries/openpgp-api-library/LICENSE | 202 +++++ .../libraries/openpgp-api-library/build.gradle | 35 + .../libraries/openpgp-api-library/build.xml | 92 +++ .../openpgp-api-library/proguard-project.txt | 20 + .../openpgp-api-library/project.properties | 15 + .../ic_action_cancel_launchersize.png | Bin 0 -> 1520 bytes .../ic_action_cancel_launchersize_light.png | Bin 0 -> 1940 bytes .../ic_action_cancel_launchersize.png | Bin 0 -> 1032 bytes .../ic_action_cancel_launchersize_light.png | Bin 0 -> 1098 bytes .../ic_action_cancel_launchersize.png | Bin 0 -> 1570 bytes .../ic_action_cancel_launchersize_light.png | Bin 0 -> 2039 bytes .../ic_action_cancel_launchersize.png | Bin 0 -> 2345 bytes .../ic_action_cancel_launchersize_light.png | Bin 0 -> 2404 bytes .../openpgp-api-library/res/values/strings.xml | 7 + .../org/openintents/openpgp/IOpenPgpService.aidl | 24 + .../src/org/openintents/openpgp/OpenPgpError.java | 118 +++ .../openpgp/OpenPgpSignatureResult.java | 159 ++++ .../org/openintents/openpgp/util/OpenPgpApi.java | 261 ++++++ .../openpgp/util/OpenPgpListPreference.java | 257 ++++++ .../openpgp/util/OpenPgpServiceConnection.java | 118 +++ .../org/openintents/openpgp/util/OpenPgpUtils.java | 64 ++ .../openpgp/util/ParcelFileDescriptorUtil.java | 103 +++ OpenKeychain-API/settings.gradle | 3 + OpenKeychain/.gitignore | 29 + OpenKeychain/build.gradle | 105 +++ OpenKeychain/src/main/AndroidManifest.xml | 450 ++++++++++ .../src/main/assets/fontawesome-webfont.ttf | Bin 0 -> 80776 bytes .../org/sufficientlysecure/keychain/Constants.java | 82 ++ .../java/org/sufficientlysecure/keychain/Id.java | 191 +++++ .../keychain/KeychainApplication.java | 75 ++ .../compatibility/ClipboardReflection.java | 95 +++ .../compatibility/DialogFragmentWorkaround.java | 68 ++ .../compatibility/ListFragmentWorkaround.java | 37 + .../keychain/helper/ActionBarHelper.java | 120 +++ .../keychain/helper/ContactHelper.java | 41 + .../keychain/helper/ExportHelper.java | 177 ++++ .../keychain/helper/FileHelper.java | 131 +++ .../keychain/helper/OtherHelper.java | 70 ++ .../keychain/helper/Preferences.java | 171 ++++ .../keychain/pgp/PgpConversionHelper.java | 200 +++++ .../keychain/pgp/PgpDecryptVerify.java | 836 +++++++++++++++++++ .../keychain/pgp/PgpDecryptVerifyResult.java | 93 +++ .../sufficientlysecure/keychain/pgp/PgpHelper.java | 218 +++++ .../keychain/pgp/PgpImportExport.java | 294 +++++++ .../keychain/pgp/PgpKeyHelper.java | 644 +++++++++++++++ .../keychain/pgp/PgpKeyOperation.java | 769 +++++++++++++++++ .../keychain/pgp/PgpSignEncrypt.java | 607 ++++++++++++++ .../sufficientlysecure/keychain/pgp/PgpToX509.java | 313 +++++++ .../exception/NoAsymmetricEncryptionException.java | 26 + .../pgp/exception/PgpGeneralException.java | 29 + .../pgp/exception/PgpGeneralMsgIdException.java | 35 + .../keychain/provider/KeychainContract.java | 297 +++++++ .../keychain/provider/KeychainDatabase.java | 301 +++++++ .../keychain/provider/KeychainProvider.java | 752 +++++++++++++++++ .../provider/KeychainServiceBlobContract.java | 40 + .../provider/KeychainServiceBlobDatabase.java | 47 ++ .../provider/KeychainServiceBlobProvider.java | 162 ++++ .../keychain/provider/ProviderHelper.java | 673 +++++++++++++++ .../keychain/remote/AccountSettings.java | 85 ++ .../keychain/remote/AppSettings.java | 50 ++ .../keychain/remote/OpenPgpService.java | 484 +++++++++++ .../keychain/remote/RemoteService.java | 261 ++++++ .../remote/WrongPackageSignatureException.java | 27 + .../remote/ui/AccountSettingsActivity.java | 109 +++ .../remote/ui/AccountSettingsFragment.java | 201 +++++ .../keychain/remote/ui/AccountsListFragment.java | 198 +++++ .../keychain/remote/ui/AppSettingsActivity.java | 134 +++ .../keychain/remote/ui/AppSettingsFragment.java | 108 +++ .../keychain/remote/ui/AppsListActivity.java | 35 + .../keychain/remote/ui/AppsListFragment.java | 174 ++++ .../keychain/remote/ui/RemoteServiceActivity.java | 303 +++++++ .../keychain/service/KeychainIntentService.java | 905 +++++++++++++++++++++ .../service/KeychainIntentServiceHandler.java | 130 +++ .../keychain/service/PassphraseCacheService.java | 380 +++++++++ .../keychain/service/SaveKeyringParcel.java | 107 +++ .../keychain/ui/CertifyKeyActivity.java | 388 +++++++++ .../keychain/ui/DecryptActivity.java | 182 +++++ .../keychain/ui/DecryptFileFragment.java | 261 ++++++ .../keychain/ui/DecryptFragment.java | 180 ++++ .../keychain/ui/DecryptMessageFragment.java | 189 +++++ .../keychain/ui/DrawerActivity.java | 295 +++++++ .../keychain/ui/EditKeyActivity.java | 760 +++++++++++++++++ .../keychain/ui/EncryptActivity.java | 256 ++++++ .../keychain/ui/EncryptActivityInterface.java | 30 + .../keychain/ui/EncryptAsymmetricFragment.java | 268 ++++++ .../keychain/ui/EncryptFileFragment.java | 380 +++++++++ .../keychain/ui/EncryptMessageFragment.java | 259 ++++++ .../keychain/ui/EncryptSymmetricFragment.java | 98 +++ .../keychain/ui/HelpAboutFragment.java | 75 ++ .../keychain/ui/HelpActivity.java | 79 ++ .../keychain/ui/HelpHtmlFragment.java | 75 ++ .../keychain/ui/ImportKeysActivity.java | 489 +++++++++++ .../keychain/ui/ImportKeysClipboardFragment.java | 87 ++ .../keychain/ui/ImportKeysFileFragment.java | 98 +++ .../keychain/ui/ImportKeysListFragment.java | 305 +++++++ .../keychain/ui/ImportKeysNFCFragment.java | 68 ++ .../keychain/ui/ImportKeysQrCodeFragment.java | 205 +++++ .../keychain/ui/ImportKeysServerFragment.java | 155 ++++ .../keychain/ui/KeyListActivity.java | 95 +++ .../keychain/ui/KeyListFragment.java | 700 ++++++++++++++++ .../keychain/ui/PreferencesActivity.java | 387 +++++++++ .../keychain/ui/PreferencesKeyServerActivity.java | 130 +++ .../keychain/ui/SelectPublicKeyActivity.java | 143 ++++ .../keychain/ui/SelectPublicKeyFragment.java | 350 ++++++++ .../keychain/ui/SelectSecretKeyActivity.java | 83 ++ .../keychain/ui/SelectSecretKeyFragment.java | 176 ++++ .../keychain/ui/SelectSecretKeyLayoutFragment.java | 211 +++++ .../keychain/ui/UploadKeyActivity.java | 127 +++ .../keychain/ui/ViewCertActivity.java | 253 ++++++ .../keychain/ui/ViewKeyActivity.java | 277 +++++++ .../keychain/ui/ViewKeyActivityJB.java | 124 +++ .../keychain/ui/ViewKeyCertsFragment.java | 311 +++++++ .../keychain/ui/ViewKeyMainFragment.java | 347 ++++++++ .../ui/adapter/AsyncTaskResultWrapper.java | 46 ++ .../ui/adapter/HighlightQueryCursorAdapter.java | 65 ++ .../keychain/ui/adapter/ImportKeysAdapter.java | 186 +++++ .../keychain/ui/adapter/ImportKeysListEntry.java | 274 +++++++ .../keychain/ui/adapter/ImportKeysListLoader.java | 167 ++++ .../ui/adapter/ImportKeysListServerLoader.java | 130 +++ .../ui/adapter/KeyValueSpinnerAdapter.java | 101 +++ .../keychain/ui/adapter/PagerTabStripAdapter.java | 70 ++ .../ui/adapter/SelectKeyCursorAdapter.java | 165 ++++ .../keychain/ui/adapter/TabsAdapter.java | 101 +++ .../keychain/ui/adapter/ViewKeyKeysAdapter.java | 175 ++++ .../keychain/ui/adapter/ViewKeyUserIdsAdapter.java | 181 +++++ .../ui/dialog/BadImportKeyDialogFragment.java | 67 ++ .../ui/dialog/CreateKeyDialogFragment.java | 159 ++++ .../ui/dialog/DeleteFileDialogFragment.java | 124 +++ .../ui/dialog/DeleteKeyDialogFragment.java | 174 ++++ .../keychain/ui/dialog/FileDialogFragment.java | 220 +++++ .../ui/dialog/PassphraseDialogFragment.java | 328 ++++++++ .../keychain/ui/dialog/ProgressDialogFragment.java | 154 ++++ .../ui/dialog/SetPassphraseDialogFragment.java | 186 +++++ .../keychain/ui/dialog/ShareNfcDialogFragment.java | 99 +++ .../ui/dialog/ShareQrCodeDialogFragment.java | 212 +++++ .../keychain/ui/widget/Editor.java | 27 + .../keychain/ui/widget/FixedListView.java | 55 ++ .../keychain/ui/widget/FoldableLinearLayout.java | 203 +++++ .../keychain/ui/widget/IntegerListPreference.java | 94 +++ .../keychain/ui/widget/KeyEditor.java | 377 +++++++++ .../keychain/ui/widget/KeyServerEditor.java | 82 ++ .../keychain/ui/widget/SectionView.java | 429 ++++++++++ .../keychain/ui/widget/UnderlineTextView.java | 69 ++ .../keychain/ui/widget/UserIdEditor.java | 265 ++++++ .../keychain/util/AlgorithmNames.java | 93 +++ .../sufficientlysecure/keychain/util/Choice.java | 45 + .../keychain/util/HkpKeyServer.java | 353 ++++++++ .../keychain/util/InputData.java | 41 + .../keychain/util/IntentIntegratorSupportV4.java | 46 ++ .../keychain/util/IterableIterator.java | 39 + .../keychain/util/KeyServer.java | 52 ++ .../keychain/util/KeychainServiceListener.java | 22 + .../org/sufficientlysecure/keychain/util/Log.java | 83 ++ .../keychain/util/PRNGFixes.java | 352 ++++++++ .../keychain/util/PausableThreadPoolExecutor.java | 94 +++ .../keychain/util/PositionAwareInputStream.java | 83 ++ .../sufficientlysecure/keychain/util/Primes.java | 188 +++++ .../keychain/util/ProgressDialogUpdater.java | 25 + .../keychain/util/ProgressScaler.java | 50 ++ .../keychain/util/QrCodeUtils.java | 72 ++ OpenKeychain/src/main/res/anim/push_left_in.xml | 20 + OpenKeychain/src/main/res/anim/push_left_out.xml | 20 + OpenKeychain/src/main/res/anim/push_right_in.xml | 20 + OpenKeychain/src/main/res/anim/push_right_out.xml | 20 + .../src/main/res/drawable-hdpi/certify_small.png | Bin 0 -> 2091 bytes .../src/main/res/drawable-hdpi/drawer_shadow.9.png | Bin 0 -> 161 bytes .../src/main/res/drawable-hdpi/encrypted_small.png | Bin 0 -> 2187 bytes .../res/drawable-hdpi/ic_action_add_person.png | Bin 0 -> 679 bytes .../main/res/drawable-hdpi/ic_action_cancel.png | Bin 0 -> 1358 bytes .../src/main/res/drawable-hdpi/ic_action_cloud.png | Bin 0 -> 450 bytes .../main/res/drawable-hdpi/ic_action_discard.png | Bin 0 -> 454 bytes .../src/main/res/drawable-hdpi/ic_action_done.png | Bin 0 -> 1320 bytes .../res/drawable-hdpi/ic_action_import_export.png | Bin 0 -> 497 bytes .../main/res/drawable-hdpi/ic_action_person.png | Bin 0 -> 573 bytes .../src/main/res/drawable-hdpi/ic_action_save.png | Bin 0 -> 398 bytes .../main/res/drawable-hdpi/ic_action_search.png | Bin 0 -> 702 bytes .../main/res/drawable-hdpi/ic_action_secure.png | Bin 0 -> 394 bytes .../res/drawable-hdpi/ic_action_select_all.png | Bin 0 -> 507 bytes .../src/main/res/drawable-hdpi/ic_action_share.png | Bin 0 -> 647 bytes .../drawable-hdpi/ic_dialog_alert_holo_light.png | Bin 0 -> 1018 bytes .../src/main/res/drawable-hdpi/ic_drawer.png | Bin 0 -> 2829 bytes .../src/main/res/drawable-hdpi/ic_menu_search.png | Bin 0 -> 1218 bytes .../main/res/drawable-hdpi/ic_menu_search_list.png | Bin 0 -> 1190 bytes .../src/main/res/drawable-hdpi/ic_next.png | Bin 0 -> 1722 bytes .../src/main/res/drawable-hdpi/ic_previous.png | Bin 0 -> 1712 bytes OpenKeychain/src/main/res/drawable-hdpi/icon.png | Bin 0 -> 5093 bytes .../src/main/res/drawable-hdpi/key_small.png | Bin 0 -> 2088 bytes .../src/main/res/drawable-hdpi/overlay_error.png | Bin 0 -> 1986 bytes .../src/main/res/drawable-hdpi/overlay_ok.png | Bin 0 -> 1702 bytes .../res/drawable-hdpi/popup_center_bright.9.png | Bin 0 -> 1110 bytes .../main/res/drawable-hdpi/popup_full_bright.9.png | Bin 0 -> 2039 bytes .../main/res/drawable-hdpi/revoked_key_small.png | Bin 0 -> 2509 bytes .../src/main/res/drawable-hdpi/signed_large.png | Bin 0 -> 5928 bytes .../src/main/res/drawable-hdpi/signed_small.png | Bin 0 -> 2219 bytes .../src/main/res/drawable-ldpi/encrypted_small.png | Bin 0 -> 1176 bytes .../src/main/res/drawable-ldpi/ic_next.png | Bin 0 -> 916 bytes .../src/main/res/drawable-ldpi/ic_previous.png | Bin 0 -> 922 bytes OpenKeychain/src/main/res/drawable-ldpi/icon.png | Bin 0 -> 1967 bytes .../src/main/res/drawable-ldpi/key_small.png | Bin 0 -> 1074 bytes .../src/main/res/drawable-ldpi/overlay_error.png | Bin 0 -> 1192 bytes .../src/main/res/drawable-ldpi/overlay_ok.png | Bin 0 -> 1038 bytes .../src/main/res/drawable-ldpi/signed_large.png | Bin 0 -> 2611 bytes .../src/main/res/drawable-ldpi/signed_small.png | Bin 0 -> 1149 bytes .../src/main/res/drawable-mdpi/certify_small.png | Bin 0 -> 1401 bytes .../src/main/res/drawable-mdpi/drawer_shadow.9.png | Bin 0 -> 142 bytes .../src/main/res/drawable-mdpi/encrypted_small.png | Bin 0 -> 1513 bytes .../res/drawable-mdpi/ic_action_add_person.png | Bin 0 -> 513 bytes .../main/res/drawable-mdpi/ic_action_cancel.png | Bin 0 -> 1202 bytes .../src/main/res/drawable-mdpi/ic_action_cloud.png | Bin 0 -> 335 bytes .../main/res/drawable-mdpi/ic_action_discard.png | Bin 0 -> 333 bytes .../src/main/res/drawable-mdpi/ic_action_done.png | Bin 0 -> 1197 bytes .../res/drawable-mdpi/ic_action_import_export.png | Bin 0 -> 410 bytes .../main/res/drawable-mdpi/ic_action_person.png | Bin 0 -> 468 bytes .../src/main/res/drawable-mdpi/ic_action_save.png | Bin 0 -> 359 bytes .../main/res/drawable-mdpi/ic_action_search.png | Bin 0 -> 2349 bytes .../main/res/drawable-mdpi/ic_action_secure.png | Bin 0 -> 317 bytes .../res/drawable-mdpi/ic_action_select_all.png | Bin 0 -> 292 bytes .../src/main/res/drawable-mdpi/ic_action_share.png | Bin 0 -> 472 bytes .../drawable-mdpi/ic_dialog_alert_holo_light.png | Bin 0 -> 770 bytes .../src/main/res/drawable-mdpi/ic_drawer.png | Bin 0 -> 2820 bytes .../src/main/res/drawable-mdpi/ic_menu_search.png | Bin 0 -> 858 bytes .../main/res/drawable-mdpi/ic_menu_search_list.png | Bin 0 -> 863 bytes .../src/main/res/drawable-mdpi/ic_next.png | Bin 0 -> 1360 bytes .../src/main/res/drawable-mdpi/ic_previous.png | Bin 0 -> 1352 bytes OpenKeychain/src/main/res/drawable-mdpi/icon.png | Bin 0 -> 2896 bytes .../src/main/res/drawable-mdpi/key_small.png | Bin 0 -> 1484 bytes .../src/main/res/drawable-mdpi/overlay_error.png | Bin 0 -> 1539 bytes .../src/main/res/drawable-mdpi/overlay_ok.png | Bin 0 -> 1305 bytes .../src/main/res/drawable-mdpi/signed_large.png | Bin 0 -> 3858 bytes .../src/main/res/drawable-mdpi/signed_small.png | Bin 0 -> 1576 bytes .../main/res/drawable-xhdpi/drawer_shadow.9.png | Bin 0 -> 174 bytes .../res/drawable-xhdpi/ic_action_add_person.png | Bin 0 -> 884 bytes .../main/res/drawable-xhdpi/ic_action_cancel.png | Bin 0 -> 1488 bytes .../main/res/drawable-xhdpi/ic_action_cloud.png | Bin 0 -> 538 bytes .../main/res/drawable-xhdpi/ic_action_discard.png | Bin 0 -> 552 bytes .../src/main/res/drawable-xhdpi/ic_action_done.png | Bin 0 -> 1546 bytes .../res/drawable-xhdpi/ic_action_import_export.png | Bin 0 -> 633 bytes .../main/res/drawable-xhdpi/ic_action_person.png | Bin 0 -> 781 bytes .../src/main/res/drawable-xhdpi/ic_action_save.png | Bin 0 -> 451 bytes .../main/res/drawable-xhdpi/ic_action_search.png | Bin 0 -> 900 bytes .../main/res/drawable-xhdpi/ic_action_secure.png | Bin 0 -> 510 bytes .../res/drawable-xhdpi/ic_action_select_all.png | Bin 0 -> 351 bytes .../main/res/drawable-xhdpi/ic_action_share.png | Bin 0 -> 785 bytes .../drawable-xhdpi/ic_dialog_alert_holo_light.png | Bin 0 -> 1359 bytes .../src/main/res/drawable-xhdpi/ic_drawer.png | Bin 0 -> 2836 bytes .../src/main/res/drawable-xhdpi/ic_menu_search.png | Bin 0 -> 1629 bytes .../res/drawable-xhdpi/ic_menu_search_list.png | Bin 0 -> 1571 bytes OpenKeychain/src/main/res/drawable-xhdpi/icon.png | Bin 0 -> 7870 bytes .../main/res/drawable-xxhdpi/drawer_shadow.9.png | Bin 0 -> 208 bytes .../res/drawable-xxhdpi/ic_action_add_person.png | Bin 0 -> 1171 bytes .../main/res/drawable-xxhdpi/ic_action_cloud.png | Bin 0 -> 760 bytes .../main/res/drawable-xxhdpi/ic_action_discard.png | Bin 0 -> 781 bytes .../drawable-xxhdpi/ic_action_import_export.png | Bin 0 -> 896 bytes .../main/res/drawable-xxhdpi/ic_action_person.png | Bin 0 -> 1004 bytes .../main/res/drawable-xxhdpi/ic_action_save.png | Bin 0 -> 500 bytes .../main/res/drawable-xxhdpi/ic_action_search.png | Bin 0 -> 1153 bytes .../main/res/drawable-xxhdpi/ic_action_secure.png | Bin 0 -> 624 bytes .../res/drawable-xxhdpi/ic_action_select_all.png | Bin 0 -> 563 bytes .../main/res/drawable-xxhdpi/ic_action_share.png | Bin 0 -> 1094 bytes .../drawable-xxhdpi/ic_dialog_alert_holo_light.png | Bin 0 -> 1991 bytes .../src/main/res/drawable-xxhdpi/ic_drawer.png | Bin 0 -> 202 bytes OpenKeychain/src/main/res/drawable-xxhdpi/icon.png | Bin 0 -> 14153 bytes .../src/main/res/drawable-xxxhdpi/icon.png | Bin 0 -> 20825 bytes .../src/main/res/drawable/certify_small.png | Bin 0 -> 1401 bytes .../src/main/res/drawable/encrypted_small.png | Bin 0 -> 1513 bytes OpenKeychain/src/main/res/drawable/ic_next.png | Bin 0 -> 1360 bytes OpenKeychain/src/main/res/drawable/ic_previous.png | Bin 0 -> 1352 bytes OpenKeychain/src/main/res/drawable/key_small.png | Bin 0 -> 1484 bytes .../src/main/res/drawable/overlay_error.png | Bin 0 -> 1539 bytes OpenKeychain/src/main/res/drawable/overlay_ok.png | Bin 0 -> 1305 bytes .../src/main/res/drawable/revoked_key_small.png | Bin 0 -> 1793 bytes .../src/main/res/drawable/section_header.xml | 11 + .../res/drawable/selector_transparent_button.xml | 7 + .../src/main/res/drawable/signed_large.png | Bin 0 -> 3858 bytes .../src/main/res/drawable/signed_small.png | Bin 0 -> 1576 bytes .../res/layout-large/api_apps_list_activity.xml | 20 + .../src/main/res/layout-large/decrypt_activity.xml | 19 + .../src/main/res/layout-large/encrypt_activity.xml | 19 + .../main/res/layout-large/import_keys_activity.xml | 21 + .../main/res/layout-large/key_list_activity.xml | 18 + .../main/res/layout/actionbar_custom_view_done.xml | 27 + .../layout/actionbar_custom_view_done_cancel.xml | 29 + .../res/layout/actionbar_include_cancel_button.xml | 36 + .../res/layout/actionbar_include_done_button.xml | 36 + .../res/layout/api_account_settings_activity.xml | 20 + .../res/layout/api_account_settings_fragment.xml | 102 +++ .../res/layout/api_accounts_adapter_list_item.xml | 27 + .../main/res/layout/api_app_settings_activity.xml | 33 + .../main/res/layout/api_app_settings_fragment.xml | 75 ++ .../main/res/layout/api_apps_adapter_list_item.xml | 26 + .../src/main/res/layout/api_apps_list_activity.xml | 11 + .../src/main/res/layout/api_apps_list_content.xml | 14 + .../main/res/layout/api_remote_create_account.xml | 29 + .../main/res/layout/api_remote_error_message.xml | 16 + .../main/res/layout/api_remote_register_app.xml | 29 + .../main/res/layout/api_remote_select_pub_keys.xml | 21 + .../src/main/res/layout/certify_key_activity.xml | 156 ++++ .../src/main/res/layout/create_key_dialog.xml | 61 ++ .../src/main/res/layout/decrypt_activity.xml | 12 + .../src/main/res/layout/decrypt_content.xml | 23 + .../src/main/res/layout/decrypt_file_fragment.xml | 81 ++ .../main/res/layout/decrypt_message_fragment.xml | 66 ++ .../main/res/layout/decrypt_signature_include.xml | 62 ++ OpenKeychain/src/main/res/layout/drawer_list.xml | 18 + .../src/main/res/layout/drawer_list_item.xml | 33 + .../src/main/res/layout/edit_key_activity.xml | 46 ++ .../src/main/res/layout/edit_key_key_item.xml | 176 ++++ .../src/main/res/layout/edit_key_section.xml | 44 + .../src/main/res/layout/edit_key_user_id_item.xml | 99 +++ .../src/main/res/layout/encrypt_activity.xml | 13 + .../res/layout/encrypt_asymmetric_fragment.xml | 79 ++ .../src/main/res/layout/encrypt_content.xml | 37 + .../res/layout/encrypt_content_adv_settings.xml | 63 ++ .../src/main/res/layout/encrypt_file_fragment.xml | 86 ++ .../main/res/layout/encrypt_message_fragment.xml | 62 ++ .../main/res/layout/encrypt_symmetric_fragment.xml | 52 ++ OpenKeychain/src/main/res/layout/file_dialog.xml | 52 ++ .../src/main/res/layout/foldable_linearlayout.xml | 41 + .../src/main/res/layout/help_about_fragment.xml | 62 ++ OpenKeychain/src/main/res/layout/help_activity.xml | 12 + .../src/main/res/layout/import_keys_activity.xml | 11 + .../res/layout/import_keys_clipboard_fragment.xml | 18 + .../src/main/res/layout/import_keys_content.xml | 50 ++ .../main/res/layout/import_keys_file_fragment.xml | 19 + .../src/main/res/layout/import_keys_list_entry.xml | 110 +++ .../res/layout/import_keys_list_entry_user_id.xml | 26 + .../main/res/layout/import_keys_nfc_fragment.xml | 28 + .../res/layout/import_keys_qr_code_fragment.xml | 36 + .../res/layout/import_keys_server_fragment.xml | 45 + .../src/main/res/layout/key_list_activity.xml | 11 + .../src/main/res/layout/key_list_content.xml | 14 + .../src/main/res/layout/key_list_fragment.xml | 109 +++ .../src/main/res/layout/key_list_header.xml | 30 + OpenKeychain/src/main/res/layout/key_list_item.xml | 86 ++ .../src/main/res/layout/key_server_editor.xml | 40 + .../src/main/res/layout/key_server_export.xml | 40 + .../src/main/res/layout/key_server_preference.xml | 78 ++ .../src/main/res/layout/passphrase_dialog.xml | 24 + .../main/res/layout/passphrase_repeat_dialog.xml | 50 ++ .../src/main/res/layout/select_key_item.xml | 64 ++ .../main/res/layout/select_public_key_activity.xml | 12 + .../main/res/layout/select_secret_key_activity.xml | 12 + .../layout/select_secret_key_layout_fragment.xml | 78 ++ .../src/main/res/layout/share_qr_code_dialog.xml | 19 + .../src/main/res/layout/view_cert_activity.xml | 210 +++++ .../src/main/res/layout/view_key_activity.xml | 12 + .../main/res/layout/view_key_certs_fragment.xml | 34 + .../src/main/res/layout/view_key_certs_header.xml | 30 + .../src/main/res/layout/view_key_certs_item.xml | 46 ++ .../main/res/layout/view_key_delete_fragment.xml | 38 + .../src/main/res/layout/view_key_keys_item.xml | 84 ++ .../src/main/res/layout/view_key_main_fragment.xml | 265 ++++++ .../src/main/res/layout/view_key_userids_item.xml | 58 ++ .../src/main/res/menu/api_account_settings.xml | 14 + .../src/main/res/menu/api_app_settings.xml | 10 + OpenKeychain/src/main/res/menu/key_list.xml | 34 + OpenKeychain/src/main/res/menu/key_list_multi.xml | 24 + OpenKeychain/src/main/res/menu/key_view.xml | 81 ++ OpenKeychain/src/main/res/menu/view_cert.xml | 9 + .../src/main/res/raw-cs-rCZ/help_about.html | 49 ++ .../src/main/res/raw-cs-rCZ/help_changelog.html | 136 ++++ .../src/main/res/raw-cs-rCZ/help_nfc_beam.html | 12 + .../src/main/res/raw-cs-rCZ/help_start.html | 19 + .../src/main/res/raw-cs-rCZ/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-de/help_about.html | 49 ++ .../src/main/res/raw-de/help_changelog.html | 136 ++++ .../src/main/res/raw-de/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-de/help_start.html | 19 + .../src/main/res/raw-de/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-el/help_about.html | 49 ++ .../src/main/res/raw-el/help_changelog.html | 136 ++++ .../src/main/res/raw-el/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-el/help_start.html | 19 + .../src/main/res/raw-el/nfc_beam_share.html | 11 + .../src/main/res/raw-es-rCO/help_about.html | 49 ++ .../src/main/res/raw-es-rCO/help_changelog.html | 136 ++++ .../src/main/res/raw-es-rCO/help_nfc_beam.html | 12 + .../src/main/res/raw-es-rCO/help_start.html | 19 + .../src/main/res/raw-es-rCO/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-es/help_about.html | 49 ++ .../src/main/res/raw-es/help_changelog.html | 136 ++++ .../src/main/res/raw-es/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-es/help_start.html | 19 + .../src/main/res/raw-es/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-et/help_about.html | 49 ++ .../src/main/res/raw-et/help_changelog.html | 136 ++++ .../src/main/res/raw-et/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-et/help_start.html | 19 + .../src/main/res/raw-et/nfc_beam_share.html | 11 + .../src/main/res/raw-fa-rIR/help_about.html | 49 ++ .../src/main/res/raw-fa-rIR/help_changelog.html | 136 ++++ .../src/main/res/raw-fa-rIR/help_nfc_beam.html | 12 + .../src/main/res/raw-fa-rIR/help_start.html | 19 + .../src/main/res/raw-fa-rIR/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-fr/help_about.html | 49 ++ .../src/main/res/raw-fr/help_changelog.html | 136 ++++ .../src/main/res/raw-fr/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-fr/help_start.html | 19 + .../src/main/res/raw-fr/nfc_beam_share.html | 11 + .../src/main/res/raw-it-rIT/help_about.html | 49 ++ .../src/main/res/raw-it-rIT/help_changelog.html | 136 ++++ .../src/main/res/raw-it-rIT/help_nfc_beam.html | 12 + .../src/main/res/raw-it-rIT/help_start.html | 19 + .../src/main/res/raw-it-rIT/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-ja/help_about.html | 49 ++ .../src/main/res/raw-ja/help_changelog.html | 136 ++++ .../src/main/res/raw-ja/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-ja/help_start.html | 19 + .../src/main/res/raw-ja/nfc_beam_share.html | 11 + .../src/main/res/raw-nl-rNL/help_about.html | 49 ++ .../src/main/res/raw-nl-rNL/help_changelog.html | 136 ++++ .../src/main/res/raw-nl-rNL/help_nfc_beam.html | 12 + .../src/main/res/raw-nl-rNL/help_start.html | 19 + .../src/main/res/raw-nl-rNL/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-pl/help_about.html | 49 ++ .../src/main/res/raw-pl/help_changelog.html | 136 ++++ .../src/main/res/raw-pl/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-pl/help_start.html | 19 + .../src/main/res/raw-pl/nfc_beam_share.html | 11 + .../src/main/res/raw-pt-rBR/help_about.html | 49 ++ .../src/main/res/raw-pt-rBR/help_changelog.html | 136 ++++ .../src/main/res/raw-pt-rBR/help_nfc_beam.html | 12 + .../src/main/res/raw-pt-rBR/help_start.html | 19 + .../src/main/res/raw-pt-rBR/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-ru/help_about.html | 49 ++ .../src/main/res/raw-ru/help_changelog.html | 136 ++++ .../src/main/res/raw-ru/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-ru/help_start.html | 19 + .../src/main/res/raw-ru/nfc_beam_share.html | 11 + .../src/main/res/raw-sl-rSI/help_about.html | 49 ++ .../src/main/res/raw-sl-rSI/help_changelog.html | 136 ++++ .../src/main/res/raw-sl-rSI/help_nfc_beam.html | 12 + .../src/main/res/raw-sl-rSI/help_start.html | 19 + .../src/main/res/raw-sl-rSI/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-tr/help_about.html | 49 ++ .../src/main/res/raw-tr/help_changelog.html | 136 ++++ .../src/main/res/raw-tr/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-tr/help_start.html | 19 + .../src/main/res/raw-tr/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-uk/help_about.html | 49 ++ .../src/main/res/raw-uk/help_changelog.html | 136 ++++ .../src/main/res/raw-uk/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-uk/help_start.html | 19 + .../src/main/res/raw-uk/nfc_beam_share.html | 11 + .../src/main/res/raw-zh-rTW/help_about.html | 49 ++ .../src/main/res/raw-zh-rTW/help_changelog.html | 136 ++++ .../src/main/res/raw-zh-rTW/help_nfc_beam.html | 12 + .../src/main/res/raw-zh-rTW/help_start.html | 19 + .../src/main/res/raw-zh-rTW/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw-zh/help_about.html | 49 ++ .../src/main/res/raw-zh/help_changelog.html | 136 ++++ .../src/main/res/raw-zh/help_nfc_beam.html | 12 + OpenKeychain/src/main/res/raw-zh/help_start.html | 19 + .../src/main/res/raw-zh/nfc_beam_share.html | 11 + OpenKeychain/src/main/res/raw/help_about.html | 47 ++ OpenKeychain/src/main/res/raw/help_changelog.html | 156 ++++ OpenKeychain/src/main/res/raw/help_faq.html | 13 + OpenKeychain/src/main/res/raw/help_nfc_beam.html | 16 + OpenKeychain/src/main/res/raw/help_start.html | 23 + OpenKeychain/src/main/res/raw/nfc_beam_share.html | 15 + .../src/main/res/values-cs-rCZ/strings.xml | 51 ++ OpenKeychain/src/main/res/values-de/strings.xml | 436 ++++++++++ OpenKeychain/src/main/res/values-el/strings.xml | 52 ++ .../src/main/res/values-es-rCO/strings.xml | 98 +++ OpenKeychain/src/main/res/values-es/strings.xml | 451 ++++++++++ OpenKeychain/src/main/res/values-et/strings.xml | 118 +++ .../src/main/res/values-fa-rIR/strings.xml | 29 + OpenKeychain/src/main/res/values-fr/strings.xml | 451 ++++++++++ .../src/main/res/values-it-rIT/strings.xml | 451 ++++++++++ OpenKeychain/src/main/res/values-ja/strings.xml | 436 ++++++++++ OpenKeychain/src/main/res/values-large/dimens.xml | 4 + .../src/main/res/values-nl-rNL/strings.xml | 229 ++++++ OpenKeychain/src/main/res/values-pl/strings.xml | 466 +++++++++++ .../src/main/res/values-pt-rBR/strings.xml | 29 + OpenKeychain/src/main/res/values-ru/strings.xml | 456 +++++++++++ .../src/main/res/values-sl-rSI/strings.xml | 29 + OpenKeychain/src/main/res/values-tr/strings.xml | 138 ++++ OpenKeychain/src/main/res/values-uk/strings.xml | 467 +++++++++++ OpenKeychain/src/main/res/values-v14/styles.xml | 18 + .../src/main/res/values-zh-rTW/strings.xml | 29 + OpenKeychain/src/main/res/values-zh/strings.xml | 181 +++++ OpenKeychain/src/main/res/values/arrays.xml | 46 ++ OpenKeychain/src/main/res/values/attr.xml | 11 + OpenKeychain/src/main/res/values/colors.xml | 7 + OpenKeychain/src/main/res/values/dimens.xml | 5 + OpenKeychain/src/main/res/values/ids.xml | 6 + .../src/main/res/values/static_strings.xml | 6 + OpenKeychain/src/main/res/values/strings.xml | 511 ++++++++++++ OpenKeychain/src/main/res/values/styles.xml | 34 + OpenKeychain/src/main/res/xml/adv_preferences.xml | 48 ++ OpenKeychain/src/main/res/xml/gen_preferences.xml | 32 + .../src/main/res/xml/preference_headers.xml | 25 + .../src/main/res/xml/preference_headers_legacy.xml | 29 + .../src/main/res/xml/searchable_public_keys.xml | 22 + .../src/main/res/xml/searchable_secret_keys.xml | 22 + .../keychain/PgpKeyOperationTest.java | 46 ++ .../keychain/RobolectricGradleTestRunner.java | 23 + OpenPGP-Keychain-API/.gitignore | 29 - OpenPGP-Keychain-API/build.gradle | 3 - OpenPGP-Keychain-API/example-app/build.gradle | 61 -- .../example-app/ic_launcher-web.png | Bin 23512 -> 0 bytes .../example-app/src/main/AndroidManifest.xml | 33 - .../keychain/demo/BaseActivity.java | 63 -- .../keychain/demo/Constants.java | 21 - .../keychain/demo/IntentActivity.java | 583 ------------- .../keychain/demo/OpenPgpProviderActivity.java | 308 ------- .../src/main/res/drawable-hdpi/ic_launcher.png | Bin 2626 -> 0 bytes .../src/main/res/drawable-mdpi/ic_launcher.png | Bin 1732 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_launcher.png | Bin 3517 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_launcher.png | Bin 5717 -> 0 bytes .../src/main/res/layout/openpgp_provider.xml | 123 --- .../src/main/res/xml/base_preference.xml | 18 - .../src/main/res/xml/intent_preference.xml | 30 - .../gradle/gradle/wrapper/gradle-wrapper.jar | Bin 50557 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - OpenPGP-Keychain-API/gradle/gradlew | 164 ---- OpenPGP-Keychain-API/gradle/gradlew.bat | 90 -- .../gradle/wrapper/gradle-wrapper.jar | Bin 50557 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 - OpenPGP-Keychain-API/gradlew | 164 ---- OpenPGP-Keychain-API/gradlew.bat | 90 -- .../libraries/openkeychain-api-library/.gitignore | 29 - .../openkeychain-api-library/AndroidManifest.xml | 13 - .../libraries/openkeychain-api-library/LICENSE | 202 ----- .../openkeychain-api-library/build.gradle | 35 - .../libraries/openkeychain-api-library/build.xml | 92 --- .../openkeychain-api-library/proguard-project.txt | 20 - .../openkeychain-api-library/project.properties | 15 - .../keychain/api/OpenKeychainIntents.java | 37 - .../libraries/openpgp-api-library/.gitignore | 29 - .../openpgp-api-library/AndroidManifest.xml | 13 - .../libraries/openpgp-api-library/LICENSE | 202 ----- .../libraries/openpgp-api-library/build.gradle | 35 - .../libraries/openpgp-api-library/build.xml | 92 --- .../openpgp-api-library/proguard-project.txt | 20 - .../openpgp-api-library/project.properties | 15 - .../ic_action_cancel_launchersize.png | Bin 1520 -> 0 bytes .../ic_action_cancel_launchersize_light.png | Bin 1940 -> 0 bytes .../ic_action_cancel_launchersize.png | Bin 1032 -> 0 bytes .../ic_action_cancel_launchersize_light.png | Bin 1098 -> 0 bytes .../ic_action_cancel_launchersize.png | Bin 1570 -> 0 bytes .../ic_action_cancel_launchersize_light.png | Bin 2039 -> 0 bytes .../ic_action_cancel_launchersize.png | Bin 2345 -> 0 bytes .../ic_action_cancel_launchersize_light.png | Bin 2404 -> 0 bytes .../openpgp-api-library/res/values/strings.xml | 7 - .../org/openintents/openpgp/IOpenPgpService.aidl | 24 - .../src/org/openintents/openpgp/OpenPgpError.java | 118 --- .../openpgp/OpenPgpSignatureResult.java | 159 ---- .../org/openintents/openpgp/util/OpenPgpApi.java | 261 ------ .../openpgp/util/OpenPgpListPreference.java | 257 ------ .../openpgp/util/OpenPgpServiceConnection.java | 118 --- .../org/openintents/openpgp/util/OpenPgpUtils.java | 64 -- .../openpgp/util/ParcelFileDescriptorUtil.java | 103 --- OpenPGP-Keychain-API/settings.gradle | 3 - OpenPGP-Keychain/.gitignore | 29 - OpenPGP-Keychain/build.gradle | 105 --- OpenPGP-Keychain/src/main/AndroidManifest.xml | 450 ---------- .../src/main/assets/fontawesome-webfont.ttf | Bin 80776 -> 0 bytes .../org/sufficientlysecure/keychain/Constants.java | 82 -- .../java/org/sufficientlysecure/keychain/Id.java | 191 ----- .../keychain/KeychainApplication.java | 75 -- .../compatibility/ClipboardReflection.java | 95 --- .../compatibility/DialogFragmentWorkaround.java | 68 -- .../compatibility/ListFragmentWorkaround.java | 37 - .../keychain/helper/ActionBarHelper.java | 120 --- .../keychain/helper/ContactHelper.java | 41 - .../keychain/helper/ExportHelper.java | 177 ---- .../keychain/helper/FileHelper.java | 131 --- .../keychain/helper/OtherHelper.java | 70 -- .../keychain/helper/Preferences.java | 171 ---- .../keychain/pgp/PgpConversionHelper.java | 200 ----- .../keychain/pgp/PgpDecryptVerify.java | 836 ------------------- .../keychain/pgp/PgpDecryptVerifyResult.java | 93 --- .../sufficientlysecure/keychain/pgp/PgpHelper.java | 218 ----- .../keychain/pgp/PgpImportExport.java | 294 ------- .../keychain/pgp/PgpKeyHelper.java | 644 --------------- .../keychain/pgp/PgpKeyOperation.java | 769 ----------------- .../keychain/pgp/PgpSignEncrypt.java | 607 -------------- .../sufficientlysecure/keychain/pgp/PgpToX509.java | 313 ------- .../exception/NoAsymmetricEncryptionException.java | 26 - .../pgp/exception/PgpGeneralException.java | 29 - .../pgp/exception/PgpGeneralMsgIdException.java | 35 - .../keychain/provider/KeychainContract.java | 297 ------- .../keychain/provider/KeychainDatabase.java | 301 ------- .../keychain/provider/KeychainProvider.java | 752 ----------------- .../provider/KeychainServiceBlobContract.java | 40 - .../provider/KeychainServiceBlobDatabase.java | 47 -- .../provider/KeychainServiceBlobProvider.java | 162 ---- .../keychain/provider/ProviderHelper.java | 673 --------------- .../keychain/remote/AccountSettings.java | 85 -- .../keychain/remote/AppSettings.java | 50 -- .../keychain/remote/OpenPgpService.java | 484 ----------- .../keychain/remote/RemoteService.java | 261 ------ .../remote/WrongPackageSignatureException.java | 27 - .../remote/ui/AccountSettingsActivity.java | 109 --- .../remote/ui/AccountSettingsFragment.java | 201 ----- .../keychain/remote/ui/AccountsListFragment.java | 198 ----- .../keychain/remote/ui/AppSettingsActivity.java | 134 --- .../keychain/remote/ui/AppSettingsFragment.java | 108 --- .../keychain/remote/ui/AppsListActivity.java | 35 - .../keychain/remote/ui/AppsListFragment.java | 174 ---- .../keychain/remote/ui/RemoteServiceActivity.java | 303 ------- .../keychain/service/KeychainIntentService.java | 905 --------------------- .../service/KeychainIntentServiceHandler.java | 130 --- .../keychain/service/PassphraseCacheService.java | 380 --------- .../keychain/service/SaveKeyringParcel.java | 107 --- .../keychain/ui/CertifyKeyActivity.java | 388 --------- .../keychain/ui/DecryptActivity.java | 182 ----- .../keychain/ui/DecryptFileFragment.java | 261 ------ .../keychain/ui/DecryptFragment.java | 180 ---- .../keychain/ui/DecryptMessageFragment.java | 189 ----- .../keychain/ui/DrawerActivity.java | 295 ------- .../keychain/ui/EditKeyActivity.java | 760 ----------------- .../keychain/ui/EncryptActivity.java | 256 ------ .../keychain/ui/EncryptActivityInterface.java | 30 - .../keychain/ui/EncryptAsymmetricFragment.java | 268 ------ .../keychain/ui/EncryptFileFragment.java | 380 --------- .../keychain/ui/EncryptMessageFragment.java | 259 ------ .../keychain/ui/EncryptSymmetricFragment.java | 98 --- .../keychain/ui/HelpAboutFragment.java | 75 -- .../keychain/ui/HelpActivity.java | 79 -- .../keychain/ui/HelpHtmlFragment.java | 75 -- .../keychain/ui/ImportKeysActivity.java | 489 ----------- .../keychain/ui/ImportKeysClipboardFragment.java | 87 -- .../keychain/ui/ImportKeysFileFragment.java | 98 --- .../keychain/ui/ImportKeysListFragment.java | 305 ------- .../keychain/ui/ImportKeysNFCFragment.java | 68 -- .../keychain/ui/ImportKeysQrCodeFragment.java | 205 ----- .../keychain/ui/ImportKeysServerFragment.java | 155 ---- .../keychain/ui/KeyListActivity.java | 95 --- .../keychain/ui/KeyListFragment.java | 700 ---------------- .../keychain/ui/PreferencesActivity.java | 387 --------- .../keychain/ui/PreferencesKeyServerActivity.java | 130 --- .../keychain/ui/SelectPublicKeyActivity.java | 143 ---- .../keychain/ui/SelectPublicKeyFragment.java | 350 -------- .../keychain/ui/SelectSecretKeyActivity.java | 83 -- .../keychain/ui/SelectSecretKeyFragment.java | 176 ---- .../keychain/ui/SelectSecretKeyLayoutFragment.java | 211 ----- .../keychain/ui/UploadKeyActivity.java | 127 --- .../keychain/ui/ViewCertActivity.java | 253 ------ .../keychain/ui/ViewKeyActivity.java | 277 ------- .../keychain/ui/ViewKeyActivityJB.java | 124 --- .../keychain/ui/ViewKeyCertsFragment.java | 311 ------- .../keychain/ui/ViewKeyMainFragment.java | 347 -------- .../ui/adapter/AsyncTaskResultWrapper.java | 46 -- .../ui/adapter/HighlightQueryCursorAdapter.java | 65 -- .../keychain/ui/adapter/ImportKeysAdapter.java | 186 ----- .../keychain/ui/adapter/ImportKeysListEntry.java | 274 ------- .../keychain/ui/adapter/ImportKeysListLoader.java | 167 ---- .../ui/adapter/ImportKeysListServerLoader.java | 130 --- .../ui/adapter/KeyValueSpinnerAdapter.java | 101 --- .../keychain/ui/adapter/PagerTabStripAdapter.java | 70 -- .../ui/adapter/SelectKeyCursorAdapter.java | 165 ---- .../keychain/ui/adapter/TabsAdapter.java | 101 --- .../keychain/ui/adapter/ViewKeyKeysAdapter.java | 175 ---- .../keychain/ui/adapter/ViewKeyUserIdsAdapter.java | 181 ----- .../ui/dialog/BadImportKeyDialogFragment.java | 67 -- .../ui/dialog/CreateKeyDialogFragment.java | 159 ---- .../ui/dialog/DeleteFileDialogFragment.java | 124 --- .../ui/dialog/DeleteKeyDialogFragment.java | 174 ---- .../keychain/ui/dialog/FileDialogFragment.java | 220 ----- .../ui/dialog/PassphraseDialogFragment.java | 328 -------- .../keychain/ui/dialog/ProgressDialogFragment.java | 154 ---- .../ui/dialog/SetPassphraseDialogFragment.java | 186 ----- .../keychain/ui/dialog/ShareNfcDialogFragment.java | 99 --- .../ui/dialog/ShareQrCodeDialogFragment.java | 212 ----- .../keychain/ui/widget/Editor.java | 27 - .../keychain/ui/widget/FixedListView.java | 55 -- .../keychain/ui/widget/FoldableLinearLayout.java | 203 ----- .../keychain/ui/widget/IntegerListPreference.java | 94 --- .../keychain/ui/widget/KeyEditor.java | 377 --------- .../keychain/ui/widget/KeyServerEditor.java | 82 -- .../keychain/ui/widget/SectionView.java | 429 ---------- .../keychain/ui/widget/UnderlineTextView.java | 69 -- .../keychain/ui/widget/UserIdEditor.java | 265 ------ .../keychain/util/AlgorithmNames.java | 93 --- .../sufficientlysecure/keychain/util/Choice.java | 45 - .../keychain/util/HkpKeyServer.java | 353 -------- .../keychain/util/InputData.java | 41 - .../keychain/util/IntentIntegratorSupportV4.java | 46 -- .../keychain/util/IterableIterator.java | 39 - .../keychain/util/KeyServer.java | 52 -- .../keychain/util/KeychainServiceListener.java | 22 - .../org/sufficientlysecure/keychain/util/Log.java | 83 -- .../keychain/util/PRNGFixes.java | 352 -------- .../keychain/util/PausableThreadPoolExecutor.java | 94 --- .../keychain/util/PositionAwareInputStream.java | 83 -- .../sufficientlysecure/keychain/util/Primes.java | 188 ----- .../keychain/util/ProgressDialogUpdater.java | 25 - .../keychain/util/ProgressScaler.java | 50 -- .../keychain/util/QrCodeUtils.java | 72 -- .../src/main/res/anim/push_left_in.xml | 20 - .../src/main/res/anim/push_left_out.xml | 20 - .../src/main/res/anim/push_right_in.xml | 20 - .../src/main/res/anim/push_right_out.xml | 20 - .../src/main/res/drawable-hdpi/certify_small.png | Bin 2091 -> 0 bytes .../src/main/res/drawable-hdpi/drawer_shadow.9.png | Bin 161 -> 0 bytes .../src/main/res/drawable-hdpi/encrypted_small.png | Bin 2187 -> 0 bytes .../res/drawable-hdpi/ic_action_add_person.png | Bin 679 -> 0 bytes .../main/res/drawable-hdpi/ic_action_cancel.png | Bin 1358 -> 0 bytes .../src/main/res/drawable-hdpi/ic_action_cloud.png | Bin 450 -> 0 bytes .../main/res/drawable-hdpi/ic_action_discard.png | Bin 454 -> 0 bytes .../src/main/res/drawable-hdpi/ic_action_done.png | Bin 1320 -> 0 bytes .../res/drawable-hdpi/ic_action_import_export.png | Bin 497 -> 0 bytes .../main/res/drawable-hdpi/ic_action_person.png | Bin 573 -> 0 bytes .../src/main/res/drawable-hdpi/ic_action_save.png | Bin 398 -> 0 bytes .../main/res/drawable-hdpi/ic_action_search.png | Bin 702 -> 0 bytes .../main/res/drawable-hdpi/ic_action_secure.png | Bin 394 -> 0 bytes .../res/drawable-hdpi/ic_action_select_all.png | Bin 507 -> 0 bytes .../src/main/res/drawable-hdpi/ic_action_share.png | Bin 647 -> 0 bytes .../drawable-hdpi/ic_dialog_alert_holo_light.png | Bin 1018 -> 0 bytes .../src/main/res/drawable-hdpi/ic_drawer.png | Bin 2829 -> 0 bytes .../src/main/res/drawable-hdpi/ic_menu_search.png | Bin 1218 -> 0 bytes .../main/res/drawable-hdpi/ic_menu_search_list.png | Bin 1190 -> 0 bytes .../src/main/res/drawable-hdpi/ic_next.png | Bin 1722 -> 0 bytes .../src/main/res/drawable-hdpi/ic_previous.png | Bin 1712 -> 0 bytes .../src/main/res/drawable-hdpi/icon.png | Bin 5093 -> 0 bytes .../src/main/res/drawable-hdpi/key_small.png | Bin 2088 -> 0 bytes .../src/main/res/drawable-hdpi/overlay_error.png | Bin 1986 -> 0 bytes .../src/main/res/drawable-hdpi/overlay_ok.png | Bin 1702 -> 0 bytes .../res/drawable-hdpi/popup_center_bright.9.png | Bin 1110 -> 0 bytes .../main/res/drawable-hdpi/popup_full_bright.9.png | Bin 2039 -> 0 bytes .../main/res/drawable-hdpi/revoked_key_small.png | Bin 2509 -> 0 bytes .../src/main/res/drawable-hdpi/signed_large.png | Bin 5928 -> 0 bytes .../src/main/res/drawable-hdpi/signed_small.png | Bin 2219 -> 0 bytes .../src/main/res/drawable-ldpi/encrypted_small.png | Bin 1176 -> 0 bytes .../src/main/res/drawable-ldpi/ic_next.png | Bin 916 -> 0 bytes .../src/main/res/drawable-ldpi/ic_previous.png | Bin 922 -> 0 bytes .../src/main/res/drawable-ldpi/icon.png | Bin 1967 -> 0 bytes .../src/main/res/drawable-ldpi/key_small.png | Bin 1074 -> 0 bytes .../src/main/res/drawable-ldpi/overlay_error.png | Bin 1192 -> 0 bytes .../src/main/res/drawable-ldpi/overlay_ok.png | Bin 1038 -> 0 bytes .../src/main/res/drawable-ldpi/signed_large.png | Bin 2611 -> 0 bytes .../src/main/res/drawable-ldpi/signed_small.png | Bin 1149 -> 0 bytes .../src/main/res/drawable-mdpi/certify_small.png | Bin 1401 -> 0 bytes .../src/main/res/drawable-mdpi/drawer_shadow.9.png | Bin 142 -> 0 bytes .../src/main/res/drawable-mdpi/encrypted_small.png | Bin 1513 -> 0 bytes .../res/drawable-mdpi/ic_action_add_person.png | Bin 513 -> 0 bytes .../main/res/drawable-mdpi/ic_action_cancel.png | Bin 1202 -> 0 bytes .../src/main/res/drawable-mdpi/ic_action_cloud.png | Bin 335 -> 0 bytes .../main/res/drawable-mdpi/ic_action_discard.png | Bin 333 -> 0 bytes .../src/main/res/drawable-mdpi/ic_action_done.png | Bin 1197 -> 0 bytes .../res/drawable-mdpi/ic_action_import_export.png | Bin 410 -> 0 bytes .../main/res/drawable-mdpi/ic_action_person.png | Bin 468 -> 0 bytes .../src/main/res/drawable-mdpi/ic_action_save.png | Bin 359 -> 0 bytes .../main/res/drawable-mdpi/ic_action_search.png | Bin 2349 -> 0 bytes .../main/res/drawable-mdpi/ic_action_secure.png | Bin 317 -> 0 bytes .../res/drawable-mdpi/ic_action_select_all.png | Bin 292 -> 0 bytes .../src/main/res/drawable-mdpi/ic_action_share.png | Bin 472 -> 0 bytes .../drawable-mdpi/ic_dialog_alert_holo_light.png | Bin 770 -> 0 bytes .../src/main/res/drawable-mdpi/ic_drawer.png | Bin 2820 -> 0 bytes .../src/main/res/drawable-mdpi/ic_menu_search.png | Bin 858 -> 0 bytes .../main/res/drawable-mdpi/ic_menu_search_list.png | Bin 863 -> 0 bytes .../src/main/res/drawable-mdpi/ic_next.png | Bin 1360 -> 0 bytes .../src/main/res/drawable-mdpi/ic_previous.png | Bin 1352 -> 0 bytes .../src/main/res/drawable-mdpi/icon.png | Bin 2896 -> 0 bytes .../src/main/res/drawable-mdpi/key_small.png | Bin 1484 -> 0 bytes .../src/main/res/drawable-mdpi/overlay_error.png | Bin 1539 -> 0 bytes .../src/main/res/drawable-mdpi/overlay_ok.png | Bin 1305 -> 0 bytes .../src/main/res/drawable-mdpi/signed_large.png | Bin 3858 -> 0 bytes .../src/main/res/drawable-mdpi/signed_small.png | Bin 1576 -> 0 bytes .../main/res/drawable-xhdpi/drawer_shadow.9.png | Bin 174 -> 0 bytes .../res/drawable-xhdpi/ic_action_add_person.png | Bin 884 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_cancel.png | Bin 1488 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_cloud.png | Bin 538 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_discard.png | Bin 552 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_action_done.png | Bin 1546 -> 0 bytes .../res/drawable-xhdpi/ic_action_import_export.png | Bin 633 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_person.png | Bin 781 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_action_save.png | Bin 451 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_search.png | Bin 900 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_secure.png | Bin 510 -> 0 bytes .../res/drawable-xhdpi/ic_action_select_all.png | Bin 351 -> 0 bytes .../main/res/drawable-xhdpi/ic_action_share.png | Bin 785 -> 0 bytes .../drawable-xhdpi/ic_dialog_alert_holo_light.png | Bin 1359 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_drawer.png | Bin 2836 -> 0 bytes .../src/main/res/drawable-xhdpi/ic_menu_search.png | Bin 1629 -> 0 bytes .../res/drawable-xhdpi/ic_menu_search_list.png | Bin 1571 -> 0 bytes .../src/main/res/drawable-xhdpi/icon.png | Bin 7870 -> 0 bytes .../main/res/drawable-xxhdpi/drawer_shadow.9.png | Bin 208 -> 0 bytes .../res/drawable-xxhdpi/ic_action_add_person.png | Bin 1171 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_cloud.png | Bin 760 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_discard.png | Bin 781 -> 0 bytes .../drawable-xxhdpi/ic_action_import_export.png | Bin 896 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_person.png | Bin 1004 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_save.png | Bin 500 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_search.png | Bin 1153 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_secure.png | Bin 624 -> 0 bytes .../res/drawable-xxhdpi/ic_action_select_all.png | Bin 563 -> 0 bytes .../main/res/drawable-xxhdpi/ic_action_share.png | Bin 1094 -> 0 bytes .../drawable-xxhdpi/ic_dialog_alert_holo_light.png | Bin 1991 -> 0 bytes .../src/main/res/drawable-xxhdpi/ic_drawer.png | Bin 202 -> 0 bytes .../src/main/res/drawable-xxhdpi/icon.png | Bin 14153 -> 0 bytes .../src/main/res/drawable-xxxhdpi/icon.png | Bin 20825 -> 0 bytes .../src/main/res/drawable/certify_small.png | Bin 1401 -> 0 bytes .../src/main/res/drawable/encrypted_small.png | Bin 1513 -> 0 bytes OpenPGP-Keychain/src/main/res/drawable/ic_next.png | Bin 1360 -> 0 bytes .../src/main/res/drawable/ic_previous.png | Bin 1352 -> 0 bytes .../src/main/res/drawable/key_small.png | Bin 1484 -> 0 bytes .../src/main/res/drawable/overlay_error.png | Bin 1539 -> 0 bytes .../src/main/res/drawable/overlay_ok.png | Bin 1305 -> 0 bytes .../src/main/res/drawable/revoked_key_small.png | Bin 1793 -> 0 bytes .../src/main/res/drawable/section_header.xml | 11 - .../res/drawable/selector_transparent_button.xml | 7 - .../src/main/res/drawable/signed_large.png | Bin 3858 -> 0 bytes .../src/main/res/drawable/signed_small.png | Bin 1576 -> 0 bytes .../res/layout-large/api_apps_list_activity.xml | 20 - .../src/main/res/layout-large/decrypt_activity.xml | 19 - .../src/main/res/layout-large/encrypt_activity.xml | 19 - .../main/res/layout-large/import_keys_activity.xml | 21 - .../main/res/layout-large/key_list_activity.xml | 18 - .../main/res/layout/actionbar_custom_view_done.xml | 27 - .../layout/actionbar_custom_view_done_cancel.xml | 29 - .../res/layout/actionbar_include_cancel_button.xml | 36 - .../res/layout/actionbar_include_done_button.xml | 36 - .../res/layout/api_account_settings_activity.xml | 20 - .../res/layout/api_account_settings_fragment.xml | 102 --- .../res/layout/api_accounts_adapter_list_item.xml | 27 - .../main/res/layout/api_app_settings_activity.xml | 33 - .../main/res/layout/api_app_settings_fragment.xml | 75 -- .../main/res/layout/api_apps_adapter_list_item.xml | 26 - .../src/main/res/layout/api_apps_list_activity.xml | 11 - .../src/main/res/layout/api_apps_list_content.xml | 14 - .../main/res/layout/api_remote_create_account.xml | 29 - .../main/res/layout/api_remote_error_message.xml | 16 - .../main/res/layout/api_remote_register_app.xml | 29 - .../main/res/layout/api_remote_select_pub_keys.xml | 21 - .../src/main/res/layout/certify_key_activity.xml | 156 ---- .../src/main/res/layout/create_key_dialog.xml | 61 -- .../src/main/res/layout/decrypt_activity.xml | 12 - .../src/main/res/layout/decrypt_content.xml | 23 - .../src/main/res/layout/decrypt_file_fragment.xml | 81 -- .../main/res/layout/decrypt_message_fragment.xml | 66 -- .../main/res/layout/decrypt_signature_include.xml | 62 -- .../src/main/res/layout/drawer_list.xml | 18 - .../src/main/res/layout/drawer_list_item.xml | 33 - .../src/main/res/layout/edit_key_activity.xml | 46 -- .../src/main/res/layout/edit_key_key_item.xml | 176 ---- .../src/main/res/layout/edit_key_section.xml | 44 - .../src/main/res/layout/edit_key_user_id_item.xml | 99 --- .../src/main/res/layout/encrypt_activity.xml | 13 - .../res/layout/encrypt_asymmetric_fragment.xml | 79 -- .../src/main/res/layout/encrypt_content.xml | 37 - .../res/layout/encrypt_content_adv_settings.xml | 63 -- .../src/main/res/layout/encrypt_file_fragment.xml | 86 -- .../main/res/layout/encrypt_message_fragment.xml | 62 -- .../main/res/layout/encrypt_symmetric_fragment.xml | 52 -- .../src/main/res/layout/file_dialog.xml | 52 -- .../src/main/res/layout/foldable_linearlayout.xml | 41 - .../src/main/res/layout/help_about_fragment.xml | 62 -- .../src/main/res/layout/help_activity.xml | 12 - .../src/main/res/layout/import_keys_activity.xml | 11 - .../res/layout/import_keys_clipboard_fragment.xml | 18 - .../src/main/res/layout/import_keys_content.xml | 50 -- .../main/res/layout/import_keys_file_fragment.xml | 19 - .../src/main/res/layout/import_keys_list_entry.xml | 110 --- .../res/layout/import_keys_list_entry_user_id.xml | 26 - .../main/res/layout/import_keys_nfc_fragment.xml | 28 - .../res/layout/import_keys_qr_code_fragment.xml | 36 - .../res/layout/import_keys_server_fragment.xml | 45 - .../src/main/res/layout/key_list_activity.xml | 11 - .../src/main/res/layout/key_list_content.xml | 14 - .../src/main/res/layout/key_list_fragment.xml | 109 --- .../src/main/res/layout/key_list_header.xml | 30 - .../src/main/res/layout/key_list_item.xml | 86 -- .../src/main/res/layout/key_server_editor.xml | 40 - .../src/main/res/layout/key_server_export.xml | 40 - .../src/main/res/layout/key_server_preference.xml | 78 -- .../src/main/res/layout/passphrase_dialog.xml | 24 - .../main/res/layout/passphrase_repeat_dialog.xml | 50 -- .../src/main/res/layout/select_key_item.xml | 64 -- .../main/res/layout/select_public_key_activity.xml | 12 - .../main/res/layout/select_secret_key_activity.xml | 12 - .../layout/select_secret_key_layout_fragment.xml | 78 -- .../src/main/res/layout/share_qr_code_dialog.xml | 19 - .../src/main/res/layout/view_cert_activity.xml | 210 ----- .../src/main/res/layout/view_key_activity.xml | 12 - .../main/res/layout/view_key_certs_fragment.xml | 34 - .../src/main/res/layout/view_key_certs_header.xml | 30 - .../src/main/res/layout/view_key_certs_item.xml | 46 -- .../main/res/layout/view_key_delete_fragment.xml | 38 - .../src/main/res/layout/view_key_keys_item.xml | 84 -- .../src/main/res/layout/view_key_main_fragment.xml | 265 ------ .../src/main/res/layout/view_key_userids_item.xml | 58 -- .../src/main/res/menu/api_account_settings.xml | 14 - .../src/main/res/menu/api_app_settings.xml | 10 - OpenPGP-Keychain/src/main/res/menu/key_list.xml | 34 - .../src/main/res/menu/key_list_multi.xml | 24 - OpenPGP-Keychain/src/main/res/menu/key_view.xml | 81 -- OpenPGP-Keychain/src/main/res/menu/view_cert.xml | 9 - .../src/main/res/raw-cs-rCZ/help_about.html | 49 -- .../src/main/res/raw-cs-rCZ/help_changelog.html | 136 ---- .../src/main/res/raw-cs-rCZ/help_nfc_beam.html | 12 - .../src/main/res/raw-cs-rCZ/help_start.html | 19 - .../src/main/res/raw-cs-rCZ/nfc_beam_share.html | 11 - .../src/main/res/raw-de/help_about.html | 49 -- .../src/main/res/raw-de/help_changelog.html | 136 ---- .../src/main/res/raw-de/help_nfc_beam.html | 12 - .../src/main/res/raw-de/help_start.html | 19 - .../src/main/res/raw-de/nfc_beam_share.html | 11 - .../src/main/res/raw-el/help_about.html | 49 -- .../src/main/res/raw-el/help_changelog.html | 136 ---- .../src/main/res/raw-el/help_nfc_beam.html | 12 - .../src/main/res/raw-el/help_start.html | 19 - .../src/main/res/raw-el/nfc_beam_share.html | 11 - .../src/main/res/raw-es-rCO/help_about.html | 49 -- .../src/main/res/raw-es-rCO/help_changelog.html | 136 ---- .../src/main/res/raw-es-rCO/help_nfc_beam.html | 12 - .../src/main/res/raw-es-rCO/help_start.html | 19 - .../src/main/res/raw-es-rCO/nfc_beam_share.html | 11 - .../src/main/res/raw-es/help_about.html | 49 -- .../src/main/res/raw-es/help_changelog.html | 136 ---- .../src/main/res/raw-es/help_nfc_beam.html | 12 - .../src/main/res/raw-es/help_start.html | 19 - .../src/main/res/raw-es/nfc_beam_share.html | 11 - .../src/main/res/raw-et/help_about.html | 49 -- .../src/main/res/raw-et/help_changelog.html | 136 ---- .../src/main/res/raw-et/help_nfc_beam.html | 12 - .../src/main/res/raw-et/help_start.html | 19 - .../src/main/res/raw-et/nfc_beam_share.html | 11 - .../src/main/res/raw-fa-rIR/help_about.html | 49 -- .../src/main/res/raw-fa-rIR/help_changelog.html | 136 ---- .../src/main/res/raw-fa-rIR/help_nfc_beam.html | 12 - .../src/main/res/raw-fa-rIR/help_start.html | 19 - .../src/main/res/raw-fa-rIR/nfc_beam_share.html | 11 - .../src/main/res/raw-fr/help_about.html | 49 -- .../src/main/res/raw-fr/help_changelog.html | 136 ---- .../src/main/res/raw-fr/help_nfc_beam.html | 12 - .../src/main/res/raw-fr/help_start.html | 19 - .../src/main/res/raw-fr/nfc_beam_share.html | 11 - .../src/main/res/raw-it-rIT/help_about.html | 49 -- .../src/main/res/raw-it-rIT/help_changelog.html | 136 ---- .../src/main/res/raw-it-rIT/help_nfc_beam.html | 12 - .../src/main/res/raw-it-rIT/help_start.html | 19 - .../src/main/res/raw-it-rIT/nfc_beam_share.html | 11 - .../src/main/res/raw-ja/help_about.html | 49 -- .../src/main/res/raw-ja/help_changelog.html | 136 ---- .../src/main/res/raw-ja/help_nfc_beam.html | 12 - .../src/main/res/raw-ja/help_start.html | 19 - .../src/main/res/raw-ja/nfc_beam_share.html | 11 - .../src/main/res/raw-nl-rNL/help_about.html | 49 -- .../src/main/res/raw-nl-rNL/help_changelog.html | 136 ---- .../src/main/res/raw-nl-rNL/help_nfc_beam.html | 12 - .../src/main/res/raw-nl-rNL/help_start.html | 19 - .../src/main/res/raw-nl-rNL/nfc_beam_share.html | 11 - .../src/main/res/raw-pl/help_about.html | 49 -- .../src/main/res/raw-pl/help_changelog.html | 136 ---- .../src/main/res/raw-pl/help_nfc_beam.html | 12 - .../src/main/res/raw-pl/help_start.html | 19 - .../src/main/res/raw-pl/nfc_beam_share.html | 11 - .../src/main/res/raw-pt-rBR/help_about.html | 49 -- .../src/main/res/raw-pt-rBR/help_changelog.html | 136 ---- .../src/main/res/raw-pt-rBR/help_nfc_beam.html | 12 - .../src/main/res/raw-pt-rBR/help_start.html | 19 - .../src/main/res/raw-pt-rBR/nfc_beam_share.html | 11 - .../src/main/res/raw-ru/help_about.html | 49 -- .../src/main/res/raw-ru/help_changelog.html | 136 ---- .../src/main/res/raw-ru/help_nfc_beam.html | 12 - .../src/main/res/raw-ru/help_start.html | 19 - .../src/main/res/raw-ru/nfc_beam_share.html | 11 - .../src/main/res/raw-sl-rSI/help_about.html | 49 -- .../src/main/res/raw-sl-rSI/help_changelog.html | 136 ---- .../src/main/res/raw-sl-rSI/help_nfc_beam.html | 12 - .../src/main/res/raw-sl-rSI/help_start.html | 19 - .../src/main/res/raw-sl-rSI/nfc_beam_share.html | 11 - .../src/main/res/raw-tr/help_about.html | 49 -- .../src/main/res/raw-tr/help_changelog.html | 136 ---- .../src/main/res/raw-tr/help_nfc_beam.html | 12 - .../src/main/res/raw-tr/help_start.html | 19 - .../src/main/res/raw-tr/nfc_beam_share.html | 11 - .../src/main/res/raw-uk/help_about.html | 49 -- .../src/main/res/raw-uk/help_changelog.html | 136 ---- .../src/main/res/raw-uk/help_nfc_beam.html | 12 - .../src/main/res/raw-uk/help_start.html | 19 - .../src/main/res/raw-uk/nfc_beam_share.html | 11 - .../src/main/res/raw-zh-rTW/help_about.html | 49 -- .../src/main/res/raw-zh-rTW/help_changelog.html | 136 ---- .../src/main/res/raw-zh-rTW/help_nfc_beam.html | 12 - .../src/main/res/raw-zh-rTW/help_start.html | 19 - .../src/main/res/raw-zh-rTW/nfc_beam_share.html | 11 - .../src/main/res/raw-zh/help_about.html | 49 -- .../src/main/res/raw-zh/help_changelog.html | 136 ---- .../src/main/res/raw-zh/help_nfc_beam.html | 12 - .../src/main/res/raw-zh/help_start.html | 19 - .../src/main/res/raw-zh/nfc_beam_share.html | 11 - OpenPGP-Keychain/src/main/res/raw/help_about.html | 47 -- .../src/main/res/raw/help_changelog.html | 156 ---- OpenPGP-Keychain/src/main/res/raw/help_faq.html | 13 - .../src/main/res/raw/help_nfc_beam.html | 16 - OpenPGP-Keychain/src/main/res/raw/help_start.html | 23 - .../src/main/res/raw/nfc_beam_share.html | 15 - .../src/main/res/values-cs-rCZ/strings.xml | 51 -- .../src/main/res/values-de/strings.xml | 436 ---------- .../src/main/res/values-el/strings.xml | 52 -- .../src/main/res/values-es-rCO/strings.xml | 98 --- .../src/main/res/values-es/strings.xml | 451 ---------- .../src/main/res/values-et/strings.xml | 118 --- .../src/main/res/values-fa-rIR/strings.xml | 29 - .../src/main/res/values-fr/strings.xml | 451 ---------- .../src/main/res/values-it-rIT/strings.xml | 451 ---------- .../src/main/res/values-ja/strings.xml | 436 ---------- .../src/main/res/values-large/dimens.xml | 4 - .../src/main/res/values-nl-rNL/strings.xml | 229 ------ .../src/main/res/values-pl/strings.xml | 466 ----------- .../src/main/res/values-pt-rBR/strings.xml | 29 - .../src/main/res/values-ru/strings.xml | 456 ----------- .../src/main/res/values-sl-rSI/strings.xml | 29 - .../src/main/res/values-tr/strings.xml | 138 ---- .../src/main/res/values-uk/strings.xml | 467 ----------- .../src/main/res/values-v14/styles.xml | 18 - .../src/main/res/values-zh-rTW/strings.xml | 29 - .../src/main/res/values-zh/strings.xml | 181 ----- OpenPGP-Keychain/src/main/res/values/arrays.xml | 46 -- OpenPGP-Keychain/src/main/res/values/attr.xml | 11 - OpenPGP-Keychain/src/main/res/values/colors.xml | 7 - OpenPGP-Keychain/src/main/res/values/dimens.xml | 5 - OpenPGP-Keychain/src/main/res/values/ids.xml | 6 - .../src/main/res/values/static_strings.xml | 6 - OpenPGP-Keychain/src/main/res/values/strings.xml | 511 ------------ OpenPGP-Keychain/src/main/res/values/styles.xml | 34 - .../src/main/res/xml/adv_preferences.xml | 48 -- .../src/main/res/xml/gen_preferences.xml | 32 - .../src/main/res/xml/preference_headers.xml | 25 - .../src/main/res/xml/preference_headers_legacy.xml | 29 - .../src/main/res/xml/searchable_public_keys.xml | 22 - .../src/main/res/xml/searchable_secret_keys.xml | 22 - .../keychain/PgpKeyOperationTest.java | 46 -- .../keychain/RobolectricGradleTestRunner.java | 23 - settings.gradle | 6 +- 1063 files changed, 45342 insertions(+), 45342 deletions(-) create mode 100644 OpenKeychain-API/.gitignore create mode 100644 OpenKeychain-API/build.gradle create mode 100644 OpenKeychain-API/example-app/build.gradle create mode 100644 OpenKeychain-API/example-app/ic_launcher-web.png create mode 100644 OpenKeychain-API/example-app/src/main/AndroidManifest.xml create mode 100644 OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java create mode 100644 OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java create mode 100644 OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/IntentActivity.java create mode 100644 OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java create mode 100644 OpenKeychain-API/example-app/src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 OpenKeychain-API/example-app/src/main/res/drawable-mdpi/ic_launcher.png create mode 100644 OpenKeychain-API/example-app/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 OpenKeychain-API/example-app/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 OpenKeychain-API/example-app/src/main/res/layout/openpgp_provider.xml create mode 100644 OpenKeychain-API/example-app/src/main/res/xml/base_preference.xml create mode 100644 OpenKeychain-API/example-app/src/main/res/xml/intent_preference.xml create mode 100644 OpenKeychain-API/gradle/gradle/wrapper/gradle-wrapper.jar create mode 100644 OpenKeychain-API/gradle/gradle/wrapper/gradle-wrapper.properties create mode 100755 OpenKeychain-API/gradle/gradlew create mode 100644 OpenKeychain-API/gradle/gradlew.bat create mode 100644 OpenKeychain-API/gradle/wrapper/gradle-wrapper.jar create mode 100644 OpenKeychain-API/gradle/wrapper/gradle-wrapper.properties create mode 100755 OpenKeychain-API/gradlew create mode 100644 OpenKeychain-API/gradlew.bat create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/.gitignore create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/AndroidManifest.xml create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/LICENSE create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/build.gradle create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/build.xml create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/proguard-project.txt create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/project.properties create mode 100644 OpenKeychain-API/libraries/openkeychain-api-library/src/org/sufficientlysecure/keychain/api/OpenKeychainIntents.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/.gitignore create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/AndroidManifest.xml create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/LICENSE create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/build.gradle create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/build.xml create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/proguard-project.txt create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/project.properties create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-hdpi/ic_action_cancel_launchersize.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-hdpi/ic_action_cancel_launchersize_light.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-mdpi/ic_action_cancel_launchersize.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-mdpi/ic_action_cancel_launchersize_light.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-xhdpi/ic_action_cancel_launchersize.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-xhdpi/ic_action_cancel_launchersize_light.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-xxhdpi/ic_action_cancel_launchersize.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/drawable-xxhdpi/ic_action_cancel_launchersize_light.png create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/res/values/strings.xml create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/IOpenPgpService.aidl create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/OpenPgpError.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/OpenPgpSignatureResult.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpListPreference.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpServiceConnection.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpUtils.java create mode 100644 OpenKeychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java create mode 100644 OpenKeychain-API/settings.gradle create mode 100644 OpenKeychain/.gitignore create mode 100644 OpenKeychain/build.gradle create mode 100644 OpenKeychain/src/main/AndroidManifest.xml create mode 100644 OpenKeychain/src/main/assets/fontawesome-webfont.ttf create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Id.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ClipboardReflection.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/DialogFragmentWorkaround.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ListFragmentWorkaround.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ActionBarHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ExportHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/FileHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/OtherHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyResult.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpToX509.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/exception/NoAsymmetricEncryptionException.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/exception/PgpGeneralException.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/exception/PgpGeneralMsgIdException.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainServiceBlobContract.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainServiceBlobDatabase.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainServiceBlobProvider.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/AccountSettings.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/AppSettings.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/RemoteService.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/WrongPackageSignatureException.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountsListFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteServiceActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptMessageFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DrawerActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptAsymmetricFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptMessageFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptSymmetricFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpHtmlFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysClipboardFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysNFCFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesKeyServerActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectSecretKeyActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectSecretKeyFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectSecretKeyLayoutFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewCertActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivityJB.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/HighlightQueryCursorAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListEntry.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyValueSpinnerAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/PagerTabStripAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/TabsAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ViewKeyKeysAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ViewKeyUserIdsAdapter.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/BadImportKeyDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CreateKeyDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/FileDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareNfcDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareQrCodeDialogFragment.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/Editor.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FixedListView.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FoldableLinearLayout.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/IntegerListPreference.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyEditor.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyServerEditor.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SectionView.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/UnderlineTextView.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/UserIdEditor.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/AlgorithmNames.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Choice.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/HkpKeyServer.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/InputData.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/IntentIntegratorSupportV4.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/IterableIterator.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/KeyServer.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/KeychainServiceListener.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/PRNGFixes.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/PausableThreadPoolExecutor.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/PositionAwareInputStream.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Primes.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressDialogUpdater.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/QrCodeUtils.java create mode 100644 OpenKeychain/src/main/res/anim/push_left_in.xml create mode 100644 OpenKeychain/src/main/res/anim/push_left_out.xml create mode 100644 OpenKeychain/src/main/res/anim/push_right_in.xml create mode 100644 OpenKeychain/src/main/res/anim/push_right_out.xml create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/certify_small.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/drawer_shadow.9.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/encrypted_small.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_add_person.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_cancel.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_discard.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_done.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_import_export.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_person.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_save.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_search.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_secure.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_select_all.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_share.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_dialog_alert_holo_light.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_drawer.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_menu_search.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_menu_search_list.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_next.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_previous.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/icon.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/key_small.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/overlay_error.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/overlay_ok.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/popup_center_bright.9.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/popup_full_bright.9.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/revoked_key_small.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/signed_large.png create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/signed_small.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/encrypted_small.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/ic_next.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/ic_previous.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/icon.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/key_small.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/overlay_error.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/overlay_ok.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/signed_large.png create mode 100644 OpenKeychain/src/main/res/drawable-ldpi/signed_small.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/certify_small.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/drawer_shadow.9.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/encrypted_small.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_add_person.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_cancel.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_discard.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_done.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_import_export.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_person.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_save.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_search.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_secure.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_select_all.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_share.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_dialog_alert_holo_light.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_drawer.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_menu_search.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_menu_search_list.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_next.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_previous.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/icon.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/key_small.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/overlay_error.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/overlay_ok.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/signed_large.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/signed_small.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/drawer_shadow.9.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_add_person.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cancel.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_discard.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_done.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_import_export.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_person.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_save.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_secure.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_select_all.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_share.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_dialog_alert_holo_light.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_drawer.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_menu_search.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_menu_search_list.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/icon.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/drawer_shadow.9.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_discard.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_person.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_save.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_secure.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_share.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_dialog_alert_holo_light.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_drawer.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/icon.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/icon.png create mode 100644 OpenKeychain/src/main/res/drawable/certify_small.png create mode 100644 OpenKeychain/src/main/res/drawable/encrypted_small.png create mode 100644 OpenKeychain/src/main/res/drawable/ic_next.png create mode 100644 OpenKeychain/src/main/res/drawable/ic_previous.png create mode 100644 OpenKeychain/src/main/res/drawable/key_small.png create mode 100644 OpenKeychain/src/main/res/drawable/overlay_error.png create mode 100644 OpenKeychain/src/main/res/drawable/overlay_ok.png create mode 100644 OpenKeychain/src/main/res/drawable/revoked_key_small.png create mode 100644 OpenKeychain/src/main/res/drawable/section_header.xml create mode 100644 OpenKeychain/src/main/res/drawable/selector_transparent_button.xml create mode 100644 OpenKeychain/src/main/res/drawable/signed_large.png create mode 100644 OpenKeychain/src/main/res/drawable/signed_small.png create mode 100644 OpenKeychain/src/main/res/layout-large/api_apps_list_activity.xml create mode 100644 OpenKeychain/src/main/res/layout-large/decrypt_activity.xml create mode 100644 OpenKeychain/src/main/res/layout-large/encrypt_activity.xml create mode 100644 OpenKeychain/src/main/res/layout-large/import_keys_activity.xml create mode 100644 OpenKeychain/src/main/res/layout-large/key_list_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/actionbar_custom_view_done.xml create mode 100644 OpenKeychain/src/main/res/layout/actionbar_custom_view_done_cancel.xml create mode 100644 OpenKeychain/src/main/res/layout/actionbar_include_cancel_button.xml create mode 100644 OpenKeychain/src/main/res/layout/actionbar_include_done_button.xml create mode 100644 OpenKeychain/src/main/res/layout/api_account_settings_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/api_accounts_adapter_list_item.xml create mode 100644 OpenKeychain/src/main/res/layout/api_app_settings_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/api_app_settings_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/api_apps_adapter_list_item.xml create mode 100644 OpenKeychain/src/main/res/layout/api_apps_list_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/api_apps_list_content.xml create mode 100644 OpenKeychain/src/main/res/layout/api_remote_create_account.xml create mode 100644 OpenKeychain/src/main/res/layout/api_remote_error_message.xml create mode 100644 OpenKeychain/src/main/res/layout/api_remote_register_app.xml create mode 100644 OpenKeychain/src/main/res/layout/api_remote_select_pub_keys.xml create mode 100644 OpenKeychain/src/main/res/layout/certify_key_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/create_key_dialog.xml create mode 100644 OpenKeychain/src/main/res/layout/decrypt_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/decrypt_content.xml create mode 100644 OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/decrypt_message_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/decrypt_signature_include.xml create mode 100644 OpenKeychain/src/main/res/layout/drawer_list.xml create mode 100644 OpenKeychain/src/main/res/layout/drawer_list_item.xml create mode 100644 OpenKeychain/src/main/res/layout/edit_key_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/edit_key_key_item.xml create mode 100644 OpenKeychain/src/main/res/layout/edit_key_section.xml create mode 100644 OpenKeychain/src/main/res/layout/edit_key_user_id_item.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_asymmetric_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_content.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_content_adv_settings.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_file_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_message_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/encrypt_symmetric_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/file_dialog.xml create mode 100644 OpenKeychain/src/main/res/layout/foldable_linearlayout.xml create mode 100644 OpenKeychain/src/main/res/layout/help_about_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/help_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_clipboard_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_content.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_file_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_list_entry.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_list_entry_user_id.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_nfc_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_qr_code_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/import_keys_server_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/key_list_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/key_list_content.xml create mode 100644 OpenKeychain/src/main/res/layout/key_list_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/key_list_header.xml create mode 100644 OpenKeychain/src/main/res/layout/key_list_item.xml create mode 100644 OpenKeychain/src/main/res/layout/key_server_editor.xml create mode 100644 OpenKeychain/src/main/res/layout/key_server_export.xml create mode 100644 OpenKeychain/src/main/res/layout/key_server_preference.xml create mode 100644 OpenKeychain/src/main/res/layout/passphrase_dialog.xml create mode 100644 OpenKeychain/src/main/res/layout/passphrase_repeat_dialog.xml create mode 100644 OpenKeychain/src/main/res/layout/select_key_item.xml create mode 100644 OpenKeychain/src/main/res/layout/select_public_key_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/select_secret_key_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/select_secret_key_layout_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/share_qr_code_dialog.xml create mode 100644 OpenKeychain/src/main/res/layout/view_cert_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_activity.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_certs_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_certs_header.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_certs_item.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_delete_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_keys_item.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_main_fragment.xml create mode 100644 OpenKeychain/src/main/res/layout/view_key_userids_item.xml create mode 100644 OpenKeychain/src/main/res/menu/api_account_settings.xml create mode 100644 OpenKeychain/src/main/res/menu/api_app_settings.xml create mode 100644 OpenKeychain/src/main/res/menu/key_list.xml create mode 100644 OpenKeychain/src/main/res/menu/key_list_multi.xml create mode 100644 OpenKeychain/src/main/res/menu/key_view.xml create mode 100644 OpenKeychain/src/main/res/menu/view_cert.xml create mode 100644 OpenKeychain/src/main/res/raw-cs-rCZ/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-cs-rCZ/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-cs-rCZ/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-cs-rCZ/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-cs-rCZ/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-de/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-de/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-de/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-de/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-de/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-el/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-el/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-el/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-el/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-el/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-es-rCO/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-es-rCO/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-es-rCO/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-es-rCO/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-es-rCO/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-es/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-es/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-es/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-es/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-es/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-et/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-et/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-et/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-et/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-et/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-fa-rIR/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-fa-rIR/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-fa-rIR/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-fa-rIR/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-fa-rIR/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-fr/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-fr/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-fr/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-fr/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-fr/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-it-rIT/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-it-rIT/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-it-rIT/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-it-rIT/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-it-rIT/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-ja/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-ja/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-ja/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-ja/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-ja/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-nl-rNL/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-nl-rNL/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-nl-rNL/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-nl-rNL/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-nl-rNL/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-pl/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-pl/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-pl/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-pl/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-pl/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-pt-rBR/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-pt-rBR/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-pt-rBR/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-pt-rBR/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-pt-rBR/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-ru/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-ru/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-ru/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-ru/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-ru/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-sl-rSI/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-sl-rSI/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-sl-rSI/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-sl-rSI/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-sl-rSI/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-tr/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-tr/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-tr/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-tr/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-tr/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-uk/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-uk/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-uk/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-uk/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-uk/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-zh-rTW/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw-zh/help_about.html create mode 100644 OpenKeychain/src/main/res/raw-zh/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw-zh/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw-zh/help_start.html create mode 100644 OpenKeychain/src/main/res/raw-zh/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/raw/help_about.html create mode 100644 OpenKeychain/src/main/res/raw/help_changelog.html create mode 100644 OpenKeychain/src/main/res/raw/help_faq.html create mode 100644 OpenKeychain/src/main/res/raw/help_nfc_beam.html create mode 100644 OpenKeychain/src/main/res/raw/help_start.html create mode 100644 OpenKeychain/src/main/res/raw/nfc_beam_share.html create mode 100644 OpenKeychain/src/main/res/values-cs-rCZ/strings.xml create mode 100644 OpenKeychain/src/main/res/values-de/strings.xml create mode 100644 OpenKeychain/src/main/res/values-el/strings.xml create mode 100644 OpenKeychain/src/main/res/values-es-rCO/strings.xml create mode 100644 OpenKeychain/src/main/res/values-es/strings.xml create mode 100644 OpenKeychain/src/main/res/values-et/strings.xml create mode 100644 OpenKeychain/src/main/res/values-fa-rIR/strings.xml create mode 100644 OpenKeychain/src/main/res/values-fr/strings.xml create mode 100644 OpenKeychain/src/main/res/values-it-rIT/strings.xml create mode 100644 OpenKeychain/src/main/res/values-ja/strings.xml create mode 100644 OpenKeychain/src/main/res/values-large/dimens.xml create mode 100644 OpenKeychain/src/main/res/values-nl-rNL/strings.xml create mode 100644 OpenKeychain/src/main/res/values-pl/strings.xml create mode 100644 OpenKeychain/src/main/res/values-pt-rBR/strings.xml create mode 100644 OpenKeychain/src/main/res/values-ru/strings.xml create mode 100644 OpenKeychain/src/main/res/values-sl-rSI/strings.xml create mode 100644 OpenKeychain/src/main/res/values-tr/strings.xml create mode 100644 OpenKeychain/src/main/res/values-uk/strings.xml create mode 100644 OpenKeychain/src/main/res/values-v14/styles.xml create mode 100644 OpenKeychain/src/main/res/values-zh-rTW/strings.xml create mode 100644 OpenKeychain/src/main/res/values-zh/strings.xml create mode 100644 OpenKeychain/src/main/res/values/arrays.xml create mode 100644 OpenKeychain/src/main/res/values/attr.xml create mode 100644 OpenKeychain/src/main/res/values/colors.xml create mode 100644 OpenKeychain/src/main/res/values/dimens.xml create mode 100644 OpenKeychain/src/main/res/values/ids.xml create mode 100644 OpenKeychain/src/main/res/values/static_strings.xml create mode 100644 OpenKeychain/src/main/res/values/strings.xml create mode 100644 OpenKeychain/src/main/res/values/styles.xml create mode 100644 OpenKeychain/src/main/res/xml/adv_preferences.xml create mode 100644 OpenKeychain/src/main/res/xml/gen_preferences.xml create mode 100644 OpenKeychain/src/main/res/xml/preference_headers.xml create mode 100644 OpenKeychain/src/main/res/xml/preference_headers_legacy.xml create mode 100644 OpenKeychain/src/main/res/xml/searchable_public_keys.xml create mode 100644 OpenKeychain/src/main/res/xml/searchable_secret_keys.xml create mode 100644 OpenKeychain/src/test/java/org/sufficientlysecure/keychain/PgpKeyOperationTest.java create mode 100644 OpenKeychain/src/test/java/org/sufficientlysecure/keychain/RobolectricGradleTestRunner.java delete mode 100644 OpenPGP-Keychain-API/.gitignore delete mode 100644 OpenPGP-Keychain-API/build.gradle delete mode 100644 OpenPGP-Keychain-API/example-app/build.gradle delete mode 100644 OpenPGP-Keychain-API/example-app/ic_launcher-web.png delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/AndroidManifest.xml delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/IntentActivity.java delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/drawable-hdpi/ic_launcher.png delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/drawable-mdpi/ic_launcher.png delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/drawable-xhdpi/ic_launcher.png delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/drawable-xxhdpi/ic_launcher.png delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/layout/openpgp_provider.xml delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/xml/base_preference.xml delete mode 100644 OpenPGP-Keychain-API/example-app/src/main/res/xml/intent_preference.xml delete mode 100644 OpenPGP-Keychain-API/gradle/gradle/wrapper/gradle-wrapper.jar delete mode 100644 OpenPGP-Keychain-API/gradle/gradle/wrapper/gradle-wrapper.properties delete mode 100755 OpenPGP-Keychain-API/gradle/gradlew delete mode 100644 OpenPGP-Keychain-API/gradle/gradlew.bat delete mode 100644 OpenPGP-Keychain-API/gradle/wrapper/gradle-wrapper.jar delete mode 100644 OpenPGP-Keychain-API/gradle/wrapper/gradle-wrapper.properties delete mode 100755 OpenPGP-Keychain-API/gradlew delete mode 100644 OpenPGP-Keychain-API/gradlew.bat delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/.gitignore delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/AndroidManifest.xml delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/LICENSE delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/build.gradle delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/build.xml delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/proguard-project.txt delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/project.properties delete mode 100644 OpenPGP-Keychain-API/libraries/openkeychain-api-library/src/org/sufficientlysecure/keychain/api/OpenKeychainIntents.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/.gitignore delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/AndroidManifest.xml delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/LICENSE delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/build.gradle delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/build.xml delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/proguard-project.txt delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/project.properties delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-hdpi/ic_action_cancel_launchersize.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-hdpi/ic_action_cancel_launchersize_light.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-mdpi/ic_action_cancel_launchersize.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-mdpi/ic_action_cancel_launchersize_light.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-xhdpi/ic_action_cancel_launchersize.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-xhdpi/ic_action_cancel_launchersize_light.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-xxhdpi/ic_action_cancel_launchersize.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/drawable-xxhdpi/ic_action_cancel_launchersize_light.png delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/res/values/strings.xml delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/IOpenPgpService.aidl delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/OpenPgpError.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/OpenPgpSignatureResult.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpListPreference.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpServiceConnection.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/OpenPgpUtils.java delete mode 100644 OpenPGP-Keychain-API/libraries/openpgp-api-library/src/org/openintents/openpgp/util/ParcelFileDescriptorUtil.java delete mode 100644 OpenPGP-Keychain-API/settings.gradle delete mode 100644 OpenPGP-Keychain/.gitignore delete mode 100644 OpenPGP-Keychain/build.gradle delete mode 100644 OpenPGP-Keychain/src/main/AndroidManifest.xml delete mode 100644 OpenPGP-Keychain/src/main/assets/fontawesome-webfont.ttf delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/Constants.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/Id.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ClipboardReflection.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/compatibility/DialogFragmentWorkaround.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/compatibility/ListFragmentWorkaround.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/helper/ActionBarHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/helper/ExportHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/helper/FileHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/helper/OtherHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/helper/Preferences.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpConversionHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyResult.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpToX509.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/exception/NoAsymmetricEncryptionException.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/exception/PgpGeneralException.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/exception/PgpGeneralMsgIdException.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainServiceBlobContract.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainServiceBlobDatabase.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainServiceBlobProvider.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/AccountSettings.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/AppSettings.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/RemoteService.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/WrongPackageSignatureException.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountsListFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/RemoteServiceActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/SaveKeyringParcel.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptMessageFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/DrawerActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivityInterface.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptAsymmetricFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptMessageFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptSymmetricFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpHtmlFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysClipboardFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysNFCFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysServerFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesKeyServerActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectSecretKeyActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectSecretKeyFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectSecretKeyLayoutFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewCertActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivityJB.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyCertsFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/HighlightQueryCursorAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListEntry.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyValueSpinnerAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/PagerTabStripAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/TabsAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ViewKeyKeysAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ViewKeyUserIdsAdapter.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/BadImportKeyDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CreateKeyDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/FileDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareNfcDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareQrCodeDialogFragment.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/Editor.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FixedListView.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FoldableLinearLayout.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/IntegerListPreference.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyEditor.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeyServerEditor.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/SectionView.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/UnderlineTextView.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/UserIdEditor.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/AlgorithmNames.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/Choice.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/HkpKeyServer.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/InputData.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/IntentIntegratorSupportV4.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/IterableIterator.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/KeyServer.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/KeychainServiceListener.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/Log.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/PRNGFixes.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/PausableThreadPoolExecutor.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/PositionAwareInputStream.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/Primes.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressDialogUpdater.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java delete mode 100644 OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/util/QrCodeUtils.java delete mode 100644 OpenPGP-Keychain/src/main/res/anim/push_left_in.xml delete mode 100644 OpenPGP-Keychain/src/main/res/anim/push_left_out.xml delete mode 100644 OpenPGP-Keychain/src/main/res/anim/push_right_in.xml delete mode 100644 OpenPGP-Keychain/src/main/res/anim/push_right_out.xml delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/certify_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/drawer_shadow.9.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/encrypted_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_add_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_cancel.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_cloud.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_discard.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_done.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_import_export.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_save.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_secure.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_select_all.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_action_share.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_dialog_alert_holo_light.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_drawer.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_menu_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_menu_search_list.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_next.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/ic_previous.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/icon.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/key_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/overlay_error.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/overlay_ok.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/popup_center_bright.9.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/popup_full_bright.9.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/revoked_key_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/signed_large.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-hdpi/signed_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/encrypted_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/ic_next.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/ic_previous.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/icon.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/key_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/overlay_error.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/overlay_ok.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/signed_large.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-ldpi/signed_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/certify_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/drawer_shadow.9.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/encrypted_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_add_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_cancel.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_cloud.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_discard.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_done.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_import_export.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_save.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_secure.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_select_all.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_action_share.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_dialog_alert_holo_light.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_drawer.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_menu_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_menu_search_list.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_next.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/ic_previous.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/icon.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/key_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/overlay_error.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/overlay_ok.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/signed_large.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-mdpi/signed_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/drawer_shadow.9.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_add_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_cancel.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_cloud.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_discard.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_done.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_import_export.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_save.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_secure.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_select_all.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_action_share.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_dialog_alert_holo_light.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_drawer.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_menu_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/ic_menu_search_list.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xhdpi/icon.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/drawer_shadow.9.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_add_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_cloud.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_discard.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_import_export.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_person.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_save.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_search.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_secure.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_select_all.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_action_share.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_dialog_alert_holo_light.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/ic_drawer.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxhdpi/icon.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable-xxxhdpi/icon.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/certify_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/encrypted_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/ic_next.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/ic_previous.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/key_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/overlay_error.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/overlay_ok.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/revoked_key_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/section_header.xml delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/selector_transparent_button.xml delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/signed_large.png delete mode 100644 OpenPGP-Keychain/src/main/res/drawable/signed_small.png delete mode 100644 OpenPGP-Keychain/src/main/res/layout-large/api_apps_list_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout-large/decrypt_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout-large/encrypt_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout-large/import_keys_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout-large/key_list_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/actionbar_custom_view_done.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/actionbar_custom_view_done_cancel.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/actionbar_include_cancel_button.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/actionbar_include_done_button.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_account_settings_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_account_settings_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_accounts_adapter_list_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_app_settings_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_app_settings_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_apps_adapter_list_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_apps_list_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_apps_list_content.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_remote_create_account.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_remote_error_message.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_remote_register_app.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/api_remote_select_pub_keys.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/certify_key_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/create_key_dialog.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/decrypt_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/decrypt_content.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/decrypt_file_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/decrypt_message_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/decrypt_signature_include.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/drawer_list.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/drawer_list_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/edit_key_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/edit_key_key_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/edit_key_section.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/edit_key_user_id_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_asymmetric_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_content.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_content_adv_settings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_file_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_message_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/encrypt_symmetric_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/file_dialog.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/foldable_linearlayout.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/help_about_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/help_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_clipboard_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_content.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_file_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_list_entry.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_list_entry_user_id.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_nfc_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_qr_code_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/import_keys_server_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_list_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_list_content.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_list_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_list_header.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_list_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_server_editor.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_server_export.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/key_server_preference.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/passphrase_dialog.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/passphrase_repeat_dialog.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/select_key_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/select_public_key_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/select_secret_key_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/select_secret_key_layout_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/share_qr_code_dialog.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_cert_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_activity.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_certs_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_certs_header.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_certs_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_delete_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_keys_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_main_fragment.xml delete mode 100644 OpenPGP-Keychain/src/main/res/layout/view_key_userids_item.xml delete mode 100644 OpenPGP-Keychain/src/main/res/menu/api_account_settings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/menu/api_app_settings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/menu/key_list.xml delete mode 100644 OpenPGP-Keychain/src/main/res/menu/key_list_multi.xml delete mode 100644 OpenPGP-Keychain/src/main/res/menu/key_view.xml delete mode 100644 OpenPGP-Keychain/src/main/res/menu/view_cert.xml delete mode 100644 OpenPGP-Keychain/src/main/res/raw-cs-rCZ/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-cs-rCZ/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-cs-rCZ/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-cs-rCZ/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-cs-rCZ/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-de/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-de/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-de/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-de/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-de/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-el/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-el/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-el/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-el/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-el/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es-rCO/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es-rCO/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es-rCO/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es-rCO/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es-rCO/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-es/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-et/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-et/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-et/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-et/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-et/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fa-rIR/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fa-rIR/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fa-rIR/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fa-rIR/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fa-rIR/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fr/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fr/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fr/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fr/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-fr/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-it-rIT/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-it-rIT/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-it-rIT/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-it-rIT/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-it-rIT/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ja/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ja/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ja/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ja/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ja/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-nl-rNL/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-nl-rNL/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-nl-rNL/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-nl-rNL/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-nl-rNL/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pl/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pl/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pl/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pl/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pl/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pt-rBR/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pt-rBR/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pt-rBR/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pt-rBR/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-pt-rBR/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ru/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ru/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ru/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ru/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-ru/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-sl-rSI/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-sl-rSI/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-sl-rSI/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-sl-rSI/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-sl-rSI/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-tr/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-tr/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-tr/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-tr/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-tr/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-uk/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-uk/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-uk/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-uk/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-uk/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh-rTW/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh-rTW/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh-rTW/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh-rTW/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh-rTW/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw-zh/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw/help_about.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw/help_changelog.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw/help_faq.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw/help_nfc_beam.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw/help_start.html delete mode 100644 OpenPGP-Keychain/src/main/res/raw/nfc_beam_share.html delete mode 100644 OpenPGP-Keychain/src/main/res/values-cs-rCZ/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-de/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-el/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-es-rCO/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-es/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-et/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-fa-rIR/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-fr/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-it-rIT/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-ja/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-large/dimens.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-nl-rNL/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-pl/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-pt-rBR/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-ru/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-sl-rSI/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-tr/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-uk/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-v14/styles.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-zh-rTW/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values-zh/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/arrays.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/attr.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/colors.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/dimens.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/ids.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/static_strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/strings.xml delete mode 100644 OpenPGP-Keychain/src/main/res/values/styles.xml delete mode 100644 OpenPGP-Keychain/src/main/res/xml/adv_preferences.xml delete mode 100644 OpenPGP-Keychain/src/main/res/xml/gen_preferences.xml delete mode 100644 OpenPGP-Keychain/src/main/res/xml/preference_headers.xml delete mode 100644 OpenPGP-Keychain/src/main/res/xml/preference_headers_legacy.xml delete mode 100644 OpenPGP-Keychain/src/main/res/xml/searchable_public_keys.xml delete mode 100644 OpenPGP-Keychain/src/main/res/xml/searchable_secret_keys.xml delete mode 100644 OpenPGP-Keychain/src/test/java/org/sufficientlysecure/keychain/PgpKeyOperationTest.java delete mode 100644 OpenPGP-Keychain/src/test/java/org/sufficientlysecure/keychain/RobolectricGradleTestRunner.java diff --git a/OpenKeychain-API/.gitignore b/OpenKeychain-API/.gitignore new file mode 100644 index 000000000..aa8bb5760 --- /dev/null +++ b/OpenKeychain-API/.gitignore @@ -0,0 +1,29 @@ +#Android specific +bin +gen +obj +lint.xml +local.properties +release.properties +ant.properties +*.class +*.apk + +#Gradle +.gradle +build +gradle.properties + +#Maven +target +pom.xml.* + +#Eclipse +.project +.classpath +.settings +.metadata + +#IntelliJ IDEA +.idea +*.iml diff --git a/OpenKeychain-API/build.gradle b/OpenKeychain-API/build.gradle new file mode 100644 index 000000000..0ce5dc8c0 --- /dev/null +++ b/OpenKeychain-API/build.gradle @@ -0,0 +1,3 @@ +task wrapper(type: Wrapper) { + gradleVersion = '1.10' +} diff --git a/OpenKeychain-API/example-app/build.gradle b/OpenKeychain-API/example-app/build.gradle new file mode 100644 index 000000000..e7a25e689 --- /dev/null +++ b/OpenKeychain-API/example-app/build.gradle @@ -0,0 +1,61 @@ +// please leave this here, so this library builds on its own +buildscript { + repositories { + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:0.9.0' + } +} + +apply plugin: 'android' + +dependencies { + compile 'com.android.support:support-v4:19.0.1' + compile project(':libraries:openpgp-api-library') + compile project(':libraries:openkeychain-api-library') +} + +android { + compileSdkVersion 19 + buildToolsVersion "19.0.3" + + defaultConfig { + minSdkVersion 9 + targetSdkVersion 19 + } + + /* + * To sign release build, create file gradle.properties in ~/.gradle/ with this content: + * + * signingStoreLocation=/home/key.store + * signingStorePassword=xxx + * signingKeyAlias=alias + * signingKeyPassword=xxx + */ + if (project.hasProperty('signingStoreLocation') && + project.hasProperty('signingStorePassword') && + project.hasProperty('signingKeyAlias') && + project.hasProperty('signingKeyPassword')) { + println "Found sign properties in gradle.properties! Signing build…" + + signingConfigs { + release { + storeFile file(signingStoreLocation) + storePassword signingStorePassword + keyAlias signingKeyAlias + keyPassword signingKeyPassword + } + } + + buildTypes.release.signingConfig = signingConfigs.release + } else { + buildTypes.release.signingConfig = null + } + + // Do not abort build if lint finds errors + lintOptions { + abortOnError false + } +} diff --git a/OpenKeychain-API/example-app/ic_launcher-web.png b/OpenKeychain-API/example-app/ic_launcher-web.png new file mode 100644 index 000000000..ae4cd0976 Binary files /dev/null and b/OpenKeychain-API/example-app/ic_launcher-web.png differ diff --git a/OpenKeychain-API/example-app/src/main/AndroidManifest.xml b/OpenKeychain-API/example-app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..d62c26495 --- /dev/null +++ b/OpenKeychain-API/example-app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java new file mode 100644 index 000000000..dd642d879 --- /dev/null +++ b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/BaseActivity.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2012-2014 Dominik Schürmann + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.sufficientlysecure.keychain.demo; + +import android.content.Intent; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +import android.widget.Toast; + +public class BaseActivity extends PreferenceActivity { + private Preference mIntentDemo; + private Preference mCryptoProvider; + + /** + * Called when the activity is first created. + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // load preferences from xml + addPreferencesFromResource(R.xml.base_preference); + + // find preferences + mIntentDemo = (Preference) findPreference("intent_demo"); + mCryptoProvider = (Preference) findPreference("openpgp_provider_demo"); + + mIntentDemo.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + startActivity(new Intent(BaseActivity.this, IntentActivity.class)); + + return false; + } + }); + + mCryptoProvider.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + startActivity(new Intent(BaseActivity.this, OpenPgpProviderActivity.class)); + + return false; + } + }); + } + +} diff --git a/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java new file mode 100644 index 000000000..acff12f47 --- /dev/null +++ b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/Constants.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2013-2014 Dominik Schürmann + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.sufficientlysecure.keychain.demo; + +public final class Constants { + public static final String TAG = "Keychain"; +} diff --git a/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/IntentActivity.java b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/IntentActivity.java new file mode 100644 index 000000000..e8aa2a2e7 --- /dev/null +++ b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/IntentActivity.java @@ -0,0 +1,583 @@ +/* + * Copyright (C) 2014 Dominik Schürmann + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.sufficientlysecure.keychain.demo; + +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +import android.provider.MediaStore; +import android.util.Log; +import android.widget.Toast; + +import org.sufficientlysecure.keychain.api.OpenKeychainIntents; + +import java.io.UnsupportedEncodingException; + +public class IntentActivity extends PreferenceActivity { + private Preference mEncrypt; + private Preference mEncryptUri; + private Preference mDecrypt; + private Preference mImportKey; + private Preference mImportKeyFromKeyserver; + private Preference mImportKeyFromQrCode; + private Preference mOpenpgp4fpr; + + private static final int REQUEST_CODE_SELECT_PHOTO = 100; + + /** + * Called when the activity is first created. + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // load preferences from xml + addPreferencesFromResource(R.xml.intent_preference); + + // find preferences + mEncrypt = (Preference) findPreference("ENCRYPT"); + mEncryptUri = (Preference) findPreference("ENCRYPT_URI"); + mDecrypt = (Preference) findPreference("DECRYPT"); + mImportKey = (Preference) findPreference("IMPORT_KEY"); + mImportKeyFromKeyserver = (Preference) findPreference("IMPORT_KEY_FROM_KEYSERVER"); + mImportKeyFromQrCode = (Preference) findPreference("IMPORT_KEY_FROM_QR_CODE"); + mOpenpgp4fpr = (Preference) findPreference("openpgp4fpr"); + + + mEncrypt.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + try { + Intent intent = new Intent(OpenKeychainIntents.ENCRYPT); + intent.putExtra(OpenKeychainIntents.ENCRYPT_EXTRA_TEXT, "Hello world!"); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + + return false; + } + }); + + mEncryptUri.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); + photoPickerIntent.setType("image/*"); + startActivityForResult(photoPickerIntent, REQUEST_CODE_SELECT_PHOTO); + + return false; + } + }); + + mDecrypt.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + try { + Intent intent = new Intent(OpenKeychainIntents.DECRYPT); + intent.putExtra(OpenKeychainIntents.DECRYPT_EXTRA_TEXT, TEST_SIGNED_MESSAGE); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + + return false; + } + }); + + mImportKey.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + try { + Intent intent = new Intent(OpenKeychainIntents.IMPORT_KEY); + byte[] pubkey = null; + try { + pubkey = TEST_PUBKEY.getBytes("UTF-8"); + intent.putExtra(OpenKeychainIntents.IMPORT_KEY_EXTRA_KEY_BYTES, pubkey); + startActivity(intent); + } catch (UnsupportedEncodingException e) { + Log.e(Constants.TAG, "UnsupportedEncodingException", e); + } + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + + return false; + } + }); + + mImportKeyFromKeyserver.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + try { + Intent intent = new Intent(OpenKeychainIntents.IMPORT_KEY_FROM_KEYSERVER); + intent.putExtra(OpenKeychainIntents.IMPORT_KEY_FROM_KEYSERVER_QUERY, "Richard Stallman"); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + + return false; + } + }); + + mImportKeyFromQrCode.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + try { + Intent intent = new Intent(OpenKeychainIntents.IMPORT_KEY_FROM_QR_CODE); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + + return false; + } + }); + + mOpenpgp4fpr.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + try { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse("openpgp4fpr:73EE2314F65FA92EC2390D3A718C070100012282")); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + + return false; + } + }); + + + } + + protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { + super.onActivityResult(requestCode, resultCode, imageReturnedIntent); + + switch (requestCode) { + case REQUEST_CODE_SELECT_PHOTO: + if (resultCode == RESULT_OK) { + Uri selectedImage = imageReturnedIntent.getData(); + + String[] filePathColumn = {MediaStore.Images.Media.DATA}; + + Cursor cursor = getContentResolver().query( + selectedImage, filePathColumn, null, null, null); + cursor.moveToFirst(); + + int columnIndex = cursor.getColumnIndex(filePathColumn[0]); + String filePath = cursor.getString(columnIndex); + cursor.close(); + + // TODO: after fixing DECRYPT, we could use Uri selectedImage directly + Log.d(Constants.TAG, "filePath: " + filePath); + + try { + Intent intent = new Intent(OpenKeychainIntents.ENCRYPT); + Uri dataUri = Uri.parse("file://" + filePath); + Log.d(Constants.TAG, "Uri: " + dataUri); + intent.setData(dataUri); + startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(IntentActivity.this, "Activity not found!", Toast.LENGTH_LONG).show(); + } + } + } + } + + private static final String TEST_SIGNED_MESSAGE = "-----BEGIN PGP SIGNED MESSAGE-----\n" + + "Hash: SHA1\n" + + "\n" + + "Hello world!\n" + + "-----BEGIN PGP SIGNATURE-----\n" + + "Version: GnuPG v1.4.12 (GNU/Linux)\n" + + "Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/\n" + + "\n" + + "iQEcBAEBAgAGBQJS/7vTAAoJEHGMBwEAASKCkGYH/2jBLzamVyqd61jrjMQM0jUv\n" + + "MkDcPUxPrYH3wZOO0HcgdBQEo66GZEC2ATmo8izJUMk35Q5jas99k0ac9pXhPUPE\n" + + "5qDXdQS10S07R6J0SeDYFWDSyrSiDTCZpFkVu3JGP/3S0SkMYXPzfYlh8Ciuxu7i\n" + + "FR5dmIiz3VQaBgTBSCBFEomNFM5ypynBJqKIzIty8v0NbV72Rtg6Xg76YqWQ/6MC\n" + + "/MlT3y3++HhfpEmLf5WLEXljbuZ4SfCybgYXG9gBzhJu3+gmBoSicdYTZDHSxBBR\n" + + "BwI+ueLbhgRz+gU+WJFE7xNw35xKtBp1C4PR0iKI8rZCSHLjsRVzor7iwDaR51M=\n" + + "=3Ydc\n" + + "-----END PGP SIGNATURE-----"; + + private static final String TEST_PUBKEY = "-----BEGIN PGP PUBLIC KEY BLOCK-----\n" + + "Version: GnuPG v1.4.12 (GNU/Linux)\n" + + "\n" + + "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\n" + + "k3wUxv46o0y15asU\n" + + "=Bbew\n" + + "-----END PGP PUBLIC KEY BLOCK-----\n"; + +} diff --git a/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java new file mode 100644 index 000000000..345d63eef --- /dev/null +++ b/OpenKeychain-API/example-app/src/main/java/org/sufficientlysecure/keychain/demo/OpenPgpProviderActivity.java @@ -0,0 +1,308 @@ +/* + * Copyright (C) 2013-2014 Dominik Schürmann + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.sufficientlysecure.keychain.demo; + +import android.app.Activity; +import android.app.PendingIntent; +import android.content.Intent; +import android.content.IntentSender; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import org.openintents.openpgp.OpenPgpError; +import org.openintents.openpgp.OpenPgpSignatureResult; +import org.openintents.openpgp.util.OpenPgpApi; +import org.openintents.openpgp.util.OpenPgpServiceConnection; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; + +public class OpenPgpProviderActivity extends Activity { + private EditText mMessage; + private EditText mCiphertext; + private EditText mEncryptUserIds; + private Button mSign; + private Button mEncrypt; + private Button mSignAndEncrypt; + private Button mDecryptAndVerify; + private EditText mAccount; + + private OpenPgpServiceConnection mServiceConnection; + + public static final int REQUEST_CODE_SIGN = 9910; + public static final int REQUEST_CODE_ENCRYPT = 9911; + public static final int REQUEST_CODE_SIGN_AND_ENCRYPT = 9912; + public static final int REQUEST_CODE_DECRYPT_AND_VERIFY = 9913; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.openpgp_provider); + + mMessage = (EditText) findViewById(R.id.crypto_provider_demo_message); + mCiphertext = (EditText) findViewById(R.id.crypto_provider_demo_ciphertext); + mEncryptUserIds = (EditText) findViewById(R.id.crypto_provider_demo_encrypt_user_id); + mSign = (Button) findViewById(R.id.crypto_provider_demo_sign); + mEncrypt = (Button) findViewById(R.id.crypto_provider_demo_encrypt); + mSignAndEncrypt = (Button) findViewById(R.id.crypto_provider_demo_sign_and_encrypt); + mDecryptAndVerify = (Button) findViewById(R.id.crypto_provider_demo_decrypt_and_verify); + mAccount = (EditText) findViewById(R.id.crypto_provider_demo_account); + + mSign.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sign(new Intent()); + } + }); + mEncrypt.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + encrypt(new Intent()); + } + }); + mSignAndEncrypt.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + signAndEncrypt(new Intent()); + } + }); + mDecryptAndVerify.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + decryptAndVerify(new Intent()); + } + }); + + SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); + String providerPackageName = settings.getString("openpgp_provider_list", ""); + if (TextUtils.isEmpty(providerPackageName)) { + Toast.makeText(this, "No OpenPGP Provider selected!", Toast.LENGTH_LONG).show(); + finish(); + } else { + // bind to service + mServiceConnection = new OpenPgpServiceConnection( + OpenPgpProviderActivity.this, providerPackageName); + mServiceConnection.bindToService(); + } + } + + private void handleError(final OpenPgpError error) { + runOnUiThread(new Runnable() { + + @Override + public void run() { + Toast.makeText(OpenPgpProviderActivity.this, + "onError id:" + error.getErrorId() + "\n\n" + error.getMessage(), + Toast.LENGTH_LONG).show(); + Log.e(Constants.TAG, "onError getErrorId:" + error.getErrorId()); + Log.e(Constants.TAG, "onError getMessage:" + error.getMessage()); + } + }); + } + + private void handleSignature(final OpenPgpSignatureResult sigResult) { + runOnUiThread(new Runnable() { + + @Override + public void run() { + Toast.makeText(OpenPgpProviderActivity.this, + sigResult.toString(), + Toast.LENGTH_LONG).show(); + } + }); + } + + /** + * Takes input from message or ciphertext EditText and turns it into a ByteArrayInputStream + * + * @param ciphertext + * @return + */ + private InputStream getInputstream(boolean ciphertext) { + InputStream is = null; + try { + String inputStr; + if (ciphertext) { + inputStr = mCiphertext.getText().toString(); + } else { + inputStr = mMessage.getText().toString(); + } + is = new ByteArrayInputStream(inputStr.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + Log.e(Constants.TAG, "UnsupportedEncodingException", e); + } + + return is; + } + + private class MyCallback implements OpenPgpApi.IOpenPgpCallback { + boolean returnToCiphertextField; + ByteArrayOutputStream os; + int requestCode; + + private MyCallback(boolean returnToCiphertextField, ByteArrayOutputStream os, int requestCode) { + this.returnToCiphertextField = returnToCiphertextField; + this.os = os; + this.requestCode = requestCode; + } + + @Override + public void onReturn(Intent result) { + switch (result.getIntExtra(OpenPgpApi.RESULT_CODE, OpenPgpApi.RESULT_CODE_ERROR)) { + case OpenPgpApi.RESULT_CODE_SUCCESS: { + try { + Log.d(OpenPgpApi.TAG, "result: " + os.toByteArray().length + + " str=" + os.toString("UTF-8")); + + if (returnToCiphertextField) { + mCiphertext.setText(os.toString("UTF-8")); + } else { + mMessage.setText(os.toString("UTF-8")); + } + } catch (UnsupportedEncodingException e) { + Log.e(Constants.TAG, "UnsupportedEncodingException", e); + } + + if (result.hasExtra(OpenPgpApi.RESULT_SIGNATURE)) { + OpenPgpSignatureResult sigResult + = result.getParcelableExtra(OpenPgpApi.RESULT_SIGNATURE); + handleSignature(sigResult); + } + break; + } + case OpenPgpApi.RESULT_CODE_USER_INTERACTION_REQUIRED: { + PendingIntent pi = result.getParcelableExtra(OpenPgpApi.RESULT_INTENT); + try { + OpenPgpProviderActivity.this.startIntentSenderForResult(pi.getIntentSender(), + requestCode, null, 0, 0, 0); + } catch (IntentSender.SendIntentException e) { + Log.e(Constants.TAG, "SendIntentException", e); + } + break; + } + case OpenPgpApi.RESULT_CODE_ERROR: { + OpenPgpError error = result.getParcelableExtra(OpenPgpApi.RESULT_ERROR); + handleError(error); + break; + } + } + } + } + + public void sign(Intent data) { + data.setAction(OpenPgpApi.ACTION_SIGN); + data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); + data.putExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME, mAccount.getText().toString()); + + InputStream is = getInputstream(false); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + + OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService()); + api.executeApiAsync(data, is, os, new MyCallback(true, os, REQUEST_CODE_SIGN)); + } + + public void encrypt(Intent data) { + data.setAction(OpenPgpApi.ACTION_ENCRYPT); + data.putExtra(OpenPgpApi.EXTRA_USER_IDS, mEncryptUserIds.getText().toString().split(",")); + data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); + data.putExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME, mAccount.getText().toString()); + + InputStream is = getInputstream(false); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + + OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService()); + api.executeApiAsync(data, is, os, new MyCallback(true, os, REQUEST_CODE_ENCRYPT)); + } + + public void signAndEncrypt(Intent data) { + data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT); + data.putExtra(OpenPgpApi.EXTRA_USER_IDS, mEncryptUserIds.getText().toString().split(",")); + data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); + data.putExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME, mAccount.getText().toString()); + + InputStream is = getInputstream(false); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + + OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService()); + api.executeApiAsync(data, is, os, new MyCallback(true, os, REQUEST_CODE_SIGN_AND_ENCRYPT)); + } + + public void decryptAndVerify(Intent data) { + data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY); + data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true); + data.putExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME, mAccount.getText().toString()); + + InputStream is = getInputstream(true); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + + OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService()); + api.executeApiAsync(data, is, os, new MyCallback(false, os, REQUEST_CODE_DECRYPT_AND_VERIFY)); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + Log.d(Constants.TAG, "onActivityResult resultCode: " + resultCode); + + // try again after user interaction + if (resultCode == RESULT_OK) { + /* + * The data originally given to one of the methods above, is again + * returned here to be used when calling the method again after user + * interaction. The Intent now also contains results from the user + * interaction, for example selected key ids. + */ + switch (requestCode) { + case REQUEST_CODE_SIGN: { + sign(data); + break; + } + case REQUEST_CODE_ENCRYPT: { + encrypt(data); + break; + } + case REQUEST_CODE_SIGN_AND_ENCRYPT: { + signAndEncrypt(data); + break; + } + case REQUEST_CODE_DECRYPT_AND_VERIFY: { + decryptAndVerify(data); + break; + } + } + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + + if (mServiceConnection != null) { + mServiceConnection.unbindFromService(); + } + } + +} diff --git a/OpenKeychain-API/example-app/src/main/res/drawable-hdpi/ic_launcher.png b/OpenKeychain-API/example-app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 000000000..cf114d7db Binary files /dev/null and b/OpenKeychain-API/example-app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/OpenKeychain-API/example-app/src/main/res/drawable-mdpi/ic_launcher.png b/OpenKeychain-API/example-app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 000000000..d55318843 Binary files /dev/null and b/OpenKeychain-API/example-app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/OpenKeychain-API/example-app/src/main/res/drawable-xhdpi/ic_launcher.png b/OpenKeychain-API/example-app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 000000000..13ed3d450 Binary files /dev/null and b/OpenKeychain-API/example-app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/OpenKeychain-API/example-app/src/main/res/drawable-xxhdpi/ic_launcher.png b/OpenKeychain-API/example-app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..831c993d4 Binary files /dev/null and b/OpenKeychain-API/example-app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/OpenKeychain-API/example-app/src/main/res/layout/openpgp_provider.xml b/OpenKeychain-API/example-app/src/main/res/layout/openpgp_provider.xml new file mode 100644 index 000000000..2b8e8016a --- /dev/null +++ b/OpenKeychain-API/example-app/src/main/res/layout/openpgp_provider.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +