fix(ota): settle stale firmware update states
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import FirmwareProgress from '@/components/firmware-progress'
|
||||
import PageTitle from '@/components/page-title'
|
||||
import { getParticipantArtwork, getRoleArtwork } from '@/utils/artwork'
|
||||
import { firmwareSummaryView, isFirmwareCurrent, isFirmwareUpdateInProgress, normalizeFirmwareUpdateStatus } from '@/utils/firmware-status'
|
||||
import { firmwareSummaryView, isFirmwareCurrent, isFirmwareTargetReached, isFirmwareUpdateInProgress, normalizeFirmwareUpdateStatus } from '@/utils/firmware-status'
|
||||
import { getPageStyle } from '@/utils/page-style'
|
||||
import { setActiveTabRoute } from '@/utils/tab-bar'
|
||||
import { View, Text, Image, Input, Button } from '@tarojs/components'
|
||||
@@ -248,7 +248,7 @@ export default function Sleep() {
|
||||
return
|
||||
}
|
||||
|
||||
if (isFirmwareUpdateInProgress(nextFirmwareStatus?.update_status)) {
|
||||
if (isFirmwareUpdateInProgress(nextFirmwareStatus?.update_status) && !isFirmwareTargetReached(nextFirmwareStatus)) {
|
||||
startFirmwareStatusPolling(normalizedDeviceId)
|
||||
} else {
|
||||
stopFirmwareStatusPolling()
|
||||
@@ -272,14 +272,14 @@ export default function Sleep() {
|
||||
|
||||
setFirmwareStatus(nextFirmwareStatus)
|
||||
setFirmwareRefreshError(false)
|
||||
if (isFirmwareUpdateInProgress(nextFirmwareStatus?.update_status)) {
|
||||
if (isFirmwareUpdateInProgress(nextFirmwareStatus?.update_status) && !isFirmwareTargetReached(nextFirmwareStatus)) {
|
||||
scheduleFirmwareStatusPoll(normalizedDeviceId)
|
||||
return
|
||||
}
|
||||
|
||||
stopFirmwareStatusPolling()
|
||||
const nextStatus = normalizeFirmwareUpdateStatus(nextFirmwareStatus?.update_status)
|
||||
if (isFirmwareUpdateSuccessful(nextStatus)) {
|
||||
if (isFirmwareUpdateSuccessful(nextStatus) || isFirmwareTargetReached(nextFirmwareStatus)) {
|
||||
Taro.showToast({ title: '系统更新完成', icon: 'success' })
|
||||
} else if (isFirmwareCurrent(nextFirmwareStatus)) {
|
||||
Taro.showToast({ title: '当前已是最新版本', icon: 'none' })
|
||||
@@ -319,7 +319,9 @@ export default function Sleep() {
|
||||
if (generation !== firmwareLoadGenerationRef.current) return
|
||||
setFirmwareStatus(nextFirmwareStatus)
|
||||
setFirmwareRefreshError(false)
|
||||
if (isFirmwareUpdateInProgress(nextFirmwareStatus?.update_status)) setShowFirmwareProgress(true)
|
||||
if (isFirmwareUpdateInProgress(nextFirmwareStatus?.update_status) && !isFirmwareTargetReached(nextFirmwareStatus)) {
|
||||
setShowFirmwareProgress(true)
|
||||
}
|
||||
syncFirmwareStatusPolling(normalizedDeviceId, nextFirmwareStatus)
|
||||
} catch (error: any) {
|
||||
if (generation !== firmwareLoadGenerationRef.current) return
|
||||
@@ -1060,6 +1062,7 @@ export default function Sleep() {
|
||||
isFamilyOwner
|
||||
)
|
||||
const isFirmwareUpdatingByStatus = isFirmwareUpdateInProgress(firmwareStatus?.update_status)
|
||||
&& !isFirmwareTargetReached(firmwareStatus)
|
||||
const firmwareSummary = firmwareSummaryView(firmwareStatus)
|
||||
const canUpdateFirmware = Boolean(
|
||||
binding?.device_id &&
|
||||
|
||||
Reference in New Issue
Block a user