Bug 1857168 - Hide empty metadata in the add-on details view

fenix/120.0
William Durand 9 months ago committed by mergify[bot]
parent 135514b69e
commit a55c358bcb

@ -13,6 +13,7 @@ import android.view.View
import androidx.core.net.toUri
import androidx.core.text.HtmlCompat
import androidx.core.text.getSpans
import androidx.core.view.isVisible
import mozilla.components.feature.addons.Addon
import mozilla.components.feature.addons.ui.translateDescription
import mozilla.components.feature.addons.ui.updatedAtDate
@ -68,12 +69,25 @@ class AddonDetailsBindingDelegate(
}
private fun bindWebsite(addon: Addon) {
if (addon.siteUrl.isBlank()) {
binding.homePageLabel.isVisible = false
binding.homePageDivider.isVisible = false
return
}
binding.homePageLabel.setOnClickListener {
interactor.openWebsite(addon.siteUrl.toUri())
}
}
private fun bindLastUpdated(addon: Addon) {
if (addon.updatedAt.isBlank()) {
binding.lastUpdatedLabel.isVisible = false
binding.lastUpdatedText.isVisible = false
binding.lastUpdatedDivider.isVisible = false
return
}
binding.lastUpdatedText.text = dateFormatter.format(addon.updatedAtDate)
}
@ -95,6 +109,13 @@ class AddonDetailsBindingDelegate(
}
private fun bindAuthors(addon: Addon) {
if (addon.authors.isEmpty()) {
binding.authorLabel.isVisible = false
binding.authorText.isVisible = false
binding.authorDivider.isVisible = false
return
}
binding.authorText.text = addon.authors.joinToString { author -> author.name }.trim()
}

@ -8,11 +8,13 @@ import android.net.Uri
import android.text.method.LinkMovementMethod
import android.view.LayoutInflater
import android.view.View
import androidx.core.view.isVisible
import io.mockk.mockk
import io.mockk.verify
import mozilla.components.feature.addons.Addon
import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
@ -137,4 +139,30 @@ class AddonDetailsBindingDelegateTest {
)
assertTrue(binding.details.movementMethod is LinkMovementMethod)
}
@Test
fun `bind without last updated date`() {
detailsBindingDelegate.bind(baseAddon.copy(updatedAt = ""))
assertFalse(binding.lastUpdatedLabel.isVisible)
assertFalse(binding.lastUpdatedText.isVisible)
assertFalse(binding.lastUpdatedDivider.isVisible)
}
@Test
fun `bind without authors`() {
detailsBindingDelegate.bind(baseAddon.copy(authors = emptyList()))
assertFalse(binding.authorLabel.isVisible)
assertFalse(binding.authorText.isVisible)
assertFalse(binding.authorDivider.isVisible)
}
@Test
fun `bind without a home page`() {
detailsBindingDelegate.bind(baseAddon.copy(siteUrl = ""))
assertFalse(binding.homePageLabel.isVisible)
assertFalse(binding.homePageDivider.isVisible)
}
}

Loading…
Cancel
Save