show warning toast if PM is disabled in MUC
This commit is contained in:
		
							parent
							
								
									5d11fe7dc6
								
							
						
					
					
						commit
						6663eb0a12
					
				|  | @ -397,6 +397,11 @@ public class MucOptions { | ||||||
| 		return self.getRole().ranks(Role.MODERATOR) || (field != null && "1".equals(field.getValue())); | 		return self.getRole().ranks(Role.MODERATOR) || (field != null && "1".equals(field.getValue())); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	public boolean allowPm() { | ||||||
|  | 		Field field = this.form.getFieldByName("muc#roomconfig_allowpm"); | ||||||
|  | 		return field == null || "1".equals(field.getValue()); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	public boolean participating() { | 	public boolean participating() { | ||||||
| 		return !online() | 		return !online() | ||||||
| 				|| self.getRole().ranks(Role.PARTICIPANT) | 				|| self.getRole().ranks(Role.PARTICIPANT) | ||||||
|  |  | ||||||
|  | @ -462,7 +462,11 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers | ||||||
| 				} | 				} | ||||||
| 				return true; | 				return true; | ||||||
| 			case R.id.send_private_message: | 			case R.id.send_private_message: | ||||||
|  | 				if (mConversation.getMucOptions().allowPm()) { | ||||||
| 					privateMsgInMuc(mConversation,mSelectedUser.getName()); | 					privateMsgInMuc(mConversation,mSelectedUser.getName()); | ||||||
|  | 				} else { | ||||||
|  | 					Toast.makeText(this, R.string.private_messages_are_disabled, Toast.LENGTH_SHORT).show(); | ||||||
|  | 				} | ||||||
| 				return true; | 				return true; | ||||||
| 			case R.id.invite: | 			case R.id.invite: | ||||||
| 				xmppConnectionService.directInvite(mConversation, jid); | 				xmppConnectionService.directInvite(mConversation, jid); | ||||||
|  |  | ||||||
|  | @ -609,16 +609,17 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		}); | 		}); | ||||||
| 		messageListAdapter | 		messageListAdapter.setOnContactPictureLongClicked(message -> { | ||||||
| 				.setOnContactPictureLongClicked(new OnContactPictureLongClicked() { |  | ||||||
| 
 |  | ||||||
| 					@Override |  | ||||||
| 					public void onContactPictureLongClicked(Message message) { |  | ||||||
| 			if (message.getStatus() <= Message.STATUS_RECEIVED) { | 			if (message.getStatus() <= Message.STATUS_RECEIVED) { | ||||||
| 				if (message.getConversation().getMode() == Conversation.MODE_MULTI) { | 				if (message.getConversation().getMode() == Conversation.MODE_MULTI) { | ||||||
|  | 					final MucOptions mucOptions = conversation.getMucOptions(); | ||||||
|  | 					if (!mucOptions.allowPm()) { | ||||||
|  | 						Toast.makeText(activity, R.string.private_messages_are_disabled, Toast.LENGTH_SHORT).show(); | ||||||
|  | 						return; | ||||||
|  | 					} | ||||||
| 					Jid user = message.getCounterpart(); | 					Jid user = message.getCounterpart(); | ||||||
| 					if (user != null && !user.isBareJid()) { | 					if (user != null && !user.isBareJid()) { | ||||||
| 									if (message.getConversation().getMucOptions().isUserInRoom(user)) { | 						if (mucOptions.isUserInRoom(user)) { | ||||||
| 							privateMessageWith(user); | 							privateMessageWith(user); | ||||||
| 						} else { | 						} else { | ||||||
| 							Toast.makeText(activity, activity.getString(R.string.user_has_left_conference, user.getResourcepart()), Toast.LENGTH_SHORT).show(); | 							Toast.makeText(activity, activity.getString(R.string.user_has_left_conference, user.getResourcepart()), Toast.LENGTH_SHORT).show(); | ||||||
|  | @ -628,15 +629,8 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa | ||||||
| 			} else { | 			} else { | ||||||
| 				activity.showQrCode(); | 				activity.showQrCode(); | ||||||
| 			} | 			} | ||||||
| 					} |  | ||||||
| 				}); |  | ||||||
| 		messageListAdapter.setOnQuoteListener(new MessageAdapter.OnQuoteListener() { |  | ||||||
| 
 |  | ||||||
| 			@Override |  | ||||||
| 			public void onQuote(String text) { |  | ||||||
| 				quoteText(text); |  | ||||||
| 			} |  | ||||||
| 		}); | 		}); | ||||||
|  | 		messageListAdapter.setOnQuoteListener(text -> quoteText(text)); | ||||||
| 		messagesView.setAdapter(messageListAdapter); | 		messagesView.setAdapter(messageListAdapter); | ||||||
| 
 | 
 | ||||||
| 		registerForContextMenu(messagesView); | 		registerForContextMenu(messagesView); | ||||||
|  |  | ||||||
|  | @ -729,4 +729,5 @@ | ||||||
| 	<string name="copy_to_clipboard">Copy to clipboard</string> | 	<string name="copy_to_clipboard">Copy to clipboard</string> | ||||||
| 	<string name="message_copied_to_clipboard">Message copied to clipboard</string> | 	<string name="message_copied_to_clipboard">Message copied to clipboard</string> | ||||||
| 	<string name="message">Message</string> | 	<string name="message">Message</string> | ||||||
|  | 	<string name="private_messages_are_disabled">Private messages are disabled</string> | ||||||
| </resources> | </resources> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch