From 88fc659ff6b9038266043908ec5f3ccb7d519dba Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Thu, 29 Apr 2010 01:11:26 +0000 Subject: put return values into the Id class as well, changed encrypt file layout to use symmetric OR asymmetric again, layout and string adjustments --- src/org/thialfihar/android/apg/Apg.java | 27 +++---- .../android/apg/EncryptFileActivity.java | 84 +++++++++++++--------- src/org/thialfihar/android/apg/Id.java | 7 ++ 3 files changed, 67 insertions(+), 51 deletions(-) (limited to 'src') diff --git a/src/org/thialfihar/android/apg/Apg.java b/src/org/thialfihar/android/apg/Apg.java index 8596bdafc..31720c5af 100644 --- a/src/org/thialfihar/android/apg/Apg.java +++ b/src/org/thialfihar/android/apg/Apg.java @@ -138,11 +138,6 @@ public class Apg { protected static boolean mInitialized = false; - protected static final int RETURN_NO_MASTER_KEY = -2; - protected static final int RETURN_ERROR = -1; - protected static final int RETURN_OK = 0; - protected static final int RETURN_UPDATED = 1; - protected static HashMap mSecretKeyIdToIdMap; protected static HashMap mSecretKeyIdToKeyRingMap; protected static HashMap mPublicKeyIdToIdMap; @@ -586,14 +581,14 @@ public class Apg { PGPPublicKey masterKey = getMasterKey(keyRing); if (masterKey == null) { - return RETURN_NO_MASTER_KEY; + return Id.return_value.no_master_key; } try { keyRing.encode(out); out.close(); } catch (IOException e) { - return RETURN_ERROR; + return Id.return_value.error; } values.put(PublicKeys.KEY_ID, masterKey.getKeyID()); @@ -603,10 +598,10 @@ public class Apg { Cursor cursor = context.managedQuery(uri, PUBLIC_KEY_PROJECTION, null, null, null); if (cursor != null && cursor.getCount() > 0) { context.getContentResolver().update(uri, values, null, null); - return RETURN_UPDATED; + return Id.return_value.updated; } else { context.getContentResolver().insert(PublicKeys.CONTENT_URI, values); - return RETURN_OK; + return Id.return_value.ok; } } @@ -616,14 +611,14 @@ public class Apg { PGPSecretKey masterKey = getMasterKey(keyRing); if (masterKey == null) { - return RETURN_NO_MASTER_KEY; + return Id.return_value.no_master_key; } try { keyRing.encode(out); out.close(); } catch (IOException e) { - return RETURN_ERROR; + return Id.return_value.error; } values.put(SecretKeys.KEY_ID, masterKey.getKeyID()); @@ -633,10 +628,10 @@ public class Apg { Cursor cursor = context.managedQuery(uri, SECRET_KEY_PROJECTION, null, null, null); if (cursor != null && cursor.getCount() > 0) { context.getContentResolver().update(uri, values, null, null); - return RETURN_UPDATED; + return Id.return_value.updated; } else { context.getContentResolver().insert(SecretKeys.CONTENT_URI, values); - return RETURN_OK; + return Id.return_value.ok; } } @@ -690,13 +685,13 @@ public class Apg { retValue = saveKeyRing(context, publicKeyRing); } - if (retValue == RETURN_ERROR) { + if (retValue == Id.return_value.error) { throw new GeneralException("error saving some key(s)"); } - if (retValue == RETURN_UPDATED) { + if (retValue == Id.return_value.updated) { ++oldKeys; - } else if (retValue == RETURN_OK) { + } else if (retValue == Id.return_value.ok) { ++newKeys; } } diff --git a/src/org/thialfihar/android/apg/EncryptFileActivity.java b/src/org/thialfihar/android/apg/EncryptFileActivity.java index 0c5ce20c0..0dcb44989 100644 --- a/src/org/thialfihar/android/apg/EncryptFileActivity.java +++ b/src/org/thialfihar/android/apg/EncryptFileActivity.java @@ -51,9 +51,11 @@ import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageButton; +import android.widget.RadioGroup; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; +import android.widget.RadioGroup.OnCheckedChangeListener; public class EncryptFileActivity extends BaseActivity { private EditText mFilename = null; @@ -65,8 +67,9 @@ public class EncryptFileActivity extends BaseActivity { private EditText mPassPhrase = null; private EditText mPassPhraseAgain = null; private CheckBox mAsciiArmour = null; - private CheckBox mUsePassPhrase = null; - private ViewGroup mPassPhraseLayout = null; + private RadioGroup mEncryptionMode = null; + private ViewGroup mAsymmetricLayout = null; + private ViewGroup mSymmetricLayout = null; private Button mEncryptButton = null; private Button mSelectKeysButton = null; @@ -145,28 +148,36 @@ public class EncryptFileActivity extends BaseActivity { } } - mUsePassPhrase = (CheckBox) findViewById(R.id.use_pass_phrase); - mPassPhraseLayout = (ViewGroup) findViewById(R.id.layout_pass_phrase); + mEncryptionMode = (RadioGroup) findViewById(R.id.encryption_mode); + mAsymmetricLayout = (ViewGroup) findViewById(R.id.layout_asymmetric); + mSymmetricLayout = (ViewGroup) findViewById(R.id.layout_symmetric); mPassPhrase = (EditText) findViewById(R.id.pass_phrase); mPassPhraseAgain = (EditText) findViewById(R.id.pass_phrase_again); - mUsePassPhrase.setOnClickListener(new OnClickListener() { + mEncryptionMode.check(R.id.use_asymmetric); + mEncryptionMode.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override - public void onClick(View v) { - CheckBox checkBox = (CheckBox) v; - if (checkBox.isChecked()) { - mPassPhraseLayout.setVisibility(ViewGroup.VISIBLE); + public void onCheckedChanged(RadioGroup group, int checkedId) { + if (checkedId == R.id.use_symmetric) { + mAsymmetricLayout.setVisibility(ViewGroup.GONE); + mSymmetricLayout.setVisibility(ViewGroup.VISIBLE); + mEncryptionKeyIds = null; + setSecretKeyId(0); } else { + mAsymmetricLayout.setVisibility(ViewGroup.VISIBLE); + mSymmetricLayout.setVisibility(ViewGroup.GONE); mPassPhrase.setText(""); mPassPhraseAgain.setText(""); - mPassPhraseLayout.setVisibility(ViewGroup.GONE); } + updateView(); } }); - if (mUsePassPhrase.isChecked()) { - mPassPhraseLayout.setVisibility(ViewGroup.VISIBLE); + if (mEncryptionMode.getCheckedRadioButtonId() == R.id.use_symmetric) { + mAsymmetricLayout.setVisibility(ViewGroup.GONE); + mSymmetricLayout.setVisibility(ViewGroup.VISIBLE); } else { - mPassPhraseLayout.setVisibility(ViewGroup.GONE); + mAsymmetricLayout.setVisibility(ViewGroup.VISIBLE); + mSymmetricLayout.setVisibility(ViewGroup.GONE); } mEncryptButton.setOnClickListener(new OnClickListener() { @@ -258,8 +269,8 @@ public class EncryptFileActivity extends BaseActivity { } // symmetric encryption - boolean gotPassPhrase = false; - if (mUsePassPhrase.isChecked()) { + if (mEncryptionMode.getCheckedRadioButtonId() == R.id.use_symmetric) { + boolean gotPassPhrase = false; String passPhrase = mPassPhrase.getText().toString(); String passPhraseAgain = mPassPhraseAgain.getText().toString(); if (!passPhrase.equals(passPhraseAgain)) { @@ -274,19 +285,19 @@ public class EncryptFileActivity extends BaseActivity { Toast.LENGTH_SHORT).show(); return; } - } - - boolean encryptIt = mEncryptionKeyIds != null && mEncryptionKeyIds.length > 0; - // for now require at least one form of encryption - if (!encryptIt && !gotPassPhrase) { - Toast.makeText(this, "Select at least one encryption key or a pass phrase.", - Toast.LENGTH_SHORT).show(); - return; - } + } else { + boolean encryptIt = mEncryptionKeyIds != null && mEncryptionKeyIds.length > 0; + // for now require at least one form of encryption + if (!encryptIt) { + Toast.makeText(this, "Select at least one encryption key.", + Toast.LENGTH_SHORT).show(); + return; + } - if (getSecretKeyId() != 0 && Apg.getPassPhrase() == null) { - showDialog(Id.dialog.pass_phrase); - return; + if (getSecretKeyId() != 0 && Apg.getPassPhrase() == null) { + showDialog(Id.dialog.pass_phrase); + return; + } } askForOutputFilename(); @@ -324,16 +335,19 @@ public class EncryptFileActivity extends BaseActivity { InputStream in = new FileInputStream(mInputFilename); ByteArrayOutputStream out = new ByteArrayOutputStream(); - String passPhrase = mPassPhrase.getText().toString(); - if (passPhrase.length() == 0) { - passPhrase = null; + String passPhrase = null; + if (mEncryptionMode.getCheckedRadioButtonId() == R.id.use_symmetric) { + passPhrase = mPassPhrase.getText().toString(); + if (passPhrase.length() == 0) { + passPhrase = null; + } } Apg.encrypt(in, out, mAsciiArmour.isChecked(), - mEncryptionKeyIds, getSecretKeyId(), - Apg.getPassPhrase(), this, - ((Choice) mAlgorithm.getSelectedItem()).getId(), - getDefaultHashAlgorithm(), - passPhrase); + mEncryptionKeyIds, getSecretKeyId(), + Apg.getPassPhrase(), this, + ((Choice) mAlgorithm.getSelectedItem()).getId(), + getDefaultHashAlgorithm(), + passPhrase); out.close(); OutputStream fileOut = new FileOutputStream(mOutputFilename); diff --git a/src/org/thialfihar/android/apg/Id.java b/src/org/thialfihar/android/apg/Id.java index b0c8368e6..08fd4b805 100644 --- a/src/org/thialfihar/android/apg/Id.java +++ b/src/org/thialfihar/android/apg/Id.java @@ -95,4 +95,11 @@ public final class Id { public static final int sign_and_encrypt = 0x21070003; } } + + public static final class return_value { + public static final int ok = 0; + public static final int error = -1; + public static final int no_master_key = -2; + public static final int updated = 1; + } } -- cgit v1.2.3