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