diff --git a/src/org/thialfihar/android/apg/Apg.java b/src/org/thialfihar/android/apg/Apg.java index ea19c1cbe..1346689ce 100644 --- a/src/org/thialfihar/android/apg/Apg.java +++ b/src/org/thialfihar/android/apg/Apg.java @@ -1314,7 +1314,9 @@ public class Apg { } compressGen.close(); encryptOut.close(); - out.close(); + if (armored) { + armorOut.close(); + } progress.setProgress("done.", 100, 100); } @@ -1625,8 +1627,6 @@ public class Apg { } } - out.close(); - if (signature != null) { progress.setProgress("verifying signature...", 80, 100); PGPSignatureList signatureList = (PGPSignatureList) plainFact.nextObject(); diff --git a/src/org/thialfihar/android/apg/DecryptFileActivity.java b/src/org/thialfihar/android/apg/DecryptFileActivity.java index 369d623d2..e8c8397eb 100644 --- a/src/org/thialfihar/android/apg/DecryptFileActivity.java +++ b/src/org/thialfihar/android/apg/DecryptFileActivity.java @@ -186,6 +186,8 @@ public class DecryptFileActivity extends BaseActivity { OutputStream out = new FileOutputStream(mOutputFilename); data = Apg.decrypt(in, out, Apg.getPassPhrase(), this, mAssumeSymmetricEncryption); + + out.close(); } catch (PGPException e) { error = e.getMessage(); } catch (IOException e) { diff --git a/src/org/thialfihar/android/apg/EncryptFileActivity.java b/src/org/thialfihar/android/apg/EncryptFileActivity.java index a4974c263..14b342d7e 100644 --- a/src/org/thialfihar/android/apg/EncryptFileActivity.java +++ b/src/org/thialfihar/android/apg/EncryptFileActivity.java @@ -16,7 +16,6 @@ package org.thialfihar.android.apg; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -85,6 +84,13 @@ public class EncryptFileActivity extends BaseActivity { mAsciiArmour = (CheckBox) findViewById(R.id.ascii_armour); mAsciiArmour.setChecked(getDefaultAsciiArmour()); + mAsciiArmour.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View view) { + guessOutputFilename(); + } + }); // asymmetric tab mSelectKeysButton = (Button) findViewById(R.id.btn_selectEncryptKeys); @@ -254,13 +260,17 @@ public class EncryptFileActivity extends BaseActivity { startActivityForResult(intent, Id.request.public_keys); } + private void guessOutputFilename() { + mInputFilename = mFilename.getText().toString(); + File file = new File(mInputFilename); + String ending = (mAsciiArmour.isChecked() ? ".asc" : ".gpg"); + mOutputFilename = Constants.path.app_dir + "/" + file.getName() + ending; + } + private void encryptClicked() { String currentFilename = mFilename.getText().toString(); if (mInputFilename == null || !mInputFilename.equals(currentFilename)) { - mInputFilename = mFilename.getText().toString(); - File file = new File(mInputFilename); - String ending = (mAsciiArmour.isChecked() ? ".asc" : ".gpg"); - mOutputFilename = Constants.path.app_dir + "/" + file.getName() + ending; + guessOutputFilename(); } if (mInputFilename.equals("")) { diff --git a/src/org/thialfihar/android/apg/EncryptMessageActivity.java b/src/org/thialfihar/android/apg/EncryptMessageActivity.java index 028a928f6..6e88253a1 100644 --- a/src/org/thialfihar/android/apg/EncryptMessageActivity.java +++ b/src/org/thialfihar/android/apg/EncryptMessageActivity.java @@ -206,6 +206,8 @@ public class EncryptMessageActivity extends BaseActivity { Apg.signText(in, out, getSecretKeyId(), Apg.getPassPhrase(), getDefaultHashAlgorithm(), this); } + + out.close(); data.putString("message", new String(out.toByteArray())); } catch (IOException e) { error = e.getMessage();