Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ecf5bcf authored by Vincent Breitmoser's avatar Vincent Breitmoser
Browse files

allow combined pgp/inline + sign-only == clearsign mode

parent a44129b7
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -93,14 +93,18 @@ public class ComposeCryptoStatus {
            return CryptoSpecialModeDisplayType.NONE;
        }

        if (isPgpInlineModeEnabled()) {
            return CryptoSpecialModeDisplayType.PGP_INLINE;
        if (isSignOnly() && isPgpInlineModeEnabled()) {
            return CryptoSpecialModeDisplayType.SIGN_ONLY_PGP_INLINE;
        }

        if (isSignOnly()) {
            return CryptoSpecialModeDisplayType.SIGN_ONLY;
        }

        if (isPgpInlineModeEnabled()) {
            return CryptoSpecialModeDisplayType.PGP_INLINE;
        }

        return CryptoSpecialModeDisplayType.NONE;
    }

+3 −9
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ public class RecipientMvpView implements OnFocusChangeListener, OnClickListener

    private static final int VIEW_INDEX_CRYPTO_SPECIAL_PGP_INLINE = 0;
    private static final int VIEW_INDEX_CRYPTO_SPECIAL_SIGN_ONLY = 1;
    private static final int VIEW_INDEX_CRYPTO_SPECIAL_SIGN_ONLY_PGP_INLINE = 2;

    private static final int VIEW_INDEX_BCC_EXPANDER_VISIBLE = 0;
    private static final int VIEW_INDEX_BCC_EXPANDER_HIDDEN = 1;
@@ -335,14 +336,6 @@ public class RecipientMvpView implements OnFocusChangeListener, OnClickListener
        Toast.makeText(activity, R.string.compose_error_private_missing_keys, Toast.LENGTH_LONG).show();
    }

    public void showErrorSignOnlyInline() {
        Toast.makeText(activity, R.string.error_crypto_sign_only_inline, Toast.LENGTH_LONG).show();
    }

    public void showErrorInlineSignOnly() {
        Toast.makeText(activity, R.string.error_crypto_inline_sign_only, Toast.LENGTH_LONG).show();
    }

    public void showErrorInlineAttach() {
        Toast.makeText(activity, R.string.error_crypto_inline_attach, Toast.LENGTH_LONG).show();
    }
@@ -449,7 +442,8 @@ public class RecipientMvpView implements OnFocusChangeListener, OnClickListener
    public enum CryptoSpecialModeDisplayType {
        NONE(VIEW_INDEX_HIDDEN),
        PGP_INLINE(VIEW_INDEX_CRYPTO_SPECIAL_PGP_INLINE),
        SIGN_ONLY(VIEW_INDEX_CRYPTO_SPECIAL_SIGN_ONLY);
        SIGN_ONLY(VIEW_INDEX_CRYPTO_SPECIAL_SIGN_ONLY),
        SIGN_ONLY_PGP_INLINE(VIEW_INDEX_CRYPTO_SPECIAL_SIGN_ONLY_PGP_INLINE);


        final int childToDisplay;
+0 −16
Original line number Diff line number Diff line
@@ -721,16 +721,6 @@ public class RecipientPresenter implements PermissionPingCallback {
    }

    public void onMenuSetPgpInline(boolean enablePgpInline) {
        if (getCurrentCryptoStatus().isSignOnly()) {
            if (cryptoEnablePgpInline) {
                Log.e(K9.LOG_TAG, "Inconsistent state: PGP/INLINE was enabled in sign-only mode!");
                onCryptoPgpInlineChanged(false);
            }

            recipientMvpView.showErrorSignOnlyInline();
            return;
        }

        onCryptoPgpInlineChanged(enablePgpInline);
        if (enablePgpInline) {
            boolean shouldShowPgpInlineDialog = checkAndIncrementPgpInlineDialogCounter();
@@ -742,12 +732,6 @@ public class RecipientPresenter implements PermissionPingCallback {

    public void onMenuSetSignOnly(boolean enableSignOnly) {
        if (enableSignOnly) {
            if (getCurrentCryptoStatus().isPgpInlineModeEnabled()) {
                recipientMvpView.showErrorInlineSignOnly();
                return;
            }

            onCryptoPgpInlineChanged(false);
            onCryptoModeChanged(CryptoMode.SIGN_ONLY);
            boolean shouldShowPgpSignOnlyDialog = checkAndIncrementPgpSignOnlyDialogCounter();
            if (shouldShowPgpSignOnlyDialog) {
+25 −4
Original line number Diff line number Diff line
@@ -51,32 +51,53 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:padding="8dp"
            android:id="@+id/crypto_special_mode"
            android:visibility="gone"
            tools:visibility="visible"
            android:inAnimation="@anim/fade_in"
            android:outAnimation="@anim/fade_out"
            custom:previewInitialChild="0">
            custom:previewInitialChild="2">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_margin="8dp"
                android:src="@drawable/compatibility"
                android:tint="@color/light_black"
                android:visibility="gone"
                tools:visibility="visible"
                />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="8dp"
                android:src="@drawable/status_signature_verified_cutout"
                android:tint="?attr/openpgp_blue"
                />

            <FrameLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_margin="8dp"
                    android:src="@drawable/status_signature_verified_cutout"
                    android:tint="?attr/openpgp_blue"
                    />

                <ImageView
                    android:layout_width="16dp"
                    android:layout_height="16dp"
                    android:layout_gravity="right|bottom"
                    android:src="@drawable/compatibility"
                    android:tint="@color/light_black"
                    />
            </FrameLayout>

        </com.fsck.k9.view.ToolableViewAnimator>


+0 −2
Original line number Diff line number Diff line
@@ -1136,8 +1136,6 @@ Please submit bug reports, contribute new features and ask questions at
    <string name="error_crypto_provider_connect">Cannot connect to crypto provider, check your settings or click crypto icon to retry!</string>
    <string name="error_crypto_provider_ui_required">Crypto provider access denied, click crypto icon to retry!</string>
    <string name="error_crypto_inline_attach">PGP/INLINE mode does not support attachments!</string>
    <string name="error_crypto_inline_sign_only">PGP/INLINE mode does not support sign-only mode!</string>
    <string name="error_crypto_sign_only_inline">Sign-Only mode does not support PGP/INLINE!</string>
    <string name="enable_inline_pgp">Enable PGP/INLINE</string>
    <string name="disable_inline_pgp">Disable PGP/INLINE</string>
    <string name="enable_sign_only">Enable PGP Sign-Only</string>