diff --git a/app/build.gradle b/app/build.gradle index b90b1bfdc..1225098d7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -100,7 +100,7 @@ dependencies { implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2' implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2' - implementation 'io.insert-koin:koin-android:3.1.5' + implementation 'io.insert-koin:koin-android:3.1.6' implementation 'io.coil-kt:coil-base:1.4.0' implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0' implementation 'com.github.solkin:disk-lru-cache:1.4' diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/util/ShrinkOnScrollBehavior.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/util/ShrinkOnScrollBehavior.kt new file mode 100644 index 000000000..526c1e986 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/util/ShrinkOnScrollBehavior.kt @@ -0,0 +1,48 @@ +package org.koitharu.kotatsu.base.ui.util + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior +import androidx.core.view.ViewCompat +import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton + +class ShrinkOnScrollBehavior : Behavior { + + @Suppress("unused") constructor() : super() + @Suppress("unused") constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) + + override fun onStartNestedScroll( + coordinatorLayout: CoordinatorLayout, + child: ExtendedFloatingActionButton, + directTargetChild: View, + target: View, + axes: Int, + type: Int + ): Boolean { + return axes == ViewCompat.SCROLL_AXIS_VERTICAL + } + + override fun onNestedScroll( + coordinatorLayout: CoordinatorLayout, + child: ExtendedFloatingActionButton, + target: View, + dxConsumed: Int, + dyConsumed: Int, + dxUnconsumed: Int, + dyUnconsumed: Int, + type: Int, + consumed: IntArray + ) { + if (dyConsumed > 0) { + if (child.isExtended) { + child.shrink() + } + } else if (dyConsumed < 0) { + if (!child.isExtended) { + child.extend() + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index 091e6ae05..dafc6f28c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -308,17 +308,6 @@ class MainActivity : private fun onLoadingStateChanged(isLoading: Boolean) { binding.fab.isEnabled = !isLoading - if (isLoading) { - binding.fab.setImageDrawable( - CircularProgressDrawable(this).also { - it.setColorSchemeColors(R.color.kotatsu_onPrimaryContainer) - it.strokeWidth = resources.resolveDp(3.5f) - it.start() - } - ) - } else { - binding.fab.setImageResource(R.drawable.ic_read_fill) - } } private fun updateSideMenu(remoteSources: List) { diff --git a/app/src/main/res/drawable/ic_read_fill.xml b/app/src/main/res/drawable/ic_read_fill.xml deleted file mode 100644 index c8f2f2010..000000000 --- a/app/src/main/res/drawable/ic_read_fill.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/layout-w720dp-land/activity_main.xml b/app/src/main/res/layout-w720dp-land/activity_main.xml index abb9f34c9..10570546c 100644 --- a/app/src/main/res/layout-w720dp-land/activity_main.xml +++ b/app/src/main/res/layout-w720dp-land/activity_main.xml @@ -73,19 +73,20 @@ - diff --git a/app/src/main/res/layout/activity_categories.xml b/app/src/main/res/layout/activity_categories.xml index 022e3a397..ff28de4f7 100644 --- a/app/src/main/res/layout/activity_categories.xml +++ b/app/src/main/res/layout/activity_categories.xml @@ -63,6 +63,7 @@ app:icon="@drawable/ic_add" app:layout_anchor="@id/recyclerView" app:layout_anchorGravity="bottom|end" + app:layout_behavior="org.koitharu.kotatsu.base.ui.util.ShrinkOnScrollBehavior" app:layout_dodgeInsetEdges="bottom" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d6b8abfe9..78c3d932c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -67,19 +67,20 @@ -