aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BaseOperation.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DisplayTextActivity.java8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java44
-rw-r--r--OpenKeychain/src/main/res/layout/linked_create_github_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/linked_id_item.xml1
-rw-r--r--OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_fragment.xml2
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml8
10 files changed, 62 insertions, 13 deletions
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/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 <T extends Parcelable> 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/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<PgpDecryptVerifyInp
log.add(LogType.MSG_DC_CHARSET, indent, armorHeaders.charset);
}
if (armorHeaders.backupVersion != null) {
- log.add(LogType.MSG_DC_BACKUP_VERSION, indent, armorHeaders.backupVersion);
+ log.add(LogType.MSG_DC_BACKUP_VERSION, indent, Integer.toString(armorHeaders.backupVersion));
}
}
}
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/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptTextActivity.java
index a849cdf12..201465b52 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,38 @@ 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, R.string.toast_wrong_mimetype, 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.<Uri>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, 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);
}
+
}
String textData = extras.getString(EXTRA_TEXT);
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">
<ImageView
diff --git a/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml b/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml
index 377ce4fb6..8b275fcef 100644
--- a/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml
@@ -14,7 +14,7 @@
android:transitionName="card_linked_ids"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- 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/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 9c2d1a2b0..ea34a77a5 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -435,6 +435,7 @@
<string name="progress_encrypting">"encrypting data…"</string>
<string name="progress_decrypting">"decrypting data…"</string>
<string name="progress_preparing_signature">"preparing signature…"</string>
+ <string name="progress_processing_signature">processing signature…</string>
<string name="progress_generating_signature">"generating signature…"</string>
<string name="progress_verifying_signature">"verifying signature…"</string>
<string name="progress_signing">"signing…"</string>
@@ -1629,7 +1630,8 @@
<string name="linked_title_twitter">"Twitter"</string>
<string name="card_linked_identity">"Linked Identity"</string>
<string name="linked_button_verify">"Verify"</string>
- <string name="linked_button_retry">"Retry last step"</string>
+ <string name="linked_button_retry">"Retry"</string>
+ <string name="linked_button_retry_step">"Retry last step"</string>
<string name="linked_button_confirm">"Confirm"</string>
<string name="linked_button_view">"View"</string>
<string name="linked_text_verifying">"Verifying…"</string>
@@ -1661,10 +1663,14 @@
<string name="snack_backup_exists">"Backup already exists!"</string>
<string name="snack_backup_saved_dir">"Saved to OpenKeychain directory"</string>
<string name="btn_backup_back">Go back to check</string>
+ <string name="snack_text_too_long">"Text is too long to show in full!"</string>
+ <string name="snack_shared_text_too_long">"Shared text was cut because it was too long!"</string>
<string name="share_log_dialog_title">"Share log?"</string>
<string name="share_log_dialog_message">"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."</string>
<string name="share_log_dialog_share_button">"Share"</string>
<string name="share_log_dialog_cancel_button">"Cancel"</string>
+ <string name="toast_wrong_mimetype">"Wrong data type, expected text!"</string>
+ <string name="toast_no_text">"No text in shared data!"</string>
</resources>