Move getDefaultDeviceName into the Platforms

So we can have a sensible device name on Electron
pull/2643/head
David Baker 2016-11-24 16:46:15 +00:00
parent 47534decb3
commit c786980454
4 changed files with 49 additions and 15 deletions

View File

@ -54,7 +54,6 @@ var UpdateChecker = require("./updater");
var q = require('q'); var q = require('q');
var request = require('browser-request'); var request = require('browser-request');
import UAParser from 'ua-parser-js';
import url from 'url'; import url from 'url';
import {parseQs, parseQsFromFragment} from './url_utils'; import {parseQs, parseQsFromFragment} from './url_utils';
@ -144,19 +143,6 @@ var makeRegistrationUrl = function() {
'#/register'; '#/register';
} }
function getDefaultDeviceDisplayName() {
// strip query-string and fragment from uri
let u = url.parse(window.location.href);
u.search = "";
u.hash = "";
let app_name = u.format();
let ua = new UAParser();
return app_name + " via " + ua.getBrowser().name +
" on " + ua.getOS().name;
}
window.addEventListener('hashchange', onHashChange); window.addEventListener('hashchange', onHashChange);
function getConfig() { function getConfig() {
@ -262,7 +248,7 @@ async function loadApp() {
startingFragmentQueryParams={fragparts.params} startingFragmentQueryParams={fragparts.params}
enableGuest={true} enableGuest={true}
onLoadCompleted={onLoadCompleted} onLoadCompleted={onLoadCompleted}
defaultDeviceDisplayName={getDefaultDeviceDisplayName()} defaultDeviceDisplayName={PlatformPeg.get().getDefaultDeviceDisplayName()}
/>, />,
document.getElementById('matrixchat') document.getElementById('matrixchat')
); );

View File

@ -35,6 +35,27 @@ function onUpdateDownloaded(ev, releaseNotes, ver, date, updateURL) {
}); });
} }
function platformFriendlyName() {
console.log(window.process);
switch (window.process.platform) {
case 'darwin':
return 'macOS';
case 'freebsd':
return 'FreeBSD';
case 'openbsd':
return 'OpenBSD';
case 'sunos':
return 'SunOS';
case 'win32':
return 'Windows';
default:
// Sorry, Linux users: you get lumped into here,
// but only because Linux's capitalisation is
// normal. We do care about you.
return window.process.platform[0].toUpperCase + window.process.platform.slice(1);
}
}
export default class ElectronPlatform extends VectorBasePlatform { export default class ElectronPlatform extends VectorBasePlatform {
setNotificationCount(count: number) { setNotificationCount(count: number) {
super.setNotificationCount(count); super.setNotificationCount(count);
@ -101,4 +122,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
// it should exit. // it should exit.
electron.ipcRenderer.send('install_update'); electron.ipcRenderer.send('install_update');
} }
getDefaultDeviceDisplayName() {
return "Riot Desktop on " + platformFriendlyName();
}
} }

View File

@ -39,4 +39,12 @@ export default class VectorBasePlatform extends BasePlatform {
*/ */
installUpdate() { installUpdate() {
} }
/**
* Get a sensible default display name for the
* device Vector is running on
*/
getDefaultDeviceDisplayName() {
return "Unknown device";
}
} }

View File

@ -23,6 +23,9 @@ import request from 'browser-request';
import dis from 'matrix-react-sdk/lib/dispatcher.js'; import dis from 'matrix-react-sdk/lib/dispatcher.js';
import q from 'q'; import q from 'q';
import url from 'url';
import UAParser from 'ua-parser-js';
export default class WebPlatform extends VectorBasePlatform { export default class WebPlatform extends VectorBasePlatform {
constructor() { constructor() {
super(); super();
@ -180,4 +183,16 @@ export default class WebPlatform extends VectorBasePlatform {
installUpdate() { installUpdate() {
window.location.reload(); window.location.reload();
} }
getDefaultDeviceDisplayName() {
// strip query-string and fragment from uri
let u = url.parse(window.location.href);
u.search = "";
u.hash = "";
let app_name = u.format();
let ua = new UAParser();
return app_name + " via " + ua.getBrowser().name +
" on " + ua.getOS().name;
}
} }