#28: Fix Linux upgrade

This commit is contained in:
Scott E. Graves
2019-07-07 21:55:11 -05:00
parent 57cfddf803
commit 047678f44c
2 changed files with 28 additions and 7 deletions

View File

@@ -29,15 +29,23 @@ let launchHidden = false;
let firstMountCheck = true;
let manualMountDetection = {};
let isShutdown = false;
let isQuiting = false;
let isInstalling = false;
app.on('before-quit', function () {
isQuiting = true;
});
function closeApplication() {
if (!isShutdown) {
isShutdown = true;
if (mainWindowTray) {
mainWindowTray.destroy();
}
app.quit();
}
}
function setWindowVisibility(show) {
if (show) {
@@ -187,12 +195,10 @@ function createWindow() {
mainWindow.loadURL(startUrl);
}
const instanceLock = app.requestSingleInstanceLock();
if (!instanceLock) {
closeApplication();
} else {
let instanceLock = app.requestSingleInstanceLock();
const configurePrimaryApp = () => {
app.on('second-instance', () => {
if (mainWindow) {
if (!isInstalling && mainWindow) {
setWindowVisibility(true);
}
});
@@ -202,6 +208,17 @@ if (!instanceLock) {
app.on('window-all-closed', () => {
closeApplication();
});
};
if (!instanceLock) {
setTimeout(() => {
if ((instanceLock = app.requestSingleInstanceLock())) {
configurePrimaryApp();
} else {
closeApplication();
}
}, 3000);
} else {
configurePrimaryApp();
}
const clearManualMountDetection = (provider) => {
@@ -757,6 +774,7 @@ ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
if (command) {
const executeInstall = () => {
isInstalling = true;
helpers
.executeAsync(command, args)
.then(() => {
@@ -764,6 +782,7 @@ ipcMain.on(Constants.IPC_Install_Upgrade, (event, data) => {
standardIPCReply(event, Constants.IPC_Install_Upgrade_Reply)
})
.catch(error => {
isInstalling = false;
errorHandler(error);
});
};

View File

@@ -7,12 +7,14 @@ const mapStateToProps = state => {
return {
DownloadName: state.download.DownloadName,
DownloadProgress: state.download.DownloadProgress,
Platform: state.common.Platform,
};
};
export default connect(mapStateToProps)(props => {
const width = props.Platform === 'linux' ? '480px' : '380px';
return (
<Box dxStyle={{width: '380px', height: 'auto', padding: '5px'}}>
<Box dxStyle={{width: width, height: 'auto', padding: '5px'}}>
<div style={{width: '100%', height: 'auto'}}>
<h1 style={{width: '100%', textAlign: 'center'}}>{'Downloading ' + props.DownloadName}</h1>
</div>