99import android .support .v7 .app .AlertDialog ;
1010import android .support .v7 .app .AppCompatActivity ;
1111import android .support .v7 .widget .Toolbar ;
12+ import android .text .TextUtils ;
1213import android .util .Log ;
1314import android .util .Patterns ;
1415import android .view .View ;
3435import org .json .JSONException ;
3536import org .json .JSONObject ;
3637
38+ import java .net .URI ;
39+ import java .net .URISyntaxException ;
3740import java .util .List ;
3841
3942/**
@@ -46,14 +49,15 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
4649 private static final int REQUEST_CODE_RESOLVE_ERR = 9000 ;
4750 private static final int REQUEST_CODE_SIGN_IN = 9001 ;
4851
52+ private boolean startedFromAddRealm = false ;
4953 private ProgressDialog connectionProgressDialog ;
5054 private GoogleApiClient mGoogleApiClient ;
5155 private EditText mServerEditText ;
5256 private EditText mUserName ;
5357 private EditText mPassword ;
5458 private EditText serverIn ;
5559 private EditText realmNameET ;
56-
60+ String serverURL ;
5761 private View mGoogleSignInButton ;
5862
5963 @ Override
@@ -157,6 +161,7 @@ private void checkForError() {
157161 }
158162 }
159163 }
164+
160165
161166 private void showBackends (String httpScheme , String serverURL ) {
162167 Uri serverUri = Uri .parse (serverURL );
@@ -171,8 +176,8 @@ private void showBackends(String httpScheme, String serverURL) {
171176 serverIn .setText (serverUri .toString ());
172177 mServerEditText .setText (serverUri .toString ());
173178 mServerEditText .setEnabled (false );
174- (( ZulipApp ) getApplication ()). setServerURL ( serverUri .toString () );
175- AsyncGetBackends asyncGetBackends = new AsyncGetBackends (ZulipApp .get ());
179+ serverURL = serverUri .toString ();
180+ AsyncGetBackends asyncGetBackends = new AsyncGetBackends (ZulipApp .get (), serverURL );
176181 asyncGetBackends .setCallback (new AsyncTaskCompleteListener () {
177182 @ Override
178183 public void onTaskComplete (String result , JSONObject jsonObject ) {
@@ -244,7 +249,7 @@ private void handleSignInResult(GoogleSignInResult result) {
244249 return ;
245250 }
246251
247- final AsyncLogin loginTask = new AsyncLogin (LoginActivity .this , "google-oauth2-token" , account .getIdToken (), false );
252+ final AsyncLogin loginTask = new AsyncLogin (LoginActivity .this , "google-oauth2-token" , account .getIdToken (), getRealmName (), startedFromAddRealm , serverURL , false );
248253 loginTask .setCallback (new AsyncTaskCompleteListener () {
249254 @ Override
250255 public void onTaskComplete (String result , JSONObject object ) {
@@ -272,7 +277,21 @@ public void onTaskFailure(String result) {
272277 }
273278 }
274279
275- private void openLegal () {
280+ private String getRealmName () {
281+ if (TextUtils .isEmpty (realmNameET .getText ())) {
282+ String server = serverURL ;
283+ URI uri = null ;
284+ try {
285+ uri = new URI (server );
286+ } catch (URISyntaxException e ) {
287+ return server ;
288+ }
289+ return uri .getHost ();
290+ }
291+ return realmNameET .getText ().toString ();
292+ }
293+
294+ protected void openLegal () {
276295 Intent i = new Intent (this , LegalActivity .class );
277296 startActivityForResult (i , 0 );
278297 }
@@ -343,10 +362,14 @@ public void onClick(View v) {
343362 if (!isInputValid ()) {
344363 return ;
345364 }
365+ if (!isInputValid ()) return ;
366+ if (serverURL == null ) return ;
346367 connectionProgressDialog .show ();
347368
348369 AsyncLogin alog = new AsyncLogin (LoginActivity .this ,
349- mUserName .getText ().toString (), mPassword .getText ().toString (), false );
370+ mUserName .getText ().toString (), mPassword .getText ().toString (),
371+ getRealmName (), startedFromAddRealm , serverURL , false );
372+
350373 // Remove the CPD when done
351374 alog .setCallback (new AsyncTaskCompleteListener () {
352375 @ Override
@@ -368,7 +391,7 @@ public void onTaskFailure(String result) {
368391 case R .id .local_server_button :
369392 if (!isInputValidForDevAuth ()) return ;
370393 connectionProgressDialog .show ();
371- AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails (LoginActivity .this );
394+ AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails (LoginActivity .this , serverURL , getRealmName (), startedFromAddRealm );
372395 asyncDevGetEmails .setCallback (new AsyncTaskCompleteListener () {
373396 @ Override
374397 public void onTaskComplete (String result , JSONObject jsonObject ) {
0 commit comments