Small behavior improvements

pull/162/head
M66B 6 years ago
parent 58647ad2a2
commit 6b7f8142a2

@ -33,6 +33,7 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.provider.ContactsContract; import android.provider.ContactsContract;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Patterns;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -101,6 +102,15 @@ public class FragmentGmail extends FragmentBase {
btnSelect.setOnClickListener(new View.OnClickListener() { btnSelect.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
String name = etName.getText().toString().trim();
if (TextUtils.isEmpty(name)) {
tvError.setText(R.string.title_no_name);
tvError.setVisibility(View.VISIBLE);
return;
}
tvError.setVisibility(View.GONE);
startActivityForResult( startActivityForResult(
Helper.getChooser(getContext(), newChooseAccountIntent( Helper.getChooser(getContext(), newChooseAccountIntent(
null, null,
@ -230,6 +240,7 @@ public class FragmentGmail extends FragmentBase {
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
tvError.setText(Helper.formatThrowable(ex)); tvError.setText(Helper.formatThrowable(ex));
tvError.setVisibility(View.VISIBLE);
new Handler().post(new Runnable() { new Handler().post(new Runnable() {
@Override @Override
@ -247,7 +258,7 @@ public class FragmentGmail extends FragmentBase {
private void onAuthorized(String user, String password) { private void onAuthorized(String user, String password) {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putString("name", etName.getText().toString()); args.putString("name", etName.getText().toString().trim());
args.putString("user", user); args.putString("user", user);
args.putString("password", password); args.putString("password", password);
@ -257,6 +268,7 @@ public class FragmentGmail extends FragmentBase {
etName.setEnabled(false); etName.setEnabled(false);
btnSelect.setEnabled(false); btnSelect.setEnabled(false);
pbSelect.setVisibility(View.VISIBLE); pbSelect.setVisibility(View.VISIBLE);
tvError.setVisibility(View.GONE);
} }
@Override @Override
@ -272,9 +284,11 @@ public class FragmentGmail extends FragmentBase {
String user = args.getString("user"); String user = args.getString("user");
String password = args.getString("password"); String password = args.getString("password");
if (!user.contains("@")) // Safety checks
throw new IllegalArgumentException( if (!Patterns.EMAIL_ADDRESS.matcher(user).matches())
context.getString(R.string.title_email_invalid, user)); throw new IllegalArgumentException(context.getString(R.string.title_email_invalid, user));
if (TextUtils.isEmpty(password))
throw new IllegalArgumentException(context.getString(R.string.title_no_password));
String domain = user.split("@")[1]; String domain = user.split("@")[1];
EmailProvider provider = EmailProvider.fromDomain(context, domain, EmailProvider.Discover.ALL); EmailProvider provider = EmailProvider.fromDomain(context, domain, EmailProvider.Discover.ALL);
@ -384,7 +398,12 @@ public class FragmentGmail extends FragmentBase {
@Override @Override
protected void onException(Bundle args, Throwable ex) { protected void onException(Bundle args, Throwable ex) {
Log.e(ex); Log.e(ex);
if (ex instanceof IllegalArgumentException)
tvError.setText(ex.getMessage());
else
tvError.setText(Helper.formatThrowable(ex)); tvError.setText(Helper.formatThrowable(ex));
tvError.setVisibility(View.VISIBLE);
new Handler().post(new Runnable() { new Handler().post(new Runnable() {
@Override @Override

@ -216,7 +216,7 @@ public class FragmentQuickSetup extends FragmentBase {
@Override @Override
protected EmailProvider onExecute(Context context, Bundle args) throws Throwable { protected EmailProvider onExecute(Context context, Bundle args) throws Throwable {
String name = args.getString("name"); String name = args.getString("name").trim();
String email = args.getString("email").trim(); String email = args.getString("email").trim();
String password = args.getString("password"); String password = args.getString("password");
boolean check = args.getBoolean("check"); boolean check = args.getBoolean("check");
@ -227,6 +227,8 @@ public class FragmentQuickSetup extends FragmentBase {
throw new IllegalArgumentException(context.getString(R.string.title_no_email)); throw new IllegalArgumentException(context.getString(R.string.title_no_email));
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) if (!Patterns.EMAIL_ADDRESS.matcher(email).matches())
throw new IllegalArgumentException(context.getString(R.string.title_email_invalid, email)); throw new IllegalArgumentException(context.getString(R.string.title_email_invalid, email));
if (TextUtils.isEmpty(password))
throw new IllegalArgumentException(context.getString(R.string.title_no_password));
String[] dparts = email.split("@"); String[] dparts = email.split("@");
EmailProvider provider = EmailProvider.fromDomain(context, dparts[1], EmailProvider.Discover.ALL); EmailProvider provider = EmailProvider.fromDomain(context, dparts[1], EmailProvider.Discover.ALL);
@ -363,9 +365,18 @@ public class FragmentQuickSetup extends FragmentBase {
@Override @Override
protected void onException(final Bundle args, Throwable ex) { protected void onException(final Bundle args, Throwable ex) {
Log.e(ex); Log.e(ex);
if (ex instanceof IllegalArgumentException || ex instanceof UnknownHostException)
if (ex instanceof IllegalArgumentException || ex instanceof UnknownHostException) {
tvError.setText(ex.getMessage()); tvError.setText(ex.getMessage());
else tvError.setVisibility(View.VISIBLE);
new Handler().post(new Runnable() {
@Override
public void run() {
scroll.smoothScrollTo(0, tvError.getBottom());
}
});
} else {
tvError.setText(Helper.formatThrowable(ex, false)); tvError.setText(Helper.formatThrowable(ex, false));
tvError.setVisibility(View.VISIBLE); tvError.setVisibility(View.VISIBLE);
@ -391,7 +402,7 @@ public class FragmentQuickSetup extends FragmentBase {
scroll.smoothScrollTo(0, btnSupport.getBottom()); scroll.smoothScrollTo(0, btnSupport.getBottom());
} }
}); });
}
} }
}.execute(this, args, "setup:quick"); }.execute(this, args, "setup:quick");
} }

Loading…
Cancel
Save