diff --git a/app/build/resources/win/mailspring-150px.png b/app/build/resources/win/mailspring-150px.png new file mode 100644 index 000000000..9b02eb12a Binary files /dev/null and b/app/build/resources/win/mailspring-150px.png differ diff --git a/app/build/resources/win/mailspring-75px.png b/app/build/resources/win/mailspring-75px.png new file mode 100644 index 000000000..d004631f5 Binary files /dev/null and b/app/build/resources/win/mailspring-75px.png differ diff --git a/app/build/resources/win/mailspring-square.ico b/app/build/resources/win/mailspring-square.ico new file mode 100644 index 000000000..0353b5392 Binary files /dev/null and b/app/build/resources/win/mailspring-square.ico differ diff --git a/app/build/resources/win/mailspring.VisualElementsManifest.xml b/app/build/resources/win/mailspring.VisualElementsManifest.xml new file mode 100644 index 000000000..cffe963d5 --- /dev/null +++ b/app/build/resources/win/mailspring.VisualElementsManifest.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/app/build/tasks/package-task.js b/app/build/tasks/package-task.js index db1533dcc..811699f48 100644 --- a/app/build/tasks/package-task.js +++ b/app/build/tasks/package-task.js @@ -17,9 +17,14 @@ module.exports = grunt => { function runCopyPlatformSpecificResources(buildPath, electronVersion, platform, arch, callback) { // these files (like nylas-mailto-default.reg) go alongside the ASAR, // not inside it, so we need to move out of the `app` directory. - const resourcesDir = path.resolve(buildPath, '..'); + const winResourcesSource = path.resolve(grunt.config('appDir'), 'build', 'resources', 'win'); + const winResourcesTarget = path.resolve(buildPath, '..'); if (platform === 'win32') { - fs.copySync(path.resolve(grunt.config('appDir'), 'build', 'resources', 'win'), resourcesDir); + fs.copySync(winResourcesSource, winResourcesTarget); + fs.copySync( + path.join(winResourcesSource, 'mailspring.VisualElementsManifest.xml'), + path.resolve(buildPath, '..', '..', 'mailspring.VisualElementsManifest.xml') + ); } callback(); } diff --git a/app/src/browser/windows-updater.js b/app/src/browser/windows-updater.js index 6af22f123..a7b2ba301 100644 --- a/app/src/browser/windows-updater.js +++ b/app/src/browser/windows-updater.js @@ -6,36 +6,36 @@ * Read: https://github.com/electron/electron/blob/master/docs/api/auto-updater.md#windows * * When Mailspring gets installed on a Windows machine it gets put in: - * C:\Users\\AppData\Local\NylasMail\app-x.x.x + * C:\Users\\AppData\Local\Mailspring\app-x.x.x * * The `process.execPath` is: - * C:\Users\\AppData\Local\NylasMail\app-x.x.x\nylas.exe + * C:\Users\\AppData\Local\Mailspring\app-x.x.x\nylas.exe * * We manually copy everything in build/resources/win into a 'resources' folder * located inside the main app directory. See runCopyPlatformSpecificResources * in package-task.js * * This means `__dirname` should be: - * C:\Users\\AppData\Local\NylasMail\app-x.x.x\resources + * C:\Users\\AppData\Local\Mailspring\app-x.x.x\resources * * We also expect Squirrel Windows to have a file called `nylas.exe` at: - * C:\Users\\AppData\Local\NylasMail\nylas.exe + * C:\Users\\AppData\Local\Mailspring\nylas.exe */ const ChildProcess = require('child_process'); const fs = require('fs-plus'); const path = require('path'); const os = require('os'); -// C:\Users\\AppData\Local\NylasMail\app-x.x.x +// C:\Users\\AppData\Local\Mailspring\app-x.x.x const appFolder = path.resolve(process.execPath, '..'); -// C:\Users\\AppData\Local\NylasMail\ -const rootN1Folder = path.resolve(appFolder, '..'); +// C:\Users\\AppData\Local\Mailspring\ +const rootAppDataFolder = path.resolve(appFolder, '..'); -// C:\Users\\AppData\Local\NylasMail\Update.exe -const updateDotExe = path.join(rootN1Folder, 'Update.exe'); +// C:\Users\\AppData\Local\Mailspring\Update.exe +const updateDotExe = path.join(rootAppDataFolder, 'Update.exe'); -// "nylas.exe" +// "mailspring.exe" const exeName = path.basename(process.execPath); // Spawn a command and invoke the callback when it completes with an error @@ -94,7 +94,7 @@ function createRegistryEntries({ allowEscalation, registerDefaultIfPossible }, c const requiresLocalMachine = isWindows7; // On Windows 7, we must write to LOCAL_MACHINE and need escalated privileges. - // Don't do it at install time - wait for the user to ask N1 to be the default. + // Don't do it at install time - wait for the user to ask Mailspring to be the default. if (requiresLocalMachine && !allowEscalation) { callback(); return; @@ -122,7 +122,7 @@ function createRegistryEntries({ allowEscalation, registerDefaultIfPossible }, c const importTemplate = data.toString(); let importContents = importTemplate.replace( /{{PATH_TO_ROOT_FOLDER}}/g, - escapeBackticks(rootN1Folder) + escapeBackticks(rootAppDataFolder) ); importContents = importContents.replace( /{{PATH_TO_APP_FOLDER}}/g, @@ -176,10 +176,10 @@ exports.createShortcuts = createShortcuts; exports.removeShortcuts = removeShortcuts; exports.createRegistryEntries = createRegistryEntries; -// Is the Update.exe installed with N1? +// Is the Update.exe installed with Mailspring? exports.existsSync = () => fs.existsSync(updateDotExe); -// Restart N1 using the version pointed to by the N1.cmd shim +// Restart Mailspring using the version pointed to by the Mailspring.cmd shim exports.restartMailspring = app => { app.once('will-quit', () => { spawnUpdate(['--processStart', exeName], () => {}, { detached: true });