diff --git a/res/values/strings.xml b/res/values/strings.xml
index fe73223d9..6a9dd5d5a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -211,6 +211,7 @@
%1: %2
You are now admin
You are no longer admin
+ Chat room creation failed
Registered
diff --git a/src/android/org/linphone/chat/ChatCreationFragment.java b/src/android/org/linphone/chat/ChatCreationFragment.java
index 1d0500cfb..06eecb5a7 100644
--- a/src/android/org/linphone/chat/ChatCreationFragment.java
+++ b/src/android/org/linphone/chat/ChatCreationFragment.java
@@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
package org.linphone.chat;
+import android.app.Dialog;
import android.app.Fragment;
import android.os.Bundle;
import android.text.Editable;
@@ -27,6 +28,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
+import android.widget.Button;
import android.widget.EditText;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
@@ -251,6 +253,22 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
updateListSelected();
}
+ private void displayChatRoomError() {
+ final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.chat_room_creation_failed));
+ Button delete = dialog.findViewById(R.id.delete_button);
+ Button cancel = dialog.findViewById(R.id.cancel);
+ delete.setVisibility(View.GONE);
+ cancel.setText(getString(R.string.ok));
+ cancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ dialog.dismiss();
+ }
+ });
+
+ dialog.show();
+ }
+
@Override
public void onSaveInstanceState(Bundle outState) {
if (mContactsSelected != null && mContactsSelected.size() > 0) {
@@ -291,9 +309,6 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
if (mContactsSelected.size() == 1) {
mContactsSelectedLayout.removeAllViews();
mWaitLayout.setVisibility(View.VISIBLE);
- //LinphoneActivity.instance().displayChat(mContactsSelected.get(0).getAddress(), "", "");
- //TODO create group chat room with only two participants ?
- //TODO what subject to set ?
ChatRoom chatRoom = LinphoneManager.getLc().createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
chatRoom.setListener(new ChatRoomListenerStub() {
@Override
@@ -303,7 +318,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly());
} else if (newState == ChatRoom.State.CreationFailed) {
mWaitLayout.setVisibility(View.GONE);
- //TODO display error
+ displayChatRoomError();
Log.e("Group chat room for address " + cr.getConferenceAddress() + " has failed !");
}
}
diff --git a/src/android/org/linphone/chat/GroupInfoFragment.java b/src/android/org/linphone/chat/GroupInfoFragment.java
index 6487fb0ca..7077f085d 100644
--- a/src/android/org/linphone/chat/GroupInfoFragment.java
+++ b/src/android/org/linphone/chat/GroupInfoFragment.java
@@ -144,7 +144,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
mAddParticipantsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- LinphoneActivity.instance().goToChatCreator(mGroupChatRoomAddress.asString(), mParticipants, mSubject, !mIsAlreadyCreatedGroup);
+ LinphoneActivity.instance().goToChatCreator(mGroupChatRoomAddress != null ? mGroupChatRoomAddress.asString() : null, mParticipants, mSubject, !mIsAlreadyCreatedGroup);
}
});
@@ -181,7 +181,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly());
} else if (newState == ChatRoom.State.CreationFailed) {
mWaitLayout.setVisibility(View.GONE);
- //TODO display error
+ displayChatRoomError();
Log.e("Group chat room for address " + cr.getConferenceAddress() + " has failed !");
}
}
@@ -293,6 +293,22 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
mAddParticipantsButton.setVisibility(mIsEditionEnabled ? View.VISIBLE : View.GONE);
}
+ private void displayChatRoomError() {
+ final Dialog dialog = LinphoneActivity.instance().displayDialog(getString(R.string.chat_room_creation_failed));
+ Button delete = dialog.findViewById(R.id.delete_button);
+ Button cancel = dialog.findViewById(R.id.cancel);
+ delete.setVisibility(View.GONE);
+ cancel.setText(getString(R.string.ok));
+ cancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ dialog.dismiss();
+ }
+ });
+
+ dialog.show();
+ }
+
private void displayMeAdminStatusUpdated() {
if (mAdminStateChangedDialog != null) mAdminStateChangedDialog.dismiss();