diff options
236 files changed, 1374 insertions, 513 deletions
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index 484c826f5..8d3518a81 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -53,10 +53,10 @@ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.NFC" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> - <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> - <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> - <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> - <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/> + <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> + <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> + <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> + <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> @@ -84,17 +84,23 @@ android:name=".ui.FirstTimeActivity" android:configChanges="orientation|screenSize|keyboardHidden|keyboard" android:label="@string/app_name" - android:windowSoftInputMode="stateHidden" /> + android:windowSoftInputMode="stateAlwaysHidden" /> <activity android:name=".ui.CreateKeyActivity" android:configChanges="orientation|screenSize|keyboardHidden|keyboard" - android:label="@string/title_create_key" - android:windowSoftInputMode="stateHidden" /> + android:label="@string/title_create_key"> + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".ui.KeyListActivity" /> + </activity> <activity android:name=".ui.EditKeyActivity" android:configChanges="orientation|screenSize|keyboardHidden|keyboard" - android:label="@string/title_edit_key" - android:windowSoftInputMode="stateHidden" /> + android:label="@string/title_edit_key" /> + <activity + android:name=".ui.QrCodeActivity" + android:configChanges="orientation|screenSize|keyboardHidden|keyboard" + android:label="@string/share_qr_code_dialog_title" /> <activity android:name=".ui.ViewKeyActivity" android:configChanges="orientation|screenSize|keyboardHidden|keyboard" @@ -464,24 +470,24 @@ <service android:name=".service.DummyAccountService"> <intent-filter> - <action android:name="android.accounts.AccountAuthenticator"/> + <action android:name="android.accounts.AccountAuthenticator" /> </intent-filter> <meta-data - android:name="android.accounts.AccountAuthenticator" - android:resource="@xml/account_desc"/> + android:name="android.accounts.AccountAuthenticator" + android:resource="@xml/account_desc" /> </service> <service android:name=".service.ContactSyncAdapterService"> <intent-filter> - <action android:name="android.content.SyncAdapter"/> + <action android:name="android.content.SyncAdapter" /> </intent-filter> <meta-data - android:name="android.content.SyncAdapter" - android:resource="@xml/sync_adapter_desc"/> + android:name="android.content.SyncAdapter" + android:resource="@xml/sync_adapter_desc" /> <meta-data - android:name="android.provider.CONTACTS_STRUCTURE" - android:resource="@xml/custom_pgp_contacts_structure"/> + android:name="android.provider.CONTACTS_STRUCTURE" + android:resource="@xml/custom_pgp_contacts_structure" /> </service> </application> diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java index c498bad0b..e9d7e5958 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -422,7 +422,8 @@ public class PgpKeyOperation { } // if this is~ the/a primary user id - if (currentCert.hasSubpackets() && currentCert.getHashedSubPackets().isPrimaryUserID()) { + if (currentCert.getHashedSubPackets() != null + && currentCert.getHashedSubPackets().isPrimaryUserID()) { // if it's the one we want, just leave it as is if (userId.equals(saveParcel.mChangePrimaryUserId)) { ok = true; @@ -749,7 +750,7 @@ public class PgpKeyOperation { int flags = 0; //noinspection unchecked for(PGPSignature sig : new IterableIterator<PGPSignature>(key.getSignatures())) { - if (!sig.hasSubpackets()) { + if (sig.getHashedSubPackets() == null) { continue; } flags |= sig.getHashedSubPackets().getKeyFlags(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java index 8838075cd..de8c683ff 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java @@ -513,7 +513,8 @@ public class UncachedKeyRing { } // if this certificate says it allows signing for the key - if (zert.getHashedSubPackets().hasSubpacket(SignatureSubpacketTags.KEY_FLAGS)) { + if (zert.getHashedSubPackets() != null && + zert.getHashedSubPackets().hasSubpacket(SignatureSubpacketTags.KEY_FLAGS)) { int flags = ((KeyFlags) zert.getHashedSubPackets() .getSubpacket(SignatureSubpacketTags.KEY_FLAGS)).getFlags(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedSignature.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedSignature.java index df19930c4..28e4c51d6 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedSignature.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/WrappedSignature.java @@ -63,13 +63,17 @@ public class WrappedSignature { } try { PGPSignatureList list; - list = mSig.getHashedSubPackets().getEmbeddedSignatures(); - for(int i = 0; i < list.size(); i++) { - sigs.add(new WrappedSignature(list.get(i))); + if (mSig.getHashedSubPackets() != null) { + list = mSig.getHashedSubPackets().getEmbeddedSignatures(); + for (int i = 0; i < list.size(); i++) { + sigs.add(new WrappedSignature(list.get(i))); + } } - list = mSig.getUnhashedSubPackets().getEmbeddedSignatures(); - for(int i = 0; i < list.size(); i++) { - sigs.add(new WrappedSignature(list.get(i))); + if (mSig.getUnhashedSubPackets() != null) { + list = mSig.getUnhashedSubPackets().getEmbeddedSignatures(); + for (int i = 0; i < list.size(); i++) { + sigs.add(new WrappedSignature(list.get(i))); + } } } catch (PGPException e) { // no matter @@ -97,6 +101,9 @@ public class WrappedSignature { if(!isRevocation()) { throw new PgpGeneralException("Not a revocation signature."); } + if (mSig.getHashedSubPackets() == null) { + return null; + } SignatureSubpacket p = mSig.getHashedSubPackets().getSubpacket( SignatureSubpacketTags.REVOCATION_REASON); // For some reason, this is missing in SignatureSubpacketInputStream:146 @@ -205,7 +212,7 @@ public class WrappedSignature { } public boolean isLocal() { - if (!mSig.hasSubpackets() + if (mSig.getHashedSubPackets() == null || !mSig.getHashedSubPackets().hasSubpacket(SignatureSubpacketTags.EXPORTABLE)) { return false; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java index 13d9b497f..cfb3d50f4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java @@ -18,9 +18,9 @@ package org.sufficientlysecure.keychain.service; import android.app.AlarmManager; +import android.app.Notification; import android.app.PendingIntent; import android.app.Service; -import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -70,7 +70,7 @@ public class PassphraseCacheService extends Service { public static final String EXTRA_KEY_ID = "key_id"; public static final String EXTRA_PASSPHRASE = "passphrase"; public static final String EXTRA_MESSENGER = "messenger"; - public static final String EXTRA_USERID = "userid"; + public static final String EXTRA_USER_ID = "user_id"; private static final int REQUEST_ID = 0; private static final long DEFAULT_TTL = 15; @@ -102,7 +102,7 @@ public class PassphraseCacheService extends Service { intent.putExtra(EXTRA_TTL, Preferences.getPreferences(context).getPassphraseCacheTtl()); intent.putExtra(EXTRA_PASSPHRASE, passphrase); intent.putExtra(EXTRA_KEY_ID, keyId); - intent.putExtra(EXTRA_USERID, primaryUserId); + intent.putExtra(EXTRA_USER_ID, primaryUserId); context.startService(intent); } @@ -201,18 +201,18 @@ public class PassphraseCacheService extends Service { // get cached passphrase CachedPassphrase cachedPassphrase = mPassphraseCache.get(keyId); if (cachedPassphrase == null) { - Log.d(Constants.TAG, "PassphraseCacheService Passphrase not (yet) cached, returning null"); + Log.d(Constants.TAG, "PassphraseCacheService: Passphrase not (yet) cached, returning null"); // not really an error, just means the passphrase is not cached but not empty either return null; } // set it again to reset the cache life cycle - Log.d(Constants.TAG, "PassphraseCacheService Cache passphrase again when getting it!"); + Log.d(Constants.TAG, "PassphraseCacheService: Cache passphrase again when getting it!"); addCachedPassphrase(this, keyId, cachedPassphrase.getPassphrase(), cachedPassphrase.getPrimaryUserID()); return cachedPassphrase.getPassphrase(); } catch (ProviderHelper.NotFoundException e) { - Log.e(Constants.TAG, "PassphraseCacheService Passphrase for unknown key was requested!"); + Log.e(Constants.TAG, "PassphraseCacheService: Passphrase for unknown key was requested!"); return null; } } @@ -229,7 +229,7 @@ public class PassphraseCacheService extends Service { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - Log.d(Constants.TAG, "PassphraseCacheService Received broadcast..."); + Log.d(Constants.TAG, "PassphraseCacheService: Received broadcast..."); if (action.equals(BROADCAST_ACTION_PASSPHRASE_CACHE_SERVICE)) { long keyId = intent.getLongExtra(EXTRA_KEY_ID, -1); @@ -254,10 +254,8 @@ public class PassphraseCacheService extends Service { private static PendingIntent buildIntent(Context context, long keyId) { Intent intent = new Intent(BROADCAST_ACTION_PASSPHRASE_CACHE_SERVICE); intent.putExtra(EXTRA_KEY_ID, keyId); - PendingIntent sender = PendingIntent.getBroadcast(context, REQUEST_ID, intent, + return PendingIntent.getBroadcast(context, REQUEST_ID, intent, PendingIntent.FLAG_CANCEL_CURRENT); - - return sender; } /** @@ -276,11 +274,12 @@ public class PassphraseCacheService extends Service { long keyId = intent.getLongExtra(EXTRA_KEY_ID, -1); String passphrase = intent.getStringExtra(EXTRA_PASSPHRASE); - String primaryUserID = intent.getStringExtra(EXTRA_USERID); + String primaryUserID = intent.getStringExtra(EXTRA_USER_ID); Log.d(Constants.TAG, - "PassphraseCacheService Received ACTION_PASSPHRASE_CACHE_ADD intent in onStartCommand() with keyId: " - + keyId + ", ttl: " + ttl + ", usrId: " + primaryUserID); + "PassphraseCacheService: Received ACTION_PASSPHRASE_CACHE_ADD intent in onStartCommand() with keyId: " + + keyId + ", ttl: " + ttl + ", usrId: " + primaryUserID + ); // add keyId, passphrase and primary user id to memory mPassphraseCache.put(keyId, new CachedPassphrase(passphrase, primaryUserID)); @@ -292,8 +291,7 @@ public class PassphraseCacheService extends Service { am.set(AlarmManager.RTC_WAKEUP, triggerTime, buildIntent(this, keyId)); } - updateNotifications(); - + updateService(); } else if (ACTION_PASSPHRASE_CACHE_GET.equals(intent.getAction())) { long keyId = intent.getLongExtra(EXTRA_KEY_ID, -1); Messenger messenger = intent.getParcelableExtra(EXTRA_MESSENGER); @@ -307,21 +305,21 @@ public class PassphraseCacheService extends Service { try { messenger.send(msg); } catch (RemoteException e) { - Log.e(Constants.TAG, "PassphraseCacheService Sending message failed", e); + Log.e(Constants.TAG, "PassphraseCacheService: Sending message failed", e); } } else if (ACTION_PASSPHRASE_CACHE_CLEAR.equals(intent.getAction())) { AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); // Stop all ttl alarms - for(int i = 0; i < mPassphraseCache.size(); i++) { + for (int i = 0; i < mPassphraseCache.size(); i++) { am.cancel(buildIntent(this, mPassphraseCache.keyAt(i))); } mPassphraseCache.clear(); - updateNotifications(); + updateService(); } else { - Log.e(Constants.TAG, "PassphraseCacheService Intent or Intent Action not supported!"); + Log.e(Constants.TAG, "PassphraseCacheService: Intent or Intent Action not supported!"); } } @@ -340,79 +338,74 @@ public class PassphraseCacheService extends Service { Log.d(Constants.TAG, "PassphraseCacheService Timeout of keyId " + keyId + ", removed from memory!"); - // stop whole service if no cached passphrases remaining - if (mPassphraseCache.size() == 0) { - Log.d(Constants.TAG, "PassphraseCacheServic No passphrases remaining in memory, stopping service!"); - stopSelf(); - } - - updateNotifications(); + updateService(); } - private void updateNotifications() { - NotificationManager notificationManager = - (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + private void updateService() { + if (mPassphraseCache.size() > 0) { + startForeground(NOTIFICATION_ID, getNotification()); + } else { + // stop whole service if no cached passphrases remaining + Log.d(Constants.TAG, "PassphraseCacheService: No passphrases remaining in memory, stopping service!"); + stopForeground(true); + } + } - if(mPassphraseCache.size() > 0) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - NotificationCompat.Builder builder = new NotificationCompat.Builder(this); + private Notification getNotification() { + NotificationCompat.Builder builder = new NotificationCompat.Builder(this); - builder.setSmallIcon(R.drawable.ic_launcher) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + builder.setSmallIcon(R.drawable.ic_launcher) .setContentTitle(getString(R.string.app_name)) - .setContentText(String.format(getString(R.string.passp_cache_notif_n_keys), mPassphraseCache.size())); + .setContentText(String.format(getString(R.string.passp_cache_notif_n_keys), + mPassphraseCache.size())); - NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); + NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); - inboxStyle.setBigContentTitle(getString(R.string.passp_cache_notif_keys)); + inboxStyle.setBigContentTitle(getString(R.string.passp_cache_notif_keys)); - // Moves events into the big view - for (int i = 0; i < mPassphraseCache.size(); i++) { - inboxStyle.addLine(mPassphraseCache.valueAt(i).getPrimaryUserID()); - } + // Moves events into the big view + for (int i = 0; i < mPassphraseCache.size(); i++) { + inboxStyle.addLine(mPassphraseCache.valueAt(i).getPrimaryUserID()); + } - // Moves the big view style object into the notification object. - builder.setStyle(inboxStyle); + // Moves the big view style object into the notification object. + builder.setStyle(inboxStyle); - // Add purging action - Intent intent = new Intent(getApplicationContext(), PassphraseCacheService.class); - intent.setAction(ACTION_PASSPHRASE_CACHE_CLEAR); - builder.addAction( + // Add purging action + Intent intent = new Intent(getApplicationContext(), PassphraseCacheService.class); + intent.setAction(ACTION_PASSPHRASE_CACHE_CLEAR); + builder.addAction( R.drawable.abc_ic_clear_normal, getString(R.string.passp_cache_notif_clear), PendingIntent.getService( - getApplicationContext(), - 0, - intent, - PendingIntent.FLAG_UPDATE_CURRENT + getApplicationContext(), + 0, + intent, + PendingIntent.FLAG_UPDATE_CURRENT ) - ); - - notificationManager.notify(NOTIFICATION_ID, builder.build()); - } else { // Fallback, since expandable notifications weren't available back then - NotificationCompat.Builder builder = new NotificationCompat.Builder(this); - - builder.setSmallIcon(R.drawable.ic_launcher) - .setContentTitle(String.format(getString(R.string.passp_cache_notif_n_keys, mPassphraseCache.size()))) + ); + } else { + // Fallback, since expandable notifications weren't available back then + builder.setSmallIcon(R.drawable.ic_launcher) + .setContentTitle(String.format(getString(R.string.passp_cache_notif_n_keys, + mPassphraseCache.size()))) .setContentText(getString(R.string.passp_cache_notif_click_to_clear)); - Intent intent = new Intent(getApplicationContext(), PassphraseCacheService.class); - intent.setAction(ACTION_PASSPHRASE_CACHE_CLEAR); + Intent intent = new Intent(getApplicationContext(), PassphraseCacheService.class); + intent.setAction(ACTION_PASSPHRASE_CACHE_CLEAR); - builder.setContentIntent( + builder.setContentIntent( PendingIntent.getService( - getApplicationContext(), - 0, - intent, - PendingIntent.FLAG_UPDATE_CURRENT + getApplicationContext(), + 0, + intent, + PendingIntent.FLAG_UPDATE_CURRENT ) - ); - - notificationManager.notify(NOTIFICATION_ID, builder.build()); - } - - } else { - notificationManager.cancel(NOTIFICATION_ID); + ); } + + return builder.build(); } @Override @@ -455,6 +448,7 @@ public class PassphraseCacheService extends Service { public String getPrimaryUserID() { return primaryUserID; } + public String getPassphrase() { return passphrase; } @@ -462,6 +456,7 @@ public class PassphraseCacheService extends Service { public void setPrimaryUserID(String primaryUserID) { this.primaryUserID = primaryUserID; } + public void setPassphrase(String passphrase) { this.passphrase = passphrase; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java index 301b4ad40..5e20b24b5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyActivity.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui; import android.app.ProgressDialog; import android.content.Intent; import android.database.Cursor; +import android.graphics.PorterDuff; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -37,6 +38,7 @@ import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.ImageView; import android.widget.ListView; import android.widget.Spinner; import android.widget.TextView; @@ -64,7 +66,8 @@ import java.util.ArrayList; */ public class CertifyKeyActivity extends ActionBarActivity implements SelectSecretKeyLayoutFragment.SelectSecretKeyCallback, LoaderManager.LoaderCallbacks<Cursor> { - private View mSignButton; + private View mCertifyButton; + private ImageView mActionCertifyImage; private CheckBox mUploadKeyCheckbox; private Spinner mSelectKeyserverSpinner; @@ -88,10 +91,19 @@ public class CertifyKeyActivity extends ActionBarActivity implements mSelectKeyFragment = (SelectSecretKeyLayoutFragment) getSupportFragmentManager() .findFragmentById(R.id.sign_key_select_key_fragment); + mSelectKeyserverSpinner = (Spinner) findViewById(R.id.upload_key_keyserver); + mUploadKeyCheckbox = (CheckBox) findViewById(R.id.sign_key_upload_checkbox); + mCertifyButton = findViewById(R.id.certify_key_certify_button); + mActionCertifyImage = (ImageView) findViewById(R.id.certify_key_action_certify_image); + mUserIds = (ListView) findViewById(R.id.view_key_user_ids); + + // make certify image gray, like action icons + mActionCertifyImage.setColorFilter(getResources().getColor(R.color.tertiary_text_light), + PorterDuff.Mode.SRC_IN); + mSelectKeyFragment.setCallback(this); mSelectKeyFragment.setFilterCertify(true); - mSelectKeyserverSpinner = (Spinner) findViewById(R.id.upload_key_keyserver); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, Preferences.getPreferences(this) .getKeyServers() @@ -99,7 +111,6 @@ public class CertifyKeyActivity extends ActionBarActivity implements adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSelectKeyserverSpinner.setAdapter(adapter); - mUploadKeyCheckbox = (CheckBox) findViewById(R.id.sign_key_upload_checkbox); if (!mUploadKeyCheckbox.isChecked()) { mSelectKeyserverSpinner.setEnabled(false); } else { @@ -118,8 +129,7 @@ public class CertifyKeyActivity extends ActionBarActivity implements } }); - mSignButton = findViewById(R.id.sign_key_sign_button); - mSignButton.setOnClickListener(new OnClickListener() { + mCertifyButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -141,7 +151,6 @@ public class CertifyKeyActivity extends ActionBarActivity implements } Log.e(Constants.TAG, "uri: " + mDataUri); - mUserIds = (ListView) findViewById(R.id.view_key_user_ids); mUserIdsAdapter = new UserIdsAdapter(this, null, 0, true); mUserIds.setAdapter(mUserIdsAdapter); @@ -230,7 +239,8 @@ public class CertifyKeyActivity extends ActionBarActivity implements startSigning(); } } - }); + } + ); // bail out; need to wait until the user has entered the passphrase before trying again return; } else { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java index fe1b7e688..3cf89f6a4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.os.Message; import android.os.Messenger; @@ -31,7 +32,11 @@ import android.view.View; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; +import android.widget.CheckBox; import android.widget.EditText; +import android.widget.Spinner; + +import com.devspark.appmsg.AppMsg; import org.spongycastle.bcpg.sig.KeyFlags; import org.sufficientlysecure.keychain.Constants; @@ -48,7 +53,8 @@ public class CreateKeyActivity extends ActionBarActivity { AutoCompleteTextView mNameEdit; AutoCompleteTextView mEmailEdit; EditText mPassphraseEdit; - Button mCreateButton; + View mCreateButton; + CheckBox mUploadCheckbox; @Override protected void onCreate(Bundle savedInstanceState) { @@ -59,7 +65,8 @@ public class CreateKeyActivity extends ActionBarActivity { mNameEdit = (AutoCompleteTextView) findViewById(R.id.name); mEmailEdit = (AutoCompleteTextView) findViewById(R.id.email); mPassphraseEdit = (EditText) findViewById(R.id.passphrase); - mCreateButton = (Button) findViewById(R.id.create_key_button); + mCreateButton = findViewById(R.id.create_key_button); + mUploadCheckbox = (CheckBox) findViewById(R.id.create_key_upload); mEmailEdit.setThreshold(1); // Start working from first character mEmailEdit.setAdapter( @@ -134,10 +141,15 @@ public class CreateKeyActivity extends ActionBarActivity { // handle messages by standard KeychainIntentServiceHandler first super.handleMessage(message); - if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) { - CreateKeyActivity.this.setResult(RESULT_OK); - CreateKeyActivity.this.finish(); - } + // TODO +// if (mUploadCheckbox.isChecked()) { +// uploadKey(); +// } else { + if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) { + CreateKeyActivity.this.setResult(RESULT_OK); + CreateKeyActivity.this.finish(); + } +// } } }; @@ -166,6 +178,54 @@ public class CreateKeyActivity extends ActionBarActivity { startService(intent); } + private void uploadKey() { + // Send all information needed to service to upload key in other thread + Intent intent = new Intent(this, KeychainIntentService.class); + + intent.setAction(KeychainIntentService.ACTION_UPLOAD_KEYRING); + + // set data uri as path to keyring + // TODO +// Uri blobUri = KeychainContract.KeyRingData.buildPublicKeyRingUri(mDataUri); +// intent.setData(blobUri); + + // fill values for this action + Bundle data = new Bundle(); + + Spinner keyServer = (Spinner) findViewById(R.id.upload_key_keyserver); + String server = (String) keyServer.getSelectedItem(); + data.putString(KeychainIntentService.UPLOAD_KEY_SERVER, server); + + intent.putExtra(KeychainIntentService.EXTRA_DATA, data); + + // Message is received after uploading is done in KeychainIntentService + KeychainIntentServiceHandler saveHandler = new KeychainIntentServiceHandler(this, + getString(R.string.progress_exporting), ProgressDialog.STYLE_HORIZONTAL) { + public void handleMessage(Message message) { + // handle messages by standard KeychainIntentServiceHandler first + super.handleMessage(message); + + if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) { + AppMsg.makeText(CreateKeyActivity.this, R.string.key_send_success, + AppMsg.STYLE_INFO).show(); + + CreateKeyActivity.this.setResult(RESULT_OK); + CreateKeyActivity.this.finish(); + } + } + }; + + // Create a new Messenger for the communication back + Messenger messenger = new Messenger(saveHandler); + intent.putExtra(KeychainIntentService.EXTRA_MESSENGER, messenger); + + // show progress dialog + saveHandler.showProgressDialog(this); + + // start service with intent + startService(intent); + } + /** * Checks if text of given EditText is not empty. If it is empty an error is * set and the EditText gets the focus. @@ -177,7 +237,7 @@ public class CreateKeyActivity extends ActionBarActivity { private static boolean isEditTextNotEmpty(Context context, EditText editText) { boolean output = true; if (editText.getText().toString().length() == 0) { - editText.setError("empty!"); + editText.setError(context.getString(R.string.create_key_empty)); editText.requestFocus(); output = false; } else { 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 6ff8d421b..345e38a0e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptFileFragment.java @@ -57,7 +57,7 @@ public class EncryptFileFragment extends Fragment { public static final String ARG_FILENAME = "filename"; public static final String ARG_ASCII_ARMOR = "ascii_armor"; - private static final int RESULT_CODE_FILE = 0x00007003; + private static final int REQUEST_CODE_FILE = 0x00007003; private EncryptActivityInterface mEncryptInterface; @@ -108,10 +108,10 @@ public class EncryptFileFragment extends Fragment { mBrowse.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (Constants.KITKAT) { - FileHelper.openDocument(EncryptFileFragment.this, mInputUri, "*/*", RESULT_CODE_FILE); + FileHelper.openDocument(EncryptFileFragment.this, mInputUri, "*/*", REQUEST_CODE_FILE); } else { FileHelper.openFile(EncryptFileFragment.this, mFilename.getText().toString(), "*/*", - RESULT_CODE_FILE); + REQUEST_CODE_FILE); } } }); @@ -389,7 +389,7 @@ public class EncryptFileFragment extends Fragment { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { - case RESULT_CODE_FILE: { + case REQUEST_CODE_FILE: { if (resultCode == Activity.RESULT_OK && data != null) { if (Constants.KITKAT) { mInputUri = data.getData(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/FirstTimeActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/FirstTimeActivity.java index 4271b2d5a..5f3f170a1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/FirstTimeActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/FirstTimeActivity.java @@ -22,16 +22,19 @@ import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.view.Window; -import android.widget.Button; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.Preferences; +import org.sufficientlysecure.keychain.util.Log; public class FirstTimeActivity extends ActionBarActivity { - Button mCreateKey; - Button mImportKey; - Button mSkipSetup; + View mCreateKey; + View mImportKey; + View mSkipSetup; + + public static final int REQUEST_CODE_CREATE_OR_IMPORT_KEY = 0x00007012; @Override protected void onCreate(Bundle savedInstanceState) { @@ -41,9 +44,9 @@ public class FirstTimeActivity extends ActionBarActivity { setContentView(R.layout.first_time_activity); - mCreateKey = (Button) findViewById(R.id.first_time_create_key); - mImportKey = (Button) findViewById(R.id.first_time_import_key); - mSkipSetup = (Button) findViewById(R.id.first_time_cancel); + mCreateKey = findViewById(R.id.first_time_create_key); + mImportKey = findViewById(R.id.first_time_import_key); + mSkipSetup = findViewById(R.id.first_time_cancel); mSkipSetup.setOnClickListener(new View.OnClickListener() { @Override @@ -57,7 +60,7 @@ public class FirstTimeActivity extends ActionBarActivity { public void onClick(View v) { Intent intent = new Intent(FirstTimeActivity.this, ImportKeysActivity.class); intent.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE_AND_RETURN); - startActivityForResult(intent, 1); + startActivityForResult(intent, REQUEST_CODE_CREATE_OR_IMPORT_KEY); } }); @@ -65,7 +68,7 @@ public class FirstTimeActivity extends ActionBarActivity { @Override public void onClick(View v) { Intent intent = new Intent(FirstTimeActivity.this, CreateKeyActivity.class); - startActivityForResult(intent, 1); + startActivityForResult(intent, REQUEST_CODE_CREATE_OR_IMPORT_KEY); } }); @@ -75,8 +78,12 @@ public class FirstTimeActivity extends ActionBarActivity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - finishSetup(); + if (requestCode == REQUEST_CODE_CREATE_OR_IMPORT_KEY) { + if (resultCode == RESULT_OK) { + finishSetup(); + } + } else { + Log.e(Constants.TAG, "No valid request code!"); } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java index aaf9f7cbf..c74f4c96c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java @@ -108,6 +108,8 @@ public class KeyListActivity extends DrawerActivity { return true; case R.id.menu_key_list_debug_first_time: + Preferences prefs = Preferences.getPreferences(this); + prefs.setFirstTime(true); Intent intent = new Intent(this, FirstTimeActivity.class); startActivity(intent); finish(); 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 5e2e4cb43..9f1ac0cdd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Color; +import android.graphics.PorterDuff; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -85,6 +86,7 @@ public class KeyListFragment extends LoaderFragment private Button mButtonEmptyCreate; private Button mButtonEmptyImport; + public static final int REQUEST_CODE_CREATE_OR_IMPORT_KEY = 0x00007012; /** * Load custom layout with StickyListView from library @@ -104,7 +106,7 @@ public class KeyListFragment extends LoaderFragment @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), CreateKeyActivity.class); - startActivity(intent); + startActivityForResult(intent, REQUEST_CODE_CREATE_OR_IMPORT_KEY); } }); mButtonEmptyImport = (Button) view.findViewById(R.id.key_list_empty_button_import); @@ -113,8 +115,8 @@ public class KeyListFragment extends LoaderFragment @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), ImportKeysActivity.class); - intent.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE); - startActivityForResult(intent, 0); + intent.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE_AND_RETURN); + startActivityForResult(intent, REQUEST_CODE_CREATE_OR_IMPORT_KEY); } }); @@ -433,9 +435,7 @@ public class KeyListFragment extends LoaderFragment private class ItemViewHolder { TextView mMainUserId; TextView mMainUserIdRest; - FrameLayout mStatusLayout; - TextView mRevoked; - ImageView mVerified; + ImageView mStatus; } @Override @@ -444,9 +444,7 @@ public class KeyListFragment extends LoaderFragment ItemViewHolder holder = new ItemViewHolder(); holder.mMainUserId = (TextView) view.findViewById(R.id.mainUserId); holder.mMainUserIdRest = (TextView) view.findViewById(R.id.mainUserIdRest); - holder.mStatusLayout = (FrameLayout) view.findViewById(R.id.status_layout); - holder.mRevoked = (TextView) view.findViewById(R.id.revoked); - holder.mVerified = (ImageView) view.findViewById(R.id.verified); + holder.mStatus = (ImageView) view.findViewById(R.id.status_image); view.setTag(holder); return view; } @@ -482,25 +480,36 @@ public class KeyListFragment extends LoaderFragment if (cursor.getInt(KeyListFragment.INDEX_HAS_ANY_SECRET) != 0) { // this is a secret key - h.mStatusLayout.setVisibility(View.VISIBLE); - h.mRevoked.setVisibility(View.GONE); - h.mVerified.setVisibility(View.GONE); + h.mStatus.setVisibility(View.GONE); } else { - // this is a public key - show if it's revoked + // this is a public key - show if it's revoked, expired, or verified boolean isRevoked = cursor.getInt(INDEX_IS_REVOKED) > 0; boolean isExpired = !cursor.isNull(INDEX_EXPIRY) && new Date(cursor.getLong(INDEX_EXPIRY)*1000).before(new Date()); - if(isRevoked || isExpired) { - h.mStatusLayout.setVisibility(View.VISIBLE); - h.mRevoked.setVisibility(View.VISIBLE); - h.mVerified.setVisibility(View.GONE); - h.mRevoked.setText(isRevoked ? R.string.revoked : R.string.expired); + boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0; + + // Note: order is important! + if (isRevoked) { + h.mStatus.setImageDrawable( + getResources().getDrawable(R.drawable.status_signature_revoked_cutout)); + h.mStatus.setColorFilter(getResources().getColor(R.color.result_red), + PorterDuff.Mode.SRC_ATOP); + h.mStatus.setVisibility(View.VISIBLE); + } else if (isExpired) { + h.mStatus.setImageDrawable( + getResources().getDrawable(R.drawable.status_signature_expired_cutout)); + h.mStatus.setColorFilter(getResources().getColor(R.color.result_orange), + PorterDuff.Mode.SRC_ATOP); + h.mStatus.setVisibility(View.VISIBLE); + } else if (isVerified) { + h.mStatus.setImageDrawable( + getResources().getDrawable(R.drawable.status_signature_verified_cutout)); + h.mStatus.setColorFilter(getResources().getColor(R.color.result_green), + PorterDuff.Mode.SRC_ATOP); + h.mStatus.setVisibility(View.VISIBLE); } else { - boolean isVerified = cursor.getInt(INDEX_VERIFIED) > 0; - h.mStatusLayout.setVisibility(isVerified ? View.VISIBLE : View.GONE); - h.mRevoked.setVisibility(View.GONE); - h.mVerified.setVisibility(isVerified ? View.VISIBLE : View.GONE); + h.mStatus.setVisibility(View.GONE); } } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/QrCodeActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/QrCodeActivity.java new file mode 100644 index 000000000..f4d395ae6 --- /dev/null +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/QrCodeActivity.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +package org.sufficientlysecure.keychain.ui; + +import android.net.Uri; +import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; +import android.view.View; +import android.widget.ImageView; + +import com.devspark.appmsg.AppMsg; + +import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.helper.ActionBarHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; +import org.sufficientlysecure.keychain.provider.KeychainContract; +import org.sufficientlysecure.keychain.provider.ProviderHelper; +import org.sufficientlysecure.keychain.util.Log; +import org.sufficientlysecure.keychain.util.QrCodeUtils; + +public class QrCodeActivity extends ActionBarActivity { + + private ImageView mFingerprintQrCode; + + private static final int QR_CODE_SIZE = 1000; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Inflate a "Done" custom action bar + ActionBarHelper.setOneButtonView(getSupportActionBar(), + R.string.btn_okay, R.drawable.ic_action_done, + new View.OnClickListener() { + @Override + public void onClick(View v) { + // "Done" + finish(); + } + } + ); + + setContentView(R.layout.qr_code_activity); + + Uri dataUri = getIntent().getData(); + if (dataUri == null) { + Log.e(Constants.TAG, "Data missing. Should be Uri of key!"); + finish(); + return; + } + + mFingerprintQrCode = (ImageView) findViewById(R.id.qr_code_image); + + mFingerprintQrCode.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + ProviderHelper providerHelper = new ProviderHelper(this); + try { + byte[] blob = (byte[]) providerHelper.getGenericData( + KeychainContract.KeyRings.buildUnifiedKeyRingUri(dataUri), + KeychainContract.KeyRings.FINGERPRINT, ProviderHelper.FIELD_TYPE_BLOB); + if (blob == null) { + Log.e(Constants.TAG, "key not found!"); + AppMsg.makeText(this, R.string.error_key_not_found, AppMsg.STYLE_ALERT).show(); + finish(); + } + + String fingerprint = PgpKeyHelper.convertFingerprintToHex(blob); + String qrCodeContent = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; + mFingerprintQrCode.setImageBitmap(QrCodeUtils.getQRCodeBitmap(qrCodeContent, QR_CODE_SIZE)); + } catch (ProviderHelper.NotFoundException e) { + Log.e(Constants.TAG, "key not found!", e); + AppMsg.makeText(this, R.string.error_key_not_found, AppMsg.STYLE_ALERT).show(); + finish(); + } + } + + @Override + protected void onResume() { + super.onResume(); + + // custom activity transition to get zoom in effect + this.overridePendingTransition(R.anim.zoom_enter, android.R.anim.fade_out); + } + + @Override + protected void onPause() { + super.onPause(); + + // custom activity transition to get zoom out effect + this.overridePendingTransition(0, R.anim.zoom_exit); + } + +}
\ No newline at end of file diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index f92977dbe..7a833026b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -21,6 +21,7 @@ package org.sufficientlysecure.keychain.ui; import android.annotation.TargetApi; import android.content.Intent; import android.database.Cursor; +import android.graphics.PorterDuff; import android.net.Uri; import android.nfc.NdefMessage; import android.nfc.NdefRecord; @@ -42,6 +43,9 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.Window; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -79,9 +83,11 @@ public class ViewKeyActivity extends ActionBarActivity implements private ViewPager mViewPager; private SlidingTabLayout mSlidingTabLayout; private PagerTabStripAdapter mTabsAdapter; + + private LinearLayout mStatusLayout; + private TextView mStatusText; + private ImageView mStatusImage; private View mStatusDivider; - private View mStatusRevoked; - private View mStatusExpired; public static final int REQUEST_CODE_LOOKUP_KEY = 0x00007006; @@ -113,9 +119,10 @@ public class ViewKeyActivity extends ActionBarActivity implements setContentView(R.layout.view_key_activity); - mStatusDivider = findViewById(R.id.status_divider); - mStatusRevoked = findViewById(R.id.view_key_revoked); - mStatusExpired = findViewById(R.id.view_key_expired); + mStatusLayout = (LinearLayout) findViewById(R.id.view_key_status_layout); + mStatusText = (TextView) findViewById(R.id.view_key_status_text); + mStatusImage = (ImageView) findViewById(R.id.view_key_status_image); + mStatusDivider = findViewById(R.id.view_key_status_divider); mViewPager = (ViewPager) findViewById(R.id.view_key_pager); mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.view_key_sliding_tab_layout); @@ -502,22 +509,32 @@ public class ViewKeyActivity extends ActionBarActivity implements String keyIdStr = PgpKeyHelper.convertKeyIdToHex(masterKeyId); getSupportActionBar().setSubtitle(keyIdStr); - // If this key is revoked, it cannot be used for anything! - if (data.getInt(INDEX_UNIFIED_IS_REVOKED) != 0) { + boolean isRevoked = data.getInt(INDEX_UNIFIED_IS_REVOKED) > 0; + boolean isExpired = !data.isNull(INDEX_UNIFIED_EXPIRY) + && new Date(data.getLong(INDEX_UNIFIED_EXPIRY) * 1000).before(new Date()); + + // Note: order is important + if (isRevoked) { + mStatusText.setText(R.string.view_key_revoked); + mStatusText.setTextColor(getResources().getColor(R.color.result_red)); + mStatusImage.setImageDrawable( + getResources().getDrawable(R.drawable.status_signature_revoked_cutout)); + mStatusImage.setColorFilter(getResources().getColor(R.color.result_red), + PorterDuff.Mode.SRC_ATOP); + mStatusDivider.setVisibility(View.VISIBLE); + mStatusLayout.setVisibility(View.VISIBLE); + } else if (isExpired) { + mStatusText.setText(R.string.view_key_expired); + mStatusText.setTextColor(getResources().getColor(R.color.result_orange)); + mStatusImage.setImageDrawable( + getResources().getDrawable(R.drawable.status_signature_expired_cutout)); + mStatusImage.setColorFilter(getResources().getColor(R.color.result_orange), + PorterDuff.Mode.SRC_ATOP); mStatusDivider.setVisibility(View.VISIBLE); - mStatusRevoked.setVisibility(View.VISIBLE); - mStatusExpired.setVisibility(View.GONE); + mStatusLayout.setVisibility(View.VISIBLE); } else { - mStatusRevoked.setVisibility(View.GONE); - - Date expiryDate = new Date(data.getLong(INDEX_UNIFIED_EXPIRY) * 1000); - if (!data.isNull(INDEX_UNIFIED_EXPIRY) && expiryDate.before(new Date())) { - mStatusDivider.setVisibility(View.VISIBLE); - mStatusExpired.setVisibility(View.VISIBLE); - } else { - mStatusDivider.setVisibility(View.GONE); - mStatusExpired.setVisibility(View.GONE); - } + mStatusDivider.setVisibility(View.GONE); + mStatusLayout.setVisibility(View.GONE); } break; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java index ade618840..a156ff5f1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java @@ -19,6 +19,7 @@ package org.sufficientlysecure.keychain.ui; import android.content.Intent; import android.database.Cursor; +import android.graphics.PorterDuff; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.LoaderManager; @@ -27,6 +28,7 @@ import android.support.v4.content.Loader; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.ListView; import org.sufficientlysecure.keychain.Constants; @@ -51,6 +53,8 @@ public class ViewKeyMainFragment extends LoaderFragment implements private View mActionEditDivider; private View mActionEncrypt; private View mActionCertify; + private View mActionCertifyText; + private ImageView mActionCertifyImage; private View mActionCertifyDivider; private ListView mUserIds; @@ -75,6 +79,11 @@ public class ViewKeyMainFragment extends LoaderFragment implements mActionEditDivider = view.findViewById(R.id.view_key_action_edit_divider); mActionEncrypt = view.findViewById(R.id.view_key_action_encrypt); mActionCertify = view.findViewById(R.id.view_key_action_certify); + mActionCertifyText = view.findViewById(R.id.view_key_action_certify_text); + mActionCertifyImage = (ImageView) view.findViewById(R.id.view_key_action_certify_image); + // make certify image gray, like action icons + mActionCertifyImage.setColorFilter(getResources().getColor(R.color.tertiary_text_light), + PorterDuff.Mode.SRC_IN); mActionCertifyDivider = view.findViewById(R.id.view_key_action_certify_divider); return root; @@ -181,6 +190,7 @@ public class ViewKeyMainFragment extends LoaderFragment implements if (data.getInt(INDEX_UNIFIED_IS_REVOKED) != 0) { mActionEdit.setEnabled(false); mActionCertify.setEnabled(false); + mActionCertifyText.setEnabled(false); mActionEncrypt.setEnabled(false); } else { mActionEdit.setEnabled(true); @@ -188,9 +198,11 @@ public class ViewKeyMainFragment extends LoaderFragment implements Date expiryDate = new Date(data.getLong(INDEX_UNIFIED_EXPIRY) * 1000); if (!data.isNull(INDEX_UNIFIED_EXPIRY) && expiryDate.before(new Date())) { mActionCertify.setEnabled(false); + mActionCertifyText.setEnabled(false); mActionEncrypt.setEnabled(false); } else { mActionCertify.setEnabled(true); + mActionCertifyText.setEnabled(true); mActionEncrypt.setEnabled(true); } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyShareFragment.java index c2339c25f..e81d5dbf7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyShareFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyShareFragment.java @@ -20,7 +20,14 @@ package org.sufficientlysecure.keychain.ui; import android.annotation.TargetApi; import android.content.Intent; import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.TransitionDrawable; import android.net.Uri; +import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.provider.Settings; @@ -43,7 +50,6 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.Keys; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.ui.dialog.ShareNfcDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.ShareQrCodeDialogFragment; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Notify; import org.sufficientlysecure.keychain.util.QrCodeUtils; @@ -151,7 +157,7 @@ public class ViewKeyShareFragment extends LoaderFragment implements KeyRings.buildUnifiedKeyRingUri(dataUri), Keys.FINGERPRINT, ProviderHelper.FIELD_TYPE_BLOB); String fingerprint = PgpKeyHelper.convertFingerprintToHex(data); - if(!toClipboard){ + if (!toClipboard) { content = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; } else { content = fingerprint; @@ -205,8 +211,9 @@ public class ViewKeyShareFragment extends LoaderFragment implements } private void showQrCodeDialog() { - ShareQrCodeDialogFragment dialog = ShareQrCodeDialogFragment.newInstance(mDataUri); - dialog.show(ViewKeyShareFragment.this.getActivity().getSupportFragmentManager(), "shareQrCodeDialog"); + Intent qrCodeIntent = new Intent(getActivity(), QrCodeActivity.class); + qrCodeIntent.setData(mDataUri); + startActivity(qrCodeIntent); } private void showNfcHelpDialog() { @@ -291,10 +298,7 @@ public class ViewKeyShareFragment extends LoaderFragment implements String fingerprint = PgpKeyHelper.convertFingerprintToHex(fingerprintBlob); mFingerprint.setText(PgpKeyHelper.colorizeFingerprint(fingerprint)); - String qrCodeContent = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; - mFingerprintQrCode.setImageBitmap( - QrCodeUtils.getQRCodeBitmap(qrCodeContent, QR_CODE_SIZE) - ); + loadQrCode(fingerprint); break; } @@ -310,4 +314,35 @@ public class ViewKeyShareFragment extends LoaderFragment implements */ public void onLoaderReset(Loader<Cursor> loader) { } + + /** + * Load QR Code asynchronously and with a fade in animation + * + * @param fingerprint + */ + private void loadQrCode(final String fingerprint) { + AsyncTask<Void, Void, Bitmap> loadTask = + new AsyncTask<Void, Void, Bitmap>() { + protected Bitmap doInBackground(Void... unused) { + String qrCodeContent = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; + return QrCodeUtils.getQRCodeBitmap(qrCodeContent, QR_CODE_SIZE); + } + + protected void onPostExecute(Bitmap qrCode) { + mFingerprintQrCode.setImageBitmap(qrCode); + + // Transition drawable with a transparent drawable and the final bitmap + final TransitionDrawable td = + new TransitionDrawable(new Drawable[]{ + new ColorDrawable(Color.TRANSPARENT), + new BitmapDrawable(getResources(), qrCode) + }); + + mFingerprintQrCode.setImageDrawable(td); + td.startTransition(200); + } + }; + + loadTask.execute(); + } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java index 18312660a..6519915fa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java @@ -19,6 +19,8 @@ package org.sufficientlysecure.keychain.ui.adapter; import android.content.Context; import android.database.Cursor; +import android.graphics.PorterDuff; +import android.graphics.Typeface; import android.support.v4.widget.CursorAdapter; import android.view.LayoutInflater; import android.view.View; @@ -156,7 +158,10 @@ public class UserIdsAdapter extends CursorAdapter implements AdapterView.OnItemC if (isRevoked) { // set revocation icon (can this even be primary?) - vVerified.setImageResource(R.drawable.key_certify_revoke); + vVerified.setImageResource(R.drawable.status_signature_revoked_cutout); + vVerified.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); // disable and strike through text for revoked user ids vName.setEnabled(false); @@ -170,22 +175,33 @@ public class UserIdsAdapter extends CursorAdapter implements AdapterView.OnItemC vAddress.setEnabled(true); vComment.setEnabled(true); - // verified: has been verified - // isPrimary: show small star icon for primary user ids - int verified = cursor.getInt(INDEX_VERIFIED); - switch (verified) { + if (isPrimary) { + vName.setTypeface(null, Typeface.BOLD); + vAddress.setTypeface(null, Typeface.BOLD); + } else { + vName.setTypeface(null, Typeface.NORMAL); + vAddress.setTypeface(null, Typeface.NORMAL); + } + + int isVerified = cursor.getInt(INDEX_VERIFIED); + switch (isVerified) { case Certs.VERIFIED_SECRET: - vVerified.setImageResource(isPrimary - ? R.drawable.key_certify_primary_ok_depth0 - : R.drawable.key_certify_ok_depth0); + vVerified.setImageResource(R.drawable.status_signature_verified_cutout); + vVerified.setColorFilter( + mContext.getResources().getColor(R.color.result_green), + PorterDuff.Mode.SRC_IN); break; case Certs.VERIFIED_SELF: - vVerified.setImageResource(isPrimary - ? R.drawable.key_certify_primary_ok_self - : R.drawable.key_certify_ok_self); + vVerified.setImageResource(R.drawable.status_signature_unverified_cutout); + vVerified.setColorFilter( + mContext.getResources().getColor(R.color.bg_gray), + PorterDuff.Mode.SRC_IN); break; default: - vVerified.setImageResource(R.drawable.key_certify_error); + vVerified.setImageResource(R.drawable.status_signature_invalid_cutout); + vVerified.setColorFilter( + mContext.getResources().getColor(R.color.result_red), + PorterDuff.Mode.SRC_IN); break; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java index d723f88af..7981b717e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java @@ -33,8 +33,10 @@ import android.support.v4.app.FragmentActivity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager.LayoutParams; import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; @@ -62,7 +64,6 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor private Messenger mMessenger; private EditText mPassphraseEditText; - private boolean mCanKB; /** * Shows passphrase dialog to cache a new passphrase the user enters for using it later for @@ -105,7 +106,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor if (!new ProviderHelper(context).getWrappedSecretKeyRing(secretKeyId).hasPassphrase()) { throw new PgpGeneralException("No passphrase! No passphrase dialog needed!"); } - } catch(ProviderHelper.NotFoundException e) { + } catch (ProviderHelper.NotFoundException e) { throw new PgpGeneralException("Error: Key not found!", e); } } @@ -165,7 +166,6 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor } }); alert.setCancelable(false); - mCanKB = false; return alert.create(); } @@ -190,7 +190,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor // Early breakout if we are dealing with a symmetric key if (secretRing == null) { PassphraseCacheService.addCachedPassphrase(activity, Constants.key.symmetric, - passphrase, getString(R.string.passp_cache_notif_pwd)); + passphrase, getString(R.string.passp_cache_notif_pwd)); // also return passphrase back to activity Bundle data = new Bundle(); data.putString(MESSAGE_DATA_PASSPHRASE, passphrase); @@ -200,7 +200,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor WrappedSecretKey unlockedSecretKey = null; - for(WrappedSecretKey clickSecretKey : secretRing.secretKeyIterator()) { + for (WrappedSecretKey clickSecretKey : secretRing.secretKeyIterator()) { try { boolean unlocked = clickSecretKey.unlock(passphrase); if (unlocked) { @@ -232,9 +232,9 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor try { PassphraseCacheService.addCachedPassphrase(activity, masterKeyId, passphrase, - secretRing.getPrimaryUserIdWithFallback()); - } catch(PgpGeneralException e) { - Log.e(Constants.TAG, "adding of a passhrase failed", e); + secretRing.getPrimaryUserIdWithFallback()); + } catch (PgpGeneralException e) { + Log.e(Constants.TAG, "adding of a passphrase failed", e); } if (unlockedSecretKey.getKeyId() != masterKeyId) { @@ -258,20 +258,30 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor } }); - mCanKB = true; - return alert.show(); - } + // Hack to open keyboard. + // This is the only method that I found to work across all Android versions + // http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/ + // Notes: * onCreateView can't be used because we want to add buttons to the dialog + // * opening in onActivityCreated does not work on Android 4.4 + mPassphraseEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + mPassphraseEditText.post(new Runnable() { + @Override + public void run() { + InputMethodManager imm = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(mPassphraseEditText, InputMethodManager.SHOW_IMPLICIT); + } + }); + } + }); + mPassphraseEditText.requestFocus(); - @Override - public void onActivityCreated(Bundle arg0) { - super.onActivityCreated(arg0); - if (mCanKB) { - // request focus and open soft keyboard - mPassphraseEditText.requestFocus(); - getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); - - mPassphraseEditText.setOnEditorActionListener(this); - } + mPassphraseEditText.setImeActionLabel(getString(android.R.string.ok), EditorInfo.IME_ACTION_DONE); + mPassphraseEditText.setOnEditorActionListener(this); + + return alert.show(); } @Override @@ -282,6 +292,27 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor sendMessageToHandler(MESSAGE_CANCEL); } + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + Log.d(Constants.TAG, "onDismiss"); + + // hide keyboard on dismiss + hideKeyboard(); + } + + private void hideKeyboard() { + InputMethodManager inputManager = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + + //check if no view has focus: + View v = getActivity().getCurrentFocus(); + if (v == null) + return; + + inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0); + } + /** * Associate the "done" button on the soft keyboard with the okay button in the view */ diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java index 93da48b75..1386ed098 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; +import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.os.Message; @@ -32,6 +33,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager.LayoutParams; import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; @@ -164,18 +166,50 @@ public class SetPassphraseDialogFragment extends DialogFragment implements OnEdi } }); + // Hack to open keyboard. + // This is the only method that I found to work across all Android versions + // http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/ + // Notes: * onCreateView can't be used because we want to add buttons to the dialog + // * opening in onActivityCreated does not work on Android 4.4 + mPassphraseEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + mPassphraseEditText.post(new Runnable() { + @Override + public void run() { + InputMethodManager imm = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(mPassphraseEditText, InputMethodManager.SHOW_IMPLICIT); + } + }); + } + }); + mPassphraseEditText.requestFocus(); + + mPassphraseAgainEditText.setImeActionLabel(getString(android.R.string.ok), EditorInfo.IME_ACTION_DONE); + mPassphraseAgainEditText.setOnEditorActionListener(this); + return alert.show(); } @Override - public void onActivityCreated(Bundle arg0) { - super.onActivityCreated(arg0); + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); - // request focus and open soft keyboard - mPassphraseEditText.requestFocus(); - getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); + // hide keyboard on dismiss + hideKeyboard(); + } - mPassphraseAgainEditText.setOnEditorActionListener(this); + private void hideKeyboard() { + InputMethodManager inputManager = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + + //check if no view has focus: + View v = getActivity().getCurrentFocus(); + if (v == null) + return; + + inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0); } /** diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareQrCodeDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareQrCodeDialogFragment.java deleted file mode 100644 index eb779f401..000000000 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ShareQrCodeDialogFragment.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2012-2014 Dominik Schürmann <dominik@dominikschuermann.de> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -package org.sufficientlysecure.keychain.ui.dialog; - -import android.app.Activity; -import android.app.Dialog; -import android.net.Uri; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -import org.sufficientlysecure.keychain.Constants; -import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; -import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; -import org.sufficientlysecure.keychain.provider.ProviderHelper; -import org.sufficientlysecure.keychain.util.Log; -import org.sufficientlysecure.keychain.util.Notify; -import org.sufficientlysecure.keychain.util.QrCodeUtils; - -public class ShareQrCodeDialogFragment extends DialogFragment { - private static final String ARG_KEY_URI = "uri"; - - private ImageView mImage; - private TextView mText; - - private static final int QR_CODE_SIZE = 1000; - - /** - * Creates new instance of this dialog fragment - */ - public static ShareQrCodeDialogFragment newInstance(Uri dataUri) { - ShareQrCodeDialogFragment frag = new ShareQrCodeDialogFragment(); - Bundle args = new Bundle(); - args.putParcelable(ARG_KEY_URI, dataUri); - - frag.setArguments(args); - - return frag; - } - - /** - * Creates dialog - */ - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final Activity activity = getActivity(); - - Uri dataUri = getArguments().getParcelable(ARG_KEY_URI); - - CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(getActivity()); - alert.setTitle(R.string.share_qr_code_dialog_title); - - LayoutInflater inflater = activity.getLayoutInflater(); - View view = inflater.inflate(R.layout.share_qr_code_dialog, null); - alert.setView(view); - - mImage = (ImageView) view.findViewById(R.id.share_qr_code_dialog_image); - mText = (TextView) view.findViewById(R.id.share_qr_code_dialog_text); - - ProviderHelper providerHelper = new ProviderHelper(getActivity()); - String content; - try { - alert.setPositiveButton(R.string.btn_okay, null); - - byte[] blob = (byte[]) providerHelper.getGenericData( - KeyRings.buildUnifiedKeyRingUri(dataUri), - KeyRings.FINGERPRINT, ProviderHelper.FIELD_TYPE_BLOB); - if (blob == null) { - Log.e(Constants.TAG, "key not found!"); - Notify.showNotify(getActivity(), R.string.error_key_not_found, Notify.Style.ERROR); - return null; - } - - String fingerprint = PgpKeyHelper.convertFingerprintToHex(blob); - mText.setText(getString(R.string.share_qr_code_dialog_fingerprint_text) + " " + fingerprint); - content = Constants.FINGERPRINT_SCHEME + ":" + fingerprint; - setQrCode(content); - } catch (ProviderHelper.NotFoundException e) { - Log.e(Constants.TAG, "key not found!", e); - Notify.showNotify(getActivity(), R.string.error_key_not_found, Notify.Style.ERROR); - return null; - } - - return alert.show(); - } - - private void setQrCode(String data) { - mImage.setImageBitmap(QrCodeUtils.getQRCodeBitmap(data, QR_CODE_SIZE)); - } - -} diff --git a/OpenKeychain/src/main/res/anim/zoom_enter.xml b/OpenKeychain/src/main/res/anim/zoom_enter.xml new file mode 100644 index 000000000..2b95cfba6 --- /dev/null +++ b/OpenKeychain/src/main/res/anim/zoom_enter.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<set xmlns:android="http://schemas.android.com/apk/res/android" + android:interpolator="@android:anim/decelerate_interpolator"> + <scale + android:fromXScale="0.5" + android:toXScale="1.0" + android:fromYScale="0.5" + android:toYScale="1.0" + android:pivotX="50%p" + android:pivotY="50%p" + android:duration="@android:integer/config_mediumAnimTime" /> + <alpha + android:fromAlpha="0" + android:toAlpha="1.0" + android:duration="@android:integer/config_mediumAnimTime" /> +</set>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/anim/zoom_exit.xml b/OpenKeychain/src/main/res/anim/zoom_exit.xml new file mode 100644 index 000000000..772375739 --- /dev/null +++ b/OpenKeychain/src/main/res/anim/zoom_exit.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<set xmlns:android="http://schemas.android.com/apk/res/android" + android:interpolator="@android:anim/decelerate_interpolator" + android:zAdjustment="top"> + <scale + android:fromXScale="1.0" + android:toXScale="0.5" + android:fromYScale="1.0" + android:toYScale="0.5" + android:pivotX="50%p" + android:pivotY="50%p" + android:duration="@android:integer/config_mediumAnimTime" /> + <alpha + android:fromAlpha="1.0" + android:toAlpha="0" + android:duration="@android:integer/config_mediumAnimTime" /> +</set>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_error.png b/OpenKeychain/src/main/res/drawable-hdpi/key_certify_error.png Binary files differdeleted file mode 100644 index 391d1c988..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_error.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_ok_depth0.png b/OpenKeychain/src/main/res/drawable-hdpi/key_certify_ok_depth0.png Binary files differdeleted file mode 100644 index 76944469c..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_ok_self.png b/OpenKeychain/src/main/res/drawable-hdpi/key_certify_ok_self.png Binary files differdeleted file mode 100644 index 815701015..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_primary_ok_depth0.png b/OpenKeychain/src/main/res/drawable-hdpi/key_certify_primary_ok_depth0.png Binary files differdeleted file mode 100644 index 026869c14..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_primary_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_primary_ok_self.png b/OpenKeychain/src/main/res/drawable-hdpi/key_certify_primary_ok_self.png Binary files differdeleted file mode 100644 index 12d2e026e..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_primary_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_revoke.png b/OpenKeychain/src/main/res/drawable-hdpi/key_certify_revoke.png Binary files differdeleted file mode 100644 index c39d3a87c..000000000 --- a/OpenKeychain/src/main/res/drawable-hdpi/key_certify_revoke.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed.png Binary files differnew file mode 100644 index 000000000..a1b090630 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_closed.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error.png Binary files differnew file mode 100644 index 000000000..e567055aa --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_error.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open.png b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open.png Binary files differnew file mode 100644 index 000000000..98e32eadc --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_lock_open.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired.png Binary files differnew file mode 100644 index 000000000..21e8b536a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout.png Binary files differnew file mode 100644 index 000000000..84ac9bec2 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_expired_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid.png Binary files differnew file mode 100644 index 000000000..9ae2a09ab --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout.png Binary files differnew file mode 100644 index 000000000..967e00e80 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_invalid_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked.png Binary files differnew file mode 100644 index 000000000..16e1d7181 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout.png Binary files differnew file mode 100644 index 000000000..244dd0708 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_revoked_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown.png Binary files differnew file mode 100644 index 000000000..5c3ba866d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout.png Binary files differnew file mode 100644 index 000000000..82cc25a4b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unknown_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified.png Binary files differnew file mode 100644 index 000000000..b8b472a5a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout.png Binary files differnew file mode 100644 index 000000000..e752eaeab --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_unverified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified.png Binary files differnew file mode 100644 index 000000000..d8141b47b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified.png diff --git a/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout.png b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout.png Binary files differnew file mode 100644 index 000000000..08a9f464c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/status_signature_verified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_error.png b/OpenKeychain/src/main/res/drawable-ldpi/key_certify_error.png Binary files differdeleted file mode 100644 index 79fddf78a..000000000 --- a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_error.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_ok_depth0.png b/OpenKeychain/src/main/res/drawable-ldpi/key_certify_ok_depth0.png Binary files differdeleted file mode 100644 index c400a1820..000000000 --- a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_ok_self.png b/OpenKeychain/src/main/res/drawable-ldpi/key_certify_ok_self.png Binary files differdeleted file mode 100644 index fb1654b53..000000000 --- a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_revoke.png b/OpenKeychain/src/main/res/drawable-ldpi/key_certify_revoke.png Binary files differdeleted file mode 100644 index 5228a4b6b..000000000 --- a/OpenKeychain/src/main/res/drawable-ldpi/key_certify_revoke.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_error.png b/OpenKeychain/src/main/res/drawable-mdpi/key_certify_error.png Binary files differdeleted file mode 100644 index 6def8769f..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_error.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_ok_depth0.png b/OpenKeychain/src/main/res/drawable-mdpi/key_certify_ok_depth0.png Binary files differdeleted file mode 100644 index e16ec810a..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_ok_self.png b/OpenKeychain/src/main/res/drawable-mdpi/key_certify_ok_self.png Binary files differdeleted file mode 100644 index 715a16487..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_primary_ok_depth0.png b/OpenKeychain/src/main/res/drawable-mdpi/key_certify_primary_ok_depth0.png Binary files differdeleted file mode 100644 index c376a2897..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_primary_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_primary_ok_self.png b/OpenKeychain/src/main/res/drawable-mdpi/key_certify_primary_ok_self.png Binary files differdeleted file mode 100644 index 45a261b24..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_primary_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_revoke.png b/OpenKeychain/src/main/res/drawable-mdpi/key_certify_revoke.png Binary files differdeleted file mode 100644 index 62ee0ca42..000000000 --- a/OpenKeychain/src/main/res/drawable-mdpi/key_certify_revoke.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed.png Binary files differnew file mode 100644 index 000000000..cfc39f0e7 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_closed.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error.png Binary files differnew file mode 100644 index 000000000..824dc2672 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_error.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open.png b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open.png Binary files differnew file mode 100644 index 000000000..9bca59ae3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_lock_open.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired.png Binary files differnew file mode 100644 index 000000000..81a900147 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout.png Binary files differnew file mode 100644 index 000000000..bc91094b5 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_expired_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid.png Binary files differnew file mode 100644 index 000000000..baa78f795 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout.png Binary files differnew file mode 100644 index 000000000..bc2f56e2a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_invalid_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked.png Binary files differnew file mode 100644 index 000000000..7cf985274 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout.png Binary files differnew file mode 100644 index 000000000..2d2593194 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_revoked_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown.png Binary files differnew file mode 100644 index 000000000..3d4665320 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout.png Binary files differnew file mode 100644 index 000000000..0fc74d07e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unknown_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified.png Binary files differnew file mode 100644 index 000000000..8348b32b3 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout.png Binary files differnew file mode 100644 index 000000000..96a2d1413 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_unverified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified.png Binary files differnew file mode 100644 index 000000000..02e53ac8a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout.png b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout.png Binary files differnew file mode 100644 index 000000000..9f7cf837c --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/status_signature_verified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_error.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_error.png Binary files differdeleted file mode 100644 index 8278ce2b6..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_error.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_ok_depth0.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_ok_depth0.png Binary files differdeleted file mode 100644 index e2aef1177..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_ok_self.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_ok_self.png Binary files differdeleted file mode 100644 index 9bb6ceffa..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_primary_ok_depth0.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_primary_ok_depth0.png Binary files differdeleted file mode 100644 index de6614246..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_primary_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_primary_ok_self.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_primary_ok_self.png Binary files differdeleted file mode 100644 index ce10da099..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_primary_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_revoke.png b/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_revoke.png Binary files differdeleted file mode 100644 index 1478e726b..000000000 --- a/OpenKeychain/src/main/res/drawable-xhdpi/key_certify_revoke.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed.png Binary files differnew file mode 100644 index 000000000..7c6bb2d18 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_closed.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error.png Binary files differnew file mode 100644 index 000000000..da4a5d89a --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_error.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open.png Binary files differnew file mode 100644 index 000000000..cd02fc1e4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_lock_open.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired.png Binary files differnew file mode 100644 index 000000000..f5105c1ae --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout.png Binary files differnew file mode 100644 index 000000000..83f6fde35 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_expired_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid.png Binary files differnew file mode 100644 index 000000000..67880d6db --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout.png Binary files differnew file mode 100644 index 000000000..29830f5ba --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_invalid_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked.png Binary files differnew file mode 100644 index 000000000..2ed67419b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout.png Binary files differnew file mode 100644 index 000000000..2f7695043 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_revoked_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown.png Binary files differnew file mode 100644 index 000000000..a6f1f2792 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout.png Binary files differnew file mode 100644 index 000000000..2ce28c7ca --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unknown_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified.png Binary files differnew file mode 100644 index 000000000..c25a84b4d --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout.png Binary files differnew file mode 100644 index 000000000..442c55eee --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_unverified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified.png Binary files differnew file mode 100644 index 000000000..6f435a85e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout.png b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout.png Binary files differnew file mode 100644 index 000000000..160ec7cbe --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/status_signature_verified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_error.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_error.png Binary files differdeleted file mode 100644 index 9416720eb..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_error.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_ok_depth0.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_ok_depth0.png Binary files differdeleted file mode 100644 index 501a75d63..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_ok_self.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_ok_self.png Binary files differdeleted file mode 100644 index 72ada9c1f..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_primary_ok_depth0.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_primary_ok_depth0.png Binary files differdeleted file mode 100644 index 1b52ef04d..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_primary_ok_depth0.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_primary_ok_self.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_primary_ok_self.png Binary files differdeleted file mode 100644 index baa1c00d2..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_primary_ok_self.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_revoke.png b/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_revoke.png Binary files differdeleted file mode 100644 index 217f4e914..000000000 --- a/OpenKeychain/src/main/res/drawable-xxhdpi/key_certify_revoke.png +++ /dev/null diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed.png Binary files differnew file mode 100644 index 000000000..5a9664d59 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_closed.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error.png Binary files differnew file mode 100644 index 000000000..608f065af --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_error.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open.png Binary files differnew file mode 100644 index 000000000..ee34dd396 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_lock_open.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired.png Binary files differnew file mode 100644 index 000000000..f475c9d84 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout.png Binary files differnew file mode 100644 index 000000000..33a3efed1 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_expired_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid.png Binary files differnew file mode 100644 index 000000000..f21c2cf52 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout.png Binary files differnew file mode 100644 index 000000000..bc39d3496 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_invalid_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked.png Binary files differnew file mode 100644 index 000000000..be1a1d9dc --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout.png Binary files differnew file mode 100644 index 000000000..58929661f --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_revoked_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown.png Binary files differnew file mode 100644 index 000000000..841cfa958 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout.png Binary files differnew file mode 100644 index 000000000..3020357a4 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unknown_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified.png Binary files differnew file mode 100644 index 000000000..525d1cf6b --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout.png Binary files differnew file mode 100644 index 000000000..3829bb3a0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_unverified_cutout.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified.png Binary files differnew file mode 100644 index 000000000..54eee5ba0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout.png b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout.png Binary files differnew file mode 100644 index 000000000..3548ee2b6 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/status_signature_verified_cutout.png diff --git a/OpenKeychain/src/main/res/layout/certify_key_activity.xml b/OpenKeychain/src/main/res/layout/certify_key_activity.xml index 1443ffd46..d9c1b806b 100644 --- a/OpenKeychain/src/main/res/layout/certify_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/certify_key_activity.xml @@ -106,7 +106,6 @@ style="@style/SectionHeader" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="4dp" android:layout_marginTop="14dp" android:text="@string/section_uids_to_certify" /> @@ -149,21 +148,35 @@ android:text="@string/section_actions" android:layout_weight="1" /> - <TextView - android:id="@+id/sign_key_sign_button" - android:paddingLeft="8dp" - android:paddingRight="8dp" - android:layout_marginBottom="8dp" - android:textAppearance="?android:attr/textAppearanceMedium" + <LinearLayout + android:id="@+id/certify_key_certify_button" android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="@string/key_view_action_certify" - android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_good" - android:drawablePadding="8dp" - android:gravity="center_vertical" + android:layout_height="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" /> + android:paddingRight="4dp" + android:layout_marginBottom="8dp" + style="@style/SelectableItem" + android:orientation="horizontal"> + + <TextView + android:paddingLeft="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="0dip" + android:layout_height="match_parent" + android:text="@string/key_view_action_certify" + android:layout_weight="1" + android:gravity="center_vertical" /> + + <ImageView + android:id="@+id/certify_key_action_certify_image" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:padding="8dp" + android:src="@drawable/status_signature_verified_cutout" + android:layout_gravity="center_vertical" /> + + </LinearLayout> + </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/create_key_activity.xml b/OpenKeychain/src/main/res/layout/create_key_activity.xml index 673f43084..9d56950a8 100644 --- a/OpenKeychain/src/main/res/layout/create_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/create_key_activity.xml @@ -1,54 +1,84 @@ <?xml version="1.0" encoding="UTF-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="8dp" - android:orientation="vertical"> +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="match_parent"> - <TextView + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingBottom="4dp" - android:text="Enter Full Name, Email and Passphrase!" - android:textAppearance="?android:attr/textAppearanceMedium" /> + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:orientation="vertical"> - <AutoCompleteTextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="textPersonName" - android:hint="Name" - android:ems="10" - android:id="@+id/name" /> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="16dp" + android:paddingBottom="8dp" + android:text="@string/create_key_text" + android:textAppearance="?android:attr/textAppearanceMedium" /> - <AutoCompleteTextView - android:id="@+id/email" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:hint="bla@example.com" - android:layout_weight="1" - android:ems="10" - android:inputType="textEmailAddress" /> + <AutoCompleteTextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="8dp" + android:imeOptions="actionNext" + android:inputType="textPersonName" + android:hint="@string/label_name" + android:ems="10" + android:id="@+id/name" /> - <EditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="textPassword" - android:hint="passphrase" - android:ems="10" - android:id="@+id/passphrase" - android:layout_gravity="center_horizontal" /> + <AutoCompleteTextView + android:id="@+id/email" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="8dp" + android:imeOptions="actionNext" + android:hint="@string/label_email" + android:ems="10" + android:inputType="textEmailAddress" /> + <EditText + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="8dp" + android:inputType="textPassword" + android:hint="@string/label_passphrase" + android:ems="10" + android:id="@+id/passphrase" + android:layout_gravity="center_horizontal" /> - <Button - android:id="@+id/create_key_button" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:layout_gravity="center_horizontal" - android:layout_margin="8dp" - android:text="@string/first_time_create_key" - android:background="@drawable/button_edgy" - android:drawableLeft="@drawable/ic_action_new_account" /> + <CheckBox + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="8dp" + android:text="@string/create_key_upload" + android:id="@+id/create_key_upload" /> + + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + <TextView + android:id="@+id/create_key_button" + android:paddingLeft="8dp" + android:paddingRight="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:text="@string/first_time_create_key" + android:minHeight="?android:attr/listPreferredItemHeight" + android:drawableRight="@drawable/ic_action_new_account" + android:drawablePadding="8dp" + android:gravity="center_vertical" + android:clickable="true" + style="@style/SelectableItem" /> + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> -</LinearLayout>
\ No newline at end of file + </LinearLayout> +</ScrollView>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/first_time_activity.xml b/OpenKeychain/src/main/res/layout/first_time_activity.xml index 514f34212..e1a67a077 100644 --- a/OpenKeychain/src/main/res/layout/first_time_activity.xml +++ b/OpenKeychain/src/main/res/layout/first_time_activity.xml @@ -2,18 +2,97 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="16dp" - android:paddingBottom="8dp"> + android:paddingTop="16dp"> <LinearLayout + android:id="@+id/first_time_buttons" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:layout_alignParentBottom="true" android:orientation="vertical"> + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <TextView + android:id="@+id/first_time_create_key" + android:paddingLeft="8dp" + android:paddingRight="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@string/first_time_create_key" + android:minHeight="?android:attr/listPreferredItemHeight" + android:drawableRight="@drawable/ic_action_new_account" + android:drawablePadding="8dp" + android:gravity="center_vertical" + android:clickable="true" + style="@style/SelectableItem" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:background="?android:attr/listDivider" /> + + <TextView + android:id="@+id/first_time_import_key" + android:paddingLeft="8dp" + android:paddingRight="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@string/first_time_import_key" + android:minHeight="?android:attr/listPreferredItemHeight" + android:drawableRight="@drawable/ic_action_download" + android:drawablePadding="8dp" + android:gravity="center_vertical" + android:clickable="true" + style="@style/SelectableItem" /> + </LinearLayout> + + <View + android:layout_width="match_parent" + android:layout_height="1dip" + android:background="?android:attr/listDivider" /> + + <TextView + android:id="@+id/first_time_cancel" + android:paddingLeft="8dp" + android:paddingRight="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/first_time_skip" + android:minHeight="?android:attr/listPreferredItemHeight" + android:gravity="center" + android:clickable="true" + style="@style/SelectableItem" + android:layout_gravity="center_horizontal" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:layout_above="@+id/first_time_buttons"> + <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="8dp" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/app_name" android:drawableLeft="@drawable/ic_launcher" @@ -23,12 +102,15 @@ <ImageView android:layout_width="wrap_content" - android:layout_marginLeft="64dp" - android:layout_marginRight="64dp" + android:layout_height="0dp" + android:layout_marginLeft="16dp" + android:layout_marginRight="16dp" android:layout_marginTop="16dp" android:layout_marginBottom="16dp" - android:layout_height="256dp" - android:src="@drawable/first_time_1" /> + android:adjustViewBounds="true" + android:src="@drawable/first_time_1" + android:layout_gravity="center_horizontal" + android:layout_weight="1" /> <TextView android:layout_width="wrap_content" @@ -38,51 +120,9 @@ android:textAppearance="?android:attr/textAppearanceMedium" android:text="@string/first_time_text1" android:layout_gravity="center_horizontal" - android:gravity="center_horizontal" /> + android:gravity="center_horizontal" + android:layout_marginBottom="16dp" /> - - </LinearLayout> - - <Button - android:id="@+id/first_time_cancel" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="8dp" - android:layout_marginLeft="8dp" - android:layout_marginRight="8dp" - android:text="@string/first_time_skip" - android:background="@drawable/button_edgy" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_above="@id/first_time_cancel" - android:orientation="horizontal"> - - <Button - android:id="@+id/first_time_create_key" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_weight="1" - android:layout_marginLeft="8dp" - android:layout_marginRight="8dp" - android:text="@string/first_time_create_key" - android:background="@drawable/button_edgy" - android:drawableLeft="@drawable/ic_action_new_account" /> - - <Button - android:id="@+id/first_time_import_key" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:layout_gravity="center_horizontal" - android:layout_marginLeft="8dp" - android:layout_marginRight="8dp" - android:text="@string/first_time_import_key" - android:background="@drawable/button_edgy" - android:drawableLeft="@drawable/ic_action_download" /> </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/key_list_item.xml b/OpenKeychain/src/main/res/layout/key_list_item.xml index 99e4c0268..8d600464c 100644 --- a/OpenKeychain/src/main/res/layout/key_list_item.xml +++ b/OpenKeychain/src/main/res/layout/key_list_item.xml @@ -38,30 +38,12 @@ android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout> - <FrameLayout - android:id="@+id/status_layout" + <ImageView android:layout_width="wrap_content" - android:layout_height="match_parent"> - - <TextView - android:id="@+id/revoked" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="end" - android:textAppearance="?android:attr/textAppearanceSmall" - android:text="@string/revoked" - android:textColor="#e00" - android:layout_gravity="center" - android:padding="12dp" /> - - <ImageView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/verified" - android:layout_gravity="center" - android:src="@drawable/key_certify_ok_depth0" - android:padding="16dp" /> - </FrameLayout> + android:layout_height="wrap_content" + android:id="@+id/status_image" + android:layout_gravity="center" + android:src="@drawable/status_signature_revoked_cutout" + android:padding="16dp" /> </LinearLayout> diff --git a/OpenKeychain/src/main/res/layout/notify_area.xml b/OpenKeychain/src/main/res/layout/notify_area.xml index d2188b2a1..43df1cde8 100644 --- a/OpenKeychain/src/main/res/layout/notify_area.xml +++ b/OpenKeychain/src/main/res/layout/notify_area.xml @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> - <merge xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout diff --git a/OpenKeychain/src/main/res/layout/qr_code_activity.xml b/OpenKeychain/src/main/res/layout/qr_code_activity.xml new file mode 100644 index 000000000..57c869db6 --- /dev/null +++ b/OpenKeychain/src/main/res/layout/qr_code_activity.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <ImageView + android:id="@+id/qr_code_image" + android:padding="32dp" + android:layout_width="match_parent" + android:layout_height="match_parent" + style="@style/SelectableItem" /> + +</LinearLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/share_qr_code_dialog.xml b/OpenKeychain/src/main/res/layout/share_qr_code_dialog.xml deleted file mode 100644 index 0b58ae72f..000000000 --- a/OpenKeychain/src/main/res/layout/share_qr_code_dialog.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" > - - <TextView - android:id="@+id/share_qr_code_dialog_text" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="8dp" - android:textAppearance="@android:style/TextAppearance.Medium" /> - - <ImageView - android:id="@+id/share_qr_code_dialog_image" - android:layout_width="match_parent" - android:layout_height="wrap_content" /> - -</LinearLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml index 3aaa96cda..b15a73c0e 100644 --- a/OpenKeychain/src/main/res/layout/view_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml @@ -6,36 +6,36 @@ <include layout="@layout/notify_area"/> - <TextView - android:layout_width="match_parent" + <LinearLayout + android:id="@+id/view_key_status_layout" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="This key is expired!" - android:id="@+id/view_key_expired" - android:textColor="@color/alert" - android:textAppearance="?android:attr/textAppearanceSmall" - android:gravity="center_vertical|center_horizontal" + android:layout_gravity="center" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" - android:visibility="gone" /> + android:orientation="horizontal"> - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="This key has been revoked!" - android:id="@+id/view_key_revoked" - android:textColor="@color/alert" - android:textAppearance="?android:attr/textAppearanceSmall" - android:gravity="center_vertical|center_horizontal" - android:visibility="gone" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" /> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/view_key_status_image" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/view_key_status_text" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_gravity="center_vertical" + android:layout_marginLeft="8dp"/> + + </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="?android:attr/listDivider" android:visibility="gone" - android:id="@+id/status_divider" /> + android:id="@+id/view_key_status_divider" /> <org.sufficientlysecure.keychain.ui.widget.SlidingTabLayout android:id="@+id/view_key_sliding_tab_layout" diff --git a/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml index d93420a99..b11538ba9 100644 --- a/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_main_fragment.xml @@ -35,20 +35,34 @@ android:layout_height="1dip" android:background="?android:attr/listDivider" /> - <TextView + <LinearLayout android:id="@+id/view_key_action_certify" - android:paddingLeft="8dp" - android:paddingRight="8dp" - android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="@string/key_view_action_certify" - android:minHeight="?android:attr/listPreferredItemHeight" - android:drawableRight="@drawable/ic_action_good" - android:drawablePadding="8dp" - android:gravity="center_vertical" + android:layout_height="?android:attr/listPreferredItemHeight" android:clickable="true" - style="@style/SelectableItem" /> + android:paddingRight="4dp" + style="@style/SelectableItem" + android:orientation="horizontal"> + + <TextView + android:id="@+id/view_key_action_certify_text" + android:paddingLeft="8dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_width="0dip" + android:layout_height="match_parent" + android:text="@string/key_view_action_certify" + android:layout_weight="1" + android:gravity="center_vertical" /> + + <ImageView + android:id="@+id/view_key_action_certify_image" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:padding="8dp" + android:src="@drawable/status_signature_verified_cutout" + android:layout_gravity="center_vertical" /> + + </LinearLayout> <TextView style="@style/SectionHeader" diff --git a/OpenKeychain/src/main/res/layout/view_key_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_user_id_item.xml index 7de2f9c05..157903000 100644 --- a/OpenKeychain/src/main/res/layout/view_key_user_id_item.xml +++ b/OpenKeychain/src/main/res/layout/view_key_user_id_item.xml @@ -24,7 +24,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/certified" - android:src="@drawable/key_certify_ok_self" android:layout_gravity="center_horizontal" /> </LinearLayout> @@ -64,9 +63,9 @@ </LinearLayout> <ImageView + android:id="@+id/edit_image" android:layout_width="wrap_content" android:layout_height="match_parent" - android:id="@+id/edit_image" android:src="@drawable/ic_action_edit" android:padding="8dp" android:layout_gravity="center_horizontal" /> diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 46760691d..3a5e77d38 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -487,6 +487,15 @@ <item>Revoke Subkey</item> </string-array> + <!-- Create key --> + <string name="create_key_text">Enter Full Name, Email and Passphrase!</string> + <string name="create_key_upload">Upload key to keyserver</string> + <string name="create_key_empty">This field is required</string> + + <!-- View key --> + <string name="view_key_revoked">This key has been revoked!</string> + <string name="view_key_expired">This key is expired!</string> + <!-- Navigation Drawer --> <string name="nav_keys">Keys</string> <string name="nav_encrypt">Sign and Encrypt</string> diff --git a/Resources/gnupg-infographic/first_time_1.png b/Resources/graphics/first_time_1.png Binary files differindex 1f340df5c..1f340df5c 100644 --- a/Resources/gnupg-infographic/first_time_1.png +++ b/Resources/graphics/first_time_1.png diff --git a/Resources/gnupg-infographic/first_time_1.svg b/Resources/graphics/first_time_1.svg index 1f40c5ff3..1f40c5ff3 100644 --- a/Resources/gnupg-infographic/first_time_1.svg +++ b/Resources/graphics/first_time_1.svg diff --git a/Resources/gnupg-infographic/README b/Resources/graphics/originals/gnupg-infographic/README index f29c0a84a..f29c0a84a 100644 --- a/Resources/gnupg-infographic/README +++ b/Resources/graphics/originals/gnupg-infographic/README diff --git a/Resources/gnupg-infographic/gnupg-infographic.png b/Resources/graphics/originals/gnupg-infographic/gnupg-infographic.png Binary files differindex 52b8f21ac..52b8f21ac 100644 --- a/Resources/gnupg-infographic/gnupg-infographic.png +++ b/Resources/graphics/originals/gnupg-infographic/gnupg-infographic.png diff --git a/Resources/gnupg-infographic/gnupg-infographic.svg b/Resources/graphics/originals/gnupg-infographic/gnupg-infographic.svg index 9a17421e2..9a17421e2 100644 --- a/Resources/gnupg-infographic/gnupg-infographic.svg +++ b/Resources/graphics/originals/gnupg-infographic/gnupg-infographic.svg diff --git a/Resources/graphics/ic_action_nfc/NFC.png b/Resources/graphics/originals/ic_action_nfc/NFC.png Binary files differindex 96af64049..96af64049 100644 --- a/Resources/graphics/ic_action_nfc/NFC.png +++ b/Resources/graphics/originals/ic_action_nfc/NFC.png diff --git a/Resources/graphics/ic_action_qr_code/ic_menu_qr_code.svg b/Resources/graphics/originals/ic_action_qr_code/ic_menu_qr_code.svg index 5cbe9defc..5cbe9defc 100644 --- a/Resources/graphics/ic_action_qr_code/ic_menu_qr_code.svg +++ b/Resources/graphics/originals/ic_action_qr_code/ic_menu_qr_code.svg diff --git a/Resources/graphics/ic_launcher/AUTHORS b/Resources/graphics/originals/ic_launcher/AUTHORS index dbfcfb4fc..dbfcfb4fc 100644 --- a/Resources/graphics/ic_launcher/AUTHORS +++ b/Resources/graphics/originals/ic_launcher/AUTHORS diff --git a/Resources/graphics/ic_launcher/COPYING b/Resources/graphics/originals/ic_launcher/COPYING index 2faa27568..2faa27568 100644 --- a/Resources/graphics/ic_launcher/COPYING +++ b/Resources/graphics/originals/ic_launcher/COPYING diff --git a/Resources/graphics/ic_launcher/kgpg_key2_kopete.svgz b/Resources/graphics/originals/ic_launcher/kgpg_key2_kopete.svgz Binary files differindex 2d43afb83..2d43afb83 100644 --- a/Resources/graphics/ic_launcher/kgpg_key2_kopete.svgz +++ b/Resources/graphics/originals/ic_launcher/kgpg_key2_kopete.svgz diff --git a/Resources/graphics/originals/modernpgp-icons/README.md b/Resources/graphics/originals/modernpgp-icons/README.md new file mode 100644 index 000000000..c3cc37e5d --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/README.md @@ -0,0 +1,97 @@ +Icons +===== + +A collection of icons representing PGP's implementation in graphical interfaces. Icons are grouped together according to Encryption, Key, and Signature. + + +Projects +======== + +* [Mailpile](https://github.com/pagekite/Mailpile) - A fast modern webmail client for Mac, Linux, and Windows +* [OpenKeychain](https://github.com/open-keychain/open-keychain) - An Android app for managing PGP keys +* [GPGTools](https://github.com/GPGTools) - A well designed GUI interface for managing PGP keys on Mac OS + + +Encryption +========== + +### Open Lock + +The open lock icon SHOULD be used to represent a message or data that is going to be sent "unencrypted" + + + + +### Closed Lock + +The closed lock icon is used to represent data that WAS encrypted but HAS BEEN successfully decrypted or used for outgoing message or data that WILL BE encrypted. + + + + +### Error Lock + +The error lock icon represents data that IS encrypted and COULD NOT be decrypted. + + + + +Keys +==== + +### Fingerprint +Use this icon to represent fingrprint of a PGP key + + + +### Key +Use this icon to represent a PGP key or Key ID + + + + +Signatures +========== + +Here are the signature state names + description that Mailpile is currently using. + + +### Invalid +The signature was invalid or bad + + + + +### Revoked +Watch out, the signature was made with a key that has been revoked- this is not a good thing + + + + +### Expired +The signature was made with an expired key + + + + +### Unknown +The signature was made with an unknown key, so we can not verify it + + + + +### Unverified +The signature was good but it came from a key that is not verified yet + + + + +### Verified +The signature was good and came from a verified key, w00t! + + + + +### Error & None +The "error" state exists when there was a weird programatic error trying to analyze this signature. The "none" state is what some API's return when there is no signature of a message. There is no icons for either of these states. + diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed.png Binary files differnew file mode 100644 index 000000000..0003ce164 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed.svg b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed.svg new file mode 100644 index 000000000..286e89297 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>lock-closed</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="lock-closed" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M81.502,45.132 L79.577,45.132 L79.577,29.479 C79.479,10.285 66.387,-0.164 50.476,-0.164 C34.57,-0.164 20.304,10.782 20.801,29.479 L20.785,45.112 C20.785,45.112 21.025,45.133 19.825,45.133 C18.555,45.133 10.185,46.606 10.185,54.069 L10.185,89.893 C10.185,97.852 19.605,99.836 19.825,99.836 L81.027,99.836 C81.247,99.836 90.181,98.843 90.181,89.893 L90.181,54.564 C90.182,46.109 81.727,45.132 81.502,45.132 L81.502,45.132 Z M59.334,86.055 L41.061,86.055 L46.024,71.489 C43.904,70.077 42.496,67.623 42.496,64.824 C42.496,60.44 45.938,56.886 50.183,56.886 C54.428,56.886 57.87,60.443 57.87,64.824 C57.87,67.619 56.466,70.077 54.348,71.485 L59.334,86.055 L59.334,86.055 Z M34.261,45.132 L34.277,29.686 C34.277,19.737 40.348,11.783 50.183,11.783 C59.924,11.783 66.088,18.741 66.088,29.686 L66.098,45.132 L34.261,45.132 L34.261,45.132 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@200.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@200.png Binary files differnew file mode 100644 index 000000000..693b7c6f7 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@300.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@300.png Binary files differnew file mode 100644 index 000000000..6dea7ba27 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@512x.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@512x.png Binary files differnew file mode 100644 index 000000000..7cc3b343b --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-closed@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-error.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error.png Binary files differnew file mode 100644 index 000000000..e2bd291d2 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-error.svg b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error.svg new file mode 100644 index 000000000..d3c4e1d1d --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>lock-error</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="lock-error" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M80.459,45.474 L78.533,45.474 L78.533,29.826 C78.435,10.633 65.344,0.183 49.433,0.183 C33.527,0.183 19.265,11.128 19.761,29.826 L19.745,45.454 C19.745,45.454 19.985,45.475 18.784,45.475 C17.514,45.475 9.145,46.946 9.145,54.407 L9.145,90.228 C9.145,98.187 18.565,100.171 18.784,100.171 L79.984,100.171 C80.203,100.171 89.138,99.178 89.138,90.228 L89.138,54.901 C89.139,46.452 80.684,45.474 80.459,45.474 L80.459,45.474 Z M33.234,30.033 C33.234,20.084 39.304,12.131 49.14,12.131 C58.881,12.131 65.045,19.088 65.045,30.033 L65.055,45.474 L33.218,45.474 L33.234,30.033 L33.234,30.033 Z M59.4033767,90.873 L48.4582822,79.9279055 L38.2296593,90.3644491 L31.6365,83.7568884 L42.5824946,72.8153942 L32.3439707,62.5939721 L38.7544118,56.1079235 L49.7013065,67.0503177 L60.1234487,56.7100837 L66.6365,63.2240351 L55.6896053,74.1673294 L66.0091373,84.4778605 L59.4033767,90.873 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@200.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@200.png Binary files differnew file mode 100644 index 000000000..6a4ddf7ee --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@300.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@300.png Binary files differnew file mode 100644 index 000000000..225a82f43 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@512x.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@512x.png Binary files differnew file mode 100644 index 000000000..22c5cb14b --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-error@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-open.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open.png Binary files differnew file mode 100644 index 000000000..30b57db5d --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-open.svg b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open.svg new file mode 100644 index 000000000..9beb127af --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>lock-open</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="lock-open" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M79.577,26.479 C79.577,10.833 66.387,-0.164 50.476,-0.164 C34.57,-0.164 20.304,10.782 20.801,29.479 L20.785,45.112 C20.785,45.112 21.025,45.133 19.825,45.133 C18.555,45.133 10.185,46.606 10.185,54.069 L10.185,89.893 C10.185,97.852 19.605,99.836 19.825,99.836 L81.027,99.836 C81.247,99.836 90.181,98.843 90.181,89.893 L90.181,54.564 C90.181,46.107 81.726,45.13 81.5,45.13 L34.259,45.13 L34.275,29.684 C34.275,19.735 40.346,11.781 50.181,11.781 C59.922,11.781 66.664,18.164 66.664,29.164 L79.577,26.479 Z M59.334,86.055 L41.061,86.055 L46.024,71.49 C43.904,70.078 42.496,67.624 42.496,64.825 C42.496,60.44 45.938,56.887 50.183,56.887 C54.428,56.887 57.87,60.445 57.87,64.825 C57.87,67.62 56.466,70.078 54.348,71.485 L59.334,86.055 L59.334,86.055 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@200.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@200.png Binary files differnew file mode 100644 index 000000000..056e1b64b --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@300.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@300.png Binary files differnew file mode 100644 index 000000000..a0a12eada --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@512x.png b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@512x.png Binary files differnew file mode 100644 index 000000000..06a576338 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/encryption/lock-open@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint.png Binary files differnew file mode 100644 index 000000000..c4b79f295 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint.svg b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint.svg new file mode 100644 index 000000000..a5ad87050 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>icon-fingerprint</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="icon-fingerprint" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M46.214961,59.4153846 C46.6578855,58.1692308 46.0890176,56.7692308 44.9413761,56.2861538 C43.80081,55.8061538 42.5074138,56.4230769 42.0644893,57.6692308 C39.3673195,65.2492308 29.7984516,79.6507692 20.939961,84.9630769 C19.8644893,85.6107692 19.4739233,87.0815385 20.0668478,88.2507692 C20.4729799,89.0492308 21.2343006,89.5 22.0182629,89.5 C22.380527,89.5 22.7498667,89.4030769 23.0923195,89.2 C33.3475082,83.0492308 43.27581,67.6830769 46.214961,59.4153846 L46.214961,59.4153846 L46.214961,59.4153846 Z M54.2159044,64.0892308 C57.1465648,54.9215385 53.5069421,48.7230769 48.6036402,46.6476923 C43.6437346,44.5446154 36.7748667,46.3707692 33.7960931,53.8676923 C31.2630742,60.24 24.7225082,71.3646154 17.0824138,75.8953846 C16.0041119,76.5353846 15.6064704,78.0046154 16.1965648,79.1784615 C16.785244,80.3476923 18.1366591,80.7830769 19.2163761,80.1415385 C28.5135459,74.6230769 35.4913761,61.7969231 37.8814704,55.7861538 C39.7564704,51.0692308 43.9677912,49.8753846 46.9904327,51.1553846 C49.8220365,52.3523077 52.1031685,55.9630769 50.0144893,62.5015385 C46.7597723,72.6784615 34.6918478,86.4707692 26.8692063,91.1061538 C25.7894893,91.7446154 25.3918478,93.2138462 25.980527,94.3876923 C26.385244,95.1938462 27.1479799,95.6492308 27.9361874,95.6492308 C28.2942063,95.6492308 28.6593006,95.5553846 28.9989233,95.3538462 C37.6819421,90.2092308 50.5890176,75.4307692 54.2159044,64.0892308 L54.2159044,64.0892308 L54.2159044,64.0892308 Z M51.6319421,38.1907692 C48.2470365,36.76 44.5762817,36.3876923 41.0328855,37.1153846 C34.4385459,38.4661538 28.8701497,43.3830769 26.1319421,50.2676923 C23.2720365,57.4676923 19.0522251,62.6830769 13.5857157,65.7692308 C12.494678,66.3861538 12.0715648,67.8461538 12.6361874,69.0307692 C13.2050553,70.2138462 14.5437346,70.6753846 15.6361874,70.0630769 C22.035244,66.4492308 26.9413761,60.4323077 30.2159044,52.1846154 C32.3654327,46.7769231 36.7168478,42.92 41.8536402,41.8692308 C44.5932629,41.3092308 47.4135459,41.5923077 50.0173195,42.6969231 C56.4503384,45.4169231 61.6593006,53.7061538 57.8965648,65.4784615 C54.3064704,76.7061538 43.664961,89.4338462 35.0059987,96.2046154 C34.0083572,96.9846154 33.780527,98.4953846 34.499395,99.58 C34.9338289,100.236923 35.6144893,100.586154 36.3078855,100.586154 C36.7578855,100.586154 37.2121308,100.436923 37.605527,100.130769 C46.8319421,92.9184615 58.2078855,79.2430769 62.099395,67.0661538 C66.8328855,52.2692308 59.9909044,41.7246154 51.6319421,38.1907692 L51.6319421,38.1907692 L51.6319421,38.1907692 Z M54.6588289,29.7338462 C49.8291119,27.6892308 44.5833572,27.1584615 39.4876025,28.1984615 C30.1833572,30.1030769 22.9635459,35.76 19.1526968,44.1323077 L19.0465648,44.3646154 C17.7347723,47.2553846 16.3776968,50.2446154 14.114961,50.9969231 C12.9390176,51.3876923 12.2767534,52.74 12.6376025,54.0184615 C12.9956214,55.2953846 14.2451497,56.0138462 15.4140176,55.6246154 C19.5163761,54.26 21.4692063,49.9615385 23.0385459,46.5061538 L23.1432629,46.2753846 C26.3173195,39.3 32.414961,34.5676923 40.3126025,32.9523077 C44.580527,32.0753846 48.9871308,32.5230769 53.0470365,34.2415385 C63.4111874,38.6246154 71.1135459,51.7861538 65.7814704,68.4584615 C63.3475082,76.0676923 58.1286402,84.7061538 51.0843006,92.78 C50.2394893,93.7507692 50.2762817,95.2815385 51.1663761,96.2 C51.5965648,96.6446154 52.1484516,96.8630769 52.6989233,96.8630769 C53.2876025,96.8630769 53.8762817,96.6107692 54.3135459,96.1092308 C61.7838289,87.5430769 67.3479799,78.2892308 69.9843006,70.0446154 C76.2418478,50.4830769 67.0111874,34.9569231 54.6588289,29.7338462 L54.6588289,29.7338462 L54.6588289,29.7338462 Z M57.689961,21.2784615 C51.3998667,18.6123077 44.5635459,17.9261538 37.9437346,19.28 C28.2319421,21.2692308 20.1121308,27.2846154 14.4644893,36.6784615 C13.7909044,37.7969231 14.0795836,39.2953846 15.1097723,40.0276923 C16.139961,40.76 17.519678,40.4476923 18.1890176,39.3276923 C23.2295836,30.9446154 30.1522251,25.8 38.7659044,24.0369231 C44.580527,22.8461538 50.564961,23.4538462 56.0767534,25.7892308 C69.8215648,31.6015385 80.6597723,49.5784615 73.6677912,71.44 C72.6531685,74.6076923 71.2748667,77.8723077 69.5725082,81.14 C68.9668478,82.3015385 69.3418478,83.7784615 70.4116591,84.4384615 C70.7597723,84.6507692 71.1347723,84.7523077 71.5069421,84.7523077 C72.2824138,84.7523077 73.0338289,84.3107692 73.4456214,83.5261538 C75.2809987,80.0046154 76.769678,76.4753846 77.8720365,73.0307692 C85.7781685,48.3030769 73.3734516,27.9107692 57.689961,21.2784615 L57.689961,21.2784615 L57.689961,21.2784615 Z M62.7135459,13.4507692 C49.6706214,7.52 34.6904327,8.71384615 22.635244,16.6369231 C21.5838289,17.3292308 21.2470365,18.8153846 21.8838289,19.96 C22.5163761,21.1015385 23.880527,21.4676923 24.9390176,20.7784615 C35.7828855,13.6507692 49.2630742,12.5784615 60.9970365,17.9153846 C72.2003384,23.0107692 79.980527,33.14 82.9026968,46.4369231 C83.1460931,47.5476923 84.0588289,48.2938462 85.064961,48.2938462 C85.2361874,48.2938462 85.410244,48.2723077 85.5843006,48.2276923 C86.7800553,47.9169231 87.5159044,46.6123077 87.2314704,45.3123077 C83.969678,30.4738462 75.2611874,19.1584615 62.7135459,13.4507692 L62.7135459,13.4507692 L62.7135459,13.4507692 Z M35.639961,6.20461538 C62.7517534,1.18307692 75.60081,15.6230769 79.8673195,22.0646154 C80.3017534,22.7215385 80.9838289,23.0692308 81.67581,23.0692308 C82.12581,23.0692308 82.5800553,22.9215385 82.9734516,22.6138462 C83.9710931,21.8338462 84.1960931,20.3215385 83.4800553,19.2369231 C78.7239233,12.06 64.4597723,-4.04 34.8942063,1.43538462 C33.6814704,1.66 32.8692063,2.90923077 33.07581,4.22615385 C33.2809987,5.54461538 34.4343006,6.43230769 35.639961,6.20461538 L35.639961,6.20461538 L35.639961,6.20461538 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@200.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@200.png Binary files differnew file mode 100644 index 000000000..305dac198 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@300.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@300.png Binary files differnew file mode 100644 index 000000000..eff983359 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@512x.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@512x.png Binary files differnew file mode 100644 index 000000000..310b224aa --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-fingerprint@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-key.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-key.png Binary files differnew file mode 100644 index 000000000..66f4708fc --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-key.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-key.svg b/Resources/graphics/originals/modernpgp-icons/keys/icon-key.svg new file mode 100644 index 000000000..f584037c6 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-key.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>icon-key</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="icon-key" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M95.053,43.711 L46.435,43.711 C43.412,34.064 34.404,26 23.76,26 C10.638,26 0,36.638 0,49.761 C0,62.884 10.638,73.52 23.76,73.52 C34.805,73.52 44.087,64.918 46.751,54.709 L63.875,54.709 L63.877,64.651 L70.098,64.651 L70.123,54.709 L74.783,54.709 L74.786,64.641 L81.006,64.641 L81.03,54.709 L85.167,54.709 L85.167,64.641 L91.392,64.641 L91.392,54.709 L95.057,54.709 C98.581,54.709 100.001,52.734 100.001,49.209 C99.997,45.689 98.58,43.711 95.053,43.711 L95.053,43.711 Z M23.596,62.794 C16.399,62.794 10.563,56.958 10.563,49.76 C10.563,42.562 16.399,36.727 23.596,36.727 C30.794,36.727 36.629,42.562 36.629,49.76 C36.629,56.958 30.794,62.794 23.596,62.794 L23.596,62.794 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-key@200.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-key@200.png Binary files differnew file mode 100644 index 000000000..ccd7e10a1 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-key@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-key@300.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-key@300.png Binary files differnew file mode 100644 index 000000000..551f2ae69 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-key@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/keys/icon-key@512x.png b/Resources/graphics/originals/modernpgp-icons/keys/icon-key@512x.png Binary files differnew file mode 100644 index 000000000..1a4320ec6 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/keys/icon-key@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout.png Binary files differnew file mode 100644 index 000000000..661da48e2 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout.svg new file mode 100644 index 000000000..61ac8fdd0 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-expired-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-expired-cutout" sketch:type="MSArtboardGroup" transform="translate(0.110156, 0.000000)" fill="#000000"> + <path d="M5.21763502,25.9334098 C4.62201801,24.5421709 5.31408066,20.2649627 6.50270803,18.5737297 C7.69394204,16.8824967 14.8139764,11.1118682 18.0827017,9.51888655 C21.3514269,7.92852492 25.1232335,10.7136228 25.1232335,10.7136228 L31.1693326,18.5737297 C21.6564037,21.754453 12.2477403,33.889148 12.2477403,33.889148 C12.2477403,33.889148 5.81325202,27.3259588 5.21763502,25.9334098 Z M50.7969868,98.0040129 C30.5564763,98.0040129 14.1592664,81.3860653 14.1592664,60.910451 C14.1592664,41.4138456 29.0387981,25.4459175 47.9423376,23.9707712 L47.9423376,18.3341735 L41.6333009,18.3341735 L41.6333009,9.02828206 L59.2561767,9.02828206 L59.2561767,18.3341735 L53.6477076,18.3341735 L53.6477076,23.9707712 C72.5460092,25.4445909 87.4333977,41.412519 87.4333977,60.910451 C87.4333977,81.3847387 71.0296405,98.0040129 50.7969868,98.0040129 Z M51.541054,71.6933659 C57.6539179,71.6933659 62.6093732,66.7455263 62.6093732,60.6420567 C62.6093732,54.5385872 57.6539179,49.5907476 51.541054,49.5907476 C45.4281901,49.5907476 40.4727348,54.5385872 40.4727348,60.6420567 C40.4727348,66.7455263 45.4281901,71.6933659 51.541054,71.6933659 Z M96.3766201,25.9341425 C95.7811759,27.3252533 89.3433427,33.889148 89.3433427,33.889148 C89.3433427,33.889148 79.9321974,21.7542607 70.4233315,18.5751403 L76.4676764,10.7157573 C76.4676764,10.7157573 80.2396916,7.92829614 83.5087714,9.5185113 C86.7765483,11.1152759 93.8997286,16.884063 95.0880111,18.5751403 C96.2775965,20.2635977 96.9694584,24.540412 96.3766201,25.9341425 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@200.png Binary files differnew file mode 100644 index 000000000..965888294 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@300.png Binary files differnew file mode 100644 index 000000000..8c722274a --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@512x.png Binary files differnew file mode 100644 index 000000000..6c6038df0 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired-cutout@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired.png Binary files differnew file mode 100644 index 000000000..75a064188 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired.svg new file mode 100644 index 000000000..1d280572f --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-expired</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-expired" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.029,-0.384 L10,-0.384 C4.477,-0.384 0,4.094 0,9.616 L0,89.594 C0,95.117 4.477,99.594 10,99.594 L90.029,99.594 C95.556,99.594 100.035,95.117 100.035,89.594 L100.035,9.616 C100.035,4.094 95.557,-0.384 90.029,-0.384 L90.029,-0.384 Z M15.002,29.256 C14.545,28.194 15.076,24.929 15.988,23.638 C16.902,22.347 22.365,17.942 24.873,16.726 C27.381,15.512 30.275,17.638 30.275,17.638 L34.914,23.638 C27.615,26.066 20.396,35.329 20.396,35.329 C20.396,35.329 15.459,30.319 15.002,29.256 L15.002,29.256 Z M49.924,83.141 C34.467,83.141 21.945,70.614 21.945,55.179 C21.945,40.482 33.308,28.445 47.744,27.333 L47.744,23.084 L42.926,23.084 L42.926,16.069 L56.384,16.069 L56.384,23.084 L52.101,23.084 L52.101,27.333 C66.533,28.444 77.902,40.481 77.902,55.179 C77.902,70.613 65.375,83.141 49.924,83.141 L49.924,83.141 Z M85.035,29.258 C84.578,30.32 79.637,35.331 79.637,35.331 C79.637,35.331 72.414,26.067 65.116,23.64 L69.755,17.64 C69.755,17.64 72.65,15.512 75.159,16.726 C77.667,17.945 83.134,22.349 84.046,23.64 C84.959,24.929 85.49,28.194 85.035,29.258 L85.035,29.258 Z M49.459,63.892 C54.1307767,63.892 57.918,60.110597 57.918,55.446 C57.918,50.781403 54.1307767,47 49.459,47 C44.7872233,47 41,50.781403 41,55.446 C41,60.110597 44.7872233,63.892 49.459,63.892 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@200.png Binary files differnew file mode 100644 index 000000000..492ac9e80 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@300.png Binary files differnew file mode 100644 index 000000000..1ef0ac143 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@512x.png Binary files differnew file mode 100644 index 000000000..6b82cf9ab --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-expired@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout.png Binary files differnew file mode 100644 index 000000000..d2bfb07a0 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout.svg new file mode 100644 index 000000000..61fd2ace0 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-invalid-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-invalid-cutout" sketch:type="MSArtboardGroup" transform="translate(0.110156, 0.000000)" fill="#000000"> + <path d="M77.3119658,92 L50,64.6787909 L22.6865385,92 L8.00299145,77.3054987 L35.3149573,49.9977557 L8,22.6870202 L22.6850427,8.00149623 L50,35.3137279 L77.3149573,8 L92,22.6825315 L64.6850427,49.9977557 L91.9970085,77.3054987 L77.3119658,92 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@200.png Binary files differnew file mode 100644 index 000000000..a46488d2b --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@300.png Binary files differnew file mode 100644 index 000000000..dbb3f0639 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@512x.png Binary files differnew file mode 100644 index 000000000..7a6966cbf --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid-cutout@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid.png Binary files differnew file mode 100644 index 000000000..9bd4ee24a --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid.svg new file mode 100644 index 000000000..3eb204fdd --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-invalid</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-invalid" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.169,0.282 L10.169,0.282 C4.647,0.282 0.169,4.76 0.169,10.282 L0.169,90.261 C0.169,95.782 4.647,100.261 10.169,100.261 L90.169,100.261 C95.692,100.261 100.169,95.782 100.169,90.261 L100.169,10.282 C100.169,4.76 95.692,0.282 90.169,0.282 L90.169,0.282 Z M80.248,68.521 L70.43,78.342 L52.17,60.082 L33.909,78.342 L24.092,68.521 L42.352,50.27 L24.09,32.017 L33.908,22.202 L52.17,40.456 L70.432,22.201 L80.25,32.014 L61.988,50.27 L80.248,68.521 L80.248,68.521 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@200.png Binary files differnew file mode 100644 index 000000000..1033831aa --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@300.png Binary files differnew file mode 100644 index 000000000..78b62797a --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@512x.png Binary files differnew file mode 100644 index 000000000..7de3afefc --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-invalid@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout.png Binary files differnew file mode 100644 index 000000000..a5ce2e419 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout.svg new file mode 100644 index 000000000..0421286fe --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="101px" height="100px" viewBox="0 0 101 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-revoked-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-revoked-cutout" sketch:type="MSArtboardGroup" transform="translate(0.915625, 0.000000)" fill="#000000"> + <path d="M50.1457786,95.2902674 C25.2543974,95.2902674 5,75.0407401 5,50.1451337 C5,25.252107 25.2556872,5 50.1457786,5 C75.03587,5 95.2902674,25.252107 95.2902674,50.1451337 C95.2902674,75.0394503 75.0371599,95.2902674 50.1457786,95.2902674 Z M35.5297191,75.6701923 C39.8404345,78.1467253 44.8296167,79.569442 50.1464236,79.569442 C66.3793238,79.569442 79.5862102,66.3638454 79.5862102,50.1296554 C79.5862102,44.8115586 78.1622037,39.8223764 75.6843808,35.5116611 L35.5297191,75.6701923 Z M50.1464236,20.6911586 C33.9135233,20.6911586 20.7066369,33.8967551 20.7066369,50.1309452 C20.7066369,55.3523024 22.0803389,60.2563538 24.473031,64.512895 L64.5296632,24.4575526 C60.2718321,22.0635707 55.3690706,20.6911586 50.1464236,20.6911586 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@200.png Binary files differnew file mode 100644 index 000000000..7da8f0888 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@300.png Binary files differnew file mode 100644 index 000000000..73e769750 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@512x.png Binary files differnew file mode 100644 index 000000000..a07fbf223 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked-cutout@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked.png Binary files differnew file mode 100644 index 000000000..66f74079a --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked.svg new file mode 100644 index 000000000..5b6f7a420 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-revoked</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-revoked" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.087,-0.389 L10.087,-0.389 C4.564,-0.389 0.087,4.089 0.087,9.611 L0.087,89.589 C0.087,95.112 4.564,99.589 10.087,99.589 L90.087,99.589 C95.61,99.589 100.087,95.112 100.087,89.589 L100.087,9.611 C100.087,4.089 95.61,-0.389 90.087,-0.389 Z M38.756,69.4 C42.098,71.32 45.966,72.423 50.088,72.423 C62.673,72.423 72.912,62.185 72.912,49.599 C72.912,45.476 71.808,41.608 69.887,38.266 L38.756,69.4 Z M50.088,26.776 C37.503,26.776 27.264,37.014 27.264,49.6 C27.264,53.648 28.329,57.45 30.184,60.75 L61.239,29.696 C57.938,27.84 54.137,26.776 50.088,26.776 Z M50.088,84.6 C30.79,84.6 15.087,68.901 15.087,49.6 C15.087,30.301 30.791,14.6 50.088,14.6 C69.385,14.6 85.088,30.301 85.088,49.6 C85.088,68.9 69.386,84.6 50.088,84.6 L50.088,84.6 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@200.png Binary files differnew file mode 100644 index 000000000..b9f891b97 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@300.png Binary files differnew file mode 100644 index 000000000..2c333d4f9 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@512x.png Binary files differnew file mode 100644 index 000000000..4612b19db --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-revoked@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout.png Binary files differnew file mode 100644 index 000000000..1cef14805 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout.svg new file mode 100644 index 000000000..402bffcaa --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="101px" height="100px" viewBox="0 0 101 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unknown-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unknown-cutout" sketch:type="MSArtboardGroup" transform="translate(0.915625, 0.000000)" fill="#000000"> + <path d="M11.4743662,97.2253545 C1.98936285,97.2253571 -1.69987039,86.6466353 1.98936288,81.2764443 C2.36018089,80.2888073 37.5445854,9.4248374 37.6406733,9.21698534 C41.524789,0.483122973 56.8650161,0.0416071437 60.7924391,9.21698534 C60.7572519,9.19524917 98.2991929,81.8687547 97.9337883,81.2642177 C101.323931,86.2404407 96.9260512,97.2253571 88.8978453,97.2253545 C88.8978453,97.2253545 11.4756386,97.2879401 11.4743662,97.2253545 Z M50.5378687,73.3388569 C47.2443918,73.3388569 44.2703808,76.046195 44.2703808,79.5061732 C44.2703808,82.9729198 47.1388056,85.6802579 50.5378687,85.6802579 C53.9369317,85.6802579 56.8040029,82.9729198 56.8040029,79.5061732 C56.8053565,76.046195 53.8313455,73.3388569 50.5378687,73.3388569 Z M50.3063913,28.5 C46.5729719,28.5 42.719076,30.2990258 43.0805057,32.9143334 L45.8826007,65.934287 L54.7315355,65.934287 L57.5322768,32.9143334 C57.8937065,30.2990258 54.0398106,28.5 50.3063913,28.5 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@200.png Binary files differnew file mode 100644 index 000000000..fcf3cb4a6 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@300.png Binary files differnew file mode 100644 index 000000000..33a093b71 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@512x.png Binary files differnew file mode 100644 index 000000000..011c503f0 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown-cutout@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown.png Binary files differnew file mode 100644 index 000000000..0b04995b8 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown.svg new file mode 100644 index 000000000..f0494aa33 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unknown</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unknown" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90,0 L10,0 C4.478,0 0,4.478 0,10 L0,89.977 C0,95.5 4.478,99.977 10,99.977 L90,99.977 C95.523,99.977 100,95.5 100,89.977 L100,10 C100,4.477 95.523,0 90,0 L90,0 Z M81.015,83.034 C80.993,83.04 17.896,83.083 17.895,83.034 C14.215,83.038 11.855,75.247 14.581,71.294 C14.855,70.567 40.853,18.404 40.924,18.251 C43.794,11.822 55.129,11.497 58.031,18.251 C58.005,18.235 85.745,71.73 85.475,71.285 C87.98,74.948 85.14,82.991 81.015,83.034 Z M50.046,65.331 C47.613,65.331 45.416,67.331 45.416,69.887 C45.416,72.448 47.535,74.448 50.046,74.448 C52.557,74.448 54.675,72.448 54.675,69.887 C54.676,67.331 52.479,65.331 50.046,65.331 Z M49.875,29.502 C47.117,29.502 44.27,30.961 44.537,33.082 L46.607,59.861 L53.144,59.861 L55.213,33.082 C55.48,30.961 52.633,29.502 49.875,29.502 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@200.png Binary files differnew file mode 100644 index 000000000..bea9ecaf2 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@300.png Binary files differnew file mode 100644 index 000000000..2baa3b700 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@512x.png Binary files differnew file mode 100644 index 000000000..54dac1caa --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unknown@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout.png Binary files differnew file mode 100644 index 000000000..51c2ed7eb --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout.svg new file mode 100644 index 000000000..ffa98580a --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="101px" height="100px" viewBox="0 0 101 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unverified-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unverified-cutout" sketch:type="MSArtboardGroup" transform="translate(0.915625, 0.000000)" fill="#000000"> + <path d="M49.8900274,96.5521596 C75.8474106,96.5521596 96.8900274,75.5095428 96.8900274,49.5521596 C96.8900274,23.5947764 75.8474106,2.5521596 49.8900274,2.5521596 C23.9326441,2.5521596 2.89002736,23.5947764 2.89002736,49.5521596 C2.89002736,75.5095428 23.9326441,96.5521596 49.8900274,96.5521596 Z M42.9188472,79.4349375 L42.9188472,67.0146143 L55.3391704,67.0146143 L55.3391704,79.4349375 L42.9188472,79.4349375 Z M68.652586,41.8646591 C67.9712562,43.583078 67.1302842,45.0524085 66.1249189,46.2716815 C65.1167028,47.4919237 64.0039592,48.5318919 62.7800362,49.3906167 C61.5570634,50.25128 60.4006082,51.1080664 59.3135213,51.9677605 C58.2254842,52.829393 57.2609796,53.8121774 56.4181072,54.9209598 C55.5733342,56.0307115 55.0449948,57.4147511 54.8273874,59.0779247 L54.8273874,62.237567 L43.8168316,62.237567 L43.8168316,58.4954263 C43.9802747,56.114064 44.4278428,54.1165111 45.1623867,52.5095519 C45.89503,50.9025928 46.7531065,49.5292145 47.7309145,48.3923248 C48.7106231,47.2564044 49.7425954,46.2716815 50.8296823,45.4400947 C51.9177195,44.6104463 52.9230848,43.7769211 53.8476788,42.9463035 C54.7722728,42.1147166 55.5201202,41.2007465 56.0912209,40.2024546 C56.6623216,39.2041628 56.9188893,37.9577517 56.8647251,36.4612832 C56.8647251,33.9112774 56.2537138,32.0261534 55.030741,30.804942 C53.8058678,29.5876075 52.1058691,28.9760325 49.9326456,28.9760325 C48.4645081,28.9760325 47.2006746,29.2677664 46.1392445,29.8492956 C45.0797149,30.4317941 44.2092851,31.2071664 43.5298558,32.177351 C42.848526,33.1475357 42.3477439,34.2844253 42.0208576,35.5860816 C41.6939713,36.8906456 41.5305282,38.2901926 41.5305282,39.7866612 L29.5431146,39.7866612 C29.5953784,36.7917856 30.0999615,34.0479368 31.0521128,31.5541455 C32.0023636,29.0593851 33.3346152,26.8970655 35.0479174,25.0691252 C36.7612195,23.2382773 38.8270647,21.8115922 41.2464032,20.7832547 C43.6666919,19.7568556 46.3730062,19.2441406 49.3624951,19.2441406 C53.2224138,19.2441406 56.4447142,19.785932 59.0274958,20.8666072 C61.6093272,21.9482516 63.6894262,23.2935226 65.2668425,24.9024202 C66.8442588,26.5103485 67.9712562,28.2423365 68.6516357,30.0993532 C69.3310651,31.9573391 69.6703046,33.6883579 69.6703046,35.2962862 C69.6722051,37.9567825 69.3320153,40.1481786 68.652586,41.8646591 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@200.png Binary files differnew file mode 100644 index 000000000..10d328081 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@300.png Binary files differnew file mode 100644 index 000000000..b8fe6a994 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@512x.png Binary files differnew file mode 100644 index 000000000..93e562e3b --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified-cutout@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified.png Binary files differnew file mode 100644 index 000000000..00989a976 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified.svg new file mode 100644 index 000000000..6ce6d14dd --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unverified</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unverified" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90,0 L10,0 C4.477,0 0,4.478 0,10 L0,89.978 C0,95.501 4.477,99.978 10,99.978 L90,99.978 C95.523,99.978 100,95.501 100,89.978 L100,10 C100,4.478 95.523,0 90,0 L90,0 Z M56.359,80.095 L42.883,80.095 L42.883,66.877 L56.359,66.877 L56.359,80.095 L56.359,80.095 Z M70.222,40.709 C69.505,42.482 68.62,43.998 67.562,45.256 C66.501,46.515 65.33,47.588 64.042,48.474 C62.755,49.362 61.538,50.246 60.394,51.133 C59.249,52.022 58.234,53.036 57.347,54.18 C56.458,55.325 55.902,56.753 55.673,58.469 L55.673,61.729 L44.086,61.729 L44.086,57.868 C44.258,55.411 44.729,53.35 45.502,51.692 C46.273,50.034 47.176,48.617 48.205,47.444 C49.236,46.272 50.322,45.256 51.466,44.398 C52.611,43.542 53.669,42.682 54.642,41.825 C55.615,40.967 56.402,40.024 57.003,38.994 C57.604,37.964 57.874,36.678 57.817,35.134 C57.817,32.503 57.174,30.558 55.887,29.298 C54.598,28.042 52.809,27.411 50.522,27.411 C48.977,27.411 47.647,27.712 46.53,28.312 C45.415,28.913 44.499,29.713 43.784,30.714 C43.067,31.715 42.54,32.888 42.196,34.231 C41.852,35.577 41.68,37.021 41.68,38.565 L29.065,38.565 C29.12,35.475 29.651,32.644 30.653,30.071 C31.653,27.497 33.055,25.266 34.858,23.38 C36.661,21.491 38.835,20.019 41.381,18.958 C43.928,17.899 46.776,17.37 49.922,17.37 C53.984,17.37 57.375,17.929 60.093,19.044 C62.81,20.16 64.999,21.548 66.659,23.208 C68.319,24.867 69.505,26.654 70.221,28.57 C70.936,30.487 71.293,32.273 71.293,33.932 C71.295,36.677 70.937,38.938 70.222,40.709 L70.222,40.709 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@200.png Binary files differnew file mode 100644 index 000000000..2ee36bb15 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@300.png Binary files differnew file mode 100644 index 000000000..b1f30b334 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@512x.png Binary files differnew file mode 100644 index 000000000..56193245c --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-unverified@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout.png Binary files differnew file mode 100644 index 000000000..9a8c5efcd --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout.svg new file mode 100644 index 000000000..04356a977 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-verified-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-verified-cutout" sketch:type="MSArtboardGroup" transform="translate(0.110156, 0.000000)" fill="#000000"> + <path d="M50,97 C75.9573832,97 97,75.9573832 97,50 C97,24.0426168 75.9573832,3 50,3 C24.0426168,3 3,24.0426168 3,50 C3,75.9573832 24.0426168,97 50,97 Z M46.2732912,77.5085 L20,57.830916 L27.9184401,47.6349702 L43.3096859,59.5152262 L70.31112,23 L80.867825,30.7782191 L46.2732912,77.5085 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@200.png Binary files differnew file mode 100644 index 000000000..1adfc7fb6 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@300.png Binary files differnew file mode 100644 index 000000000..227504e6b --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@512x.png Binary files differnew file mode 100644 index 000000000..cf8ad067d --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified-cutout@512x.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified.png Binary files differnew file mode 100644 index 000000000..e19125e3c --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified.svg b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified.svg new file mode 100644 index 000000000..197273c79 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-verified</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-verified" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.003,-0.017 L10.001,-0.017 C4.478,-0.017 0.001,4.46 0.001,9.983 L0.001,89.96 C0.001,95.483 4.478,99.96 10.001,99.96 L90.003,99.96 C95.526,99.96 100.003,95.483 100.003,89.96 L100.003,9.983 C100.003,4.46 95.526,-0.017 90.003,-0.017 L90.003,-0.017 Z M46.194,79.729 L17.364,58.104 L26.053,46.899 L42.942,59.955 L72.571,19.826 L84.155,28.374 L46.194,79.729 L46.194,79.729 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@200.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@200.png Binary files differnew file mode 100644 index 000000000..9c3063010 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@200.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@300.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@300.png Binary files differnew file mode 100644 index 000000000..5de04efe1 --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@300.png diff --git a/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@512x.png b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@512x.png Binary files differnew file mode 100644 index 000000000..d52221f6c --- /dev/null +++ b/Resources/graphics/originals/modernpgp-icons/signatures/signature-verified@512x.png diff --git a/Resources/graphics/status_lock_closed.svg b/Resources/graphics/status_lock_closed.svg new file mode 100644 index 000000000..286e89297 --- /dev/null +++ b/Resources/graphics/status_lock_closed.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>lock-closed</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="lock-closed" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M81.502,45.132 L79.577,45.132 L79.577,29.479 C79.479,10.285 66.387,-0.164 50.476,-0.164 C34.57,-0.164 20.304,10.782 20.801,29.479 L20.785,45.112 C20.785,45.112 21.025,45.133 19.825,45.133 C18.555,45.133 10.185,46.606 10.185,54.069 L10.185,89.893 C10.185,97.852 19.605,99.836 19.825,99.836 L81.027,99.836 C81.247,99.836 90.181,98.843 90.181,89.893 L90.181,54.564 C90.182,46.109 81.727,45.132 81.502,45.132 L81.502,45.132 Z M59.334,86.055 L41.061,86.055 L46.024,71.489 C43.904,70.077 42.496,67.623 42.496,64.824 C42.496,60.44 45.938,56.886 50.183,56.886 C54.428,56.886 57.87,60.443 57.87,64.824 C57.87,67.619 56.466,70.077 54.348,71.485 L59.334,86.055 L59.334,86.055 Z M34.261,45.132 L34.277,29.686 C34.277,19.737 40.348,11.783 50.183,11.783 C59.924,11.783 66.088,18.741 66.088,29.686 L66.098,45.132 L34.261,45.132 L34.261,45.132 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_lock_error.svg b/Resources/graphics/status_lock_error.svg new file mode 100644 index 000000000..d3c4e1d1d --- /dev/null +++ b/Resources/graphics/status_lock_error.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>lock-error</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="lock-error" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M80.459,45.474 L78.533,45.474 L78.533,29.826 C78.435,10.633 65.344,0.183 49.433,0.183 C33.527,0.183 19.265,11.128 19.761,29.826 L19.745,45.454 C19.745,45.454 19.985,45.475 18.784,45.475 C17.514,45.475 9.145,46.946 9.145,54.407 L9.145,90.228 C9.145,98.187 18.565,100.171 18.784,100.171 L79.984,100.171 C80.203,100.171 89.138,99.178 89.138,90.228 L89.138,54.901 C89.139,46.452 80.684,45.474 80.459,45.474 L80.459,45.474 Z M33.234,30.033 C33.234,20.084 39.304,12.131 49.14,12.131 C58.881,12.131 65.045,19.088 65.045,30.033 L65.055,45.474 L33.218,45.474 L33.234,30.033 L33.234,30.033 Z M59.4033767,90.873 L48.4582822,79.9279055 L38.2296593,90.3644491 L31.6365,83.7568884 L42.5824946,72.8153942 L32.3439707,62.5939721 L38.7544118,56.1079235 L49.7013065,67.0503177 L60.1234487,56.7100837 L66.6365,63.2240351 L55.6896053,74.1673294 L66.0091373,84.4778605 L59.4033767,90.873 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_lock_open.svg b/Resources/graphics/status_lock_open.svg new file mode 100644 index 000000000..9beb127af --- /dev/null +++ b/Resources/graphics/status_lock_open.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>lock-open</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="lock-open" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M79.577,26.479 C79.577,10.833 66.387,-0.164 50.476,-0.164 C34.57,-0.164 20.304,10.782 20.801,29.479 L20.785,45.112 C20.785,45.112 21.025,45.133 19.825,45.133 C18.555,45.133 10.185,46.606 10.185,54.069 L10.185,89.893 C10.185,97.852 19.605,99.836 19.825,99.836 L81.027,99.836 C81.247,99.836 90.181,98.843 90.181,89.893 L90.181,54.564 C90.181,46.107 81.726,45.13 81.5,45.13 L34.259,45.13 L34.275,29.684 C34.275,19.735 40.346,11.781 50.181,11.781 C59.922,11.781 66.664,18.164 66.664,29.164 L79.577,26.479 Z M59.334,86.055 L41.061,86.055 L46.024,71.49 C43.904,70.078 42.496,67.624 42.496,64.825 C42.496,60.44 45.938,56.887 50.183,56.887 C54.428,56.887 57.87,60.445 57.87,64.825 C57.87,67.62 56.466,70.078 54.348,71.485 L59.334,86.055 L59.334,86.055 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_expired.svg b/Resources/graphics/status_signature_expired.svg new file mode 100644 index 000000000..1d280572f --- /dev/null +++ b/Resources/graphics/status_signature_expired.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-expired</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-expired" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.029,-0.384 L10,-0.384 C4.477,-0.384 0,4.094 0,9.616 L0,89.594 C0,95.117 4.477,99.594 10,99.594 L90.029,99.594 C95.556,99.594 100.035,95.117 100.035,89.594 L100.035,9.616 C100.035,4.094 95.557,-0.384 90.029,-0.384 L90.029,-0.384 Z M15.002,29.256 C14.545,28.194 15.076,24.929 15.988,23.638 C16.902,22.347 22.365,17.942 24.873,16.726 C27.381,15.512 30.275,17.638 30.275,17.638 L34.914,23.638 C27.615,26.066 20.396,35.329 20.396,35.329 C20.396,35.329 15.459,30.319 15.002,29.256 L15.002,29.256 Z M49.924,83.141 C34.467,83.141 21.945,70.614 21.945,55.179 C21.945,40.482 33.308,28.445 47.744,27.333 L47.744,23.084 L42.926,23.084 L42.926,16.069 L56.384,16.069 L56.384,23.084 L52.101,23.084 L52.101,27.333 C66.533,28.444 77.902,40.481 77.902,55.179 C77.902,70.613 65.375,83.141 49.924,83.141 L49.924,83.141 Z M85.035,29.258 C84.578,30.32 79.637,35.331 79.637,35.331 C79.637,35.331 72.414,26.067 65.116,23.64 L69.755,17.64 C69.755,17.64 72.65,15.512 75.159,16.726 C77.667,17.945 83.134,22.349 84.046,23.64 C84.959,24.929 85.49,28.194 85.035,29.258 L85.035,29.258 Z M49.459,63.892 C54.1307767,63.892 57.918,60.110597 57.918,55.446 C57.918,50.781403 54.1307767,47 49.459,47 C44.7872233,47 41,50.781403 41,55.446 C41,60.110597 44.7872233,63.892 49.459,63.892 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_expired_cutout.svg b/Resources/graphics/status_signature_expired_cutout.svg new file mode 100644 index 000000000..61ac8fdd0 --- /dev/null +++ b/Resources/graphics/status_signature_expired_cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-expired-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-expired-cutout" sketch:type="MSArtboardGroup" transform="translate(0.110156, 0.000000)" fill="#000000"> + <path d="M5.21763502,25.9334098 C4.62201801,24.5421709 5.31408066,20.2649627 6.50270803,18.5737297 C7.69394204,16.8824967 14.8139764,11.1118682 18.0827017,9.51888655 C21.3514269,7.92852492 25.1232335,10.7136228 25.1232335,10.7136228 L31.1693326,18.5737297 C21.6564037,21.754453 12.2477403,33.889148 12.2477403,33.889148 C12.2477403,33.889148 5.81325202,27.3259588 5.21763502,25.9334098 Z M50.7969868,98.0040129 C30.5564763,98.0040129 14.1592664,81.3860653 14.1592664,60.910451 C14.1592664,41.4138456 29.0387981,25.4459175 47.9423376,23.9707712 L47.9423376,18.3341735 L41.6333009,18.3341735 L41.6333009,9.02828206 L59.2561767,9.02828206 L59.2561767,18.3341735 L53.6477076,18.3341735 L53.6477076,23.9707712 C72.5460092,25.4445909 87.4333977,41.412519 87.4333977,60.910451 C87.4333977,81.3847387 71.0296405,98.0040129 50.7969868,98.0040129 Z M51.541054,71.6933659 C57.6539179,71.6933659 62.6093732,66.7455263 62.6093732,60.6420567 C62.6093732,54.5385872 57.6539179,49.5907476 51.541054,49.5907476 C45.4281901,49.5907476 40.4727348,54.5385872 40.4727348,60.6420567 C40.4727348,66.7455263 45.4281901,71.6933659 51.541054,71.6933659 Z M96.3766201,25.9341425 C95.7811759,27.3252533 89.3433427,33.889148 89.3433427,33.889148 C89.3433427,33.889148 79.9321974,21.7542607 70.4233315,18.5751403 L76.4676764,10.7157573 C76.4676764,10.7157573 80.2396916,7.92829614 83.5087714,9.5185113 C86.7765483,11.1152759 93.8997286,16.884063 95.0880111,18.5751403 C96.2775965,20.2635977 96.9694584,24.540412 96.3766201,25.9341425 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_invalid.svg b/Resources/graphics/status_signature_invalid.svg new file mode 100644 index 000000000..3eb204fdd --- /dev/null +++ b/Resources/graphics/status_signature_invalid.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-invalid</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-invalid" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.169,0.282 L10.169,0.282 C4.647,0.282 0.169,4.76 0.169,10.282 L0.169,90.261 C0.169,95.782 4.647,100.261 10.169,100.261 L90.169,100.261 C95.692,100.261 100.169,95.782 100.169,90.261 L100.169,10.282 C100.169,4.76 95.692,0.282 90.169,0.282 L90.169,0.282 Z M80.248,68.521 L70.43,78.342 L52.17,60.082 L33.909,78.342 L24.092,68.521 L42.352,50.27 L24.09,32.017 L33.908,22.202 L52.17,40.456 L70.432,22.201 L80.25,32.014 L61.988,50.27 L80.248,68.521 L80.248,68.521 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_invalid_cutout.svg b/Resources/graphics/status_signature_invalid_cutout.svg new file mode 100644 index 000000000..61fd2ace0 --- /dev/null +++ b/Resources/graphics/status_signature_invalid_cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-invalid-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-invalid-cutout" sketch:type="MSArtboardGroup" transform="translate(0.110156, 0.000000)" fill="#000000"> + <path d="M77.3119658,92 L50,64.6787909 L22.6865385,92 L8.00299145,77.3054987 L35.3149573,49.9977557 L8,22.6870202 L22.6850427,8.00149623 L50,35.3137279 L77.3149573,8 L92,22.6825315 L64.6850427,49.9977557 L91.9970085,77.3054987 L77.3119658,92 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_revoked.svg b/Resources/graphics/status_signature_revoked.svg new file mode 100644 index 000000000..5b6f7a420 --- /dev/null +++ b/Resources/graphics/status_signature_revoked.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-revoked</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-revoked" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.087,-0.389 L10.087,-0.389 C4.564,-0.389 0.087,4.089 0.087,9.611 L0.087,89.589 C0.087,95.112 4.564,99.589 10.087,99.589 L90.087,99.589 C95.61,99.589 100.087,95.112 100.087,89.589 L100.087,9.611 C100.087,4.089 95.61,-0.389 90.087,-0.389 Z M38.756,69.4 C42.098,71.32 45.966,72.423 50.088,72.423 C62.673,72.423 72.912,62.185 72.912,49.599 C72.912,45.476 71.808,41.608 69.887,38.266 L38.756,69.4 Z M50.088,26.776 C37.503,26.776 27.264,37.014 27.264,49.6 C27.264,53.648 28.329,57.45 30.184,60.75 L61.239,29.696 C57.938,27.84 54.137,26.776 50.088,26.776 Z M50.088,84.6 C30.79,84.6 15.087,68.901 15.087,49.6 C15.087,30.301 30.791,14.6 50.088,14.6 C69.385,14.6 85.088,30.301 85.088,49.6 C85.088,68.9 69.386,84.6 50.088,84.6 L50.088,84.6 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_revoked_cutout.svg b/Resources/graphics/status_signature_revoked_cutout.svg new file mode 100644 index 000000000..0421286fe --- /dev/null +++ b/Resources/graphics/status_signature_revoked_cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="101px" height="100px" viewBox="0 0 101 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-revoked-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-revoked-cutout" sketch:type="MSArtboardGroup" transform="translate(0.915625, 0.000000)" fill="#000000"> + <path d="M50.1457786,95.2902674 C25.2543974,95.2902674 5,75.0407401 5,50.1451337 C5,25.252107 25.2556872,5 50.1457786,5 C75.03587,5 95.2902674,25.252107 95.2902674,50.1451337 C95.2902674,75.0394503 75.0371599,95.2902674 50.1457786,95.2902674 Z M35.5297191,75.6701923 C39.8404345,78.1467253 44.8296167,79.569442 50.1464236,79.569442 C66.3793238,79.569442 79.5862102,66.3638454 79.5862102,50.1296554 C79.5862102,44.8115586 78.1622037,39.8223764 75.6843808,35.5116611 L35.5297191,75.6701923 Z M50.1464236,20.6911586 C33.9135233,20.6911586 20.7066369,33.8967551 20.7066369,50.1309452 C20.7066369,55.3523024 22.0803389,60.2563538 24.473031,64.512895 L64.5296632,24.4575526 C60.2718321,22.0635707 55.3690706,20.6911586 50.1464236,20.6911586 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_unknown.svg b/Resources/graphics/status_signature_unknown.svg new file mode 100644 index 000000000..f0494aa33 --- /dev/null +++ b/Resources/graphics/status_signature_unknown.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unknown</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unknown" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90,0 L10,0 C4.478,0 0,4.478 0,10 L0,89.977 C0,95.5 4.478,99.977 10,99.977 L90,99.977 C95.523,99.977 100,95.5 100,89.977 L100,10 C100,4.477 95.523,0 90,0 L90,0 Z M81.015,83.034 C80.993,83.04 17.896,83.083 17.895,83.034 C14.215,83.038 11.855,75.247 14.581,71.294 C14.855,70.567 40.853,18.404 40.924,18.251 C43.794,11.822 55.129,11.497 58.031,18.251 C58.005,18.235 85.745,71.73 85.475,71.285 C87.98,74.948 85.14,82.991 81.015,83.034 Z M50.046,65.331 C47.613,65.331 45.416,67.331 45.416,69.887 C45.416,72.448 47.535,74.448 50.046,74.448 C52.557,74.448 54.675,72.448 54.675,69.887 C54.676,67.331 52.479,65.331 50.046,65.331 Z M49.875,29.502 C47.117,29.502 44.27,30.961 44.537,33.082 L46.607,59.861 L53.144,59.861 L55.213,33.082 C55.48,30.961 52.633,29.502 49.875,29.502 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_unknown_cutout.svg b/Resources/graphics/status_signature_unknown_cutout.svg new file mode 100644 index 000000000..402bffcaa --- /dev/null +++ b/Resources/graphics/status_signature_unknown_cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="101px" height="100px" viewBox="0 0 101 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unknown-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unknown-cutout" sketch:type="MSArtboardGroup" transform="translate(0.915625, 0.000000)" fill="#000000"> + <path d="M11.4743662,97.2253545 C1.98936285,97.2253571 -1.69987039,86.6466353 1.98936288,81.2764443 C2.36018089,80.2888073 37.5445854,9.4248374 37.6406733,9.21698534 C41.524789,0.483122973 56.8650161,0.0416071437 60.7924391,9.21698534 C60.7572519,9.19524917 98.2991929,81.8687547 97.9337883,81.2642177 C101.323931,86.2404407 96.9260512,97.2253571 88.8978453,97.2253545 C88.8978453,97.2253545 11.4756386,97.2879401 11.4743662,97.2253545 Z M50.5378687,73.3388569 C47.2443918,73.3388569 44.2703808,76.046195 44.2703808,79.5061732 C44.2703808,82.9729198 47.1388056,85.6802579 50.5378687,85.6802579 C53.9369317,85.6802579 56.8040029,82.9729198 56.8040029,79.5061732 C56.8053565,76.046195 53.8313455,73.3388569 50.5378687,73.3388569 Z M50.3063913,28.5 C46.5729719,28.5 42.719076,30.2990258 43.0805057,32.9143334 L45.8826007,65.934287 L54.7315355,65.934287 L57.5322768,32.9143334 C57.8937065,30.2990258 54.0398106,28.5 50.3063913,28.5 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_unverified.svg b/Resources/graphics/status_signature_unverified.svg new file mode 100644 index 000000000..6ce6d14dd --- /dev/null +++ b/Resources/graphics/status_signature_unverified.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unverified</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unverified" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90,0 L10,0 C4.477,0 0,4.478 0,10 L0,89.978 C0,95.501 4.477,99.978 10,99.978 L90,99.978 C95.523,99.978 100,95.501 100,89.978 L100,10 C100,4.478 95.523,0 90,0 L90,0 Z M56.359,80.095 L42.883,80.095 L42.883,66.877 L56.359,66.877 L56.359,80.095 L56.359,80.095 Z M70.222,40.709 C69.505,42.482 68.62,43.998 67.562,45.256 C66.501,46.515 65.33,47.588 64.042,48.474 C62.755,49.362 61.538,50.246 60.394,51.133 C59.249,52.022 58.234,53.036 57.347,54.18 C56.458,55.325 55.902,56.753 55.673,58.469 L55.673,61.729 L44.086,61.729 L44.086,57.868 C44.258,55.411 44.729,53.35 45.502,51.692 C46.273,50.034 47.176,48.617 48.205,47.444 C49.236,46.272 50.322,45.256 51.466,44.398 C52.611,43.542 53.669,42.682 54.642,41.825 C55.615,40.967 56.402,40.024 57.003,38.994 C57.604,37.964 57.874,36.678 57.817,35.134 C57.817,32.503 57.174,30.558 55.887,29.298 C54.598,28.042 52.809,27.411 50.522,27.411 C48.977,27.411 47.647,27.712 46.53,28.312 C45.415,28.913 44.499,29.713 43.784,30.714 C43.067,31.715 42.54,32.888 42.196,34.231 C41.852,35.577 41.68,37.021 41.68,38.565 L29.065,38.565 C29.12,35.475 29.651,32.644 30.653,30.071 C31.653,27.497 33.055,25.266 34.858,23.38 C36.661,21.491 38.835,20.019 41.381,18.958 C43.928,17.899 46.776,17.37 49.922,17.37 C53.984,17.37 57.375,17.929 60.093,19.044 C62.81,20.16 64.999,21.548 66.659,23.208 C68.319,24.867 69.505,26.654 70.221,28.57 C70.936,30.487 71.293,32.273 71.293,33.932 C71.295,36.677 70.937,38.938 70.222,40.709 L70.222,40.709 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_unverified_cutout.svg b/Resources/graphics/status_signature_unverified_cutout.svg new file mode 100644 index 000000000..ffa98580a --- /dev/null +++ b/Resources/graphics/status_signature_unverified_cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="101px" height="100px" viewBox="0 0 101 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-unverified-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-unverified-cutout" sketch:type="MSArtboardGroup" transform="translate(0.915625, 0.000000)" fill="#000000"> + <path d="M49.8900274,96.5521596 C75.8474106,96.5521596 96.8900274,75.5095428 96.8900274,49.5521596 C96.8900274,23.5947764 75.8474106,2.5521596 49.8900274,2.5521596 C23.9326441,2.5521596 2.89002736,23.5947764 2.89002736,49.5521596 C2.89002736,75.5095428 23.9326441,96.5521596 49.8900274,96.5521596 Z M42.9188472,79.4349375 L42.9188472,67.0146143 L55.3391704,67.0146143 L55.3391704,79.4349375 L42.9188472,79.4349375 Z M68.652586,41.8646591 C67.9712562,43.583078 67.1302842,45.0524085 66.1249189,46.2716815 C65.1167028,47.4919237 64.0039592,48.5318919 62.7800362,49.3906167 C61.5570634,50.25128 60.4006082,51.1080664 59.3135213,51.9677605 C58.2254842,52.829393 57.2609796,53.8121774 56.4181072,54.9209598 C55.5733342,56.0307115 55.0449948,57.4147511 54.8273874,59.0779247 L54.8273874,62.237567 L43.8168316,62.237567 L43.8168316,58.4954263 C43.9802747,56.114064 44.4278428,54.1165111 45.1623867,52.5095519 C45.89503,50.9025928 46.7531065,49.5292145 47.7309145,48.3923248 C48.7106231,47.2564044 49.7425954,46.2716815 50.8296823,45.4400947 C51.9177195,44.6104463 52.9230848,43.7769211 53.8476788,42.9463035 C54.7722728,42.1147166 55.5201202,41.2007465 56.0912209,40.2024546 C56.6623216,39.2041628 56.9188893,37.9577517 56.8647251,36.4612832 C56.8647251,33.9112774 56.2537138,32.0261534 55.030741,30.804942 C53.8058678,29.5876075 52.1058691,28.9760325 49.9326456,28.9760325 C48.4645081,28.9760325 47.2006746,29.2677664 46.1392445,29.8492956 C45.0797149,30.4317941 44.2092851,31.2071664 43.5298558,32.177351 C42.848526,33.1475357 42.3477439,34.2844253 42.0208576,35.5860816 C41.6939713,36.8906456 41.5305282,38.2901926 41.5305282,39.7866612 L29.5431146,39.7866612 C29.5953784,36.7917856 30.0999615,34.0479368 31.0521128,31.5541455 C32.0023636,29.0593851 33.3346152,26.8970655 35.0479174,25.0691252 C36.7612195,23.2382773 38.8270647,21.8115922 41.2464032,20.7832547 C43.6666919,19.7568556 46.3730062,19.2441406 49.3624951,19.2441406 C53.2224138,19.2441406 56.4447142,19.785932 59.0274958,20.8666072 C61.6093272,21.9482516 63.6894262,23.2935226 65.2668425,24.9024202 C66.8442588,26.5103485 67.9712562,28.2423365 68.6516357,30.0993532 C69.3310651,31.9573391 69.6703046,33.6883579 69.6703046,35.2962862 C69.6722051,37.9567825 69.3320153,40.1481786 68.652586,41.8646591 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_verified.svg b/Resources/graphics/status_signature_verified.svg new file mode 100644 index 000000000..197273c79 --- /dev/null +++ b/Resources/graphics/status_signature_verified.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-verified</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-verified" sketch:type="MSArtboardGroup" fill="#000000"> + <path d="M90.003,-0.017 L10.001,-0.017 C4.478,-0.017 0.001,4.46 0.001,9.983 L0.001,89.96 C0.001,95.483 4.478,99.96 10.001,99.96 L90.003,99.96 C95.526,99.96 100.003,95.483 100.003,89.96 L100.003,9.983 C100.003,4.46 95.526,-0.017 90.003,-0.017 L90.003,-0.017 Z M46.194,79.729 L17.364,58.104 L26.053,46.899 L42.942,59.955 L72.571,19.826 L84.155,28.374 L46.194,79.729 L46.194,79.729 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/status_signature_verified_cutout.svg b/Resources/graphics/status_signature_verified_cutout.svg new file mode 100644 index 000000000..04356a977 --- /dev/null +++ b/Resources/graphics/status_signature_verified_cutout.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> + <!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch --> + <title>signature-verified-cutout</title> + <desc>Created with Sketch.</desc> + <defs></defs> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> + <g id="signature-verified-cutout" sketch:type="MSArtboardGroup" transform="translate(0.110156, 0.000000)" fill="#000000"> + <path d="M50,97 C75.9573832,97 97,75.9573832 97,50 C97,24.0426168 75.9573832,3 50,3 C24.0426168,3 3,24.0426168 3,50 C3,75.9573832 24.0426168,97 50,97 Z M46.2732912,77.5085 L20,57.830916 L27.9184401,47.6349702 L43.3096859,59.5152262 L70.31112,23 L80.867825,30.7782191 L46.2732912,77.5085 Z" sketch:type="MSShapeGroup"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/Resources/graphics/update-drawables.sh b/Resources/graphics/update-drawables.sh index c1dfc77e6..c319a869a 100755 --- a/Resources/graphics/update-drawables.sh +++ b/Resources/graphics/update-drawables.sh @@ -39,8 +39,18 @@ inkscape -w 512 -h 512 -e "$PLAY_DIR/$NAME.png" $NAME.svg for NAME in "ic_action_nfc" "ic_action_qr_code" do +echo $NAME inkscape -w 32 -h 32 -e "$MDPI_DIR/$NAME.png" $NAME.svg inkscape -w 48 -h 48 -e "$HDPI_DIR/$NAME.png" $NAME.svg inkscape -w 64 -h 64 -e "$XDPI_DIR/$NAME.png" $NAME.svg inkscape -w 96 -h 96 -e "$XXDPI_DIR/$NAME.png" $NAME.svg +done + +for NAME in status*.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
\ No newline at end of file diff --git a/build.gradle b/build.gradle index 05e90eb17..2e7ab3d86 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { dependencies { // NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information - classpath 'com.android.tools.build:gradle:0.12.0' + classpath 'com.android.tools.build:gradle:0.12.2' } } @@ -24,3 +24,12 @@ subprojects { maxParallelForks = 1 } } + +// Ignore tests for external dependency +project(':extern:spongycastle') { + subprojects { + // Need to re-apply the plugin here otherwise the test property below can't be set. + apply plugin: 'java' + test.enabled = false + } +} diff --git a/extern/openkeychain-api-lib b/extern/openkeychain-api-lib -Subproject 48941ca6ec58c4583cdcf9d647ad5174925e2f2 +Subproject 02cb8ad24b780f3b97073f2526f83057c99d424 diff --git a/extern/openpgp-api-lib b/extern/openpgp-api-lib -Subproject 869ab96e6dcd4821fd5360248429e49dae6fbac +Subproject e515a49027fc5de36b8977cf8b096afc9838a9b diff --git a/extern/spongycastle b/extern/spongycastle -Subproject 41ef8b1f539dd3d8748865d68a34ed307f699ee +Subproject 9e4fb80c4f8efb8a0f8fd0c1cc1e74a421d1eb7 |