diff --git a/src/apps.js b/src/apps.js index 9884ff4fd..82f720c39 100644 --- a/src/apps.js +++ b/src/apps.js @@ -3091,6 +3091,8 @@ export default { canBackupApp, + canAutoupdateAppSync, + PORT_TYPE_TCP, PORT_TYPE_UDP, @@ -3137,5 +3139,5 @@ export default { _validateUpstreamUri: validateUpstreamUri, _validateLocations: validateLocations, _parseCrontab: parseCrontab, - _clear: clear + _clear: clear, }; diff --git a/src/updater.js b/src/updater.js index 6623036ef..74a7c2846 100644 --- a/src/updater.js +++ b/src/updater.js @@ -298,17 +298,22 @@ async function checkAppUpdate(app, options) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof options, 'object'); + let updateInfo = null; + if (app.appStoreId) { - const updateInfo = await appstore.getAppUpdate(app, options); - await apps.update(app.id, { updateInfo }); - return updateInfo; + updateInfo = await appstore.getAppUpdate(app, options); } else if (app.versionsUrl) { - const updateInfo = await community.getAppUpdate(app, options); - await apps.update(app.id, { updateInfo }); - return updateInfo; - } else { - return null; + updateInfo = await community.getAppUpdate(app, options); } + + if (updateInfo) { + const { code, reason } = apps.canAutoupdateAppSync(app, updateInfo); + updateInfo.isAutoUpdatable = code; + updateInfo.manualUpdateReason = reason; + await apps.update(app.id, { updateInfo }); + } + + return updateInfo; } async function checkBoxUpdate(options) {