Merge branch 'development' of github.com:open-keychain/open-keychain into development

This commit is contained in:
Vincent Breitmoser 2014-10-26 00:34:19 +02:00
commit fb7264d7fd
7 changed files with 42 additions and 19 deletions

View File

@ -80,6 +80,7 @@ public class PgpSignEncrypt extends BaseOperation {
private long mAdditionalEncryptId; private long mAdditionalEncryptId;
private boolean mCleartextInput; private boolean mCleartextInput;
private String mOriginalFilename; private String mOriginalFilename;
private boolean mFailOnMissingEncryptionKeyIds;
private byte[] mNfcSignedHash = null; private byte[] mNfcSignedHash = null;
private Date mNfcCreationTimestamp = null; private Date mNfcCreationTimestamp = null;
@ -116,6 +117,7 @@ public class PgpSignEncrypt extends BaseOperation {
this.mNfcSignedHash = builder.mNfcSignedHash; this.mNfcSignedHash = builder.mNfcSignedHash;
this.mNfcCreationTimestamp = builder.mNfcCreationTimestamp; this.mNfcCreationTimestamp = builder.mNfcCreationTimestamp;
this.mOriginalFilename = builder.mOriginalFilename; this.mOriginalFilename = builder.mOriginalFilename;
this.mFailOnMissingEncryptionKeyIds = builder.mFailOnMissingEncryptionKeyIds;
} }
public static class Builder { public static class Builder {
@ -142,6 +144,7 @@ public class PgpSignEncrypt extends BaseOperation {
private String mOriginalFilename = ""; private String mOriginalFilename = "";
private byte[] mNfcSignedHash = null; private byte[] mNfcSignedHash = null;
private Date mNfcCreationTimestamp = null; private Date mNfcCreationTimestamp = null;
private boolean mFailOnMissingEncryptionKeyIds = false;
public Builder(Context context, ProviderHelper providerHelper, Progressable progressable, public Builder(Context context, ProviderHelper providerHelper, Progressable progressable,
InputData data, OutputStream outStream) { InputData data, OutputStream outStream) {
@ -203,6 +206,11 @@ public class PgpSignEncrypt extends BaseOperation {
return this; return this;
} }
public Builder setFailOnMissingEncryptionKeyIds(boolean failOnMissingEncryptionKeyIds) {
mFailOnMissingEncryptionKeyIds = failOnMissingEncryptionKeyIds;
return this;
}
/** /**
* Also encrypt with the signing keyring * Also encrypt with the signing keyring
* *
@ -380,9 +388,15 @@ public class PgpSignEncrypt extends BaseOperation {
} catch (PgpKeyNotFoundException e) { } catch (PgpKeyNotFoundException e) {
log.add(LogType.MSG_SE_KEY_WARN, indent + 1, log.add(LogType.MSG_SE_KEY_WARN, indent + 1,
KeyFormattingUtils.convertKeyIdToHex(id)); KeyFormattingUtils.convertKeyIdToHex(id));
if (mFailOnMissingEncryptionKeyIds) {
return new SignEncryptResult(SignEncryptResult.RESULT_ERROR, log);
}
} catch (ProviderHelper.NotFoundException e) { } catch (ProviderHelper.NotFoundException e) {
log.add(LogType.MSG_SE_KEY_UNKNOWN, indent + 1, log.add(LogType.MSG_SE_KEY_UNKNOWN, indent + 1,
KeyFormattingUtils.convertKeyIdToHex(id)); KeyFormattingUtils.convertKeyIdToHex(id));
if (mFailOnMissingEncryptionKeyIds) {
return new SignEncryptResult(SignEncryptResult.RESULT_ERROR, log);
}
} }
} }
} }

View File

@ -379,6 +379,7 @@ public class OpenPgpService extends RemoteService {
.setCompressionId(accSettings.getCompression()) .setCompressionId(accSettings.getCompression())
.setSymmetricEncryptionAlgorithm(accSettings.getEncryptionAlgorithm()) .setSymmetricEncryptionAlgorithm(accSettings.getEncryptionAlgorithm())
.setEncryptionMasterKeyIds(keyIds) .setEncryptionMasterKeyIds(keyIds)
.setFailOnMissingEncryptionKeyIds(true)
.setOriginalFilename(originalFilename) .setOriginalFilename(originalFilename)
.setAdditionalEncryptId(accSettings.getKeyId()); // add acc key for encryption .setAdditionalEncryptId(accSettings.getKeyId()); // add acc key for encryption

View File

@ -384,7 +384,8 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements T
KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_VERIFIED); KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_VERIFIED);
enabled = true; enabled = true;
} else { } else {
h.statusIcon.setVisibility(View.GONE); h.statusIcon.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_UNVERIFIED);
enabled = true; enabled = true;
} }
} }

View File

@ -133,11 +133,11 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter {
boolean enabled; boolean enabled;
if (cursor.getInt(mIndexIsRevoked) != 0) { if (cursor.getInt(mIndexIsRevoked) != 0) {
h.statusIcon.setVisibility(View.VISIBLE); h.statusIcon.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_REVOKED); KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_REVOKED, true);
enabled = false; enabled = false;
} else if (cursor.getInt(mIndexIsExpiry) != 0) { } else if (cursor.getInt(mIndexIsExpiry) != 0) {
h.statusIcon.setVisibility(View.VISIBLE); h.statusIcon.setVisibility(View.VISIBLE);
KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_EXPIRED); KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_EXPIRED, true);
enabled = false; enabled = false;
} else { } else {
h.statusIcon.setVisibility(View.GONE); h.statusIcon.setVisibility(View.GONE);
@ -152,10 +152,10 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter {
View view = mInflater.inflate(R.layout.select_key_item, null); View view = mInflater.inflate(R.layout.select_key_item, null);
ViewHolderItem holder = new ViewHolderItem(); ViewHolderItem holder = new ViewHolderItem();
holder.view = view; holder.view = view;
holder.mainUserId = (TextView) view.findViewById(R.id.key_list_item_name); holder.mainUserId = (TextView) view.findViewById(R.id.select_key_item_name);
holder.mainUserIdRest = (TextView) view.findViewById(R.id.mainUserIdRest); holder.mainUserIdRest = (TextView) view.findViewById(R.id.select_key_item_email);
holder.keyId = (TextView) view.findViewById(R.id.subkey_item_key_id); holder.keyId = (TextView) view.findViewById(R.id.select_key_item_key_id);
holder.statusIcon = (ImageView) view.findViewById(R.id.status_icon); holder.statusIcon = (ImageView) view.findViewById(R.id.select_key_item_status_icon);
holder.selected = (CheckBox) view.findViewById(R.id.selected); holder.selected = (CheckBox) view.findViewById(R.id.selected);
view.setTag(holder); view.setTag(holder);
return view; return view;

View File

@ -24,21 +24,21 @@
android:layout_gravity="center_vertical"> android:layout_gravity="center_vertical">
<TextView <TextView
android:id="@+id/mainUserId" android:id="@+id/select_key_item_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Alice" android:text="Alice"
android:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
android:id="@+id/mainUserIdRest" android:id="@+id/select_key_item_email"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="alice@example.com" android:text="alice@example.com"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView <TextView
android:id="@+id/subkey_item_key_id" android:id="@+id/select_key_item_key_id"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="0xBBBBBBBBBBBBBBB" android:text="0xBBBBBBBBBBBBBBB"
@ -46,7 +46,7 @@
</LinearLayout> </LinearLayout>
<ImageView <ImageView
android:id="@+id/status_icon" android:id="@+id/select_key_item_status_icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"

View File

@ -1,24 +1,31 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_key_list_multi_export"
android:icon="@drawable/ic_action_import_export"
android:title="@string/menu_export_key" />
<item <item
android:id="@+id/menu_key_list_multi_encrypt" android:id="@+id/menu_key_list_multi_encrypt"
android:icon="@drawable/ic_action_secure" android:icon="@drawable/ic_action_secure"
android:title="@string/menu_encrypt_to" /> android:title="@string/menu_encrypt_to" />
<item
android:id="@+id/menu_key_list_multi_export"
android:icon="@drawable/ic_action_import_export"
android:showAsAction="never"
tools:ignore="AppCompatResource"
android:title="@string/menu_export_key" />
<item <item
android:id="@+id/menu_key_list_multi_delete" android:id="@+id/menu_key_list_multi_delete"
android:icon="@drawable/ic_action_discard" android:icon="@drawable/ic_action_discard"
android:showAsAction="never"
tools:ignore="AppCompatResource"
android:title="@string/menu_delete_key" /> android:title="@string/menu_delete_key" />
<item <item
android:id="@+id/menu_key_list_multi_select_all" android:id="@+id/menu_key_list_multi_select_all"
android:icon="@drawable/ic_action_select_all" android:icon="@drawable/ic_action_select_all"
android:showAsAction="never"
tools:ignore="AppCompatResource"
android:title="@string/menu_select_all" /> android:title="@string/menu_select_all" />
</menu> </menu>

View File

@ -89,7 +89,7 @@
<string name="menu_export_key">"Export to file"</string> <string name="menu_export_key">"Export to file"</string>
<string name="menu_delete_key">"Delete key"</string> <string name="menu_delete_key">"Delete key"</string>
<string name="menu_create_key">"Create my key"</string> <string name="menu_create_key">"Create my key"</string>
<string name="menu_import_existing_key">"Import existing key"</string> <string name="menu_import_existing_key">"Import from file"</string>
<string name="menu_search">"Search"</string> <string name="menu_search">"Search"</string>
<string name="menu_beam_preferences">"Beam settings"</string> <string name="menu_beam_preferences">"Beam settings"</string>
<string name="menu_key_edit_cancel">"Cancel"</string> <string name="menu_key_edit_cancel">"Cancel"</string>
@ -1045,7 +1045,7 @@
<!-- First Time --> <!-- First Time -->
<string name="first_time_text1">"Take back your privacy with OpenKeychain!"</string> <string name="first_time_text1">"Take back your privacy with OpenKeychain!"</string>
<string name="first_time_create_key">"Create my key"</string> <string name="first_time_create_key">"Create my key"</string>
<string name="first_time_import_key">"Import existing key"</string> <string name="first_time_import_key">"Import from file"</string>
<string name="first_time_skip">"Skip Setup"</string> <string name="first_time_skip">"Skip Setup"</string>
</resources> </resources>