mirror of https://github.com/vector-im/riot-web
				
				
				
			Convert BasePlatform and BaseEventIndexManager to Typescript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>pull/21833/head
							parent
							
								
									e7d37228f2
								
							
						
					
					
						commit
						b27f1fa6db
					
				|  | @ -1,5 +1,3 @@ | |||
| // @flow
 | ||||
| 
 | ||||
| /* | ||||
| Copyright 2016 Aviral Dasgupta | ||||
| Copyright 2016 OpenMarket Ltd | ||||
|  | @ -19,9 +17,10 @@ See the License for the specific language governing permissions and | |||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| import {MatrixClient} from "matrix-js-sdk"; | ||||
| import {MatrixClient} from "matrix-js-sdk/src/client"; | ||||
| import dis from './dispatcher/dispatcher'; | ||||
| import BaseEventIndexManager from './indexing/BaseEventIndexManager'; | ||||
| import {ActionPayload} from "./dispatcher/payloads"; | ||||
| 
 | ||||
| /** | ||||
|  * Base class for classes that provide platform-specific functionality | ||||
|  | @ -29,27 +28,25 @@ import BaseEventIndexManager from './indexing/BaseEventIndexManager'; | |||
|  * | ||||
|  * Instances of this class are provided by the application. | ||||
|  */ | ||||
| export default class BasePlatform { | ||||
|     constructor() { | ||||
|         this.notificationCount = 0; | ||||
|         this.errorDidOccur = false; | ||||
| export default abstract class BasePlatform { | ||||
|     protected notificationCount: number = 0; | ||||
|     protected errorDidOccur: boolean = false; | ||||
| 
 | ||||
|         dis.register(this._onAction.bind(this)); | ||||
|     constructor() { | ||||
|         dis.register(this.onAction); | ||||
|     } | ||||
| 
 | ||||
|     _onAction(payload: Object) { | ||||
|     protected onAction = (payload: ActionPayload) => { | ||||
|         switch (payload.action) { | ||||
|             case 'on_client_not_viable': | ||||
|             case 'on_logged_out': | ||||
|                 this.setNotificationCount(0); | ||||
|                 break; | ||||
|         } | ||||
|     } | ||||
|     }; | ||||
| 
 | ||||
|     // Used primarily for Analytics
 | ||||
|     getHumanReadableName(): string { | ||||
|         return 'Base Platform'; | ||||
|     } | ||||
|     abstract getHumanReadableName(): string; | ||||
| 
 | ||||
|     setNotificationCount(count: number) { | ||||
|         this.notificationCount = count; | ||||
|  | @ -84,22 +81,16 @@ export default class BasePlatform { | |||
|      * that is 'granted' if the user allowed the request or | ||||
|      * 'denied' otherwise. | ||||
|      */ | ||||
|     requestNotificationPermission(): Promise<string> { | ||||
|     } | ||||
|     abstract requestNotificationPermission(): Promise<string>; | ||||
| 
 | ||||
|     displayNotification(title: string, msg: string, avatarUrl: string, room: Object) { | ||||
|     } | ||||
|     abstract displayNotification(title: string, msg: string, avatarUrl: string, room: Object); | ||||
| 
 | ||||
|     loudNotification(ev: Event, room: Object) { | ||||
|     } | ||||
|     abstract loudNotification(ev: Event, room: Object); | ||||
| 
 | ||||
|     /** | ||||
|      * Returns a promise that resolves to a string representing | ||||
|      * the current version of the application. | ||||
|      * Returns a promise that resolves to a string representing the current version of the application. | ||||
|      */ | ||||
|     getAppVersion(): Promise<string> { | ||||
|         throw new Error("getAppVersion not implemented!"); | ||||
|     } | ||||
|     abstract getAppVersion(): Promise<string>; | ||||
| 
 | ||||
|     /* | ||||
|      * If it's not expected that capturing the screen will work | ||||
|  | @ -114,20 +105,18 @@ export default class BasePlatform { | |||
|      * Restarts the application, without neccessarily reloading | ||||
|      * any application code | ||||
|      */ | ||||
|     reload() { | ||||
|         throw new Error("reload not implemented!"); | ||||
|     } | ||||
|     abstract reload(); | ||||
| 
 | ||||
|     supportsAutoLaunch(): boolean { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     // XXX: Surely this should be a setting like any other?
 | ||||
|     async getAutoLaunchEnabled(): boolean { | ||||
|     async getAutoLaunchEnabled(): Promise<boolean> { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     async setAutoLaunchEnabled(enabled: boolean): void { | ||||
|     async setAutoLaunchEnabled(enabled: boolean): Promise<void> { | ||||
|         throw new Error("Unimplemented"); | ||||
|     } | ||||
| 
 | ||||
|  | @ -135,11 +124,11 @@ export default class BasePlatform { | |||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     async getAutoHideMenuBarEnabled(): boolean { | ||||
|     async getAutoHideMenuBarEnabled(): Promise<boolean> { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     async setAutoHideMenuBarEnabled(enabled: boolean): void { | ||||
|     async setAutoHideMenuBarEnabled(enabled: boolean): Promise<void> { | ||||
|         throw new Error("Unimplemented"); | ||||
|     } | ||||
| 
 | ||||
|  | @ -147,11 +136,11 @@ export default class BasePlatform { | |||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     async getMinimizeToTrayEnabled(): boolean { | ||||
|     async getMinimizeToTrayEnabled(): Promise<boolean> { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     async setMinimizeToTrayEnabled(enabled: boolean): void { | ||||
|     async setMinimizeToTrayEnabled(enabled: boolean): Promise<void> { | ||||
|         throw new Error("Unimplemented"); | ||||
|     } | ||||
| 
 | ||||
|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
| Copyright 2019 The Matrix.org Foundation C.I.C. | ||||
| Copyright 2019, 2020 The Matrix.org Foundation C.I.C. | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
|  | @ -20,7 +20,7 @@ export interface MatrixEvent { | |||
|     content: {}; | ||||
|     event_id: string; | ||||
|     origin_server_ts: number; | ||||
|     unsigned: ?{}; | ||||
|     unsigned?: {}; | ||||
|     room_id: string; | ||||
| } | ||||
| 
 | ||||
|  | @ -59,7 +59,7 @@ export interface SearchArgs { | |||
|     before_limit: number; | ||||
|     after_limit: number; | ||||
|     order_by_recency: boolean; | ||||
|     room_id: ?string; | ||||
|     room_id?: string; | ||||
| } | ||||
| 
 | ||||
| export interface EventAndProfile { | ||||
|  | @ -85,7 +85,7 @@ export interface IndexStats { | |||
|  * | ||||
|  * Instances of this class are provided by the application. | ||||
|  */ | ||||
| export default class BaseEventIndexManager { | ||||
| export default abstract class BaseEventIndexManager { | ||||
|     /** | ||||
|      * Does our EventIndexManager support event indexing. | ||||
|      * | ||||
|  | @ -119,7 +119,7 @@ export default class BaseEventIndexManager { | |||
|      * @return {Promise} A promise that will resolve when the was queued up for | ||||
|      * addition. | ||||
|      */ | ||||
|     async addEventToIndex(ev: MatrixEvent, profile: MatrixProfile): Promise<> { | ||||
|     async addEventToIndex(ev: MatrixEvent, profile: MatrixProfile): Promise<void> { | ||||
|         throw new Error("Unimplemented"); | ||||
|     } | ||||
| 
 | ||||
|  | @ -188,7 +188,7 @@ export default class BaseEventIndexManager { | |||
|         events: [EventAndProfile], | ||||
|         checkpoint: CrawlerCheckpoint | null, | ||||
|         oldCheckpoint: CrawlerCheckpoint | null, | ||||
|     ): Promise<bool> { | ||||
|     ): Promise<boolean> { | ||||
|         throw new Error("Unimplemented"); | ||||
|     } | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	 Michael Telatynski
						Michael Telatynski