From 4172715064584ef873bcf9c319c08889af3408d3 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 21 Oct 2015 15:44:52 +0200 Subject: re-add accidentally deleted string --- .../java/org/sufficientlysecure/keychain/operations/BaseOperation.java | 3 ++- OpenKeychain/src/main/res/values/strings.xml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java index e4026eaaf..99d1768b1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java @@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.operations; import android.content.Context; import android.os.Parcelable; import android.support.annotation.NonNull; +import android.support.annotation.StringRes; import org.sufficientlysecure.keychain.Constants.key; import org.sufficientlysecure.keychain.operations.results.OperationResult; @@ -81,7 +82,7 @@ public abstract class BaseOperation implements Passphrase @NonNull public abstract OperationResult execute(T input, CryptoInputParcel cryptoInput); - public void updateProgress(int message, int current, int total) { + public void updateProgress(@StringRes int message, int current, int total) { if (mProgressable != null) { mProgressable.setProgress(message, current, total); } diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 9c2d1a2b0..033eea754 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -435,6 +435,7 @@ "encrypting data…" "decrypting data…" "preparing signature…" + processing signature… "generating signature…" "verifying signature…" "signing…" -- cgit v1.2.3 From 86a7571c76392471043e22aeaa085e0042266b90 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 21 Oct 2015 16:19:16 +0200 Subject: linked: fix colors for dark theme --- OpenKeychain/src/main/res/layout/linked_create_github_fragment.xml | 2 +- OpenKeychain/src/main/res/layout/linked_id_item.xml | 1 - OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml | 2 +- OpenKeychain/src/main/res/layout/view_key_fragment.xml | 2 +- OpenKeychain/src/main/res/values/strings.xml | 3 ++- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/res/layout/linked_create_github_fragment.xml b/OpenKeychain/src/main/res/layout/linked_create_github_fragment.xml index e1c8db383..7fa581905 100644 --- a/OpenKeychain/src/main/res/layout/linked_create_github_fragment.xml +++ b/OpenKeychain/src/main/res/layout/linked_create_github_fragment.xml @@ -156,7 +156,7 @@ android:drawableLeft="@drawable/ic_repeat_black_24dp" android:drawableStart="@drawable/ic_repeat_black_24dp" android:drawablePadding="12dp" - android:text="@string/linked_button_retry" + android:text="@string/linked_button_retry_step" android:id="@+id/button_retry" /> diff --git a/OpenKeychain/src/main/res/layout/linked_id_item.xml b/OpenKeychain/src/main/res/layout/linked_id_item.xml index e4fe58551..d6e437dd5 100644 --- a/OpenKeychain/src/main/res/layout/linked_id_item.xml +++ b/OpenKeychain/src/main/res/layout/linked_id_item.xml @@ -6,7 +6,6 @@ android:minHeight="?android:attr/listPreferredItemHeight" android:orientation="horizontal" android:singleLine="true" - android:background="#ffffff" tools:showIn="@layout/linked_id_view_fragment"> diff --git a/OpenKeychain/src/main/res/layout/view_key_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_fragment.xml index 5bf36f564..8715945bf 100644 --- a/OpenKeychain/src/main/res/layout/view_key_fragment.xml +++ b/OpenKeychain/src/main/res/layout/view_key_fragment.xml @@ -17,7 +17,7 @@ android:layout_height="wrap_content" android:visibility="gone" tools:visibility="visible" - card_view:cardBackgroundColor="@android:color/white" + card_view:cardBackgroundColor="?attr/colorCardViewBackground" card_view:cardElevation="2dp" card_view:cardUseCompatPadding="true" card_view:cardCornerRadius="4dp"> diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 033eea754..dd120023b 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1630,7 +1630,8 @@ "Twitter" "Linked Identity" "Verify" - "Retry last step" + "Retry" + "Retry last step" "Confirm" "View" "Verifying…" -- cgit v1.2.3 From f7bfe932ec146ae26be347fbbdade9188b15af80 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 21 Oct 2015 17:11:02 +0200 Subject: fix crash due to malformed log entry --- .../org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java index 7fe89b6f2..d85652a51 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java @@ -245,7 +245,7 @@ public class PgpDecryptVerifyOperation extends BaseOperation Date: Wed, 21 Oct 2015 21:54:39 +0200 Subject: displaytextactivity: truncate displayed text if too long --- .../src/main/java/org/sufficientlysecure/keychain/Constants.java | 3 +++ .../org/sufficientlysecure/keychain/ui/DisplayTextActivity.java | 8 ++++++++ OpenKeychain/src/main/res/values/strings.xml | 2 ++ 3 files changed, 13 insertions(+) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java index 9623eaeda..79175e9ad 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java @@ -79,6 +79,9 @@ public final class Constants { public static final int TEMPFILE_TTL = 24 * 60 * 60 * 1000; // 1 day + // the maximal length of plaintext to read in encrypt/decrypt text activities + public static final int TEXT_LENGTH_LIMIT = 1024 * 50; + public static final String SAFESLINGER_SERVER = "safeslinger-openpgp.appspot.com"; public static final class Path { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java index 4bcca09f1..2fa1aa1c2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java @@ -28,9 +28,12 @@ import android.support.v4.app.Fragment; import android.widget.Toast; import org.openintents.openpgp.OpenPgpMetadata; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.ui.base.BaseActivity; +import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.util.FileHelper; public class DisplayTextActivity extends BaseActivity { @@ -73,6 +76,11 @@ public class DisplayTextActivity extends BaseActivity { } if (plaintext != null) { + if (plaintext.length() > Constants.TEXT_LENGTH_LIMIT) { + plaintext = plaintext.substring(0, Constants.TEXT_LENGTH_LIMIT); + Notify.create(this, R.string.snack_text_too_long, Style.WARN).show(); + } + loadFragment(plaintext, result); } else { Toast.makeText(this, R.string.error_invalid_data, Toast.LENGTH_LONG).show(); diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index dd120023b..4df144531 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1663,10 +1663,12 @@ "Backup already exists!" "Saved to OpenKeychain directory" Go back to check + "Text is too long to show in full!" "Share log?" "While logs can be super helpful for developers to find bugs in OpenKeychain, they can contain potential sensitive information such as data about the updated keys. Please make sure you are okay with sharing this information." "Share" "Cancel" + -- cgit v1.2.3 From a4b99ae3506545a675918bb3f182b9b142e6654b Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 21 Oct 2015 21:55:15 +0200 Subject: encrypttext: handle input via Intent.EXTRA_STREAM in addition to Intent.EXTRA_TEXT --- .../keychain/ui/EncryptTextActivity.java | 40 ++++++++++++++++++---- 1 file changed, 34 insertions(+), 6 deletions(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java index a849cdf12..6a7955fc5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java @@ -18,14 +18,22 @@ package org.sufficientlysecure.keychain.ui; + +import java.io.IOException; + import android.app.Activity; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; -import android.view.View; +import android.widget.Toast; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.intents.OpenKeychainIntents; +import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.Notify.Style; +import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.Log; public class EncryptTextActivity extends EncryptActivity { @@ -57,14 +65,34 @@ public class EncryptTextActivity extends EncryptActivity { // When sending to OpenKeychain Encrypt via share menu if ("text/plain".equals(type)) { - String sharedText = extras.getString(Intent.EXTRA_TEXT); - if (sharedText != null) { - // handle like normal text encryption, override action and extras to later - // executeServiceMethod ACTION_ENCRYPT_TEXT in main actions - extras.putString(EXTRA_TEXT, sharedText); + Toast.makeText(this, "Wrong data type, expected text!", Toast.LENGTH_LONG).show(); + finish(); + return; + } + + String sharedText; + if (extras.containsKey(Intent.EXTRA_TEXT)) { + sharedText = extras.getString(Intent.EXTRA_TEXT); + } else if (extras.containsKey(Intent.EXTRA_STREAM)) { + try { + sharedText = FileHelper.readTextFromUri(this, extras.getParcelable(Intent.EXTRA_STREAM), null); + } catch (IOException e) { + Toast.makeText(this, R.string.error_preparing_data, Toast.LENGTH_LONG).show(); + finish(); + return; } + } else { + Toast.makeText(this, "No text in shared data!", Toast.LENGTH_LONG).show(); + finish(); + return; + } + if (sharedText != null) { + // handle like normal text encryption, override action and extras to later + // executeServiceMethod ACTION_ENCRYPT_TEXT in main actions + extras.putString(EXTRA_TEXT, sharedText); } + } String textData = extras.getString(EXTRA_TEXT); -- cgit v1.2.3 From 1b98c07237660af0184879425e741b2b06f18132 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 21 Oct 2015 21:58:24 +0200 Subject: encrypttext: localization, and truncate overlong input --- .../org/sufficientlysecure/keychain/ui/EncryptTextActivity.java | 8 ++++++-- OpenKeychain/src/main/res/values/strings.xml | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java index 6a7955fc5..201465b52 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java @@ -65,7 +65,7 @@ public class EncryptTextActivity extends EncryptActivity { // When sending to OpenKeychain Encrypt via share menu if ("text/plain".equals(type)) { - Toast.makeText(this, "Wrong data type, expected text!", Toast.LENGTH_LONG).show(); + Toast.makeText(this, R.string.toast_wrong_mimetype, Toast.LENGTH_LONG).show(); finish(); return; } @@ -82,12 +82,16 @@ public class EncryptTextActivity extends EncryptActivity { return; } } else { - Toast.makeText(this, "No text in shared data!", Toast.LENGTH_LONG).show(); + Toast.makeText(this, R.string.toast_no_text, Toast.LENGTH_LONG).show(); finish(); return; } if (sharedText != null) { + if (sharedText.length() > Constants.TEXT_LENGTH_LIMIT) { + sharedText = sharedText.substring(0, Constants.TEXT_LENGTH_LIMIT); + Notify.create(this, R.string.snack_shared_text_too_long, Style.WARN).show(); + } // handle like normal text encryption, override action and extras to later // executeServiceMethod ACTION_ENCRYPT_TEXT in main actions extras.putString(EXTRA_TEXT, sharedText); diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 4df144531..ea34a77a5 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1664,11 +1664,13 @@ "Saved to OpenKeychain directory" Go back to check "Text is too long to show in full!" + "Shared text was cut because it was too long!" "Share log?" "While logs can be super helpful for developers to find bugs in OpenKeychain, they can contain potential sensitive information such as data about the updated keys. Please make sure you are okay with sharing this information." "Share" "Cancel" - + "Wrong data type, expected text!" + "No text in shared data!" -- cgit v1.2.3 From 7eb9f5d5cfb3e735076ea019013f89ca60ed5804 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 21 Oct 2015 22:30:21 +0200 Subject: decrypt: special case single encrypted text -> directly display text, if not too large --- .../keychain/ui/DecryptListFragment.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'OpenKeychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java index a5f9dc885..c7ad4bd65 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java @@ -322,6 +322,29 @@ public class DecryptListFragment Uri uri = mCurrentInputUri; mCurrentInputUri = null; + Activity activity = getActivity(); + + boolean isSingleInput = mInputDataResults.isEmpty() && mPendingInputUris.isEmpty(); + if (isSingleInput) { + + // there is always at least one mMetadata object, so we know this is >= 1 already + boolean isSingleMetadata = result.mMetadata.size() == 1; + OpenPgpMetadata metadata = result.mMetadata.get(0); + boolean isText = "text/plain".equals(metadata.getMimeType()); + boolean isOverSized = metadata.getOriginalSize() > Constants.TEXT_LENGTH_LIMIT; + + if (isSingleMetadata && isText && !isOverSized) { + Intent displayTextIntent = new Intent(activity, DisplayTextActivity.class) + .setDataAndType(result.mOutputUris.get(0), "text/plain") + .putExtra(DisplayTextActivity.EXTRA_RESULT, result.mDecryptVerifyResult) + .putExtra(DisplayTextActivity.EXTRA_METADATA, metadata); + activity.startActivity(displayTextIntent); + activity.finish(); + return; + } + + } + mInputDataResults.put(uri, result); processResult(uri); -- cgit v1.2.3