mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-07 21:37:02 +09:00
DROID-3499 New settings | Enhancement | Add bin widget to settings (#2193)
This commit is contained in:
parent
9e99769baa
commit
9e809c7b8c
6 changed files with 55 additions and 0 deletions
|
@ -21,6 +21,7 @@ import com.anytypeio.anytype.core_utils.ext.shareFile
|
|||
import com.anytypeio.anytype.core_utils.ext.toast
|
||||
import com.anytypeio.anytype.core_utils.ui.BaseComposeFragment
|
||||
import com.anytypeio.anytype.di.common.componentManager
|
||||
import com.anytypeio.anytype.presentation.search.Subscriptions
|
||||
import com.anytypeio.anytype.presentation.spaces.SpaceSettingsViewModel
|
||||
import com.anytypeio.anytype.presentation.spaces.SpaceSettingsViewModel.Command
|
||||
import com.anytypeio.anytype.presentation.util.downloader.UriFileProvider
|
||||
|
@ -31,6 +32,7 @@ import com.anytypeio.anytype.ui.objects.types.pickers.ObjectTypeSelectionListene
|
|||
import com.anytypeio.anytype.ui.settings.SpacesStorageFragment
|
||||
import com.anytypeio.anytype.ui.settings.typography
|
||||
import com.anytypeio.anytype.ui.spaces.DeleteSpaceWarning
|
||||
import com.anytypeio.anytype.ui.widgets.collection.CollectionFragment
|
||||
import com.anytypeio.anytype.ui_settings.space.new_settings.SpaceSettingsContainer
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
@ -174,6 +176,19 @@ class SpaceSettingsFragment : BaseComposeFragment(), ObjectTypeSelectionListener
|
|||
Timber.e(it, "Failed to execute nav command: $command")
|
||||
}
|
||||
}
|
||||
is Command.ManageBin -> {
|
||||
runCatching {
|
||||
findNavController().navigate(
|
||||
R.id.homeScreenWidgets,
|
||||
CollectionFragment.args(
|
||||
subscription = Subscriptions.SUBSCRIPTION_ARCHIVED,
|
||||
space = space
|
||||
)
|
||||
)
|
||||
}.onFailure {
|
||||
Timber.w(it, "Error while opening bin from widgets")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.anytypeio.anytype.core_models.Wallpaper
|
||||
import com.anytypeio.anytype.core_ui.common.DefaultPreviews
|
||||
import com.anytypeio.anytype.core_ui.extensions.light
|
||||
import com.anytypeio.anytype.core_ui.features.wallpaper.gradient
|
||||
import com.anytypeio.anytype.core_ui.foundation.Section
|
||||
|
@ -245,6 +246,23 @@ fun RemoteStorageItem(
|
|||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun BinItem(
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
BaseButton(
|
||||
modifier = modifier,
|
||||
title = stringResource(id = R.string.bin),
|
||||
icon = R.drawable.ic_widget_bin
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
@DefaultPreviews
|
||||
private fun BinItemPreview() {
|
||||
BinItem()
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun DeleteSpaceItem(
|
||||
modifier: Modifier = Modifier
|
||||
|
|
|
@ -270,6 +270,18 @@ fun NewSpaceSettingsScreen(
|
|||
}
|
||||
}
|
||||
|
||||
is UiSpaceSettingsItem.Bin -> {
|
||||
item {
|
||||
BinItem(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.animateItem()
|
||||
.clip(RoundedCornerShape(16.dp))
|
||||
.clickable { uiEvent(UiEvent.OnBinClick) }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
is UiSpaceSettingsItem.Section -> {
|
||||
item {
|
||||
SpaceSettingsSection(
|
||||
|
|
|
@ -206,6 +206,8 @@ class SpaceSettingsViewModel(
|
|||
UiSpaceSettingsItem.Wallpapers(current = wallpaper),
|
||||
UiSpaceSettingsItem.Section.DataManagement,
|
||||
UiSpaceSettingsItem.RemoteStorage,
|
||||
Spacer(height = 8),
|
||||
UiSpaceSettingsItem.Bin,
|
||||
UiSpaceSettingsItem.Section.Misc,
|
||||
UiSpaceSettingsItem.SpaceInfo,
|
||||
Spacer(height = 8),
|
||||
|
@ -242,6 +244,11 @@ class SpaceSettingsViewModel(
|
|||
commands.emit(Command.ManageRemoteStorage)
|
||||
}
|
||||
}
|
||||
UiEvent.OnBinClick -> {
|
||||
viewModelScope.launch {
|
||||
commands.emit(Command.ManageBin(vmParams.space))
|
||||
}
|
||||
}
|
||||
UiEvent.OnInviteClicked -> {
|
||||
sendToast("Coming soon")
|
||||
}
|
||||
|
@ -617,6 +624,7 @@ class SpaceSettingsViewModel(
|
|||
data class ShareSpaceDebug(val filepath: Filepath) : Command()
|
||||
data class SharePrivateSpace(val space: SpaceId) : Command()
|
||||
data class ManageSharedSpace(val space: SpaceId) : Command()
|
||||
data class ManageBin(val space: SpaceId) : Command()
|
||||
data class SelectDefaultObjectType(val space: SpaceId, val excludedTypeIds: List<Id>) : Command()
|
||||
data object ExitToVault : Command()
|
||||
data object ShowDeleteSpaceWarning : Command()
|
||||
|
|
|
@ -15,6 +15,7 @@ sealed class UiEvent {
|
|||
|
||||
data object OnDeleteSpaceClicked : UiEvent()
|
||||
data object OnRemoteStorageClick : UiEvent()
|
||||
data object OnBinClick : UiEvent()
|
||||
data object OnPersonalizationClicked : UiEvent()
|
||||
data object OnInviteClicked : UiEvent()
|
||||
data object OnQrCodeClicked : UiEvent()
|
||||
|
|
|
@ -50,6 +50,7 @@ sealed class UiSpaceSettingsItem {
|
|||
data class DefaultObjectType(val id: Id?, val name: String, val icon: ObjectIcon) : UiSpaceSettingsItem()
|
||||
data class Wallpapers(val current: Wallpaper?) : UiSpaceSettingsItem()
|
||||
data object RemoteStorage : UiSpaceSettingsItem()
|
||||
data object Bin : UiSpaceSettingsItem()
|
||||
data object SpaceInfo : UiSpaceSettingsItem()
|
||||
data object DeleteSpace : UiSpaceSettingsItem()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue