Show progress drawable when backup
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user