fix: 增加提交时的loading对话框

This commit is contained in:
xiaoyan 2023-03-27 11:31:19 +08:00
parent 95a53c16b3
commit 12fd2664b4
2 changed files with 24 additions and 7 deletions

View File

@ -1,7 +1,10 @@
package com.navinfo.volvo.ui.fragments.message
import android.app.ProgressDialog
import android.content.DialogInterface
import android.graphics.Color
import android.graphics.Paint
import android.graphics.PorterDuff
import android.os.Bundle
import android.text.TextUtils
import android.view.LayoutInflater
@ -10,11 +13,9 @@ import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.*
import android.widget.AdapterView.OnItemSelectedListener
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
@ -83,6 +84,7 @@ class ObtainMessageFragment : Fragment() {
private val binding get() = _binding!!
private lateinit var voiceView: VoicePlayerView
private lateinit var loadingDialog: AlertDialog
override fun onCreateView(
inflater: LayoutInflater,
@ -683,7 +685,15 @@ class ObtainMessageFragment : Fragment() {
} else {
messageData.version = "0" // 预约发送
}
if (loadingDialog == null) {
val progressBar = ProgressBar(context, null, android.R.attr.progressBarStyleLarge)
progressBar.indeterminateDrawable.setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_IN)
loadingDialog = AlertDialog.Builder(requireContext())
.setView(progressBar)
.setCancelable(false)
.create()
}
loadingDialog.show()
// 开始网络提交数据
if (obtainMessageViewModel.getMessageLiveData().value?.id == 0L) { // 如果网络id为空则调用更新操作
obtainMessageViewModel.insertCardByApp(confirmCallback)
@ -714,6 +724,12 @@ class ObtainMessageFragment : Fragment() {
val confirmCallback = object : ObtainMessageViewModel.MyConfirmCallback {
override fun onSucess() {
findNavController().popBackStack()
loadingDialog.hide()
}
override fun onFail(error: String) {
loadingDialog.hide()
ToastUtils.showToast(error)
}
}

View File

@ -270,11 +270,11 @@ class ObtainMessageViewModel @Inject constructor(
// TODO 尝试更新本地数据
confirmCallback.onSucess()
} else {
ToastUtils.showToast(result.msg)
confirmCallback.onFail(result.msg)
}
} catch (e: Exception) {
ToastUtils.showToast(e.message)
XLog.d(e.message)
confirmCallback.onFail(e.message!!)
}
}
}
@ -333,5 +333,6 @@ class ObtainMessageViewModel @Inject constructor(
interface MyConfirmCallback {
fun onSucess()
fun onFail(error: String)
}
}