Skip to content
Snippets Groups Projects
Commit 5413480e authored by Thib's avatar Thib
Browse files

Moving static data out of Element client file

parent 44a7ce88
No related branches found
No related tags found
No related merge requests found
import { Platform } from "../types.js";
export class Client {
constructor(data) {
this.data = data;
}
get id() { return this.data.id; }
get platforms() { return this.data.platforms; }
get icon() { return "images/client-icons/"+this.data.icon; }
get name() {return this.data.name; }
get description() { return this.data.description; }
get homepage() { return this.data.homepage; }
get author() { return this.data.author; }
getMaturity(platform) { return this.data.maturity; }
getLinkInstructions(platform, link) {}
getCopyString(platform, link) {}
getInstallLinks(platform) {
var links = [];
if (platform === Platform.iOS && this.platforms().includes(Platform.iOS) && this.data.applestorelink) {
links.push(this.data.applestorelink);
} else if (platform === Platform.Android && this.platforms.includes(Platform.Android)) {
if (this.data.playstorelink) { links.push(this.data.playstorelink); }
if (this.data.fdroidlink) { links.push(this.data.fdroidlink); }
}
else if (this.data.defaultInstallLink) { links.push(this.data.defaultInstallLink); }
return links;
}
canInterceptMatrixToLinks(platform) { return false; }
}
\ No newline at end of file
...@@ -14,8 +14,9 @@ See the License for the specific language governing permissions and ...@@ -14,8 +14,9 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import {Maturity, Platform, LinkKind, import {Platform, LinkKind} from "../types.js";
FDroidLink, AppleStoreLink, PlayStoreLink, WebsiteLink} from "../types.js"; import {Client} from "./Client.js";
import {data} from "./ElementData.js";
const trustedWebInstances = [ const trustedWebInstances = [
"app.element.io", // first one is the default one "app.element.io", // first one is the default one
...@@ -29,24 +30,12 @@ const trustedWebInstances = [ ...@@ -29,24 +30,12 @@ const trustedWebInstances = [
/** /**
* Information on how to deep link to a given matrix client. * Information on how to deep link to a given matrix client.
*/ */
export class Element { export class Element extends Client {
get id() { return "element.io"; } constructor() {
super(data);
get platforms() {
return [
Platform.Android, Platform.iOS,
Platform.Windows, Platform.macOS, Platform.Linux,
Platform.DesktopWeb
];
} }
get icon() { return "images/client-icons/element.svg"; }
get appleAssociatedAppId() { return "7J4U792NQT.im.vector.app"; } get appleAssociatedAppId() { return "7J4U792NQT.im.vector.app"; }
get name() {return "Element"; }
get description() { return 'Fully-featured Matrix client, used by millions.'; }
get homepage() { return "https://element.io"; }
get author() { return "Element"; }
getMaturity(platform) { return Maturity.Stable; }
getDeepLink(platform, link) { getDeepLink(platform, link) {
let fragmentPath; let fragmentPath;
...@@ -85,16 +74,6 @@ export class Element { ...@@ -85,16 +74,6 @@ export class Element {
} }
} }
getLinkInstructions(platform, link) {}
getCopyString(platform, link) {}
getInstallLinks(platform) {
switch (platform) {
case Platform.iOS: return [new AppleStoreLink('vector', 'id1083446067')];
case Platform.Android: return [new PlayStoreLink('im.vector.app'), new FDroidLink('im.vector.app')];
default: return [new WebsiteLink("https://element.io/get-started")];
}
}
canInterceptMatrixToLinks(platform) { canInterceptMatrixToLinks(platform) {
return platform === Platform.Android; return platform === Platform.Android;
} }
......
import {Maturity, Platform, FDroidLink, AppleStoreLink, PlayStoreLink, WebsiteLink, FlathubLink} from "../types.js";
export const data = {
"id": "element.io",
"platforms": [Platform.Android, Platform.iOS, Platform.Windows, Platform.macOS, Platform.Linux, Platform.DesktopWeb],
"icon": "element.svg",
"appleAssociatedAppId": "7J4U792NQT.im.vector.app",
"name": "Element",
"description": "Fully-featured Matrix client, used by millions.",
"homepage": "https://element.io",
"author": "Element",
"maturity": Maturity.Stable,
"applestorelink": new AppleStoreLink('vector', 'id1083446067'),
"playstorelink": new PlayStoreLink('im.vector.app'),
"fdroidlink": new FDroidLink('im.vector.app'),
"flathublink": new FlathubLink('im.riot.Riot'),
"defaultInstallLink": new WebsiteLink("https://element.io/get-started"),
};
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment