Minor edits

This commit is contained in:
arkon 2020-04-25 11:05:29 -04:00
parent bbf456a4aa
commit 902700e1f4
5 changed files with 37 additions and 32 deletions

View file

@ -29,9 +29,6 @@ class DownloadStore(
*/ */
private val gson: Gson by injectLazy() private val gson: Gson by injectLazy()
/**
* Database helper.
*/
private val db: DatabaseHelper by injectLazy() private val db: DatabaseHelper by injectLazy()
/** /**

View file

@ -19,6 +19,13 @@ import eu.kanade.tachiyomi.util.view.inflate
import eu.kanade.tachiyomi.widget.AutofitRecyclerView import eu.kanade.tachiyomi.widget.AutofitRecyclerView
import kotlinx.android.synthetic.main.library_category.view.fast_scroller import kotlinx.android.synthetic.main.library_category.view.fast_scroller
import kotlinx.android.synthetic.main.library_category.view.swipe_refresh import kotlinx.android.synthetic.main.library_category.view.swipe_refresh
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.recyclerview.scrollStateChanges
import reactivecircus.flowbinding.swiperefreshlayout.refreshes
import rx.subscriptions.CompositeSubscription import rx.subscriptions.CompositeSubscription
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
@ -30,9 +37,8 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
FlexibleAdapter.OnItemClickListener, FlexibleAdapter.OnItemClickListener,
FlexibleAdapter.OnItemLongClickListener { FlexibleAdapter.OnItemLongClickListener {
/** private val scope = CoroutineScope(Job() + Dispatchers.Main)
* Preferences.
*/
private val preferences: PreferencesHelper by injectLazy() private val preferences: PreferencesHelper by injectLazy()
/** /**
@ -83,25 +89,27 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att
swipe_refresh.addView(recycler) swipe_refresh.addView(recycler)
adapter.fastScroller = fast_scroller adapter.fastScroller = fast_scroller
recycler.addOnScrollListener(object : RecyclerView.OnScrollListener() { recycler.scrollStateChanges()
override fun onScrollStateChanged(recycler: RecyclerView, newState: Int) { .onEach {
// Disable swipe refresh when view is not at the top // Disable swipe refresh when view is not at the top
val firstPos = (recycler.layoutManager as LinearLayoutManager) val firstPos = (recycler.layoutManager as LinearLayoutManager)
.findFirstCompletelyVisibleItemPosition() .findFirstCompletelyVisibleItemPosition()
swipe_refresh.isEnabled = firstPos <= 0 swipe_refresh.isEnabled = firstPos <= 0
} }
}) .launchIn(scope)
// Double the distance required to trigger sync // Double the distance required to trigger sync
swipe_refresh.setDistanceToTriggerSync((2 * 64 * resources.displayMetrics.density).toInt()) swipe_refresh.setDistanceToTriggerSync((2 * 64 * resources.displayMetrics.density).toInt())
swipe_refresh.setOnRefreshListener { swipe_refresh.refreshes()
if (LibraryUpdateService.start(context, category)) { .onEach {
context.toast(R.string.updating_category) if (LibraryUpdateService.start(context, category)) {
} context.toast(R.string.updating_category)
}
// It can be a very long operation, so we disable swipe refresh and show a toast. // It can be a very long operation, so we disable swipe refresh and show a toast.
swipe_refresh.isRefreshing = false swipe_refresh.isRefreshing = false
} }
.launchIn(scope)
} }
fun onBind(category: Category) { fun onBind(category: Category) {

View file

@ -62,7 +62,7 @@ class LibrarySettingsSheet(
private val filterGroup = FilterGroup() private val filterGroup = FilterGroup()
init { init {
addGroups(listOf(filterGroup)) setGroups(listOf(filterGroup))
} }
/** /**
@ -110,7 +110,7 @@ class LibrarySettingsSheet(
Settings(context, attrs) { Settings(context, attrs) {
init { init {
addGroups(listOf(SortGroup())) setGroups(listOf(SortGroup()))
} }
inner class SortGroup : Group { inner class SortGroup : Group {
@ -185,7 +185,7 @@ class LibrarySettingsSheet(
Settings(context, attrs) { Settings(context, attrs) {
init { init {
addGroups(listOf(DisplayGroup(), BadgeGroup())) setGroups(listOf(DisplayGroup(), BadgeGroup()))
} }
inner class DisplayGroup : Group { inner class DisplayGroup : Group {
@ -247,15 +247,12 @@ class LibrarySettingsSheet(
*/ */
var onGroupClicked: (Group) -> Unit = {} var onGroupClicked: (Group) -> Unit = {}
init { fun setGroups(groups: List<Group>) {
addView(recycler)
}
fun addGroups(groups: List<Group>) {
adapter = Adapter(groups.map { it.createItems() }.flatten()) adapter = Adapter(groups.map { it.createItems() }.flatten())
recycler.adapter = adapter recycler.adapter = adapter
groups.forEach { it.initModels() } groups.forEach { it.initModels() }
addView(recycler)
} }
/** /**

View file

@ -21,6 +21,10 @@ import eu.kanade.tachiyomi.util.system.openInBrowser
import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.toast
import eu.kanade.tachiyomi.util.view.invisible import eu.kanade.tachiyomi.util.view.invisible
import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.util.view.visible
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.appcompat.navigationClicks
import reactivecircus.flowbinding.swiperefreshlayout.refreshes
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
class WebViewActivity : BaseActivity<WebviewActivityBinding>() { class WebViewActivity : BaseActivity<WebviewActivityBinding>() {
@ -38,14 +42,14 @@ class WebViewActivity : BaseActivity<WebviewActivityBinding>() {
title = intent.extras?.getString(TITLE_KEY) title = intent.extras?.getString(TITLE_KEY)
setSupportActionBar(binding.toolbar) setSupportActionBar(binding.toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayHomeAsUpEnabled(true)
binding.toolbar.setNavigationOnClickListener { binding.toolbar.navigationClicks()
super.onBackPressed() .onEach { super.onBackPressed() }
} .launchIn(scope)
binding.swipeRefresh.isEnabled = false binding.swipeRefresh.isEnabled = false
binding.swipeRefresh.setOnRefreshListener { binding.swipeRefresh.refreshes()
refreshPage() .onEach { refreshPage() }
} .launchIn(scope)
if (bundle == null) { if (bundle == null) {
val url = intent.extras!!.getString(URL_KEY) ?: return val url = intent.extras!!.getString(URL_KEY) ?: return

View file

@ -54,7 +54,6 @@
android:layout_height="0dp" android:layout_height="0dp"
android:layout_gravity="top" android:layout_gravity="top"
android:layout_weight="1" android:layout_weight="1"
android:paddingTop="8dp"
android:paddingBottom="8dp" /> android:paddingBottom="8dp" />
</LinearLayout> </LinearLayout>