diff --git a/CHANGELOG.md b/CHANGELOG.md index fe3fb26cd0..ae8209ad12 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 388d2d9bab..94e2a9cc9c 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 c9b3d65b0f..7f2c97f92c 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 ca9920d323..9a4f6f6e9c 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 096c1e96ef..a21fd522c5 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 ef0d173c00..3491ce0fa3 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 9df1a0fb60..039e7133fa 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 bcbd89fa9b..ffed4f17a1 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 8e777b9822..d5d59645fe 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 1c4a2bb790..05c7418aa4 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 7d369371f5..bc7cef0916 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 78c03626ba..d48facad47 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 8a70782310..8fd27cd39e 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 b19c7bc52d..883835ffb3 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 b39695fd49..b1bb36b987 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 5aee75af1b..ae68b12c44 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 fa76fbb278..146e9c0a04 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 28750f42a8..8142adfc83 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 36ba9b34df..cc5bf30daf 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 487fee823c..e32414bd6a 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 7004861f7f..8d1e143791 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 238084e4a8..6ec178847e 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 07ac7742ab..ba269c0453 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 686dbed76c..2bf3c746e7 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 5cfbb6d657..3e3ec3fc76 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 dcdbae7a9a..694050ca46 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 3bd977a442..6de2cde85b 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 555ac8bb74..742ba9231f 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 5a80be2aaa..17f9f67d26 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 6d8be358f9..b01d3ff57b 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 0d98e0e051..d0f82e8285 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 e2659e3bc1..21865ac720 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 13fa3c91e7..a7c6091434 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 8e50a79605..6d50a0f544 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 53de7c39b2..310a25ea23 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 3ed976ebff..bc4da8d9a6 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 8e20ea8cee..144b8d32db 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 1547226606..0897943760 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 7a2bc17adc..0278492592 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 2a152575c6..2b05a8fc7c 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 4782cf34a6..1f031df071 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 991a6cd76c..aafb0f1776 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 cd78895521..3084016718 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 40cdd8a7dd..ce9de9c9c7 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 5de79b7630..33620c3f31 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 68bcac9997..4bbf8b1169 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 13fe2b7f4d..fd40fc8a78 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 c19304093e..230aacd454 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 6df7750774..c58ed4f7b2 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 2d37cd50a8..6c2441e3e0 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 00d3871728..9fd87167df 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 82c7606ee9..9741b9b11f 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 26bca5f9c9..6cca35967c 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 317ec573fc..13b993d15d 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 c5605d6391..bca5730fb5 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 1c25ab8662..e086855c73 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 b328c1ea82..65c0aba447 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 df959197fe..b351c67a53 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 60f6a8c8f2..e7a25c60b3 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 2dfe516d29..f249bbaa46 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 2380de1568..e02cacd3dd 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 49a51c164b..3ea21422f0 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 08a0e372e2..3182f48bd2 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 90ceaa242a..5462334638 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 90cab7e9a4..93e269166b 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 c424a807a8..243bb7390d 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 5a3845ad10..fc74cc396c 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 e7fb60c04a..c3a0e9d102 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 03c2f1b9d4..5c4a004fef 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 9d63939e7f..1589d0cc40 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 92e2a9e929..4c53dead1c 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 081568695f..3668de7919 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 7e9d6c5cc1..66ec709df7 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 f8e59b21fc..148be93c08 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 ffeb28dac8..7cb8441514 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 3ce59fe891..aae73b6fcb 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 f9d92859c4..7b420f02f4 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 0930988c29..42f64bf360 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 2a78075da4..cecc683c9c 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 52543390c7..6074fea09c 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 0ba546ed38..45fdb66426 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 2a0cd64579..d8fd75c638 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 ef05d74bc7..6d50a0f544 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 6539d6dd21..3808a61f1d 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 2938e61b8b..589be70063 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 a55638e7ed..babe1e4cc6 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 c6cfd2b069..d34cddeca9 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 dfc1badffc..98828a5906 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 a79f8c1f30..aec8969b28 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 bda5d6f661..70b1a623de 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 620b50b3df..9aa58327e3 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 c3d6bcf36b..cf1645c2b5 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 fa2d771ee2..ec374fb3c3 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 dabe7ce494..46874b4d98 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 7bf7695635..81b7abdf0e 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 edae61e9e8..7fd1015e8b 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 5abc59d393..101de51eab 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 baa930d0a3..772c2cbe6d 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 10ef0cdd16..d5bd8c1e46 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 166c121e1a..8923085d5a 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 fb59de837c..20c268ce06 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 65499a7ca3..86f56635ef 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 3958838402..907dc59624 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 26a61cbff4..8d1e143791 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 bf923cb81b..4cf8c3112c 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 139e143b8f..413ceb1586 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 2583da392f..097abeb434 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 625846af53..23499bf63c 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 f88d48af94..80200657c6 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 17f255fc26..63f2220118 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 6c9a6b57d8..0268826321 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 936e801d72..c777acc490 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 ecba2f9c48..85fa9bfe72 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 b0edb1610f..1675d8e7db 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 19055f14f7..f2c21f7260 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 9056d21ec2..0b8e67506c 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 06be01a879..5ee3e63c5c 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 50e17b22a9..53b967be99 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 456a1a837e..a1437aba78 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 5e4e73d325..0d462fa3ae 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 5982705bbe..8934db7eca 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 009a990a49..6f92d52365 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 b5a9f733e4..866b3f15dc 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 acf6646b8a..56b433c756 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 58ad9c6175..e1ddd5f84c 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 49902d25aa..8b7c54bc0f 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 9fa9a454e1..227a3b3396 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 3b39f8f7ae..bc6189bed1 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 eacc3ad0fd..c92248b910 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 a0df8da033..ab1cb94943 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 c6839950d8..0b41c7a532 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 3f82fa749e..7af5290d31 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 4b43621212..e10a1255a0 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 ee9c41ea18..6ad67d4255 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 7b4d66537f..865df57a42 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 d97f8d8dc7..e83a2d08bc 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 c75a229fa8..57034d367c 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 2ca1a0c167..6e7ad58254 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 41bf4a96ce..46c3b84a92 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 10cf81b054..79b505d490 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 17a36c71ce..7740cdc0a0 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 675a891dd6..8f383e674e 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 763a612026..a0f36d89c4 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 5211a9024f..2884c4c0a9 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 098db5009b..1f76cfc9bd 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 8d1a98132c..06fc2ad166 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 6ca6f734c9..8e54c2b815 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 c7fccac3b9..97424d4ec2 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 7f6824e0ab..6d50a0f544 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 55bc89850a..28bfccc9e8 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 4484977945..e482a65924 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 ef8d2e55ee..84e2e65e76 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 b8c5737f3d..38fec34796 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 afac494059..70a03c6b14 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 6e3de3381b..1e1bbe6089 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 02118edf4b..3833d683e7 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 a85be51b1b..63119096b0 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 92eb07275d..9cab441aec 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 95a5272652..c144de17f7 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 a811c5bd0f..1221707042 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 857672bf3a..7963aa618a 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 8f6abb7331..d5d4d4008d 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 bdb8119f5f..0f2ecb4389 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 c684776a33..d0a5d24f55 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 aee282de37..096cb1111f 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 3941aa8cb1..17f18ac519 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 dd497c23c1..66be6563c6 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 68e4aeabe6..7ecfd317c7 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 ffcc21662b..11126ade77 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 08950d2f37..d584fa8429 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 2728ed548b..c054042591 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 5812b2d29c..73aee15b3f 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 d09e132955..fd044933e4 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 f920328273..0897943760 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 0bedee3f18..aafb0f1776 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 e7775c2516..744458e17e 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 4760404ba6..58c2afb228 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 7c130d5b88..007c99eca5 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 67c98728fc..839368dd7b 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 a6762503fa..63a893367f 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 ed18bddaf6..3515d95d37 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 7485279cb6..58f70b8d18 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 6623f41346..2f33f2574f 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 92504c5147..c796f587c6 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 d6d676210d..0d98de0386 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 f7c8bb94e8..87f4e2f492 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 8303b1ea89..273869dfc6 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 2507c86eae..b74c396d92 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 c5e1d88463..e34c62d598 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 938c83502f..8efdb91252 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 d106ba89fa..7a0cceec00 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 168f060570..49e290827c 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 2d6e5d5b51..6cb2e1e70d 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 9cae9a780c..a61c42c423 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 ce9d31edaf..bb091cc88c 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 85c2571022..6d50a0f544 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 e77996d5ad..4495d29eb0 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 fc7a2ab717..ebb0f28a7b 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 8b3df77988..64532ffa58 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 87f718674e..64b3cfff04 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 d93b91c7c4..250de6f6f5 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 e9a2a8f3f0..5833c130eb 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 488ac3bef3..ce5248f434 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 6ba8c5cac3..d8711a83d6 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 e7bd806f4f..81880931f3 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 797069fc9e..6f00e57923 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 b2c589d0c5..055dde68bc 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 be8e7a8973..9635983406 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 1dd7e78627..aafb0f1776 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 be3d10f221..84c7021f0a 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 b3f997b163..c5ed199141 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 b30f77ad69..1af1ca284f 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 b5cdb2101d..d0b1843561 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 5f80850834..64e2970b9d 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 a2d124e92b..b072dda835 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 19c65899c2..83933d4521 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 1d2befe46d..c102721a86 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 fc3a9ca40d..80de92e556 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 6051aaa624..dd52215c5d 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 0d51d071fb..78f45b7c0b 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 a7366cb638..2182f4ff93 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 39971bb9b2..3e3e19d4b3 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 1fb647d488..753bec22b0 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 41bd93343a..6d50a0f544 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 560fc0988b..8501ada655 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 9ee5ce8997..0c884c329e 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 ca4be07739..3c9026fa0f 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 88a7eb1a24..fd605749ea 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 fa6c365b9b..b4c834b1d6 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 6cc0539da6..d18cb939a9 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 1cc09ec6f0..21c4b98be7 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 44c42ce0d1..c828206e35 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 4e63d61b9c..f2a5bd22c8 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 3831347f56..66d698334b 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 2f24fbf728..7a127f51ae 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 cda05c9b4c..2353ba1b0a 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 a60d5b3fa6..7949f65d8a 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 f62089b695..687e305294 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 8fb590e864..0a21ad15c3 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 f6b7ab982d..c3a245b767 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 11abe8c100..21a347c6fc 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 5d9168a3ea..643b6ae0cf 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 4e5a92bdd7..63a13c0e81 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 4a8dfa41ea..da991a9344 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 3632def0ca..e75e17c9f0 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 15a5e5fadb..46f93cad1e 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 986a53d2fe..8c849a733e 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 f19db790e3..6ea2122f9d 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 a322030a28..bad3ba4d46 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 5f6e2bedaa..d94359dcc4 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 de43a37312..f8b80e5ba9 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 b132bc13c4..8b9bbd8942 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 5c450dfb91..328879361e 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 adec062d1d..7f0a52d3b2 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 56287f589b..87adc3afaa 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 e58dff382b..742c9f7e71 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 0000000000..3ba2e96419 --- /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 0000000000..a5f70e5e4c --- /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 0000000000..5c7dfbb5e3 --- /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 0000000000..6b3a55e7bb 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 0000000000..1d96bd84a7 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 0000000000..1d96bd84a7 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 0000000000..a2bda4bc68 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 0000000000..ed45f11ceb 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 0000000000..f2e1505634 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 0000000000..de1ea60d54 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 0000000000..5f611d12a4 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 0000000000..fa54f00cb2 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 0000000000..fa54f00cb2 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 0000000000..fa2bec8e3e 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 0000000000..9efd4a3c21 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 0000000000..ff8b21ad1a 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 0000000000..83306f7cb8 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 0000000000..ee0f855895 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 0000000000..4daa2e4ef7 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 0000000000..ee0f855895 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 0000000000..98b77802df 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 0000000000..98b790f9ae 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 0000000000..7d74c7a463 --- /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 460b2b5189..c33a931bd1 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 cc0f221a20..4fa1a4a22c 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 826a0299f1..d960c6de0f 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 c8c7ba2c06..eacc500ae2 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 9864b2e9ca..e1e700f21e 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 ( -
-