diff --git a/app/src/main/java/com/anytypeio/anytype/ui/objects/ObjectTypeChangeFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/objects/ObjectTypeChangeFragment.kt index 57f11b039e..84b5ebedcf 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/objects/ObjectTypeChangeFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/objects/ObjectTypeChangeFragment.kt @@ -82,6 +82,7 @@ class ObjectTypeChangeFragment : } override fun onStart() { + expand() with(lifecycleScope) { jobs += subscribe(vm.results) { observeViews(it) } jobs += subscribe(binding.searchObjectTypeInput.textChanges()) { diff --git a/core-models/src/main/java/com/anytypeio/anytype/core_models/Event.kt b/core-models/src/main/java/com/anytypeio/anytype/core_models/Event.kt index 96418723cd..35b45906ad 100644 --- a/core-models/src/main/java/com/anytypeio/anytype/core_models/Event.kt +++ b/core-models/src/main/java/com/anytypeio/anytype/core_models/Event.kt @@ -259,6 +259,13 @@ sealed class Event { val key: String, val relation: Relation ) : DataView() + + + data class SetSource( + override val context: Id, + val dv: Id, + val sources: List + ) : DataView() } } } \ No newline at end of file diff --git a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/FeaturedRelationGroupWidget.kt b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/FeaturedRelationGroupWidget.kt index f3ca26c779..5943f83792 100644 --- a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/FeaturedRelationGroupWidget.kt +++ b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/FeaturedRelationGroupWidget.kt @@ -9,14 +9,14 @@ import android.widget.TextView import androidx.constraintlayout.helper.widget.Flow import androidx.constraintlayout.widget.ConstraintLayout import com.anytypeio.anytype.core_models.Relation +import com.anytypeio.anytype.core_models.ThemeColor import com.anytypeio.anytype.core_ui.R +import com.anytypeio.anytype.core_ui.extensions.color import com.anytypeio.anytype.core_ui.extensions.dark import com.anytypeio.anytype.core_ui.extensions.light import com.anytypeio.anytype.core_ui.menu.ObjectTypePopupMenu import com.anytypeio.anytype.core_utils.ext.dimen import com.anytypeio.anytype.core_utils.ext.setDrawableColor -import com.anytypeio.anytype.core_models.ThemeColor -import com.anytypeio.anytype.core_ui.extensions.color import com.anytypeio.anytype.presentation.editor.editor.listener.ListenerType import com.anytypeio.anytype.presentation.editor.editor.model.BlockView import com.anytypeio.anytype.presentation.objects.ObjectIcon @@ -274,12 +274,11 @@ class FeaturedRelationGroupWidget : ConstraintLayout { } } } -// todo https://linear.app/anytype/issue/DROID-434/set-or-change-set-source -// view.setOnClickListener { -// click( -// ListenerType.Relation.SetSource(sources = relation.sources) -// ) -// } + view.setOnClickListener { + click( + ListenerType.Relation.SetSource(sources = relation.sources) + ) + } addView(view) ids.add(view.id) } diff --git a/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/MiddlewareEventMapper.kt b/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/MiddlewareEventMapper.kt index 77b8d84212..8410fa1ba0 100644 --- a/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/MiddlewareEventMapper.kt +++ b/middleware/src/main/java/com/anytypeio/anytype/middleware/interactor/MiddlewareEventMapper.kt @@ -192,6 +192,15 @@ fun anytype.Event.Message.toCoreModels( viewer = event.viewId ) } + blockDataviewSourceSet != null -> { + val event = blockDataviewSourceSet + checkNotNull(event) + Event.Command.DataView.SetSource( + context = context, + dv = event.id, + sources = event.source + ) + } blockSetRelation != null -> { val event = blockSetRelation checkNotNull(event) diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetReducer.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetReducer.kt index 76e353e586..240c701f7f 100644 --- a/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetReducer.kt +++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/sets/ObjectSetReducer.kt @@ -134,6 +134,23 @@ class ObjectSetReducer { } ) } + is Command.DataView.SetSource -> { + state.copy( + blocks = state.blocks.map { block -> + if (block.id == event.dv) { + val content = block.content + check(content is DV) + block.copy( + content = content.copy( + sources = event.sources + ) + ) + } else { + block + } + } + ) + } is Command.Details.Set -> { state.copy( details = state.details.toMutableMap().apply {