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

View File

@ -62,7 +62,7 @@ class LibrarySettingsSheet(
private val filterGroup = FilterGroup()
init {
addGroups(listOf(filterGroup))
setGroups(listOf(filterGroup))
}
/**
@ -110,7 +110,7 @@ class LibrarySettingsSheet(
Settings(context, attrs) {
init {
addGroups(listOf(SortGroup()))
setGroups(listOf(SortGroup()))
}
inner class SortGroup : Group {
@ -185,7 +185,7 @@ class LibrarySettingsSheet(
Settings(context, attrs) {
init {
addGroups(listOf(DisplayGroup(), BadgeGroup()))
setGroups(listOf(DisplayGroup(), BadgeGroup()))
}
inner class DisplayGroup : Group {
@ -247,15 +247,12 @@ class LibrarySettingsSheet(
*/
var onGroupClicked: (Group) -> Unit = {}
init {
addView(recycler)
}
fun addGroups(groups: List<Group>) {
fun setGroups(groups: List<Group>) {
adapter = Adapter(groups.map { it.createItems() }.flatten())
recycler.adapter = adapter
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.view.invisible
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
class WebViewActivity : BaseActivity<WebviewActivityBinding>() {
@ -38,14 +42,14 @@ class WebViewActivity : BaseActivity<WebviewActivityBinding>() {
title = intent.extras?.getString(TITLE_KEY)
setSupportActionBar(binding.toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
binding.toolbar.setNavigationOnClickListener {
super.onBackPressed()
}
binding.toolbar.navigationClicks()
.onEach { super.onBackPressed() }
.launchIn(scope)
binding.swipeRefresh.isEnabled = false
binding.swipeRefresh.setOnRefreshListener {
refreshPage()
}
binding.swipeRefresh.refreshes()
.onEach { refreshPage() }
.launchIn(scope)
if (bundle == null) {
val url = intent.extras!!.getString(URL_KEY) ?: return

View File

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