From 8e43afe408ba7a0ad91d482d09824d37ee8425c1 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 12 Jul 2022 12:02:36 +0300 Subject: [PATCH 1/2] Prohibit empty names in favourite categories --- .../edit/FavouritesCategoryEditActivity.kt | 16 ++++++++++++++-- .../edit/FavouritesCategoryEditViewModel.kt | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditActivity.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditActivity.kt index 004acfc87..960a92169 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditActivity.kt @@ -3,6 +3,8 @@ package org.koitharu.kotatsu.favourites.ui.categories.edit import android.content.Context import android.content.Intent import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher import android.view.View import android.view.ViewGroup import android.widget.AdapterView @@ -24,7 +26,7 @@ import org.koitharu.kotatsu.parsers.model.SortOrder import org.koitharu.kotatsu.utils.ext.getDisplayMessage class FavouritesCategoryEditActivity : BaseActivity(), AdapterView.OnItemClickListener, - View.OnClickListener { + View.OnClickListener, TextWatcher { private val viewModel by viewModel { parametersOf(intent.getLongExtra(EXTRA_ID, NO_ID)) @@ -40,6 +42,8 @@ class FavouritesCategoryEditActivity : BaseActivity } initSortSpinner() binding.buttonDone.setOnClickListener(this) + binding.editName.addTextChangedListener(this) + afterTextChanged(binding.editName.text) viewModel.onSaved.observe(this) { finishAfterTransition() } viewModel.category.observe(this, ::onCategoryChanged) @@ -66,13 +70,21 @@ class FavouritesCategoryEditActivity : BaseActivity override fun onClick(v: View) { when (v.id) { R.id.button_done -> viewModel.save( - title = binding.editName.text?.toString().orEmpty(), + title = binding.editName.text?.toString()?.trim().orEmpty(), sortOrder = getSelectedSortOrder(), isTrackerEnabled = binding.switchTracker.isChecked, ) } } + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = Unit + + override fun afterTextChanged(s: Editable?) { + binding.buttonDone.isEnabled = !s.isNullOrBlank() + } + override fun onWindowInsetsChanged(insets: Insets) { binding.scrollView.updatePadding( left = insets.left, diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditViewModel.kt index 78446dd14..9f67964bd 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/edit/FavouritesCategoryEditViewModel.kt @@ -42,6 +42,7 @@ class FavouritesCategoryEditViewModel( isTrackerEnabled: Boolean, ) { launchLoadingJob { + check(title.isNotEmpty()) if (categoryId == NO_ID) { repository.createCategory(title, sortOrder, isTrackerEnabled) } else { From fb608ed30a44510c073c0c57f6b300f247825229 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 12 Jul 2022 12:49:49 +0300 Subject: [PATCH 2/2] Fix findProgress function not suspend --- .../main/java/org/koitharu/kotatsu/history/data/HistoryDao.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryDao.kt b/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryDao.kt index f27a0af0e..fc1e1748a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryDao.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/data/HistoryDao.kt @@ -46,7 +46,7 @@ abstract class HistoryDao { abstract fun observeCount(): Flow @Query("SELECT percent FROM history WHERE manga_id = :id") - abstract fun findProgress(id: Long): Float? + abstract suspend fun findProgress(id: Long): Float? @Query("DELETE FROM history") abstract suspend fun clear()