Skip to content

Commit c8d3c07

Browse files
authored
Merge pull request #35 from wordpress-mobile/feature/login-style-changes-v2
Feature/login style changes
2 parents a479663 + a2e9e4a commit c8d3c07

31 files changed

+536
-589
lines changed

libs/login/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ dependencies {
4040
implementation 'androidx.media:media:1.0.1'
4141
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
4242
implementation 'androidx.gridlayout:gridlayout:1.0.0'
43-
implementation 'com.google.android.material:material:1.0.0'
43+
implementation 'com.google.android.material:material:1.1.0'
4444

4545
api 'com.google.android.gms:play-services-auth:15.0.1'
4646

libs/login/src/main/java/org/wordpress/android/login/Login2FaFragment.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import android.text.TextUtils;
88
import android.text.TextWatcher;
99
import android.text.method.DigitsKeyListener;
10-
import android.view.ContextThemeWrapper;
1110
import android.view.View;
1211
import android.view.View.OnClickListener;
1312
import android.view.ViewGroup;
@@ -21,6 +20,8 @@
2120
import androidx.annotation.StringRes;
2221
import androidx.appcompat.app.AlertDialog;
2322

23+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
24+
2425
import org.greenrobot.eventbus.Subscribe;
2526
import org.greenrobot.eventbus.ThreadMode;
2627
import org.wordpress.android.fluxc.generated.AccountActionBuilder;
@@ -44,10 +45,10 @@
4445
import java.util.regex.Matcher;
4546
import java.util.regex.Pattern;
4647

47-
import dagger.android.support.AndroidSupportInjection;
48-
4948
import static android.content.Context.CLIPBOARD_SERVICE;
5049

50+
import dagger.android.support.AndroidSupportInjection;
51+
5152
public class Login2FaFragment extends LoginBaseFormFragment<LoginListener> implements TextWatcher,
5253
OnEditorCommitListener {
5354
private static final String KEY_2FA_TYPE = "KEY_2FA_TYPE";
@@ -396,7 +397,7 @@ private void handleAuthError(AuthenticationErrorType error, String errorMessage)
396397
}
397398

398399
private void showErrorDialog(String message) {
399-
AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme))
400+
AlertDialog dialog = new MaterialAlertDialogBuilder(getActivity())
400401
.setMessage(message)
401402
.setPositiveButton(R.string.login_error_button, null)
402403
.create();

libs/login/src/main/java/org/wordpress/android/login/LoginEmailFragment.java

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import android.text.Html;
1111
import android.text.TextWatcher;
1212
import android.util.Patterns;
13-
import android.view.ContextThemeWrapper;
1413
import android.view.View;
1514
import android.view.View.OnClickListener;
1615
import android.view.ViewGroup;
@@ -33,6 +32,7 @@
3332
import com.google.android.gms.common.api.GoogleApiClient;
3433
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
3534
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
35+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
3636

3737
import org.greenrobot.eventbus.Subscribe;
3838
import org.greenrobot.eventbus.ThreadMode;
@@ -64,6 +64,7 @@ public class LoginEmailFragment extends LoginBaseFormFragment<LoginListener> imp
6464
private static final String KEY_IS_SOCIAL = "KEY_IS_SOCIAL";
6565
private static final String KEY_OLD_SITES_IDS = "KEY_OLD_SITES_IDS";
6666
private static final String KEY_REQUESTED_EMAIL = "KEY_REQUESTED_EMAIL";
67+
private static final String KEY_EMAIL_ERROR_RES = "KEY_EMAIL_ERROR_RES";
6768
private static final String LOG_TAG = LoginEmailFragment.class.getSimpleName();
6869
private static final int GOOGLE_API_CLIENT_ID = 1002;
6970
private static final int EMAIL_CREDENTIALS_REQUEST_CODE = 25100;
@@ -78,6 +79,7 @@ public class LoginEmailFragment extends LoginBaseFormFragment<LoginListener> imp
7879
private String mGoogleEmail;
7980
private String mRequestedEmail;
8081
private boolean mIsSocialLogin;
82+
private Integer mCurrentEmailErrorRes = null;
8183

