mirror of
https://github.com/Myxelium/Bridge-Multi.git
synced 2026-04-11 22:29:38 +00:00
Fixed auto-updating
This commit is contained in:
@@ -9,6 +9,8 @@ export interface UpdateProgress {
|
||||
total: number
|
||||
}
|
||||
|
||||
let updateAvailable = false
|
||||
|
||||
/**
|
||||
* Checks for updates when the program is launched.
|
||||
*/
|
||||
@@ -18,6 +20,9 @@ class UpdateChecker {
|
||||
autoUpdater.autoDownload = false
|
||||
autoUpdater.logger = null
|
||||
this.registerUpdaterListeners()
|
||||
}
|
||||
|
||||
checkForUpdates() {
|
||||
autoUpdater.checkForUpdates()
|
||||
}
|
||||
|
||||
@@ -28,13 +33,30 @@ class UpdateChecker {
|
||||
})
|
||||
|
||||
autoUpdater.on('update-available', (info: UpdateInfo) => {
|
||||
updateAvailable = true
|
||||
console.log('update available callback', info)
|
||||
emitIPCEvent('update-available', info)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
new UpdateChecker()
|
||||
export const updateChecker = new UpdateChecker()
|
||||
|
||||
/**
|
||||
* Handles the 'get-update-available' event.
|
||||
*/
|
||||
class GetUpdateAvailableHandler implements IPCInvokeHandler<'get-update-available'> {
|
||||
event: 'get-update-available' = 'get-update-available'
|
||||
|
||||
/**
|
||||
* @returns `true` if an update is available.
|
||||
*/
|
||||
handler() {
|
||||
return updateAvailable
|
||||
}
|
||||
}
|
||||
|
||||
export const getUpdateAvailableHandler = new GetUpdateAvailableHandler()
|
||||
|
||||
/**
|
||||
* Handles the 'get-current-version' event.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { app, BrowserWindow, ipcMain } from 'electron'
|
||||
import { updateChecker } from './ipc/UpdateHandler.ipc'
|
||||
import * as windowStateKeeper from 'electron-window-state'
|
||||
import * as path from 'path'
|
||||
import * as url from 'url'
|
||||
@@ -17,7 +18,12 @@ restrictToSingleInstance()
|
||||
handleOSXWindowClosed()
|
||||
app.on('ready', () => {
|
||||
// Load settings from file before the window is created
|
||||
getSettingsHandler.initSettings().then(createBridgeWindow)
|
||||
getSettingsHandler.initSettings().then(() => {
|
||||
createBridgeWindow()
|
||||
if (!isDevBuild) {
|
||||
updateChecker.checkForUpdates()
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,7 +8,7 @@ import { downloadHandler } from '../ipc/download/DownloadHandler'
|
||||
import { Settings } from './Settings'
|
||||
import { batchSongDetailsHandler } from '../ipc/browse/BatchSongDetailsHandler.ipc'
|
||||
import { getSettingsHandler, setSettingsHandler } from '../ipc/SettingsHandler.ipc'
|
||||
import { UpdateProgress, getCurrentVersionHandler, downloadUpdateHandler, quitAndInstallHandler } from '../ipc/UpdateHandler.ipc'
|
||||
import { UpdateProgress, getCurrentVersionHandler, downloadUpdateHandler, quitAndInstallHandler, getUpdateAvailableHandler } from '../ipc/UpdateHandler.ipc'
|
||||
import { UpdateInfo } from 'electron-updater'
|
||||
|
||||
/**
|
||||
@@ -26,7 +26,8 @@ export function getIPCInvokeHandlers(): IPCInvokeHandler<keyof IPCInvokeEvents>[
|
||||
songDetailsHandler,
|
||||
batchSongDetailsHandler,
|
||||
albumArtHandler,
|
||||
getCurrentVersionHandler
|
||||
getCurrentVersionHandler,
|
||||
getUpdateAvailableHandler
|
||||
]
|
||||
}
|
||||
|
||||
@@ -58,6 +59,10 @@ export type IPCInvokeEvents = {
|
||||
input: undefined
|
||||
output: string
|
||||
}
|
||||
'get-update-available': {
|
||||
input: undefined
|
||||
output: boolean
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user