diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
index 6f521efa2..60874de63 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java
@@ -21,16 +21,14 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
import android.widget.TextView;
import org.openintents.openpgp.OpenPgpSignatureResult;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.pgp.KeyRing;
+import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.service.results.DecryptVerifyResult;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
@@ -43,14 +41,19 @@ public abstract class DecryptFragment extends Fragment {
protected long mSignatureKeyId = 0;
protected LinearLayout mResultLayout;
- protected RelativeLayout mSignatureLayout;
- protected TextView mResultText;
- protected ImageView mSignatureStatusImage;
- protected TextView mUserId;
- protected TextView mUserIdRest;
+ protected ImageView mEncryptionIcon;
+ protected TextView mEncryptionText;
+ protected ImageView mSignatureIcon;
+ protected TextView mSignatureText;
+
+ protected View mSignatureLayout;
+ protected View mSignatureDivider1;
+ protected View mSignatureDivider2;
+ protected TextView mSignatureName;
+ protected TextView mSignatureEmail;
+ protected TextView mSignatureAction;
- protected Button mLookupKey;
// State
protected String mPassphrase;
@@ -60,20 +63,20 @@ public abstract class DecryptFragment extends Fragment {
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- mResultLayout = (LinearLayout) getView().findViewById(R.id.result);
- mResultText = (TextView) getView().findViewById(R.id.result_text);
- mSignatureLayout = (RelativeLayout) getView().findViewById(R.id.result_signature);
- mSignatureStatusImage = (ImageView) getView().findViewById(R.id.ic_signature_status);
- mUserId = (TextView) getView().findViewById(R.id.mainUserId);
- mUserIdRest = (TextView) getView().findViewById(R.id.mainUserIdRest);
- mLookupKey = (Button) getView().findViewById(R.id.lookup_key);
- mLookupKey.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- lookupUnknownKey(mSignatureKeyId);
- }
- });
+ mResultLayout = (LinearLayout) getView().findViewById(R.id.result_main_layout);
mResultLayout.setVisibility(View.GONE);
+
+ mEncryptionIcon = (ImageView) getView().findViewById(R.id.result_encryption_icon);
+ mEncryptionText = (TextView) getView().findViewById(R.id.result_encryption_text);
+ mSignatureIcon = (ImageView) getView().findViewById(R.id.result_signature_icon);
+ mSignatureText = (TextView) getView().findViewById(R.id.result_signature_text);
+ mSignatureLayout = getView().findViewById(R.id.result_signature_layout);
+ mSignatureDivider1 = getView().findViewById(R.id.result_signature_divider1);
+ mSignatureDivider2 = getView().findViewById(R.id.result_signature_divider2);
+ mSignatureName = (TextView) getView().findViewById(R.id.result_signature_name);
+ mSignatureEmail = (TextView) getView().findViewById(R.id.result_signature_email);
+ mSignatureAction = (TextView) getView().findViewById(R.id.result_signature_action);
+
}
private void lookupUnknownKey(long unknownKeyId) {
@@ -103,101 +106,114 @@ public abstract class DecryptFragment extends Fragment {
}
protected void onResult(DecryptVerifyResult decryptVerifyResult) {
- OpenPgpSignatureResult signatureResult = decryptVerifyResult.getSignatureResult();
+ final OpenPgpSignatureResult signatureResult = decryptVerifyResult.getSignatureResult();
mSignatureKeyId = 0;
mResultLayout.setVisibility(View.VISIBLE);
if (signatureResult != null) {
- mSignatureStatusImage.setVisibility(View.VISIBLE);
-
mSignatureKeyId = signatureResult.getKeyId();
String userId = signatureResult.getPrimaryUserId();
String[] userIdSplit = KeyRing.splitUserId(userId);
if (userIdSplit[0] != null) {
- mUserId.setText(userIdSplit[0]);
+ mSignatureName.setText(userIdSplit[0]);
} else {
- mUserId.setText(R.string.user_id_no_name);
+ mSignatureName.setText(R.string.user_id_no_name);
}
if (userIdSplit[1] != null) {
- mUserIdRest.setText(userIdSplit[1]);
+ mSignatureEmail.setText(userIdSplit[1]);
} else {
- mUserIdRest.setText(KeyFormattingUtils.beautifyKeyIdWithPrefix(getActivity(), mSignatureKeyId));
+ mSignatureEmail.setText(KeyFormattingUtils.beautifyKeyIdWithPrefix(getActivity(), mSignatureKeyId));
+ }
+
+ if (signatureResult.isSignatureOnly()) {
+ mEncryptionText.setText(R.string.decrypt_result_not_encrypted);
+ KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_NOT_ENCRYPTED);
+ } else {
+ mEncryptionText.setText(R.string.decrypt_result_encrypted);
+ KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_ENCRYPTED);
}
switch (signatureResult.getStatus()) {
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: {
- if (signatureResult.isSignatureOnly()) {
- mResultText.setText(R.string.decrypt_result_signature_certified);
- } else {
- mResultText.setText(R.string.decrypt_result_decrypted_and_signature_certified);
- }
+ mSignatureText.setText(R.string.decrypt_result_signature_certified);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_VERIFIED);
- mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_green_light));
- mSignatureStatusImage.setImageResource(R.drawable.overlay_ok);
- mSignatureLayout.setVisibility(View.VISIBLE);
- mLookupKey.setVisibility(View.GONE);
+ setSignatureLayoutVisibility(View.VISIBLE);
+ mSignatureAction.setText(R.string.decrypt_result_action_show);
+ mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0);
+ mSignatureLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent viewKeyIntent = new Intent(getActivity(), ViewKeyActivity.class);
+ viewKeyIntent.setData(KeychainContract.KeyRings
+ .buildGenericKeyRingUri(mSignatureKeyId));
+ startActivity(viewKeyIntent);
+ }
+ });
break;
}
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: {
- if (signatureResult.isSignatureOnly()) {
- mResultText.setText(R.string.decrypt_result_signature_uncertified);
- } else {
- mResultText.setText(R.string.decrypt_result_decrypted_and_signature_uncertified);
- }
+ mSignatureText.setText(R.string.decrypt_result_signature_uncertified);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNVERIFIED);
- mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_orange_light));
- mSignatureStatusImage.setImageResource(R.drawable.overlay_ok);
- mSignatureLayout.setVisibility(View.VISIBLE);
- mLookupKey.setVisibility(View.GONE);
+ setSignatureLayoutVisibility(View.VISIBLE);
+ mSignatureAction.setText(R.string.decrypt_result_action_show);
+ mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0);
+ mSignatureLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent viewKeyIntent = new Intent(getActivity(), ViewKeyActivity.class);
+ viewKeyIntent.setData(KeychainContract.KeyRings
+ .buildGenericKeyRingUri(mSignatureKeyId));
+ startActivity(viewKeyIntent);
+ }
+ });
break;
}
case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: {
- if (signatureResult.isSignatureOnly()) {
- mResultText.setText(R.string.decrypt_result_signature_unknown_pub_key);
- } else {
- mResultText.setText(R.string.decrypt_result_decrypted_unknown_pub_key);
- }
+ mSignatureText.setText(R.string.decrypt_result_signature_unknown_pub_key);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNKNOWN_KEY);
- mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_orange_light));
- mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
- mSignatureLayout.setVisibility(View.VISIBLE);
- mLookupKey.setVisibility(View.VISIBLE);
+ setSignatureLayoutVisibility(View.VISIBLE);
+ mSignatureAction.setText(R.string.decrypt_result_action_Lookup);
+ mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_download, 0);
+ mSignatureLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ lookupUnknownKey(mSignatureKeyId);
+ }
+ });
break;
}
+ // TODO: Maybe this should be part of the Result parcel, it is an error, not a valid status!
case OpenPgpSignatureResult.SIGNATURE_ERROR: {
- mResultText.setText(R.string.decrypt_result_invalid_signature);
+ mSignatureText.setText(R.string.decrypt_result_invalid_signature);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_INVALID);
- mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_red_light));
- mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
- mSignatureLayout.setVisibility(View.GONE);
- mLookupKey.setVisibility(View.GONE);
- break;
- }
-
- default: {
- mResultText.setText(R.string.error);
-
- mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_red_light));
- mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
- mSignatureLayout.setVisibility(View.GONE);
- mLookupKey.setVisibility(View.GONE);
+ setSignatureLayoutVisibility(View.GONE);
break;
}
}
} else {
- mSignatureLayout.setVisibility(View.GONE);
- mLookupKey.setVisibility(View.GONE);
+ setSignatureLayoutVisibility(View.GONE);
- // successful decryption-only
- mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_purple_light));
- mResultText.setText(R.string.decrypt_result_decrypted);
+ mSignatureText.setText(R.string.decrypt_result_no_signature);
+ KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_NOT_SIGNED);
+ mEncryptionText.setText(R.string.decrypt_result_encrypted);
+ KeyFormattingUtils.setStatusImage(getActivity(), mEncryptionIcon, mEncryptionText, KeyFormattingUtils.STATE_ENCRYPTED);
}
}
+ private void setSignatureLayoutVisibility(int visibility) {
+ mSignatureLayout.setVisibility(visibility);
+ mSignatureDivider1.setVisibility(visibility);
+ mSignatureDivider2.setVisibility(visibility);
+ }
+
/**
* Should be overridden by MessageFragment and FileFragment to start actual decryption
*/
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/UserIdInfoDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/UserIdInfoDialogFragment.java
index 968b2429b..57b171eb9 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/UserIdInfoDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/UserIdInfoDialogFragment.java
@@ -64,12 +64,12 @@ public class UserIdInfoDialogFragment extends DialogFragment {
} else {
switch (isVerified) {
case KeychainContract.Certs.VERIFIED_SECRET:
- title = getString(R.string.user_id_info_verified_title);
- message = getString(R.string.user_id_info_verified_text);
+ title = getString(R.string.user_id_info_certified_title);
+ message = getString(R.string.user_id_info_certified_text);
break;
case KeychainContract.Certs.VERIFIED_SELF:
- title = getString(R.string.user_id_info_not_verified_title);
- message = getString(R.string.user_id_info_not_verified_text);
+ title = getString(R.string.user_id_info_uncertified_title);
+ message = getString(R.string.user_id_info_uncertified_text);
break;
default:
title = getString(R.string.user_id_info_invalid_title);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java
index 5c2bc76d0..a59cb175f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java
@@ -19,18 +19,13 @@
package org.sufficientlysecure.keychain.ui.util;
import android.content.Context;
-import android.database.Cursor;
import android.graphics.Color;
import android.graphics.PorterDuff;
-import android.graphics.Typeface;
import android.text.Spannable;
-import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
-import android.text.style.StyleSpan;
-import android.text.style.TypefaceSpan;
-import android.view.View;
import android.widget.ImageView;
+import android.widget.TextView;
import org.spongycastle.asn1.ASN1ObjectIdentifier;
import org.spongycastle.asn1.nist.NISTNamedCurves;
@@ -386,36 +381,126 @@ public class KeyFormattingUtils {
public static final int STATE_EXPIRED = 2;
public static final int STATE_VERIFIED = 3;
public static final int STATE_UNAVAILABLE = 4;
+ public static final int STATE_ENCRYPTED = 5;
+ public static final int STATE_NOT_ENCRYPTED = 6;
+ public static final int STATE_UNVERIFIED = 7;
+ public static final int STATE_UNKNOWN_KEY = 8;
+ public static final int STATE_INVALID = 9;
+ public static final int STATE_NOT_SIGNED = 10;
+
+ public static void setStatusImage(Context context, ImageView statusIcon, int state) {
+ setStatusImage(context, statusIcon, null, state);
+ }
/**
* Sets status image based on constant
*/
- public static void setStatusImage(Context context, ImageView statusView, int state) {
+ public static void setStatusImage(Context context, ImageView statusIcon, TextView statusText, int state) {
switch (state) {
- case STATE_REVOKED:
- statusView.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout));
- statusView.setColorFilter(context.getResources().getColor(R.color.android_red_dark),
- PorterDuff.Mode.SRC_ATOP);
- break;
- case STATE_EXPIRED:
- statusView.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_expired_cutout));
- statusView.setColorFilter(context.getResources().getColor(R.color.android_orange_dark),
- PorterDuff.Mode.SRC_ATOP);
- break;
- case STATE_UNAVAILABLE:
- statusView.setImageDrawable(
- context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout));
- statusView.setColorFilter(context.getResources().getColor(R.color.bg_gray),
- PorterDuff.Mode.SRC_ATOP);
- break;
- case STATE_VERIFIED:
- statusView.setImageDrawable(
+ /** GREEN: everything is good **/
+ case STATE_VERIFIED: {
+ statusIcon.setImageDrawable(
context.getResources().getDrawable(R.drawable.status_signature_verified_cutout));
- statusView.setColorFilter(context.getResources().getColor(R.color.android_green_dark),
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_green_dark),
PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_green_dark));
+ }
break;
+ }
+ case STATE_ENCRYPTED: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_lock_closed));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_green_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_green_dark));
+ }
+ break;
+ }
+ /** ORANGE: mostly bad... **/
+ case STATE_UNVERIFIED: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_orange_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_orange_dark));
+ }
+ break;
+ }
+ case STATE_EXPIRED: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_expired_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_orange_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_orange_dark));
+ }
+ break;
+ }
+ case STATE_UNKNOWN_KEY: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_orange_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_orange_dark));
+ }
+ break;
+ }
+ /** RED: really bad... **/
+ case STATE_REVOKED: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_red_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_red_dark));
+ }
+ break;
+ }
+ case STATE_NOT_ENCRYPTED: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_lock_open));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_red_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_red_dark));
+ }
+ break;
+ }
+ case STATE_NOT_SIGNED: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_red_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_red_dark));
+ }
+ break;
+ }
+ case STATE_INVALID: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.android_red_dark),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.android_red_dark));
+ }
+ break;
+ }
+ /** special **/
+ case STATE_UNAVAILABLE: {
+ statusIcon.setImageDrawable(
+ context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout));
+ statusIcon.setColorFilter(context.getResources().getColor(R.color.bg_gray),
+ PorterDuff.Mode.SRC_ATOP);
+ if (statusText != null) {
+ statusText.setTextColor(context.getResources().getColor(R.color.bg_gray));
+ }
+ break;
+ }
}
}
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/encrypted_small.png b/OpenKeychain/src/main/res/drawable-hdpi/encrypted_small.png
deleted file mode 100644
index 3ff8e9b97..000000000
Binary files a/OpenKeychain/src/main/res/drawable-hdpi/encrypted_small.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/overlay_error.png b/OpenKeychain/src/main/res/drawable-hdpi/overlay_error.png
deleted file mode 100644
index e6d7e60ba..000000000
Binary files a/OpenKeychain/src/main/res/drawable-hdpi/overlay_error.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/overlay_ok.png b/OpenKeychain/src/main/res/drawable-hdpi/overlay_ok.png
deleted file mode 100644
index 0672f869d..000000000
Binary files a/OpenKeychain/src/main/res/drawable-hdpi/overlay_ok.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/revoked_key_small.png b/OpenKeychain/src/main/res/drawable-hdpi/revoked_key_small.png
deleted file mode 100644
index 75f45eb54..000000000
Binary files a/OpenKeychain/src/main/res/drawable-hdpi/revoked_key_small.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/signed_large.png b/OpenKeychain/src/main/res/drawable-hdpi/signed_large.png
deleted file mode 100644
index c209f4167..000000000
Binary files a/OpenKeychain/src/main/res/drawable-hdpi/signed_large.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-ldpi/overlay_error.png b/OpenKeychain/src/main/res/drawable-ldpi/overlay_error.png
deleted file mode 100644
index e5a88e18f..000000000
Binary files a/OpenKeychain/src/main/res/drawable-ldpi/overlay_error.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-ldpi/overlay_ok.png b/OpenKeychain/src/main/res/drawable-ldpi/overlay_ok.png
deleted file mode 100644
index 63374d47f..000000000
Binary files a/OpenKeychain/src/main/res/drawable-ldpi/overlay_ok.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-ldpi/signed_large.png b/OpenKeychain/src/main/res/drawable-ldpi/signed_large.png
deleted file mode 100644
index d2917644c..000000000
Binary files a/OpenKeychain/src/main/res/drawable-ldpi/signed_large.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/overlay_error.png b/OpenKeychain/src/main/res/drawable-mdpi/overlay_error.png
deleted file mode 100644
index 5fe017433..000000000
Binary files a/OpenKeychain/src/main/res/drawable-mdpi/overlay_error.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/overlay_ok.png b/OpenKeychain/src/main/res/drawable-mdpi/overlay_ok.png
deleted file mode 100644
index b4f332260..000000000
Binary files a/OpenKeychain/src/main/res/drawable-mdpi/overlay_ok.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/signed_large.png b/OpenKeychain/src/main/res/drawable-mdpi/signed_large.png
deleted file mode 100644
index ab9495e7b..000000000
Binary files a/OpenKeychain/src/main/res/drawable-mdpi/signed_large.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/signed_small.png b/OpenKeychain/src/main/res/drawable-mdpi/signed_small.png
deleted file mode 100644
index 4202c3f97..000000000
Binary files a/OpenKeychain/src/main/res/drawable-mdpi/signed_small.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable/overlay_error.png b/OpenKeychain/src/main/res/drawable/overlay_error.png
deleted file mode 100644
index 2372de59e..000000000
Binary files a/OpenKeychain/src/main/res/drawable/overlay_error.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable/overlay_ok.png b/OpenKeychain/src/main/res/drawable/overlay_ok.png
deleted file mode 100644
index 2f0005898..000000000
Binary files a/OpenKeychain/src/main/res/drawable/overlay_ok.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/drawable/signed_large.png b/OpenKeychain/src/main/res/drawable/signed_large.png
deleted file mode 100644
index 92e64dc51..000000000
Binary files a/OpenKeychain/src/main/res/drawable/signed_large.png and /dev/null differ
diff --git a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml
index fcad91df3..8a0519872 100644
--- a/OpenKeychain/src/main/res/layout/decrypt_result_include.xml
+++ b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml
@@ -1,97 +1,144 @@
+ android:background="@color/holo_gray_bright">
-
-
-
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OpenKeychain/src/main/res/values-cs/strings.xml b/OpenKeychain/src/main/res/values-cs/strings.xml
index a7090aaf0..55d25958f 100644
--- a/OpenKeychain/src/main/res/values-cs/strings.xml
+++ b/OpenKeychain/src/main/res/values-cs/strings.xml
@@ -397,10 +397,10 @@
Certifikáty
Zneplatněno
Tato identity byla zneplatněna vlastníkem klíče. Klíč již není platný.
- Ověřeno
- Tato identita byla ověřena.
- Neověřeno
- Tato identita nebyla ještě ověřena. Nemůžete si být jisti, jestli identita opravdu odpovídá určité osobě.
+ Ověřeno
+ Tato identita byla ověřena.
+ Neověřeno
+ Tato identita nebyla ještě ověřena. Nemůžete si být jisti, jestli identita opravdu odpovídá určité osobě.
Neplatná
S touto identitou je něco v nepořádku!
diff --git a/OpenKeychain/src/main/res/values-de/strings.xml b/OpenKeychain/src/main/res/values-de/strings.xml
index d537bd6c3..13533f9bb 100644
--- a/OpenKeychain/src/main/res/values-de/strings.xml
+++ b/OpenKeychain/src/main/res/values-de/strings.xml
@@ -438,10 +438,10 @@
Beglaubigungen
Wiederrufen
Diese Identität wurde durch den Schlüsselinhaber wiederrufen. Sie ist nicht mehr gültig.
- Überprüft
- Diese Identität wurde überprüft.
- Nicht überprüft
- Diese Identität wurde noch nicht verifiziert. Du kannst nicht sicher sein, ob diese Identität wirklich zu einer bestimmten Person gehört.
+ Überprüft
+ Diese Identität wurde überprüft.
+ Nicht überprüft
+ Diese Identität wurde noch nicht verifiziert. Du kannst nicht sicher sein, ob diese Identität wirklich zu einer bestimmten Person gehört.
Ungültig
Irgend etwas ist mit dieser Identität nicht in Ordnung!
diff --git a/OpenKeychain/src/main/res/values-es/strings.xml b/OpenKeychain/src/main/res/values-es/strings.xml
index d1836233c..b0a3fa099 100644
--- a/OpenKeychain/src/main/res/values-es/strings.xml
+++ b/OpenKeychain/src/main/res/values-es/strings.xml
@@ -421,10 +421,10 @@
Certificados
Revocada
Esta identidad ha sido revocada por el propietario de la clave. En adelante no es válida.
- Verificada
- Esta identidad ha sido verificada
- No verificada
- Esta identidad no se ha verificado aún. No puede estar seguro de si la identidad realmente corresponde a una persona en concreto.
+ Verificada
+ Esta identidad ha sido verificada
+ No verificada
+ Esta identidad no se ha verificado aún. No puede estar seguro de si la identidad realmente corresponde a una persona en concreto.
No válido
¡Algo está mal con esta identidad!
diff --git a/OpenKeychain/src/main/res/values-fr/strings.xml b/OpenKeychain/src/main/res/values-fr/strings.xml
index ef1659e7d..2fd8b2a88 100644
--- a/OpenKeychain/src/main/res/values-fr/strings.xml
+++ b/OpenKeychain/src/main/res/values-fr/strings.xml
@@ -421,10 +421,10 @@
Certificats
Révoquée
Cette identité a été révoquée par le propriétaire de la clef. Elle n\'est plus valide.
- Vérifiée
- Cette identité a été vérifiée.
- Non vérifiée
- Cette identité n\'a pas encore été vérifiée. Vous ne pouvez pas être certain si l\'identité corresponds vraiment à une personne spécifique.
+ Vérifiée
+ Cette identité a été vérifiée.
+ Non vérifiée
+ Cette identité n\'a pas encore été vérifiée. Vous ne pouvez pas être certain si l\'identité corresponds vraiment à une personne spécifique.
Invalide
Quelque chose ne va pas avec cette identité !
diff --git a/OpenKeychain/src/main/res/values-it/strings.xml b/OpenKeychain/src/main/res/values-it/strings.xml
index a26dee6b3..8487514e8 100644
--- a/OpenKeychain/src/main/res/values-it/strings.xml
+++ b/OpenKeychain/src/main/res/values-it/strings.xml
@@ -426,10 +426,10 @@ Permetti accesso?\n\nATTENZIONE: Se non sai perche\' questo schermata e\' appars
Certificati
Revocato
Questa identità è stata revocata dal suo proprietario. Non è più valida.
- Verificato
- Questa identità è stata verificata.
- Non verificato
- Questa identità non è stata ancora verificata. Non puoi esser sicuro che l\'identità corrisponda veramente ad una specifica persona.
+ Verificato
+ Questa identità è stata verificata.
+ Non verificato
+ Questa identità non è stata ancora verificata. Non puoi esser sicuro che l\'identità corrisponda veramente ad una specifica persona.
Non valido
C\'è qualcosa che non va con questa identità!
diff --git a/OpenKeychain/src/main/res/values-ja/strings.xml b/OpenKeychain/src/main/res/values-ja/strings.xml
index 661317852..285a3e050 100644
--- a/OpenKeychain/src/main/res/values-ja/strings.xml
+++ b/OpenKeychain/src/main/res/values-ja/strings.xml
@@ -443,10 +443,10 @@
証明
破棄
このIDは鍵の所有者により破棄されています。もう適正ではありません。
- 検証
- このIDは検証されています。
- 未検証
- このIDはまだ検証されていません。IDが本当に特定の人に対応している場合を、あなたは確認することができません。
+ 検証
+ このIDは検証されています。
+ 未検証
+ このIDはまだ検証されていません。IDが本当に特定の人に対応している場合を、あなたは確認することができません。
不適正
このIDではなにかしら問題があります!
diff --git a/OpenKeychain/src/main/res/values-ru/strings.xml b/OpenKeychain/src/main/res/values-ru/strings.xml
index 73ef1ed19..a0599b861 100644
--- a/OpenKeychain/src/main/res/values-ru/strings.xml
+++ b/OpenKeychain/src/main/res/values-ru/strings.xml
@@ -361,9 +361,9 @@
Доп. ключи
Сертификация
Аннулировано
- Подтверждено
- Не подтверждено
- Этот идентификатор не был заверен. Нет гарантии, что он принадлежит этому человеку.
+ Подтверждено
+ Не подтверждено
+ Этот идентификатор не был заверен. Нет гарантии, что он принадлежит этому человеку.
Недействительно
Что-то не так с идентификатором!
diff --git a/OpenKeychain/src/main/res/values-sl/strings.xml b/OpenKeychain/src/main/res/values-sl/strings.xml
index 0f54c95ef..4b5e32a49 100644
--- a/OpenKeychain/src/main/res/values-sl/strings.xml
+++ b/OpenKeychain/src/main/res/values-sl/strings.xml
@@ -380,9 +380,9 @@
Certifikati
Preklican
Lastnik ključa je preklical to identiteto. Ta ni več veljavna.
- Preverjen
- Identiteta je bila preverjena
- Nepreverjen
+ Preverjen
+ Identiteta je bila preverjena
+ Nepreverjen
Neveljaven
Zamenjaj geslo
diff --git a/OpenKeychain/src/main/res/values-sr/strings.xml b/OpenKeychain/src/main/res/values-sr/strings.xml
index c765d27af..08354310c 100644
--- a/OpenKeychain/src/main/res/values-sr/strings.xml
+++ b/OpenKeychain/src/main/res/values-sr/strings.xml
@@ -393,10 +393,10 @@
Сертификати
Опозван
Власник кључа је опозвао овај идентитет. Више није исправан.
- Оверен
- Овај идентитет није оверен.
- Није оверен
- Овај идентитет још није оверен. Не можете бити сигурни да идентитет заиста одговара одређеној особи.
+ Оверен
+ Овај идентитет није оверен.
+ Није оверен
+ Овај идентитет још није оверен. Не можете бити сигурни да идентитет заиста одговара одређеној особи.
Неисправан
Нешто није у реду са овим идентитетом!
diff --git a/OpenKeychain/src/main/res/values-tr/strings.xml b/OpenKeychain/src/main/res/values-tr/strings.xml
index 379e2af3c..d4937be4d 100644
--- a/OpenKeychain/src/main/res/values-tr/strings.xml
+++ b/OpenKeychain/src/main/res/values-tr/strings.xml
@@ -353,10 +353,10 @@
Paylaş
Alt anahtarlar
Sertifikalar
- Doğrulanmış
- Kimlik doğrulandı.
- Doğrulanmamış
- Bu kimlik henüz doğrulanmadı. Bu kimliğin belirli bir kişiye ait olduğundan emin olamazsınız.
+ Doğrulanmış
+ Kimlik doğrulandı.
+ Doğrulanmamış
+ Bu kimlik henüz doğrulanmadı. Bu kimliğin belirli bir kişiye ait olduğundan emin olamazsınız.
Geçersiz
Bu kimlikle ilgili yanlış olan bazı şeyler var!
diff --git a/OpenKeychain/src/main/res/values-uk/strings.xml b/OpenKeychain/src/main/res/values-uk/strings.xml
index d3b3f1753..fdae88c7b 100644
--- a/OpenKeychain/src/main/res/values-uk/strings.xml
+++ b/OpenKeychain/src/main/res/values-uk/strings.xml
@@ -383,10 +383,10 @@
Сертифікати
Відхилено
Ця сутність вже відкликана власником ключа. Вона більше не дійсна.
- Перевірено
- Не перевірено
- Не перевірено
- Ця сутність ще не перевірена. Ви не можете переконатися, чи сутність справді відповідає вказаній особі.
+ Перевірено
+ Не перевірено
+ Не перевірено
+ Ця сутність ще не перевірена. Ви не можете переконатися, чи сутність справді відповідає вказаній особі.
Недійсна
Щось неправильне у цій сутності!
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index 7fdc1b419..04054b3aa 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -266,14 +266,15 @@
"A generic error occurred, please create a new bug report for OpenKeychain."
+ "Not Signed"
"Invalid signature!"
"Unknown public key"
- "Valid signature (uncertified)"
- "Valid signature (certified)"
- "Successfully decrypted"
- "Successfully decrypted but unknown public key"
- "Successfully decrypted and valid signature (uncertified)"
- "Successfully decrypted and valid signature (certified)"
+ "Signed by (not certified!)"
+ "Signed by"
+ "Encrypted"
+ "Not Encrypted"
+ "Show"
+ "Lookup"
"Exchange"
@@ -507,10 +508,10 @@
"Certificates"
"Revoked"
"This identity has been revoked by the key owner. It is no longer valid."
- "Verified"
- "This identity has been verified."
- "Not verified"
- "This identity has not been verified yet. You cannot be sure if the identity really corresponds to a specific person."
+ "Certified"
+ "This identity has been certified by you."
+ "Not certified"
+ "This identity has not been certified yet. You cannot be sure if the identity really corresponds to a specific person."
"Invalid"
"Something is wrong with this identity!"