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
import android.content.Intent
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.ViewGroup
import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.updateLayoutParams
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.swiperefreshlayout.widget.CircularProgressDrawable
@@ -42,11 +47,24 @@ import java.io.IOException
class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
private lateinit var progressDrawable: CircularProgressDrawable
override val di by closestDI()
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
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()
}
@@ -54,6 +72,11 @@ class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
val context = context ?: return
findPreference<Preference>("backup")?.setOnPreferenceClickListener {
MainScope().launch {
it.icon = progressDrawable
progressDrawable.start()
}
val request = Request.Builder()
.url(context.getString(R.string.backup_url))
.post(
@@ -62,10 +85,6 @@ class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
.build()
).build()
MainScope().launch {
it.icon = CircularProgressDrawable(context)
}
client.newCall(request).enqueue(object: Callback {
override fun onFailure(call: Call, e: IOException) {
val view = view ?: return
@@ -79,6 +98,7 @@ class ManageFavoritesFragment : PreferenceFragmentCompat(), DIAware {
}
MainScope().launch {
progressDrawable.stop()
it.icon = null
}

View File

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