Skip to content

Commit

Permalink
PARS: support IBR preauth in UI for register and roster actions
Browse files Browse the repository at this point in the history
  • Loading branch information
ge0rg committed Dec 18, 2019
1 parent 0d61c6f commit 6080f14
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/org/yaxim/androidclient/MainWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -975,21 +975,32 @@ private void checkIgnoreBatteryOptimization() {
}

private void showFirstStartUpDialog() {
String ibr_domain = null;
String jid = null;
String preauth = null;
Intent i = getIntent();
if (!mHandledIntent && isJabberIntentAction(i.getAction()) && transmogrifyXmppUri(i)) {
Uri data = i.getData();
if (data.getQueryParameter("register") != null) {
jid = data.getAuthority();
preauth = data.getQueryParameter("preauth");
if (!jid.contains("@")) {
ibr_domain = jid;
jid = null;
}
mHandledIntent = true;
} else if (data.getQueryParameter("ibr") != null) {
String inviter = data.getAuthority();
if (!TextUtils.isEmpty(inviter) && inviter.contains("@"))
ibr_domain = inviter.split("@")[1];
}
preauth = data.getQueryParameter("preauth");
}
FirstStartDialog mFirstStartDialog = new FirstStartDialog(this, serviceAdapter);
mFirstStartDialog.show();
if (!TextUtils.isEmpty(jid))
mFirstStartDialog.setJID(jid, preauth);
else if (!TextUtils.isEmpty(ibr_domain))
mFirstStartDialog.setPreAuth(ibr_domain, preauth);
}
private void showFirstStartUpDialogIfPrefsEmpty() {
Log.i(TAG, "showFirstStartUpDialogIfPrefsEmpty, JID: "
Expand Down
10 changes: 10 additions & 0 deletions src/org/yaxim/androidclient/dialogs/FirstStartDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,16 @@ public FirstStartDialog setJID(String jid, String preauth) {
mCreateAccount.setEnabled(false);
return this;
}
public FirstStartDialog setPreAuth(String ibr_domain, String preauth) {
android.util.Log.d("FirstStartDialog", "setPreAuth: " + preauth);
((TextView)findViewById(R.id.StartupDialog_Summary)).setText(R.string.StartupDialog_invitation);
this.preauth = preauth;
mEditJabberID.setServerList(ibr_domain, null, R.array.xmpp_servers);
// TODO: refactor IBR hint for global domain
mEditJabberID.setHint(mainWindow.getString(R.string.Global_JID_hint).replace("yax.im", ibr_domain));
mCreateAccount.setChecked(true);
return this;
}

public void onClick(DialogInterface dialog, int which) {
switch (which) {
Expand Down

0 comments on commit 6080f14

Please sign in to comment.