diff --git a/app/src/main/java/com/sw/inbound/activity/FoodCollectionActivity.kt b/app/src/main/java/com/sw/inbound/activity/FoodCollectionActivity.kt index 8657474..9496809 100644 --- a/app/src/main/java/com/sw/inbound/activity/FoodCollectionActivity.kt +++ b/app/src/main/java/com/sw/inbound/activity/FoodCollectionActivity.kt @@ -37,6 +37,8 @@ import com.sw.inbound.utils.BitmapSaver import com.sw.inbound.utils.CameraUtils import com.sw.inbound.utils.ImageUploader import com.sw.inbound.utils.ImageUtil +import com.sw.inbound.utils.LogSaveUtil +import com.sw.inbound.utils.NetworkUtils import com.sw.inbound.utils.ext.addOnActionSearchListener import com.sw.inbound.utils.ext.clickWithDebounce import com.sw.inbound.utils.ext.dp @@ -213,6 +215,10 @@ class FoodCollectionActivity : BaseActivity() { }, confirmBlock = { + if (NetworkUtils.isNetworkConnected(this).not()) { + toast("网络异常,请稍后重试") + return@WarnDialog + } upload() } ).show() @@ -318,6 +324,7 @@ class FoodCollectionActivity : BaseActivity() { // uriToBitmap 返回 null 时关闭 loading,否则转圈永不消失 hideWaitingDialog() toast("图片读取失败,请重试") + LogSaveUtil.saveLogFile("图片读取失败,请重试") return } cropBitmap = withContext(Dispatchers.IO) { @@ -336,6 +343,7 @@ class FoodCollectionActivity : BaseActivity() { e.printStackTrace() hideWaitingDialog() toast("操作失败") + LogSaveUtil.saveLogFile("操作失败:${e.message}") return } Timber.tag(TAG).d("向量:${imageVector.toJsonString()}") @@ -355,6 +363,7 @@ class FoodCollectionActivity : BaseActivity() { e.printStackTrace() } toast("数据库异常,请稍后重试") + LogSaveUtil.saveLogFile("数据库异常,请稍后重试:${e.message}") return } val filterList = @@ -362,6 +371,7 @@ class FoodCollectionActivity : BaseActivity() { if (filterList.isNotEmpty()) { hideWaitingDialog() toast("当前物品可能被袋子遮挡,请检查后重试") + LogSaveUtil.saveLogFile("当前物品可能被袋子遮挡,请检查后重试") return } // 图片保存为磁盘 I/O,切换到 IO 线程 @@ -398,8 +408,10 @@ class FoodCollectionActivity : BaseActivity() { e.printStackTrace() } toast("请重试") + LogSaveUtil.saveLogFile("请重试:${e.message}") } else { toast("程序异常$errMsg") + LogSaveUtil.saveLogFile("程序异常$errMsg:${e.message}") } } finally { // 无论成功、失败还是提前返回,均在此回收 bitmap,彻底消除内存泄漏 diff --git a/app/src/main/java/com/sw/inbound/activity/InitActivity.kt b/app/src/main/java/com/sw/inbound/activity/InitActivity.kt index dc2536f..119823c 100644 --- a/app/src/main/java/com/sw/inbound/activity/InitActivity.kt +++ b/app/src/main/java/com/sw/inbound/activity/InitActivity.kt @@ -65,6 +65,10 @@ class InitActivity : BaseActivity() { override fun onResume() { super.onResume() + if (NetworkUtils.isNetworkConnected(this)) { + navigateToHome() + return + } startCountdown() } diff --git a/app/src/main/java/com/sw/inbound/repository/BaseRepository.kt b/app/src/main/java/com/sw/inbound/repository/BaseRepository.kt index 23852f3..835367c 100644 --- a/app/src/main/java/com/sw/inbound/repository/BaseRepository.kt +++ b/app/src/main/java/com/sw/inbound/repository/BaseRepository.kt @@ -2,6 +2,7 @@ package com.sw.inbound.repository import com.google.gson.JsonParseException import com.sw.inbound.model.response.ApiResponse +import com.sw.inbound.utils.LogSaveUtil import retrofit2.HttpException import timber.log.Timber import java.io.IOException @@ -15,7 +16,7 @@ abstract class BaseRepository { apiCall() } catch (e: Exception) { Timber.e("safeApiCall Exception: ${e.stackTraceToString()}") - + LogSaveUtil.saveLogFile("safeApiCall Exception: ${e.stackTraceToString()}") when (e) { is HttpException -> { // 对于HTTP异常,尝试从响应体中获取错误信息 diff --git a/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt b/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt index 2ea994a..05e0c92 100644 --- a/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt +++ b/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.gson.reflect.TypeToken import com.sw.inbound.GlobalData +import com.sw.inbound.MyApp import com.sw.inbound.model.response.ApiResponse import com.sw.inbound.model.response.DictType import com.sw.inbound.model.response.EquipmentInfo @@ -16,6 +17,7 @@ import com.sw.inbound.repository.RemoteRepository import com.sw.inbound.utils.SPUtil //import com.sw.inbound.utils.ToastUtils import com.sw.inbound.utils.ext.toType +import com.sw.inbound.utils.ext.toast import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -102,7 +104,8 @@ abstract class BaseViewModel( return true } Timber.d("msg = ${response.msg}, code = ${response.code}") - //ToastUtils.showToast("${response.msg}(${response.code})") +// ToastUtils.showToast("${response.msg}(${response.code})") + MyApp.instance?.toast("${response.msg}(${response.code})") return false } diff --git a/app/src/main/java/com/sw/inbound/viewmodel/ReceiptViewModel.kt b/app/src/main/java/com/sw/inbound/viewmodel/ReceiptViewModel.kt index 8e93ac6..c819010 100644 --- a/app/src/main/java/com/sw/inbound/viewmodel/ReceiptViewModel.kt +++ b/app/src/main/java/com/sw/inbound/viewmodel/ReceiptViewModel.kt @@ -409,11 +409,7 @@ class ReceiptViewModel @Inject constructor( return true } val resp = repository.uploadMultipleImages(fileList = fileList, params = params) -// if (!parseResponse(resp)) { -// callback(false) -// return@launchWithLoading -// } - return resp.code == "00000" + return parseResponse(resp) } } \ No newline at end of file