Fix progress dialog deprecation warnings.

Moves everything under our own class and ignores the deprecation. Also
gives us future ability to re-style all blocking UI dialogs in the
future for mat3 compat.
This commit is contained in:
Cody Henthorne
2022-12-13 11:41:11 -05:00
parent 5f0d37739a
commit 3478e13d38
6 changed files with 61 additions and 22 deletions

View File

@@ -0,0 +1,39 @@
@file:Suppress("DEPRECATION")
package org.thoughtcrime.securesms.components
import android.app.ProgressDialog
import android.content.Context
import android.content.DialogInterface
/**
* Wraps a normal progress dialog for showing blocking in-progress UI.
*/
class SignalProgressDialog private constructor(val progressDialog: ProgressDialog) {
val isShowing: Boolean
get() = progressDialog.isShowing
fun hide() {
progressDialog.hide()
}
fun dismiss() {
progressDialog.dismiss()
}
companion object {
@JvmStatic
@JvmOverloads
fun show(
context: Context,
title: CharSequence? = null,
message: CharSequence? = null,
indeterminate: Boolean = false,
cancelable: Boolean = false,
cancelListener: DialogInterface.OnCancelListener? = null
): SignalProgressDialog {
return SignalProgressDialog(ProgressDialog.show(context, title, message, indeterminate, cancelable, cancelListener))
}
}
}

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.components.settings.app.privacy.advanced
import android.app.ProgressDialog
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
@@ -18,6 +17,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.preference.PreferenceManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.SignalProgressDialog
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
@@ -48,7 +48,7 @@ class AdvancedPrivacySettingsFragment : DSLSettingsFragment(R.string.preferences
}
}
var progressDialog: ProgressDialog? = null
var progressDialog: SignalProgressDialog? = null
val statusIcon: CharSequence by lazy {
val unidentifiedDeliveryIcon = requireNotNull(
@@ -85,7 +85,7 @@ class AdvancedPrivacySettingsFragment : DSLSettingsFragment(R.string.preferences
viewModel.state.observe(viewLifecycleOwner) {
if (it.showProgressSpinner) {
if (progressDialog?.isShowing == false) {
progressDialog = ProgressDialog.show(requireContext(), null, null, true)
progressDialog = SignalProgressDialog.show(requireContext(), null, null, true)
}
} else {
progressDialog?.hide()

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.components.settings.app.subscription.receipts.detail
import android.app.ProgressDialog
import android.content.ActivityNotFoundException
import android.content.Intent
import android.graphics.Bitmap
@@ -16,6 +15,7 @@ import com.google.android.material.button.MaterialButton
import org.signal.core.util.concurrent.SimpleTask
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.SignalProgressDialog
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
@@ -31,7 +31,7 @@ import java.util.Locale
class DonationReceiptDetailFragment : DSLSettingsFragment(layoutId = R.layout.donation_receipt_detail_fragment) {
private lateinit var progressDialog: ProgressDialog
private lateinit var progressDialog: SignalProgressDialog
private val viewModel: DonationReceiptDetailViewModel by viewModels(
factoryProducer = {
@@ -63,8 +63,7 @@ class DonationReceiptDetailFragment : DSLSettingsFragment(layoutId = R.layout.do
}
private fun renderPng(record: DonationReceiptRecord, subscriptionName: String) {
progressDialog = ProgressDialog(requireContext())
progressDialog.show()
progressDialog = SignalProgressDialog.show(requireContext())
val today: String = DateUtils.formatDateWithDayOfWeek(Locale.getDefault(), System.currentTimeMillis())
val amount: String = FiatMoneyUtil.format(resources, record.amount)