Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit ea68fd2

Browse files
committed
Save realmName, serverUrl in asynLogin
1 parent 7ccfd77 commit ea68fd2

File tree

6 files changed

+65
-16
lines changed

6 files changed

+65
-16
lines changed

app/src/main/java/com/zulip/android/activities/DevAuthActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ protected void onCreate(Bundle savedInstanceState) {
3030
super.onCreate(savedInstanceState);
3131
setContentView(R.layout.activity_dev_auth);
3232
String json = getIntent().getStringExtra(AsyncDevGetEmails.EMAIL_JSON);
33+
final String realmName = getIntent().getStringExtra(AsyncDevGetEmails.REALM_NAME_JSON);
34+
final String serverURL = getIntent().getStringExtra(AsyncDevGetEmails.SERVER_URL_JSON);
35+
final boolean startedFromAddRealm = getIntent().getBooleanExtra(AsyncDevGetEmails.ADD_REALM_BOOLEAN_JSON, false);
3336
recyclerView = (RecyclerView) findViewById(R.id.devAuthRecyclerView);
3437
List<String> emails = new ArrayList<>();
3538
int directAdminSize = 1;
@@ -55,7 +58,7 @@ protected void onCreate(Bundle savedInstanceState) {
5558
authEmailAdapter.setOnItemClickListener(new AuthClickListener() {
5659
@Override
5760
public void onItemClick(String email) {
58-
AsyncLogin asyncLogin = new AsyncLogin(DevAuthActivity.this, email, null, true);
61+
AsyncLogin asyncLogin = new AsyncLogin(DevAuthActivity.this, email, null, realmName, startedFromAddRealm, serverURL, true);
5962
asyncLogin.execute();
6063
connectionProgressDialog.show();
6164
}

app/src/main/java/com/zulip/android/activities/LoginActivity.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.support.v7.app.AlertDialog;
1111
import android.support.v7.app.AppCompatActivity;
1212
import android.support.v7.widget.Toolbar;
13+
import android.text.TextUtils;
1314
import android.util.Log;
1415
import android.util.Patterns;
1516
import android.view.View;
@@ -35,6 +36,8 @@
3536
import org.json.JSONException;
3637
import org.json.JSONObject;
3738

39+
import java.net.URI;
40+
import java.net.URISyntaxException;
3841
import java.util.List;
3942

4043
public class LoginActivity extends AppCompatActivity implements View.OnClickListener,
@@ -43,14 +46,15 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
4346
private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
4447
private static final int REQUEST_CODE_SIGN_IN = 9001;
4548

49+
private boolean startedFromAddRealm = false;
4650
private ProgressDialog connectionProgressDialog;
4751
private GoogleApiClient mGoogleApiClient;
4852
private EditText mServerEditText;
4953
private EditText mUserName;
5054
private EditText mPassword;
5155
private EditText serverIn;
5256
private EditText realmNameET;
53-
57+
String serverURL;
5458
private View mGoogleSignInButton;
5559
@Override
5660
protected void onCreate(Bundle savedInstanceState) {
@@ -153,6 +157,7 @@ private void checkForError() {
153157
}
154158
}
155159
}
160+
156161

157162
private void showBackends(String httpScheme, String serverURL) {
158163
Uri serverUri = Uri.parse(serverURL);
@@ -167,8 +172,8 @@ private void showBackends(String httpScheme, String serverURL) {
167172
serverIn.setText(serverUri.toString());
168173
mServerEditText.setText(serverUri.toString());
169174
mServerEditText.setEnabled(false);
170-
((ZulipApp) getApplication()).setServerURL(serverUri.toString());
171-
AsyncGetBackends asyncGetBackends = new AsyncGetBackends(ZulipApp.get());
175+
serverURL = serverUri.toString();
176+
AsyncGetBackends asyncGetBackends = new AsyncGetBackends(ZulipApp.get(), serverURL);
172177
asyncGetBackends.setCallback(new AsyncTaskCompleteListener() {
173178
@Override
174179
public void onTaskComplete(String result, JSONObject jsonObject) {
@@ -240,7 +245,7 @@ private void handleSignInResult(GoogleSignInResult result) {
240245
return;
241246
}
242247

243-
final AsyncLogin loginTask = new AsyncLogin(LoginActivity.this, "google-oauth2-token", account.getIdToken(), false);
248+
final AsyncLogin loginTask = new AsyncLogin(LoginActivity.this, "google-oauth2-token", account.getIdToken(), getRealmName(), startedFromAddRealm, serverURL, false);
244249
loginTask.setCallback(new AsyncTaskCompleteListener() {
245250
@Override
246251
public void onTaskComplete(String result, JSONObject object) {
@@ -268,6 +273,20 @@ public void onTaskFailure(String result) {
268273
}
269274
}
270275

276+
private String getRealmName() {
277+
if (TextUtils.isEmpty(realmNameET.getText())) {
278+
String server = serverURL;
279+
URI uri = null;
280+
try {
281+
uri = new URI(server);
282+
} catch (URISyntaxException e) {
283+
return server;
284+
}
285+
return uri.getHost();
286+
}
287+
return realmNameET.getText().toString();
288+
}
289+
271290
protected void openLegal() {
272291
Intent i = new Intent(this, LegalActivity.class);
273292
startActivityForResult(i, 0);
@@ -339,10 +358,14 @@ public void onClick(View v) {
339358
if (!isInputValid()) {
340359
return;
341360
}
361+
if (!isInputValid()) return;
362+
if (serverURL == null) return;
342363
connectionProgressDialog.show();
343364

344365
AsyncLogin alog = new AsyncLogin(LoginActivity.this,
345-
mUserName.getText().toString(), mPassword.getText().toString(), false);
366+
mUserName.getText().toString(), mPassword.getText().toString(),
367+
getRealmName(), startedFromAddRealm, serverURL, false);
368+
346369
// Remove the CPD when done
347370
alog.setCallback(new AsyncTaskCompleteListener() {
348371
@Override
@@ -364,7 +387,7 @@ public void onTaskFailure(String result) {
364387
case R.id.local_server_button:
365388
if (!isInputValidForDevAuth()) return;
366389
connectionProgressDialog.show();
367-
AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails(LoginActivity.this);
390+
AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails(LoginActivity.this, serverURL, getRealmName(), startedFromAddRealm);
368391
asyncDevGetEmails.setCallback(new AsyncTaskCompleteListener() {
369392
@Override
370393
public void onTaskComplete(String result, JSONObject jsonObject) {

app/src/main/java/com/zulip/android/networking/AsyncDevGetEmails.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,21 @@
1515

1616
public class AsyncDevGetEmails extends ZulipAsyncPushTask {
1717
private static final String DISABLED = "dev_disabled";
18+
public static final String SERVER_URL_JSON = "server_url";
19+
public static final String REALM_NAME_JSON = "realm_json";
20+
public static final String ADD_REALM_BOOLEAN_JSON = "add_realm_bool_json";
1821
Context context;
1922
public final static String EMAIL_JSON = "emails_json";
23+
private String serverURL;
24+
private String realmName;
25+
private boolean startedFromAddRealm;
2026

21-
public AsyncDevGetEmails(LoginActivity loginActivity) {
27+
public AsyncDevGetEmails(LoginActivity loginActivity, String serverURL, String realmName, boolean startedFromAddRealm) {
2228
super((ZulipApp) loginActivity.getApplication());
2329
context = loginActivity;
30+
this.serverURL = serverURL;
31+
this.realmName = realmName;
32+
this.startedFromAddRealm = startedFromAddRealm;
2433
}
2534

2635
public final void execute() {
@@ -34,6 +43,9 @@ protected void onPostExecute(String result) {
3443
if (obj.getString("result").equals("success")) {
3544
Intent intent = new Intent(context, DevAuthActivity.class);
3645
intent.putExtra(EMAIL_JSON, result);
46+
intent.putExtra(REALM_NAME_JSON, realmName);
47+
intent.putExtra(SERVER_URL_JSON, serverURL);
48+
intent.putExtra(ADD_REALM_BOOLEAN_JSON, startedFromAddRealm);
3749
context.startActivity(intent);
3850
}
3951
} catch (JSONException e) {

app/src/main/java/com/zulip/android/networking/AsyncGetBackends.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44

55
public class AsyncGetBackends extends ZulipAsyncPushTask {
66

7-
public AsyncGetBackends(ZulipApp app) {
7+
private String serverURL;
8+
9+
public AsyncGetBackends(ZulipApp app, String url) {
810
super(app);
11+
this.serverURL = url;
912
}
1013

1114
//Json Format - {"msg":"","password":false,"google":false,"result":"success","dev":true}

app/src/main/java/com/zulip/android/networking/AsyncLogin.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,19 @@ public class AsyncLogin extends ZulipAsyncPushTask {
1818

1919
Activity activity;
2020
boolean devServer = true; //If this is a DevAuthBackend server!
21-
private LoginActivity context;
21+
private Activity context;
2222
private boolean userDefinitelyInvalid = false;
23+
boolean startedFromAddRealm = false;
24+
private String realmName;
25+
private String username;
26+
private String serverURL;
2327

24-
public AsyncLogin(Activity activity, String username, String password, boolean devServer) {
25-
super(ZulipApp.get());
26-
this.activity = activity;
27-
if (username.contains("@")) {
28+
public AsyncLogin(Activity loginActivity, String username, String password, String realmName, boolean startedFromAddRealm, String serverURL, boolean devServer) {
29+
super((ZulipApp) loginActivity.getApplication());
30+
this.startedFromAddRealm = startedFromAddRealm;
31+
context = loginActivity;
32+
this.username = username;
33+
if (username.contains("@") && !startedFromAddRealm) {
2834
// @-less usernames are used as indicating special cases, for
2935
// example in OAuth2 authentication
3036
this.app.setEmail(username);
@@ -34,6 +40,9 @@ public AsyncLogin(Activity activity, String username, String password, boolean d
3440
this.setProperty("password", password);
3541
this.devServer = false;
3642
}
43+
this.setProperty("password", password);
44+
this.realmName = realmName;
45+
this.serverURL = serverURL;
3746
}
3847

3948
public final void execute() {

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
<string name="please_wait">Please wait</string>
8888
<string name="realm_add">Add Realm</string>
8989
<string name="realm_name">Name of a realm (Optional)</string>
90-
91-
90+
<string name="realm_exists">Realm Name already exists, please change.</string>
9291

9392
</resources>

0 commit comments

Comments
 (0)