From 19d3fcec7a669d54e65ffa399dec5bbd9ae4e22d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Fri, 18 Apr 2014 20:41:39 +0200 Subject: [PATCH] Remove unused strings, fix some lint errors, fix some language confusions --- OpenKeychain/build.gradle | 1 + .../keychain/provider/KeychainDatabase.java | 2 +- .../keychain/ui/DrawerActivity.java | 2 +- .../keychain/ui/EncryptFileFragment.java | 2 +- .../keychain/ui/EncryptMessageFragment.java | 2 +- .../keychain/ui/KeyListFragment.java | 2 +- .../keychain/ui/PreferencesActivity.java | 8 +-- .../ui/PreferencesKeyServerActivity.java | 2 +- .../ui/dialog/CreateKeyDialogFragment.java | 2 + .../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/ic_next.png | Bin 1360 -> 0 bytes .../src/main/res/drawable/ic_previous.png | Bin 1352 -> 0 bytes .../res/layout/api_app_settings_activity.xml | 2 +- .../src/main/res/layout/key_list_header.xml | 4 +- .../main/res/layout/view_key_certs_header.xml | 2 +- OpenKeychain/src/main/res/values/strings.xml | 65 +++--------------- .../src/main/res/xml/gen_preferences.xml | 2 +- .../main/res/xml/searchable_public_keys.xml | 22 ------ .../main/res/xml/searchable_secret_keys.xml | 22 ------ Resources/AndroidUnusedResources1.6.2.jar | Bin 35221 -> 0 bytes 23 files changed, 29 insertions(+), 193 deletions(-) delete mode 100644 OpenKeychain/src/main/res/anim/push_left_in.xml delete mode 100644 OpenKeychain/src/main/res/anim/push_left_out.xml delete mode 100644 OpenKeychain/src/main/res/anim/push_right_in.xml delete mode 100644 OpenKeychain/src/main/res/anim/push_right_out.xml delete mode 100644 OpenKeychain/src/main/res/drawable/ic_next.png delete mode 100644 OpenKeychain/src/main/res/drawable/ic_previous.png delete mode 100644 OpenKeychain/src/main/res/xml/searchable_public_keys.xml delete mode 100644 OpenKeychain/src/main/res/xml/searchable_secret_keys.xml delete mode 100644 Resources/AndroidUnusedResources1.6.2.jar diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 306cb8195..73b46dafb 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -83,6 +83,7 @@ android { // Do not abort build if lint finds errors lintOptions { abortOnError false + checkAllWarnings true htmlReport true htmlOutput file("lint-report.html") } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java index 6499814fb..aafc2eb34 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java @@ -227,7 +227,7 @@ public class KeychainDatabase extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { // should never happen - assert false; + throw new AssertionError(); } @Override public void onDowngrade(SQLiteDatabase db, int old, int nu) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DrawerActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DrawerActivity.java index c875818e3..088f593d4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DrawerActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DrawerActivity.java @@ -78,7 +78,7 @@ public class DrawerActivity extends ActionBarActivity { } NavItem mItemIconTexts[] = new NavItem[]{ - new NavItem("fa-user", getString(R.string.nav_contacts)), + new NavItem("fa-user", getString(R.string.nav_keys)), new NavItem("fa-lock", getString(R.string.nav_encrypt)), new NavItem("fa-unlock", getString(R.string.nav_decrypt)), new NavItem("fa-android", getString(R.string.nav_apps))}; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java index 2566d1647..8aee6e4b0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java @@ -335,7 +335,7 @@ public class EncryptFileFragment extends Fragment { sendFileIntent.setType("*/*"); sendFileIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(mOutputFilename)); startActivity(Intent.createChooser(sendFileIntent, - getString(R.string.title_send_file))); + getString(R.string.title_share_file))); } } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptMessageFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptMessageFragment.java index b68df81df..4a3a4a43c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptMessageFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptMessageFragment.java @@ -240,7 +240,7 @@ public class EncryptMessageFragment extends Fragment { sendIntent.putExtra(Intent.EXTRA_TEXT, output); startActivity(Intent.createChooser(sendIntent, - getString(R.string.title_send_email))); + getString(R.string.title_share_with))); } } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index ebc21a926..82f65a962 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -612,7 +612,7 @@ public class KeyListFragment extends Fragment if (mCursor.getInt(KeyListFragment.INDEX_HAS_ANY_SECRET) != 0) { { // set contact count int num = mCursor.getCount(); - String contactsTotal = getResources().getQuantityString(R.plurals.n_contacts, num, num); + String contactsTotal = getResources().getQuantityString(R.plurals.n_keys, num, num); holder.mCount.setText(contactsTotal); holder.mCount.setVisibility(View.VISIBLE); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesActivity.java index 6a9403cc2..448d29156 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesActivity.java @@ -67,7 +67,7 @@ public class PreferencesActivity extends PreferenceActivity { mKeyServerPreference = (PreferenceScreen) findPreference(Constants.Pref.KEY_SERVERS); String servers[] = sPreferences.getKeyServers(); - mKeyServerPreference.setSummary(getResources().getQuantityString(R.plurals.n_key_servers, + mKeyServerPreference.setSummary(getResources().getQuantityString(R.plurals.n_keyservers, servers.length, servers.length)); mKeyServerPreference .setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @@ -138,7 +138,7 @@ public class PreferencesActivity extends PreferenceActivity { .getStringArrayExtra(PreferencesKeyServerActivity.EXTRA_KEY_SERVERS); sPreferences.setKeyServers(servers); mKeyServerPreference.setSummary(getResources().getQuantityString( - R.plurals.n_key_servers, servers.length, servers.length)); + R.plurals.n_keyservers, servers.length, servers.length)); break; } @@ -175,7 +175,7 @@ public class PreferencesActivity extends PreferenceActivity { mKeyServerPreference = (PreferenceScreen) findPreference(Constants.Pref.KEY_SERVERS); String servers[] = sPreferences.getKeyServers(); - mKeyServerPreference.setSummary(getResources().getQuantityString(R.plurals.n_key_servers, + mKeyServerPreference.setSummary(getResources().getQuantityString(R.plurals.n_keyservers, servers.length, servers.length)); mKeyServerPreference .setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @@ -201,7 +201,7 @@ public class PreferencesActivity extends PreferenceActivity { .getStringArrayExtra(PreferencesKeyServerActivity.EXTRA_KEY_SERVERS); sPreferences.setKeyServers(servers); mKeyServerPreference.setSummary(getResources().getQuantityString( - R.plurals.n_key_servers, servers.length, servers.length)); + R.plurals.n_keyservers, servers.length, servers.length)); break; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesKeyServerActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesKeyServerActivity.java index ff5f081ae..0de675bab 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesKeyServerActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PreferencesKeyServerActivity.java @@ -74,7 +74,7 @@ public class PreferencesKeyServerActivity extends ActionBarActivity implements O mTitle = (TextView) findViewById(R.id.title); mSummary = (TextView) findViewById(R.id.summary); - mTitle.setText(R.string.label_key_servers); + mTitle.setText(R.string.label_keyservers); mEditors = (ViewGroup) findViewById(R.id.editors); mAdd = findViewById(R.id.add); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CreateKeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CreateKeyDialogFragment.java index 36fa1edb4..c71bc160a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CreateKeyDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/CreateKeyDialogFragment.java @@ -17,6 +17,7 @@ package org.sufficientlysecure.keychain.ui.dialog; +import android.annotation.TargetApi; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; @@ -308,6 +309,7 @@ public class CreateKeyDialogFragment extends DialogFragment { } } + @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void replaceArrayAdapterContent(ArrayAdapter arrayAdapter, int stringArrayResourceId) { final String[] spinnerValuesStringArray = getResources().getStringArray(stringArrayResourceId); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { diff --git a/OpenKeychain/src/main/res/anim/push_left_in.xml b/OpenKeychain/src/main/res/anim/push_left_in.xml deleted file mode 100644 index 45fb4875a..000000000 --- a/OpenKeychain/src/main/res/anim/push_left_in.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/OpenKeychain/src/main/res/anim/push_left_out.xml b/OpenKeychain/src/main/res/anim/push_left_out.xml deleted file mode 100644 index 845679f16..000000000 --- a/OpenKeychain/src/main/res/anim/push_left_out.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OpenKeychain/src/main/res/anim/push_right_in.xml b/OpenKeychain/src/main/res/anim/push_right_in.xml deleted file mode 100644 index 09a244406..000000000 --- a/OpenKeychain/src/main/res/anim/push_right_in.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/OpenKeychain/src/main/res/anim/push_right_out.xml b/OpenKeychain/src/main/res/anim/push_right_out.xml deleted file mode 100644 index e8893a69a..000000000 --- a/OpenKeychain/src/main/res/anim/push_right_out.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OpenKeychain/src/main/res/drawable/ic_next.png b/OpenKeychain/src/main/res/drawable/ic_next.png deleted file mode 100644 index 8271c13807f0fb8b6bd65832bdb17eacfae6e3cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1360 zcmV-W1+V&vP)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy0%A)?L;wJ)jUzGu000SaNLh0L01FcU01FcV0GgZ_00009c5p#w z0000a0000a0C)!*j{pD!G)Y83R7l6=mD_JrRTPK6eQtBuF^17Pg=0EZk z-@Rks?iYvpcf~vHsKBi*&*vu2{&ep0Td34VZ9bxrCkU{V8ZYSzD?85FH3j&X(>DsbZ8u%mki*%am! zf^53B4rtS@`}6SVH=zQLF))4Qg~*lkrh_0s>(IB2Bgu9^94nsD7tx@3~unH3ltTv;Gq%dMrs=O zPTtcx=n{oQq8R6M3OGno9AP`PpxZSX$wHx43q6M*Nhv$)ss=`(nBaJT>Eb=Mu^ixi ztI6NyDB<}iBaDan3pexSW{f0DIlvrY8>RZbLZT^F$8yZ$HiN)rF_#;kR$A44YMv*9 zq?32qMyVc&k5T&S?Q2skgcG3YTXUmJ>A}sd(Z(cdXBSakW(&(`bbSJV$wKMVu^Z=@ zq~Mp)tcxvhmRgeC18K_)hlWcV!$c@GRnbqQ>VBI&JzBZM?^OKFMnoEF=A@lS_NQz^ z0|J3dfof3h&@8005UK!FfA}OEigG$F*rIjIXW{oD=;!T zFfdgfOsW6?03~!qSaf7zbY(hiZ)9m^c>ppnF)%GKH7zhXR53U@G&wpmHY+ePIxsLK SL-ZB^0000D0t diff --git a/OpenKeychain/src/main/res/drawable/ic_previous.png b/OpenKeychain/src/main/res/drawable/ic_previous.png deleted file mode 100644 index ef90db9721935c5705880e718383f4a89b9015ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1352 zcmZ{kYdjNr7{~uBQ)upuTo+jrcDAL2IoKv!LQI4X&HWO&47r6>lx%Y?Eh|EY)oRiq zPB$$fEC=BfPPycA7IJA7<*f7Wyf`nO=ll6R&*%5~J+Geghg=+C@>=o$02qZ#a+h+) zkJ>CF?M`xs)TEFJwRg4$ppLDuMuSQRfY7oFF)BG_^jIj@u z^4}xC$xYg9X}&3iWbZ+4n=I)(;c-}}%~oQ`Zs?=ocB}gYXYZAz)SNShsBYZzjHx}w zfXW6>iUioXmB)yHgZa-$8)F0Wlx`V>%Lw~=ef(Uit6LlBA+KFR=N?Y!Xh{CJ?7lVd zXtFD=V@=d_EiL2m{CpC6?T-Ejf1TF^IkWwo;t+kZQ^KQLI=tc%>aj8XO!LBTZ~Vlz z3j|uK??A5ca7xtNXnRk|J8g^SwKm4>qra!GzpWsi8qAJ4iJ=DT{mPPQl|dSPTd)sK}#?r%1^D4sJ( zWOjACH1Z;#zpW@eN=lQI(=OPypmt<8)ec?J<#M=Bef5KEY!^hntFkcPh6m(j?TS2S zn-Q*>Y?Z^p|ch+cp6zuCr%{G{B?Sws6aaDqv zI}G!H8TE@f+CJ@OB0#|}KG?6(`S-zM71xGA@j(BUm&%;^(rZWan5KvVk5YpbO%f4d zP75fncp4B{lj|iR^g+>3R)LU+YonkImEEXkZoW64@EI%~@A4w`G|8VO>N|EI1hp}o z$aZ8Y;azP`@UUR}3PO!t{c)S)tq4_9>V)POu%c4g;?mEHJI<*d$o9D31-k^-mRHe* zo4QSeW%97_)^v}i#8^htA!;e7bB*tR!sS4+aQ1tCSXLv9cd{h|rskTKu-Y#vxiDOz z15Z6%K(gbynZ5En*hb$f_sXCuo8=%}9TRmZOgiP^bZ5gKZik}pqMui(bRwx(T^q*q zw5I0tY|GeGqpOnFsWGIQDL;w$b)^3Z-y#~l?#{ll&AQ?Zhuh9`e6341yS z&7xQ*H_sqlS?X9*b+qEvkS|@mYwdSLfinOj<6u_hRt6$aB=mf-y#L)3|&@Q~#HH&nKCPf87d;^0EM IO*qE*2iYP`PXGV_ diff --git a/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml b/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml index 1377acf0e..49c4ccbfe 100644 --- a/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml +++ b/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml @@ -6,7 +6,7 @@ diff --git a/OpenKeychain/src/main/res/layout/key_list_header.xml b/OpenKeychain/src/main/res/layout/key_list_header.xml index 09ac1c856..de7bdbd5c 100644 --- a/OpenKeychain/src/main/res/layout/key_list_header.xml +++ b/OpenKeychain/src/main/res/layout/key_list_header.xml @@ -18,12 +18,12 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" - android:text="contact count" + android:text="key count" android:id="@+id/contacts_num" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" - android:layout_marginRight="10px" + android:layout_marginRight="8dp" android:visibility="visible" android:textColor="@android:color/darker_gray" /> diff --git a/OpenKeychain/src/main/res/layout/view_key_certs_header.xml b/OpenKeychain/src/main/res/layout/view_key_certs_header.xml index 04e7b8097..037203dbd 100644 --- a/OpenKeychain/src/main/res/layout/view_key_certs_header.xml +++ b/OpenKeychain/src/main/res/layout/view_key_certs_header.xml @@ -23,7 +23,7 @@ android:layout_centerVertical="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" - android:layout_marginRight="10px" + android:layout_marginRight="8dp" android:visibility="visible" android:textColor="@android:color/darker_gray" /> diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index f53ae56ee..b5549f0d8 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -2,8 +2,6 @@ - Contacts - Secret Keys Select Public Key Select Secret Key Encrypt @@ -16,17 +14,15 @@ Keyserver Preference Change Passphrase Set Passphrase - "Send Mail…" - "Send File…" + Share with… + Share file with… Encrypt To File Decrypt To File Import Keys Export Key Export Keys Key Not Found - Query Keyserver Upload to Keyserver - Unknown Signature Key Certify Key Key Details Help @@ -47,12 +43,9 @@ Decrypt and Verify - Sign Certify - Decrypt Decrypt and Verify From Clipboard - Select Recipients Encrypt File Save Cancel @@ -61,7 +54,6 @@ Okay Change New Passphrase Set New Passphrase - Search Upload To Keyserver Next Back @@ -76,7 +68,6 @@ Help Import from file Import from QR Code - Import Import from NFC Export to file Delete key @@ -96,7 +87,6 @@ with QR Code with NFC Copy to clipboard - Sign key Beam settings Cancel Encrypt to… @@ -125,7 +115,7 @@ Message Compression File Compression Force old OpenPGPv3 Signatures - Keyservers + Keyservers Key ID Creation Expiry @@ -148,25 +138,21 @@ <no name> <none> <no key> - <No Email> - can encrypt can sign expired revoked - User ID - - 1 contact - %d contacts + + 1 key + %d keys - + %d keyserver %d keyservers - Fingerprint: Secret Key: @@ -199,7 +185,6 @@ Wrong passphrase. - Using clipboard content. Set a passphrase first. No compatible file manager installed. The passphrases didn\'t match. @@ -217,12 +202,10 @@ Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists. Please specify which file to decrypt to.\nWARNING: File will be overwritten if it exists. Please specify which file to export to.\nWARNING: File will be overwritten if it exists. - Please specify which file to export to.\nWARNING: You are about to export SECRET keys.\nWARNING: File will be overwritten if it exists. - Do you really want to delete the key \'%s\'?\nYou can\'t undo this! Do you really want to delete all selected public keys?\nYou can\'t undo this! Do you really want to delete the SECRET key \'%s\'?\nYou can\'t undo this! You have made changes to the keyring, would you like to save it? - "You have added an empty user ID, are you sure you want to continue?" + You have added an empty user ID, are you sure you want to continue? Do you really want to delete the public key \'%s\'?\nYou can\'t undo this! Also export secret keys? @@ -256,7 +239,6 @@ Found %d keys. - %d bad secret key ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead. %d bad secret keys ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead. @@ -279,32 +261,22 @@ deleting \'%s\' failed file not found no suitable secret key found - no known kind of encryption found external storage not ready - invalid email \'%s\' key size must be at least 512bit the master key cannot be an ElGamal key unknown algorithm choice - you need to specify a name no email found - you need to specify an email address need at least one user id main user id must not be empty need at least a master key - no encryption keys or passphrase given no passphrase given no signature key given not valid encryption data - corrupt data integrity check failed! Data has been modified! - couldn\'t find a packet with symmetric encryption wrong passphrase error saving some keys could not extract private key expiry date must come after creation date - please save the keyring first - you can not delete this contact because it is your own. - you can not delete the following contacts because they are your own:\n%s Direct binary data without actual file in filesystem is not supported. This is only supported by ACTION_ENCRYPT_STREAM_AND_RETURN. @@ -316,10 +288,6 @@ Too many responses File has no content A generic error occurred, please create a new bug report for OpenKeychain. - - Please delete it from the \'My Keys\' screen! - Please delete them from the \'My Keys\' screen! - part of the loaded file is a valid OpenPGP object but not a OpenPGP key parts of the loaded file are valid OpenPGP objects but not OpenPGP keys @@ -343,7 +311,6 @@ importing… exporting… building key… - preparing master key… certifying master key… building master ring… adding sub keys… @@ -374,7 +341,6 @@ decompressing data… verifying integrity… deleting \'%s\' securely… - querying… Search Public Keys @@ -409,7 +375,6 @@ Import selected keys - Import, Sign, and upload selected keys Import from clipboard @@ -480,17 +445,16 @@ Edit this key - Encrypt to this contact - Certify this contact\'s key + Encrypt with this key + Certify this key Info Certifications - Keys + Keys Sign and Encrypt Decrypt and Verify Import Keys - My Keys Registered Apps Open navigation drawer Close navigation drawer @@ -505,24 +469,17 @@ Enter ciphertext here to decrypt and/or verify… - Show unknown signatures Signer Certificate Details User ID - Subkey Rank ]]> No certificates for this key User IDs to sign - Reapplying certificates - Show by known secret keys - Show by known public keys - Show all certificates default none casual positive revoke - never Web of Trust ok failed! diff --git a/OpenKeychain/src/main/res/xml/gen_preferences.xml b/OpenKeychain/src/main/res/xml/gen_preferences.xml index 5d7dcd65f..10be61b6a 100644 --- a/OpenKeychain/src/main/res/xml/gen_preferences.xml +++ b/OpenKeychain/src/main/res/xml/gen_preferences.xml @@ -27,6 +27,6 @@ + android:title="@string/label_keyservers" /> diff --git a/OpenKeychain/src/main/res/xml/searchable_public_keys.xml b/OpenKeychain/src/main/res/xml/searchable_public_keys.xml deleted file mode 100644 index 6636e0d94..000000000 --- a/OpenKeychain/src/main/res/xml/searchable_public_keys.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/OpenKeychain/src/main/res/xml/searchable_secret_keys.xml b/OpenKeychain/src/main/res/xml/searchable_secret_keys.xml deleted file mode 100644 index ba0553494..000000000 --- a/OpenKeychain/src/main/res/xml/searchable_secret_keys.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/Resources/AndroidUnusedResources1.6.2.jar b/Resources/AndroidUnusedResources1.6.2.jar deleted file mode 100644 index 5956b0c176ba50b1d1963d9a7f17d8162c953122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35221 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