Two buttons to encrypt files and text, some fixes

This commit is contained in:
Dominik Schürmann 2014-09-07 17:00:58 +02:00
parent 02663de191
commit d1e08f9305
6 changed files with 77 additions and 33 deletions

View File

@ -50,7 +50,7 @@ import java.util.Set;
public class EncryptFileActivity extends DrawerActivity implements EncryptActivityInterface { public class EncryptFileActivity extends DrawerActivity implements EncryptActivityInterface {
/* Intents */ /* Intents */
public static final String ACTION_ENCRYPT_FILE = Constants.INTENT_PREFIX + "ENCRYPT_FILE"; public static final String ACTION_ENCRYPT = Constants.INTENT_PREFIX + "ENCRYPT";
// enables ASCII Armor for file encryption when uri is given // enables ASCII Armor for file encryption when uri is given
public static final String EXTRA_ASCII_ARMOR = "ascii_armor"; public static final String EXTRA_ASCII_ARMOR = "ascii_armor";
@ -370,7 +370,7 @@ public class EncryptFileActivity extends DrawerActivity implements EncryptActivi
setContentView(R.layout.encrypt_file_activity); setContentView(R.layout.encrypt_file_activity);
// if called with an intent action, do not init drawer navigation // if called with an intent action, do not init drawer navigation
if (ACTION_ENCRYPT_FILE.equals(getIntent().getAction())) { if (ACTION_ENCRYPT.equals(getIntent().getAction())) {
// lock drawer // lock drawer
deactivateDrawerNavigation(); deactivateDrawerNavigation();
// TODO: back button to key? // TODO: back button to key?
@ -460,10 +460,10 @@ public class EncryptFileActivity extends DrawerActivity implements EncryptActivi
String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT); String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
if (sharedText != null) { if (sharedText != null) {
// handle like normal text encryption, override action and extras to later // handle like normal text encryption, override action and extras to later
// executeServiceMethod ACTION_ENCRYPT_FILE in main actions // executeServiceMethod ACTION_ENCRYPT in main actions
extras.putString(EXTRA_TEXT, sharedText); extras.putString(EXTRA_TEXT, sharedText);
extras.putBoolean(EXTRA_ASCII_ARMOR, true); extras.putBoolean(EXTRA_ASCII_ARMOR, true);
action = ACTION_ENCRYPT_FILE; action = ACTION_ENCRYPT;
} }
} else */ } else */

View File

@ -49,7 +49,7 @@ import java.util.Set;
public class EncryptTextActivity extends DrawerActivity implements EncryptActivityInterface { public class EncryptTextActivity extends DrawerActivity implements EncryptActivityInterface {
/* Intents */ /* Intents */
public static final String ACTION_ENCRYPT_TEXT = Constants.INTENT_PREFIX + "ENCRYPT_TEXT"; public static final String ACTION_ENCRYPT = Constants.INTENT_PREFIX + "ENCRYPT";
/* EXTRA keys for input */ /* EXTRA keys for input */
public static final String EXTRA_TEXT = "text"; public static final String EXTRA_TEXT = "text";
@ -338,7 +338,7 @@ public class EncryptTextActivity extends DrawerActivity implements EncryptActivi
setContentView(R.layout.encrypt_text_activity); setContentView(R.layout.encrypt_text_activity);
// if called with an intent action, do not init drawer navigation // if called with an intent action, do not init drawer navigation
if (ACTION_ENCRYPT_TEXT.equals(getIntent().getAction())) { if (ACTION_ENCRYPT.equals(getIntent().getAction())) {
// lock drawer // lock drawer
deactivateDrawerNavigation(); deactivateDrawerNavigation();
// TODO: back button to key? // TODO: back button to key?
@ -415,9 +415,9 @@ public class EncryptTextActivity extends DrawerActivity implements EncryptActivi
/** /**
* Main Actions * Main Actions
*/ */
if (ACTION_ENCRYPT_TEXT.equals(action) && textData != null) { if (ACTION_ENCRYPT.equals(action) && textData != null) {
mMessage = textData; mMessage = textData;
} else if (ACTION_ENCRYPT_TEXT.equals(action)) { } else if (ACTION_ENCRYPT.equals(action)) {
Log.e(Constants.TAG, "Include the extra 'text' in your Intent!"); Log.e(Constants.TAG, "Include the extra 'text' in your Intent!");
} }
} }

View File

@ -328,7 +328,7 @@ public class KeyListFragment extends LoaderFragment
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @TargetApi(Build.VERSION_CODES.HONEYCOMB)
protected void encrypt(ActionMode mode, long[] masterKeyIds) { protected void encrypt(ActionMode mode, long[] masterKeyIds) {
Intent intent = new Intent(getActivity(), EncryptFileActivity.class); Intent intent = new Intent(getActivity(), EncryptFileActivity.class);
intent.setAction(EncryptFileActivity.ACTION_ENCRYPT_FILE); intent.setAction(EncryptFileActivity.ACTION_ENCRYPT);
intent.putExtra(EncryptFileActivity.EXTRA_ENCRYPTION_KEY_IDS, masterKeyIds); intent.putExtra(EncryptFileActivity.EXTRA_ENCRYPTION_KEY_IDS, masterKeyIds);
// used instead of startActivity set actionbar based on callingPackage // used instead of startActivity set actionbar based on callingPackage
startActivityForResult(intent, 0); startActivityForResult(intent, 0);

View File

@ -57,7 +57,8 @@ public class ViewKeyMainFragment extends LoaderFragment implements
private View mActionEdit; private View mActionEdit;
private View mActionEditDivider; private View mActionEditDivider;
private View mActionEncrypt; private View mActionEncryptFiles;
private View mActionEncryptText;
private View mActionCertify; private View mActionCertify;
private View mActionCertifyText; private View mActionCertifyText;
private ImageView mActionCertifyImage; private ImageView mActionCertifyImage;
@ -83,7 +84,8 @@ public class ViewKeyMainFragment extends LoaderFragment implements
mUserIds = (ListView) view.findViewById(R.id.view_key_user_ids); mUserIds = (ListView) view.findViewById(R.id.view_key_user_ids);
mActionEdit = view.findViewById(R.id.view_key_action_edit); mActionEdit = view.findViewById(R.id.view_key_action_edit);
mActionEditDivider = view.findViewById(R.id.view_key_action_edit_divider); mActionEditDivider = view.findViewById(R.id.view_key_action_edit_divider);
mActionEncrypt = view.findViewById(R.id.view_key_action_encrypt); mActionEncryptText = view.findViewById(R.id.view_key_action_encrypt_text);
mActionEncryptFiles = view.findViewById(R.id.view_key_action_encrypt_files);
mActionCertify = view.findViewById(R.id.view_key_action_certify); mActionCertify = view.findViewById(R.id.view_key_action_certify);
mActionCertifyText = view.findViewById(R.id.view_key_action_certify_text); mActionCertifyText = view.findViewById(R.id.view_key_action_certify_text);
mActionCertifyImage = (ImageView) view.findViewById(R.id.view_key_action_certify_image); mActionCertifyImage = (ImageView) view.findViewById(R.id.view_key_action_certify_image);
@ -135,10 +137,16 @@ public class ViewKeyMainFragment extends LoaderFragment implements
Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString()); Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString());
mActionEncrypt.setOnClickListener(new View.OnClickListener() { mActionEncryptFiles.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
encrypt(mDataUri); encrypt(mDataUri, false);
}
});
mActionEncryptText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
encrypt(mDataUri, true);
} }
}); });
mActionCertify.setOnClickListener(new View.OnClickListener() { mActionCertify.setOnClickListener(new View.OnClickListener() {
@ -227,7 +235,7 @@ public class ViewKeyMainFragment extends LoaderFragment implements
mActionEdit.setEnabled(false); mActionEdit.setEnabled(false);
mActionCertify.setEnabled(false); mActionCertify.setEnabled(false);
mActionCertifyText.setEnabled(false); mActionCertifyText.setEnabled(false);
mActionEncrypt.setEnabled(false); mActionEncryptFiles.setEnabled(false);
} else { } else {
mActionEdit.setEnabled(true); mActionEdit.setEnabled(true);
@ -235,11 +243,11 @@ public class ViewKeyMainFragment extends LoaderFragment implements
if (!data.isNull(INDEX_UNIFIED_EXPIRY) && expiryDate.before(new Date())) { if (!data.isNull(INDEX_UNIFIED_EXPIRY) && expiryDate.before(new Date())) {
mActionCertify.setEnabled(false); mActionCertify.setEnabled(false);
mActionCertifyText.setEnabled(false); mActionCertifyText.setEnabled(false);
mActionEncrypt.setEnabled(false); mActionEncryptFiles.setEnabled(false);
} else { } else {
mActionCertify.setEnabled(true); mActionCertify.setEnabled(true);
mActionCertifyText.setEnabled(true); mActionCertifyText.setEnabled(true);
mActionEncrypt.setEnabled(true); mActionEncryptFiles.setEnabled(true);
} }
} }
@ -269,7 +277,7 @@ public class ViewKeyMainFragment extends LoaderFragment implements
} }
} }
private void encrypt(Uri dataUri) { private void encrypt(Uri dataUri, boolean text) {
// If there is no encryption key, don't bother. // If there is no encryption key, don't bother.
if (!mHasEncrypt) { if (!mHasEncrypt) {
Notify.showNotify(getActivity(), R.string.error_no_encrypt_subkey, Notify.Style.ERROR); Notify.showNotify(getActivity(), R.string.error_no_encrypt_subkey, Notify.Style.ERROR);
@ -280,9 +288,16 @@ public class ViewKeyMainFragment extends LoaderFragment implements
.getCachedPublicKeyRing(dataUri) .getCachedPublicKeyRing(dataUri)
.extractOrGetMasterKeyId(); .extractOrGetMasterKeyId();
long[] encryptionKeyIds = new long[]{keyId}; long[] encryptionKeyIds = new long[]{keyId};
Intent intent = new Intent(getActivity(), EncryptFileActivity.class); Intent intent;
intent.setAction(EncryptFileActivity.ACTION_ENCRYPT_FILE); if (text) {
intent.putExtra(EncryptFileActivity.EXTRA_ENCRYPTION_KEY_IDS, encryptionKeyIds); intent = new Intent(getActivity(), EncryptTextActivity.class);
intent.setAction(EncryptTextActivity.ACTION_ENCRYPT);
intent.putExtra(EncryptTextActivity.EXTRA_ENCRYPTION_KEY_IDS, encryptionKeyIds);
} else {
intent = new Intent(getActivity(), EncryptFileActivity.class);
intent.setAction(EncryptFileActivity.ACTION_ENCRYPT);
intent.putExtra(EncryptFileActivity.EXTRA_ENCRYPTION_KEY_IDS, encryptionKeyIds);
}
// used instead of startActivity set actionbar based on callingPackage // used instead of startActivity set actionbar based on callingPackage
startActivityForResult(intent, 0); startActivityForResult(intent, 0);
} catch (PgpGeneralException e) { } catch (PgpGeneralException e) {

View File

@ -93,21 +93,49 @@
android:layout_height="1dip" android:layout_height="1dip"
android:background="?android:attr/listDivider" /> android:background="?android:attr/listDivider" />
<TextView
android:id="@+id/view_key_action_encrypt" <LinearLayout
android:paddingLeft="8dp" android:id="@+id/view_key_action_encrypt_text"
android:paddingRight="8dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="?android:attr/listPreferredItemHeight"
android:minHeight="?android:attr/listPreferredItemHeight"
android:clickable="true" android:clickable="true"
style="@style/SelectableItem" style="@style/SelectableItem"
android:text="@string/key_view_action_encrypt" android:orientation="horizontal">
android:layout_weight="1"
android:drawableRight="@drawable/ic_action_secure" <TextView
android:drawablePadding="8dp" android:paddingLeft="8dp"
android:gravity="center_vertical" /> android:paddingRight="8dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="0dip"
android:layout_height="match_parent"
android:text="@string/key_view_action_encrypt"
android:layout_weight="1"
android:drawableRight="@drawable/ic_action_secure"
android:drawablePadding="8dp"
android:gravity="center_vertical" />
<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/view_key_action_encrypt_files"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/key_view_action_encrypt_files"
android:drawableRight="@drawable/ic_action_secure"
android:drawablePadding="8dp"
android:gravity="center_vertical"
style="@style/SelectableItem" />
</LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -447,7 +447,8 @@
<!-- Key view --> <!-- Key view -->
<string name="key_view_action_edit">Edit key</string> <string name="key_view_action_edit">Edit key</string>
<string name="key_view_action_encrypt">Encrypt with this key</string> <string name="key_view_action_encrypt">Encrypt Text</string>
<string name="key_view_action_encrypt_files">Files</string>
<string name="key_view_action_certify">Certify identities</string> <string name="key_view_action_certify">Certify identities</string>
<string name="key_view_action_update">Update from keyserver</string> <string name="key_view_action_update">Update from keyserver</string>
<string name="key_view_action_share_with">Share with…</string> <string name="key_view_action_share_with">Share with…</string>