9
9
import android .support .v7 .app .AlertDialog ;
10
10
import android .support .v7 .app .AppCompatActivity ;
11
11
import android .support .v7 .widget .Toolbar ;
12
+ import android .text .TextUtils ;
12
13
import android .util .Log ;
13
14
import android .util .Patterns ;
14
15
import android .view .View ;
34
35
import org .json .JSONException ;
35
36
import org .json .JSONObject ;
36
37
38
+ import java .net .URI ;
39
+ import java .net .URISyntaxException ;
37
40
import java .util .List ;
38
41
39
42
public class LoginActivity extends AppCompatActivity implements View .OnClickListener ,
@@ -42,14 +45,15 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
42
45
private static final int REQUEST_CODE_RESOLVE_ERR = 9000 ;
43
46
private static final int REQUEST_CODE_SIGN_IN = 9001 ;
44
47
48
+ private boolean startedFromAddRealm = false ;
45
49
private ProgressDialog connectionProgressDialog ;
46
50
private GoogleApiClient mGoogleApiClient ;
47
51
private EditText mServerEditText ;
48
52
private EditText mUserName ;
49
53
private EditText mPassword ;
50
54
private EditText serverIn ;
51
55
private EditText realmNameET ;
52
-
56
+ String serverURL ;
53
57
private View mGoogleSignInButton ;
54
58
55
59
@ Override
@@ -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,7 +273,21 @@ public void onTaskFailure(String result) {
268
273
}
269
274
}
270
275
271
- private void openLegal () {
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
+
290
+ protected void openLegal () {
272
291
Intent i = new Intent (this , LegalActivity .class );
273
292
startActivityForResult (i , 0 );
274
293
}
@@ -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