diff --git a/WordPress/src/jetpack/res/drawable-night/ic_logo_plus_gravatar.xml b/WordPress/src/jetpack/res/drawable-night/ic_logo_plus_gravatar.xml
new file mode 100644
index 000000000000..466aaf0e0ff3
--- /dev/null
+++ b/WordPress/src/jetpack/res/drawable-night/ic_logo_plus_gravatar.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
diff --git a/WordPress/src/jetpack/res/drawable/ic_logo_plus_gravatar.xml b/WordPress/src/jetpack/res/drawable/ic_logo_plus_gravatar.xml
new file mode 100644
index 000000000000..d7d7e4bac4ac
--- /dev/null
+++ b/WordPress/src/jetpack/res/drawable/ic_logo_plus_gravatar.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt
index 0528ccae8684..347e700f21d3 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt
@@ -200,6 +200,12 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener {
rowSupport.setOnClickListener {
ActivityLauncher.viewHelp(requireContext(), ME_SCREEN_HELP, viewModel.getSite(), null)
}
+ learnMoreAtGravatar.setOnClickListener {
+ ActivityLauncher.openUrlExternal(activity, GRAVATAR_URL)
+ }
+ gravatarSyncView.gravatarSyncButton.setOnClickListener {
+ gravatarSyncView.gravatarSyncContainer.visibility = View.GONE
+ }
if (BuildConfig.IS_JETPACK_APP) meAboutIcon.setImageResource(R.drawable.ic_jetpack_logo_white_24dp)
@@ -691,6 +697,7 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener {
if (event.success) {
AnalyticsTracker.track(ME_GRAVATAR_UPLOADED)
binding?.loadAvatar(event.filePath)
+ binding?.gravatarSyncView?.gravatarSyncContainer?.visibility = View.VISIBLE
} else {
ToastUtils.showToast(
activity,
@@ -709,6 +716,7 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener {
companion object {
private const val IS_DISCONNECTING = "IS_DISCONNECTING"
private const val IS_UPDATING_GRAVATAR = "IS_UPDATING_GRAVATAR"
+ private const val GRAVATAR_URL = "https://www.gravatar.com";
fun newInstance(): MeFragment {
return MeFragment()
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java
index e9b9b1dd5181..d880322609a2 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java
@@ -5,6 +5,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.Nullable;
@@ -37,6 +38,8 @@ public class MyProfileFragment extends Fragment implements TextInputDialogFragme
private WPTextView mLastName;
private WPTextView mDisplayName;
private WPTextView mAboutMe;
+ private Button mGravatarSyncButton;
+ private View mGravatarSyncContainer;
@Inject Dispatcher mDispatcher;
@Inject AccountStore mAccountStore;
@@ -85,6 +88,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
mLastName = rootView.findViewById(R.id.last_name);
mDisplayName = rootView.findViewById(R.id.display_name);
mAboutMe = rootView.findViewById(R.id.about_me);
+ mGravatarSyncButton = rootView.findViewById(R.id.gravatar_sync_button);
+ mGravatarSyncContainer = rootView.findViewById(R.id.gravatar_sync_container);
rootView.findViewById(R.id.first_name_row).setOnClickListener(
createOnClickListener(
@@ -110,6 +115,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
getString(R.string.about_me_hint),
mAboutMe,
true));
+ mGravatarSyncButton.setOnClickListener(v -> mGravatarSyncContainer.setVisibility(View.GONE));
return rootView;
}
@@ -174,6 +180,7 @@ private void updateMyProfileForLabel(TextView textView) {
payload.params.put(restParamForTextView(textView), textView.getText().toString());
mDispatcher.dispatch(AccountActionBuilder.newPushSettingsAction(payload));
trackSettingsDidChange(restParamForTextView(textView));
+ mGravatarSyncContainer.setVisibility(View.VISIBLE);
}
private void trackSettingsDidChange(String fieldName) {
diff --git a/WordPress/src/main/res/drawable/bg_wordpress_gravatar_info.xml b/WordPress/src/main/res/drawable/bg_wordpress_gravatar_info.xml
new file mode 100644
index 000000000000..f9b6826d3195
--- /dev/null
+++ b/WordPress/src/main/res/drawable/bg_wordpress_gravatar_info.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/WordPress/src/main/res/drawable/bg_wordpress_gravatar_sync_info.xml b/WordPress/src/main/res/drawable/bg_wordpress_gravatar_sync_info.xml
new file mode 100644
index 000000000000..0920b9a9a1af
--- /dev/null
+++ b/WordPress/src/main/res/drawable/bg_wordpress_gravatar_sync_info.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/WordPress/src/main/res/layout/gravatar_sync_info_banner.xml b/WordPress/src/main/res/layout/gravatar_sync_info_banner.xml
new file mode 100644
index 000000000000..4a3d104edd90
--- /dev/null
+++ b/WordPress/src/main/res/layout/gravatar_sync_info_banner.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
diff --git a/WordPress/src/main/res/layout/me_fragment.xml b/WordPress/src/main/res/layout/me_fragment.xml
index 0661d0dc88b1..14a5ba98377e 100644
--- a/WordPress/src/main/res/layout/me_fragment.xml
+++ b/WordPress/src/main/res/layout/me_fragment.xml
@@ -238,7 +238,7 @@
android:id="@+id/me_design_system_settings"
style="@style/MeListRowTextView"
android:text="@string/preference_design_system" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WordPress/src/main/res/layout/my_profile_fragment.xml b/WordPress/src/main/res/layout/my_profile_fragment.xml
index c18f9810d3c1..5cf6c337bf60 100644
--- a/WordPress/src/main/res/layout/my_profile_fragment.xml
+++ b/WordPress/src/main/res/layout/my_profile_fragment.xml
@@ -1,79 +1,103 @@
-
+ android:layout_height="match_parent"
+ android:animateLayoutChanges="true">
-
+ android:layout_height="0dp"
+ android:layout_marginBottom="@dimen/margin_small"
+ app:layout_constraintBottom_toTopOf="@+id/gravatar_sync_container"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
+
-
-
+
+
diff --git a/WordPress/src/main/res/values-night/colors.xml b/WordPress/src/main/res/values-night/colors.xml
index 4fed9a9fe846..ff2b633e7bde 100644
--- a/WordPress/src/main/res/values-night/colors.xml
+++ b/WordPress/src/main/res/values-night/colors.xml
@@ -115,4 +115,8 @@
@color/black
@color/white
+
+ #1C1C1E
+ #2C2C2E
+
diff --git a/WordPress/src/main/res/values-night/styles.xml b/WordPress/src/main/res/values-night/styles.xml
index 686c482b8cf9..54e8280b64c1 100644
--- a/WordPress/src/main/res/values-night/styles.xml
+++ b/WordPress/src/main/res/values-night/styles.xml
@@ -30,6 +30,9 @@
- @color/background_dark_elevated
- ?attr/colorSurface
+ - @color/gravatar_info_banner
+ - @color/gravatar_sync_info_banner
+
- @color/material_on_surface_emphasis_medium
- ?attr/colorPrimary
- @color/on_surface_emphasis_lowest_disabled
diff --git a/WordPress/src/main/res/values/attrs.xml b/WordPress/src/main/res/values/attrs.xml
index c6eec240f04c..4c496caa5e9c 100644
--- a/WordPress/src/main/res/values/attrs.xml
+++ b/WordPress/src/main/res/values/attrs.xml
@@ -22,6 +22,10 @@
+
+
+
+
diff --git a/WordPress/src/main/res/values/colors.xml b/WordPress/src/main/res/values/colors.xml
index 808a85d7e5d7..4314ae121e4c 100644
--- a/WordPress/src/main/res/values/colors.xml
+++ b/WordPress/src/main/res/values/colors.xml
@@ -150,4 +150,8 @@
#DEDEDE
+
+ #F2F2F7
+ #2C2C2E
+
diff --git a/WordPress/src/main/res/values/dimens.xml b/WordPress/src/main/res/values/dimens.xml
index 80496b1f890f..f67241180b4f 100644
--- a/WordPress/src/main/res/values/dimens.xml
+++ b/WordPress/src/main/res/values/dimens.xml
@@ -763,4 +763,5 @@
4dp
24dp
4dp
+
diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml
index f7531852e2c6..dc4df0c3b0cc 100644
--- a/WordPress/src/main/res/values/strings.xml
+++ b/WordPress/src/main/res/values/strings.xml
@@ -2869,6 +2869,11 @@
You have active premium upgrades on your site. Please cancel your upgrades prior to deleting your site.
Show purchases
Checking purchases
+ Your WordPress.com profile is powered by Gravatar
+ Updating your avatar, name, and about info here will also update it across all sites that use Gravatar profiles.
+ What is Gravatar?
+ Updates might take some time to sync with your Gravatar profile.
+ Done
Account Settings
diff --git a/WordPress/src/main/res/values/styles.xml b/WordPress/src/main/res/values/styles.xml
index 6166eb13334b..de43d8f78c93 100644
--- a/WordPress/src/main/res/values/styles.xml
+++ b/WordPress/src/main/res/values/styles.xml
@@ -49,6 +49,9 @@
- @color/neutral_5
- @color/blue_0
+ - @color/gravatar_info_banner
+ - @color/gravatar_sync_info_banner
+
- @color/wp_grey_lighten_30
- @android:color/white
diff --git a/WordPress/src/wordpress/res/drawable-night/ic_logo_plus_gravatar.xml b/WordPress/src/wordpress/res/drawable-night/ic_logo_plus_gravatar.xml
new file mode 100644
index 000000000000..0bb208c0899c
--- /dev/null
+++ b/WordPress/src/wordpress/res/drawable-night/ic_logo_plus_gravatar.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
diff --git a/WordPress/src/wordpress/res/drawable/ic_logo_plus_gravatar.xml b/WordPress/src/wordpress/res/drawable/ic_logo_plus_gravatar.xml
new file mode 100644
index 000000000000..ab99e681d54d
--- /dev/null
+++ b/WordPress/src/wordpress/res/drawable/ic_logo_plus_gravatar.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+