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

Commit 6371cde5 authored by Vincent Breitmoser's avatar Vincent Breitmoser Committed by Vincent Breitmoser
Browse files

messageview: nicer handling of pendingintent in MessageList and MessageCryptoHelper

parent b0b269a7
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1140,13 +1140,13 @@ public class MessageCompose extends K9Activity implements OnClickListener,
                        "this is an illegal state!");
                return;
            }
            currentMessageBuilder.onActivityResult(this, requestCode, resultCode, data);
            currentMessageBuilder.onActivityResult(requestCode, resultCode, data, this);
            return;
        }

        if ((requestCode & REQUEST_MASK_RECIPIENT_PRESENTER) == REQUEST_MASK_RECIPIENT_PRESENTER) {
            requestCode ^= REQUEST_MASK_RECIPIENT_PRESENTER;
            recipientPresenter.onActivityResult(resultCode, requestCode, data);
            recipientPresenter.onActivityResult(requestCode, resultCode, data);
            return;
        }

+23 −10
Original line number Diff line number Diff line
package com.fsck.k9.activity;


import java.util.Collection;
import java.util.List;

import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.FragmentManager;
import android.app.FragmentManager.OnBackStackChangedListener;
import android.app.FragmentTransaction;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.IntentSender.SendIntentException;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.app.FragmentManager;
import android.app.FragmentManager.OnBackStackChangedListener;
import android.app.FragmentTransaction;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -41,22 +44,21 @@ import com.fsck.k9.activity.setup.FolderSettings;
import com.fsck.k9.activity.setup.Prefs;
import com.fsck.k9.fragment.MessageListFragment;
import com.fsck.k9.fragment.MessageListFragment.MessageListFragmentListener;
import com.fsck.k9.preferences.StorageEditor;
import com.fsck.k9.ui.messageview.MessageViewFragment;
import com.fsck.k9.ui.messageview.MessageViewFragment.MessageViewFragmentListener;
import com.fsck.k9.mailstore.StorageManager;
import com.fsck.k9.mailstore.LocalMessage;
import com.fsck.k9.mailstore.StorageManager;
import com.fsck.k9.preferences.StorageEditor;
import com.fsck.k9.search.LocalSearch;
import com.fsck.k9.search.SearchAccount;
import com.fsck.k9.search.SearchSpecification;
import com.fsck.k9.search.SearchSpecification.Attribute;
import com.fsck.k9.search.SearchSpecification.SearchCondition;
import com.fsck.k9.search.SearchSpecification.SearchField;
import com.fsck.k9.ui.messageview.MessageViewFragment;
import com.fsck.k9.ui.messageview.MessageViewFragment.MessageViewFragmentListener;
import com.fsck.k9.view.MessageHeader;
import com.fsck.k9.view.MessageTitleView;
import com.fsck.k9.view.ViewSwitcher;
import com.fsck.k9.view.ViewSwitcher.OnSwitchCompleteListener;

import de.cketti.library.changelog.ChangeLog;


@@ -89,6 +91,7 @@ public class MessageList extends K9Activity implements MessageListFragmentListen
    private static final int PREVIOUS = 1;
    private static final int NEXT = 2;

    public static final int REQUEST_MASK_PENDING_INTENT = 1 << 16;

    public static void actionDisplaySearch(Context context, SearchSpecification search,
            boolean noThreading, boolean newTask) {
@@ -1550,12 +1553,22 @@ public class MessageList extends K9Activity implements MessageListFragmentListen
        }
    }

    @Override
    public void startIntentSenderForResult(IntentSender intent, int requestCode, Intent fillInIntent,
            int flagsMask, int flagsValues, int extraFlags) throws SendIntentException {
        requestCode |= REQUEST_MASK_PENDING_INTENT;
        super.startIntentSenderForResult(intent, requestCode, fillInIntent, flagsMask, flagsValues, extraFlags);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if ((requestCode & REQUEST_MASK_PENDING_INTENT) == REQUEST_MASK_PENDING_INTENT) {
            requestCode ^= REQUEST_MASK_PENDING_INTENT;
            if (mMessageViewFragment != null) {
            mMessageViewFragment.handleCryptoResult(requestCode, resultCode, data);
                mMessageViewFragment.onPendingIntentResult(requestCode, resultCode, data);
            }
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -475,7 +475,7 @@ public class RecipientPresenter implements PermissionPingCallback {
        recipientMvpView.showContactPicker(requestCode);
    }

    public void onActivityResult(int resultCode, int requestCode, Intent data) {
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case CONTACT_PICKER_TO:
            case CONTACT_PICKER_CC:
+1 −1
Original line number Diff line number Diff line
@@ -483,7 +483,7 @@ public abstract class MessageBuilder {
        }.execute();
    }

    final public void onActivityResult(Callback callback, final int requestCode, int resultCode, final Intent data) {
    final public void onActivityResult(final int requestCode, int resultCode, final Intent data, Callback callback) {
        synchronized (callbackLock) {
            asyncCallback = callback;
            queuedMimeMessage = null;
+6 −0
Original line number Diff line number Diff line
package com.fsck.k9.ui.crypto;


import android.content.Intent;
import android.content.IntentSender;


public interface MessageCryptoCallback {
    void onCryptoHelperProgress(int current, int max);
    void onCryptoOperationsFinished(MessageCryptoAnnotations annotations);
    void startPendingIntentForCryptoHelper(IntentSender si, int requestCode, Intent fillIntent,
            int flagsMask, int flagValues, int extraFlags) throws IntentSender.SendIntentException;
}
Loading