show snackbar if conference was not found

This commit is contained in:
iNPUTmice 2014-07-18 12:44:33 +02:00
parent 38a9242955
commit 6b74c0594e
4 changed files with 19 additions and 5 deletions

View File

@ -270,4 +270,6 @@
<string name="you">You</string>
<string name="action_edit_subject">Edit conference subject</string>
<string name="title_activity_choose_contact">Choose contact</string>
<string name="conference_not_found">Conference not found</string>
<string name="leave">Leave</string>
</resources>

View File

@ -10,7 +10,9 @@ import android.annotation.SuppressLint;
@SuppressLint("DefaultLocale")
public class MucOptions {
public static final int ERROR_NO_ERROR = 0;
public static final int ERROR_NICK_IN_USE = 1;
public static final int ERROR_ROOM_NOT_FOUND = 2;
public interface OnRenameListener {
public void onRename(boolean success);
@ -82,7 +84,7 @@ public class MucOptions {
private ArrayList<User> users = new ArrayList<User>();
private Conversation conversation;
private boolean isOnline = false;
private int error = 0;
private int error = ERROR_ROOM_NOT_FOUND;
private OnRenameListener renameListener = null;
private boolean aboutToRename = false;
private User self = new User();
@ -126,7 +128,7 @@ public class MucOptions {
user.setName(name);
if (name.equals(this.joinnick)) {
this.isOnline = true;
this.error = 0;
this.error = ERROR_NO_ERROR;
self = user;
if (aboutToRename) {
if (renameListener!=null) {

View File

@ -568,7 +568,7 @@ public class ConversationActivity extends XmppActivity {
return super.onOptionsItemSelected(item);
}
private void endConversation(Conversation conversation) {
public void endConversation(Conversation conversation) {
conversation.setStatus(Conversation.STATUS_ARCHIVED);
paneShouldBeOpen = true;
spl.openPane();

View File

@ -125,6 +125,14 @@ public class ConversationFragment extends Fragment {
}
};
private OnClickListener leaveMuc = new OnClickListener() {
@Override
public void onClick(View v) {
activity.endConversation(conversation);
}
};
private OnScrollListener mOnScrollListener = new OnScrollListener() {
@Override
@ -687,6 +695,7 @@ public class ConversationFragment extends Fragment {
if (getView() == null) {
return;
}
hideSnackbar();
ConversationActivity activity = (ConversationActivity) getActivity();
if (this.conversation != null) {
for (Message message : this.conversation.getMessages()) {
@ -715,10 +724,11 @@ public class ConversationFragment extends Fragment {
makeFingerprintWarning(conversation.getLatestEncryption());
}
} else {
if (conversation.getMucOptions().getError() != 0) {
showSnackbar(R.string.nick_in_use, R.string.edit,clickToMuc);
if (!conversation.getMucOptions().online()) {
if (conversation.getMucOptions().getError() == MucOptions.ERROR_NICK_IN_USE) {
showSnackbar(R.string.nick_in_use, R.string.edit,clickToMuc);
} else if (conversation.getMucOptions().getError() == MucOptions.ERROR_ROOM_NOT_FOUND) {
showSnackbar(R.string.conference_not_found,R.string.leave,leaveMuc);
}
}
}