Skip to content

Commit

Permalink
Merge pull request #20137 from wordpress-mobile/issue/20126-Show-the-…
Browse files Browse the repository at this point in the history
…site-URL-when-the-title-is-Empty/Untitled

[Reader] Make sure to Show the "site URL" when the title is Empty/Untitled
  • Loading branch information
daniloercoli authored Feb 7, 2024
2 parents 06ab0d7 + 56d0d8c commit 2f0f5e0
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (blogInfo.hasName()) {
blogHolder.mTxtTitle.setText(blogInfo.getName());
} else {
blogHolder.mTxtTitle.setText(R.string.reader_untitled_post);
blogHolder.mTxtTitle.setText(UrlUtils.getHost(blogInfo.getUrl()));
}
if (blogInfo.hasUrl()) {
blogHolder.mTxtUrl.setText(UrlUtils.getHost(blogInfo.getUrl()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,9 @@ class ReaderPostUiStateBuilder @Inject constructor(

private fun buildBlogName(post: ReaderPost, isP2Post: Boolean = false): UiString {
val blogName = post.takeIf { it.hasBlogName() }?.blogName?.let { UiStringText(it) }
?:post.takeIf { it.hasBlogUrl() }
?.blogUrl
?.let { UiStringText(urlUtilsWrapper.removeScheme(it)) }
?: UiStringRes(R.string.untitled_in_parentheses)

if (!isP2Post) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import org.wordpress.android.analytics.AnalyticsTracker.Stat
import org.wordpress.android.datasets.ReaderBlogTable
import org.wordpress.android.datasets.ReaderTagTable
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.models.ReaderBlog
import org.wordpress.android.models.ReaderTag
import org.wordpress.android.modules.BG_THREAD
import org.wordpress.android.modules.UI_THREAD
Expand All @@ -32,9 +33,12 @@ import org.wordpress.android.ui.utils.UiString.UiStringRes
import org.wordpress.android.util.AppLog
import org.wordpress.android.util.AppLog.T
import org.wordpress.android.util.EventBusWrapper
import org.wordpress.android.util.StringUtils
import org.wordpress.android.util.UrlUtils
import org.wordpress.android.viewmodel.Event
import org.wordpress.android.viewmodel.ScopedViewModel
import org.wordpress.android.viewmodel.SingleLiveEvent
import java.util.Comparator
import java.util.EnumSet
import javax.inject.Inject
import javax.inject.Named
Expand Down Expand Up @@ -110,6 +114,17 @@ class SubFilterViewModel @Inject constructor(
}
}

private fun getBlogNameForComparison(blog: ReaderBlog?): String {
return if (blog == null) {
""
} else if (blog.hasName()) {
blog.name
} else if (blog.hasUrl()) {
StringUtils.notNullStr(UrlUtils.getHost(blog.url))
} else {
""
}
}
fun loadSubFilters() {
launch {
val filterList = ArrayList<SubfilterListItem>()
Expand All @@ -124,7 +139,12 @@ class SubFilterViewModel @Inject constructor(
blog.organizationId == organization.orgId
} ?: false
}
}
}.sortedWith(Comparator { blog1, blog2 ->
// sort followed blogs by name/domain to match display
val blogOneName = getBlogNameForComparison(blog1)
val blogTwoName = getBlogNameForComparison(blog2)
blogOneName.compareTo(blogTwoName, true)
})

filterList.addAll(
followedBlogs.map { blog ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import org.wordpress.android.ui.reader.subfilter.SubfilterListItem.ItemType.TAG
import org.wordpress.android.ui.utils.UiString
import org.wordpress.android.ui.utils.UiString.UiStringRes
import org.wordpress.android.ui.utils.UiString.UiStringText
import org.wordpress.android.util.UrlUtils

sealed class SubfilterListItem(val type: ItemType, val isTrackedItem: Boolean = false) {
open var isSelected: Boolean = false
Expand Down Expand Up @@ -68,7 +69,8 @@ sealed class SubfilterListItem(val type: ItemType, val isTrackedItem: Boolean =
override val label: UiString = if (blog.name.isNotEmpty()) {
UiStringText(blog.name)
} else {
UiStringRes(R.string.reader_untitled_post)
if (blog.url.isNotEmpty()) UiStringText(UrlUtils.getHost(blog.url))
else UiStringRes(R.string.reader_untitled_post)
}
val showUnseenCount: Boolean = blog.numUnseenPosts > 0
val unseenCount: Int = blog.numUnseenPosts
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import org.wordpress.android.ui.utils.UiString.UiStringText
import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.QuickStartUtils
import org.wordpress.android.util.SnackbarSequencer
import org.wordpress.android.util.UrlUtilsWrapper
import org.wordpress.android.util.distinct
import org.wordpress.android.viewmodel.Event
import org.wordpress.android.viewmodel.ScopedViewModel
Expand All @@ -75,6 +76,7 @@ class ReaderViewModel @Inject constructor(
private val snackbarSequencer: SnackbarSequencer,
private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil,
private val readerTopBarMenuHelper: ReaderTopBarMenuHelper,
private val urlUtilsWrapper: UrlUtilsWrapper,
// todo: annnmarie removed this private val getFollowedTagsUseCase: GetFollowedTagsUseCase
) : ScopedViewModel(mainDispatcher) {
private var initialized: Boolean = false
Expand Down Expand Up @@ -385,7 +387,8 @@ class ReaderViewModel @Inject constructor(
fun onSubFilterItemSelected(item: SubfilterListItem) {
when (item) {
is SubfilterListItem.SiteAll -> clearTopBarFilter()
is SubfilterListItem.Site -> updateTopBarFilter(item.blog.name, ReaderFilterType.BLOG)
is SubfilterListItem.Site -> updateTopBarFilter(item.blog.name
.ifEmpty { urlUtilsWrapper.removeScheme(item.blog.url.ifEmpty { "" }) }, ReaderFilterType.BLOG)
is SubfilterListItem.Tag -> updateTopBarFilter(item.tag.tagDisplayName, ReaderFilterType.TAG)
else -> Unit // do nothing
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,11 @@ private void showBlogInfo(ReaderBlog blogInfo, String source) {
if (blogInfo.hasName()) {
txtBlogName.setText(blogInfo.getName());
} else {
txtBlogName.setText(R.string.reader_untitled_post);
if (blogInfo.getUrl() != null) {
txtBlogName.setText(UrlUtils.getHost(blogInfo.getUrl()));
} else {
txtBlogName.setText(R.string.reader_untitled_post);
}
}

if (blogInfo.hasUrl()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import org.wordpress.android.ui.reader.viewmodels.ReaderViewModel.ReaderUiState.
import org.wordpress.android.ui.reader.viewmodels.ReaderViewModel.TopBarUiState
import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.SnackbarSequencer
import org.wordpress.android.util.UrlUtilsWrapper
import org.wordpress.android.viewmodel.Event
import java.util.Date

Expand Down Expand Up @@ -90,6 +91,8 @@ class ReaderViewModelTest : BaseUnitTest() {
private val emptyReaderTagList = ReaderTagList()
private val nonEmptyReaderTagList = createNonMockedNonEmptyReaderTagList()

private val urlUtilsWrapper = UrlUtilsWrapper()

@Before
fun setup() {
viewModel = ReaderViewModel(
Expand All @@ -106,6 +109,7 @@ class ReaderViewModelTest : BaseUnitTest() {
snackbarSequencer,
jetpackFeatureRemovalOverlayUtil,
readerTopBarMenuHelper,
urlUtilsWrapper
)

whenever(dateProvider.getCurrentDate()).thenReturn(Date(DUMMY_CURRENT_TIME))
Expand Down

0 comments on commit 2f0f5e0

Please sign in to comment.