diff --git a/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt
index e24a54bbc0..23ef5124b4 100644
--- a/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt
+++ b/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenFragment.kt
@@ -6,14 +6,9 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.activity.compose.BackHandler
-import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.statusBars
-import androidx.compose.foundation.layout.systemBarsPadding
-import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.MaterialTheme
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -71,9 +66,9 @@ import com.anytypeio.anytype.ui.settings.typography
import com.anytypeio.anytype.ui.widgets.SelectWidgetSourceFragment
import com.anytypeio.anytype.ui.widgets.SelectWidgetTypeFragment
import com.anytypeio.anytype.ui_settings.space.new_settings.ViewerSpaceSettings
-import javax.inject.Inject
import kotlinx.coroutines.launch
import timber.log.Timber
+import javax.inject.Inject
class HomeScreenFragment : BaseComposeFragment(),
ObjectTypeSelectionListener,
diff --git a/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenToolbar.kt b/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenToolbar.kt
index fdbab98b88..b665d88d83 100644
--- a/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenToolbar.kt
+++ b/app/src/main/java/com/anytypeio/anytype/ui/home/HomeScreenToolbar.kt
@@ -3,16 +3,15 @@ package com.anytypeio.anytype.ui.home
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.layout.systemBarsPadding
+import androidx.compose.foundation.layout.width
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.alpha
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
@@ -23,7 +22,7 @@ import androidx.compose.ui.unit.dp
import com.anytypeio.anytype.core_ui.common.DefaultPreviews
import com.anytypeio.anytype.core_ui.features.SpaceIconView
import com.anytypeio.anytype.core_ui.foundation.noRippleClickable
-import com.anytypeio.anytype.core_ui.views.PreviewTitle2Medium
+import com.anytypeio.anytype.core_ui.views.ModalTitle
import com.anytypeio.anytype.core_ui.views.Relations2
import com.anytypeio.anytype.feature_chats.R
import com.anytypeio.anytype.presentation.spaces.SpaceIconView
@@ -44,16 +43,22 @@ fun HomeScreenToolbar(
.height(52.dp)
) {
- Image(
- painter = painterResource(R.drawable.ic_default_top_back),
- contentDescription = "Back button",
+ Box(
modifier = Modifier
- .padding(start = 16.dp)
+ .fillMaxHeight()
+ .width(56.dp)
.align(Alignment.CenterStart)
.noRippleClickable {
onBackButtonClicked()
- }
- )
+ },
+ contentAlignment = Alignment.Center
+ ) {
+ Image(
+ painter = painterResource(R.drawable.ic_default_top_back),
+ contentDescription = "Back button",
+ modifier = Modifier
+ )
+ }
SpaceIconView(
modifier = Modifier
@@ -68,7 +73,7 @@ fun HomeScreenToolbar(
Text(
text = name.ifEmpty { stringResource(R.string.untitled) },
- style = PreviewTitle2Medium,
+ style = ModalTitle,
color = colorResource(R.color.text_primary),
modifier = Modifier
.fillMaxWidth()
@@ -116,16 +121,22 @@ fun HomeScreenToolbar(
}
)
- Image(
- painter = painterResource(id = R.drawable.ic_vault_settings),
- contentDescription = "Settings icon",
+ Box(
modifier = Modifier
+ .fillMaxHeight()
+ .width(56.dp)
.align(Alignment.CenterEnd)
- .padding(end = 17.dp)
.noRippleClickable {
onSettingsClicked()
- }
- )
+ },
+ contentAlignment = Alignment.Center
+ ) {
+ Image(
+ painter = painterResource(id = R.drawable.ic_vault_settings),
+ contentDescription = "Settings icon",
+ modifier = Modifier
+ )
+ }
}
}
diff --git a/core-ui/src/main/res/drawable/ic_vault_settings.xml b/core-ui/src/main/res/drawable/ic_vault_settings.xml
index e1be20770a..e8cfac4600 100644
--- a/core-ui/src/main/res/drawable/ic_vault_settings.xml
+++ b/core-ui/src/main/res/drawable/ic_vault_settings.xml
@@ -1,11 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ android:pathData="M12.005,21.515C12.124,21.515 12.247,21.511 12.373,21.505C12.493,21.498 12.612,21.492 12.731,21.485L13.269,22.51C13.335,22.636 13.425,22.726 13.537,22.778C13.65,22.838 13.776,22.858 13.915,22.838C14.055,22.805 14.167,22.745 14.254,22.659C14.333,22.573 14.383,22.457 14.403,22.311L14.562,21.167C15.053,21.027 15.507,20.861 15.925,20.669L16.791,21.445C16.89,21.545 17.003,21.601 17.129,21.614C17.255,21.628 17.381,21.598 17.507,21.525C17.627,21.458 17.71,21.366 17.756,21.246C17.803,21.133 17.813,21.007 17.786,20.868L17.547,19.744C17.74,19.604 17.932,19.455 18.124,19.296C18.31,19.143 18.489,18.978 18.662,18.798L19.726,19.246C19.998,19.352 20.234,19.293 20.433,19.067C20.519,18.961 20.569,18.848 20.582,18.729C20.589,18.603 20.552,18.477 20.473,18.351L19.856,17.385C19.995,17.18 20.124,16.974 20.244,16.769C20.363,16.556 20.476,16.341 20.582,16.122L21.736,16.162C21.876,16.168 21.998,16.138 22.104,16.072C22.211,16.006 22.29,15.903 22.343,15.764C22.383,15.631 22.386,15.505 22.353,15.385C22.32,15.266 22.247,15.163 22.134,15.077L21.219,14.371C21.279,14.132 21.332,13.896 21.378,13.664C21.418,13.425 21.448,13.18 21.468,12.928L22.572,12.58C22.711,12.54 22.818,12.47 22.89,12.371C22.963,12.264 23,12.142 23,12.002C23,11.856 22.963,11.734 22.89,11.634C22.818,11.535 22.711,11.465 22.572,11.425L21.468,11.077C21.448,10.825 21.418,10.583 21.378,10.351C21.332,10.112 21.279,9.873 21.219,9.634L22.134,8.928C22.38,8.742 22.446,8.513 22.333,8.241C22.287,8.109 22.211,8.009 22.104,7.943C21.998,7.87 21.872,7.837 21.726,7.843L20.582,7.883C20.476,7.664 20.363,7.452 20.244,7.246C20.124,7.034 19.995,6.828 19.856,6.629L20.473,5.654C20.639,5.395 20.625,5.157 20.433,4.938C20.333,4.832 20.224,4.762 20.104,4.729C19.985,4.696 19.859,4.706 19.726,4.759L18.662,5.196C18.483,5.031 18.303,4.871 18.124,4.719C17.939,4.56 17.746,4.41 17.547,4.271L17.786,3.137C17.819,2.997 17.813,2.871 17.766,2.759C17.713,2.639 17.627,2.546 17.507,2.48C17.381,2.414 17.255,2.387 17.129,2.4C17.003,2.407 16.887,2.46 16.781,2.56L15.935,3.336C15.716,3.236 15.494,3.143 15.269,3.057C15.043,2.971 14.811,2.895 14.572,2.828L14.403,1.684C14.383,1.545 14.333,1.432 14.254,1.346C14.167,1.253 14.051,1.193 13.906,1.167C13.773,1.147 13.65,1.163 13.537,1.216C13.425,1.269 13.335,1.362 13.269,1.495L12.731,2.51C12.612,2.503 12.493,2.5 12.373,2.5C12.247,2.493 12.124,2.49 12.005,2.49C11.879,2.49 11.756,2.493 11.637,2.5C11.517,2.5 11.398,2.503 11.279,2.51L10.731,1.485C10.665,1.359 10.579,1.269 10.473,1.216C10.36,1.157 10.231,1.14 10.085,1.167C9.952,1.2 9.842,1.259 9.756,1.346C9.67,1.432 9.62,1.545 9.607,1.684L9.448,2.828C9.209,2.895 8.977,2.971 8.751,3.057C8.519,3.137 8.297,3.226 8.085,3.326L7.219,2.56C7.113,2.46 7,2.404 6.881,2.39C6.755,2.377 6.625,2.407 6.493,2.48C6.373,2.546 6.29,2.639 6.244,2.759C6.197,2.871 6.187,2.997 6.214,3.137L6.463,4.261C6.27,4.4 6.081,4.55 5.896,4.709C5.703,4.861 5.521,5.024 5.348,5.196L4.274,4.759C4.002,4.646 3.766,4.702 3.567,4.928C3.481,5.041 3.434,5.16 3.428,5.286C3.421,5.405 3.458,5.528 3.537,5.654L4.144,6.619C4.012,6.818 3.886,7.024 3.766,7.236C3.64,7.442 3.524,7.654 3.418,7.873L2.274,7.843C2.128,7.837 2.005,7.866 1.905,7.933C1.799,7.999 1.72,8.102 1.667,8.241C1.62,8.374 1.614,8.5 1.647,8.619C1.68,8.739 1.756,8.842 1.876,8.928L2.791,9.634C2.725,9.866 2.672,10.102 2.632,10.341C2.592,10.58 2.559,10.825 2.532,11.077L1.438,11.425C1.299,11.465 1.192,11.535 1.119,11.634C1.04,11.734 1,11.856 1,12.002C1,12.142 1.04,12.264 1.119,12.371C1.192,12.47 1.299,12.54 1.438,12.58L2.532,12.928C2.559,13.18 2.592,13.425 2.632,13.664C2.672,13.896 2.725,14.132 2.791,14.371L1.866,15.077C1.753,15.163 1.68,15.266 1.647,15.385C1.607,15.505 1.614,15.628 1.667,15.754C1.72,15.893 1.799,15.999 1.905,16.072C2.005,16.138 2.128,16.168 2.274,16.162L3.418,16.122C3.524,16.334 3.64,16.546 3.766,16.759C3.886,16.964 4.012,17.17 4.144,17.376L3.527,18.351C3.448,18.47 3.415,18.593 3.428,18.719C3.434,18.845 3.484,18.961 3.577,19.067C3.67,19.173 3.776,19.243 3.896,19.276C4.015,19.309 4.144,19.299 4.284,19.246L5.348,18.808C5.521,18.974 5.7,19.133 5.886,19.286C6.071,19.445 6.264,19.594 6.463,19.734L6.214,20.868C6.187,21.007 6.197,21.133 6.244,21.246C6.29,21.359 6.376,21.452 6.502,21.525C6.629,21.591 6.755,21.618 6.881,21.604C7.007,21.598 7.119,21.545 7.219,21.445L8.075,20.669C8.294,20.769 8.516,20.858 8.741,20.938C8.967,21.024 9.199,21.1 9.438,21.167L9.607,22.321C9.62,22.46 9.67,22.573 9.756,22.659C9.842,22.752 9.955,22.812 10.094,22.838C10.234,22.851 10.36,22.832 10.473,22.778C10.579,22.726 10.665,22.636 10.731,22.51L11.279,21.485C11.398,21.492 11.517,21.498 11.637,21.505C11.756,21.511 11.879,21.515 12.005,21.515ZM12.005,19.863C10.917,19.863 9.899,19.657 8.95,19.246C8.002,18.842 7.166,18.281 6.443,17.565C5.72,16.842 5.156,16.006 4.751,15.057C4.347,14.109 4.144,13.09 4.144,12.002C4.144,10.915 4.347,9.896 4.751,8.948C5.156,7.999 5.72,7.163 6.443,6.44C7.166,5.717 8.002,5.153 8.95,4.749C9.899,4.344 10.917,4.142 12.005,4.142C13.086,4.142 14.104,4.344 15.06,4.749C16.008,5.153 16.844,5.717 17.567,6.44C18.284,7.163 18.847,7.999 19.259,8.948C19.663,9.896 19.866,10.915 19.866,12.002C19.866,13.09 19.663,14.109 19.259,15.057C18.847,16.006 18.284,16.842 17.567,17.565C16.844,18.281 16.008,18.842 15.06,19.246C14.104,19.657 13.086,19.863 12.005,19.863ZM13.736,10.48L17.11,4.719L15.886,4.032L12.562,9.734L13.736,10.48ZM9.786,12.679V11.306H3.169V12.679H9.786ZM12.542,14.301L15.995,19.973L17.209,19.256L13.707,13.545L12.542,14.301ZM11.995,14.609C12.479,14.609 12.92,14.493 13.318,14.261C13.71,14.022 14.022,13.707 14.254,13.316C14.486,12.918 14.602,12.48 14.602,12.002C14.602,11.518 14.486,11.08 14.254,10.689C14.022,10.298 13.71,9.986 13.318,9.754C12.92,9.515 12.479,9.395 11.995,9.395C11.517,9.395 11.083,9.515 10.691,9.754C10.293,9.986 9.978,10.298 9.746,10.689C9.507,11.08 9.388,11.518 9.388,12.002C9.388,12.48 9.507,12.918 9.746,13.316C9.978,13.707 10.293,14.022 10.691,14.261C11.083,14.493 11.517,14.609 11.995,14.609ZM11.995,13.117C11.69,13.117 11.428,13.007 11.209,12.788C10.99,12.57 10.881,12.308 10.881,12.002C10.881,11.697 10.99,11.435 11.209,11.216C11.428,10.997 11.69,10.888 11.995,10.888C12.3,10.888 12.562,10.997 12.781,11.216C13,11.435 13.109,11.697 13.109,12.002C13.109,12.308 13,12.57 12.781,12.788C12.562,13.007 12.3,13.117 11.995,13.117Z"
+ android:fillColor="@color/glyph_active"/>
diff --git a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt
index c84d439ced..6b49b05afd 100644
--- a/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt
+++ b/presentation/src/main/java/com/anytypeio/anytype/presentation/widgets/SelectWidgetSourceViewModel.kt
@@ -10,6 +10,7 @@ import com.anytypeio.anytype.core_models.DVFilterCondition
import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_models.ObjectType
import com.anytypeio.anytype.core_models.Relations
+import com.anytypeio.anytype.core_models.multiplayer.SpaceUxType
import com.anytypeio.anytype.core_models.widgets.BundledWidgetSourceIds
import com.anytypeio.anytype.domain.base.Resultat
import com.anytypeio.anytype.domain.base.fold
@@ -73,13 +74,15 @@ class SelectWidgetSourceViewModel(
var config : Config = Config.None
val viewState = flow {
- val hasChat = !spaceViews.get(vmParams.space)?.chatId.isNullOrEmpty()
emitAll(
combine(
- stateData
- .asFlow(),
- suggested.filterIsInstance()
- ) { state, suggested ->
+ stateData.asFlow(),
+ suggested.filterIsInstance(),
+ spaceViews.observe(vmParams.space)
+ ) { state, suggested, spaceView ->
+ val hasChat = !spaceView.chatId.isNullOrEmpty()
+ val isChatSpace = spaceView.spaceUxType == SpaceUxType.CHAT
+
when(state) {
is ObjectSearchView.Success -> {
state.copy(
@@ -89,7 +92,8 @@ class SelectWidgetSourceViewModel(
resolveSuggestedResults(
suggested = suggested,
query = query,
- hasChat = hasChat
+ hasChat = hasChat,
+ isChatSpace = isChatSpace
)
)
// Widgets from existing objects
@@ -105,7 +109,8 @@ class SelectWidgetSourceViewModel(
resolveSuggestedResults(
suggested = suggested,
query = query,
- hasChat = hasChat
+ hasChat = hasChat,
+ isChatSpace = isChatSpace
)
)
}
@@ -135,7 +140,8 @@ class SelectWidgetSourceViewModel(
private fun resolveSuggestedResults(
suggested: SuggestedWidgetsState.Default,
query: String,
- hasChat: Boolean
+ hasChat: Boolean,
+ isChatSpace: Boolean
) = buildList {
// Adding system widgets if matched by query
@@ -152,7 +158,8 @@ class SelectWidgetSourceViewModel(
if (contains(BundledWidgetSourceIds.ALL_OBJECTS)) {
add(BundledWidgetSourceView.AllObjects)
}
- if (contains(BundledWidgetSourceIds.CHAT) && hasChat) {
+ // Chat widget can only be added if the space has chat AND is not a chat space itself
+ if (contains(BundledWidgetSourceIds.CHAT) && hasChat && !isChatSpace) {
add(BundledWidgetSourceView.Chat)
}
if (contains(BundledWidgetSourceIds.RECENT)) {