Avoid crash when changing spinner indeterminate state

This commit is contained in:
arkon 2021-02-05 23:13:57 -05:00
parent cfa07490e5
commit 7191552126
2 changed files with 16 additions and 8 deletions

View File

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

View File

@ -31,6 +31,17 @@
android:id="@+id/download_progress" android:id="@+id/download_progress"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="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:indeterminate="true"
android:padding="1dp" android:padding="1dp"
android:visibility="gone" android:visibility="gone"