PgpService: feed result intent back into decryption
This commit is contained in:
parent
4596cad3cb
commit
8696cf2235
|
@ -25,13 +25,13 @@ import eu.siacs.conversations.services.XmppConnectionService;
|
||||||
|
|
||||||
public class PgpDecryptionService {
|
public class PgpDecryptionService {
|
||||||
|
|
||||||
private final XmppConnectionService mXmppConnectionService;
|
|
||||||
private OpenPgpApi openPgpApi = null;
|
|
||||||
|
|
||||||
protected final ArrayDeque<Message> messages = new ArrayDeque();
|
protected final ArrayDeque<Message> messages = new ArrayDeque();
|
||||||
protected final HashSet<Message> pendingNotifications = new HashSet<>();
|
protected final HashSet<Message> pendingNotifications = new HashSet<>();
|
||||||
Message currentMessage;
|
private final XmppConnectionService mXmppConnectionService;
|
||||||
|
private OpenPgpApi openPgpApi = null;
|
||||||
|
private Message currentMessage;
|
||||||
private PendingIntent pendingIntent;
|
private PendingIntent pendingIntent;
|
||||||
|
private Intent userInteractionResult;
|
||||||
|
|
||||||
|
|
||||||
public PgpDecryptionService(XmppConnectionService service) {
|
public PgpDecryptionService(XmppConnectionService service) {
|
||||||
|
@ -111,6 +111,12 @@ public class PgpDecryptionService {
|
||||||
continueDecryption();
|
continueDecryption();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public synchronized void continueDecryption(Intent userInteractionResult) {
|
||||||
|
this.pendingIntent = null;
|
||||||
|
this.userInteractionResult = userInteractionResult;
|
||||||
|
continueDecryption();
|
||||||
|
}
|
||||||
|
|
||||||
public synchronized void continueDecryption() {
|
public synchronized void continueDecryption() {
|
||||||
if (currentMessage == null) {
|
if (currentMessage == null) {
|
||||||
decryptNext();
|
decryptNext();
|
||||||
|
@ -126,7 +132,7 @@ public class PgpDecryptionService {
|
||||||
|
|
||||||
private void executeApi(Message message) {
|
private void executeApi(Message message) {
|
||||||
synchronized (message) {
|
synchronized (message) {
|
||||||
Intent params = new Intent();
|
Intent params = userInteractionResult != null ? userInteractionResult : new Intent();
|
||||||
params.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
|
params.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
|
||||||
if (message.getType() == Message.TYPE_TEXT) {
|
if (message.getType() == Message.TYPE_TEXT) {
|
||||||
InputStream is = new ByteArrayInputStream(message.getBody().getBytes());
|
InputStream is = new ByteArrayInputStream(message.getBody().getBytes());
|
||||||
|
|
|
@ -1746,7 +1746,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
final Intent data) {
|
final Intent data) {
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
if (requestCode == ConversationActivity.REQUEST_DECRYPT_PGP) {
|
if (requestCode == ConversationActivity.REQUEST_DECRYPT_PGP) {
|
||||||
activity.getSelectedConversation().getAccount().getPgpDecryptionService().continueDecryption(true);
|
activity.getSelectedConversation().getAccount().getPgpDecryptionService().continueDecryption(data);
|
||||||
} else if (requestCode == ConversationActivity.REQUEST_TRUST_KEYS_TEXT) {
|
} else if (requestCode == ConversationActivity.REQUEST_TRUST_KEYS_TEXT) {
|
||||||
final String body = mEditMessage.getText().toString();
|
final String body = mEditMessage.getText().toString();
|
||||||
Message message = new Message(conversation, body, conversation.getNextEncryption());
|
Message message = new Message(conversation, body, conversation.getNextEncryption());
|
||||||
|
|
Loading…
Reference in New Issue