From a8ab0ad1f3598e5e0b477caa7f71f4baa1add973 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 16 Feb 2018 10:24:52 +0100 Subject: [PATCH] Added confirmation dialog before leaving a group --- res/values-fr/strings.xml | 3 ++ res/values/strings.xml | 2 ++ .../org/linphone/chat/GroupInfoFragment.java | 31 +++++++++++++++---- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 9c4ffb7d2..ef2ca8091 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -178,6 +178,9 @@ Vos amis pourront vous joindre plus facilement si vous associez votre compte à Reçu Envoyé Renvoyer + Quitter le groupe + Souhaitez-vous vraiment quitter ce groupe ? + Quitter Enregistré Non enregistré diff --git a/res/values/strings.xml b/res/values/strings.xml index 169bf515e..87d491b6a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -215,6 +215,8 @@ You are now admin You are no longer admin Chat room creation failed + Do you really want to leave this group? + Leave Registered diff --git a/src/android/org/linphone/chat/GroupInfoFragment.java b/src/android/org/linphone/chat/GroupInfoFragment.java index 8aaeff365..30d97f0f8 100644 --- a/src/android/org/linphone/chat/GroupInfoFragment.java +++ b/src/android/org/linphone/chat/GroupInfoFragment.java @@ -132,12 +132,31 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener { mLeaveGroupButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - if (mChatRoom != null) { - mChatRoom.leave(); - LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asString()); - } else { - Log.e("Can't leave, chatRoom for address " + mGroupChatRoomAddress.asString() + " is null..."); - } + final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.chat_room_leave_dialog)); + Button delete = dialog.findViewById(R.id.delete_button); + delete.setText(getString(R.string.chat_room_leave_button)); + Button cancel = dialog.findViewById(R.id.cancel); + + delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (mChatRoom != null) { + mChatRoom.leave(); + LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asString()); + } else { + Log.e("Can't leave, chatRoom for address " + mGroupChatRoomAddress.asString() + " is null..."); + } + dialog.dismiss(); + } + }); + + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + dialog.show(); } }); mLeaveGroupButton.setVisibility(mIsAlreadyCreatedGroup && mChatRoom.hasBeenLeft() ? View.GONE : mIsAlreadyCreatedGroup ? View.VISIBLE : View.GONE);