Prohibit empty names in favourite categories
This commit is contained in:
@@ -3,6 +3,8 @@ package org.koitharu.kotatsu.favourites.ui.categories.edit
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.text.Editable
|
||||||
|
import android.text.TextWatcher
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.AdapterView
|
import android.widget.AdapterView
|
||||||
@@ -24,7 +26,7 @@ import org.koitharu.kotatsu.parsers.model.SortOrder
|
|||||||
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
|
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
|
||||||
|
|
||||||
class FavouritesCategoryEditActivity : BaseActivity<ActivityCategoryEditBinding>(), AdapterView.OnItemClickListener,
|
class FavouritesCategoryEditActivity : BaseActivity<ActivityCategoryEditBinding>(), AdapterView.OnItemClickListener,
|
||||||
View.OnClickListener {
|
View.OnClickListener, TextWatcher {
|
||||||
|
|
||||||
private val viewModel by viewModel<FavouritesCategoryEditViewModel> {
|
private val viewModel by viewModel<FavouritesCategoryEditViewModel> {
|
||||||
parametersOf(intent.getLongExtra(EXTRA_ID, NO_ID))
|
parametersOf(intent.getLongExtra(EXTRA_ID, NO_ID))
|
||||||
@@ -40,6 +42,8 @@ class FavouritesCategoryEditActivity : BaseActivity<ActivityCategoryEditBinding>
|
|||||||
}
|
}
|
||||||
initSortSpinner()
|
initSortSpinner()
|
||||||
binding.buttonDone.setOnClickListener(this)
|
binding.buttonDone.setOnClickListener(this)
|
||||||
|
binding.editName.addTextChangedListener(this)
|
||||||
|
afterTextChanged(binding.editName.text)
|
||||||
|
|
||||||
viewModel.onSaved.observe(this) { finishAfterTransition() }
|
viewModel.onSaved.observe(this) { finishAfterTransition() }
|
||||||
viewModel.category.observe(this, ::onCategoryChanged)
|
viewModel.category.observe(this, ::onCategoryChanged)
|
||||||
@@ -66,13 +70,21 @@ class FavouritesCategoryEditActivity : BaseActivity<ActivityCategoryEditBinding>
|
|||||||
override fun onClick(v: View) {
|
override fun onClick(v: View) {
|
||||||
when (v.id) {
|
when (v.id) {
|
||||||
R.id.button_done -> viewModel.save(
|
R.id.button_done -> viewModel.save(
|
||||||
title = binding.editName.text?.toString().orEmpty(),
|
title = binding.editName.text?.toString()?.trim().orEmpty(),
|
||||||
sortOrder = getSelectedSortOrder(),
|
sortOrder = getSelectedSortOrder(),
|
||||||
isTrackerEnabled = binding.switchTracker.isChecked,
|
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) {
|
override fun onWindowInsetsChanged(insets: Insets) {
|
||||||
binding.scrollView.updatePadding(
|
binding.scrollView.updatePadding(
|
||||||
left = insets.left,
|
left = insets.left,
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class FavouritesCategoryEditViewModel(
|
|||||||
isTrackerEnabled: Boolean,
|
isTrackerEnabled: Boolean,
|
||||||
) {
|
) {
|
||||||
launchLoadingJob {
|
launchLoadingJob {
|
||||||
|
check(title.isNotEmpty())
|
||||||
if (categoryId == NO_ID) {
|
if (categoryId == NO_ID) {
|
||||||
repository.createCategory(title, sortOrder, isTrackerEnabled)
|
repository.createCategory(title, sortOrder, isTrackerEnabled)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user