Skip to content

Commit c6f7f9d

Browse files
authored
Feature/material theme and Dark Theme support (#11469)
1 parent 70553f7 commit c6f7f9d

31 files changed

+504
-588
lines changed

vendored/WordPressLoginFlow/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

vendored/WordPressLoginFlow/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();

vendored/WordPressLoginFlow/src/main/java/org/wordpress/android/login/LoginEmailFragment.java

Lines changed: 2 additions & 2 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;
@@ -383,7 +383,7 @@ private void showEmailError(int messageId) {
383383
}
384384

385385
private void showErrorDialog(String message) {
386-
AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.LoginTheme))
386+
AlertDialog dialog = new MaterialAlertDialogBuilder(getActivity())
387387
.setMessage(message)
388388
.setPositiveButton(R.string.login_error_button, null)
389389
.create();

vendored/WordPressLoginFlow/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

vendored/WordPressLoginFlow/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

vendored/WordPressLoginFlow/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

vendored/WordPressLoginFlow/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();

vendored/WordPressLoginFlow/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)

vendored/WordPressLoginFlow/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) {

vendored/WordPressLoginFlow/src/main/java/org/wordpress/android/login/widgets/WPLoginInputRow.java

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package org.wordpress.android.login.widgets;
22

33
import android.content.Context;
4-
import android.content.res.ColorStateList;
54
import android.content.res.TypedArray;
6-
import android.graphics.PorterDuff;
7-
import android.graphics.drawable.Drawable;
85
import android.os.Build;
96
import android.os.Bundle;
107
import android.os.Parcel;
@@ -13,16 +10,12 @@
1310
import android.util.AttributeSet;
1411
import android.util.SparseArray;
1512
import android.view.KeyEvent;
16-
import android.view.View;
1713
import android.view.inputmethod.EditorInfo;
1814
import android.widget.EditText;
19-
import android.widget.ImageView;
2015
import android.widget.RelativeLayout;
2116
import android.widget.TextView;
2217

2318
import androidx.annotation.Nullable;
24-
import androidx.core.content.ContextCompat;
25-
import androidx.core.graphics.drawable.DrawableCompat;
2619

2720
import com.google.android.material.textfield.TextInputLayout;
2821

@@ -38,14 +31,9 @@ public interface OnEditorCommitListener {
3831
void onEditorCommit();
3932
}
4033

41-
private ImageView mIcon;
4234
private TextInputLayout mTextInputLayout;
4335
private EditText mEditText;
4436

45-
public ImageView getIcon() {
46-
return mIcon;
47-
}
48-
4937
public EditText getEditText() {
5038
return mEditText;
5139
}
@@ -68,35 +56,13 @@ public WPLoginInputRow(Context context, AttributeSet attrs, int defStyle) {
6856
private void init(Context context, AttributeSet attrs) {
6957
inflate(context, R.layout.login_input_row, this);
7058

71-
mIcon = findViewById(R.id.icon);
7259
mTextInputLayout = findViewById(R.id.input_layout);
7360
mEditText = findViewById(R.id.input);
7461

7562
if (attrs != null) {
7663
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.wpLoginInputRow, 0, 0);
7764

7865
try {
79-
if (a.hasValue(R.styleable.wpLoginInputRow_wpIconDrawable)) {
80-
int iconResId = a.getResourceId(R.styleable.wpLoginInputRow_wpIconDrawable,
81-
R.drawable.ic_user_grey_24dp);
82-
int tintResId = a.getResourceId(R.styleable.wpLoginInputRow_wpIconDrawableTint,
83-
R.color.login_input_icon_color);
84-
85-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
86-
mIcon.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(context, tintResId)));
87-
mIcon.setImageResource(iconResId);
88-
} else {
89-
Drawable drawable = context.getResources().getDrawable(iconResId);
90-
DrawableCompat.setTint(drawable, context.getResources().getColor(tintResId));
91-
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN);
92-
mIcon.setImageDrawable(drawable);
93-
}
94-
95-
mIcon.setVisibility(View.VISIBLE);
96-
} else {
97-
mIcon.setVisibility(View.GONE);
98-
}
99-
10066
if (a.hasValue(R.styleable.wpLoginInputRow_android_inputType)) {
10167
mEditText.setInputType(a.getInteger(R.styleable.wpLoginInputRow_android_inputType, 0));
10268
}
@@ -112,16 +78,11 @@ private void init(Context context, AttributeSet attrs) {
11278
// Makes the hint transparent, so the TalkBack can read it, when the field is prefilled
11379
mEditText.setHintTextColor(getResources().getColor(android.R.color.transparent));
11480
}
115-
11681
if (a.hasValue(R.styleable.wpLoginInputRow_passwordToggleEnabled)) {
11782
mTextInputLayout.setPasswordVisibilityToggleEnabled(
11883
a.getBoolean(R.styleable.wpLoginInputRow_passwordToggleEnabled, false));
11984
}
12085

121-
if (a.hasValue(R.styleable.wpLoginInputRow_passwordToggleTint)) {
122-
mTextInputLayout.setPasswordVisibilityToggleTintList(
123-
a.getColorStateList(R.styleable.wpLoginInputRow_passwordToggleTint));
124-
}
12586
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
12687
if (a.hasValue(R.styleable.wpLoginInputRow_android_textAlignment)) {
12788
mEditText.setTextAlignment(
@@ -184,8 +145,8 @@ public void setOnEditorCommitListener(final OnEditorCommitListener listener) {
184145
@Override
185146
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
186147
if (actionId == EditorInfo.IME_ACTION_DONE
187-
|| actionId == EditorInfo.IME_ACTION_NEXT
188-
|| (event != null
148+
|| actionId == EditorInfo.IME_ACTION_NEXT
149+
|| (event != null
189150
&& event.getAction() == KeyEvent.ACTION_UP
190151
&& event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
191152
listener.onEditorCommit();

0 commit comments

Comments
 (0)