MUC: differentiated a few more errors.
This commit is contained in:
		
							parent
							
								
									5371dd025a
								
							
						
					
					
						commit
						54e9235bfc
					
				| @ -262,5 +262,8 @@ | ||||
|     <string name="pref_conference_name">Konferenz-Name</string> | ||||
|     <string name="pref_conference_name_summary">Konferenz-Thema statt Raum-JID als Name verwenden</string> | ||||
|     <string name="toast_message_otr_fingerprint">OTR Fingerabdruck in die Zwischenablage kopiert!</string> | ||||
|     <string name="conference_banned">Du wurdest aus dem Konferenzraum verbannt</string> | ||||
|     <string name="conference_members_only">Der Konferenzraum ist nur für Mitglieder</string> | ||||
|     <string name="conference_kicked">Du wurdest aus dem Konferenzraum geworfen</string> | ||||
| 
 | ||||
| </resources> | ||||
|  | ||||
| @ -262,5 +262,8 @@ | ||||
|     <string name="pref_conference_name">Conference name</string> | ||||
|     <string name="pref_conference_name_summary">Use room’s subject instead of JID to identify conferences</string> | ||||
|     <string name="toast_message_otr_fingerprint">OTR fingerprint copied to clipboard!</string> | ||||
|     <string name="conference_banned">You were been banned from the conference room</string> | ||||
|     <string name="conference_members_only">The conference room is only for members</string> | ||||
|     <string name="conference_kicked">You were been kicked from the conference room</string> | ||||
| 
 | ||||
| </resources> | ||||
|  | ||||
| @ -15,6 +15,13 @@ public class MucOptions { | ||||
| 	public static final int ERROR_NICK_IN_USE = 1; | ||||
| 	public static final int ERROR_ROOM_NOT_FOUND = 2; | ||||
| 	public static final int ERROR_PASSWORD_REQUIRED = 3; | ||||
| 	public static final int ERROR_BANNED = 4; | ||||
| 	public static final int ERROR_MEMBERS_ONLY = 5; | ||||
| 
 | ||||
| 	public static final int KICKED_FROM_ROOM = 9; | ||||
| 
 | ||||
| 	public static final String STATUS_CODE_BANNED = "301"; | ||||
| 	public static final String STATUS_CODE_KICKED = "307"; | ||||
| 
 | ||||
| 	public interface OnRenameListener { | ||||
| 		public void onRename(boolean success); | ||||
| @ -179,6 +186,18 @@ public class MucOptions { | ||||
| 								x.getContent())); | ||||
| 					} | ||||
| 				} | ||||
| 			} else if (type.equals("unavailable") && name.equals(this.joinnick)) { | ||||
| 				Element status = packet.findChild("x", | ||||
| 						"http://jabber.org/protocol/muc#user").findChild( | ||||
| 						"status"); | ||||
| 				String code = status.getAttribute("code"); | ||||
| 				if (code.equals(STATUS_CODE_KICKED)) { | ||||
| 					this.isOnline = false; | ||||
| 					this.error = KICKED_FROM_ROOM; | ||||
| 				} else if (code.equals(STATUS_CODE_BANNED)) { | ||||
| 					this.isOnline = false; | ||||
| 					this.error = ERROR_BANNED; | ||||
| 				} | ||||
| 			} else if (type.equals("unavailable")) { | ||||
| 				deleteUser(packet.getAttribute("from").split("/", 2)[1]); | ||||
| 			} else if (type.equals("error")) { | ||||
| @ -199,6 +218,10 @@ public class MucOptions { | ||||
| 						this.passwordChanged = true; | ||||
| 					} | ||||
| 					this.error = ERROR_PASSWORD_REQUIRED; | ||||
| 				} else if (error.hasChild("forbidden")) { | ||||
| 					this.error = ERROR_BANNED; | ||||
| 				} else if (error.hasChild("registration-required")) { | ||||
| 					this.error = ERROR_MEMBERS_ONLY; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| @ -485,6 +485,18 @@ public class ConversationFragment extends Fragment { | ||||
| 						showSnackbar(R.string.conference_requires_password, | ||||
| 								R.string.enter_password, enterPassword); | ||||
| 						break; | ||||
| 					case MucOptions.ERROR_BANNED: | ||||
| 						showSnackbar(R.string.conference_banned, | ||||
| 								R.string.leave, leaveMuc); | ||||
| 						break; | ||||
| 					case MucOptions.ERROR_MEMBERS_ONLY: | ||||
| 						showSnackbar(R.string.conference_members_only, | ||||
| 								R.string.leave, leaveMuc); | ||||
| 						break; | ||||
| 					case MucOptions.KICKED_FROM_ROOM: | ||||
| 						showSnackbar(R.string.conference_kicked, | ||||
| 								R.string.leave, leaveMuc); | ||||
| 						break; | ||||
| 					default: | ||||
| 						break; | ||||
| 					} | ||||
| @ -493,7 +505,7 @@ public class ConversationFragment extends Fragment { | ||||
| 			getActivity().invalidateOptionsMenu(); | ||||
| 			updateChatMsgHint(); | ||||
| 			if (!activity.shouldPaneBeOpen()) { | ||||
| 				activity.xmppConnectionService.markRead(conversation,true); | ||||
| 				activity.xmppConnectionService.markRead(conversation, true); | ||||
| 				activity.updateConversationList(); | ||||
| 			} | ||||
| 			this.updateSendButton(); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Michael
						Michael