parent
3e43963f67
commit
4571151e3c
4 changed files with 56 additions and 1 deletions
|
@ -236,6 +236,7 @@ import org.thoughtcrime.securesms.registration.RegistrationNavigationActivity;
|
||||||
import org.thoughtcrime.securesms.service.KeyCachingService;
|
import org.thoughtcrime.securesms.service.KeyCachingService;
|
||||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||||
import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage;
|
import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage;
|
||||||
|
import org.thoughtcrime.securesms.sms.OutgoingEndSessionMessage;
|
||||||
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
|
||||||
import org.thoughtcrime.securesms.stickers.StickerKeyboardProvider;
|
import org.thoughtcrime.securesms.stickers.StickerKeyboardProvider;
|
||||||
import org.thoughtcrime.securesms.stickers.StickerLocator;
|
import org.thoughtcrime.securesms.stickers.StickerLocator;
|
||||||
|
@ -851,7 +852,9 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||||
|
|
||||||
inflater.inflate(R.menu.conversation, menu);
|
inflater.inflate(R.menu.conversation, menu);
|
||||||
|
|
||||||
if (isSingleConversation() && !isSecureText) {
|
if (isSingleConversation() && isSecureText) {
|
||||||
|
inflater.inflate(R.menu.conversation_secure, menu);
|
||||||
|
} else if (isSingleConversation()) {
|
||||||
inflater.inflate(R.menu.conversation_insecure, menu);
|
inflater.inflate(R.menu.conversation_insecure, menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -970,6 +973,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||||
case R.id.menu_add_shortcut: handleAddShortcut(); return true;
|
case R.id.menu_add_shortcut: handleAddShortcut(); return true;
|
||||||
case R.id.menu_search: handleSearch(); return true;
|
case R.id.menu_search: handleSearch(); return true;
|
||||||
case R.id.menu_add_to_contacts: handleAddToContacts(); return true;
|
case R.id.menu_add_to_contacts: handleAddToContacts(); return true;
|
||||||
|
case R.id.menu_reset_secure_session: handleResetSecureSession(); return true;
|
||||||
case R.id.menu_group_recipients: handleDisplayGroupRecipients(); return true;
|
case R.id.menu_group_recipients: handleDisplayGroupRecipients(); return true;
|
||||||
case R.id.menu_distribution_broadcast: handleDistributionBroadcastEnabled(item); return true;
|
case R.id.menu_distribution_broadcast: handleDistributionBroadcastEnabled(item); return true;
|
||||||
case R.id.menu_distribution_conversation: handleDistributionConversationEnabled(item); return true;
|
case R.id.menu_distribution_conversation: handleDistributionConversationEnabled(item); return true;
|
||||||
|
@ -1186,6 +1190,36 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleResetSecureSession() {
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||||
|
builder.setTitle(R.string.ConversationActivity_reset_secure_session_question);
|
||||||
|
builder.setIcon(R.drawable.ic_warning);
|
||||||
|
builder.setCancelable(true);
|
||||||
|
builder.setMessage(R.string.ConversationActivity_this_may_help_if_youre_having_encryption_problems);
|
||||||
|
builder.setPositiveButton(R.string.ConversationActivity_reset, (dialog, which) -> {
|
||||||
|
if (isSingleConversation()) {
|
||||||
|
final Context context = getApplicationContext();
|
||||||
|
|
||||||
|
OutgoingEndSessionMessage endSessionMessage =
|
||||||
|
new OutgoingEndSessionMessage(new OutgoingTextMessage(getRecipient(), "TERMINATE", 0, -1));
|
||||||
|
|
||||||
|
new AsyncTask<OutgoingEndSessionMessage, Void, Long>() {
|
||||||
|
@Override
|
||||||
|
protected Long doInBackground(OutgoingEndSessionMessage... messages) {
|
||||||
|
return MessageSender.send(context, messages[0], threadId, false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Long result) {
|
||||||
|
sendComplete(result);
|
||||||
|
}
|
||||||
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, endSessionMessage);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(android.R.string.cancel, null);
|
||||||
|
builder.show();
|
||||||
|
}
|
||||||
|
|
||||||
private void handleViewMedia() {
|
private void handleViewMedia() {
|
||||||
startActivity(MediaOverviewActivity.forThread(this, threadId));
|
startActivity(MediaOverviewActivity.forThread(this, threadId));
|
||||||
}
|
}
|
||||||
|
|
5
app/src/main/res/menu/conversation_secure.xml
Normal file
5
app/src/main/res/menu/conversation_secure.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:title="@string/conversation_secure_verified__menu_reset_secure_session"
|
||||||
|
android:id="@+id/menu_reset_secure_session"/>
|
||||||
|
</menu>
|
|
@ -233,6 +233,8 @@
|
||||||
<string name="ConversationItem_you_deleted_this_message">You deleted this message.</string>
|
<string name="ConversationItem_you_deleted_this_message">You deleted this message.</string>
|
||||||
|
|
||||||
<!-- ConversationActivity -->
|
<!-- ConversationActivity -->
|
||||||
|
<string name="ConversationActivity_reset_secure_session_question">Reset secure session?</string>
|
||||||
|
<string name="ConversationActivity_this_may_help_if_youre_having_encryption_problems">This may help if you\'re having encryption problems in this conversation. Your messages will be kept.</string>
|
||||||
<string name="ConversationActivity_reset">Reset</string>
|
<string name="ConversationActivity_reset">Reset</string>
|
||||||
<string name="ConversationActivity_add_attachment">Add attachment</string>
|
<string name="ConversationActivity_add_attachment">Add attachment</string>
|
||||||
<string name="ConversationActivity_select_contact_info">Select contact info</string>
|
<string name="ConversationActivity_select_contact_info">Select contact info</string>
|
||||||
|
|
|
@ -278,6 +278,20 @@ public class SignalServiceMessageSender {
|
||||||
sendMessage(localAddress, Optional.<UnidentifiedAccess>absent(), timestamp, syncMessage, false, null);
|
sendMessage(localAddress, Optional.<UnidentifiedAccess>absent(), timestamp, syncMessage, false, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO [greyson][session] Delete this when we delete the button
|
||||||
|
if (message.isEndSession()) {
|
||||||
|
if (recipient.getUuid().isPresent()) {
|
||||||
|
store.deleteAllSessions(recipient.getUuid().get().toString());
|
||||||
|
}
|
||||||
|
if (recipient.getNumber().isPresent()) {
|
||||||
|
store.deleteAllSessions(recipient.getNumber().get());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eventListener.isPresent()) {
|
||||||
|
eventListener.get().onSecurityEvent(recipient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue