add API save preference of skipping a app version update
This commit is contained in:
parent
4dede88386
commit
ed6fa98f24
|
@ -23,3 +23,7 @@ export const registerUpdateEventListener = (
|
|||
export const updateAndRestart = () => {
|
||||
ipcRenderer.send('update-and-restart');
|
||||
};
|
||||
|
||||
export const skipAppVersion = (version: string) => {
|
||||
ipcRenderer.send('skip-app-version', version);
|
||||
};
|
||||
|
|
|
@ -4,6 +4,7 @@ import {
|
|||
sendNotification,
|
||||
showOnTray,
|
||||
updateAndRestart,
|
||||
skipAppVersion,
|
||||
} from './api/system';
|
||||
import {
|
||||
showUploadDirsDialog,
|
||||
|
@ -90,4 +91,5 @@ windowObject['ElectronAPIs'] = {
|
|||
openLogDirectory,
|
||||
registerUpdateEventListener,
|
||||
updateAndRestart,
|
||||
skipAppVersion,
|
||||
};
|
||||
|
|
|
@ -5,6 +5,7 @@ import { setIsAppQuitting, setIsUpdateAvailable } from '../main';
|
|||
import { buildContextMenu } from '../utils/menu';
|
||||
import semVerCmp from 'semver-compare';
|
||||
import { AppUpdateInfo } from '../types';
|
||||
import { getSkipAppVersion, setSkipAppVersion } from './userPreference';
|
||||
|
||||
const LATEST_SUPPORTED_AUTO_UPDATE_VERSION = '1.6.12';
|
||||
|
||||
|
@ -23,6 +24,13 @@ class AppUpdater {
|
|||
0
|
||||
) {
|
||||
log.debug('update available');
|
||||
if (updateCheckResult.updateInfo.version === getSkipAppVersion()) {
|
||||
log.info(
|
||||
'user chose to skip version ',
|
||||
updateCheckResult.updateInfo.version
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (
|
||||
semVerCmp(
|
||||
updateCheckResult.updateInfo.version,
|
||||
|
@ -30,16 +38,25 @@ class AppUpdater {
|
|||
) > 0
|
||||
) {
|
||||
log.debug('auto update not supported');
|
||||
showUpdateDialog(mainWindow, { autoUpdatable: false });
|
||||
showUpdateDialog(mainWindow, {
|
||||
autoUpdatable: false,
|
||||
version: updateCheckResult.updateInfo.version,
|
||||
});
|
||||
} else {
|
||||
log.debug('auto update supported');
|
||||
autoUpdater.downloadUpdate();
|
||||
autoUpdater.on('update-downloaded', () => {
|
||||
showUpdateDialog(mainWindow, { autoUpdatable: true });
|
||||
showUpdateDialog(mainWindow, {
|
||||
autoUpdatable: true,
|
||||
version: updateCheckResult.updateInfo.version,
|
||||
});
|
||||
});
|
||||
autoUpdater.on('error', (error) => {
|
||||
log.error(error);
|
||||
showUpdateDialog(mainWindow, { autoUpdatable: false });
|
||||
showUpdateDialog(mainWindow, {
|
||||
autoUpdatable: false,
|
||||
version: updateCheckResult.updateInfo.version,
|
||||
});
|
||||
});
|
||||
}
|
||||
setIsUpdateAvailable(true);
|
||||
|
@ -61,3 +78,7 @@ function showUpdateDialog(
|
|||
) {
|
||||
mainWindow.webContents.send('show-update-dialog', updateInfo);
|
||||
}
|
||||
|
||||
export function skipAppVersion(version: string) {
|
||||
setSkipAppVersion(version);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
import { userPreferencesStore } from '../stores/userPreferences.store';
|
||||
|
||||
export function getHideDockIconPreference() {
|
||||
const shouldHideDockIcon = userPreferencesStore.get('hideDockIcon');
|
||||
return shouldHideDockIcon;
|
||||
return userPreferencesStore.get('hideDockIcon');
|
||||
}
|
||||
|
||||
export function setHideDockIconPreference(shouldHideDockIcon: boolean) {
|
||||
userPreferencesStore.set('hideDockIcon', shouldHideDockIcon);
|
||||
}
|
||||
|
||||
export function getSkipAppVersion() {
|
||||
return userPreferencesStore.get('skipAppVersion');
|
||||
}
|
||||
export function setSkipAppVersion(version: string) {
|
||||
userPreferencesStore.set('skipAppVersion', version);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,9 @@ const userPreferencesSchema: Schema<UserPreferencesType> = {
|
|||
hideDockIcon: {
|
||||
type: 'boolean',
|
||||
},
|
||||
skipAppVersion: {
|
||||
type: 'string',
|
||||
},
|
||||
};
|
||||
|
||||
export const userPreferencesStore = new Store({
|
||||
|
|
|
@ -56,8 +56,10 @@ export interface SafeStorageStoreType {
|
|||
|
||||
export interface UserPreferencesType {
|
||||
hideDockIcon: boolean;
|
||||
skipAppVersion: string;
|
||||
}
|
||||
|
||||
export interface AppUpdateInfo {
|
||||
autoUpdatable: boolean;
|
||||
version: string;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ import chokidar from 'chokidar';
|
|||
import path from 'path';
|
||||
import { getDirFilePaths } from '../services/fs';
|
||||
import { convertHEIC } from '../services/heicConvertor';
|
||||
import appUpdater from '../services/appUpdater';
|
||||
import appUpdater, { skipAppVersion } from '../services/appUpdater';
|
||||
|
||||
export default function setupIpcComs(
|
||||
tray: Tray,
|
||||
|
@ -111,4 +111,7 @@ export default function setupIpcComs(
|
|||
ipcMain.on('update-and-restart', () => {
|
||||
appUpdater.updateAndRestart();
|
||||
});
|
||||
ipcMain.on('skip-app-version', (_, version) => {
|
||||
skipAppVersion(version);
|
||||
});
|
||||
}
|
||||
|
|
2
ui
2
ui
|
@ -1 +1 @@
|
|||
Subproject commit 7c1d272920f3dfe892184a721b99026794eea43d
|
||||
Subproject commit d4451536795f0197a5755c7a161f776630717d79
|
Loading…
Reference in a new issue