diff --git a/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt b/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt index 99db6e8fc5..ad43609ce0 100644 --- a/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt +++ b/app/src/main/java/com/anytypeio/anytype/navigation/Navigator.kt @@ -19,6 +19,7 @@ import com.anytypeio.anytype.ui.settings.RemoteFilesManageFragment import com.anytypeio.anytype.ui.templates.EditorTemplateFragment.Companion.TYPE_TEMPLATE_EDIT import com.anytypeio.anytype.ui.templates.EditorTemplateFragment.Companion.TYPE_TEMPLATE_SELECT import com.anytypeio.anytype.ui.templates.TemplateSelectFragment +import com.anytypeio.anytype.ui.types.edit.TypeEditFragment import com.anytypeio.anytype.ui.widgets.collection.CollectionFragment import timber.log.Timber @@ -247,4 +248,16 @@ class Navigator : AppNavigation { args = AllContentFragment.args(space) ) } + + override fun openTypeEditingScreen(id: Id, name: String, icon: String, readOnly: Boolean) { + navController?.navigate( + resId = R.id.openTypeEditingScreen, + args = TypeEditFragment.args( + typeName = name, + id = id, + iconUnicode = icon, + readOnly = readOnly + ) + ) + } } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/allcontent/AllContentFragment.kt b/app/src/main/java/com/anytypeio/anytype/ui/allcontent/AllContentFragment.kt index 8a049ef872..12db76978c 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/allcontent/AllContentFragment.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/allcontent/AllContentFragment.kt @@ -27,6 +27,7 @@ import com.anytypeio.anytype.feature_allcontent.presentation.AllContentViewModel import com.anytypeio.anytype.feature_allcontent.presentation.AllContentViewModelFactory import com.anytypeio.anytype.feature_allcontent.ui.AllContentNavigation.ALL_CONTENT_MAIN import com.anytypeio.anytype.feature_allcontent.ui.AllContentWrapperScreen +import com.anytypeio.anytype.presentation.objects.ObjectIcon import com.anytypeio.anytype.presentation.widgets.collection.Subscription import com.anytypeio.anytype.ui.base.navigation import com.anytypeio.anytype.ui.settings.typography @@ -94,6 +95,19 @@ class AllContentFragment : BaseComposeFragment() { Timber.e(it, "Failed to open bin") } } + is AllContentViewModel.Command.OpenTypeEditing -> { + runCatching { + navigation().openTypeEditingScreen( + id = command.item.id, + name = command.item.name, + icon = (command.item.icon as? ObjectIcon.Basic.Emoji)?.unicode ?: "", + readOnly = command.item.readOnly + ) + }.onFailure { + toast("Failed to open type editing screen") + Timber.e(it, "Failed to open type editing screen") + } + } } } } @@ -119,6 +133,7 @@ class AllContentFragment : BaseComposeFragment() { canPaginate = vm.canPaginate.collectAsStateWithLifecycle().value, onUpdateLimitSearch = vm::updateLimit, uiContentState = vm.uiContentState.collectAsStateWithLifecycle().value, + onTypeClicked = vm::onTypeClicked ) } } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryScreen.kt b/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryScreen.kt index c64b6cd8d8..28ebcdf936 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryScreen.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/library/LibraryScreen.kt @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.navigationBars +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.systemBars import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.pager.rememberPagerState @@ -97,10 +98,11 @@ fun LibraryScreen( ) } } - ) { - println(it) + ) { paddingValues -> Column( - modifier = modifier.then( + modifier = modifier + .padding(paddingValues) + .then( if (BuildConfig.USE_EDGE_TO_EDGE && Build.VERSION.SDK_INT >= EDGE_TO_EDGE_MIN_SDK) Modifier.windowInsetsPadding(WindowInsets.systemBars) else diff --git a/app/src/main/java/com/anytypeio/anytype/ui/types/create/TypeCreationScreen.kt b/app/src/main/java/com/anytypeio/anytype/ui/types/create/TypeCreationScreen.kt index f2b8551dba..fed77b2843 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/types/create/TypeCreationScreen.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/types/create/TypeCreationScreen.kt @@ -38,7 +38,8 @@ fun TypeCreationScreen(vm: CreateObjectTypeViewModel, preparedName: String) { objectIcon = state.objectIcon, onLeadingIconClick = vm::openEmojiPicker, shouldMoveCursor = preparedName.trim().isNotEmpty(), - onImeDoneClick = vm::createType + onImeDoneClick = vm::createType, + isReadOnly = false ) } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/types/edit/TypeEditScreen.kt b/app/src/main/java/com/anytypeio/anytype/ui/types/edit/TypeEditScreen.kt index ce6e0346a7..2e19bb2686 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/types/edit/TypeEditScreen.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/types/edit/TypeEditScreen.kt @@ -38,7 +38,8 @@ fun TypeEditScreen(vm: TypeEditViewModel, preparedName: String, readOnly: Boolea onLeadingIconClick = vm::openEmojiPicker, onImeDoneClick = vm::updateObjectDetails, imeOptions = ImeOptions.Done, - shouldMoveCursor = preparedName.trim().isNotEmpty() + shouldMoveCursor = preparedName.trim().isNotEmpty(), + isReadOnly = readOnly ) } diff --git a/app/src/main/java/com/anytypeio/anytype/ui/types/views/TypeEditWidget.kt b/app/src/main/java/com/anytypeio/anytype/ui/types/views/TypeEditWidget.kt index a5c6be1ad5..530159ebb7 100644 --- a/app/src/main/java/com/anytypeio/anytype/ui/types/views/TypeEditWidget.kt +++ b/app/src/main/java/com/anytypeio/anytype/ui/types/views/TypeEditWidget.kt @@ -36,7 +36,8 @@ fun TypeEditWidget( onLeadingIconClick: () -> Unit, imeOptions: ImeOptions = ImeOptions.Default, onImeDoneClick: (name: String) -> Unit = {}, - shouldMoveCursor: Boolean + shouldMoveCursor: Boolean, + isReadOnly: Boolean ) { val focusRequester = remember { FocusRequester() } @@ -59,6 +60,7 @@ fun TypeEditWidget( nameValid.value = this.isNotEmpty() } }, + enabled = !isReadOnly, modifier = Modifier .focusRequester(focusRequester) .offset(OffsetX) diff --git a/app/src/main/res/navigation/graph.xml b/app/src/main/res/navigation/graph.xml index ce0e083046..217e28113b 100644 --- a/app/src/main/res/navigation/graph.xml +++ b/app/src/main/res/navigation/graph.xml @@ -404,7 +404,11 @@ + android:label="AllContentScreen"> + +