diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt index 5add1ebb9a5f..294af46295e8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt @@ -96,6 +96,8 @@ class WPMainNavigationView @JvmOverloads constructor( get() = getPageForItemId(navigationBarView.selectedItemId) set(pageType) = updateCurrentPosition(pages().indexOf(pageType)) + private var gravatarLoaded = false + interface OnPageListener { fun onPageChanged(position: Int) fun onNewPostButtonClicked(promptId: Int, origin: EntryPoint) @@ -145,7 +147,7 @@ class WPMainNavigationView @JvmOverloads constructor( } } - if(getMainPageIndex() != getPosition(ME)) { + if (getMainPageIndex() != getPosition(ME)) { setImageViewSelected(getPosition(ME), false) } @@ -168,6 +170,7 @@ class WPMainNavigationView @JvmOverloads constructor( ImageType.USER, object : ImageManager.RequestListener { override fun onLoadFailed(e: Exception?, model: Any?) { + gravatarLoaded = false val appLogMessage = "onLoadFailed while loading Gravatar image!" if (e == null) { AppLog.e( @@ -184,6 +187,7 @@ class WPMainNavigationView @JvmOverloads constructor( } override fun onResourceReady(resource: android.graphics.drawable.Drawable, model: Any?) { + gravatarLoaded = true ImageViewCompat.setImageTintList(imgIcon, null) if (resource is BitmapDrawable) { var bitmap = resource.bitmap @@ -304,16 +308,18 @@ class WPMainNavigationView @JvmOverloads constructor( private fun setImageViewSelected(position: Int, isSelected: Boolean) { getImageViewForPosition(position)?.let { - if(position == getPosition(ME)) { - if(!isSelected){ + // Only change the saturation if we have loaded a Gravatar image + if (position == getPosition(ME) && gravatarLoaded) { + if (!isSelected) { it.colorFilter = disabledColorFilter - } else + } else { it.colorFilter = enabledColorFilter + } } it.isSelected = isSelected it.alpha = if (isSelected) 1f else unselectedButtonAlpha - if(it.isSelected) { + if (it.isSelected) { val pop = AnimationUtils.loadAnimation(it.context, R.anim.bottom_nav_icon_pop) it.startAnimation(pop) } diff --git a/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt b/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt index 11d5fcb7dd1f..b7b69a57bf59 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt @@ -443,12 +443,18 @@ class ImageManager @Inject constructor( * Loads the Bitmap into the ImageView. */ @JvmOverloads - fun load(imageView: ImageView, bitmap: Bitmap, scaleType: ScaleType = CENTER) { + fun load( + imageView: ImageView, + bitmap: Bitmap, + scaleType: ScaleType = CENTER, + requestListener: RequestListener? = null + ) { val context = imageView.context if (!context.isAvailable()) return Glide.with(context) .load(bitmap) .applyScaleType(scaleType) + .attachRequestListener(requestListener) .into(imageView) .clearOnDetach() }