diff --git a/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt index 605098d487..9500ba0e0e 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/editor/EditorFragment.kt @@ -112,6 +112,7 @@ import com.anytypeio.anytype.presentation.editor.editor.sam.ScrollAndMoveTargetD import com.anytypeio.anytype.presentation.editor.markup.MarkupColorView import com.anytypeio.anytype.presentation.editor.model.EditorFooter import com.anytypeio.anytype.presentation.editor.template.SelectTemplateViewState +import com.anytypeio.anytype.presentation.objects.ObjectIcon import com.anytypeio.anytype.ui.alert.AlertUpdateAppFragment import com.anytypeio.anytype.ui.base.NavigationFragment import com.anytypeio.anytype.ui.editor.cover.SelectCoverObjectFragment @@ -1183,15 +1184,18 @@ open class EditorFragment : NavigationFragment(R.layout.f } private fun resetDocumentTitle(state: ViewState.Success) { - state.blocks.firstOrNull { view -> + val title = state.blocks.firstOrNull { view -> view is BlockView.Title.Basic || view is BlockView.Title.Profile || view is BlockView.Title.Todo - }?.let { view -> - when (view) { + } + if (title != null) { + when (title) { is BlockView.Title.Basic -> { resetTopToolbarTitle( - text = view.text, + text = title.text, + emoji = title.emoji, + image = title.image, ) - if (view.hasCover) { + if (title.hasCover) { val mng = binding.recycler.layoutManager as LinearLayoutManager val pos = mng.findFirstVisibleItemPosition() if (pos == -1 || pos == 0) { @@ -1203,9 +1207,11 @@ open class EditorFragment : NavigationFragment(R.layout.f } is BlockView.Title.Profile -> { resetTopToolbarTitle( - text = view.text, + text = title.text, + emoji = null, + image = title.image, ) - if (view.hasCover) { + if (title.hasCover) { val mng = binding.recycler.layoutManager as LinearLayoutManager val pos = mng.findFirstVisibleItemPosition() if (pos == -1 || pos == 0) { @@ -1217,9 +1223,11 @@ open class EditorFragment : NavigationFragment(R.layout.f } is BlockView.Title.Todo -> { resetTopToolbarTitle( - text = view.text, + text = title.text, + emoji = null, + image = title.image, ) - if (view.hasCover) { + if (title.hasCover) { val mng = binding.recycler.layoutManager as LinearLayoutManager val pos = mng.findFirstVisibleItemPosition() if (pos == -1 || pos == 0) { @@ -1235,8 +1243,27 @@ open class EditorFragment : NavigationFragment(R.layout.f } } - private fun resetTopToolbarTitle(text: String?) { + private fun resetTopToolbarTitle(text: String?, emoji: String?, image: String?) { binding.topToolbar.title.text = text + val iconView = binding.topToolbar.icon + when { + text.isNullOrBlank() -> { + iconView.setIcon(ObjectIcon.None) + iconView.gone() + } + !emoji.isNullOrBlank() -> { + iconView.setIcon(ObjectIcon.Basic.Emoji(emoji)) + iconView.visible() + } + !image.isNullOrBlank()-> { + iconView.setIcon(ObjectIcon.Basic.Image(image)) + iconView.visible() + } + else -> { + iconView.setIcon(ObjectIcon.None) + iconView.gone() + } + } } private fun render(state: ControlPanelState) { diff --git a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/toolbar/ObjectTopToolbar.kt b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/toolbar/ObjectTopToolbar.kt index b309b034c5..a4b0642779 100644 --- a/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/toolbar/ObjectTopToolbar.kt +++ b/core-ui/src/main/java/com/anytypeio/anytype/core_ui/widgets/toolbar/ObjectTopToolbar.kt @@ -8,10 +8,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.FrameLayout -import android.widget.ImageView import android.widget.TextView import com.anytypeio.anytype.core_ui.R import com.anytypeio.anytype.core_ui.databinding.WidgetObjectTopToolbarBinding +import com.anytypeio.anytype.core_ui.widgets.ObjectIconWidget import com.anytypeio.anytype.core_ui.widgets.StatusBadgeWidget class ObjectTopToolbar @JvmOverloads constructor( @@ -29,7 +29,7 @@ class ObjectTopToolbar @JvmOverloads constructor( val menu: View get() = binding.threeDotsButton val container: ViewGroup get() = binding.titleContainer val title: TextView get() = binding.tvTopToolbarTitle - val image: ImageView get() = binding.ivTopToolbarIcon + val icon: ObjectIconWidget get() = binding.ivTopToolbarIcon init { container.alpha = 0f diff --git a/core-ui/src/main/res/layout/widget_object_top_toolbar.xml b/core-ui/src/main/res/layout/widget_object_top_toolbar.xml index af668aea9a..91849c98ab 100644 --- a/core-ui/src/main/res/layout/widget_object_top_toolbar.xml +++ b/core-ui/src/main/res/layout/widget_object_top_toolbar.xml @@ -41,13 +41,15 @@ android:layout_height="match_parent" android:layout_gravity="center"> - + android:layout_marginEnd="6dp" + android:visibility="gone" + tools:visibility="visible" + />