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

Commit cb0a65a

Browse files
committed
Save apikey, server to sharedPreferences while login
1 parent fa15965 commit cb0a65a

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
@@ -373,6 +373,19 @@ public boolean isTopicMute(int id, String subject) {
373373
return mutedTopics.contains(id + subject);
374374
}
375375

376+
public void saveServerName(String serverName) {
377+
String username=null;
378+
try {
379+
username = you.getEmail();
380+
} catch (Exception e) {
381+
//SQL Exception can occur if name is not updated!
382+
ZLog.logException(e);
383+
}
384+
Editor globalEditor = this.globalSettings.edit();
385+
serverStringSet.add((username != null) ? serverName + " - " + username : serverName);
386+
globalEditor.putStringSet(GLOBAL_SETTINGS_REALMS, new HashSet<String>(serverStringSet));
387+
globalEditor.apply();
388+
}
376389
public void createNewRealm() {
377390
SharedPreferences.Editor editor = this.globalSettings.edit();
378391
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

@@ -20,7 +22,7 @@
2022
import java.util.ArrayList;
2123
import java.util.List;
2224

23-
public class DevAuthActivity extends Activity {
25+
public class DevAuthActivity extends Activity implements LoginInterface {
2426
private RecyclerView recyclerView;
2527
private ProgressDialog connectionProgressDialog;
2628

@@ -67,6 +69,7 @@ public void onItemClick(String email) {
6769
});
6870
}
6971

72+
@Override
7073
public void openHome() {
7174
// Cancel before leaving activity to avoid leaking windows
7275
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
@@ -27,6 +27,7 @@
2727
import com.zulip.android.R;
2828
import com.zulip.android.networking.AsyncDevGetEmails;
2929
import com.zulip.android.networking.AsyncGetBackends;
30+
import com.zulip.android.networking.LoginInterface;
3031
import com.zulip.android.util.AnimationHelper;
3132
import com.zulip.android.util.ZLog;
3233
import com.zulip.android.ZulipApp;
@@ -41,7 +42,7 @@
4142
import java.util.List;
4243

4344
public class LoginActivity extends AppCompatActivity implements View.OnClickListener,
44-
GoogleApiClient.OnConnectionFailedListener {
45+
GoogleApiClient.OnConnectionFailedListener, LoginInterface {
4546
private static final String TAG = "LoginActivity";
4647
private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
4748
private static final int REQUEST_CODE_SIGN_IN = 9001;
@@ -292,6 +293,7 @@ protected void openLegal() {
292293
startActivityForResult(i, 0);
293294
}
294295

296+
@Override
295297
public void openHome() {
296298
// Cancel before leaving activity to avoid leaking windows
297299
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
@@ -24,6 +24,7 @@ public class AsyncLogin extends ZulipAsyncPushTask {
2424
private String realmName;
2525
private String username;
2626
private String serverURL;
27+
LoginInterface loginInterface;
2728

2829
public AsyncLogin(Activity loginActivity, String username, String password, String realmName, boolean startedFromAddRealm, String serverURL, boolean devServer) {
2930
super((ZulipApp) loginActivity.getApplication());
@@ -44,6 +45,7 @@ public AsyncLogin(Activity loginActivity, String username, String password, Stri
4445
this.realmName = realmName;
4546
this.setServerURL(serverURL);
4647
this.serverURL = serverURL;
48+
loginInterface = (LoginInterface) context;
4749
}
4850

4951
public final void execute() {
@@ -58,10 +60,15 @@ protected void onPostExecute(String result) {
5860
JSONObject obj = new JSONObject(result);
5961

6062
if (obj.getString("result").equals("success")) {
61-
this.app.setLoggedInApiKey(obj.getString("api_key"));
62-
if (devServer) ((DevAuthActivity) activity).openHome();
63-
else ((LoginActivity) activity).openHome();
64-
callback.onTaskComplete(result, obj);
63+
if (startedFromAddRealm) {
64+
loginThroughAddRealm(obj);
65+
callback.onTaskComplete(result, obj);
66+
} else {
67+
this.app.setServerURL(serverURL);
68+
this.app.setLoggedInApiKey(obj.getString("api_key"));
69+
ZulipApp.get().saveServerName(realmName);
70+
loginInterface.openHome();
71+
}
6572
return;
6673
}
6774
} 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)