Browse Source

Avoid crash when changing spinner indeterminate state

arkon 4 years ago
parent
commit
7191552126

+ 5 - 8
app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterDownloadView.kt

@@ -43,14 +43,11 @@ class ChapterDownloadView @JvmOverloads constructor(context: Context, attrs: Att
             isAnimating = false
         }
 
-        binding.downloadProgress.isVisible = state == Download.State.DOWNLOADING || state == Download.State.QUEUE
-        // Spinner when queued
-        val isDownloading = state == Download.State.DOWNLOADING || (state == Download.State.QUEUE && progress > 0)
-        binding.downloadProgress.isIndeterminate = !isDownloading
-        // Actual progress when downloading or partially downloaded
-        if (isDownloading) {
-            binding.downloadProgress.progress = progress
-        }
+        binding.downloadQueued.isVisible = state == Download.State.QUEUE
+
+        binding.downloadProgress.isVisible = state == Download.State.DOWNLOADING ||
+            (state == Download.State.QUEUE && progress > 0)
+        binding.downloadProgress.progress = progress
 
         binding.downloadedIcon.isVisible = state == Download.State.DOWNLOADED
 

+ 11 - 0
app/src/main/res/layout/chapter_download_view.xml

@@ -31,6 +31,17 @@
         android:id="@+id/download_progress"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:padding="1dp"
+        android:visibility="gone"
+        app:indicatorColor="?android:attr/textColorHint"
+        app:indicatorInset="0dp"
+        app:indicatorSize="24dp"
+        app:trackThickness="2dp" />
+
+    <com.google.android.material.progressindicator.CircularProgressIndicator
+        android:id="@+id/download_queued"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
         android:indeterminate="true"
         android:padding="1dp"
         android:visibility="gone"