Display message when chat room creation fails + fixed crash when adding participants on not yet created room
This commit is contained in:
parent
9ed0a318ae
commit
ae2d6c41a1
3 changed files with 38 additions and 6 deletions
|
@ -211,6 +211,7 @@
|
|||
<string name="group_chat_notif" formatted="false">%1: %2</string>
|
||||
<string name="chat_room_you_are_now_admin">You are now admin</string>
|
||||
<string name="chat_room_you_are_no_longer_admin">You are no longer admin</string>
|
||||
<string name="chat_room_creation_failed">Chat room creation failed</string>
|
||||
|
||||
<!-- Status Bar -->
|
||||
<string name="status_connected">Registered</string>
|
||||
|
|
|
@ -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 !");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in a new issue