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

Commit 45e1f46

Browse files
committed
Finish DevAuthActivity first then finish LoginActivity to login to Zulip Activity
1 parent 04f3481 commit 45e1f46

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
public class DevAuthActivity extends Activity implements LoginInterface {
2626
private RecyclerView recyclerView;
2727
private ProgressDialog connectionProgressDialog;
28-
28+
public static final int ADD_REALM_REQUEST = 566;
2929

3030
@Override
3131
protected void onCreate(Bundle savedInstanceState) {

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

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.zulip.android.activities;
22

3+
import android.app.Activity;
34
import android.app.ProgressDialog;
45
import android.content.DialogInterface;
56
import android.content.Intent;
@@ -45,6 +46,8 @@
4546
import java.net.URISyntaxException;
4647
import java.util.List;
4748

49+
import static com.zulip.android.activities.DevAuthActivity.ADD_REALM_REQUEST;
50+
4851
public class LoginActivity extends AppCompatActivity implements View.OnClickListener,
4952
GoogleApiClient.OnConnectionFailedListener, LoginInterface {
5053
private static final String TAG = "LoginActivity";
@@ -61,6 +64,7 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
6164
private EditText realmNameET;
6265
private String serverURL;
6366
private View mGoogleSignInButton;
67+
6468
@Override
6569
protected void onCreate(Bundle savedInstanceState) {
6670
super.onCreate(savedInstanceState);
@@ -122,6 +126,11 @@ protected void onActivityResult(int requestCode, int resultCode, Intent intent)
122126
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(intent);
123127
handleSignInResult(result);
124128
break;
129+
case ADD_REALM_REQUEST:
130+
if (resultCode == Activity.RESULT_OK) {
131+
setResult(Activity.RESULT_OK, intent);
132+
finish();
133+
}
125134
default:
126135
break;
127136
}
@@ -167,7 +176,7 @@ private void checkForError() {
167176
}
168177
}
169178
}
170-
179+
171180

172181
private void showBackends(String httpScheme, String serverURL) {
173182
Uri serverUri = Uri.parse(serverURL);
@@ -415,6 +424,7 @@ public void onTaskFailure(String result) {
415424
break;
416425
}
417426
}
427+
418428
private boolean isInputValidForDevAuth() {
419429
boolean isValid = true;
420430

@@ -425,13 +435,14 @@ private boolean isInputValidForDevAuth() {
425435
String serverString = mServerEditText.getText().toString();
426436
if (!serverString.contains("://")) serverString = "https://" + serverString;
427437

428-
if (!Patterns.WEB_URL.matcher(serverString).matches()) {
429-
mServerEditText.setError(getString(R.string.invalid_domain));
430-
isValid = false;
431-
}
438+
if (!Patterns.WEB_URL.matcher(serverString).matches()) {
439+
mServerEditText.setError(getString(R.string.invalid_domain));
440+
isValid = false;
432441
}
442+
}
433443
return isValid;
434444
}
445+
435446
private boolean isInputValid() {
436447
boolean isValid = true;
437448

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import org.json.JSONException;
1414
import org.json.JSONObject;
1515

16+
import static com.zulip.android.activities.DevAuthActivity.ADD_REALM_REQUEST;
17+
1618
public class AsyncDevGetEmails extends ZulipAsyncPushTask {
1719
private static final String DISABLED = "dev_disabled";
1820
public static final String SERVER_URL_JSON = "server_url";
@@ -47,7 +49,7 @@ protected void onPostExecute(String result) {
4749
intent.putExtra(REALM_NAME_JSON, realmName);
4850
intent.putExtra(SERVER_URL_JSON, serverURL);
4951
intent.putExtra(ADD_REALM_BOOLEAN_JSON, startedFromAddRealm);
50-
context.startActivity(intent);
52+
((LoginActivity) context).startActivityForResult(intent, ADD_REALM_REQUEST);
5153
}
5254
} catch (JSONException e) {
5355
ZLog.logException(e);

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,14 @@ protected void onPostExecute(String result) {
8383

8484
private void loginThroughAddRealm(JSONObject jsonObject) {
8585
try {
86-
Intent intent = new Intent(context, ZulipActivity.class);
86+
Intent intent = null;
87+
//This is done to start ZulipActivity from DevAuthActivity which cannot be done directly as DevAuthActivity was called from LoginActivity
88+
//And Therefore we have to finish two activities (DevAuthActivity and LoginActivity) if started from DevAuthActivity.
89+
if (context instanceof DevAuthActivity) {
90+
intent = new Intent();
91+
} else if (context instanceof LoginActivity) {
92+
intent = new Intent(context, ZulipActivity.class);
93+
}
8794
intent.putExtra("realmName", realmName);
8895
intent.putExtra("api_key", jsonObject.getString("api_key"));
8996
intent.putExtra("email", username);

0 commit comments

Comments
 (0)