Merge branch 'develop' into new-guest-access
5
.gitignore
vendored
@ -5,13 +5,12 @@
|
||||
/key.pem
|
||||
/lib
|
||||
/node_modules
|
||||
/electron/node_modules
|
||||
/electron_app/node_modules
|
||||
/electron_app/dist
|
||||
/packages/
|
||||
/webapp
|
||||
/.npmrc
|
||||
.DS_Store
|
||||
npm-debug.log
|
||||
electron/dist
|
||||
electron/pub
|
||||
/config.json
|
||||
/src/component-index.js
|
||||
|
@ -9,6 +9,8 @@
|
||||
"test/css/flexbox",
|
||||
"test/es5/specification",
|
||||
"test/css/objectfit",
|
||||
"test/storage/localstorage"
|
||||
"test/storage/localstorage",
|
||||
"test/workers/webworkers",
|
||||
"test/indexeddb"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,5 @@ language: node_js
|
||||
node_js:
|
||||
- 6 # node v6, to match jenkins
|
||||
install:
|
||||
- scripts/fetch-develop.deps.sh
|
||||
- npm install
|
||||
- (cd node_modules/matrix-js-sdk && npm install)
|
||||
- (cd node_modules/matrix-react-sdk && npm install)
|
||||
|
108
CHANGELOG.md
@ -1,3 +1,111 @@
|
||||
Changes in [0.9.10](https://github.com/vector-im/riot-web/releases/tag/v0.9.10) (2017-05-22)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.10-rc.1...v0.9.10)
|
||||
|
||||
* No changes
|
||||
|
||||
|
||||
Changes in [0.9.10-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.10-rc.1) (2017-05-19)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.9...v0.9.10-rc.1)
|
||||
|
||||
* CSS for left_aligned Dropdowns, and adjustments for Country dd in Login
|
||||
[\#3959](https://github.com/vector-im/riot-web/pull/3959)
|
||||
* Add square flag pngs /w genflags.sh script
|
||||
[\#3953](https://github.com/vector-im/riot-web/pull/3953)
|
||||
* Add config for riot-bot on desktop app build
|
||||
[\#3954](https://github.com/vector-im/riot-web/pull/3954)
|
||||
* Desktop: 'copy link address'
|
||||
[\#3952](https://github.com/vector-im/riot-web/pull/3952)
|
||||
* Reduce rageshake log size to 1MB
|
||||
[\#3943](https://github.com/vector-im/riot-web/pull/3943)
|
||||
* CSS for putting country dd on same line as phone input
|
||||
[\#3942](https://github.com/vector-im/riot-web/pull/3942)
|
||||
* fix #3894
|
||||
[\#3919](https://github.com/vector-im/riot-web/pull/3919)
|
||||
* change vector->riot on the surface
|
||||
[\#3894](https://github.com/vector-im/riot-web/pull/3894)
|
||||
* move manifest.json outward so it is scoped properly
|
||||
[\#3888](https://github.com/vector-im/riot-web/pull/3888)
|
||||
* add to manifest
|
||||
[\#3799](https://github.com/vector-im/riot-web/pull/3799)
|
||||
* Automatically update component-index
|
||||
[\#3886](https://github.com/vector-im/riot-web/pull/3886)
|
||||
* move electron -> electron_app because npm smart
|
||||
[\#3877](https://github.com/vector-im/riot-web/pull/3877)
|
||||
* Fix bug report endpoint in config.sample.json.
|
||||
[\#3863](https://github.com/vector-im/riot-web/pull/3863)
|
||||
* Update 2 missed icons to the new icon
|
||||
[\#3851](https://github.com/vector-im/riot-web/pull/3851)
|
||||
* Make left panel better for new users (mk II)
|
||||
[\#3804](https://github.com/vector-im/riot-web/pull/3804)
|
||||
* match primary package.json
|
||||
[\#3839](https://github.com/vector-im/riot-web/pull/3839)
|
||||
* Re-add productName
|
||||
[\#3829](https://github.com/vector-im/riot-web/pull/3829)
|
||||
* Remove leading v in /version file, for SemVer and to match Electron ver
|
||||
[\#3683](https://github.com/vector-im/riot-web/pull/3683)
|
||||
* Fix scope of callback
|
||||
[\#3790](https://github.com/vector-im/riot-web/pull/3790)
|
||||
* Remember and Recall window layout/position state
|
||||
[\#3622](https://github.com/vector-im/riot-web/pull/3622)
|
||||
* Remove babelcheck
|
||||
[\#3808](https://github.com/vector-im/riot-web/pull/3808)
|
||||
* Include MXID and device id in rageshakes
|
||||
[\#3809](https://github.com/vector-im/riot-web/pull/3809)
|
||||
* import Modal
|
||||
[\#3791](https://github.com/vector-im/riot-web/pull/3791)
|
||||
* Pin filesize ver to fix break upstream
|
||||
[\#3775](https://github.com/vector-im/riot-web/pull/3775)
|
||||
* Improve Room Directory Look & Feel
|
||||
[\#3751](https://github.com/vector-im/riot-web/pull/3751)
|
||||
* Fix emote RRs alignment
|
||||
[\#3742](https://github.com/vector-im/riot-web/pull/3742)
|
||||
* Remove unused `placeholder` prop on RoomDropTarget
|
||||
[\#3741](https://github.com/vector-im/riot-web/pull/3741)
|
||||
* Modify CSS for matrix-org/matrix-react-sdk#833
|
||||
[\#3732](https://github.com/vector-im/riot-web/pull/3732)
|
||||
* Warn when exiting due to single-instance
|
||||
[\#3727](https://github.com/vector-im/riot-web/pull/3727)
|
||||
* Electron forgets it was maximized when you click on a notification
|
||||
[\#3709](https://github.com/vector-im/riot-web/pull/3709)
|
||||
* CSS to make h1 and h2 the same size as h1.
|
||||
[\#3719](https://github.com/vector-im/riot-web/pull/3719)
|
||||
* Prevent long room names/topics from pushing UI of the screen
|
||||
[\#3721](https://github.com/vector-im/riot-web/pull/3721)
|
||||
* Disable dropdown highlight on focus
|
||||
[\#3717](https://github.com/vector-im/riot-web/pull/3717)
|
||||
* Escape HTML Tags from Linux Notifications (electron)
|
||||
[\#3564](https://github.com/vector-im/riot-web/pull/3564)
|
||||
* styling for spoilerized access token view in Settings
|
||||
[\#3651](https://github.com/vector-im/riot-web/pull/3651)
|
||||
* Fix Webpack conf
|
||||
[\#3690](https://github.com/vector-im/riot-web/pull/3690)
|
||||
* Add config.json to .gitignore
|
||||
[\#3599](https://github.com/vector-im/riot-web/pull/3599)
|
||||
* add command line arg (--hidden) for electron app
|
||||
[\#3641](https://github.com/vector-im/riot-web/pull/3641)
|
||||
* fix ImageView Download functionality
|
||||
[\#3640](https://github.com/vector-im/riot-web/pull/3640)
|
||||
* Add cross-env into the mix
|
||||
[\#3693](https://github.com/vector-im/riot-web/pull/3693)
|
||||
* Remember acceptance for unsupported browsers.
|
||||
[\#3694](https://github.com/vector-im/riot-web/pull/3694)
|
||||
* Cosmetics to go with matrix-org/matrix-react-sdk#811
|
||||
[\#3692](https://github.com/vector-im/riot-web/pull/3692)
|
||||
* Cancel quicksearch on ESC
|
||||
[\#3680](https://github.com/vector-im/riot-web/pull/3680)
|
||||
* Optimise RoomList and implement quick-search functionality on it.
|
||||
[\#3654](https://github.com/vector-im/riot-web/pull/3654)
|
||||
* Progress updates for rageshake uploads
|
||||
[\#3648](https://github.com/vector-im/riot-web/pull/3648)
|
||||
* Factor out rageshake upload to a separate file
|
||||
[\#3645](https://github.com/vector-im/riot-web/pull/3645)
|
||||
* rageshake: fix race when collecting logs
|
||||
[\#3644](https://github.com/vector-im/riot-web/pull/3644)
|
||||
* Fix a flaky test
|
||||
[\#3649](https://github.com/vector-im/riot-web/pull/3649)
|
||||
|
||||
Changes in [0.9.9](https://github.com/vector-im/riot-web/releases/tag/v0.9.9) (2017-04-25)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.9-rc.2...v0.9.9)
|
||||
|
30
README.md
@ -58,27 +58,35 @@ to build.
|
||||
1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
|
||||
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`
|
||||
1. Switch to the riot-web directory: `cd riot-web`
|
||||
1. Install the prerequisites: `npm install`
|
||||
1. If you are using the `develop` branch of vector-web, you will probably need
|
||||
to rebuild some of the dependencies, due to
|
||||
https://github.com/npm/npm/issues/3055:
|
||||
|
||||
1. If you're using the `develop` branch, install the develop versions of the
|
||||
dependencies, as the released ones will be too old:
|
||||
```
|
||||
(cd node_modules/matrix-js-sdk && npm install)
|
||||
(cd node_modules/matrix-react-sdk && npm install)
|
||||
scripts/fetch-develop-deps.sh
|
||||
```
|
||||
Whenever you git pull on riot-web you will also probably need to force an update
|
||||
to these dependencies - the easiest way is probably:
|
||||
to these dependencies - the simplest way is to re-run the script, but you can also
|
||||
manually update and reuild them:
|
||||
```
|
||||
rm -rf node_modules/matrjx-{js,react}-sdk && npm i
|
||||
(cd node_modules/matrix-js-sdk && npm install)
|
||||
(cd node_modules/matrix-react-sdk && npm install)
|
||||
cd matrix-js-sdk
|
||||
git pull
|
||||
npm install # re-run to pull in any new dependencies
|
||||
# Depending on your version of npm, npm run build may happen as part of
|
||||
# the npm install above (https://docs.npmjs.com/misc/scripts#prepublish-and-prepare)
|
||||
# If in doubt, run it anyway:
|
||||
npm run build
|
||||
cd ../matrix-react-sdk
|
||||
git pull
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
However, we recommend setting up a proper development environment (see "Setting
|
||||
up a development environment" below) if you want to run your own copy of the
|
||||
`develop` branch, as it makes it much easier to keep these dependencies
|
||||
up-to-date. Or just use https://riot.im/develop - the continuous integration
|
||||
release of the develop branch.
|
||||
(Note that we don't reference the develop versions in git directly due to
|
||||
https://github.com/npm/npm/issues/3055)
|
||||
1. Install the prerequisites: `npm install`
|
||||
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it (see below for details)
|
||||
1. `npm run dist` to build a tarball to deploy. Untaring this file will give
|
||||
|
@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "0.9.9",
|
||||
"version": "0.9.10",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"dependencies": {
|
||||
|
@ -6,68 +6,11 @@
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"enableLabs": true,
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
"matrix.org"
|
||||
],
|
||||
"serverConfig": {
|
||||
"matrix.org": {
|
||||
"networks": [
|
||||
"_matrix",
|
||||
"gitter",
|
||||
"irc:freenode",
|
||||
"irc:mozilla",
|
||||
"irc:snoonet",
|
||||
"irc:oftc"
|
||||
]
|
||||
}
|
||||
},
|
||||
"networks": {
|
||||
"gitter": {
|
||||
"protocol": "gitter",
|
||||
"portalRoomPattern": "#gitter_.*:matrix.org",
|
||||
"name": "Gitter",
|
||||
"icon": "https://gitter.im/favicon.ico",
|
||||
"example": "org/community",
|
||||
"nativePattern": "[^\\s]+/[^\\s]+$"
|
||||
},
|
||||
"irc:freenode": {
|
||||
"protocol": "irc",
|
||||
"domain": "chat.freenode.net",
|
||||
"portalRoomPattern": "#freenode_.*:matrix.org",
|
||||
"name": "Freenode",
|
||||
"icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
|
||||
"example": "#channel",
|
||||
"nativePattern": "^#[^\\s]+$"
|
||||
},
|
||||
"irc:mozilla": {
|
||||
"protocol": "irc",
|
||||
"domain": "chat.freenode.net",
|
||||
"portalRoomPattern": "#mozilla_.*:matrix.org",
|
||||
"name": "Mozilla",
|
||||
"icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
|
||||
"example": "#channel",
|
||||
"nativePattern": "^#[^\\s]+$"
|
||||
},
|
||||
"irc:snoonet": {
|
||||
"protocol": "irc",
|
||||
"domain": "ipv6-irc.snoonet.org",
|
||||
"portalRoomPattern": "#_snoonet_.*:matrix.org",
|
||||
"name": "Snoonet",
|
||||
"icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
|
||||
"example": "#channel",
|
||||
"nativePattern": "^#[^\\s]+$"
|
||||
},
|
||||
"irc:oftc": {
|
||||
"protocol": "irc",
|
||||
"domain": "irc.oftc.net",
|
||||
"portalRoomPattern": "#_oftc_.*:matrix.org",
|
||||
"name": "OFTC",
|
||||
"icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
|
||||
"example": "#channel",
|
||||
"nativePattern": "^#[^\\s]+$"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -86,6 +86,12 @@ function onLinkContextMenu(ev, params) {
|
||||
safeOpenURL(params.linkURL);
|
||||
},
|
||||
}));
|
||||
popup_menu.append(new electron.MenuItem({
|
||||
label: 'Copy Link Address',
|
||||
click() {
|
||||
electron.clipboard.writeText(params.linkURL);
|
||||
},
|
||||
}));
|
||||
popup_menu.popup();
|
||||
ev.preventDefault();
|
||||
}
|
||||
@ -155,12 +161,31 @@ function startAutoUpdate(update_base_url) {
|
||||
// no other way to catch this error).
|
||||
// Assuming we generally run from the console when developing,
|
||||
// this is far preferable.
|
||||
process.on('uncaughtException', function (error) {
|
||||
process.on('uncaughtException', function(error) {
|
||||
console.log("Unhandled exception", error);
|
||||
});
|
||||
|
||||
electron.ipcMain.on('install_update', installUpdate);
|
||||
|
||||
let focusHandlerAttached = false;
|
||||
electron.ipcMain.on('setBadgeCount', function(ev, count) {
|
||||
electron.app.setBadgeCount(count);
|
||||
if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused()) {
|
||||
if (count > 0) {
|
||||
if (!focusHandlerAttached) {
|
||||
mainWindow.once('focus', () => {
|
||||
mainWindow.flashFrame(false);
|
||||
focusHandlerAttached = false;
|
||||
});
|
||||
focusHandlerAttached = true;
|
||||
}
|
||||
mainWindow.flashFrame(true);
|
||||
} else {
|
||||
mainWindow.flashFrame(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
|
||||
|
||||
const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirectory) => {
|
||||
|
@ -15,26 +15,21 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
const path = require('path');
|
||||
const electron = require('electron');
|
||||
|
||||
const app = electron.app;
|
||||
const Tray = electron.Tray;
|
||||
const MenuItem = electron.MenuItem;
|
||||
const {app, Tray, Menu, nativeImage} = require('electron');
|
||||
|
||||
let trayIcon = null;
|
||||
|
||||
exports.hasTray = function hasTray() {
|
||||
return (trayIcon !== null);
|
||||
}
|
||||
};
|
||||
|
||||
exports.create = function (win, config) {
|
||||
exports.create = function(win, config) {
|
||||
// no trays on darwin
|
||||
if (process.platform === 'darwin' || trayIcon) {
|
||||
return;
|
||||
}
|
||||
|
||||
const toggleWin = function () {
|
||||
const toggleWin = function() {
|
||||
if (win.isVisible() && !win.isMinimized()) {
|
||||
win.hide();
|
||||
} else {
|
||||
@ -44,24 +39,48 @@ exports.create = function (win, config) {
|
||||
}
|
||||
};
|
||||
|
||||
const contextMenu = electron.Menu.buildFromTemplate([
|
||||
const contextMenu = Menu.buildFromTemplate([
|
||||
{
|
||||
label: 'Show/Hide ' + config.brand,
|
||||
click: toggleWin
|
||||
click: toggleWin,
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
type: 'separator',
|
||||
},
|
||||
{
|
||||
label: 'Quit',
|
||||
click: function () {
|
||||
click: function() {
|
||||
app.quit();
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
trayIcon = new Tray(config.icon_path);
|
||||
trayIcon.setToolTip(config.brand);
|
||||
trayIcon.setContextMenu(contextMenu);
|
||||
trayIcon.on('click', toggleWin);
|
||||
|
||||
let lastFavicon = null;
|
||||
win.webContents.on('page-favicon-updated', function(ev, favicons) {
|
||||
let newFavicon = config.icon_path;
|
||||
if (favicons && favicons.length > 0 && favicons[0].startsWith('data:')) {
|
||||
newFavicon = favicons[0];
|
||||
}
|
||||
|
||||
// No need to change, shortcut
|
||||
if (newFavicon === lastFavicon) return;
|
||||
lastFavicon = newFavicon;
|
||||
|
||||
// if its not default we have to construct into nativeImage
|
||||
if (newFavicon !== config.icon_path) {
|
||||
newFavicon = nativeImage.createFromDataURL(favicons[0]);
|
||||
}
|
||||
|
||||
trayIcon.setImage(newFavicon);
|
||||
win.setIcon(newFavicon);
|
||||
});
|
||||
|
||||
win.webContents.on('page-title-updated', function(ev, title) {
|
||||
trayIcon.setToolTip(title);
|
||||
});
|
||||
};
|
||||
|
11
package.json
@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "0.9.9",
|
||||
"version": "0.9.10",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"repository": {
|
||||
@ -61,11 +61,12 @@
|
||||
"favico.js": "^0.3.10",
|
||||
"filesize": "3.5.6",
|
||||
"flux": "~2.0.3",
|
||||
"gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
|
||||
"gfm.css": "^1.1.1",
|
||||
"highlight.js": "^9.0.0",
|
||||
"linkifyjs": "^2.1.3",
|
||||
"matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
|
||||
"matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
|
||||
"matrix-js-sdk": "0.7.8",
|
||||
"matrix-react-sdk": "0.8.9",
|
||||
"modernizr": "^3.1.0",
|
||||
"pako": "^1.0.5",
|
||||
"q": "^1.4.1",
|
||||
@ -73,7 +74,7 @@
|
||||
"react-dnd": "^2.1.4",
|
||||
"react-dnd-html5-backend": "^2.1.2",
|
||||
"react-dom": "^15.4.0",
|
||||
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#39d858c",
|
||||
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
|
||||
"sanitize-html": "^1.11.1",
|
||||
"ua-parser-js": "^0.7.10",
|
||||
"url": "^0.11.0"
|
||||
@ -142,7 +143,7 @@
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"category": "Network",
|
||||
"electronVersion": "1.6.2",
|
||||
"electronVersion": "1.6.8",
|
||||
"//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
|
||||
"asar": false,
|
||||
"dereference": true,
|
||||
|
16
release.sh
@ -9,6 +9,22 @@ set -e
|
||||
|
||||
cd `dirname $0`
|
||||
|
||||
for i in matrix-js-sdk matrix-react-sdk
|
||||
do
|
||||
depver=`cat package.json | jq -r .dependencies.\"$i\"`
|
||||
latestver=`npm show $i version`
|
||||
if [ "$depver" != "$latestver" ]
|
||||
then
|
||||
echo "The latest version of $i is $latestver but package.json depends on $depver"
|
||||
echo -n "Type 'Yes' to continue anyway: "
|
||||
read resp
|
||||
if [ "$resp" != "Yes" ]
|
||||
then
|
||||
echo "OK, never mind."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# bump Electron's package.json first
|
||||
release="${1#v}"
|
||||
|
BIN
res/flags/AD.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/AE.png
Normal file
After Width: | Height: | Size: 841 B |
BIN
res/flags/AF.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/AG.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/AI.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/AL.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/AM.png
Normal file
After Width: | Height: | Size: 744 B |
BIN
res/flags/AO.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
res/flags/AQ.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/AR.png
Normal file
After Width: | Height: | Size: 955 B |
BIN
res/flags/AS.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AT.png
Normal file
After Width: | Height: | Size: 701 B |
BIN
res/flags/AU.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/AW.png
Normal file
After Width: | Height: | Size: 938 B |
BIN
res/flags/AX.png
Normal file
After Width: | Height: | Size: 900 B |
BIN
res/flags/AZ.png
Normal file
After Width: | Height: | Size: 978 B |
BIN
res/flags/BA.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/BB.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
res/flags/BD.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/BE.png
Normal file
After Width: | Height: | Size: 689 B |
BIN
res/flags/BF.png
Normal file
After Width: | Height: | Size: 954 B |
BIN
res/flags/BG.png
Normal file
After Width: | Height: | Size: 737 B |
BIN
res/flags/BH.png
Normal file
After Width: | Height: | Size: 842 B |
BIN
res/flags/BI.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/BJ.png
Normal file
After Width: | Height: | Size: 777 B |
BIN
res/flags/BL.png
Normal file
After Width: | Height: | Size: 692 B |
BIN
res/flags/BM.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BN.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BO.png
Normal file
After Width: | Height: | Size: 733 B |
BIN
res/flags/BQ.png
Normal file
After Width: | Height: | Size: 726 B |
BIN
res/flags/BR.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BS.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/BT.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BV.png
Normal file
After Width: | Height: | Size: 866 B |
BIN
res/flags/BW.png
Normal file
After Width: | Height: | Size: 697 B |
BIN
res/flags/BY.png
Normal file
After Width: | Height: | Size: 950 B |
BIN
res/flags/BZ.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/CA.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/CC.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/CD.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/CF.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/CG.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/CH.png
Normal file
After Width: | Height: | Size: 800 B |
BIN
res/flags/CI.png
Normal file
After Width: | Height: | Size: 692 B |
BIN
res/flags/CK.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/CL.png
Normal file
After Width: | Height: | Size: 964 B |
BIN
res/flags/CM.png
Normal file
After Width: | Height: | Size: 908 B |
BIN
res/flags/CN.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
res/flags/CO.png
Normal file
After Width: | Height: | Size: 726 B |
BIN
res/flags/CR.png
Normal file
After Width: | Height: | Size: 734 B |
BIN
res/flags/CU.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/CV.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/CW.png
Normal file
After Width: | Height: | Size: 970 B |
BIN
res/flags/CX.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/CY.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/CZ.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/DE.png
Normal file
After Width: | Height: | Size: 734 B |
BIN
res/flags/DJ.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/DK.png
Normal file
After Width: | Height: | Size: 797 B |
BIN
res/flags/DM.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/DO.png
Normal file
After Width: | Height: | Size: 946 B |
BIN
res/flags/DZ.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/EC.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/EE.png
Normal file
After Width: | Height: | Size: 723 B |
BIN
res/flags/EG.png
Normal file
After Width: | Height: | Size: 914 B |
BIN
res/flags/EH.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/ER.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/ES.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
res/flags/ET.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/FI.png
Normal file
After Width: | Height: | Size: 841 B |
BIN
res/flags/FJ.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/FK.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/FM.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/FO.png
Normal file
After Width: | Height: | Size: 834 B |
BIN
res/flags/FR.png
Normal file
After Width: | Height: | Size: 692 B |
BIN
res/flags/GA.png
Normal file
After Width: | Height: | Size: 753 B |
BIN
res/flags/GB.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/GD.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/GE.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/GF.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/GG.png
Normal file
After Width: | Height: | Size: 1001 B |
BIN
res/flags/GH.png
Normal file
After Width: | Height: | Size: 1010 B |
BIN
res/flags/GI.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
res/flags/GL.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/GM.png
Normal file
After Width: | Height: | Size: 743 B |
BIN
res/flags/GN.png
Normal file
After Width: | Height: | Size: 699 B |
BIN
res/flags/GP.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/GQ.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/GR.png
Normal file
After Width: | Height: | Size: 1.1 KiB |