|
|
|
|
@ -2,17 +2,21 @@ package org.koitharu.kotatsu.favourites.ui.categories.select
|
|
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
|
import android.view.MenuItem
|
|
|
|
|
import android.view.View
|
|
|
|
|
import android.view.ViewGroup
|
|
|
|
|
import android.widget.Toast
|
|
|
|
|
import androidx.appcompat.widget.Toolbar
|
|
|
|
|
import androidx.fragment.app.FragmentManager
|
|
|
|
|
import org.koin.androidx.viewmodel.ext.android.viewModel
|
|
|
|
|
import org.koin.core.parameter.parametersOf
|
|
|
|
|
import org.koitharu.kotatsu.R
|
|
|
|
|
import org.koitharu.kotatsu.base.ui.BaseBottomSheet
|
|
|
|
|
import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener
|
|
|
|
|
import org.koitharu.kotatsu.core.model.FavouriteCategory
|
|
|
|
|
import org.koitharu.kotatsu.core.model.parcelable.ParcelableManga
|
|
|
|
|
import org.koitharu.kotatsu.databinding.DialogFavoriteCategoriesBinding
|
|
|
|
|
import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate
|
|
|
|
|
import org.koitharu.kotatsu.favourites.ui.categories.edit.FavouritesCategoryEditActivity
|
|
|
|
|
import org.koitharu.kotatsu.favourites.ui.categories.select.adapter.MangaCategoriesAdapter
|
|
|
|
|
import org.koitharu.kotatsu.favourites.ui.categories.select.model.MangaCategoryItem
|
|
|
|
|
@ -23,7 +27,9 @@ import org.koitharu.kotatsu.utils.ext.withArgs
|
|
|
|
|
class FavouriteCategoriesBottomSheet :
|
|
|
|
|
BaseBottomSheet<DialogFavoriteCategoriesBinding>(),
|
|
|
|
|
OnListItemClickListener<MangaCategoryItem>,
|
|
|
|
|
View.OnClickListener {
|
|
|
|
|
CategoriesEditDelegate.CategoriesEditCallback,
|
|
|
|
|
View.OnClickListener,
|
|
|
|
|
Toolbar.OnMenuItemClickListener {
|
|
|
|
|
|
|
|
|
|
private val viewModel by viewModel<MangaCategoriesViewModel> {
|
|
|
|
|
parametersOf(requireNotNull(arguments?.getParcelableArrayList<ParcelableManga>(KEY_MANGA_LIST)).map { it.manga })
|
|
|
|
|
@ -41,7 +47,7 @@ class FavouriteCategoriesBottomSheet :
|
|
|
|
|
adapter = MangaCategoriesAdapter(this)
|
|
|
|
|
binding.recyclerViewCategories.adapter = adapter
|
|
|
|
|
binding.buttonDone.setOnClickListener(this)
|
|
|
|
|
binding.itemCreate.setOnClickListener(this)
|
|
|
|
|
binding.toolbar.setOnMenuItemClickListener(this)
|
|
|
|
|
|
|
|
|
|
viewModel.content.observe(viewLifecycleOwner, this::onContentChanged)
|
|
|
|
|
viewModel.onError.observe(viewLifecycleOwner, ::onError)
|
|
|
|
|
@ -54,15 +60,24 @@ class FavouriteCategoriesBottomSheet :
|
|
|
|
|
|
|
|
|
|
override fun onClick(v: View) {
|
|
|
|
|
when (v.id) {
|
|
|
|
|
R.id.item_create -> startActivity(FavouritesCategoryEditActivity.newIntent(requireContext()))
|
|
|
|
|
R.id.button_done -> dismiss()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onMenuItemClick(item: MenuItem): Boolean {
|
|
|
|
|
when (item.itemId) {
|
|
|
|
|
R.id.action_create -> startActivity(FavouritesCategoryEditActivity.newIntent(requireContext()))
|
|
|
|
|
else -> return false
|
|
|
|
|
}
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onItemClick(item: MangaCategoryItem, view: View) {
|
|
|
|
|
viewModel.setChecked(item.id, !item.isChecked)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onDeleteCategory(category: FavouriteCategory) = Unit
|
|
|
|
|
|
|
|
|
|
private fun onContentChanged(categories: List<MangaCategoryItem>) {
|
|
|
|
|
adapter?.items = categories
|
|
|
|
|
}
|
|
|
|
|
@ -85,4 +100,4 @@ class FavouriteCategoriesBottomSheet :
|
|
|
|
|
)
|
|
|
|
|
}.show(fm, TAG)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|