Эх сурвалжийг харах

Remove old FastScroller

Not sure if this will return to the download queue screen, you really
shouldn't be downloading a ton of stuff at once anyway?
arkon 1 жил өмнө
parent
commit
1668be8587

+ 6 - 14
app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt

@@ -1,13 +1,13 @@
 package eu.kanade.tachiyomi.ui.download
 
 import android.view.LayoutInflater
-import android.view.ViewGroup
 import androidx.compose.animation.AnimatedVisibility
 import androidx.compose.animation.fadeIn
 import androidx.compose.animation.fadeOut
 import androidx.compose.foundation.isSystemInDarkTheme
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.PlayArrow
@@ -42,7 +42,6 @@ import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import androidx.compose.ui.viewinterop.AndroidView
 import androidx.core.view.ViewCompat
-import androidx.core.view.updateLayoutParams
 import androidx.core.view.updatePadding
 import androidx.recyclerview.widget.LinearLayoutManager
 import cafe.adriel.voyager.core.model.rememberScreenModel
@@ -243,6 +242,7 @@ object DownloadQueueScreen : Screen() {
                 )
                 return@Scaffold
             }
+
             val density = LocalDensity.current
             val layoutDirection = LocalLayoutDirection.current
             val left = with(density) { contentPadding.calculateLeftPadding(layoutDirection).toPx().roundToInt() }