8284
protected WPLoginInputRow mEmailInput;
8385
protected boolean mHasDismissedEmailHints;
@@ -135,7 +137,12 @@ protected void setupContent(ViewGroup rootView) {
135137
if (BuildConfig.DEBUG) {
136138
mEmailInput.getEditText().setText(BuildConfig.DEBUG_WPCOM_LOGIN_EMAIL);
137139
}
138-
mEmailInput.addTextChangedListener(this);
140+
mEmailInput.post(new Runnable() {
141+
@Override public void run() {
142+
mEmailInput.addTextChangedListener(LoginEmailFragment.this);
143+
}
144+
});
145+
139146
mEmailInput.setOnEditorCommitListener(this);
140147
mEmailInput.getEditText().setOnFocusChangeListener(new View.OnFocusChangeListener() {
141148
@Override
@@ -288,6 +295,7 @@ public void onStart() {
288295
.enableAutoManage(getActivity(), GOOGLE_API_CLIENT_ID, LoginEmailFragment.this)
289296
.addApi(Auth.CREDENTIALS_API)
290297
.build();
298+
showEmailError();
291299
}
292300

293301
@Override
@@ -312,6 +320,9 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
312320
mIsSocialLogin = savedInstanceState.getBoolean(KEY_IS_SOCIAL);
313321
mIsDisplayingEmailHints = savedInstanceState.getBoolean(KEY_IS_DISPLAYING_EMAIL_HINTS);
314322
mHasDismissedEmailHints = savedInstanceState.getBoolean(KEY_HAS_DISMISSED_EMAIL_HINTS);
323+
if (savedInstanceState.containsKey(KEY_EMAIL_ERROR_RES)) {
324+
mCurrentEmailErrorRes = savedInstanceState.getInt(KEY_EMAIL_ERROR_RES);
325+
}
315326
} else {
316327
mAnalyticsListener.trackEmailFormViewed();
317328
}
@@ -326,6 +337,9 @@ public void onSaveInstanceState(Bundle outState) {
326337
outState.putBoolean(KEY_IS_SOCIAL, mIsSocialLogin);
327338
outState.putBoolean(KEY_IS_DISPLAYING_EMAIL_HINTS, mIsDisplayingEmailHints);
328339
outState.putBoolean(KEY_HAS_DISMISSED_EMAIL_HINTS, mHasDismissedEmailHints);
340+
if (mCurrentEmailErrorRes != null) {
341+
outState.putInt(KEY_EMAIL_ERROR_RES, mCurrentEmailErrorRes);
342+
}
329343
}
330344

331345
protected void next(String email) {
@@ -334,6 +348,7 @@ protected void next(String email) {
334348
}
335349

336350
if (isValidEmail(email)) {
351+
clearEmailError();
337352
startProgress();
338353
mRequestedEmail = email;
339354
mDispatcher.dispatch(AccountActionBuilder.newIsAvailableEmailAction(email));
@@ -342,6 +357,20 @@ protected void next(String email) {
342357
}
343358
}
344359

360+
/**
361+
* This is cleared every time the text is changed or the email is valid so that if the user rotates the device, they
362+
* don't receive an unnecessary warning from a previous error.
363+
*/
364+
private void clearEmailError() {
365+
mCurrentEmailErrorRes = null;
366+
}
367+
368+
private void showEmailError() {
369+
if (mCurrentEmailErrorRes != null) {
370+
showEmailError(mCurrentEmailErrorRes);
371+
}
372+
}
373+
345374
@Override
346375
public void onDetach() {
347376
super.onDetach();
@@ -376,14 +405,16 @@ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
376405
public void onTextChanged(CharSequence s, int start, int before, int count) {
377406
mEmailInput.setError(null);
378407
mIsSocialLogin = false;
408+
clearEmailError();
379409
}
380410

381411
private void showEmailError(int messageId) {
412+
mCurrentEmailErrorRes = messageId;
382413
mEmailInput.setError(getString(messageId));
383414
}
384415

385416
private void showErrorDialog(String message) {
386-
AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme))
417+
AlertDialog dialog = new MaterialAlertDialogBuilder(getActivity())
387418
.setMessage(message)
388419
.setPositiveButton(R.string.login_error_button, null)
389420
.create();

libs/login/src/main/java/org/wordpress/android/login/LoginHttpAuthDialogFragment.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import android.os.Bundle;
88
import android.text.Editable;
99
import android.text.TextWatcher;
10-
import android.view.ContextThemeWrapper;
1110
import android.view.KeyEvent;
1211
import android.view.View;
1312
import android.widget.EditText;
@@ -18,6 +17,8 @@
1817
import androidx.appcompat.app.AlertDialog;
1918
import androidx.fragment.app.DialogFragment;
2019

20+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
21+
2122
import org.wordpress.android.util.EditTextUtils;
2223

2324
public class LoginHttpAuthDialogFragment extends DialogFragment {
@@ -49,7 +50,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
4950
@NonNull
5051
@Override
5152
public Dialog onCreateDialog(Bundle savedInstanceState) {
52-
AlertDialog.Builder alert = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme));
53+
AlertDialog.Builder alert = new MaterialAlertDialogBuilder(getActivity());
5354
alert.setTitle(R.string.http_authorization_required);
5455

5556
//noinspection InflateParams

libs/login/src/main/java/org/wordpress/android/login/LoginMagicLinkRequestFragment.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ public class LoginMagicLinkRequestFragment extends Fragment {
5454
public static final String TAG = "login_magic_link_request_fragment_tag";
5555

5656
private static final String KEY_IN_PROGRESS = "KEY_IN_PROGRESS";
57-
private static final String KEY_GRAVATAR_IN_PROGRESS = "KEY_GRAVATAR_IN_PROGRESS";
5857
private static final String ARG_EMAIL_ADDRESS = "ARG_EMAIL_ADDRESS";
5958
private static final String ARG_MAGIC_LINK_SCHEME = "ARG_MAGIC_LINK_SCHEME";
6059
private static final String ARG_IS_JETPACK_CONNECT = "ARG_IS_JETPACK_CONNECT";
@@ -224,9 +223,6 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
224223
if (mInProgress) {
225224
showMagicLinkRequestProgressDialog();
226225
}
227-
228-
boolean gravatarInProgress = savedInstanceState.getBoolean(KEY_GRAVATAR_IN_PROGRESS);
229-
mAvatarProgressBar.setVisibility(gravatarInProgress ? View.VISIBLE : View.GONE);
230226
}
231227
// important for accessibility - talkback
232228
getActivity().setTitle(R.string.magic_link_login_title);
@@ -243,7 +239,6 @@ public void onSaveInstanceState(Bundle outState) {
243239
super.onSaveInstanceState(outState);
244240

245241
outState.putBoolean(KEY_IN_PROGRESS, mInProgress);
246-
outState.putBoolean(KEY_GRAVATAR_IN_PROGRESS, mAvatarProgressBar.getVisibility() == View.VISIBLE);
247242
}
248243

249244
@Override

libs/login/src/main/java/org/wordpress/android/login/LoginSiteAddressHelpDialogFragment.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
import android.content.Context;
55
import android.content.DialogInterface;
66
import android.os.Bundle;
7-
import android.view.ContextThemeWrapper;
87

98
import androidx.annotation.NonNull;
109
import androidx.appcompat.app.AlertDialog;
1110
import androidx.fragment.app.DialogFragment;
1211

12+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
13+
1314
import org.wordpress.android.fluxc.store.AccountStore;
1415
import org.wordpress.android.fluxc.store.SiteStore;
1516

@@ -46,7 +47,7 @@ public void onAttach(Context context) {
4647
@NonNull
4748
@Override
4849
public Dialog onCreateDialog(Bundle savedInstanceState) {
49-
AlertDialog.Builder alert = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme));
50+
AlertDialog.Builder alert = new MaterialAlertDialogBuilder(getActivity());
5051
alert.setTitle(R.string.login_site_address_help_title);
5152

5253
//noinspection InflateParams

libs/login/src/main/java/org/wordpress/android/login/SignupEmailFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import android.text.Editable;
99
import android.text.TextWatcher;
1010
import android.util.Patterns;
11-
import android.view.ContextThemeWrapper;
1211
import android.view.View;
1312
import android.view.View.OnClickListener;
1413
import android.view.ViewGroup;
@@ -29,6 +28,7 @@
2928
import com.google.android.gms.common.api.GoogleApiClient;
3029
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
3130
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
31+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
3232

3333
import org.greenrobot.eventbus.Subscribe;
3434
import org.greenrobot.eventbus.ThreadMode;
@@ -232,7 +232,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
232232
}
233233

234234
protected void showErrorDialog(String message) {
235-
AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme))
235+
AlertDialog dialog = new MaterialAlertDialogBuilder(getActivity())
236236
.setMessage(message)
237237
.setPositiveButton(R.string.login_error_button, null)
238238
.create();

libs/login/src/main/java/org/wordpress/android/login/SignupMagicLinkFragment.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import android.content.Context;
55
import android.content.DialogInterface;
66
import android.os.Bundle;
7-
import android.view.ContextThemeWrapper;
87
import android.view.LayoutInflater;
98
import android.view.Menu;
109
import android.view.MenuInflater;
@@ -20,6 +19,8 @@
2019
import androidx.appcompat.widget.Toolbar;
2120
import androidx.fragment.app.Fragment;
2221

22+
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
23+
2324
import org.greenrobot.eventbus.Subscribe;
2425
import org.greenrobot.eventbus.ThreadMode;
2526
import org.wordpress.android.fluxc.Dispatcher;
@@ -231,7 +232,7 @@ public void onClick(DialogInterface dialog, int which) {
231232
}
232233
};
233234

234-
AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme))
235+
AlertDialog dialog = new MaterialAlertDialogBuilder(getActivity())
235236
.setMessage(message)
236237
.setNegativeButton(R.string.signup_magic_link_error_button_negative, dialogListener)
237238
.setPositiveButton(R.string.signup_magic_link_error_button_positive, dialogListener)

libs/login/src/main/java/org/wordpress/android/login/widgets/WPBottomSheetDialogFragment.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
import org.wordpress.android.login.R;
1717

1818
public class WPBottomSheetDialogFragment extends BottomSheetDialogFragment {
19-
@Override
20-
public int getTheme() {
21-
return R.style.LoginTheme_BottomSheetDialogStyle;
22-
}
23-
2419
@NonNull
2520
@Override
2621
public Dialog onCreateDialog(Bundle savedInstanceState) {

0 commit comments

Comments
 (0)