Skip to content

Commit f3e4f09

Browse files
create TagUiState
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent bf31347 commit f3e4f09

3 files changed

Lines changed: 23 additions & 12 deletions

File tree

app/src/main/java/com/nextcloud/ui/tags/TagManagementBottomSheet.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import androidx.lifecycle.lifecycleScope
1919
import androidx.lifecycle.repeatOnLifecycle
2020
import androidx.recyclerview.widget.LinearLayoutManager
2121
import com.nextcloud.ui.tags.adapter.TagListAdapter
22+
import com.nextcloud.ui.tags.model.TagUiState
2223
import com.google.android.material.bottomsheet.BottomSheetBehavior
2324
import com.google.android.material.bottomsheet.BottomSheetDialog
2425
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
@@ -100,18 +101,18 @@ class TagManagementBottomSheet :
100101
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
101102
viewModel.uiState.collect { state ->
102103
when (state) {
103-
is TagManagementViewModel.TagUiState.Loading -> {
104+
is TagUiState.Loading -> {
104105
binding.loadingIndicator.visibility = View.VISIBLE
105106
binding.tagList.visibility = View.GONE
106107
}
107108

108-
is TagManagementViewModel.TagUiState.Loaded -> {
109+
is TagUiState.Loaded -> {
109110
binding.loadingIndicator.visibility = View.GONE
110111
binding.tagList.visibility = View.VISIBLE
111112
tagAdapter.update(state.allTags, state.assignedTagIds, state.query)
112113
}
113114

114-
is TagManagementViewModel.TagUiState.Error -> {
115+
is TagUiState.Error -> {
115116
binding.loadingIndicator.visibility = View.GONE
116117
binding.tagList.visibility = View.GONE
117118
}

app/src/main/java/com/nextcloud/ui/tags/TagManagementViewModel.kt

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
*/
77
package com.nextcloud.ui.tags
88

9-
import androidx.annotation.StringRes
109
import androidx.lifecycle.ViewModel
1110
import androidx.lifecycle.viewModelScope
1211
import com.nextcloud.client.account.CurrentAccountProvider
12+
import com.nextcloud.ui.tags.model.TagUiState
1313
import com.nextcloud.client.network.ClientFactory
1414
import com.owncloud.android.R
15+
import com.owncloud.android.lib.common.utils.Log_OC
1516
import com.owncloud.android.lib.resources.tags.CreateTagRemoteOperation
1617
import com.owncloud.android.lib.resources.tags.DeleteTagRemoteOperation
1718
import com.owncloud.android.lib.resources.tags.GetTagsRemoteOperation
@@ -29,13 +30,6 @@ class TagManagementViewModel @Inject constructor(
2930
private val currentAccountProvider: CurrentAccountProvider
3031
) : ViewModel() {
3132

32-
sealed interface TagUiState {
33-
object Loading : TagUiState
34-
data class Loaded(val allTags: List<Tag>, val assignedTagIds: Set<String>, val query: String = "") : TagUiState
35-
36-
data class Error(@StringRes val messageId: Int) : TagUiState
37-
}
38-
3933
private val _uiState = MutableStateFlow<TagUiState>(TagUiState.Loading)
4034
val uiState: StateFlow<TagUiState> = _uiState
4135

@@ -147,7 +141,7 @@ class TagManagementViewModel @Inject constructor(
147141
}
148142
}
149143
} catch (e: ClientFactory.CreationException) {
150-
// ignore
144+
Log_OC.e("TagManagement", e.message)
151145
}
152146
}
153147
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
* Nextcloud - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
5+
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
6+
*/
7+
package com.nextcloud.ui.tags.model
8+
9+
import androidx.annotation.StringRes
10+
import com.owncloud.android.lib.resources.tags.Tag
11+
12+
sealed interface TagUiState {
13+
object Loading : TagUiState
14+
data class Loaded(val allTags: List<Tag>, val assignedTagIds: Set<String>, val query: String = "") : TagUiState
15+
data class Error(@StringRes val messageId: Int) : TagUiState
16+
}

0 commit comments

Comments
 (0)