From 87527d7b166f4627f9e7f5a2e0714883582776a7 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 29 Jun 2020 11:41:18 +0100 Subject: [PATCH 1/2] Show expiring toast on completed downloads Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/vector/platform/ElectronPlatform.tsx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/vector/platform/ElectronPlatform.tsx b/src/vector/platform/ElectronPlatform.tsx index be1b5838b..c356e0b05 100644 --- a/src/vector/platform/ElectronPlatform.tsx +++ b/src/vector/platform/ElectronPlatform.tsx @@ -45,6 +45,8 @@ import {Action} from "matrix-react-sdk/src/dispatcher/actions"; import {ActionPayload} from "matrix-react-sdk/src/dispatcher/payloads"; import {showToast as showUpdateToast} from "matrix-react-sdk/src/toasts/UpdateToast"; import {CheckUpdatesPayload} from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload"; +import ToastStore from "matrix-react-sdk/src/stores/ToastStore"; +import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast"; const ipcRenderer = window.ipcRenderer; const isMac = navigator.platform.toUpperCase().includes('MAC'); @@ -247,6 +249,26 @@ export default class ElectronPlatform extends VectorBasePlatform { dis.fire(Action.ViewUserSettings); }); + ipcRenderer.on('userDownloadCompleted', (ev, {path, name}) => { + const onAccept = () => { + ipcRenderer.send('userDownloadOpen', {path}); + }; + + ToastStore.sharedInstance().addOrReplaceToast({ + key: `DOWNLOAD_TOAST_${path}`, + title: _t("Download Completed"), + props: { + description: name, + acceptLabel: _t("Open"), + onAccept, + dismissLabel: _t("Dismiss"), + numSeconds: 10, + }, + component: GenericExpiringToast, + priority: 99, + }); + }); + // register OS-specific shortcuts if (isMac) { registerShortcut(Categories.NAVIGATION, { From 7a7abc74d98ebe4c4b15f667b600c7da271b2a0f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 29 Jun 2020 15:59:37 +0100 Subject: [PATCH 2/2] i18n Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/i18n/strings/en_EN.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index bfccb8135..d2a95c8da 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -8,6 +8,9 @@ "Invalid JSON": "Invalid JSON", "Unable to load config file: please refresh the page to try again.": "Unable to load config file: please refresh the page to try again.", "Unexpected error preparing the app. See console for details.": "Unexpected error preparing the app. See console for details.", + "Download Completed": "Download Completed", + "Open": "Open", + "Dismiss": "Dismiss", "Open user settings": "Open user settings", "Previous/next recently visited room or community": "Previous/next recently visited room or community", "Riot Desktop (%(platformName)s)": "Riot Desktop (%(platformName)s)", @@ -18,7 +21,6 @@ "powered by Matrix": "powered by Matrix", "Custom Server Options": "Custom Server Options", "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.", - "Dismiss": "Dismiss", "Unsupported browser": "Unsupported browser", "Your browser can't run Riot": "Your browser can't run Riot", "Riot uses advanced browser features which aren't supported by your current browser.": "Riot uses advanced browser features which aren't supported by your current browser.",