add API save preference of skipping a app version update

This commit is contained in:
Abhinav 2022-11-01 14:21:13 +05:30
parent 4dede88386
commit ed6fa98f24
8 changed files with 48 additions and 7 deletions

View file

@ -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);
};

View file

@ -4,6 +4,7 @@ import {
sendNotification,
showOnTray,
updateAndRestart,
skipAppVersion,
} from './api/system';
import {
showUploadDirsDialog,
@ -90,4 +91,5 @@ windowObject['ElectronAPIs'] = {
openLogDirectory,
registerUpdateEventListener,
updateAndRestart,
skipAppVersion,
};

View file

@ -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);
}

View file

@ -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);
}

View file

@ -5,6 +5,9 @@ const userPreferencesSchema: Schema<UserPreferencesType> = {
hideDockIcon: {
type: 'boolean',
},
skipAppVersion: {
type: 'string',
},
};
export const userPreferencesStore = new Store({

View file

@ -56,8 +56,10 @@ export interface SafeStorageStoreType {
export interface UserPreferencesType {
hideDockIcon: boolean;
skipAppVersion: string;
}
export interface AppUpdateInfo {
autoUpdatable: boolean;
version: string;
}

View file

@ -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

@ -1 +1 @@
Subproject commit 7c1d272920f3dfe892184a721b99026794eea43d
Subproject commit d4451536795f0197a5755c7a161f776630717d79