From 2b0c28938bfd74577d2ff0736b2cc72f4e4705cf Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:11:41 +0600 Subject: [PATCH] Remove alphabetical category sort option (#1781) --- CHANGELOG.md | 3 ++ .../presentation/category/CategoryScreen.kt | 16 ---------- .../category/components/CategoryDialogs.kt | 29 ------------------- .../tachiyomi/ui/category/CategoryScreen.kt | 8 ----- .../ui/category/CategoryScreenModel.kt | 12 +------- .../category/interactor/ReorderCategory.kt | 24 +-------------- .../moko-resources/base/strings.xml | 2 -- 7 files changed, 5 insertions(+), 89 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43fd38873..496f255ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,9 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co - Fix App's preferences referencing deleted categories ([@cuong-tran](https://github.com/cuong-tran)) ([#1734](https://github.com/mihonapp/mihon/pull/1734)) - Fix backup/restore of category related preferences ([@cuong-tran](https://github.com/cuong-tran)) ([#1726](https://github.com/mihonapp/mihon/pull/1726)) +### Removed +- Remove alphabetical category sort option + ### Other - Add zoned "Current time" to debug info and include year & timezone in logcat output ([@MajorTanya](https://github.com/MajorTanya)) ([#1672](https://github.com/mihonapp/mihon/pull/1672)) diff --git a/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt b/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt index 43d03bfaf..e26a6bfea 100644 --- a/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt @@ -8,8 +8,6 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.SortByAlpha import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -19,9 +17,7 @@ import androidx.compose.ui.Modifier import eu.kanade.presentation.category.components.CategoryFloatingActionButton import eu.kanade.presentation.category.components.CategoryListItem import eu.kanade.presentation.components.AppBar -import eu.kanade.presentation.components.AppBarActions import eu.kanade.tachiyomi.ui.category.CategoryScreenState -import kotlinx.collections.immutable.persistentListOf import sh.calvin.reorderable.ReorderableItem import sh.calvin.reorderable.rememberReorderableLazyListState import tachiyomi.domain.category.model.Category @@ -37,7 +33,6 @@ import tachiyomi.presentation.core.util.plus fun CategoryScreen( state: CategoryScreenState.Success, onClickCreate: () -> Unit, - onClickSortAlphabetically: () -> Unit, onClickRename: (Category) -> Unit, onClickDelete: (Category) -> Unit, onChangeOrder: (Category, Int) -> Unit, @@ -49,17 +44,6 @@ fun CategoryScreen( AppBar( title = stringResource(MR.strings.action_edit_categories), navigateUp = navigateUp, - actions = { - AppBarActions( - persistentListOf( - AppBar.Action( - title = stringResource(MR.strings.action_sort), - icon = Icons.Outlined.SortByAlpha, - onClick = onClickSortAlphabetically, - ), - ), - ) - }, scrollBehavior = scrollBehavior, ) }, diff --git a/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt b/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt index 7709d960f..38e15e1ff 100644 --- a/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt +++ b/app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt @@ -193,35 +193,6 @@ fun CategoryDeleteDialog( ) } -@Composable -fun CategorySortAlphabeticallyDialog( - onDismissRequest: () -> Unit, - onSort: () -> Unit, -) { - AlertDialog( - onDismissRequest = onDismissRequest, - confirmButton = { - TextButton(onClick = { - onSort() - onDismissRequest() - }) { - Text(text = stringResource(MR.strings.action_ok)) - } - }, - dismissButton = { - TextButton(onClick = onDismissRequest) { - Text(text = stringResource(MR.strings.action_cancel)) - } - }, - title = { - Text(text = stringResource(MR.strings.action_sort_category)) - }, - text = { - Text(text = stringResource(MR.strings.sort_category_confirmation)) - }, - ) -} - @Composable fun ChangeCategoryDialog( initialSelection: ImmutableList>, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreen.kt index 4bafb277f..6d20c630e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreen.kt @@ -13,7 +13,6 @@ import eu.kanade.presentation.category.CategoryScreen import eu.kanade.presentation.category.components.CategoryCreateDialog import eu.kanade.presentation.category.components.CategoryDeleteDialog import eu.kanade.presentation.category.components.CategoryRenameDialog -import eu.kanade.presentation.category.components.CategorySortAlphabeticallyDialog import eu.kanade.presentation.util.Screen import eu.kanade.tachiyomi.util.system.toast import kotlinx.collections.immutable.toImmutableList @@ -40,7 +39,6 @@ class CategoryScreen : Screen() { CategoryScreen( state = successState, onClickCreate = { screenModel.showDialog(CategoryDialog.Create) }, - onClickSortAlphabetically = { screenModel.showDialog(CategoryDialog.SortAlphabetically) }, onClickRename = { screenModel.showDialog(CategoryDialog.Rename(it)) }, onClickDelete = { screenModel.showDialog(CategoryDialog.Delete(it)) }, onChangeOrder = screenModel::changeOrder, @@ -71,12 +69,6 @@ class CategoryScreen : Screen() { category = dialog.category.name, ) } - is CategoryDialog.SortAlphabetically -> { - CategorySortAlphabeticallyDialog( - onDismissRequest = screenModel::dismissDialog, - onSort = { screenModel.sortAlphabetically() }, - ) - } } LaunchedEffect(Unit) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt index 09c543479..b98b77e4e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreenModel.kt @@ -65,18 +65,9 @@ class CategoryScreenModel( } } - fun sortAlphabetically() { - screenModelScope.launch { - when (reorderCategory.sortAlphabetically()) { - is ReorderCategory.Result.InternalError -> _events.send(CategoryEvent.InternalError) - else -> {} - } - } - } - fun changeOrder(category: Category, newIndex: Int) { screenModelScope.launch { - when (reorderCategory.changeOrder(category, newIndex)) { + when (reorderCategory.await(category, newIndex)) { is ReorderCategory.Result.InternalError -> _events.send(CategoryEvent.InternalError) else -> {} } @@ -113,7 +104,6 @@ class CategoryScreenModel( sealed interface CategoryDialog { data object Create : CategoryDialog - data object SortAlphabetically : CategoryDialog data class Rename(val category: Category) : CategoryDialog data class Delete(val category: Category) : CategoryDialog } diff --git a/domain/src/main/java/tachiyomi/domain/category/interactor/ReorderCategory.kt b/domain/src/main/java/tachiyomi/domain/category/interactor/ReorderCategory.kt index 4f91a9901..498366154 100644 --- a/domain/src/main/java/tachiyomi/domain/category/interactor/ReorderCategory.kt +++ b/domain/src/main/java/tachiyomi/domain/category/interactor/ReorderCategory.kt @@ -12,10 +12,9 @@ import tachiyomi.domain.category.repository.CategoryRepository class ReorderCategory( private val categoryRepository: CategoryRepository, ) { - private val mutex = Mutex() - suspend fun changeOrder(category: Category, newIndex: Int) = withNonCancellableContext { + suspend fun await(category: Category, newIndex: Int) = withNonCancellableContext { mutex.withLock { val categories = categoryRepository.getAll() .filterNot(Category::isSystemCategory) @@ -45,27 +44,6 @@ class ReorderCategory( } } - suspend fun sortAlphabetically() = withNonCancellableContext { - mutex.withLock { - val updates = categoryRepository.getAll() - .sortedBy { category -> category.name } - .mapIndexed { index, category -> - CategoryUpdate( - id = category.id, - order = index.toLong(), - ) - } - - try { - categoryRepository.updatePartial(updates) - Result.Success - } catch (e: Exception) { - logcat(LogPriority.ERROR, e) - Result.InternalError(e) - } - } - } - sealed interface Result { data object Success : Result data object Unchanged : Result diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index 2ca4e9249..694a1dbe3 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -97,8 +97,6 @@ Set categories Do you wish to delete the category \"%s\"? Delete category - Sort categories - Would you like to sort the categories alphabetically? Edit cover View chapters Pause