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
3942public class LoginActivity extends AppCompatActivity implements View .OnClickListener ,
@@ -42,14 +45,15 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
4245 private static final int REQUEST_CODE_RESOLVE_ERR = 9000 ;
4346 private static final int REQUEST_CODE_SIGN_IN = 9001 ;
4447
48+ private boolean startedFromAddRealm = false ;
4549 private ProgressDialog connectionProgressDialog ;
4650 private GoogleApiClient mGoogleApiClient ;
4751 private EditText mServerEditText ;
4852 private EditText mUserName ;
4953 private EditText mPassword ;
5054 private EditText serverIn ;
5155 private EditText realmNameET ;
52-
56+ String serverURL ;
5357 private View mGoogleSignInButton ;
5458
5559 @ Override
@@ -153,6 +157,7 @@ private void checkForError() {
153157 }
154158 }
155159 }
160+
156161
157162 private void showBackends (String httpScheme , String serverURL ) {
158163 Uri serverUri = Uri .parse (serverURL );
@@ -167,8 +172,8 @@ private void showBackends(String httpScheme, String serverURL) {
167172 serverIn .setText (serverUri .toString ());
168173 mServerEditText .setText (serverUri .toString ());
169174 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 );
172177 asyncGetBackends .setCallback (new AsyncTaskCompleteListener () {
173178 @ Override
174179 public void onTaskComplete (String result , JSONObject jsonObject ) {
@@ -240,7 +245,7 @@ private void handleSignInResult(GoogleSignInResult result) {
240245 return ;
241246 }
242247
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 );
244249 loginTask .setCallback (new AsyncTaskCompleteListener () {
245250 @ Override
246251 public void onTaskComplete (String result , JSONObject object ) {
@@ -268,7 +273,21 @@ public void onTaskFailure(String result) {
268273 }
269274 }
270275
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 () {
272291 Intent i = new Intent (this , LegalActivity .class );
273292 startActivityForResult (i , 0 );
274293 }
@@ -339,10 +358,14 @@ public void onClick(View v) {
339358 if (!isInputValid ()) {
340359 return ;
341360 }
361+ if (!isInputValid ()) return ;
362+ if (serverURL == null ) return ;
342363 connectionProgressDialog .show ();
343364
344365 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+
346369 // Remove the CPD when done
347370 alog .setCallback (new AsyncTaskCompleteListener () {
348371 @ Override
@@ -364,7 +387,7 @@ public void onTaskFailure(String result) {
364387 case R .id .local_server_button :
365388 if (!isInputValidForDevAuth ()) return ;
366389 connectionProgressDialog .show ();
367- AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails (LoginActivity .this );
390+ AsyncDevGetEmails asyncDevGetEmails = new AsyncDevGetEmails (LoginActivity .this , serverURL , getRealmName (), startedFromAddRealm );
368391 asyncDevGetEmails .setCallback (new AsyncTaskCompleteListener () {
369392 @ Override
370393 public void onTaskComplete (String result , JSONObject jsonObject ) {
0 commit comments