Add copy Session ID button for one-to-one chats

This commit is contained in:
nielsandriesse 2020-09-02 16:03:23 +10:00
parent 8e6920f37e
commit 906deb3ada
3 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/activity_conversation_menu_copy_session_id"
android:id="@+id/menu_copy_session_id"
android:icon="@drawable/ic_content_copy_white_24dp" />
</menu>

View File

@ -1855,4 +1855,6 @@
<string name="view_reset_secure_session_done_message">Secure session reset done</string>
<string name="activity_conversation_menu_copy_session_id">Copy Session ID</string>
</resources>

View File

@ -22,6 +22,8 @@ import android.annotation.TargetApi;
import androidx.lifecycle.ViewModelProviders;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@ -760,6 +762,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
} else {
inflater.inflate(R.menu.conversation_block, menu);
}
inflater.inflate(R.menu.conversation_copy_session_id, menu);
} else if (isGroupConversation() && !isOpenGroupOrRSSFeed) {
// inflater.inflate(R.menu.conversation_group_options, menu);
@ -867,6 +870,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
case R.id.menu_call_insecure: handleDial(getRecipient(), false); return true;
case R.id.menu_unblock: handleUnblock(); return true;
case R.id.menu_block: handleBlock(); return true;
case R.id.menu_copy_session_id: handleCopySessionID(); return true;
case R.id.menu_view_media: handleViewMedia(); return true;
case R.id.menu_add_shortcut: handleAddShortcut(); return true;
case R.id.menu_search: handleSearch(); return true;
@ -1096,6 +1100,15 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
}).show();
}
private void handleCopySessionID() {
if (recipient.isGroupRecipient()) { return; }
String sessionID = recipient.getAddress().toPhoneString();
ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("Session ID", sessionID);
clipboard.setPrimaryClip(clip);
Toast.makeText(this, R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show();
}
private void handleViewMedia() {
Intent intent = new Intent(this, MediaOverviewActivity.class);
intent.putExtra(MediaOverviewActivity.ADDRESS_EXTRA, recipient.getAddress());