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:
parent
49cfae9411
commit
e47e05526a
5 changed files with 82 additions and 40 deletions
|
@ -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()
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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 -> {
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue