diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginEpilogueFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginEpilogueFragment.java index f8f11b68c5d0..9b6caa6a0dd9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginEpilogueFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginEpilogueFragment.java @@ -18,12 +18,12 @@ import org.wordpress.android.R; import org.wordpress.android.WordPress; import org.wordpress.android.analytics.AnalyticsTracker; +import org.wordpress.android.fluxc.model.AccountModel; import org.wordpress.android.fluxc.model.SiteModel; import org.wordpress.android.login.LoginBaseFormFragment; import org.wordpress.android.ui.main.SitePickerAdapter; import org.wordpress.android.ui.main.SitePickerAdapter.SiteList; import org.wordpress.android.ui.main.SitePickerAdapter.ViewHolderHandler; -import org.wordpress.android.util.GravatarUtils; import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.analytics.AnalyticsUtils; import org.wordpress.android.util.image.ImageManager; @@ -209,26 +209,22 @@ private void bindHeaderViewHolder(LoginHeaderViewHolder holder, SiteList sites) } final boolean isWpcom = mAccountStore.hasAccessToken(); + final boolean hasSites = sites.size() != 0; if (isWpcom) { - holder.updateLoggedInAsHeading(getContext(), mImageManager, mAccountStore.getAccount()); - } else if (sites.size() != 0) { - SiteModel site = mSiteStore.getSiteByLocalId(sites.get(0).getLocalId()); - int avatarSz = getResources().getDimensionPixelSize(R.dimen.avatar_sz_large); - - String avatarUrl = GravatarUtils.gravatarFromEmail(site.getEmail(), avatarSz); - String username = site.getUsername(); - String displayName = site.getDisplayName(); - - holder.updateLoggedInAsHeading(getContext(), mImageManager, avatarUrl, username, displayName); + final AccountModel account = mAccountStore.getAccount(); + holder.updateLoggedInAsHeading(getContext(), mImageManager, account); + } else if (hasSites) { + final SiteModel site = mSiteStore.getSiteByLocalId(sites.get(0).getLocalId()); + holder.updateLoggedInAsHeading(getContext(), mImageManager, site); } - if (sites.size() == 0) { - holder.hideSitesHeading(); - } else { + if (hasSites) { holder.showSitesHeading(StringUtils.getQuantityString( getActivity(), R.string.login_epilogue_mysites_one, R.string.login_epilogue_mysites_one, R.string.login_epilogue_mysites_other, sites.size())); + } else { + holder.hideSitesHeading(); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginHeaderViewHolder.java b/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginHeaderViewHolder.java index 1eadc7a37f80..300a7a2b0982 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginHeaderViewHolder.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginHeaderViewHolder.java @@ -10,21 +10,23 @@ import org.wordpress.android.R; import org.wordpress.android.fluxc.model.AccountModel; +import org.wordpress.android.fluxc.model.SiteModel; import org.wordpress.android.util.GravatarUtils; import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.image.ImageManager; -import org.wordpress.android.util.image.ImageType; + +import static org.wordpress.android.util.image.ImageType.AVATAR_WITHOUT_BACKGROUND; /** * ViewHolder for a RecyclerView header used on screens shown after a user logs in. */ -public class LoginHeaderViewHolder extends RecyclerView.ViewHolder { +class LoginHeaderViewHolder extends RecyclerView.ViewHolder { private final ImageView mAvatarImageView; private final TextView mDisplayNameTextView; private final TextView mUsernameTextView; private final TextView mMySitesHeadingTextView; - public LoginHeaderViewHolder(View view) { + LoginHeaderViewHolder(View view) { super(view); mAvatarImageView = view.findViewById(R.id.avatar); mDisplayNameTextView = view.findViewById(R.id.display_name); @@ -32,15 +34,23 @@ public LoginHeaderViewHolder(View view) { mMySitesHeadingTextView = view.findViewById(R.id.my_sites_heading); } - public void updateLoggedInAsHeading(Context context, ImageManager imageManager, AccountModel defaultAccount) { - updateLoggedInAsHeading(context, imageManager, constructGravatarUrl(context, defaultAccount), - defaultAccount.getUserName(), defaultAccount.getDisplayName()); + void updateLoggedInAsHeading(Context context, ImageManager imageManager, AccountModel account) { + final String avatarUrl = constructGravatarUrl(context, account); + final String username = account.getUserName(); + final String displayName = account.getDisplayName(); + updateLoggedInAsHeading(imageManager, avatarUrl, username, displayName); + } + + void updateLoggedInAsHeading(Context context, ImageManager imageManager, SiteModel site) { + final String avatarUrl = constructGravatarUrl(context, site); + final String username = site.getUsername(); + final String displayName = site.getDisplayName(); + updateLoggedInAsHeading(imageManager, avatarUrl, username, displayName); } - public void updateLoggedInAsHeading(Context context, ImageManager imageManager, String avatarUrl, String username, - String displayName) { - imageManager.loadIntoCircle(mAvatarImageView, ImageType.AVATAR_WITHOUT_BACKGROUND, - StringUtils.notNullStr(avatarUrl)); + void updateLoggedInAsHeading(ImageManager imageManager, String avatarUrl, String username, String displayName) { + imageManager.loadIntoCircle(mAvatarImageView, AVATAR_WITHOUT_BACKGROUND, StringUtils.notNullStr(avatarUrl)); + mUsernameTextView.setText(username); if (!TextUtils.isEmpty(displayName)) { @@ -50,17 +60,24 @@ public void updateLoggedInAsHeading(Context context, ImageManager imageManager, } } - public void showSitesHeading(String text) { + void showSitesHeading(String text) { mMySitesHeadingTextView.setVisibility(View.VISIBLE); mMySitesHeadingTextView.setText(text); } - public void hideSitesHeading() { + void hideSitesHeading() { mMySitesHeadingTextView.setVisibility(View.GONE); } + private int getAvatarSize(Context context) { + return context.getResources().getDimensionPixelSize(R.dimen.avatar_sz_large); + } + private String constructGravatarUrl(Context context, AccountModel account) { - int avatarSz = context.getResources().getDimensionPixelSize(R.dimen.avatar_sz_large); - return GravatarUtils.fixGravatarUrl(account.getAvatarUrl(), avatarSz); + return GravatarUtils.fixGravatarUrl(account.getAvatarUrl(), getAvatarSize(context)); + } + + private String constructGravatarUrl(Context context, SiteModel site) { + return GravatarUtils.gravatarFromEmail(site.getEmail(), getAvatarSize(context)); } }