diff options
Diffstat (limited to 'OpenKeychain/src')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java | 42 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml | 120 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/decrypt_message_fragment.xml | 97 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/layout/decrypt_result_include.xml (renamed from OpenKeychain/src/main/res/layout/decrypt_signature_include.xml) | 22 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/values/colors.xml | 8 | ||||
-rw-r--r-- | OpenKeychain/src/main/res/values/strings.xml | 24 |
6 files changed, 187 insertions, 126 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java index 2254029df..71a5f3ad5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFragment.java @@ -31,7 +31,6 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.beardedhen.androidbootstrap.BootstrapButton; -import com.devspark.appmsg.AppMsg; import org.openintents.openpgp.OpenPgpSignatureResult; import org.sufficientlysecure.keychain.R; @@ -73,11 +72,6 @@ public class DecryptFragment extends Fragment { } }); mResultLayout.setVisibility(View.GONE); - mResultLayout.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - lookupUnknownKey(mSignatureKeyId); - } - }); } private void lookupUnknownKey(long unknownKeyId) { @@ -119,7 +113,7 @@ public class DecryptFragment extends Fragment { String userId = signatureResult.getUserId(); String[] userIdSplit = PgpKeyHelper.splitUserId(userId); if (userIdSplit[0] != null) { - mUserId.setText(userId); + mUserId.setText(userIdSplit[0]); } else { mUserId.setText(R.string.user_id_no_name); } @@ -132,37 +126,63 @@ public class DecryptFragment extends Fragment { switch (signatureResult.getStatus()) { case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: { - mResultText.setText(R.string.decrypt_verified_successful); + if (signatureResult.isSignatureOnly()) { + mResultText.setText(R.string.decrypt_result_signature_certified); + } else { + mResultText.setText(R.string.decrypt_result_decrypted_and_signature_certified); + } mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_green)); mSignatureStatusImage.setImageResource(R.drawable.overlay_ok); + mSignatureLayout.setVisibility(View.VISIBLE); mLookupKey.setVisibility(View.GONE); break; } case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: { - mResultText.setText(R.string.decrypt_verified_successful); + if (signatureResult.isSignatureOnly()) { + mResultText.setText(R.string.decrypt_result_signature_uncertified); + } else { + mResultText.setText(R.string.decrypt_result_decrypted_and_signature_uncertified); + } mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_orange)); mSignatureStatusImage.setImageResource(R.drawable.overlay_ok); + mSignatureLayout.setVisibility(View.VISIBLE); mLookupKey.setVisibility(View.GONE); break; } case OpenPgpSignatureResult.SIGNATURE_UNKNOWN_PUB_KEY: { - mResultText.setText(R.string.unknown_signature); + if (signatureResult.isSignatureOnly()) { + mResultText.setText(R.string.decrypt_result_signature_unknown_pub_key); + } else { + mResultText.setText(R.string.decrypt_result_decrypted_unknown_pub_key); + } mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_orange)); mSignatureStatusImage.setImageResource(R.drawable.overlay_error); + mSignatureLayout.setVisibility(View.VISIBLE); mLookupKey.setVisibility(View.VISIBLE); break; } + case OpenPgpSignatureResult.SIGNATURE_ERROR: { + mResultText.setText(R.string.decrypt_result_invalid_signature); + + mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_red)); + mSignatureStatusImage.setImageResource(R.drawable.overlay_error); + mSignatureLayout.setVisibility(View.GONE); + mLookupKey.setVisibility(View.GONE); + break; + } + default: { mResultText.setText(R.string.error); mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_red)); mSignatureStatusImage.setImageResource(R.drawable.overlay_error); + mSignatureLayout.setVisibility(View.GONE); mLookupKey.setVisibility(View.GONE); break; } @@ -172,7 +192,7 @@ public class DecryptFragment extends Fragment { // only successful decryption mResultLayout.setBackgroundColor(getResources().getColor(R.color.result_blue)); - mResultText.setText(R.string.decrypt_successful); + mResultText.setText(R.string.decrypt_result_decrypted); } } diff --git a/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml index 633c9c832..597652713 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_file_fragment.xml @@ -8,74 +8,86 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="4dp" - android:paddingLeft="16dp" - android:paddingRight="16dp" android:orientation="vertical"> - <include layout="@layout/decrypt_signature_include" /> + <include layout="@layout/decrypt_result_include" /> + + <View + android:id="@+id/status_divider" + android:layout_height="1dip" + android:layout_width="match_parent" + android:background="?android:attr/listDivider" /> <LinearLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> + android:layout_height="match_parent" + android:paddingTop="4dp" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:orientation="vertical"> - <EditText - android:id="@+id/decrypt_file_filename" - android:layout_width="0dip" + <LinearLayout + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="top|left" - android:inputType="textMultiLine|textUri" - android:lines="4" - android:maxLines="10" - android:minLines="2" - android:scrollbars="vertical" /> + android:orientation="horizontal"> - <com.beardedhen.androidbootstrap.BootstrapButton - android:id="@+id/decrypt_file_browse" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="4dp" - bootstrapbutton:bb_icon_left="fa-folder-open" - bootstrapbutton:bb_roundedCorners="true" - bootstrapbutton:bb_size="default" - bootstrapbutton:bb_type="default" /> - </LinearLayout> + <EditText + android:id="@+id/decrypt_file_filename" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="top|left" + android:inputType="textMultiLine|textUri" + android:lines="4" + android:maxLines="10" + android:minLines="2" + android:scrollbars="vertical" /> - <CheckBox - android:id="@+id/decrypt_file_delete_after_decryption" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/label_delete_after_decryption" /> + <com.beardedhen.androidbootstrap.BootstrapButton + android:id="@+id/decrypt_file_browse" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="4dp" + bootstrapbutton:bb_icon_left="fa-folder-open" + bootstrapbutton:bb_roundedCorners="true" + bootstrapbutton:bb_size="default" + bootstrapbutton:bb_type="default" /> + </LinearLayout> - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <TextView - style="@style/SectionHeader" + <CheckBox + android:id="@+id/decrypt_file_delete_after_decryption" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="4dp" - android:text="@string/section_decrypt_verify" - android:layout_above="@+id/decrypt_file_action_decrypt" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> + android:text="@string/label_delete_after_decryption" /> - <com.beardedhen.androidbootstrap.BootstrapButton - android:id="@+id/decrypt_file_action_decrypt" + <RelativeLayout android:layout_width="match_parent" - android:layout_height="50dp" - android:layout_marginTop="4dp" - android:layout_marginBottom="4dp" - android:text="@string/btn_decrypt_verify" - bootstrapbutton:bb_icon_left="fa-unlock" - bootstrapbutton:bb_type="info" - android:layout_alignParentBottom="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> + android:layout_height="match_parent"> + + <TextView + style="@style/SectionHeader" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + android:text="@string/section_decrypt_verify" + android:layout_above="@+id/decrypt_file_action_decrypt" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> - </RelativeLayout> + <com.beardedhen.androidbootstrap.BootstrapButton + android:id="@+id/decrypt_file_action_decrypt" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="4dp" + android:layout_marginBottom="4dp" + android:text="@string/btn_decrypt_verify" + bootstrapbutton:bb_icon_left="fa-unlock" + bootstrapbutton:bb_type="info" + android:layout_alignParentBottom="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + + </RelativeLayout> + </LinearLayout> </LinearLayout> </ScrollView>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/decrypt_message_fragment.xml b/OpenKeychain/src/main/res/layout/decrypt_message_fragment.xml index dfe1bf64a..831d7e888 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_message_fragment.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_message_fragment.xml @@ -8,59 +8,72 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="4dp" - android:paddingLeft="16dp" - android:paddingRight="16dp" android:orientation="vertical"> - <include layout="@layout/decrypt_signature_include" /> + <include layout="@layout/decrypt_result_include" /> - <EditText - android:id="@+id/message" + <View + android:id="@+id/status_divider" + android:layout_height="1dip" android:layout_width="match_parent" - android:layout_height="0dip" - android:gravity="top" - android:hint="@string/decrypt_content_edit_text_hint" - android:inputType="text|textCapSentences|textMultiLine|textLongMessage" - android:scrollHorizontally="true" - android:layout_weight="1" /> - - <TextView - style="@style/SectionHeader" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/section_decrypt_verify" - android:id="@+id/decrypt_message_section" /> + android:background="?android:attr/listDivider" /> <LinearLayout - android:id="@+id/decrypt_buttons" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> + android:layout_height="match_parent" + android:paddingTop="4dp" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:orientation="vertical"> + - <com.beardedhen.androidbootstrap.BootstrapButton - android:id="@+id/action_decrypt" + <EditText + android:id="@+id/message" android:layout_width="match_parent" - android:layout_height="50dp" - android:layout_marginRight="4dp" - android:layout_marginTop="4dp" - android:layout_marginBottom="4dp" - android:layout_weight="1" - android:text="@string/btn_decrypt_verify" - bootstrapbutton:bb_icon_left="fa-unlock" - bootstrapbutton:bb_type="info" /> + android:layout_height="0dip" + android:gravity="top" + android:hint="@string/decrypt_content_edit_text_hint" + android:inputType="text|textCapSentences|textMultiLine|textLongMessage" + android:scrollHorizontally="true" + android:layout_weight="1" /> + + <TextView + style="@style/SectionHeader" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/section_decrypt_verify" + android:id="@+id/decrypt_message_section" /> - <com.beardedhen.androidbootstrap.BootstrapButton - android:id="@+id/action_decrypt_from_clipboard" + <LinearLayout + android:id="@+id/decrypt_buttons" android:layout_width="match_parent" - android:layout_height="50dp" - android:layout_marginLeft="4dp" - android:layout_marginTop="4dp" - android:layout_marginBottom="4dp" - android:layout_weight="1" - android:text="@string/btn_decrypt_verify_clipboard" - bootstrapbutton:bb_icon_left="fa-clipboard" - bootstrapbutton:bb_type="info" /> + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <com.beardedhen.androidbootstrap.BootstrapButton + android:id="@+id/action_decrypt" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginRight="4dp" + android:layout_marginTop="4dp" + android:layout_marginBottom="4dp" + android:layout_weight="1" + android:text="@string/btn_decrypt_verify" + bootstrapbutton:bb_icon_left="fa-unlock" + bootstrapbutton:bb_type="info" /> + + <com.beardedhen.androidbootstrap.BootstrapButton + android:id="@+id/action_decrypt_from_clipboard" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginLeft="4dp" + android:layout_marginTop="4dp" + android:layout_marginBottom="4dp" + android:layout_weight="1" + android:text="@string/btn_decrypt_verify_clipboard" + bootstrapbutton:bb_icon_left="fa-clipboard" + bootstrapbutton:bb_type="info" /> + </LinearLayout> </LinearLayout> </LinearLayout> </ScrollView> diff --git a/OpenKeychain/src/main/res/layout/decrypt_signature_include.xml b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml index 70faa6e83..6e599807d 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_signature_include.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_result_include.xml @@ -5,16 +5,19 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="4dp" - android:paddingLeft="10dp" - android:paddingRight="10dp"> + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:paddingTop="4dp" + android:paddingBottom="4dp" + android:background="@color/result_blue"> <TextView android:id="@+id/result_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" - android:text="result text" /> + android:text="result text" + android:textColor="@color/white" /> <RelativeLayout android:id="@+id/result_signature" @@ -26,7 +29,7 @@ <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:id="@+id/relativeLayout"> + android:id="@+id/result_signature_image"> <ImageView android:id="@+id/ic_signature" @@ -45,20 +48,24 @@ android:id="@+id/mainUserId" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginLeft="4dp" android:layout_gravity="left" android:text="@string/label_main_user_id" android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_toRightOf="@+id/relativeLayout" /> + android:layout_toRightOf="@+id/result_signature_image" + android:textColor="@color/white" /> <TextView android:id="@+id/mainUserIdRest" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginLeft="4dp" android:layout_gravity="left" android:text="Main User Id Rest" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_below="@+id/mainUserId" - android:layout_toRightOf="@+id/relativeLayout" /> + android:layout_toRightOf="@+id/result_signature_image" + android:textColor="@color/white" /> <com.beardedhen.androidbootstrap.BootstrapButton android:id="@+id/lookup_key" @@ -74,4 +81,5 @@ android:layout_alignParentEnd="true" /> </RelativeLayout> + </LinearLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index f03d316db..0f0b2a600 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -4,8 +4,8 @@ <color name="emphasis">#31b6e7</color> <color name="bg_gray">#cecbce</color> - <color name="result_red">#CC0000</color> - <color name="result_orange">#FF8800</color> - <color name="result_green">#669900</color> - <color name="result_blue">#336699</color> + <color name="result_red">#FF4444</color> + <color name="result_orange">#FFBB33</color> + <color name="result_green">#99CC00</color> + <color name="result_blue">#33B5E5</color> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 3a73735cd..1cb4da986 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -209,8 +209,6 @@ <string name="file_delete_confirmation">Are you sure you want to delete\n%s?</string> <string name="file_delete_successful">Successfully deleted.</string> <string name="no_file_selected">Select a file first.</string> - <string name="decrypt_successful">Successfully decrypted.</string> - <string name="decrypt_verified_successful">Successfully decrypted and/or verified.</string> <string name="encrypt_sign_successful">Successfully signed and/or encrypted.</string> <string name="encrypt_sign_clipboard_successful">Successfully signed and/or encrypted to clipboard.</string> <string name="enter_passphrase_twice">Enter the passphrase twice.</string> @@ -258,7 +256,6 @@ <item quantity="other">Found %d keys.</item> </plurals> - <string name="unknown_signature">Unknown signature, click button to lookup the missing key.</string> <plurals name="bad_keys_encountered"> <item quantity="one">%d bad secret key ignored. Perhaps you exported with the option\n --export-secret-subkeys\nMake sure you export with\n --export-secret-keys\ninstead.</item> @@ -295,7 +292,6 @@ <string name="error_main_user_id_must_not_be_empty">main user id must not be empty</string> <string name="error_key_needs_master_key">need at least a master key</string> <string name="error_no_encryption_keys_or_passphrase">no encryption keys or passphrase given</string> - <string name="error_signature_failed">signature failed</string> <string name="error_no_signature_passphrase">no passphrase given</string> <string name="error_no_signature_key">no signature key given</string> <string name="error_invalid_data">not valid encryption data</string> @@ -305,14 +301,16 @@ <string name="error_wrong_passphrase">wrong passphrase</string> <string name="error_saving_keys">error saving some keys</string> <string name="error_could_not_extract_private_key">could not extract private key</string> - <string name="error_only_files_are_supported">Direct binary data without actual file in filesystem is not supported. This is only supported by ACTION_ENCRYPT_STREAM_AND_RETURN.</string> - <string name="error_jelly_bean_needed">You need Android 4.1 alias Jelly Bean to use Androids NFC Beam feature!</string> - <string name="error_nfc_needed">NFC is not available on your device!</string> - <string name="error_nothing_import">Nothing to import!</string> <string name="error_expiry_must_come_after_creation">expiry date must come after creation date</string> <string name="error_save_first">please save the keyring first</string> <string name="error_can_not_delete_contact">you can not delete this contact because it is your own.</string> <string name="error_can_not_delete_contacts">you can not delete the following contacts because they are your own:\n%s</string> + + <!-- errors without preceeding Error: --> + <string name="error_only_files_are_supported">Direct binary data without actual file in filesystem is not supported. This is only supported by ACTION_ENCRYPT_STREAM_AND_RETURN.</string> + <string name="error_jelly_bean_needed">You need Android 4.1 alias Jelly Bean to use Androids NFC Beam feature!</string> + <string name="error_nfc_needed">NFC is not available on your device!</string> + <string name="error_nothing_import">Nothing to import!</string> <string name="error_keyserver_insufficient_query">Insufficient server query</string> <string name="error_keyserver_query">Querying keyserver failed</string> <string name="error_keyserver_too_many_responses">Too many responses</string> @@ -328,6 +326,16 @@ </plurals> <string name="error_change_something_first">You must make changes to the keyring before you can save it</string> + <!-- results shown after decryption/verification --> + <string name="decrypt_result_invalid_signature">Invalid signature!</string> + <string name="decrypt_result_signature_unknown_pub_key">Unknown public key</string> + <string name="decrypt_result_signature_uncertified">Valid signature (uncertified)</string> + <string name="decrypt_result_signature_certified">Valid signature (certified)</string> + <string name="decrypt_result_decrypted">Successfully decrypted</string> + <string name="decrypt_result_decrypted_unknown_pub_key">Successfully decrypted but unknown public key</string> + <string name="decrypt_result_decrypted_and_signature_uncertified">Successfully decrypted and valid signature (uncertified)</string> + <string name="decrypt_result_decrypted_and_signature_certified">Successfully decrypted and valid signature (certified)</string> + <!-- progress dialogs, usually ending in '…' --> <string name="progress_done">Done.</string> <string name="progress_cancel">Cancel</string> |