Skip to content

Commit cd403ec

Browse files
committed
Improved scope filter
1 parent 1b8d947 commit cd403ec

File tree

4 files changed

+10
-17
lines changed

4 files changed

+10
-17
lines changed

app/src/main/java/dev/snipme/snipmeapp/channel/main/MainModel.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ class MainModel(
8989
filterState = SnippetFilters(
9090
languages = listOf(SNIPPET_FILTER_ALL),
9191
selectedLanguages = listOf(SNIPPET_FILTER_ALL),
92-
scopes = listOf("All", "Visible", "Hidden"),
93-
selectedScope = "Visible"
92+
scopes = SnippetScope.entries.map { it.visibleName },
93+
selectedScope = SnippetScope.ALL.visibleName
9494
)
9595

9696
setupDemoSnippets()
@@ -152,7 +152,7 @@ class MainModel(
152152
pages: Int = 1,
153153
scope: SnippetScope = SnippetScope.ALL
154154
) {
155-
getSnippets(scope, pages)
155+
getSnippets(scope)
156156
.subscribeOn(Schedulers.io())
157157
.subscribeBy(
158158
onSuccess = {

app/src/main/java/dev/snipme/snipmeapp/di/UseCaseModule.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ internal val useCaseModule = module {
4444
// User
4545
factory { GetSingleUserUseCase(get(), get(), get(), get()) }
4646
// Snippet
47-
factory { GetSnippetsUseCase(get(), get(), get()) }
47+
factory { GetSnippetsUseCase(get()) }
4848
factory { GetSingleSnippetUseCase(get(), get(), get()) }
4949
factory { HasMoreSnippetPagesUseCase(get(), get(), get()) }
5050
factory { CreateSnippetUseCase(get(), get(), get()) }
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
package dev.snipme.snipmeapp.domain.snippets
22

3-
import dev.snipme.snipmeapp.domain.auth.AuthorizationUseCase
43
import dev.snipme.snipmeapp.domain.repository.snippet.SnippetRepository
5-
import dev.snipme.snipmeapp.domain.user.GetSingleUserUseCase
64
import io.reactivex.Single
75

86
class GetSnippetsUseCase(
9-
private val auth: AuthorizationUseCase,
107
private val repository: SnippetRepository,
11-
private val getSingleUser: GetSingleUserUseCase
128
) {
13-
operator fun invoke(scope: SnippetScope, page: Int): Single<List<Snippet>> =
14-
auth()
15-
.andThen(getSingleUser())
16-
.flatMap { user ->
17-
repository.snippets()
18-
.map { list -> list.sortedByDescending { it.modifiedAt.time } }
19-
}
9+
operator fun invoke(scope: SnippetScope): Single<List<Snippet>> =
10+
repository.snippets()
11+
.map { it.filter { snippet -> snippet.visibility.name.lowercase() == scope.visibleName.lowercase() } }
12+
.map { list -> list.sortedByDescending { it.modifiedAt.time } }
2013
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package dev.snipme.snipmeapp.domain.snippets
22

3-
enum class SnippetScope {
4-
ALL, PUBLIC, OWNED, SHARED_FOR;
3+
enum class SnippetScope(val visibleName: String) {
4+
ALL("All"), VISIBLE("Visible"), HIDDEN("Hidden");
55
}
66

77
fun SnippetScope.value() = this.name.toLowerCase()

0 commit comments

Comments
 (0)