diff --git a/app/src/main/java/xyz/quaver/pupil/ui/fragment/ManageFavoritesFragment.kt b/app/src/main/java/xyz/quaver/pupil/ui/fragment/ManageFavoritesFragment.kt index 5264810e..b685f443 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/fragment/ManageFavoritesFragment.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/fragment/ManageFavoritesFragment.kt @@ -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("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 } diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml index b4a45b1d..2b6ad288 100644 --- a/app/src/main/res/values/dimen.xml +++ b/app/src/main/res/values/dimen.xml @@ -14,4 +14,6 @@ 300dp 150dp + + 24dp \ No newline at end of file