diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java index 9722ae5a2..33f51cbf9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java @@ -43,6 +43,7 @@ public class KeychainContract { String CAN_SIGN = "can_sign"; String CAN_ENCRYPT = "can_encrypt"; String CAN_CERTIFY = "can_certify"; + String CAN_AUTHENTICATE = "can_authenticate"; String IS_REVOKED = "is_revoked"; String HAS_SECRET = "has_secret"; @@ -114,6 +115,7 @@ public class KeychainContract { public static final String HAS_ENCRYPT = "has_encrypt"; public static final String HAS_SIGN = "has_sign"; public static final String HAS_CERTIFY = "has_certify"; + public static final String HAS_AUTHENTICATE = "has_authenticate"; public static final String PUBKEY_DATA = "pubkey_data"; public static final String PRIVKEY_DATA = "privkey_data"; 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 4d62f67a9..3da288c86 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainDatabase.java @@ -54,7 +54,7 @@ import java.io.IOException; */ public class KeychainDatabase extends SQLiteOpenHelper { private static final String DATABASE_NAME = "openkeychain.db"; - private static final int DATABASE_VERSION = 4; + private static final int DATABASE_VERSION = 5; static Boolean apgHack = false; private Context mContext; @@ -96,6 +96,7 @@ public class KeychainDatabase extends SQLiteOpenHelper { + KeysColumns.CAN_CERTIFY + " BOOLEAN, " + KeysColumns.CAN_SIGN + " BOOLEAN, " + KeysColumns.CAN_ENCRYPT + " BOOLEAN, " + + KeysColumns.CAN_AUTHENTICATE + " BOOLEAN, " + KeysColumns.IS_REVOKED + " BOOLEAN, " + KeysColumns.HAS_SECRET + " BOOLEAN, " @@ -214,21 +215,28 @@ public class KeychainDatabase extends SQLiteOpenHelper { // add has_secret for all who are upgrading from a beta version try { db.execSQL("ALTER TABLE keys ADD COLUMN has_secret BOOLEAN"); - } catch(Exception e){ + } catch (Exception e){ // never mind, the column probably already existed } // fall through case 2: // ECC support try { - db.execSQL("ALTER TABLE keys ADD COLUMN " + KeysColumns.KEY_CURVE_OID + " TEXT"); - } catch(Exception e){ + db.execSQL("ALTER TABLE keys ADD COLUMN key_curve_oid TEXT"); + } catch (Exception e){ // never mind, the column probably already existed } // fall through case 3: // better s2k detection, we need consolidate // fall through + case 4: + try { + db.execSQL("ALTER TABLE keys ADD COLUMN can_authenticate BOOLEAN"); + } catch (Exception e){ + // never mind, the column probably already existed + } + // fall through } // always do consolidate after upgrade diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java index 3cd70df7f..4e63656ec 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java @@ -251,6 +251,7 @@ public class KeychainProvider extends ContentProvider { projectionMap.put(KeyRings.CAN_CERTIFY, Tables.KEYS + "." + Keys.CAN_CERTIFY); projectionMap.put(KeyRings.CAN_ENCRYPT, Tables.KEYS + "." + Keys.CAN_ENCRYPT); projectionMap.put(KeyRings.CAN_SIGN, Tables.KEYS + "." + Keys.CAN_SIGN); + projectionMap.put(KeyRings.CAN_AUTHENTICATE, Tables.KEYS + "." + Keys.CAN_AUTHENTICATE); projectionMap.put(KeyRings.CREATION, Tables.KEYS + "." + Keys.CREATION); projectionMap.put(KeyRings.EXPIRY, Tables.KEYS + "." + Keys.EXPIRY); projectionMap.put(KeyRings.ALGORITHM, Tables.KEYS + "." + Keys.ALGORITHM); @@ -333,6 +334,16 @@ public class KeychainProvider extends ContentProvider { + " AND ( kS." + Keys.EXPIRY + " IS NULL OR kS." + Keys.EXPIRY + " >= " + new Date().getTime() / 1000 + " )" + ")" : "") + + (plist.contains(KeyRings.HAS_AUTHENTICATE) ? + " LEFT JOIN " + Tables.KEYS + " AS kS ON (" + +"kS." + Keys.MASTER_KEY_ID + + " = " + Tables.KEYS + "." + Keys.MASTER_KEY_ID + + " AND kS." + Keys.IS_REVOKED + " = 0" + + " AND kS." + Keys.CAN_AUTHENTICATE + " = 1" + + " AND kS." + Keys.HAS_SECRET + " > 1" + + " AND ( kS." + Keys.EXPIRY + " IS NULL OR kS." + Keys.EXPIRY + + " >= " + new Date().getTime() / 1000 + " )" + + ")" : "") + (plist.contains(KeyRings.HAS_CERTIFY) ? " LEFT JOIN " + Tables.KEYS + " AS kC ON (" +"kC." + Keys.MASTER_KEY_ID @@ -424,6 +435,7 @@ public class KeychainProvider extends ContentProvider { projectionMap.put(Keys.CAN_CERTIFY, Keys.CAN_CERTIFY); projectionMap.put(Keys.CAN_ENCRYPT, Keys.CAN_ENCRYPT); projectionMap.put(Keys.CAN_SIGN, Keys.CAN_SIGN); + projectionMap.put(Keys.CAN_AUTHENTICATE, Keys.CAN_AUTHENTICATE); projectionMap.put(Keys.HAS_SECRET, Keys.HAS_SECRET); projectionMap.put(Keys.CREATION, Keys.CREATION); projectionMap.put(Keys.EXPIRY, Keys.EXPIRY); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java index 8d790110d..3da685ff6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java @@ -356,10 +356,11 @@ public class ProviderHelper { values.put(Keys.ALGORITHM, key.getAlgorithm()); values.put(Keys.FINGERPRINT, key.getFingerprint()); - boolean c = key.canCertify(), e = key.canEncrypt(), s = key.canSign(); + boolean c = key.canCertify(), e = key.canEncrypt(), s = key.canSign(), a = key.canAuthenticate(); values.put(Keys.CAN_CERTIFY, c); values.put(Keys.CAN_ENCRYPT, e); values.put(Keys.CAN_SIGN, s); + values.put(Keys.CAN_AUTHENTICATE, a); values.put(Keys.IS_REVOKED, key.isRevoked()); if (masterKeyId == keyId) { if (c) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java index b377e2cc9..7bbd3eee3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui.adapter; import android.content.Context; import android.content.res.ColorStateList; import android.database.Cursor; +import android.graphics.PorterDuff; import android.graphics.Typeface; import android.support.v4.widget.CursorAdapter; import android.text.Spannable; @@ -62,6 +63,7 @@ public class SubkeysAdapter extends CursorAdapter { Keys.CAN_CERTIFY, Keys.CAN_ENCRYPT, Keys.CAN_SIGN, + Keys.CAN_AUTHENTICATE, Keys.IS_REVOKED, Keys.CREATION, Keys.EXPIRY, @@ -77,10 +79,11 @@ public class SubkeysAdapter extends CursorAdapter { private static final int INDEX_CAN_CERTIFY = 7; private static final int INDEX_CAN_ENCRYPT = 8; private static final int INDEX_CAN_SIGN = 9; - private static final int INDEX_IS_REVOKED = 10; - private static final int INDEX_CREATION = 11; - private static final int INDEX_EXPIRY = 12; - private static final int INDEX_FINGERPRINT = 13; + private static final int INDEX_CAN_AUTHENTICATE = 10; + private static final int INDEX_IS_REVOKED = 11; + private static final int INDEX_CREATION = 12; + private static final int INDEX_EXPIRY = 13; + private static final int INDEX_FINGERPRINT = 14; public SubkeysAdapter(Context context, Cursor c, int flags, SaveKeyringParcel saveKeyringParcel) { @@ -135,10 +138,11 @@ public class SubkeysAdapter extends CursorAdapter { TextView vKeyDetails = (TextView) view.findViewById(R.id.subkey_item_details); TextView vKeyExpiry = (TextView) view.findViewById(R.id.subkey_item_expiry); ImageView vCertifyIcon = (ImageView) view.findViewById(R.id.subkey_item_ic_certify); - ImageView vEncryptIcon = (ImageView) view.findViewById(R.id.subkey_item_ic_encrypt); ImageView vSignIcon = (ImageView) view.findViewById(R.id.subkey_item_ic_sign); - ImageView vRevokedIcon = (ImageView) view.findViewById(R.id.subkey_item_ic_revoked); + ImageView vEncryptIcon = (ImageView) view.findViewById(R.id.subkey_item_ic_encrypt); + ImageView vAuthenticateIcon = (ImageView) view.findViewById(R.id.subkey_item_ic_authenticate); ImageView vEditImage = (ImageView) view.findViewById(R.id.subkey_item_edit_image); + ImageView vStatus = (ImageView) view.findViewById(R.id.subkey_item_status); // not used: ImageView deleteImage = (ImageView) view.findViewById(R.id.subkey_item_delete_button); @@ -196,7 +200,7 @@ public class SubkeysAdapter extends CursorAdapter { vCertifyIcon.setVisibility(cursor.getInt(INDEX_CAN_CERTIFY) != 0 ? View.VISIBLE : View.GONE); vEncryptIcon.setVisibility(cursor.getInt(INDEX_CAN_ENCRYPT) != 0 ? View.VISIBLE : View.GONE); vSignIcon.setVisibility(cursor.getInt(INDEX_CAN_SIGN) != 0 ? View.VISIBLE : View.GONE); - // TODO: missing icon for authenticate + vAuthenticateIcon.setVisibility(cursor.getInt(INDEX_CAN_AUTHENTICATE) != 0 ? View.VISIBLE : View.GONE); boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0; @@ -245,22 +249,50 @@ public class SubkeysAdapter extends CursorAdapter { vKeyExpiry.setText(context.getString(R.string.label_expiry) + ": " + context.getString(R.string.none)); } - if (isRevoked) { - vRevokedIcon.setVisibility(View.VISIBLE); + // if key is expired or revoked, strike through text + boolean isInvalid = isRevoked || isExpired; + if (isInvalid) { + vStatus.setVisibility(View.VISIBLE); + + vKeyId.setText(FormattingUtils.strikeOutText(vKeyId.getText())); + vKeyDetails.setText(FormattingUtils.strikeOutText(vKeyDetails.getText())); + vKeyExpiry.setText(FormattingUtils.strikeOutText(vKeyExpiry.getText())); + + vCertifyIcon.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); + vSignIcon.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); + vEncryptIcon.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); + vAuthenticateIcon.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); + + if (isRevoked) { + vStatus.setImageResource(R.drawable.status_signature_revoked_cutout); + vStatus.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); + } else if (isExpired) { + vStatus.setImageResource(R.drawable.status_signature_expired_cutout); + vStatus.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); + } } else { + vStatus.setVisibility(View.GONE); + vKeyId.setTextColor(mDefaultTextColor); vKeyDetails.setTextColor(mDefaultTextColor); vKeyExpiry.setTextColor(mDefaultTextColor); - vRevokedIcon.setVisibility(View.GONE); - } - - // if key is expired or revoked, strike through text - boolean isInvalid = isRevoked || isExpired; - if (isInvalid) { - vKeyId.setText(FormattingUtils.strikeOutText(vKeyId.getText())); - vKeyDetails.setText(FormattingUtils.strikeOutText(vKeyDetails.getText())); - vKeyExpiry.setText(FormattingUtils.strikeOutText(vKeyExpiry.getText())); + vCertifyIcon.clearColorFilter(); + vSignIcon.clearColorFilter(); + vEncryptIcon.clearColorFilter(); + vAuthenticateIcon.clearColorFilter(); } vKeyId.setEnabled(!isInvalid); vKeyDetails.setEnabled(!isInvalid); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java index 009e4c620..a98471122 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAddedAdapter.java @@ -53,8 +53,9 @@ public class SubkeysAddedAdapter extends ArrayAdapter 0) { + holder.vAuthenticateIcon.setVisibility(View.VISIBLE); + } else { + holder.vAuthenticateIcon.setVisibility(View.GONE); + } return convertView; } diff --git a/OpenKeychain/src/main/res/drawable-hdpi/certify_small.png b/OpenKeychain/src/main/res/drawable-hdpi/certify_small.png deleted file mode 100644 index 9e54464ed..000000000 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/certify_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate.png new file mode 100644 index 000000000..9d4ed6e84 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_authenticate.png differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify.png new file mode 100644 index 000000000..e76393659 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_certify.png differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt.png new file mode 100644 index 000000000..3c2f8c09c Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_encrypt.png differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign.png b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign.png new file mode 100644 index 000000000..046424643 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/key_flag_sign.png differ diff --git a/OpenKeychain/src/main/res/drawable-hdpi/signed_small.png b/OpenKeychain/src/main/res/drawable-hdpi/signed_small.png deleted file mode 100644 index 54c4906e8..000000000 Binary files a/OpenKeychain/src/main/res/drawable-hdpi/signed_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-ldpi/encrypted_small.png b/OpenKeychain/src/main/res/drawable-ldpi/encrypted_small.png deleted file mode 100644 index 5e7294a4b..000000000 Binary files a/OpenKeychain/src/main/res/drawable-ldpi/encrypted_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-ldpi/signed_small.png b/OpenKeychain/src/main/res/drawable-ldpi/signed_small.png deleted file mode 100644 index 19d45f8da..000000000 Binary files a/OpenKeychain/src/main/res/drawable-ldpi/signed_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/certify_small.png b/OpenKeychain/src/main/res/drawable-mdpi/certify_small.png deleted file mode 100644 index 575b2d866..000000000 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/certify_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/encrypted_small.png b/OpenKeychain/src/main/res/drawable-mdpi/encrypted_small.png deleted file mode 100644 index bcd8cfc8e..000000000 Binary files a/OpenKeychain/src/main/res/drawable-mdpi/encrypted_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate.png new file mode 100644 index 000000000..ed1ba24d2 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_authenticate.png differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify.png new file mode 100644 index 000000000..d54d461fa Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_certify.png differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt.png new file mode 100644 index 000000000..81c1b3dfa Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_encrypt.png differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign.png b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign.png new file mode 100644 index 000000000..9afc43901 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/key_flag_sign.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate.png new file mode 100644 index 000000000..8d36d7202 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_authenticate.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify.png new file mode 100644 index 000000000..01a74bcc0 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_certify.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt.png new file mode 100644 index 000000000..ff07bd0a4 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_encrypt.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign.png new file mode 100644 index 000000000..b8002162a Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/key_flag_sign.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate.png new file mode 100644 index 000000000..d786dc72f Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_authenticate.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify.png new file mode 100644 index 000000000..4bb97f992 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_certify.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt.png new file mode 100644 index 000000000..fe0c8e41b Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_encrypt.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign.png new file mode 100644 index 000000000..51ab367a9 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/key_flag_sign.png differ diff --git a/OpenKeychain/src/main/res/drawable/certify_small.png b/OpenKeychain/src/main/res/drawable/certify_small.png deleted file mode 100644 index 575b2d866..000000000 Binary files a/OpenKeychain/src/main/res/drawable/certify_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable/encrypted_small.png b/OpenKeychain/src/main/res/drawable/encrypted_small.png deleted file mode 100644 index 7f4ab803f..000000000 Binary files a/OpenKeychain/src/main/res/drawable/encrypted_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable/key_small.png b/OpenKeychain/src/main/res/drawable/key_small.png deleted file mode 100644 index 121803508..000000000 Binary files a/OpenKeychain/src/main/res/drawable/key_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable/revoked_key_small.png b/OpenKeychain/src/main/res/drawable/revoked_key_small.png deleted file mode 100644 index f9ed0596f..000000000 Binary files a/OpenKeychain/src/main/res/drawable/revoked_key_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/drawable/signed_small.png b/OpenKeychain/src/main/res/drawable/signed_small.png deleted file mode 100644 index 590220281..000000000 Binary files a/OpenKeychain/src/main/res/drawable/signed_small.png and /dev/null differ diff --git a/OpenKeychain/src/main/res/layout/view_key_subkey_item.xml b/OpenKeychain/src/main/res/layout/view_key_subkey_item.xml index cf4b82078..b2875b9e6 100644 --- a/OpenKeychain/src/main/res/layout/view_key_subkey_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_subkey_item.xml @@ -6,6 +6,16 @@ android:orientation="horizontal" android:singleLine="true"> + + - - @@ -76,15 +79,23 @@ android:id="@+id/subkey_item_ic_sign" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/signed_small" + android:src="@drawable/key_flag_sign" android:layout_marginLeft="8dp" android:layout_gravity="center_vertical" /> + + diff --git a/Resources/graphics/key.svg b/Resources/graphics/key.svg deleted file mode 100644 index 0fc167869..000000000 --- a/Resources/graphics/key.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - key - Mar 2011 - - - Franziska Sponsel - - - - - Franziska Sponsel - - - - - RRZE - - - - - key - lock - chain - secure - save - - - - - Beate Kaspar, Hendrik Eggers - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/graphics/key_flag_authenticate.svg b/Resources/graphics/key_flag_authenticate.svg new file mode 100644 index 000000000..045abdd1e --- /dev/null +++ b/Resources/graphics/key_flag_authenticate.svg @@ -0,0 +1,487 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/graphics/key_flag_certify.svg b/Resources/graphics/key_flag_certify.svg new file mode 100644 index 000000000..d27c83313 --- /dev/null +++ b/Resources/graphics/key_flag_certify.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +image/svg+xmlOpencliparttango application certificate2010-04-02T18:54:10An icon from Tango Project. Since version 0.8.90 Tango Project icons are Public Domain: https://openclipart.org/detail/36067/tango-application-certificate-by-warszawiankawarszawiankaexternalsourceiconribbonsealtango diff --git a/Resources/graphics/key_flag_encrypt.svg b/Resources/graphics/key_flag_encrypt.svg new file mode 100644 index 000000000..4c08e39aa --- /dev/null +++ b/Resources/graphics/key_flag_encrypt.svg @@ -0,0 +1,283 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/graphics/key_flag_sign.svg b/Resources/graphics/key_flag_sign.svg new file mode 100644 index 000000000..196638033 --- /dev/null +++ b/Resources/graphics/key_flag_sign.svg @@ -0,0 +1,1904 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + tango style pen + 2010-03-29T09:24:52 + This is a remix of <a href="http://www.openclipart.org/detail/35401"> tango applications office </a> icon. + https://openclipart.org/detail/35443/tango-style-pen-by-warszawianka + + + warszawianka + + + + + icon + pen + remix + tango + writing + + + + + + + + + + + diff --git a/Resources/graphics/originals/tango or oxygen/1270234450.svg b/Resources/graphics/originals/tango or oxygen/1270234450.svg new file mode 100644 index 000000000..d27c83313 --- /dev/null +++ b/Resources/graphics/originals/tango or oxygen/1270234450.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +image/svg+xmlOpencliparttango application certificate2010-04-02T18:54:10An icon from Tango Project. Since version 0.8.90 Tango Project icons are Public Domain: https://openclipart.org/detail/36067/tango-application-certificate-by-warszawiankawarszawiankaexternalsourceiconribbonsealtango diff --git a/Resources/graphics/originals/tango or oxygen/application-pgp-signature.svg b/Resources/graphics/originals/tango or oxygen/application-pgp-signature.svg new file mode 100644 index 000000000..1d4d7639a --- /dev/null +++ b/Resources/graphics/originals/tango or oxygen/application-pgp-signature.svg @@ -0,0 +1,320 @@ + + + + + + Oxygen team + + + + unsorted + + + + + Open Clip Art Library, Source: Oxygen Icons, Source: Oxygen Icons, Source: Oxygen Icons, Source: Oxygen Icons + + + + + + + + + + + + + + image/svg+xml + + + en + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/graphics/originals/tango or oxygen/application-pkcs7-signature.svg b/Resources/graphics/originals/tango or oxygen/application-pkcs7-signature.svg new file mode 100644 index 000000000..1d4d7639a --- /dev/null +++ b/Resources/graphics/originals/tango or oxygen/application-pkcs7-signature.svg @@ -0,0 +1,320 @@ + + + + + + Oxygen team + + + + unsorted + + + + + Open Clip Art Library, Source: Oxygen Icons, Source: Oxygen Icons, Source: Oxygen Icons, Source: Oxygen Icons + + + + + + + + + + + + + + image/svg+xml + + + en + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/graphics/originals/tango or oxygen/osa_id_card.svg b/Resources/graphics/originals/tango or oxygen/osa_id_card.svg new file mode 100644 index 000000000..c31482615 --- /dev/null +++ b/Resources/graphics/originals/tango or oxygen/osa_id_card.svg @@ -0,0 +1,433 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/graphics/originals/tango or oxygen/osa_padlock.svg b/Resources/graphics/originals/tango or oxygen/osa_padlock.svg new file mode 100644 index 000000000..652d905c1 --- /dev/null +++ b/Resources/graphics/originals/tango or oxygen/osa_padlock.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Resources/graphics/originals/tango or oxygen/tango-style-pen.svg b/Resources/graphics/originals/tango or oxygen/tango-style-pen.svg new file mode 100644 index 000000000..4f3486dd1 --- /dev/null +++ b/Resources/graphics/originals/tango or oxygen/tango-style-pen.svg @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + tango style pen + 2010-03-29T09:24:52 + This is a remix of <a href="http://www.openclipart.org/detail/35401"> tango applications office </a> icon. + https://openclipart.org/detail/35443/tango-style-pen-by-warszawianka + + + warszawianka + + + + + icon + pen + remix + tango + writing + + + + + + + + + + + diff --git a/Resources/graphics/revokedKey.png b/Resources/graphics/revokedKey.png deleted file mode 100644 index eec2bca99..000000000 Binary files a/Resources/graphics/revokedKey.png and /dev/null differ diff --git a/Resources/graphics/revokedKey.svg b/Resources/graphics/revokedKey.svg deleted file mode 100644 index c7f3f2f76..000000000 --- a/Resources/graphics/revokedKey.svg +++ /dev/null @@ -1,14909 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - email - send - mail - user - not available - - - - Sept 2009 - - - Franziska Sponsel - - - - - Franziska Sponsel - - - - - RRZE - - - - - Beate Kaspar, Hendrik Eggers - - - uses < http://ftp.uni-erlangen.de/pub/rrze/tango/rrze-icon-set/tango/scalable/categories/email.svg>, < http://ftp.uni-erlangen.de/pub/rrze/tango/rrze-icon-set/tango/scalable/actions/action-undo.svg> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/graphics/update-drawables.sh b/Resources/graphics/update-drawables.sh index 4b6a0a03b..b121ef23e 100755 --- a/Resources/graphics/update-drawables.sh +++ b/Resources/graphics/update-drawables.sh @@ -55,6 +55,15 @@ inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME%%.*}.png" $NAME inkscape -w 64 -h 64 -e "$XXDPI_DIR/${NAME%%.*}.png" $NAME done +for NAME in key_flag*.svg +do +echo $NAME +inkscape -w 24 -h 24 -e "$MDPI_DIR/${NAME%%.*}.png" $NAME +inkscape -w 32 -h 32 -e "$HDPI_DIR/${NAME%%.*}.png" $NAME +inkscape -w 48 -h 48 -e "$XDPI_DIR/${NAME%%.*}.png" $NAME +inkscape -w 64 -h 64 -e "$XXDPI_DIR/${NAME%%.*}.png" $NAME +done + for NAME in "create_key_robot" do echo $NAME