diff --git a/CHANGELOG.md b/CHANGELOG.md index fe3fb26c..ae8209ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +Changes in [0.10.2](https://github.com/vector-im/riot-web/releases/tag/v0.10.2) (2017-06-06) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.1...v0.10.2) + + * Hotfix for bugs where navigating straight to a URL like /#/login and + and /#/forgot_password + + +Changes in [0.10.1](https://github.com/vector-im/riot-web/releases/tag/v0.10.1) (2017-06-02) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0...v0.10.1) + + * Update to matrix-react-sdk 0.9.1 to fix i18n error which broke start chat in some circumstances + Changes in [0.10.0](https://github.com/vector-im/riot-web/releases/tag/v0.10.0) (2017-06-02) ============================================================================================ [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0-rc.2...v0.10.0) diff --git a/README.md b/README.md index 388d2d9b..94e2a9cc 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ Running as a Desktop app Riot can also be run as a desktop app, wrapped in electron. You can download a pre-built version from https://riot.im/desktop.html or, if you prefer, -built it yourself. +build it yourself. Requires Electron >=1.6.0 To run as a desktop app: diff --git a/config.sample.json b/config.sample.json index c9b3d65b..7f2c97f9 100644 --- a/config.sample.json +++ b/config.sample.json @@ -11,6 +11,7 @@ "matrix.org" ] }, + "welcomeUserId": "@riot-bot:matrix.org", "piwik": { "url": "https://piwik.riot.im/", "siteId": 1 diff --git a/docs/translating.md b/docs/translating.md index ca9920d3..9a4f6f6e 100644 --- a/docs/translating.md +++ b/docs/translating.md @@ -8,7 +8,7 @@ ## Step 0: Join #riotweb-translations:matrix.org -1. Come and join https://riot.im/develop/#/room/#riotweb-translations:matrix.org +1. Come and join https://matrix.to/#/#riotweb-translations:matrix.org 2. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :) ## Step 1: Preparing your Weblate Profile diff --git a/electron_app/package.json b/electron_app/package.json index 096c1e96..a21fd522 100644 --- a/electron_app/package.json +++ b/electron_app/package.json @@ -2,12 +2,13 @@ "name": "riot-web", "productName": "Riot", "main": "src/electron-main.js", - "version": "0.10.0", + "version": "0.10.2", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "dependencies": { - "electron-window-state": "^4.1.0", "auto-launch": "^5.0.1", - "minimist": "^1.2.0" + "electron-window-state": "^4.1.0", + "minimist": "^1.2.0", + "png-to-ico": "^1.0.2" } } diff --git a/electron_app/src/electron-main.js b/electron_app/src/electron-main.js index ef0d173c..3491ce0f 100644 --- a/electron_app/src/electron-main.js +++ b/electron_app/src/electron-main.js @@ -1,6 +1,7 @@ /* Copyright 2016 Aviral Dasgupta Copyright 2016 OpenMarket Ltd +Copyright 2017 Michael Telatynski <7t3chguy@gmail.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -216,6 +217,20 @@ electron.ipcMain.on('settings_set', function(ev, key, value) { }); electron.app.on('ready', () => { + + if (argv.devtools) { + try { + const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer'); + installExtension(REACT_DEVELOPER_TOOLS) + .then((name) => console.log(`Added Extension: ${name}`)) + .catch((err) => console.log('An error occurred: ', err)); + installExtension(REACT_PERF) + .then((name) => console.log(`Added Extension: ${name}`)) + .catch((err) => console.log('An error occurred: ', err)); + } catch(e) {console.log(e);} + } + + if (vectorConfig.update_base_url) { console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`); startAutoUpdate(vectorConfig.update_base_url); diff --git a/electron_app/src/tray.js b/electron_app/src/tray.js index 9df1a0fb..039e7133 100644 --- a/electron_app/src/tray.js +++ b/electron_app/src/tray.js @@ -16,6 +16,9 @@ limitations under the License. */ const {app, Tray, Menu, nativeImage} = require('electron'); +const pngToIco = require('png-to-ico'); +const path = require('path'); +const fs = require('fs'); let trayIcon = null; @@ -57,7 +60,7 @@ exports.create = function(win, config) { trayIcon.on('click', toggleWin); let lastFavicon = null; - win.webContents.on('page-favicon-updated', function(ev, favicons) { + win.webContents.on('page-favicon-updated', async function(ev, favicons) { let newFavicon = config.icon_path; if (favicons && favicons.length > 0 && favicons[0].startsWith('data:')) { newFavicon = favicons[0]; @@ -70,6 +73,15 @@ exports.create = function(win, config) { // if its not default we have to construct into nativeImage if (newFavicon !== config.icon_path) { newFavicon = nativeImage.createFromDataURL(favicons[0]); + + if (process.platform === 'win32') { + try { + const icoPath = path.join(app.getPath('temp'), 'win32_riot_icon.ico') + const icoBuf = await pngToIco(newFavicon.toPNG()); + fs.writeFileSync(icoPath, icoBuf); + newFavicon = icoPath; + } catch (e) {console.error(e);} + } } trayIcon.setImage(newFavicon); diff --git a/package.json b/package.json index bcbd89fa..ffed4f17 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "electron_app/src/electron-main.js", - "version": "0.10.0", + "version": "0.10.2", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "repository": { @@ -46,7 +46,7 @@ "start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"", "lint": "eslint src/", "lintall": "eslint src/ test/", - "clean": "rimraf lib webapp electron/dist", + "clean": "rimraf lib webapp electron_app/dist", "prepublish": "npm run build:compile", "test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false", "test-multi": "karma start" @@ -66,7 +66,7 @@ "highlight.js": "^9.0.0", "linkifyjs": "^2.1.3", "matrix-js-sdk": "0.7.10", - "matrix-react-sdk": "0.9.0", + "matrix-react-sdk": "0.9.2", "modernizr": "^3.1.0", "pako": "^1.0.5", "q": "^1.4.1", @@ -78,7 +78,8 @@ "sanitize-html": "^1.11.1", "text-encoding-utf-8": "^1.0.1", "ua-parser-js": "^0.7.10", - "url": "^0.11.0" + "url": "^0.11.0", + "velocity-vector": "vector-im/velocity#059e3b2" }, "devDependencies": { "autoprefixer": "^6.6.0", @@ -102,6 +103,7 @@ "css-raw-loader": "^0.1.1", "electron-builder": "^11.2.4", "electron-builder-squirrel-windows": "^11.2.1", + "electron-devtools-installer": "^2.2.0", "emojione": "^2.2.7", "eslint": "^3.14.0", "eslint-config-google": "^0.7.1", @@ -163,7 +165,7 @@ "category": "Network;InstantMessaging;Chat", "maintainer": "support@riot.im", "desktop": { - "StartupWMClass": "riot-web" + "StartupWMClass": "riot" } }, "win": { diff --git a/res/flags/AD.png b/res/flags/AD.png index 8e777b98..d5d59645 100644 Binary files a/res/flags/AD.png and b/res/flags/AD.png differ diff --git a/res/flags/AE.png b/res/flags/AE.png index 1c4a2bb7..05c7418a 100644 Binary files a/res/flags/AE.png and b/res/flags/AE.png differ diff --git a/res/flags/AF.png b/res/flags/AF.png index 7d369371..bc7cef09 100644 Binary files a/res/flags/AF.png and b/res/flags/AF.png differ diff --git a/res/flags/AG.png b/res/flags/AG.png index 78c03626..d48facad 100644 Binary files a/res/flags/AG.png and b/res/flags/AG.png differ diff --git a/res/flags/AI.png b/res/flags/AI.png index 8a707823..8fd27cd3 100644 Binary files a/res/flags/AI.png and b/res/flags/AI.png differ diff --git a/res/flags/AL.png b/res/flags/AL.png index b19c7bc5..883835ff 100644 Binary files a/res/flags/AL.png and b/res/flags/AL.png differ diff --git a/res/flags/AM.png b/res/flags/AM.png index b39695fd..b1bb36b9 100644 Binary files a/res/flags/AM.png and b/res/flags/AM.png differ diff --git a/res/flags/AO.png b/res/flags/AO.png index 5aee75af..ae68b12c 100644 Binary files a/res/flags/AO.png and b/res/flags/AO.png differ diff --git a/res/flags/AQ.png b/res/flags/AQ.png index fa76fbb2..146e9c0a 100644 Binary files a/res/flags/AQ.png and b/res/flags/AQ.png differ diff --git a/res/flags/AR.png b/res/flags/AR.png index 28750f42..8142adfc 100644 Binary files a/res/flags/AR.png and b/res/flags/AR.png differ diff --git a/res/flags/AS.png b/res/flags/AS.png index 36ba9b34..cc5bf30d 100644 Binary files a/res/flags/AS.png and b/res/flags/AS.png differ diff --git a/res/flags/AT.png b/res/flags/AT.png index 487fee82..e32414bd 100644 Binary files a/res/flags/AT.png and b/res/flags/AT.png differ diff --git a/res/flags/AU.png b/res/flags/AU.png index 7004861f..8d1e1437 100644 Binary files a/res/flags/AU.png and b/res/flags/AU.png differ diff --git a/res/flags/AW.png b/res/flags/AW.png index 238084e4..6ec17884 100644 Binary files a/res/flags/AW.png and b/res/flags/AW.png differ diff --git a/res/flags/AX.png b/res/flags/AX.png index 07ac7742..ba269c04 100644 Binary files a/res/flags/AX.png and b/res/flags/AX.png differ diff --git a/res/flags/AZ.png b/res/flags/AZ.png index 686dbed7..2bf3c746 100644 Binary files a/res/flags/AZ.png and b/res/flags/AZ.png differ diff --git a/res/flags/BA.png b/res/flags/BA.png index 5cfbb6d6..3e3ec3fc 100644 Binary files a/res/flags/BA.png and b/res/flags/BA.png differ diff --git a/res/flags/BB.png b/res/flags/BB.png index dcdbae7a..694050ca 100644 Binary files a/res/flags/BB.png and b/res/flags/BB.png differ diff --git a/res/flags/BD.png b/res/flags/BD.png index 3bd977a4..6de2cde8 100644 Binary files a/res/flags/BD.png and b/res/flags/BD.png differ diff --git a/res/flags/BE.png b/res/flags/BE.png index 555ac8bb..742ba923 100644 Binary files a/res/flags/BE.png and b/res/flags/BE.png differ diff --git a/res/flags/BF.png b/res/flags/BF.png index 5a80be2a..17f9f67d 100644 Binary files a/res/flags/BF.png and b/res/flags/BF.png differ diff --git a/res/flags/BG.png b/res/flags/BG.png index 6d8be358..b01d3ff5 100644 Binary files a/res/flags/BG.png and b/res/flags/BG.png differ diff --git a/res/flags/BH.png b/res/flags/BH.png index 0d98e0e0..d0f82e82 100644 Binary files a/res/flags/BH.png and b/res/flags/BH.png differ diff --git a/res/flags/BI.png b/res/flags/BI.png index e2659e3b..21865ac7 100644 Binary files a/res/flags/BI.png and b/res/flags/BI.png differ diff --git a/res/flags/BJ.png b/res/flags/BJ.png index 13fa3c91..a7c60914 100644 Binary files a/res/flags/BJ.png and b/res/flags/BJ.png differ diff --git a/res/flags/BL.png b/res/flags/BL.png index 8e50a796..6d50a0f5 100644 Binary files a/res/flags/BL.png and b/res/flags/BL.png differ diff --git a/res/flags/BM.png b/res/flags/BM.png index 53de7c39..310a25ea 100644 Binary files a/res/flags/BM.png and b/res/flags/BM.png differ diff --git a/res/flags/BN.png b/res/flags/BN.png index 3ed976eb..bc4da8d9 100644 Binary files a/res/flags/BN.png and b/res/flags/BN.png differ diff --git a/res/flags/BO.png b/res/flags/BO.png index 8e20ea8c..144b8d32 100644 Binary files a/res/flags/BO.png and b/res/flags/BO.png differ diff --git a/res/flags/BQ.png b/res/flags/BQ.png index 15472266..08979437 100644 Binary files a/res/flags/BQ.png and b/res/flags/BQ.png differ diff --git a/res/flags/BR.png b/res/flags/BR.png index 7a2bc17a..02784925 100644 Binary files a/res/flags/BR.png and b/res/flags/BR.png differ diff --git a/res/flags/BS.png b/res/flags/BS.png index 2a152575..2b05a8fc 100644 Binary files a/res/flags/BS.png and b/res/flags/BS.png differ diff --git a/res/flags/BT.png b/res/flags/BT.png index 4782cf34..1f031df0 100644 Binary files a/res/flags/BT.png and b/res/flags/BT.png differ diff --git a/res/flags/BV.png b/res/flags/BV.png index 991a6cd7..aafb0f17 100644 Binary files a/res/flags/BV.png and b/res/flags/BV.png differ diff --git a/res/flags/BW.png b/res/flags/BW.png index cd788955..30840167 100644 Binary files a/res/flags/BW.png and b/res/flags/BW.png differ diff --git a/res/flags/BY.png b/res/flags/BY.png index 40cdd8a7..ce9de9c9 100644 Binary files a/res/flags/BY.png and b/res/flags/BY.png differ diff --git a/res/flags/BZ.png b/res/flags/BZ.png index 5de79b76..33620c3f 100644 Binary files a/res/flags/BZ.png and b/res/flags/BZ.png differ diff --git a/res/flags/CA.png b/res/flags/CA.png index 68bcac99..4bbf8b11 100644 Binary files a/res/flags/CA.png and b/res/flags/CA.png differ diff --git a/res/flags/CC.png b/res/flags/CC.png index 13fe2b7f..fd40fc8a 100644 Binary files a/res/flags/CC.png and b/res/flags/CC.png differ diff --git a/res/flags/CD.png b/res/flags/CD.png index c1930409..230aacd4 100644 Binary files a/res/flags/CD.png and b/res/flags/CD.png differ diff --git a/res/flags/CF.png b/res/flags/CF.png index 6df77507..c58ed4f7 100644 Binary files a/res/flags/CF.png and b/res/flags/CF.png differ diff --git a/res/flags/CG.png b/res/flags/CG.png index 2d37cd50..6c2441e3 100644 Binary files a/res/flags/CG.png and b/res/flags/CG.png differ diff --git a/res/flags/CH.png b/res/flags/CH.png index 00d38717..9fd87167 100644 Binary files a/res/flags/CH.png and b/res/flags/CH.png differ diff --git a/res/flags/CI.png b/res/flags/CI.png index 82c7606e..9741b9b1 100644 Binary files a/res/flags/CI.png and b/res/flags/CI.png differ diff --git a/res/flags/CK.png b/res/flags/CK.png index 26bca5f9..6cca3596 100644 Binary files a/res/flags/CK.png and b/res/flags/CK.png differ diff --git a/res/flags/CL.png b/res/flags/CL.png index 317ec573..13b993d1 100644 Binary files a/res/flags/CL.png and b/res/flags/CL.png differ diff --git a/res/flags/CM.png b/res/flags/CM.png index c5605d63..bca5730f 100644 Binary files a/res/flags/CM.png and b/res/flags/CM.png differ diff --git a/res/flags/CN.png b/res/flags/CN.png index 1c25ab86..e086855c 100644 Binary files a/res/flags/CN.png and b/res/flags/CN.png differ diff --git a/res/flags/CO.png b/res/flags/CO.png index b328c1ea..65c0aba4 100644 Binary files a/res/flags/CO.png and b/res/flags/CO.png differ diff --git a/res/flags/CR.png b/res/flags/CR.png index df959197..b351c67a 100644 Binary files a/res/flags/CR.png and b/res/flags/CR.png differ diff --git a/res/flags/CU.png b/res/flags/CU.png index 60f6a8c8..e7a25c60 100644 Binary files a/res/flags/CU.png and b/res/flags/CU.png differ diff --git a/res/flags/CV.png b/res/flags/CV.png index 2dfe516d..f249bbaa 100644 Binary files a/res/flags/CV.png and b/res/flags/CV.png differ diff --git a/res/flags/CW.png b/res/flags/CW.png index 2380de15..e02cacd3 100644 Binary files a/res/flags/CW.png and b/res/flags/CW.png differ diff --git a/res/flags/CX.png b/res/flags/CX.png index 49a51c16..3ea21422 100644 Binary files a/res/flags/CX.png and b/res/flags/CX.png differ diff --git a/res/flags/CY.png b/res/flags/CY.png index 08a0e372..3182f48b 100644 Binary files a/res/flags/CY.png and b/res/flags/CY.png differ diff --git a/res/flags/CZ.png b/res/flags/CZ.png index 90ceaa24..54623346 100644 Binary files a/res/flags/CZ.png and b/res/flags/CZ.png differ diff --git a/res/flags/DE.png b/res/flags/DE.png index 90cab7e9..93e26916 100644 Binary files a/res/flags/DE.png and b/res/flags/DE.png differ diff --git a/res/flags/DJ.png b/res/flags/DJ.png index c424a807..243bb739 100644 Binary files a/res/flags/DJ.png and b/res/flags/DJ.png differ diff --git a/res/flags/DK.png b/res/flags/DK.png index 5a3845ad..fc74cc39 100644 Binary files a/res/flags/DK.png and b/res/flags/DK.png differ diff --git a/res/flags/DM.png b/res/flags/DM.png index e7fb60c0..c3a0e9d1 100644 Binary files a/res/flags/DM.png and b/res/flags/DM.png differ diff --git a/res/flags/DO.png b/res/flags/DO.png index 03c2f1b9..5c4a004f 100644 Binary files a/res/flags/DO.png and b/res/flags/DO.png differ diff --git a/res/flags/DZ.png b/res/flags/DZ.png index 9d63939e..1589d0cc 100644 Binary files a/res/flags/DZ.png and b/res/flags/DZ.png differ diff --git a/res/flags/EC.png b/res/flags/EC.png index 92e2a9e9..4c53dead 100644 Binary files a/res/flags/EC.png and b/res/flags/EC.png differ diff --git a/res/flags/EE.png b/res/flags/EE.png index 08156869..3668de79 100644 Binary files a/res/flags/EE.png and b/res/flags/EE.png differ diff --git a/res/flags/EG.png b/res/flags/EG.png index 7e9d6c5c..66ec709d 100644 Binary files a/res/flags/EG.png and b/res/flags/EG.png differ diff --git a/res/flags/EH.png b/res/flags/EH.png index f8e59b21..148be93c 100644 Binary files a/res/flags/EH.png and b/res/flags/EH.png differ diff --git a/res/flags/ER.png b/res/flags/ER.png index ffeb28da..7cb84415 100644 Binary files a/res/flags/ER.png and b/res/flags/ER.png differ diff --git a/res/flags/ES.png b/res/flags/ES.png index 3ce59fe8..aae73b6f 100644 Binary files a/res/flags/ES.png and b/res/flags/ES.png differ diff --git a/res/flags/ET.png b/res/flags/ET.png index f9d92859..7b420f02 100644 Binary files a/res/flags/ET.png and b/res/flags/ET.png differ diff --git a/res/flags/FI.png b/res/flags/FI.png index 0930988c..42f64bf3 100644 Binary files a/res/flags/FI.png and b/res/flags/FI.png differ diff --git a/res/flags/FJ.png b/res/flags/FJ.png index 2a78075d..cecc683c 100644 Binary files a/res/flags/FJ.png and b/res/flags/FJ.png differ diff --git a/res/flags/FK.png b/res/flags/FK.png index 52543390..6074fea0 100644 Binary files a/res/flags/FK.png and b/res/flags/FK.png differ diff --git a/res/flags/FM.png b/res/flags/FM.png index 0ba546ed..45fdb664 100644 Binary files a/res/flags/FM.png and b/res/flags/FM.png differ diff --git a/res/flags/FO.png b/res/flags/FO.png index 2a0cd645..d8fd75c6 100644 Binary files a/res/flags/FO.png and b/res/flags/FO.png differ diff --git a/res/flags/FR.png b/res/flags/FR.png index ef05d74b..6d50a0f5 100644 Binary files a/res/flags/FR.png and b/res/flags/FR.png differ diff --git a/res/flags/GA.png b/res/flags/GA.png index 6539d6dd..3808a61f 100644 Binary files a/res/flags/GA.png and b/res/flags/GA.png differ diff --git a/res/flags/GB.png b/res/flags/GB.png index 2938e61b..589be700 100644 Binary files a/res/flags/GB.png and b/res/flags/GB.png differ diff --git a/res/flags/GD.png b/res/flags/GD.png index a55638e7..babe1e4c 100644 Binary files a/res/flags/GD.png and b/res/flags/GD.png differ diff --git a/res/flags/GE.png b/res/flags/GE.png index c6cfd2b0..d34cddec 100644 Binary files a/res/flags/GE.png and b/res/flags/GE.png differ diff --git a/res/flags/GF.png b/res/flags/GF.png index dfc1badf..98828a59 100644 Binary files a/res/flags/GF.png and b/res/flags/GF.png differ diff --git a/res/flags/GG.png b/res/flags/GG.png index a79f8c1f..aec8969b 100644 Binary files a/res/flags/GG.png and b/res/flags/GG.png differ diff --git a/res/flags/GH.png b/res/flags/GH.png index bda5d6f6..70b1a623 100644 Binary files a/res/flags/GH.png and b/res/flags/GH.png differ diff --git a/res/flags/GI.png b/res/flags/GI.png index 620b50b3..9aa58327 100644 Binary files a/res/flags/GI.png and b/res/flags/GI.png differ diff --git a/res/flags/GL.png b/res/flags/GL.png index c3d6bcf3..cf1645c2 100644 Binary files a/res/flags/GL.png and b/res/flags/GL.png differ diff --git a/res/flags/GM.png b/res/flags/GM.png index fa2d771e..ec374fb3 100644 Binary files a/res/flags/GM.png and b/res/flags/GM.png differ diff --git a/res/flags/GN.png b/res/flags/GN.png index dabe7ce4..46874b4d 100644 Binary files a/res/flags/GN.png and b/res/flags/GN.png differ diff --git a/res/flags/GP.png b/res/flags/GP.png index 7bf76956..81b7abdf 100644 Binary files a/res/flags/GP.png and b/res/flags/GP.png differ diff --git a/res/flags/GQ.png b/res/flags/GQ.png index edae61e9..7fd1015e 100644 Binary files a/res/flags/GQ.png and b/res/flags/GQ.png differ diff --git a/res/flags/GR.png b/res/flags/GR.png index 5abc59d3..101de51e 100644 Binary files a/res/flags/GR.png and b/res/flags/GR.png differ diff --git a/res/flags/GS.png b/res/flags/GS.png index baa930d0..772c2cbe 100644 Binary files a/res/flags/GS.png and b/res/flags/GS.png differ diff --git a/res/flags/GT.png b/res/flags/GT.png index 10ef0cdd..d5bd8c1e 100644 Binary files a/res/flags/GT.png and b/res/flags/GT.png differ diff --git a/res/flags/GU.png b/res/flags/GU.png index 166c121e..8923085d 100644 Binary files a/res/flags/GU.png and b/res/flags/GU.png differ diff --git a/res/flags/GW.png b/res/flags/GW.png index fb59de83..20c268ce 100644 Binary files a/res/flags/GW.png and b/res/flags/GW.png differ diff --git a/res/flags/GY.png b/res/flags/GY.png index 65499a7c..86f56635 100644 Binary files a/res/flags/GY.png and b/res/flags/GY.png differ diff --git a/res/flags/HK.png b/res/flags/HK.png index 39588384..907dc596 100644 Binary files a/res/flags/HK.png and b/res/flags/HK.png differ diff --git a/res/flags/HM.png b/res/flags/HM.png index 26a61cbf..8d1e1437 100644 Binary files a/res/flags/HM.png and b/res/flags/HM.png differ diff --git a/res/flags/HN.png b/res/flags/HN.png index bf923cb8..4cf8c311 100644 Binary files a/res/flags/HN.png and b/res/flags/HN.png differ diff --git a/res/flags/HR.png b/res/flags/HR.png index 139e143b..413ceb15 100644 Binary files a/res/flags/HR.png and b/res/flags/HR.png differ diff --git a/res/flags/HT.png b/res/flags/HT.png index 2583da39..097abeb4 100644 Binary files a/res/flags/HT.png and b/res/flags/HT.png differ diff --git a/res/flags/HU.png b/res/flags/HU.png index 625846af..23499bf6 100644 Binary files a/res/flags/HU.png and b/res/flags/HU.png differ diff --git a/res/flags/ID.png b/res/flags/ID.png index f88d48af..80200657 100644 Binary files a/res/flags/ID.png and b/res/flags/ID.png differ diff --git a/res/flags/IE.png b/res/flags/IE.png index 17f255fc..63f22201 100644 Binary files a/res/flags/IE.png and b/res/flags/IE.png differ diff --git a/res/flags/IL.png b/res/flags/IL.png index 6c9a6b57..02688263 100644 Binary files a/res/flags/IL.png and b/res/flags/IL.png differ diff --git a/res/flags/IM.png b/res/flags/IM.png index 936e801d..c777acc4 100644 Binary files a/res/flags/IM.png and b/res/flags/IM.png differ diff --git a/res/flags/IN.png b/res/flags/IN.png index ecba2f9c..85fa9bfe 100644 Binary files a/res/flags/IN.png and b/res/flags/IN.png differ diff --git a/res/flags/IO.png b/res/flags/IO.png index b0edb161..1675d8e7 100644 Binary files a/res/flags/IO.png and b/res/flags/IO.png differ diff --git a/res/flags/IQ.png b/res/flags/IQ.png index 19055f14..f2c21f72 100644 Binary files a/res/flags/IQ.png and b/res/flags/IQ.png differ diff --git a/res/flags/IR.png b/res/flags/IR.png index 9056d21e..0b8e6750 100644 Binary files a/res/flags/IR.png and b/res/flags/IR.png differ diff --git a/res/flags/IS.png b/res/flags/IS.png index 06be01a8..5ee3e63c 100644 Binary files a/res/flags/IS.png and b/res/flags/IS.png differ diff --git a/res/flags/IT.png b/res/flags/IT.png index 50e17b22..53b967be 100644 Binary files a/res/flags/IT.png and b/res/flags/IT.png differ diff --git a/res/flags/JE.png b/res/flags/JE.png index 456a1a83..a1437aba 100644 Binary files a/res/flags/JE.png and b/res/flags/JE.png differ diff --git a/res/flags/JM.png b/res/flags/JM.png index 5e4e73d3..0d462fa3 100644 Binary files a/res/flags/JM.png and b/res/flags/JM.png differ diff --git a/res/flags/JO.png b/res/flags/JO.png index 5982705b..8934db7e 100644 Binary files a/res/flags/JO.png and b/res/flags/JO.png differ diff --git a/res/flags/JP.png b/res/flags/JP.png index 009a990a..6f92d523 100644 Binary files a/res/flags/JP.png and b/res/flags/JP.png differ diff --git a/res/flags/KE.png b/res/flags/KE.png index b5a9f733..866b3f15 100644 Binary files a/res/flags/KE.png and b/res/flags/KE.png differ diff --git a/res/flags/KG.png b/res/flags/KG.png index acf6646b..56b433c7 100644 Binary files a/res/flags/KG.png and b/res/flags/KG.png differ diff --git a/res/flags/KH.png b/res/flags/KH.png index 58ad9c61..e1ddd5f8 100644 Binary files a/res/flags/KH.png and b/res/flags/KH.png differ diff --git a/res/flags/KI.png b/res/flags/KI.png index 49902d25..8b7c54bc 100644 Binary files a/res/flags/KI.png and b/res/flags/KI.png differ diff --git a/res/flags/KM.png b/res/flags/KM.png index 9fa9a454..227a3b33 100644 Binary files a/res/flags/KM.png and b/res/flags/KM.png differ diff --git a/res/flags/KN.png b/res/flags/KN.png index 3b39f8f7..bc6189be 100644 Binary files a/res/flags/KN.png and b/res/flags/KN.png differ diff --git a/res/flags/KP.png b/res/flags/KP.png index eacc3ad0..c92248b9 100644 Binary files a/res/flags/KP.png and b/res/flags/KP.png differ diff --git a/res/flags/KR.png b/res/flags/KR.png index a0df8da0..ab1cb949 100644 Binary files a/res/flags/KR.png and b/res/flags/KR.png differ diff --git a/res/flags/KW.png b/res/flags/KW.png index c6839950..0b41c7a5 100644 Binary files a/res/flags/KW.png and b/res/flags/KW.png differ diff --git a/res/flags/KY.png b/res/flags/KY.png index 3f82fa74..7af5290d 100644 Binary files a/res/flags/KY.png and b/res/flags/KY.png differ diff --git a/res/flags/KZ.png b/res/flags/KZ.png index 4b436212..e10a1255 100644 Binary files a/res/flags/KZ.png and b/res/flags/KZ.png differ diff --git a/res/flags/LA.png b/res/flags/LA.png index ee9c41ea..6ad67d42 100644 Binary files a/res/flags/LA.png and b/res/flags/LA.png differ diff --git a/res/flags/LB.png b/res/flags/LB.png index 7b4d6653..865df57a 100644 Binary files a/res/flags/LB.png and b/res/flags/LB.png differ diff --git a/res/flags/LC.png b/res/flags/LC.png index d97f8d8d..e83a2d08 100644 Binary files a/res/flags/LC.png and b/res/flags/LC.png differ diff --git a/res/flags/LI.png b/res/flags/LI.png index c75a229f..57034d36 100644 Binary files a/res/flags/LI.png and b/res/flags/LI.png differ diff --git a/res/flags/LK.png b/res/flags/LK.png index 2ca1a0c1..6e7ad582 100644 Binary files a/res/flags/LK.png and b/res/flags/LK.png differ diff --git a/res/flags/LR.png b/res/flags/LR.png index 41bf4a96..46c3b84a 100644 Binary files a/res/flags/LR.png and b/res/flags/LR.png differ diff --git a/res/flags/LS.png b/res/flags/LS.png index 10cf81b0..79b505d4 100644 Binary files a/res/flags/LS.png and b/res/flags/LS.png differ diff --git a/res/flags/LT.png b/res/flags/LT.png index 17a36c71..7740cdc0 100644 Binary files a/res/flags/LT.png and b/res/flags/LT.png differ diff --git a/res/flags/LU.png b/res/flags/LU.png index 675a891d..8f383e67 100644 Binary files a/res/flags/LU.png and b/res/flags/LU.png differ diff --git a/res/flags/LV.png b/res/flags/LV.png index 763a6120..a0f36d89 100644 Binary files a/res/flags/LV.png and b/res/flags/LV.png differ diff --git a/res/flags/LY.png b/res/flags/LY.png index 5211a902..2884c4c0 100644 Binary files a/res/flags/LY.png and b/res/flags/LY.png differ diff --git a/res/flags/MA.png b/res/flags/MA.png index 098db500..1f76cfc9 100644 Binary files a/res/flags/MA.png and b/res/flags/MA.png differ diff --git a/res/flags/MC.png b/res/flags/MC.png index 8d1a9813..06fc2ad1 100644 Binary files a/res/flags/MC.png and b/res/flags/MC.png differ diff --git a/res/flags/MD.png b/res/flags/MD.png index 6ca6f734..8e54c2b8 100644 Binary files a/res/flags/MD.png and b/res/flags/MD.png differ diff --git a/res/flags/ME.png b/res/flags/ME.png index c7fccac3..97424d4e 100644 Binary files a/res/flags/ME.png and b/res/flags/ME.png differ diff --git a/res/flags/MF.png b/res/flags/MF.png index 7f6824e0..6d50a0f5 100644 Binary files a/res/flags/MF.png and b/res/flags/MF.png differ diff --git a/res/flags/MG.png b/res/flags/MG.png index 55bc8985..28bfccc9 100644 Binary files a/res/flags/MG.png and b/res/flags/MG.png differ diff --git a/res/flags/MH.png b/res/flags/MH.png index 44849779..e482a659 100644 Binary files a/res/flags/MH.png and b/res/flags/MH.png differ diff --git a/res/flags/MK.png b/res/flags/MK.png index ef8d2e55..84e2e65e 100644 Binary files a/res/flags/MK.png and b/res/flags/MK.png differ diff --git a/res/flags/ML.png b/res/flags/ML.png index b8c5737f..38fec347 100644 Binary files a/res/flags/ML.png and b/res/flags/ML.png differ diff --git a/res/flags/MM.png b/res/flags/MM.png index afac4940..70a03c6b 100644 Binary files a/res/flags/MM.png and b/res/flags/MM.png differ diff --git a/res/flags/MN.png b/res/flags/MN.png index 6e3de338..1e1bbe60 100644 Binary files a/res/flags/MN.png and b/res/flags/MN.png differ diff --git a/res/flags/MO.png b/res/flags/MO.png index 02118edf..3833d683 100644 Binary files a/res/flags/MO.png and b/res/flags/MO.png differ diff --git a/res/flags/MP.png b/res/flags/MP.png index a85be51b..63119096 100644 Binary files a/res/flags/MP.png and b/res/flags/MP.png differ diff --git a/res/flags/MQ.png b/res/flags/MQ.png index 92eb0727..9cab441a 100644 Binary files a/res/flags/MQ.png and b/res/flags/MQ.png differ diff --git a/res/flags/MR.png b/res/flags/MR.png index 95a52726..c144de17 100644 Binary files a/res/flags/MR.png and b/res/flags/MR.png differ diff --git a/res/flags/MS.png b/res/flags/MS.png index a811c5bd..12217070 100644 Binary files a/res/flags/MS.png and b/res/flags/MS.png differ diff --git a/res/flags/MT.png b/res/flags/MT.png index 857672bf..7963aa61 100644 Binary files a/res/flags/MT.png and b/res/flags/MT.png differ diff --git a/res/flags/MU.png b/res/flags/MU.png index 8f6abb73..d5d4d400 100644 Binary files a/res/flags/MU.png and b/res/flags/MU.png differ diff --git a/res/flags/MV.png b/res/flags/MV.png index bdb8119f..0f2ecb43 100644 Binary files a/res/flags/MV.png and b/res/flags/MV.png differ diff --git a/res/flags/MW.png b/res/flags/MW.png index c684776a..d0a5d24f 100644 Binary files a/res/flags/MW.png and b/res/flags/MW.png differ diff --git a/res/flags/MX.png b/res/flags/MX.png index aee282de..096cb111 100644 Binary files a/res/flags/MX.png and b/res/flags/MX.png differ diff --git a/res/flags/MY.png b/res/flags/MY.png index 3941aa8c..17f18ac5 100644 Binary files a/res/flags/MY.png and b/res/flags/MY.png differ diff --git a/res/flags/MZ.png b/res/flags/MZ.png index dd497c23..66be6563 100644 Binary files a/res/flags/MZ.png and b/res/flags/MZ.png differ diff --git a/res/flags/NA.png b/res/flags/NA.png index 68e4aeab..7ecfd317 100644 Binary files a/res/flags/NA.png and b/res/flags/NA.png differ diff --git a/res/flags/NC.png b/res/flags/NC.png index ffcc2166..11126ade 100644 Binary files a/res/flags/NC.png and b/res/flags/NC.png differ diff --git a/res/flags/NE.png b/res/flags/NE.png index 08950d2f..d584fa84 100644 Binary files a/res/flags/NE.png and b/res/flags/NE.png differ diff --git a/res/flags/NF.png b/res/flags/NF.png index 2728ed54..c0540425 100644 Binary files a/res/flags/NF.png and b/res/flags/NF.png differ diff --git a/res/flags/NG.png b/res/flags/NG.png index 5812b2d2..73aee15b 100644 Binary files a/res/flags/NG.png and b/res/flags/NG.png differ diff --git a/res/flags/NI.png b/res/flags/NI.png index d09e1329..fd044933 100644 Binary files a/res/flags/NI.png and b/res/flags/NI.png differ diff --git a/res/flags/NL.png b/res/flags/NL.png index f9203282..08979437 100644 Binary files a/res/flags/NL.png and b/res/flags/NL.png differ diff --git a/res/flags/NO.png b/res/flags/NO.png index 0bedee3f..aafb0f17 100644 Binary files a/res/flags/NO.png and b/res/flags/NO.png differ diff --git a/res/flags/NP.png b/res/flags/NP.png index e7775c25..744458e1 100644 Binary files a/res/flags/NP.png and b/res/flags/NP.png differ diff --git a/res/flags/NR.png b/res/flags/NR.png index 4760404b..58c2afb2 100644 Binary files a/res/flags/NR.png and b/res/flags/NR.png differ diff --git a/res/flags/NU.png b/res/flags/NU.png index 7c130d5b..007c99ec 100644 Binary files a/res/flags/NU.png and b/res/flags/NU.png differ diff --git a/res/flags/NZ.png b/res/flags/NZ.png index 67c98728..839368dd 100644 Binary files a/res/flags/NZ.png and b/res/flags/NZ.png differ diff --git a/res/flags/OM.png b/res/flags/OM.png index a6762503..63a89336 100644 Binary files a/res/flags/OM.png and b/res/flags/OM.png differ diff --git a/res/flags/PA.png b/res/flags/PA.png index ed18bdda..3515d95d 100644 Binary files a/res/flags/PA.png and b/res/flags/PA.png differ diff --git a/res/flags/PE.png b/res/flags/PE.png index 7485279c..58f70b8d 100644 Binary files a/res/flags/PE.png and b/res/flags/PE.png differ diff --git a/res/flags/PF.png b/res/flags/PF.png index 6623f413..2f33f257 100644 Binary files a/res/flags/PF.png and b/res/flags/PF.png differ diff --git a/res/flags/PG.png b/res/flags/PG.png index 92504c51..c796f587 100644 Binary files a/res/flags/PG.png and b/res/flags/PG.png differ diff --git a/res/flags/PH.png b/res/flags/PH.png index d6d67621..0d98de03 100644 Binary files a/res/flags/PH.png and b/res/flags/PH.png differ diff --git a/res/flags/PK.png b/res/flags/PK.png index f7c8bb94..87f4e2f4 100644 Binary files a/res/flags/PK.png and b/res/flags/PK.png differ diff --git a/res/flags/PL.png b/res/flags/PL.png index 8303b1ea..273869df 100644 Binary files a/res/flags/PL.png and b/res/flags/PL.png differ diff --git a/res/flags/PM.png b/res/flags/PM.png index 2507c86e..b74c396d 100644 Binary files a/res/flags/PM.png and b/res/flags/PM.png differ diff --git a/res/flags/PN.png b/res/flags/PN.png index c5e1d884..e34c62d5 100644 Binary files a/res/flags/PN.png and b/res/flags/PN.png differ diff --git a/res/flags/PR.png b/res/flags/PR.png index 938c8350..8efdb912 100644 Binary files a/res/flags/PR.png and b/res/flags/PR.png differ diff --git a/res/flags/PS.png b/res/flags/PS.png index d106ba89..7a0cceec 100644 Binary files a/res/flags/PS.png and b/res/flags/PS.png differ diff --git a/res/flags/PT.png b/res/flags/PT.png index 168f0605..49e29082 100644 Binary files a/res/flags/PT.png and b/res/flags/PT.png differ diff --git a/res/flags/PW.png b/res/flags/PW.png index 2d6e5d5b..6cb2e1e7 100644 Binary files a/res/flags/PW.png and b/res/flags/PW.png differ diff --git a/res/flags/PY.png b/res/flags/PY.png index 9cae9a78..a61c42c4 100644 Binary files a/res/flags/PY.png and b/res/flags/PY.png differ diff --git a/res/flags/QA.png b/res/flags/QA.png index ce9d31ed..bb091cc8 100644 Binary files a/res/flags/QA.png and b/res/flags/QA.png differ diff --git a/res/flags/RE.png b/res/flags/RE.png index 85c25710..6d50a0f5 100644 Binary files a/res/flags/RE.png and b/res/flags/RE.png differ diff --git a/res/flags/RO.png b/res/flags/RO.png index e77996d5..4495d29e 100644 Binary files a/res/flags/RO.png and b/res/flags/RO.png differ diff --git a/res/flags/RS.png b/res/flags/RS.png index fc7a2ab7..ebb0f28a 100644 Binary files a/res/flags/RS.png and b/res/flags/RS.png differ diff --git a/res/flags/RU.png b/res/flags/RU.png index 8b3df779..64532ffa 100644 Binary files a/res/flags/RU.png and b/res/flags/RU.png differ diff --git a/res/flags/RW.png b/res/flags/RW.png index 87f71867..64b3cfff 100644 Binary files a/res/flags/RW.png and b/res/flags/RW.png differ diff --git a/res/flags/SA.png b/res/flags/SA.png index d93b91c7..250de6f6 100644 Binary files a/res/flags/SA.png and b/res/flags/SA.png differ diff --git a/res/flags/SB.png b/res/flags/SB.png index e9a2a8f3..5833c130 100644 Binary files a/res/flags/SB.png and b/res/flags/SB.png differ diff --git a/res/flags/SC.png b/res/flags/SC.png index 488ac3be..ce5248f4 100644 Binary files a/res/flags/SC.png and b/res/flags/SC.png differ diff --git a/res/flags/SD.png b/res/flags/SD.png index 6ba8c5ca..d8711a83 100644 Binary files a/res/flags/SD.png and b/res/flags/SD.png differ diff --git a/res/flags/SE.png b/res/flags/SE.png index e7bd806f..81880931 100644 Binary files a/res/flags/SE.png and b/res/flags/SE.png differ diff --git a/res/flags/SG.png b/res/flags/SG.png index 797069fc..6f00e579 100644 Binary files a/res/flags/SG.png and b/res/flags/SG.png differ diff --git a/res/flags/SH.png b/res/flags/SH.png index b2c589d0..055dde68 100644 Binary files a/res/flags/SH.png and b/res/flags/SH.png differ diff --git a/res/flags/SI.png b/res/flags/SI.png index be8e7a89..96359834 100644 Binary files a/res/flags/SI.png and b/res/flags/SI.png differ diff --git a/res/flags/SJ.png b/res/flags/SJ.png index 1dd7e786..aafb0f17 100644 Binary files a/res/flags/SJ.png and b/res/flags/SJ.png differ diff --git a/res/flags/SK.png b/res/flags/SK.png index be3d10f2..84c7021f 100644 Binary files a/res/flags/SK.png and b/res/flags/SK.png differ diff --git a/res/flags/SL.png b/res/flags/SL.png index b3f997b1..c5ed1991 100644 Binary files a/res/flags/SL.png and b/res/flags/SL.png differ diff --git a/res/flags/SM.png b/res/flags/SM.png index b30f77ad..1af1ca28 100644 Binary files a/res/flags/SM.png and b/res/flags/SM.png differ diff --git a/res/flags/SN.png b/res/flags/SN.png index b5cdb210..d0b18435 100644 Binary files a/res/flags/SN.png and b/res/flags/SN.png differ diff --git a/res/flags/SO.png b/res/flags/SO.png index 5f808508..64e2970b 100644 Binary files a/res/flags/SO.png and b/res/flags/SO.png differ diff --git a/res/flags/SR.png b/res/flags/SR.png index a2d124e9..b072dda8 100644 Binary files a/res/flags/SR.png and b/res/flags/SR.png differ diff --git a/res/flags/SS.png b/res/flags/SS.png index 19c65899..83933d45 100644 Binary files a/res/flags/SS.png and b/res/flags/SS.png differ diff --git a/res/flags/ST.png b/res/flags/ST.png index 1d2befe4..c102721a 100644 Binary files a/res/flags/ST.png and b/res/flags/ST.png differ diff --git a/res/flags/SV.png b/res/flags/SV.png index fc3a9ca4..80de92e5 100644 Binary files a/res/flags/SV.png and b/res/flags/SV.png differ diff --git a/res/flags/SX.png b/res/flags/SX.png index 6051aaa6..dd52215c 100644 Binary files a/res/flags/SX.png and b/res/flags/SX.png differ diff --git a/res/flags/SY.png b/res/flags/SY.png index 0d51d071..78f45b7c 100644 Binary files a/res/flags/SY.png and b/res/flags/SY.png differ diff --git a/res/flags/SZ.png b/res/flags/SZ.png index a7366cb6..2182f4ff 100644 Binary files a/res/flags/SZ.png and b/res/flags/SZ.png differ diff --git a/res/flags/TC.png b/res/flags/TC.png index 39971bb9..3e3e19d4 100644 Binary files a/res/flags/TC.png and b/res/flags/TC.png differ diff --git a/res/flags/TD.png b/res/flags/TD.png index 1fb647d4..753bec22 100644 Binary files a/res/flags/TD.png and b/res/flags/TD.png differ diff --git a/res/flags/TF.png b/res/flags/TF.png index 41bd9334..6d50a0f5 100644 Binary files a/res/flags/TF.png and b/res/flags/TF.png differ diff --git a/res/flags/TG.png b/res/flags/TG.png index 560fc098..8501ada6 100644 Binary files a/res/flags/TG.png and b/res/flags/TG.png differ diff --git a/res/flags/TH.png b/res/flags/TH.png index 9ee5ce89..0c884c32 100644 Binary files a/res/flags/TH.png and b/res/flags/TH.png differ diff --git a/res/flags/TJ.png b/res/flags/TJ.png index ca4be077..3c9026fa 100644 Binary files a/res/flags/TJ.png and b/res/flags/TJ.png differ diff --git a/res/flags/TK.png b/res/flags/TK.png index 88a7eb1a..fd605749 100644 Binary files a/res/flags/TK.png and b/res/flags/TK.png differ diff --git a/res/flags/TL.png b/res/flags/TL.png index fa6c365b..b4c834b1 100644 Binary files a/res/flags/TL.png and b/res/flags/TL.png differ diff --git a/res/flags/TM.png b/res/flags/TM.png index 6cc0539d..d18cb939 100644 Binary files a/res/flags/TM.png and b/res/flags/TM.png differ diff --git a/res/flags/TN.png b/res/flags/TN.png index 1cc09ec6..21c4b98b 100644 Binary files a/res/flags/TN.png and b/res/flags/TN.png differ diff --git a/res/flags/TO.png b/res/flags/TO.png index 44c42ce0..c828206e 100644 Binary files a/res/flags/TO.png and b/res/flags/TO.png differ diff --git a/res/flags/TR.png b/res/flags/TR.png index 4e63d61b..f2a5bd22 100644 Binary files a/res/flags/TR.png and b/res/flags/TR.png differ diff --git a/res/flags/TT.png b/res/flags/TT.png index 3831347f..66d69833 100644 Binary files a/res/flags/TT.png and b/res/flags/TT.png differ diff --git a/res/flags/TV.png b/res/flags/TV.png index 2f24fbf7..7a127f51 100644 Binary files a/res/flags/TV.png and b/res/flags/TV.png differ diff --git a/res/flags/TW.png b/res/flags/TW.png index cda05c9b..2353ba1b 100644 Binary files a/res/flags/TW.png and b/res/flags/TW.png differ diff --git a/res/flags/TZ.png b/res/flags/TZ.png index a60d5b3f..7949f65d 100644 Binary files a/res/flags/TZ.png and b/res/flags/TZ.png differ diff --git a/res/flags/UA.png b/res/flags/UA.png index f62089b6..687e3052 100644 Binary files a/res/flags/UA.png and b/res/flags/UA.png differ diff --git a/res/flags/UG.png b/res/flags/UG.png index 8fb590e8..0a21ad15 100644 Binary files a/res/flags/UG.png and b/res/flags/UG.png differ diff --git a/res/flags/US.png b/res/flags/US.png index f6b7ab98..c3a245b7 100644 Binary files a/res/flags/US.png and b/res/flags/US.png differ diff --git a/res/flags/UY.png b/res/flags/UY.png index 11abe8c1..21a347c6 100644 Binary files a/res/flags/UY.png and b/res/flags/UY.png differ diff --git a/res/flags/UZ.png b/res/flags/UZ.png index 5d9168a3..643b6ae0 100644 Binary files a/res/flags/UZ.png and b/res/flags/UZ.png differ diff --git a/res/flags/VA.png b/res/flags/VA.png index 4e5a92bd..63a13c0e 100644 Binary files a/res/flags/VA.png and b/res/flags/VA.png differ diff --git a/res/flags/VC.png b/res/flags/VC.png index 4a8dfa41..da991a93 100644 Binary files a/res/flags/VC.png and b/res/flags/VC.png differ diff --git a/res/flags/VE.png b/res/flags/VE.png index 3632def0..e75e17c9 100644 Binary files a/res/flags/VE.png and b/res/flags/VE.png differ diff --git a/res/flags/VG.png b/res/flags/VG.png index 15a5e5fa..46f93cad 100644 Binary files a/res/flags/VG.png and b/res/flags/VG.png differ diff --git a/res/flags/VI.png b/res/flags/VI.png index 986a53d2..8c849a73 100644 Binary files a/res/flags/VI.png and b/res/flags/VI.png differ diff --git a/res/flags/VN.png b/res/flags/VN.png index f19db790..6ea2122f 100644 Binary files a/res/flags/VN.png and b/res/flags/VN.png differ diff --git a/res/flags/VU.png b/res/flags/VU.png index a322030a..bad3ba4d 100644 Binary files a/res/flags/VU.png and b/res/flags/VU.png differ diff --git a/res/flags/WF.png b/res/flags/WF.png index 5f6e2bed..d94359dc 100644 Binary files a/res/flags/WF.png and b/res/flags/WF.png differ diff --git a/res/flags/WS.png b/res/flags/WS.png index de43a373..f8b80e5b 100644 Binary files a/res/flags/WS.png and b/res/flags/WS.png differ diff --git a/res/flags/YE.png b/res/flags/YE.png index b132bc13..8b9bbd89 100644 Binary files a/res/flags/YE.png and b/res/flags/YE.png differ diff --git a/res/flags/YT.png b/res/flags/YT.png index 5c450dfb..32887936 100644 Binary files a/res/flags/YT.png and b/res/flags/YT.png differ diff --git a/res/flags/ZA.png b/res/flags/ZA.png index adec062d..7f0a52d3 100644 Binary files a/res/flags/ZA.png and b/res/flags/ZA.png differ diff --git a/res/flags/ZM.png b/res/flags/ZM.png index 56287f58..87adc3af 100644 Binary files a/res/flags/ZM.png and b/res/flags/ZM.png differ diff --git a/res/flags/ZW.png b/res/flags/ZW.png index e58dff38..742c9f7e 100644 Binary files a/res/flags/ZW.png and b/res/flags/ZW.png differ diff --git a/res/home.html b/res/home.html new file mode 100644 index 00000000..3ba2e964 --- /dev/null +++ b/res/home.html @@ -0,0 +1,292 @@ + + +
+
+ +
+

_t("Welcome to Riot.im")

+

_t("Decentralised, encrypted chat & collaboration powered by [matrix]")

+
+
+
+
+
+

_t("Search the room directory")

+ + + + + _t("Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!") + +
+
+
+
+

_t("Chat with Riot Bot")

+ + + + + _t("Get started with some tips from Riot Bot!") + +
+
+
+ +

_t("General discussion about Matrix and Riot")

+ +
+
+ + + Matrix HQ + + _t("Discussion of all things Matrix!") +
+
+ + + Riot + + _t("Riot/Web & Desktop chat") +
+
+ + + #riot-ios + + _t("Riot/iOS & matrix-ios-sdk chat") +
+
+ + + #riot-android + + _t("Riot/Android & matrix-android-sdk chat") +
+
+ +

_t("Matrix technical discussions")

+

_t("Running Matrix services")

+ +
+
+ + + Synapse Support Community + + _t("Community-run support for Synapse") +
+
+ + + #dendrite:matrix.org + + _t("Admin support for Dendrite") +
+
+ + + Synapse Homeowners + + _t("Announcements about Synapse releases") +
+
+ + + IRC Matrix Bridges + + _t("Support for those using and running matrix-appservice-irc") +
+
+ +

_t("Building services on Matrix")

+ +
+
+ + + #matrix-dev:matrix.org + + _t("Support for those using the Matrix spec") +
+
+ + + End-to-end crypto in Matrix + + _t("Design and implementation of E2E in Matrix") +
+
+ + + #vr:matrix.org + + _t("Implementing VR services with Matrix") +
+
+ + + #webrtc:matrix.org + + _t("Implementing VoIP services with Matrix") +
+
+ + + Matrix Identity + + _t("Discussion of the Identity Service API") +
+
+ + + Matrix Bridging + + _t("Support for those using, running and writing other bridges") +
+
+ +

_t("Contributing code to Matrix and Riot")

+ +
+
+ + + #riot-dev + + _t("Dev chat for the Riot/Web dev team") +
+
+ + + #dendrite-dev + + _t("Dev chat for the Dendrite dev team") +
+
+ + + Riot-Web Translations + + _t("Co-ordination for Riot/Web translators") +
+
+
diff --git a/res/home/images/logo.svg b/res/home/images/logo.svg new file mode 100644 index 00000000..a5f70e5e --- /dev/null +++ b/res/home/images/logo.svg @@ -0,0 +1,76 @@ + + + + +New_logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/home/images/matrix.svg b/res/home/images/matrix.svg new file mode 100644 index 00000000..5c7dfbb5 --- /dev/null +++ b/res/home/images/matrix.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/home/rooms/bridging.png b/res/home/rooms/bridging.png new file mode 100644 index 00000000..6b3a55e7 Binary files /dev/null and b/res/home/rooms/bridging.png differ diff --git a/res/home/rooms/dendrite-dev.png b/res/home/rooms/dendrite-dev.png new file mode 100644 index 00000000..1d96bd84 Binary files /dev/null and b/res/home/rooms/dendrite-dev.png differ diff --git a/res/home/rooms/dendrite.png b/res/home/rooms/dendrite.png new file mode 100644 index 00000000..1d96bd84 Binary files /dev/null and b/res/home/rooms/dendrite.png differ diff --git a/res/home/rooms/e2e.png b/res/home/rooms/e2e.png new file mode 100644 index 00000000..a2bda4bc Binary files /dev/null and b/res/home/rooms/e2e.png differ diff --git a/res/home/rooms/homeowners.png b/res/home/rooms/homeowners.png new file mode 100644 index 00000000..ed45f11c Binary files /dev/null and b/res/home/rooms/homeowners.png differ diff --git a/res/home/rooms/identity.jpg b/res/home/rooms/identity.jpg new file mode 100644 index 00000000..f2e15056 Binary files /dev/null and b/res/home/rooms/identity.jpg differ diff --git a/res/home/rooms/identity.png b/res/home/rooms/identity.png new file mode 100644 index 00000000..de1ea60d Binary files /dev/null and b/res/home/rooms/identity.png differ diff --git a/res/home/rooms/irc.png b/res/home/rooms/irc.png new file mode 100644 index 00000000..5f611d12 Binary files /dev/null and b/res/home/rooms/irc.png differ diff --git a/res/home/rooms/matrix-dev.png b/res/home/rooms/matrix-dev.png new file mode 100644 index 00000000..fa54f00c Binary files /dev/null and b/res/home/rooms/matrix-dev.png differ diff --git a/res/home/rooms/matrix.png b/res/home/rooms/matrix.png new file mode 100644 index 00000000..fa54f00c Binary files /dev/null and b/res/home/rooms/matrix.png differ diff --git a/res/home/rooms/riot-android.png b/res/home/rooms/riot-android.png new file mode 100644 index 00000000..fa2bec8e Binary files /dev/null and b/res/home/rooms/riot-android.png differ diff --git a/res/home/rooms/riot-bot.png b/res/home/rooms/riot-bot.png new file mode 100644 index 00000000..9efd4a3c Binary files /dev/null and b/res/home/rooms/riot-bot.png differ diff --git a/res/home/rooms/riot-dev.png b/res/home/rooms/riot-dev.png new file mode 100644 index 00000000..ff8b21ad Binary files /dev/null and b/res/home/rooms/riot-dev.png differ diff --git a/res/home/rooms/riot-ios.png b/res/home/rooms/riot-ios.png new file mode 100644 index 00000000..83306f7c Binary files /dev/null and b/res/home/rooms/riot-ios.png differ diff --git a/res/home/rooms/riot-translations.png b/res/home/rooms/riot-translations.png new file mode 100644 index 00000000..ee0f8558 Binary files /dev/null and b/res/home/rooms/riot-translations.png differ diff --git a/res/home/rooms/riot.png b/res/home/rooms/riot.png new file mode 100644 index 00000000..4daa2e4e Binary files /dev/null and b/res/home/rooms/riot.png differ diff --git a/res/home/rooms/synapse.png b/res/home/rooms/synapse.png new file mode 100644 index 00000000..ee0f8558 Binary files /dev/null and b/res/home/rooms/synapse.png differ diff --git a/res/home/rooms/vr.png b/res/home/rooms/vr.png new file mode 100644 index 00000000..98b77802 Binary files /dev/null and b/res/home/rooms/vr.png differ diff --git a/res/home/rooms/webrtc.png b/res/home/rooms/webrtc.png new file mode 100644 index 00000000..98b790f9 Binary files /dev/null and b/res/home/rooms/webrtc.png differ diff --git a/scripts/check-i18n.pl b/scripts/check-i18n.pl new file mode 120000 index 00000000..7d74c7a4 --- /dev/null +++ b/scripts/check-i18n.pl @@ -0,0 +1 @@ +../../matrix-react-sdk/scripts/check-i18n.pl \ No newline at end of file diff --git a/scripts/copy-res.js b/scripts/copy-res.js index 460b2b51..c33a931b 100755 --- a/scripts/copy-res.js +++ b/scripts/copy-res.js @@ -10,15 +10,20 @@ // control when we languages are available. const INCLUDE_LANGS = [ {'value': 'en_EN', 'label': 'English'}, + {'value': 'en_US', 'label': 'English (US)'}, {'value': 'da', 'label': 'Dansk'}, + {'value': 'el', 'label': 'Ελληνικά'}, {'value': 'nl', 'label': 'Nederlands'}, {'value': 'de_DE', 'label': 'Deutsch'}, {'value': 'fr', 'label': 'Français'}, {'value': 'pt', 'label': 'Português'}, {'value': 'pt_BR', 'label': 'Português do Brasil'}, {'value': 'ru', 'label': 'Русский'}, + {'value': 'sv', 'label': 'Svenska'}, {'value': 'es', 'label': 'Español'}, - {'value': 'zh_Hans', 'label': '中文'} + {'value': 'th', 'label': 'Thai'}, + {'value': 'zh_Hans', 'label': '简体中文'}, // simplified chinese + {'value': 'zh_Hant', 'label': '繁體中文'}, // traditional chinese ]; // cpx includes globbed parts of the filename in the destination, but excludes @@ -26,6 +31,8 @@ const INCLUDE_LANGS = [ // "dest/b/...". const COPY_LIST = [ ["res/manifest.json", "webapp"], + ["res/home.html", "webapp"], + ["res/home/**", "webapp/home"], ["res/{media,vector-icons}/**", "webapp"], ["res/flags/*", "webapp/flags/"], ["src/skins/vector/{fonts,img}/**", "webapp"], @@ -166,9 +173,14 @@ function genLangList() { languages[normalizedLanguage] = {'fileName': lang.value + '.json', 'label': lang.label}; } }); - fs.writeFile('webapp/i18n/languages.json', JSON.stringify(languages, null, 4)); + fs.writeFile('webapp/i18n/languages.json', JSON.stringify(languages, null, 4), function(err) { + if (err) { + console.error("Copy Error occured: " + err); + throw new Error("Failed to generate languages.json"); + } + }); if (verbose) { - console.log("Generated language list"); + console.log("Generated languages.json"); } } diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh index cc0f221a..4fa1a4a2 100755 --- a/scripts/fetch-develop.deps.sh +++ b/scripts/fetch-develop.deps.sh @@ -25,6 +25,11 @@ else fi fi +# Chop 'origin' off the start as jenkins ends up using +# branches on the origin, but this doesn't work if we +# specify the branch when cloning. +curbranch=${curbranch#origin/} + echo "Determined branch to be $curbranch" # clone a specific branch of a github repo diff --git a/scripts/genflags.sh b/scripts/genflags.sh index 826a0299..d960c6de 100755 --- a/scripts/genflags.sh +++ b/scripts/genflags.sh @@ -18,6 +18,9 @@ # - imagemagick --with-rsvg (because default imagemagick SVG # renderer does not produce accurate results) # +# on macOS, this is most easily done with: +# brew install imagemagick --with-librsvg +# # This will clone the googlei18n flag repo before converting # all phonenumber.js-supported country flags (as SVGs) into # PNGs that can be used by CountryDropdown.js. @@ -42,17 +45,18 @@ for f in region-flags/svg/*.svg; do # Run imagemagick convert # -background none : transparent background - # -thumbnail 25x15 : resize the flag to have a height of 15. + # -resize 50x30 : resize the flag to have a height of 15px (2x) # By default, aspect ratio is respected so the width will # be correct and not necessarily 25px. + # -filter Lanczos : use sharper resampling to avoid muddiness # -gravity Center : keep the image central when adding an -extent # -border 1 : add a 1px border around the flag # -bordercolor : set the border colour - # -extent 27x27 : surround the image with padding so that it - # has the dimensions 27x27. - convert $f -background none -thumbnail 25x15 \ - -gravity Center -border 1 -bordercolor \#e0e0e0 \ - -extent 27x27 $f.png + # -extent 54x54 : surround the image with padding so that it + # has the dimensions 27x27px (2x). + convert $f -background none -filter Lanczos -resize 50x30 \ + -gravity Center -border 1 -bordercolor \#e0e0e0 \ + -extent 54x54 $f.png # $f.png will be region-flags/svg/XX.svg.png at this point @@ -61,6 +65,6 @@ for f in region-flags/svg/*.svg; do # Replace .svg with .png newname=${newname%.svg}.png # Move the file to flags directory - mv $f.png res/flags/$newname + mv $f.png ../res/flags/$newname echo "Generated res/flags/"$newname done diff --git a/src/components/structures/BottomLeftMenu.js b/src/components/structures/BottomLeftMenu.js index c8c7ba2c..eacc500a 100644 --- a/src/components/structures/BottomLeftMenu.js +++ b/src/components/structures/BottomLeftMenu.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2017 Vector Creations Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,21 +15,21 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import sdk from 'matrix-react-sdk'; +import dis from 'matrix-react-sdk/lib/dispatcher'; +import AccessibleButton from 'matrix-react-sdk/lib/components/views/elements/AccessibleButton'; +import Velocity from 'velocity-vector'; +import 'velocity-vector/velocity.ui'; -var React = require('react'); -var ReactDOM = require('react-dom'); -var sdk = require('matrix-react-sdk'); -import { _t } from 'matrix-react-sdk/lib/languageHandler'; -var dis = require('matrix-react-sdk/lib/dispatcher'); -var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton'); +const CALLOUT_ANIM_DURATION = 1000; module.exports = React.createClass({ displayName: 'BottomLeftMenu', propTypes: { collapsed: React.PropTypes.bool.isRequired, - teamToken: React.PropTypes.string, }, getInitialState: function() { @@ -41,6 +42,18 @@ module.exports = React.createClass({ }); }, + componentWillMount: function() { + this._dispatcherRef = dis.register(this.onAction); + this._peopleButton = null; + this._directoryButton = null; + this._createRoomButton = null; + this._lastCallouts = {}; + }, + + componentWillUnmount: function() { + dis.unregister(this._dispatcherRef); + }, + // Room events onDirectoryClick: function() { dis.dispatch({ action: 'view_room_directory' }); @@ -105,6 +118,30 @@ module.exports = React.createClass({ this.setState({ settingsHover: false }); }, + onAction: function(payload) { + let calloutElement; + switch (payload.action) { + // Incoming instruction: dance! + case 'callout_start_chat': + calloutElement = this._peopleButton; + break; + case 'callout_room_directory': + calloutElement = this._directoryButton; + break; + case 'callout_create_room': + calloutElement = this._createRoomButton; + break; + } + if (calloutElement) { + const lastCallout = this._lastCallouts[payload.action]; + const now = Date.now(); + if (lastCallout == undefined || lastCallout < now - CALLOUT_ANIM_DURATION) { + this._lastCallouts[payload.action] = now; + Velocity(ReactDOM.findDOMNode(calloutElement), "callout.bounce", CALLOUT_ANIM_DURATION); + } + } + }, + // Get the label/tooltip to show getLabel: function(label, show) { if (show) { @@ -113,39 +150,41 @@ module.exports = React.createClass({ } }, - render: function() { - var TintableSvg = sdk.getComponent('elements.TintableSvg'); + _collectPeopleButton: function(e) { + this._peopleButton = e; + }, - var homeButton; - if (this.props.teamToken) { - homeButton = ( - - - { this.getLabel(_t("Welcome page"), this.state.homeHover) } - - ); - } + _collectDirectoryButton: function(e) { + this._directoryButton = e; + }, + + _collectCreateRoomButton: function(e) { + this._createRoomButton = e; + }, + + render: function() { + const HomeButton = sdk.getComponent('elements.HomeButton'); + const StartChatButton = sdk.getComponent('elements.StartChatButton'); + const RoomDirectoryButton = sdk.getComponent('elements.RoomDirectoryButton'); + const CreateRoomButton = sdk.getComponent('elements.CreateRoomButton'); + const SettingsButton = sdk.getComponent('elements.SettingsButton'); return (
- { homeButton } - - - { this.getLabel(_t("Start chat"), this.state.peopleHover) } - - - - { this.getLabel(_t("Room directory"), this.state.directoryHover) } - - - - { this.getLabel(_t("Create new room"), this.state.roomsHover) } - - - - { this.getLabel(_t("Settings"), this.state.settingsHover) } - + +
+ +
+
+ +
+
+ +
+ + +
); diff --git a/src/components/structures/HomePage.js b/src/components/structures/HomePage.js index 9864b2e9..e1e700f2 100644 --- a/src/components/structures/HomePage.js +++ b/src/components/structures/HomePage.js @@ -18,21 +18,82 @@ limitations under the License. 'use strict'; import React from 'react'; +import GeminiScrollbar from 'react-gemini-scrollbar'; +import request from 'browser-request'; +import { _t } from 'matrix-react-sdk/lib/languageHandler'; +import sanitizeHtml from 'sanitize-html'; module.exports = React.createClass({ displayName: 'HomePage', propTypes: { - teamServerUrl: React.PropTypes.string.isRequired, - teamToken: React.PropTypes.string.isRequired, - collapsedRhs: React.PropTypes.bool, + // URL base of the team server. Optional. + teamServerUrl: React.PropTypes.string, + // Team token. Optional. If set, used to get the static homepage of the team + // associated. If unset, homePageUrl will be used. + teamToken: React.PropTypes.string, + // URL to use as the iFrame src. Defaults to /home.html. + homePageUrl: React.PropTypes.string, + }, + + getInitialState: function() { + return { + iframeSrc: '', + page: '', + }; + }, + + translate: function(s) { + s = sanitizeHtml(_t(s)); + // ugly fix for https://github.com/vector-im/riot-web/issues/4243 + s = s.replace(/Riot\.im/, 'Riot.im'); + s = s.replace(/\[matrix\]/, '[matrix]'); + return s; + }, + + componentWillMount: function() { + if (this.props.teamToken && this.props.teamServerUrl) { + this.setState({ + iframeSrc: `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html` + }); + } + else { + // we use request() to inline the homepage into the react component + // so that it can inherit CSS and theming easily rather than mess around + // with iframes and trying to synchronise document.stylesheets. + + let src = this.props.homePageUrl || 'home.html'; + + request( + { method: "GET", url: src }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + console.log(err); + this.setState({ page: "Couldn't load home page" }); + } + + body = body.replace(/_t\(['"]([\s\S]*?)['"]\)/mg, (match, g1)=>this.translate(g1)); + this.setState({ page: body }); + } + ); + } }, render: function() { - return ( -
-