New decryption screen UI with modernPGP icons
@ -21,16 +21,14 @@ import android.content.Intent;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RelativeLayout;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.openintents.openpgp.OpenPgpSignatureResult;
|
import org.openintents.openpgp.OpenPgpSignatureResult;
|
||||||
import org.sufficientlysecure.keychain.R;
|
import org.sufficientlysecure.keychain.R;
|
||||||
import org.sufficientlysecure.keychain.pgp.KeyRing;
|
import org.sufficientlysecure.keychain.pgp.KeyRing;
|
||||||
|
import org.sufficientlysecure.keychain.provider.KeychainContract;
|
||||||
import org.sufficientlysecure.keychain.service.results.DecryptVerifyResult;
|
import org.sufficientlysecure.keychain.service.results.DecryptVerifyResult;
|
||||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||||
|
|
||||||
@ -43,14 +41,19 @@ public abstract class DecryptFragment extends Fragment {
|
|||||||
protected long mSignatureKeyId = 0;
|
protected long mSignatureKeyId = 0;
|
||||||
|
|
||||||
protected LinearLayout mResultLayout;
|
protected LinearLayout mResultLayout;
|
||||||
protected RelativeLayout mSignatureLayout;
|
|
||||||
protected TextView mResultText;
|
|
||||||
|
|
||||||
protected ImageView mSignatureStatusImage;
|
protected ImageView mEncryptionIcon;
|
||||||
protected TextView mUserId;
|
protected TextView mEncryptionText;
|
||||||
protected TextView mUserIdRest;
|
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
|
// State
|
||||||
protected String mPassphrase;
|
protected String mPassphrase;
|
||||||
@ -60,20 +63,20 @@ public abstract class DecryptFragment extends Fragment {
|
|||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
mResultLayout = (LinearLayout) getView().findViewById(R.id.result);
|
mResultLayout = (LinearLayout) getView().findViewById(R.id.result_main_layout);
|
||||||
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.setVisibility(View.GONE);
|
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) {
|
private void lookupUnknownKey(long unknownKeyId) {
|
||||||
@ -103,101 +106,114 @@ public abstract class DecryptFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void onResult(DecryptVerifyResult decryptVerifyResult) {
|
protected void onResult(DecryptVerifyResult decryptVerifyResult) {
|
||||||
OpenPgpSignatureResult signatureResult = decryptVerifyResult.getSignatureResult();
|
final OpenPgpSignatureResult signatureResult = decryptVerifyResult.getSignatureResult();
|
||||||
|
|
||||||
mSignatureKeyId = 0;
|
mSignatureKeyId = 0;
|
||||||
mResultLayout.setVisibility(View.VISIBLE);
|
mResultLayout.setVisibility(View.VISIBLE);
|
||||||
if (signatureResult != null) {
|
if (signatureResult != null) {
|
||||||
mSignatureStatusImage.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
mSignatureKeyId = signatureResult.getKeyId();
|
mSignatureKeyId = signatureResult.getKeyId();
|
||||||
|
|
||||||
String userId = signatureResult.getPrimaryUserId();
|
String userId = signatureResult.getPrimaryUserId();
|
||||||
String[] userIdSplit = KeyRing.splitUserId(userId);
|
String[] userIdSplit = KeyRing.splitUserId(userId);
|
||||||
if (userIdSplit[0] != null) {
|
if (userIdSplit[0] != null) {
|
||||||
mUserId.setText(userIdSplit[0]);
|
mSignatureName.setText(userIdSplit[0]);
|
||||||
} else {
|
} else {
|
||||||
mUserId.setText(R.string.user_id_no_name);
|
mSignatureName.setText(R.string.user_id_no_name);
|
||||||
}
|
}
|
||||||
if (userIdSplit[1] != null) {
|
if (userIdSplit[1] != null) {
|
||||||
mUserIdRest.setText(userIdSplit[1]);
|
mSignatureEmail.setText(userIdSplit[1]);
|
||||||
} else {
|
} 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()) {
|
switch (signatureResult.getStatus()) {
|
||||||
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: {
|
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: {
|
||||||
if (signatureResult.isSignatureOnly()) {
|
mSignatureText.setText(R.string.decrypt_result_signature_certified);
|
||||||
mResultText.setText(R.string.decrypt_result_signature_certified);
|
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_VERIFIED);
|
||||||
} else {
|
|
||||||
mResultText.setText(R.string.decrypt_result_decrypted_and_signature_certified);
|
|
||||||
}
|
|
||||||
|
|
||||||
mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_green_light));
|
setSignatureLayoutVisibility(View.VISIBLE);
|
||||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_ok);
|
mSignatureAction.setText(R.string.decrypt_result_action_show);
|
||||||
mSignatureLayout.setVisibility(View.VISIBLE);
|
mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0);
|
||||||
mLookupKey.setVisibility(View.GONE);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: {
|
case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: {
|
||||||
if (signatureResult.isSignatureOnly()) {
|
mSignatureText.setText(R.string.decrypt_result_signature_uncertified);
|
||||||
mResultText.setText(R.string.decrypt_result_signature_uncertified);
|
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNVERIFIED);
|
||||||
} else {
|
|
||||||
mResultText.setText(R.string.decrypt_result_decrypted_and_signature_uncertified);
|
|
||||||
}
|
|
||||||
|
|
||||||
mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_orange_light));
|
setSignatureLayoutVisibility(View.VISIBLE);
|
||||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_ok);
|
mSignatureAction.setText(R.string.decrypt_result_action_show);
|
||||||
mSignatureLayout.setVisibility(View.VISIBLE);
|
mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_accounts, 0);
|
||||||
mLookupKey.setVisibility(View.GONE);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: {
|
case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: {
|
||||||
if (signatureResult.isSignatureOnly()) {
|
mSignatureText.setText(R.string.decrypt_result_signature_unknown_pub_key);
|
||||||
mResultText.setText(R.string.decrypt_result_signature_unknown_pub_key);
|
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_UNKNOWN_KEY);
|
||||||
} else {
|
|
||||||
mResultText.setText(R.string.decrypt_result_decrypted_unknown_pub_key);
|
|
||||||
}
|
|
||||||
|
|
||||||
mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_orange_light));
|
setSignatureLayoutVisibility(View.VISIBLE);
|
||||||
mSignatureStatusImage.setImageResource(R.drawable.overlay_error);
|
mSignatureAction.setText(R.string.decrypt_result_action_Lookup);
|
||||||
mSignatureLayout.setVisibility(View.VISIBLE);
|
mSignatureAction.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_action_download, 0);
|
||||||
mLookupKey.setVisibility(View.VISIBLE);
|
mSignatureLayout.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
lookupUnknownKey(mSignatureKeyId);
|
||||||
|
}
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Maybe this should be part of the Result parcel, it is an error, not a valid status!
|
||||||
case OpenPgpSignatureResult.SIGNATURE_ERROR: {
|
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));
|
setSignatureLayoutVisibility(View.GONE);
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mSignatureLayout.setVisibility(View.GONE);
|
setSignatureLayoutVisibility(View.GONE);
|
||||||
mLookupKey.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
// successful decryption-only
|
mSignatureText.setText(R.string.decrypt_result_no_signature);
|
||||||
mResultLayout.setBackgroundColor(getResources().getColor(R.color.android_purple_light));
|
KeyFormattingUtils.setStatusImage(getActivity(), mSignatureIcon, mSignatureText, KeyFormattingUtils.STATE_NOT_SIGNED);
|
||||||
mResultText.setText(R.string.decrypt_result_decrypted);
|
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
|
* Should be overridden by MessageFragment and FileFragment to start actual decryption
|
||||||
*/
|
*/
|
||||||
|
@ -64,12 +64,12 @@ public class UserIdInfoDialogFragment extends DialogFragment {
|
|||||||
} else {
|
} else {
|
||||||
switch (isVerified) {
|
switch (isVerified) {
|
||||||
case KeychainContract.Certs.VERIFIED_SECRET:
|
case KeychainContract.Certs.VERIFIED_SECRET:
|
||||||
title = getString(R.string.user_id_info_verified_title);
|
title = getString(R.string.user_id_info_certified_title);
|
||||||
message = getString(R.string.user_id_info_verified_text);
|
message = getString(R.string.user_id_info_certified_text);
|
||||||
break;
|
break;
|
||||||
case KeychainContract.Certs.VERIFIED_SELF:
|
case KeychainContract.Certs.VERIFIED_SELF:
|
||||||
title = getString(R.string.user_id_info_not_verified_title);
|
title = getString(R.string.user_id_info_uncertified_title);
|
||||||
message = getString(R.string.user_id_info_not_verified_text);
|
message = getString(R.string.user_id_info_uncertified_text);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
title = getString(R.string.user_id_info_invalid_title);
|
title = getString(R.string.user_id_info_invalid_title);
|
||||||
|
@ -19,18 +19,13 @@
|
|||||||
package org.sufficientlysecure.keychain.ui.util;
|
package org.sufficientlysecure.keychain.ui.util;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.Typeface;
|
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.style.ForegroundColorSpan;
|
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.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.spongycastle.asn1.ASN1ObjectIdentifier;
|
import org.spongycastle.asn1.ASN1ObjectIdentifier;
|
||||||
import org.spongycastle.asn1.nist.NISTNamedCurves;
|
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_EXPIRED = 2;
|
||||||
public static final int STATE_VERIFIED = 3;
|
public static final int STATE_VERIFIED = 3;
|
||||||
public static final int STATE_UNAVAILABLE = 4;
|
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
|
* 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) {
|
switch (state) {
|
||||||
case STATE_REVOKED:
|
/** GREEN: everything is good **/
|
||||||
statusView.setImageDrawable(
|
case STATE_VERIFIED: {
|
||||||
context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout));
|
statusIcon.setImageDrawable(
|
||||||
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(
|
|
||||||
context.getResources().getDrawable(R.drawable.status_signature_verified_cutout));
|
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);
|
PorterDuff.Mode.SRC_ATOP);
|
||||||
|
if (statusText != null) {
|
||||||
|
statusText.setTextColor(context.getResources().getColor(R.color.android_green_dark));
|
||||||
|
}
|
||||||
break;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 3.8 KiB |
@ -1,97 +1,144 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/result"
|
android:id="@+id/result_main_layout"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingLeft="16dp"
|
android:background="@color/holo_gray_bright">
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:paddingTop="4dp"
|
|
||||||
android:paddingBottom="4dp"
|
|
||||||
android:background="@color/android_purple_light">
|
|
||||||
|
|
||||||
<View
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/result_main_layout"
|
||||||
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dip"
|
|
||||||
android:background="?android:attr/listDivider"
|
|
||||||
android:layout_marginTop="4dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/result_text"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
android:paddingLeft="16dp"
|
||||||
android:text="result text"
|
android:paddingRight="16dp"
|
||||||
android:textColor="@color/white"
|
android:paddingTop="4dp"
|
||||||
android:layout_gravity="center_horizontal"
|
android:paddingBottom="4dp">
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_marginBottom="8dp" />
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/result_encryption_icon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/status_lock_open"
|
||||||
|
android:layout_gravity="center_vertical" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/result_encryption_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:text="Not Encrypted (set in-code)"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/result_signature_icon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/status_signature_unverified_cutout"
|
||||||
|
android:layout_gravity="center_vertical" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/result_signature_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:text="Signed by (set in-code)"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/result_signature_divider1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dip"
|
||||||
|
android:layout_marginLeft="32dp"
|
||||||
|
android:background="?android:attr/listDivider" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/result_signature_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="?android:attr/listPreferredItemHeight"
|
||||||
|
android:clickable="true"
|
||||||
|
android:layout_marginLeft="32dp"
|
||||||
|
android:paddingRight="4dp"
|
||||||
|
style="@style/SelectableItem"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:paddingRight="4dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/result_signature_name"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Alice (set in-code)" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/result_signature_email"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/tertiary_text_light"
|
||||||
|
android:text="alice@example.com (set in-code)"
|
||||||
|
android:gravity="center_vertical" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="1dip"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:background="?android:attr/listDivider" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/result_signature_action"
|
||||||
|
android:paddingLeft="8dp"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="Show"
|
||||||
|
android:drawableRight="@drawable/ic_action_accounts"
|
||||||
|
android:drawablePadding="8dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
style="@style/SelectableItem" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/result_signature_divider2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dip"
|
||||||
|
android:layout_marginLeft="32dp"
|
||||||
|
android:background="?android:attr/listDivider" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dip"
|
android:layout_height="1dip"
|
||||||
android:background="?android:attr/listDivider" />
|
android:background="?android:attr/listDivider" />
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:id="@+id/result_signature"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:clickable="true"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginTop="8dp">
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/result_signature_image">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ic_signature"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/signed_large" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ic_signature_status"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/overlay_error" />
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/mainUserId"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="4dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:text="@string/label_main_user_id"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_toRightOf="@+id/result_signature_image"
|
|
||||||
android:textColor="@color/white" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/mainUserIdRest"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="4dp"
|
|
||||||
android:layout_gravity="left"
|
|
||||||
android:text="Main User Id Rest"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
|
||||||
android:layout_below="@+id/mainUserId"
|
|
||||||
android:layout_toRightOf="@+id/result_signature_image"
|
|
||||||
android:textColor="@color/white" />
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/lookup_key"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/btn_lookup_key"
|
|
||||||
android:drawableRight="@drawable/ic_action_download"
|
|
||||||
android:layout_alignParentRight="true"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:background="@drawable/button_edgy"/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -397,10 +397,10 @@
|
|||||||
<string name="key_view_tab_certs">Certifikáty</string>
|
<string name="key_view_tab_certs">Certifikáty</string>
|
||||||
<string name="user_id_info_revoked_title">Zneplatněno</string>
|
<string name="user_id_info_revoked_title">Zneplatněno</string>
|
||||||
<string name="user_id_info_revoked_text">Tato identity byla zneplatněna vlastníkem klíče. Klíč již není platný.</string>
|
<string name="user_id_info_revoked_text">Tato identity byla zneplatněna vlastníkem klíče. Klíč již není platný.</string>
|
||||||
<string name="user_id_info_verified_title">Ověřeno</string>
|
<string name="user_id_info_certified_title">Ověřeno</string>
|
||||||
<string name="user_id_info_verified_text">Tato identita byla ověřena.</string>
|
<string name="user_id_info_certified_text">Tato identita byla ověřena.</string>
|
||||||
<string name="user_id_info_not_verified_title">Neověřeno</string>
|
<string name="user_id_info_uncertified_title">Neověřeno</string>
|
||||||
<string name="user_id_info_not_verified_text">Tato identita nebyla ještě ověřena. Nemůžete si být jisti, jestli identita opravdu odpovídá určité osobě.</string>
|
<string name="user_id_info_uncertified_text">Tato identita nebyla ještě ověřena. Nemůžete si být jisti, jestli identita opravdu odpovídá určité osobě.</string>
|
||||||
<string name="user_id_info_invalid_title">Neplatná</string>
|
<string name="user_id_info_invalid_title">Neplatná</string>
|
||||||
<string name="user_id_info_invalid_text">S touto identitou je něco v nepořádku!</string>
|
<string name="user_id_info_invalid_text">S touto identitou je něco v nepořádku!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -438,10 +438,10 @@
|
|||||||
<string name="key_view_tab_certs">Beglaubigungen</string>
|
<string name="key_view_tab_certs">Beglaubigungen</string>
|
||||||
<string name="user_id_info_revoked_title">Wiederrufen</string>
|
<string name="user_id_info_revoked_title">Wiederrufen</string>
|
||||||
<string name="user_id_info_revoked_text">Diese Identität wurde durch den Schlüsselinhaber wiederrufen. Sie ist nicht mehr gültig.</string>
|
<string name="user_id_info_revoked_text">Diese Identität wurde durch den Schlüsselinhaber wiederrufen. Sie ist nicht mehr gültig.</string>
|
||||||
<string name="user_id_info_verified_title">Überprüft</string>
|
<string name="user_id_info_certified_title">Überprüft</string>
|
||||||
<string name="user_id_info_verified_text">Diese Identität wurde überprüft.</string>
|
<string name="user_id_info_certified_text">Diese Identität wurde überprüft.</string>
|
||||||
<string name="user_id_info_not_verified_title">Nicht überprüft</string>
|
<string name="user_id_info_uncertified_title">Nicht überprüft</string>
|
||||||
<string name="user_id_info_not_verified_text">Diese Identität wurde noch nicht verifiziert. Du kannst nicht sicher sein, ob diese Identität wirklich zu einer bestimmten Person gehört.</string>
|
<string name="user_id_info_uncertified_text">Diese Identität wurde noch nicht verifiziert. Du kannst nicht sicher sein, ob diese Identität wirklich zu einer bestimmten Person gehört.</string>
|
||||||
<string name="user_id_info_invalid_title">Ungültig</string>
|
<string name="user_id_info_invalid_title">Ungültig</string>
|
||||||
<string name="user_id_info_invalid_text">Irgend etwas ist mit dieser Identität nicht in Ordnung!</string>
|
<string name="user_id_info_invalid_text">Irgend etwas ist mit dieser Identität nicht in Ordnung!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -421,10 +421,10 @@
|
|||||||
<string name="key_view_tab_certs">Certificados</string>
|
<string name="key_view_tab_certs">Certificados</string>
|
||||||
<string name="user_id_info_revoked_title">Revocada</string>
|
<string name="user_id_info_revoked_title">Revocada</string>
|
||||||
<string name="user_id_info_revoked_text">Esta identidad ha sido revocada por el propietario de la clave. En adelante no es válida.</string>
|
<string name="user_id_info_revoked_text">Esta identidad ha sido revocada por el propietario de la clave. En adelante no es válida.</string>
|
||||||
<string name="user_id_info_verified_title">Verificada</string>
|
<string name="user_id_info_certified_title">Verificada</string>
|
||||||
<string name="user_id_info_verified_text">Esta identidad ha sido verificada</string>
|
<string name="user_id_info_certified_text">Esta identidad ha sido verificada</string>
|
||||||
<string name="user_id_info_not_verified_title">No verificada</string>
|
<string name="user_id_info_uncertified_title">No verificada</string>
|
||||||
<string name="user_id_info_not_verified_text">Esta identidad no se ha verificado aún. No puede estar seguro de si la identidad realmente corresponde a una persona en concreto.</string>
|
<string name="user_id_info_uncertified_text">Esta identidad no se ha verificado aún. No puede estar seguro de si la identidad realmente corresponde a una persona en concreto.</string>
|
||||||
<string name="user_id_info_invalid_title">No válido</string>
|
<string name="user_id_info_invalid_title">No válido</string>
|
||||||
<string name="user_id_info_invalid_text">¡Algo está mal con esta identidad!</string>
|
<string name="user_id_info_invalid_text">¡Algo está mal con esta identidad!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -421,10 +421,10 @@
|
|||||||
<string name="key_view_tab_certs">Certificats</string>
|
<string name="key_view_tab_certs">Certificats</string>
|
||||||
<string name="user_id_info_revoked_title">Révoquée</string>
|
<string name="user_id_info_revoked_title">Révoquée</string>
|
||||||
<string name="user_id_info_revoked_text">Cette identité a été révoquée par le propriétaire de la clef. Elle n\'est plus valide.</string>
|
<string name="user_id_info_revoked_text">Cette identité a été révoquée par le propriétaire de la clef. Elle n\'est plus valide.</string>
|
||||||
<string name="user_id_info_verified_title">Vérifiée</string>
|
<string name="user_id_info_certified_title">Vérifiée</string>
|
||||||
<string name="user_id_info_verified_text">Cette identité a été vérifiée.</string>
|
<string name="user_id_info_certified_text">Cette identité a été vérifiée.</string>
|
||||||
<string name="user_id_info_not_verified_title">Non vérifiée</string>
|
<string name="user_id_info_uncertified_title">Non vérifiée</string>
|
||||||
<string name="user_id_info_not_verified_text">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.</string>
|
<string name="user_id_info_uncertified_text">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.</string>
|
||||||
<string name="user_id_info_invalid_title">Invalide</string>
|
<string name="user_id_info_invalid_title">Invalide</string>
|
||||||
<string name="user_id_info_invalid_text">Quelque chose ne va pas avec cette identité !</string>
|
<string name="user_id_info_invalid_text">Quelque chose ne va pas avec cette identité !</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -426,10 +426,10 @@ Permetti accesso?\n\nATTENZIONE: Se non sai perche\' questo schermata e\' appars
|
|||||||
<string name="key_view_tab_certs">Certificati</string>
|
<string name="key_view_tab_certs">Certificati</string>
|
||||||
<string name="user_id_info_revoked_title">Revocato</string>
|
<string name="user_id_info_revoked_title">Revocato</string>
|
||||||
<string name="user_id_info_revoked_text">Questa identità è stata revocata dal suo proprietario. Non è più valida.</string>
|
<string name="user_id_info_revoked_text">Questa identità è stata revocata dal suo proprietario. Non è più valida.</string>
|
||||||
<string name="user_id_info_verified_title">Verificato</string>
|
<string name="user_id_info_certified_title">Verificato</string>
|
||||||
<string name="user_id_info_verified_text">Questa identità è stata verificata.</string>
|
<string name="user_id_info_certified_text">Questa identità è stata verificata.</string>
|
||||||
<string name="user_id_info_not_verified_title">Non verificato</string>
|
<string name="user_id_info_uncertified_title">Non verificato</string>
|
||||||
<string name="user_id_info_not_verified_text">Questa identità non è stata ancora verificata. Non puoi esser sicuro che l\'identità corrisponda veramente ad una specifica persona.</string>
|
<string name="user_id_info_uncertified_text">Questa identità non è stata ancora verificata. Non puoi esser sicuro che l\'identità corrisponda veramente ad una specifica persona.</string>
|
||||||
<string name="user_id_info_invalid_title">Non valido</string>
|
<string name="user_id_info_invalid_title">Non valido</string>
|
||||||
<string name="user_id_info_invalid_text">C\'è qualcosa che non va con questa identità!</string>
|
<string name="user_id_info_invalid_text">C\'è qualcosa che non va con questa identità!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -443,10 +443,10 @@
|
|||||||
<string name="key_view_tab_certs">証明</string>
|
<string name="key_view_tab_certs">証明</string>
|
||||||
<string name="user_id_info_revoked_title">破棄</string>
|
<string name="user_id_info_revoked_title">破棄</string>
|
||||||
<string name="user_id_info_revoked_text">このIDは鍵の所有者により破棄されています。もう適正ではありません。</string>
|
<string name="user_id_info_revoked_text">このIDは鍵の所有者により破棄されています。もう適正ではありません。</string>
|
||||||
<string name="user_id_info_verified_title">検証</string>
|
<string name="user_id_info_certified_title">検証</string>
|
||||||
<string name="user_id_info_verified_text">このIDは検証されています。</string>
|
<string name="user_id_info_certified_text">このIDは検証されています。</string>
|
||||||
<string name="user_id_info_not_verified_title">未検証</string>
|
<string name="user_id_info_uncertified_title">未検証</string>
|
||||||
<string name="user_id_info_not_verified_text">このIDはまだ検証されていません。IDが本当に特定の人に対応している場合を、あなたは確認することができません。</string>
|
<string name="user_id_info_uncertified_text">このIDはまだ検証されていません。IDが本当に特定の人に対応している場合を、あなたは確認することができません。</string>
|
||||||
<string name="user_id_info_invalid_title">不適正</string>
|
<string name="user_id_info_invalid_title">不適正</string>
|
||||||
<string name="user_id_info_invalid_text">このIDではなにかしら問題があります!</string>
|
<string name="user_id_info_invalid_text">このIDではなにかしら問題があります!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -361,9 +361,9 @@
|
|||||||
<string name="key_view_tab_keys">Доп. ключи</string>
|
<string name="key_view_tab_keys">Доп. ключи</string>
|
||||||
<string name="key_view_tab_certs">Сертификация</string>
|
<string name="key_view_tab_certs">Сертификация</string>
|
||||||
<string name="user_id_info_revoked_title">Аннулировано</string>
|
<string name="user_id_info_revoked_title">Аннулировано</string>
|
||||||
<string name="user_id_info_verified_title">Подтверждено</string>
|
<string name="user_id_info_certified_title">Подтверждено</string>
|
||||||
<string name="user_id_info_not_verified_title">Не подтверждено</string>
|
<string name="user_id_info_uncertified_title">Не подтверждено</string>
|
||||||
<string name="user_id_info_not_verified_text">Этот идентификатор не был заверен. Нет гарантии, что он принадлежит этому человеку.</string>
|
<string name="user_id_info_uncertified_text">Этот идентификатор не был заверен. Нет гарантии, что он принадлежит этому человеку.</string>
|
||||||
<string name="user_id_info_invalid_title">Недействительно</string>
|
<string name="user_id_info_invalid_title">Недействительно</string>
|
||||||
<string name="user_id_info_invalid_text">Что-то не так с идентификатором!</string>
|
<string name="user_id_info_invalid_text">Что-то не так с идентификатором!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -380,9 +380,9 @@
|
|||||||
<string name="key_view_tab_certs">Certifikati</string>
|
<string name="key_view_tab_certs">Certifikati</string>
|
||||||
<string name="user_id_info_revoked_title">Preklican</string>
|
<string name="user_id_info_revoked_title">Preklican</string>
|
||||||
<string name="user_id_info_revoked_text">Lastnik ključa je preklical to identiteto. Ta ni več veljavna.</string>
|
<string name="user_id_info_revoked_text">Lastnik ključa je preklical to identiteto. Ta ni več veljavna.</string>
|
||||||
<string name="user_id_info_verified_title">Preverjen</string>
|
<string name="user_id_info_certified_title">Preverjen</string>
|
||||||
<string name="user_id_info_verified_text">Identiteta je bila preverjena</string>
|
<string name="user_id_info_certified_text">Identiteta je bila preverjena</string>
|
||||||
<string name="user_id_info_not_verified_title">Nepreverjen</string>
|
<string name="user_id_info_uncertified_title">Nepreverjen</string>
|
||||||
<string name="user_id_info_invalid_title">Neveljaven</string>
|
<string name="user_id_info_invalid_title">Neveljaven</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
<string name="edit_key_action_change_passphrase">Zamenjaj geslo</string>
|
<string name="edit_key_action_change_passphrase">Zamenjaj geslo</string>
|
||||||
|
@ -393,10 +393,10 @@
|
|||||||
<string name="key_view_tab_certs">Сертификати</string>
|
<string name="key_view_tab_certs">Сертификати</string>
|
||||||
<string name="user_id_info_revoked_title">Опозван</string>
|
<string name="user_id_info_revoked_title">Опозван</string>
|
||||||
<string name="user_id_info_revoked_text">Власник кључа је опозвао овај идентитет. Више није исправан.</string>
|
<string name="user_id_info_revoked_text">Власник кључа је опозвао овај идентитет. Више није исправан.</string>
|
||||||
<string name="user_id_info_verified_title">Оверен</string>
|
<string name="user_id_info_certified_title">Оверен</string>
|
||||||
<string name="user_id_info_verified_text">Овај идентитет није оверен.</string>
|
<string name="user_id_info_certified_text">Овај идентитет није оверен.</string>
|
||||||
<string name="user_id_info_not_verified_title">Није оверен</string>
|
<string name="user_id_info_uncertified_title">Није оверен</string>
|
||||||
<string name="user_id_info_not_verified_text">Овај идентитет још није оверен. Не можете бити сигурни да идентитет заиста одговара одређеној особи.</string>
|
<string name="user_id_info_uncertified_text">Овај идентитет још није оверен. Не можете бити сигурни да идентитет заиста одговара одређеној особи.</string>
|
||||||
<string name="user_id_info_invalid_title">Неисправан</string>
|
<string name="user_id_info_invalid_title">Неисправан</string>
|
||||||
<string name="user_id_info_invalid_text">Нешто није у реду са овим идентитетом!</string>
|
<string name="user_id_info_invalid_text">Нешто није у реду са овим идентитетом!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -353,10 +353,10 @@
|
|||||||
<string name="key_view_tab_share">Paylaş</string>
|
<string name="key_view_tab_share">Paylaş</string>
|
||||||
<string name="key_view_tab_keys">Alt anahtarlar</string>
|
<string name="key_view_tab_keys">Alt anahtarlar</string>
|
||||||
<string name="key_view_tab_certs">Sertifikalar</string>
|
<string name="key_view_tab_certs">Sertifikalar</string>
|
||||||
<string name="user_id_info_verified_title">Doğrulanmış</string>
|
<string name="user_id_info_certified_title">Doğrulanmış</string>
|
||||||
<string name="user_id_info_verified_text">Kimlik doğrulandı.</string>
|
<string name="user_id_info_certified_text">Kimlik doğrulandı.</string>
|
||||||
<string name="user_id_info_not_verified_title">Doğrulanmamış</string>
|
<string name="user_id_info_uncertified_title">Doğrulanmamış</string>
|
||||||
<string name="user_id_info_not_verified_text">Bu kimlik henüz doğrulanmadı. Bu kimliğin belirli bir kişiye ait olduğundan emin olamazsınız.</string>
|
<string name="user_id_info_uncertified_text">Bu kimlik henüz doğrulanmadı. Bu kimliğin belirli bir kişiye ait olduğundan emin olamazsınız.</string>
|
||||||
<string name="user_id_info_invalid_title">Geçersiz</string>
|
<string name="user_id_info_invalid_title">Geçersiz</string>
|
||||||
<string name="user_id_info_invalid_text">Bu kimlikle ilgili yanlış olan bazı şeyler var!</string>
|
<string name="user_id_info_invalid_text">Bu kimlikle ilgili yanlış olan bazı şeyler var!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -383,10 +383,10 @@
|
|||||||
<string name="key_view_tab_certs">Сертифікати</string>
|
<string name="key_view_tab_certs">Сертифікати</string>
|
||||||
<string name="user_id_info_revoked_title">Відхилено</string>
|
<string name="user_id_info_revoked_title">Відхилено</string>
|
||||||
<string name="user_id_info_revoked_text">Ця сутність вже відкликана власником ключа. Вона більше не дійсна.</string>
|
<string name="user_id_info_revoked_text">Ця сутність вже відкликана власником ключа. Вона більше не дійсна.</string>
|
||||||
<string name="user_id_info_verified_title">Перевірено</string>
|
<string name="user_id_info_certified_title">Перевірено</string>
|
||||||
<string name="user_id_info_verified_text">Не перевірено</string>
|
<string name="user_id_info_certified_text">Не перевірено</string>
|
||||||
<string name="user_id_info_not_verified_title">Не перевірено</string>
|
<string name="user_id_info_uncertified_title">Не перевірено</string>
|
||||||
<string name="user_id_info_not_verified_text">Ця сутність ще не перевірена. Ви не можете переконатися, чи сутність справді відповідає вказаній особі.</string>
|
<string name="user_id_info_uncertified_text">Ця сутність ще не перевірена. Ви не можете переконатися, чи сутність справді відповідає вказаній особі.</string>
|
||||||
<string name="user_id_info_invalid_title">Недійсна</string>
|
<string name="user_id_info_invalid_title">Недійсна</string>
|
||||||
<string name="user_id_info_invalid_text">Щось неправильне у цій сутності!</string>
|
<string name="user_id_info_invalid_text">Щось неправильне у цій сутності!</string>
|
||||||
<!--Edit key-->
|
<!--Edit key-->
|
||||||
|
@ -266,14 +266,15 @@
|
|||||||
<string name="error_generic_report_bug">"A generic error occurred, please create a new bug report for OpenKeychain."</string>
|
<string name="error_generic_report_bug">"A generic error occurred, please create a new bug report for OpenKeychain."</string>
|
||||||
|
|
||||||
<!-- results shown after decryption/verification -->
|
<!-- results shown after decryption/verification -->
|
||||||
|
<string name="decrypt_result_no_signature">"Not Signed"</string>
|
||||||
<string name="decrypt_result_invalid_signature">"Invalid signature!"</string>
|
<string name="decrypt_result_invalid_signature">"Invalid signature!"</string>
|
||||||
<string name="decrypt_result_signature_unknown_pub_key">"Unknown public key"</string>
|
<string name="decrypt_result_signature_unknown_pub_key">"Unknown public key"</string>
|
||||||
<string name="decrypt_result_signature_uncertified">"Valid signature (uncertified)"</string>
|
<string name="decrypt_result_signature_uncertified">"Signed by (not certified!)"</string>
|
||||||
<string name="decrypt_result_signature_certified">"Valid signature (certified)"</string>
|
<string name="decrypt_result_signature_certified">"Signed by"</string>
|
||||||
<string name="decrypt_result_decrypted">"Successfully decrypted"</string>
|
<string name="decrypt_result_encrypted">"Encrypted"</string>
|
||||||
<string name="decrypt_result_decrypted_unknown_pub_key">"Successfully decrypted but unknown public key"</string>
|
<string name="decrypt_result_not_encrypted">"Not Encrypted"</string>
|
||||||
<string name="decrypt_result_decrypted_and_signature_uncertified">"Successfully decrypted and valid signature (uncertified)"</string>
|
<string name="decrypt_result_action_show">"Show"</string>
|
||||||
<string name="decrypt_result_decrypted_and_signature_certified">"Successfully decrypted and valid signature (certified)"</string>
|
<string name="decrypt_result_action_Lookup">"Lookup"</string>
|
||||||
|
|
||||||
<!-- Add keys -->
|
<!-- Add keys -->
|
||||||
<string name="add_keys_section_secure_exchange">"Exchange"</string>
|
<string name="add_keys_section_secure_exchange">"Exchange"</string>
|
||||||
@ -507,10 +508,10 @@
|
|||||||
<string name="key_view_tab_certs">"Certificates"</string>
|
<string name="key_view_tab_certs">"Certificates"</string>
|
||||||
<string name="user_id_info_revoked_title">"Revoked"</string>
|
<string name="user_id_info_revoked_title">"Revoked"</string>
|
||||||
<string name="user_id_info_revoked_text">"This identity has been revoked by the key owner. It is no longer valid."</string>
|
<string name="user_id_info_revoked_text">"This identity has been revoked by the key owner. It is no longer valid."</string>
|
||||||
<string name="user_id_info_verified_title">"Verified"</string>
|
<string name="user_id_info_certified_title">"Certified"</string>
|
||||||
<string name="user_id_info_verified_text">"This identity has been verified."</string>
|
<string name="user_id_info_certified_text">"This identity has been certified by you."</string>
|
||||||
<string name="user_id_info_not_verified_title">"Not verified"</string>
|
<string name="user_id_info_uncertified_title">"Not certified"</string>
|
||||||
<string name="user_id_info_not_verified_text">"This identity has not been verified yet. You cannot be sure if the identity really corresponds to a specific person."</string>
|
<string name="user_id_info_uncertified_text">"This identity has not been certified yet. You cannot be sure if the identity really corresponds to a specific person."</string>
|
||||||
<string name="user_id_info_invalid_title">"Invalid"</string>
|
<string name="user_id_info_invalid_title">"Invalid"</string>
|
||||||
<string name="user_id_info_invalid_text">"Something is wrong with this identity!"</string>
|
<string name="user_id_info_invalid_text">"Something is wrong with this identity!"</string>
|
||||||
|
|
||||||
|