@@ -252,13 +252,13 @@ object DownloadQueueScreen : Screen() {
 
             Box(modifier = Modifier.nestedScroll(nestedScrollConnection)) {
                 AndroidView(
+                    modifier = Modifier.fillMaxWidth(),
                     factory = { context ->
                         screenModel.controllerBinding = DownloadListBinding.inflate(LayoutInflater.from(context))
                         screenModel.adapter = DownloadAdapter(screenModel.listener)
-                        screenModel.controllerBinding.recycler.adapter = screenModel.adapter
+                        screenModel.controllerBinding.root.adapter = screenModel.adapter
                         screenModel.adapter?.isHandleDragEnabled = true
-                        screenModel.adapter?.fastScroller = screenModel.controllerBinding.fastScroller
-                        screenModel.controllerBinding.recycler.layoutManager = LinearLayoutManager(context)
+                        screenModel.controllerBinding.root.layoutManager = LinearLayoutManager(context)
 
                         ViewCompat.setNestedScrollingEnabled(screenModel.controllerBinding.root, true)
 
@@ -274,7 +274,7 @@ object DownloadQueueScreen : Screen() {
                         screenModel.controllerBinding.root
                     },
                     update = {
-                        screenModel.controllerBinding.recycler
+                        screenModel.controllerBinding.root
                             .updatePadding(
                                 left = left,
                                 top = top,
@@ -282,14 +282,6 @@ object DownloadQueueScreen : Screen() {
                                 bottom = bottom,
                             )
 
-                        screenModel.controllerBinding.fastScroller
-                            .updateLayoutParams<ViewGroup.MarginLayoutParams> {
-                                leftMargin = left
-                                topMargin = top
-                                rightMargin = right
-                                bottomMargin = bottom
-                            }
-
                         screenModel.adapter?.updateDataSet(downloadList)
                     },
                 )

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreenModel.kt

@@ -258,6 +258,6 @@ class DownloadQueueScreenModel(
      * @return the holder of the download or null if it's not bound.
      */
     private fun getHolder(download: Download): DownloadHolder? {
-        return controllerBinding.recycler.findViewHolderForItemId(download.chapter.id) as? DownloadHolder
+        return controllerBinding.root.findViewHolderForItemId(download.chapter.id) as? DownloadHolder
     }
 }

+ 0 - 14
app/src/main/java/eu/kanade/tachiyomi/util/system/DisplayExtensions.kt

@@ -3,9 +3,7 @@ package eu.kanade.tachiyomi.util.system
 import android.app.Activity
 import android.content.Context
 import android.content.res.Configuration
-import android.content.res.Resources
 import android.os.Build
-import android.view.View
 import eu.kanade.domain.ui.UiPreferences
 import eu.kanade.domain.ui.model.TabletUiMode
 import uy.kohesive.injekt.Injekt
@@ -64,18 +62,6 @@ fun Context.isNightMode(): Boolean {
     return resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES
 }
 
-val Resources.isLTR
-    get() = configuration.layoutDirection == View.LAYOUT_DIRECTION_LTR
-
-/**
- * Converts to px and takes into account LTR/RTL layout.
- */
-val Float.dpToPxEnd: Float
-    get() = (
-        this * Resources.getSystem().displayMetrics.density *
-            if (Resources.getSystem().isLTR) 1 else -1
-        )
-
 /**
  * Checks whether if the device has a display cutout (i.e. notch, camera cutout, etc.).
  *

+ 0 - 92
app/src/main/java/eu/kanade/tachiyomi/widget/MaterialFastScroll.kt

@@ -1,92 +0,0 @@
-package eu.kanade.tachiyomi.widget
-
-import android.annotation.SuppressLint
-import android.content.Context
-import android.util.AttributeSet
-import android.view.MotionEvent
-import androidx.core.view.ViewCompat
-import dev.chrisbanes.insetter.applyInsetter
-import eu.davidea.fastscroller.FastScroller
-import eu.kanade.tachiyomi.R
-import eu.kanade.tachiyomi.util.system.dpToPxEnd
-import eu.kanade.tachiyomi.util.system.isLTR
-
-class MaterialFastScroll @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
-    FastScroller(context, attrs) {
-
-    init {
-        setViewsToUse(
-            R.layout.material_fastscroll,
-            R.id.fast_scroller_bubble,
-            R.id.fast_scroller_handle,
-        )
-        autoHideEnabled = true
-        ignoreTouchesOutsideHandle = true
-
-        applyInsetter {
-            type(navigationBars = true) {
-                margin()
-            }
-        }
-    }
-
-    // Overridden to handle RTL
-    @SuppressLint("ClickableViewAccessibility")
-    override fun onTouchEvent(event: MotionEvent): Boolean {
-        if (recyclerView.computeVerticalScrollRange() <= recyclerView.computeVerticalScrollExtent()) {
-            return super.onTouchEvent(event)
-        }
-
-        when (event.action) {
-            MotionEvent.ACTION_DOWN -> {
-                // start: handle RTL differently
-                if (
-                    if (context.resources.isLTR) {
-                        event.x < handle.x - ViewCompat.getPaddingStart(handle)
-                    } else {
-                        event.x > handle.width + ViewCompat.getPaddingStart(handle)
-                    }
-                ) {
-                    return false
-                }
-                // end
-
-                if (ignoreTouchesOutsideHandle &&
-                    (event.y < handle.y || event.y > handle.y + handle.height)
-                ) {
-                    return false
-                }
-                handle.isSelected = true
-                notifyScrollStateChange(true)
-                showBubble()
-                showScrollbar()
-                val y = event.y
-                setBubbleAndHandlePosition(y)
-                setRecyclerViewPosition(y)
-                return true
-            }
-            MotionEvent.ACTION_MOVE -> {
-                val y = event.y
-                setBubbleAndHandlePosition(y)
-                setRecyclerViewPosition(y)
-                return true
-            }
-            MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
-                handle.isSelected = false
-                notifyScrollStateChange(false)
-                hideBubble()
-                if (autoHideEnabled) hideScrollbar()
-                return true
-            }
-        }
-        return super.onTouchEvent(event)
-    }
-
-    override fun setBubbleAndHandlePosition(y: Float) {
-        super.setBubbleAndHandlePosition(y)
-        if (bubbleEnabled) {
-            bubble.y = handle.y - bubble.height / 2f + handle.height / 2f
-            bubble.translationX = (-45f).dpToPxEnd
-        }
-    }
-}

+ 0 - 17
app/src/main/res/drawable/material_thumb_drawable.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_selected="true">
-        <shape android:shape="rectangle">
-            <corners android:radius="8dp" />
-            <solid android:color="?attr/colorAccent" />
-            <size android:width="6dp" android:height="54dp" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="rectangle">
-            <corners android:radius="8dp" />
-            <solid android:color="@color/fast_scroller_handle_idle" />
-            <size android:width="6dp" android:height="54dp" />
-        </shape>
-    </item>
-</selector>

+ 4 - 21
app/src/main/res/layout/download_list.xml

@@ -1,24 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
+<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/frame_container"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/recycler"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:clipToPadding="false"
-        tools:listitem="@layout/download_item" />
-
-    <eu.kanade.tachiyomi.widget.MaterialFastScroll
-        android:id="@+id/fast_scroller"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_gravity="end"
-        app:fastScrollerBubbleEnabled="false"
-        tools:visibility="visible" />
-
-</FrameLayout>
+    android:layout_height="match_parent"
+    android:clipToPadding="false"
+    tools:listitem="@layout/download_item" />

+ 0 - 43
app/src/main/res/layout/material_fastscroll.xml

@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merge xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="wrap_content"
-    android:layout_height="match_parent">
-
-    <View
-        android:id="@+id/fast_scroller_bar"
-        android:layout_width="7dp"
-        android:layout_height="match_parent"
-        android:layout_gravity="end"
-        android:background="@null" />
-
-    <RelativeLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="end">
-
-        <!-- No margin, use padding at the handle -->
-        <com.google.android.material.textview.MaterialTextView
-            android:id="@+id/fast_scroller_bubble"
-            style="@style/FloatingTextView"
-            android:layout_gravity="end|center_vertical"
-            android:layout_toStartOf="@+id/fast_scroller_handle"
-            android:gravity="center"
-            android:visibility="gone"
-            tools:text="A"
-            tools:visibility="visible" />
-
-        <!-- Padding is here to have better grab -->
-        <ImageView
-            android:id="@+id/fast_scroller_handle"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentEnd="true"
-            android:contentDescription="@null"
-            android:paddingStart="6dp"
-            android:paddingEnd="4dp"
-            android:src="@drawable/material_thumb_drawable" />
-
-    </RelativeLayout>
-
-</merge>

+ 0 - 15
app/src/main/res/values/styles.xml

@@ -56,21 +56,6 @@
     </style>
 
 
-    <!--============-->
-    <!--FastScroller-->
-    <!--============-->
-    <style name="FloatingTextView" parent="TextAppearance.AppCompat">
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:elevation">5dp</item>
-        <item name="android:paddingStart">12dp</item>
-        <item name="android:paddingEnd">12dp</item>
-        <item name="android:paddingTop">8dp</item>
-        <item name="android:paddingBottom">8dp</item>
-        <item name="android:textColor">?attr/colorOnPrimary</item>
-        <item name="android:textSize">15sp</item>
-    </style>
-
     <!--===========-->
     <!--Preferences-->
     <!--===========-->