From eef14a847bd89520b6357df46c186d172fdb5b4a Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 17 Jan 2020 15:42:32 +0100 Subject: [PATCH] Added forward confirmation dialog --- .../java/org/linphone/chat/ChatActivity.java | 69 +++++++++++++++--- .../forward_message_dialog_default.png | Bin 0 -> 3732 bytes app/src/main/res/values/strings.xml | 1 + 3 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/forward_message_dialog_default.png diff --git a/app/src/main/java/org/linphone/chat/ChatActivity.java b/app/src/main/java/org/linphone/chat/ChatActivity.java index 5fa43b0d6..9646da8bc 100644 --- a/app/src/main/java/org/linphone/chat/ChatActivity.java +++ b/app/src/main/java/org/linphone/chat/ChatActivity.java @@ -19,12 +19,15 @@ */ package org.linphone.chat; +import android.app.Dialog; import android.app.Fragment; import android.app.FragmentManager; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; +import android.widget.Button; +import android.widget.ImageView; import android.widget.Toast; import java.util.ArrayList; import org.linphone.LinphoneManager; @@ -37,6 +40,7 @@ import org.linphone.core.ChatRoom; import org.linphone.core.Factory; import org.linphone.core.tools.Log; import org.linphone.utils.FileUtils; +import org.linphone.utils.LinphoneUtils; public class ChatActivity extends MainActivity { public static final String NAME = "Chat"; @@ -216,21 +220,11 @@ public class ChatActivity extends MainActivity { mSharedFiles = null; } - if (mForwardMessage != null) { - Log.i("[Chat] Found message to forward"); - ChatRoom room = LinphoneManager.getCore().getChatRoom(peerAddress, localAddress); - if (room != null) { - Log.i("[Chat] Found chat room in which to forward message"); - ChatMessage message = room.createForwardMessage(mForwardMessage); - message.send(); - mForwardMessage = null; - Log.i("[Chat] Message forwarded"); - } - } - ChatMessagesFragment fragment = new ChatMessagesFragment(); fragment.setArguments(extras); changeFragment(fragment, "Chat room", isChild); + + showForwardDialog(localAddress, peerAddress); } public void showChatRoom(Address localAddress, Address peerAddress) { @@ -335,4 +329,55 @@ public class ChatActivity extends MainActivity { mForwardMessage = message; Toast.makeText(this, R.string.toast_choose_chat_room_for_sharing, Toast.LENGTH_LONG).show(); } + + private void showForwardDialog(final Address localAddress, final Address peerAddress) { + if (mForwardMessage == null) return; + + final Dialog dialog = + LinphoneUtils.getDialog( + this, getString(R.string.chat_message_forward_confirmation_dialog)); + dialog.findViewById(R.id.dialog_delete_button).setVisibility(View.GONE); + + ImageView icon = dialog.findViewById(R.id.dialog_icon); + icon.setVisibility(View.VISIBLE); + icon.setImageResource(R.drawable.forward_message_dialog_default); + + Button cancel = dialog.findViewById(R.id.dialog_cancel_button); + cancel.setOnClickListener( + new View.OnClickListener() { + @Override + public void onClick(View view) { + mForwardMessage = null; + dialog.dismiss(); + } + }); + + Button ok = dialog.findViewById(R.id.dialog_ok_button); + ok.setVisibility(View.VISIBLE); + ok.setText(getString(R.string.chat_message_context_menu_forward)); + ok.setOnClickListener( + new View.OnClickListener() { + @Override + public void onClick(View view) { + doMessageForwarding(localAddress, peerAddress); + dialog.dismiss(); + } + }); + + dialog.show(); + } + + private void doMessageForwarding(Address localAddress, Address peerAddress) { + if (mForwardMessage != null) { + Log.i("[Chat] Found message to forward"); + ChatRoom room = LinphoneManager.getCore().getChatRoom(peerAddress, localAddress); + if (room != null) { + Log.i("[Chat] Found chat room in which to forward message"); + ChatMessage message = room.createForwardMessage(mForwardMessage); + message.send(); + mForwardMessage = null; + Log.i("[Chat] Message forwarded"); + } + } + } } diff --git a/app/src/main/res/drawable-xhdpi/forward_message_dialog_default.png b/app/src/main/res/drawable-xhdpi/forward_message_dialog_default.png new file mode 100644 index 0000000000000000000000000000000000000000..b51542ec8cbeb4c074a3bfba2864aab3cbecbb69 GIT binary patch literal 3732 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 disabled ephemeral messages You enabled ephemeral messages: %s Ephemeral messages expiry date: %s + Do you want to forward the message in this room? Connected