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

Commit da6713b

Browse files
committed
Save apikey, server to sharedPreferences while login
1 parent 7dba755 commit da6713b

File tree

5 files changed

+37
-6
lines changed

5 files changed

+37
-6
lines changed

app/src/main/java/com/zulip/android/ZulipApp.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,19 @@ public boolean isTopicMute(int id, String subject) {
386386
return mutedTopics.contains(id + subject);
387387
}
388388

389+
public void saveServerName(String serverName) {
390+
String username=null;
391+
try {
392+
username = you.getEmail();
393+
} catch (Exception e) {
394+
//SQL Exception can occur if name is not updated!
395+
ZLog.logException(e);
396+
}
397+
Editor globalEditor = this.globalSettings.edit();
398+
serverStringSet.add((username != null) ? serverName + " - " + username : serverName);
399+
globalEditor.putStringSet(GLOBAL_SETTINGS_REALMS, new HashSet<String>(serverStringSet));
400+
globalEditor.apply();
401+
}
389402
public void createNewRealm() {
390403
SharedPreferences.Editor editor = this.globalSettings.edit();
391404
currentRealm = serverStringSet.size();

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.zulip.android.R;
1111
import com.zulip.android.networking.AsyncDevGetEmails;
1212
import com.zulip.android.networking.AsyncLogin;
13+
import com.zulip.android.networking.LoginInterface;
14+
import com.zulip.android.networking.ZulipAsyncPushTask;
1315
import com.zulip.android.util.AuthClickListener;
1416
import com.zulip.android.util.ZLog;
1517

@@ -23,7 +25,7 @@
2325
/**
2426
* Activity where the Emails for the DevAuthBackend are displayed.
2527
*/
26-
public class DevAuthActivity extends Activity {
28+
public class DevAuthActivity extends Activity implements LoginInterface {
2729
private RecyclerView recyclerView;
2830
private ProgressDialog connectionProgressDialog;
2931

@@ -70,6 +72,7 @@ public void onItemClick(String email) {
7072
});
7173
}
7274

75+
@Override
7376
public void openHome() {
7477
// Cancel before leaving activity to avoid leaking windows
7578
connectionProgressDialog.dismiss();

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.zulip.android.R;
2727
import com.zulip.android.networking.AsyncDevGetEmails;
2828
import com.zulip.android.networking.AsyncGetBackends;
29+
import com.zulip.android.networking.LoginInterface;
2930
import com.zulip.android.util.AnimationHelper;
3031
import com.zulip.android.util.ZLog;
3132
import com.zulip.android.ZulipApp;
@@ -44,7 +45,7 @@
4445
* Currently supported LoginAuths are Emailbackend and DevAuthBackend.
4546
*/
4647
public class LoginActivity extends AppCompatActivity implements View.OnClickListener,
47-
GoogleApiClient.OnConnectionFailedListener {
48+
GoogleApiClient.OnConnectionFailedListener, LoginInterface {
4849
private static final String TAG = "LoginActivity";
4950
private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
5051
private static final int REQUEST_CODE_SIGN_IN = 9001;
@@ -296,6 +297,7 @@ protected void openLegal() {
296297
startActivityForResult(i, 0);
297298
}
298299

300+
@Override
299301
public void openHome() {
300302
// Cancel before leaving activity to avoid leaking windows
301303
connectionProgressDialog.dismiss();

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class AsyncLogin extends ZulipAsyncPushTask {
2828
private String realmName;
2929
private String username;
3030
private String serverURL;
31+
LoginInterface loginInterface;
3132

3233
/**
3334
* @param activity Reference to the activity from this is called mainly {@link LoginActivity} and {@link DevAuthActivity}
@@ -53,6 +54,7 @@ public AsyncLogin(Activity loginActivity, String username, String password, Stri
5354
this.realmName = realmName;
5455
this.setServerURL(serverURL);
5556
this.serverURL = serverURL;
57+
loginInterface = (LoginInterface) context;
5658
}
5759

5860
public final void execute() {
@@ -67,10 +69,15 @@ protected void onPostExecute(String result) {
6769
JSONObject obj = new JSONObject(result);
6870

6971
if (obj.getString("result").equals("success")) {
70-
this.app.setLoggedInApiKey(obj.getString("api_key"));
71-
if (devServer) ((DevAuthActivity) activity).openHome();
72-
else ((LoginActivity) activity).openHome();
73-
callback.onTaskComplete(result, obj);
72+
if (startedFromAddRealm) {
73+
loginThroughAddRealm(obj);
74+
callback.onTaskComplete(result, obj);
75+
} else {
76+
this.app.setServerURL(serverURL);
77+
this.app.setLoggedInApiKey(obj.getString("api_key"));
78+
ZulipApp.get().saveServerName(realmName);
79+
loginInterface.openHome();
80+
}
7481
return;
7582
}
7683
} catch (JSONException e) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.zulip.android.networking;
2+
3+
4+
public interface LoginInterface {
5+
void openHome();
6+
}

0 commit comments

Comments
 (0)