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,
|
SHUTDOWN,
|
||||||
DESTROYED,
|
DESTROYED,
|
||||||
INVALID_NICK,
|
INVALID_NICK,
|
||||||
UNKNOWN
|
UNKNOWN,
|
||||||
|
NON_ANONYMOUS
|
||||||
}
|
}
|
||||||
|
|
||||||
private interface OnEventListener {
|
private interface OnEventListener {
|
||||||
|
|
|
@ -2298,6 +2298,13 @@ public class XmppConnectionService extends Service {
|
||||||
private void join(Conversation conversation) {
|
private void join(Conversation conversation) {
|
||||||
Account account = conversation.getAccount();
|
Account account = conversation.getAccount();
|
||||||
final MucOptions mucOptions = conversation.getMucOptions();
|
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();
|
final Jid joinJid = mucOptions.getSelf().getFullJid();
|
||||||
Log.d(Config.LOGTAG, account.getJid().asBareJid().toString() + ": joining conversation " + joinJid.toString());
|
Log.d(Config.LOGTAG, account.getJid().asBareJid().toString() + ": joining conversation " + joinJid.toString());
|
||||||
PresencePacket packet = mPresenceGenerator.selfPresence(account, Presence.Status.ONLINE, mucOptions.nonanonymous() || onConferenceJoined != null);
|
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);
|
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() {
|
private OnClickListener enterPassword = new OnClickListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2119,6 +2129,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
||||||
case DESTROYED:
|
case DESTROYED:
|
||||||
showSnackbar(R.string.conference_destroyed, R.string.leave, leaveMuc);
|
showSnackbar(R.string.conference_destroyed, R.string.leave, leaveMuc);
|
||||||
break;
|
break;
|
||||||
|
case NON_ANONYMOUS:
|
||||||
|
showSnackbar(R.string.group_chat_will_make_your_jabber_id_public, R.string.join, acceptJoin);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
hideSnackbar();
|
hideSnackbar();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -803,4 +803,5 @@
|
||||||
<string name="install_orbot">Install Orbot</string>
|
<string name="install_orbot">Install Orbot</string>
|
||||||
<string name="start_orbot">Start Orbot</string>
|
<string name="start_orbot">Start Orbot</string>
|
||||||
<string name="no_market_app_installed">No market app installed.</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>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue