Skip to content

Commit 9e809c7

Browse files
authored
DROID-3499 New settings | Enhancement | Add bin widget to settings (#2193)
1 parent 9e99769 commit 9e809c7

File tree

6 files changed

+55
-0
lines changed

6 files changed

+55
-0
lines changed

app/src/main/java/com/anytypeio/anytype/ui/settings/space/SpaceSettingsFragment.kt

+15
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.anytypeio.anytype.core_utils.ext.shareFile
2121
import com.anytypeio.anytype.core_utils.ext.toast
2222
import com.anytypeio.anytype.core_utils.ui.BaseComposeFragment
2323
import com.anytypeio.anytype.di.common.componentManager
24+
import com.anytypeio.anytype.presentation.search.Subscriptions
2425
import com.anytypeio.anytype.presentation.spaces.SpaceSettingsViewModel
2526
import com.anytypeio.anytype.presentation.spaces.SpaceSettingsViewModel.Command
2627
import com.anytypeio.anytype.presentation.util.downloader.UriFileProvider
@@ -31,6 +32,7 @@ import com.anytypeio.anytype.ui.objects.types.pickers.ObjectTypeSelectionListene
3132
import com.anytypeio.anytype.ui.settings.SpacesStorageFragment
3233
import com.anytypeio.anytype.ui.settings.typography
3334
import com.anytypeio.anytype.ui.spaces.DeleteSpaceWarning
35+
import com.anytypeio.anytype.ui.widgets.collection.CollectionFragment
3436
import com.anytypeio.anytype.ui_settings.space.new_settings.SpaceSettingsContainer
3537
import java.io.File
3638
import javax.inject.Inject
@@ -174,6 +176,19 @@ class SpaceSettingsFragment : BaseComposeFragment(), ObjectTypeSelectionListener
174176
Timber.e(it, "Failed to execute nav command: $command")
175177
}
176178
}
179+
is Command.ManageBin -> {
180+
runCatching {
181+
findNavController().navigate(
182+
R.id.homeScreenWidgets,
183+
CollectionFragment.args(
184+
subscription = Subscriptions.SUBSCRIPTION_ARCHIVED,
185+
space = space
186+
)
187+
)
188+
}.onFailure {
189+
Timber.w(it, "Error while opening bin from widgets")
190+
}
191+
}
177192
}
178193
}
179194
}

feature-ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/space/new_settings/Items.kt

+18
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import androidx.compose.ui.text.style.TextAlign
4545
import androidx.compose.ui.text.style.TextOverflow
4646
import androidx.compose.ui.unit.dp
4747
import com.anytypeio.anytype.core_models.Wallpaper
48+
import com.anytypeio.anytype.core_ui.common.DefaultPreviews
4849
import com.anytypeio.anytype.core_ui.extensions.light
4950
import com.anytypeio.anytype.core_ui.features.wallpaper.gradient
5051
import com.anytypeio.anytype.core_ui.foundation.Section
@@ -245,6 +246,23 @@ fun RemoteStorageItem(
245246
)
246247
}
247248

249+
@Composable
250+
fun BinItem(
251+
modifier: Modifier = Modifier
252+
) {
253+
BaseButton(
254+
modifier = modifier,
255+
title = stringResource(id = R.string.bin),
256+
icon = R.drawable.ic_widget_bin
257+
)
258+
}
259+
260+
@Composable
261+
@DefaultPreviews
262+
private fun BinItemPreview() {
263+
BinItem()
264+
}
265+
248266
@Composable
249267
fun DeleteSpaceItem(
250268
modifier: Modifier = Modifier

feature-ui-settings/src/main/java/com/anytypeio/anytype/ui_settings/space/new_settings/NewSettings.kt

+12
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,18 @@ fun NewSpaceSettingsScreen(
270270
}
271271
}
272272

273+
is UiSpaceSettingsItem.Bin -> {
274+
item {
275+
BinItem(
276+
modifier = Modifier
277+
.fillMaxWidth()
278+
.animateItem()
279+
.clip(RoundedCornerShape(16.dp))
280+
.clickable { uiEvent(UiEvent.OnBinClick) }
281+
)
282+
}
283+
}
284+
273285
is UiSpaceSettingsItem.Section -> {
274286
item {
275287
SpaceSettingsSection(

presentation/src/main/java/com/anytypeio/anytype/presentation/spaces/SpaceSettingsViewModel.kt

+8
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ class SpaceSettingsViewModel(
206206
UiSpaceSettingsItem.Wallpapers(current = wallpaper),
207207
UiSpaceSettingsItem.Section.DataManagement,
208208
UiSpaceSettingsItem.RemoteStorage,
209+
Spacer(height = 8),
210+
UiSpaceSettingsItem.Bin,
209211
UiSpaceSettingsItem.Section.Misc,
210212
UiSpaceSettingsItem.SpaceInfo,
211213
Spacer(height = 8),
@@ -242,6 +244,11 @@ class SpaceSettingsViewModel(
242244
commands.emit(Command.ManageRemoteStorage)
243245
}
244246
}
247+
UiEvent.OnBinClick -> {
248+
viewModelScope.launch {
249+
commands.emit(Command.ManageBin(vmParams.space))
250+
}
251+
}
245252
UiEvent.OnInviteClicked -> {
246253
sendToast("Coming soon")
247254
}
@@ -617,6 +624,7 @@ class SpaceSettingsViewModel(
617624
data class ShareSpaceDebug(val filepath: Filepath) : Command()
618625
data class SharePrivateSpace(val space: SpaceId) : Command()
619626
data class ManageSharedSpace(val space: SpaceId) : Command()
627+
data class ManageBin(val space: SpaceId) : Command()
620628
data class SelectDefaultObjectType(val space: SpaceId, val excludedTypeIds: List<Id>) : Command()
621629
data object ExitToVault : Command()
622630
data object ShowDeleteSpaceWarning : Command()

presentation/src/main/java/com/anytypeio/anytype/presentation/spaces/UiEvent.kt

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ sealed class UiEvent {
1515

1616
data object OnDeleteSpaceClicked : UiEvent()
1717
data object OnRemoteStorageClick : UiEvent()
18+
data object OnBinClick : UiEvent()
1819
data object OnPersonalizationClicked : UiEvent()
1920
data object OnInviteClicked : UiEvent()
2021
data object OnQrCodeClicked : UiEvent()

presentation/src/main/java/com/anytypeio/anytype/presentation/spaces/UiState.kt

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ sealed class UiSpaceSettingsItem {
5050
data class DefaultObjectType(val id: Id?, val name: String, val icon: ObjectIcon) : UiSpaceSettingsItem()
5151
data class Wallpapers(val current: Wallpaper?) : UiSpaceSettingsItem()
5252
data object RemoteStorage : UiSpaceSettingsItem()
53+
data object Bin : UiSpaceSettingsItem()
5354
data object SpaceInfo : UiSpaceSettingsItem()
5455
data object DeleteSpace : UiSpaceSettingsItem()
5556
}

0 commit comments

Comments
 (0)