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 package com.navinfo.volvo.ui.fragments.message
import android.app.ProgressDialog
import android.content.DialogInterface import android.content.DialogInterface
import android.graphics.Color
import android.graphics.Paint import android.graphics.Paint
import android.graphics.PorterDuff
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.view.LayoutInflater import android.view.LayoutInflater
@ -10,11 +13,9 @@ import android.view.View
import android.view.View.GONE import android.view.View.GONE
import android.view.View.VISIBLE import android.view.View.VISIBLE
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.AdapterView import android.widget.*
import android.widget.AdapterView.OnItemSelectedListener import android.widget.AdapterView.OnItemSelectedListener
import android.widget.ArrayAdapter import androidx.appcompat.app.AlertDialog
import android.widget.Button
import android.widget.Toast
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
@ -83,6 +84,7 @@ class ObtainMessageFragment : Fragment() {
private val binding get() = _binding!! private val binding get() = _binding!!
private lateinit var voiceView: VoicePlayerView private lateinit var voiceView: VoicePlayerView
private lateinit var loadingDialog: AlertDialog
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
@ -683,7 +685,15 @@ class ObtainMessageFragment : Fragment() {
} else { } else {
messageData.version = "0" // 预约发送 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为空则调用更新操作 if (obtainMessageViewModel.getMessageLiveData().value?.id == 0L) { // 如果网络id为空则调用更新操作
obtainMessageViewModel.insertCardByApp(confirmCallback) obtainMessageViewModel.insertCardByApp(confirmCallback)
@ -714,6 +724,12 @@ class ObtainMessageFragment : Fragment() {
val confirmCallback = object : ObtainMessageViewModel.MyConfirmCallback { val confirmCallback = object : ObtainMessageViewModel.MyConfirmCallback {
override fun onSucess() { override fun onSucess() {
findNavController().popBackStack() 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 尝试更新本地数据 // TODO 尝试更新本地数据
confirmCallback.onSucess() confirmCallback.onSucess()
} else { } else {
ToastUtils.showToast(result.msg) confirmCallback.onFail(result.msg)
} }
} catch (e: Exception) { } catch (e: Exception) {
ToastUtils.showToast(e.message)
XLog.d(e.message) XLog.d(e.message)
confirmCallback.onFail(e.message!!)
} }
} }
} }
@ -333,5 +333,6 @@ class ObtainMessageViewModel @Inject constructor(
interface MyConfirmCallback { interface MyConfirmCallback {
fun onSucess() fun onSucess()
fun onFail(error: String)
} }
} }