1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

Droid 1083 Widgets | Fix | Description key is missing for list-layout widgets (#3024)

This commit is contained in:
Evgenii Kozlov 2023-03-21 13:48:07 +01:00 committed by GitHub
parent 49cfae9411
commit e47e05526a
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 82 additions and 40 deletions

View file

@ -186,7 +186,7 @@ fun ListWidgetElement(
Modifier
)
) {
val hasDescription = obj.description?.isNotEmpty() ?: false
val hasDescription = !obj.description.isNullOrEmpty()
val hasIcon = icon != ObjectIcon.None && icon !is ObjectIcon.Basic.Avatar
val name = obj.name?.trim()?.orNull()
val snippet = obj.snippet?.trim().orNull()

View file

@ -4,6 +4,7 @@ import com.anytypeio.anytype.core_models.DV
import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_models.ObjectView
import com.anytypeio.anytype.core_models.ObjectWrapper
import com.anytypeio.anytype.core_models.Relations
import com.anytypeio.anytype.core_models.ext.content
import com.anytypeio.anytype.domain.library.StoreSearchParams
import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer
@ -117,7 +118,11 @@ class DataViewListWidgetContainer(
return StoreSearchParams(
subscription = widget.id,
sorts = view.sorts,
keys = defaultKeys + dataViewKeys,
keys = buildList {
addAll(defaultKeys)
addAll(dataViewKeys)
add(Relations.DESCRIPTION)
}.distinct(),
filters = buildList {
addAll(view.filters)
addAll(ObjectSearchConstants.defaultDataViewFilters())

View file

@ -1,6 +1,7 @@
package com.anytypeio.anytype.presentation.widgets
import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_models.Relations
import com.anytypeio.anytype.domain.library.StoreSearchParams
import com.anytypeio.anytype.domain.library.StorelessSubscriptionContainer
import com.anytypeio.anytype.domain.misc.UrlBuilder
@ -24,10 +25,8 @@ class ListWidgetContainer(
) : WidgetContainer {
override val view: Flow<WidgetView> = isSessionActive.flatMapLatest { isActive ->
if (isActive)
buildViewFlow()
else
emptyFlow()
if (isActive) buildViewFlow()
else emptyFlow()
}
private fun buildViewFlow() = isWidgetCollapsed.flatMapLatest { isCollapsed ->
@ -49,8 +48,7 @@ class ListWidgetContainer(
type = resolveType(),
elements = objects.map { obj ->
WidgetView.ListOfObjects.Element(
obj = obj,
icon = ObjectIcon.from(
obj = obj, icon = ObjectIcon.from(
obj = obj,
layout = obj.layout,
builder = urlBuilder
@ -63,7 +61,11 @@ class ListWidgetContainer(
}
}
private fun buildParams() = params(subscription = subscription, workspace = workspace)
private fun buildParams() = params(
subscription = subscription,
workspace = workspace,
keys = keys
)
private fun resolveType() = when (subscription) {
BundledWidgetSourceIds.RECENT -> WidgetView.ListOfObjects.Type.Recent
@ -74,10 +76,16 @@ class ListWidgetContainer(
companion object {
private const val MAX_COUNT = 3
val keys = buildList {
addAll(ObjectSearchConstants.defaultKeys)
add(Relations.DESCRIPTION)
}
fun params(
subscription: Id,
workspace: Id,
keys: List<Id> = ObjectSearchConstants.defaultKeys,
keys: List<Id>,
limit: Int = MAX_COUNT
) = when (subscription) {
BundledWidgetSourceIds.RECENT -> {

View file

@ -47,7 +47,8 @@ class TreeWidgetContainer(
container.subscribe(
ListWidgetContainer.params(
subscription = widget.source.id,
workspace = workspace
workspace = workspace,
keys = keys
)
).map { rootLevelObjects ->
rootLevelObjects.map { it.id }

View file

@ -474,6 +474,8 @@ class HomeScreenViewModelTest {
layout = ObjectType.Layout.BASIC.code.toDouble()
)
val layout = Block.Content.Widget.Layout.TREE
val favoriteSource = StubObject(id = BundledWidgetSourceIds.FAVORITE)
val recentSource = StubObject(id = BundledWidgetSourceIds.RECENT)
val setsSource = StubObject(id = BundledWidgetSourceIds.SETS)
@ -491,17 +493,17 @@ class HomeScreenViewModelTest {
)
val favoriteWidgetBlock = StubWidgetBlock(
layout = Block.Content.Widget.Layout.TREE,
layout = layout,
children = listOf(favoriteLink.id)
)
val recentWidgetBlock = StubWidgetBlock(
layout = Block.Content.Widget.Layout.TREE,
layout = layout,
children = listOf(recentLink.id)
)
val setsWidgetBlock = StubWidgetBlock(
layout = Block.Content.Widget.Layout.TREE,
layout = layout,
children = listOf(setsLink.id)
)
@ -534,7 +536,8 @@ class HomeScreenViewModelTest {
stubSearchByIds(
subscription = favoriteWidgetBlock.id,
targets = listOf(firstLink.id, secondLink.id),
results = listOf(firstLink, secondLink)
results = listOf(firstLink, secondLink),
keys = TreeWidgetContainer.keys
)
stubSearchByIds(
@ -546,13 +549,15 @@ class HomeScreenViewModelTest {
stubSearchByIds(
subscription = setsWidgetBlock.id,
targets = listOf(firstLink.id, secondLink.id),
results = listOf(firstLink, secondLink)
results = listOf(firstLink, secondLink),
keys = TreeWidgetContainer.keys
)
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.FAVORITE,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -560,7 +565,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.RECENT,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -568,7 +574,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.SETS,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1103,7 +1110,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.FAVORITE,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1111,7 +1119,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.RECENT,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1119,7 +1128,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.SETS,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1234,7 +1244,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.FAVORITE,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1242,7 +1253,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.RECENT,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1250,7 +1262,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.SETS,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1274,7 +1287,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = favoriteSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
)
)
}
@ -1283,7 +1297,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = setsSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
)
)
}
@ -1292,7 +1307,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = recentSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
)
)
}
@ -1321,7 +1337,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = favoriteSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
)
)
}
@ -1330,7 +1347,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = setsSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
)
)
}
@ -1339,7 +1357,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = recentSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = TreeWidgetContainer.keys
)
)
}
@ -1429,7 +1448,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.FAVORITE,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1437,7 +1457,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.RECENT,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1445,7 +1466,8 @@ class HomeScreenViewModelTest {
stubDefaultSearch(
params = ListWidgetContainer.params(
subscription = BundledWidgetSourceIds.SETS,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
),
results = listOf(firstLink, secondLink)
)
@ -1469,7 +1491,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = favoriteSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
)
)
}
@ -1478,7 +1501,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = setsSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
)
)
}
@ -1487,7 +1511,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = recentSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
)
)
}
@ -1516,7 +1541,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = favoriteSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
)
)
}
@ -1525,7 +1551,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = setsSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
)
)
}
@ -1534,7 +1561,8 @@ class HomeScreenViewModelTest {
subscribe(
ListWidgetContainer.params(
subscription = recentSource.id,
workspace = config.workspace
workspace = config.workspace,
keys = ListWidgetContainer.keys
)
)
}