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="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_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_you_are_no_longer_admin">You are no longer admin</string>
|
||||||
|
<string name="chat_room_creation_failed">Chat room creation failed</string>
|
||||||
|
|
||||||
<!-- Status Bar -->
|
<!-- Status Bar -->
|
||||||
<string name="status_connected">Registered</string>
|
<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;
|
package org.linphone.chat;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
|
@ -27,6 +28,7 @@ import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.HorizontalScrollView;
|
import android.widget.HorizontalScrollView;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
@ -251,6 +253,22 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
updateListSelected();
|
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
|
@Override
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
if (mContactsSelected != null && mContactsSelected.size() > 0) {
|
if (mContactsSelected != null && mContactsSelected.size() > 0) {
|
||||||
|
@ -291,9 +309,6 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
if (mContactsSelected.size() == 1) {
|
if (mContactsSelected.size() == 1) {
|
||||||
mContactsSelectedLayout.removeAllViews();
|
mContactsSelectedLayout.removeAllViews();
|
||||||
mWaitLayout.setVisibility(View.VISIBLE);
|
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 chatRoom = LinphoneManager.getLc().createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||||
chatRoom.setListener(new ChatRoomListenerStub() {
|
chatRoom.setListener(new ChatRoomListenerStub() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -303,7 +318,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly());
|
||||||
} else if (newState == ChatRoom.State.CreationFailed) {
|
} else if (newState == ChatRoom.State.CreationFailed) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
//TODO display error
|
displayChatRoomError();
|
||||||
Log.e("Group chat room for address " + cr.getConferenceAddress() + " has failed !");
|
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() {
|
mAddParticipantsButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
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());
|
LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly());
|
||||||
} else if (newState == ChatRoom.State.CreationFailed) {
|
} else if (newState == ChatRoom.State.CreationFailed) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
//TODO display error
|
displayChatRoomError();
|
||||||
Log.e("Group chat room for address " + cr.getConferenceAddress() + " has failed !");
|
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);
|
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() {
|
private void displayMeAdminStatusUpdated() {
|
||||||
if (mAdminStateChangedDialog != null) mAdminStateChangedDialog.dismiss();
|
if (mAdminStateChangedDialog != null) mAdminStateChangedDialog.dismiss();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue