10
10
import android .support .v7 .app .AlertDialog ;
11
11
import android .support .v7 .app .AppCompatActivity ;
12
12
import android .support .v7 .widget .Toolbar ;
13
+ import android .text .TextUtils ;
13
14
import android .util .Log ;
14
15
import android .util .Patterns ;
15
16
import android .view .View ;
35
36
import org .json .JSONException ;
36
37
import org .json .JSONObject ;
37
38
39
+ import java .net .URI ;
40
+ import java .net .URISyntaxException ;
38
41
import java .util .List ;
39
42
40
43
public class LoginActivity extends AppCompatActivity implements View .OnClickListener ,
@@ -43,14 +46,15 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
43
46
private static final int REQUEST_CODE_RESOLVE_ERR = 9000 ;
44
47
private static final int REQUEST_CODE_SIGN_IN = 9001 ;
45
48
49
+ private boolean startedFromAddRealm = false ;
46
50
private ProgressDialog connectionProgressDialog ;
47
51
private GoogleApiClient mGoogleApiClient ;
48
52
private EditText mServerEditText ;
49
53
private EditText mUserName ;
50
54
private EditText mPassword ;
51
55
private EditText serverIn ;
52
56
private EditText realmNameET ;
53
-
57
+ String serverURL ;
54
58
private View mGoogleSignInButton ;
55
59
@ Override
56
60
protected void onCreate (Bundle savedInstanceState ) {
@@ -153,6 +157,7 @@ private void checkForError() {
153
157
}
154
158
}
155
159
}
160
+
156
161
157
162
private void showBackends (String httpScheme , String serverURL ) {
158
163
Uri serverUri = Uri .parse (serverURL );
@@ -167,8 +172,8 @@ private void showBackends(String httpScheme, String serverURL) {
167
172
serverIn .setText (serverUri .toString ());
168
173
mServerEditText .setText (serverUri .toString ());
169
174
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 );
172
177
asyncGetBackends .setCallback (new AsyncTaskCompleteListener () {
173
178
@ Override
174
179
public void onTaskComplete (String result , JSONObject jsonObject ) {
@@ -240,7 +245,7 @@ private void handleSignInResult(GoogleSignInResult result) {
240
245
return ;
241
246
}
242
247
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 );
244
249
loginTask .setCallback (new AsyncTaskCompleteListener () {
245
250
@ Override
246
251
public void onTaskComplete (String result , JSONObject object ) {
@@ -268,6 +273,20 @@ public void onTaskFailure(String result) {
268
273
}
269
274
}
270
275
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
+
271
290
protected void openLegal () {
272
291
Intent i = new Intent (this , LegalActivity .class );
273
292
startActivityForResult (i , 0 );
@@ -339,10 +358,14 @@ public void onClick(View v) {
339
358
if (!isInputValid ()) {
340
359
return ;
341
360
}
361
+ if (!isInputValid ()) return ;
362
+ if (serverURL == null ) return ;
342
363
connectionProgressDialog .show ();
343
364
344
365
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
+
346
369
// Remove the CPD when done
347
370
alog .setCallback (new AsyncTaskCompleteListener () {
348
371
@ Override
@@ -364,7 +387,7 @@ public void onTaskFailure(String result) {
364
387
case R .id .local_server_button :
365
388
if (!isInputValidForDevAuth ()) return ;
366
389
connectionProgressDialog .show ();
367
- AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails (LoginActivity .this );
390
+ AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails (LoginActivity .this , serverURL , getRealmName (), startedFromAddRealm );
368
391
asyncDevGetEmails .setCallback (new AsyncTaskCompleteListener () {
369
392
@ Override
370
393
public void onTaskComplete (String result , JSONObject jsonObject ) {
0 commit comments