show warning snackbar before joining anon-non-private room. fixes #3306
This commit is contained in:
parent
5b681553df
commit
1a1bfb3246
|
@ -676,7 +676,8 @@ public class MucOptions {
|
|||
SHUTDOWN,
|
||||
DESTROYED,
|
||||
INVALID_NICK,
|
||||
UNKNOWN
|
||||
UNKNOWN,
|
||||
NON_ANONYMOUS
|
||||
}
|
||||
|
||||
private interface OnEventListener {
|
||||
|
|
|
@ -2298,6 +2298,13 @@ public class XmppConnectionService extends Service {
|
|||
private void join(Conversation conversation) {
|
||||
Account account = conversation.getAccount();
|
||||
final MucOptions mucOptions = conversation.getMucOptions();
|
||||
|
||||
if (mucOptions.nonanonymous() && !mucOptions.membersOnly() && !conversation.getBooleanAttribute("accept_non_anonymous", false)) {
|
||||
mucOptions.setError(MucOptions.Error.NON_ANONYMOUS);
|
||||
updateConversationUi();
|
||||
return;
|
||||
}
|
||||
|
||||
final Jid joinJid = mucOptions.getSelf().getFullJid();
|
||||
Log.d(Config.LOGTAG, account.getJid().asBareJid().toString() + ": joining conversation " + joinJid.toString());
|
||||
PresencePacket packet = mPresenceGenerator.selfPresence(account, Presence.Status.ONLINE, mucOptions.nonanonymous() || onConferenceJoined != null);
|
||||
|
|
|
@ -187,6 +187,16 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
activity.xmppConnectionService.joinMuc(conversation);
|
||||
}
|
||||
};
|
||||
|
||||
private OnClickListener acceptJoin = new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
conversation.setAttribute("accept_non_anonymous",true);
|
||||
activity.xmppConnectionService.updateConversation(conversation);
|
||||
activity.xmppConnectionService.joinMuc(conversation);
|
||||
}
|
||||
};
|
||||
|
||||
private OnClickListener enterPassword = new OnClickListener() {
|
||||
|
||||
@Override
|
||||
|
@ -2119,6 +2129,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
case DESTROYED:
|
||||
showSnackbar(R.string.conference_destroyed, R.string.leave, leaveMuc);
|
||||
break;
|
||||
case NON_ANONYMOUS:
|
||||
showSnackbar(R.string.group_chat_will_make_your_jabber_id_public, R.string.join, acceptJoin);
|
||||
break;
|
||||
default:
|
||||
hideSnackbar();
|
||||
break;
|
||||
|
|
|
@ -803,4 +803,5 @@
|
|||
<string name="install_orbot">Install Orbot</string>
|
||||
<string name="start_orbot">Start Orbot</string>
|
||||
<string name="no_market_app_installed">No market app installed.</string>
|
||||
<string name="group_chat_will_make_your_jabber_id_public">This group chat will make your Jabber ID public</string>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in a new issue