Show progress drawable when backup

This commit is contained in:
tom5079
2021-06-24 19:15:19 +09:00
parent 237d5accc5
commit 975b98e4dc
2 changed files with 26 additions and 4 deletions

View File

@@ -19,11 +19,16 @@
package xyz.quaver.pupil.ui.fragment package xyz.quaver.pupil.ui.fragment
import android.content.Intent import android.content.Intent
import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.view.ViewGroup
import android.widget.EditText import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.updateLayoutParams
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import androidx.swiperefreshlayout.widget.CircularProgressDrawable import androidx.swiperefreshlayout.widget.CircularProgressDrawable
@@ -42,11 +47,24 @@ import java.io.IOException
class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware { class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
private lateinit var progressDrawable: CircularProgressDrawable
override val di by closestDI() override val di by closestDI()
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.manage_favorites_preferences, rootKey) setPreferencesFromResource(R.xml.manage_favorites_preferences, rootKey)
val context = requireContext()
val iconSize = context.resources.getDimensionPixelSize(R.dimen.settings_progressbar_icon_size)
progressDrawable = object: CircularProgressDrawable(context) {
override fun getIntrinsicHeight() = iconSize
override fun getIntrinsicWidth() = iconSize
}.apply {
setStyle(CircularProgressDrawable.DEFAULT)
setColorSchemeColors(ContextCompat.getColor(context, R.color.colorAccent))
}
initPreferences() initPreferences()
} }
@@ -54,6 +72,11 @@ class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
val context = context ?: return val context = context ?: return
findPreference<Preference>("backup")?.setOnPreferenceClickListener { findPreference<Preference>("backup")?.setOnPreferenceClickListener {
MainScope().launch {
it.icon = progressDrawable
progressDrawable.start()
}
val request = Request.Builder() val request = Request.Builder()
.url(context.getString(R.string.backup_url)) .url(context.getString(R.string.backup_url))
.post( .post(
@@ -62,10 +85,6 @@ class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
.build() .build()
).build() ).build()
MainScope().launch {
it.icon = CircularProgressDrawable(context)
}
client.newCall(request).enqueue(object: Callback { client.newCall(request).enqueue(object: Callback {
override fun onFailure(call: Call, e: IOException) { override fun onFailure(call: Call, e: IOException) {
val view = view ?: return val view = view ?: return
@@ -79,6 +98,7 @@ class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
} }
MainScope().launch { MainScope().launch {
progressDrawable.stop()
it.icon = null it.icon = null
} }

View File

@@ -14,4 +14,6 @@
<dimen name="thumbnail_page_height">300dp</dimen> <dimen name="thumbnail_page_height">300dp</dimen>
<dimen name="gallery_dialog_preview_height">150dp</dimen> <dimen name="gallery_dialog_preview_height">150dp</dimen>
<dimen name="settings_progressbar_icon_size">24dp</dimen>
</resources> </resources>