From b89d9af7dbe4213394b746574653a7278823872d Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Thu, 30 Nov 2023 14:31:26 +0530 Subject: [PATCH] fix: Fixed issue on Android where deprecated editors wouldn't load --- .../features/src/Domain/Feature/Features.ts | 5 +++++ .../ComponentManager/ComponentManager.ts | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/features/src/Domain/Feature/Features.ts b/packages/features/src/Domain/Feature/Features.ts index cc194cb9a..18fb58bb1 100644 --- a/packages/features/src/Domain/Feature/Features.ts +++ b/packages/features/src/Domain/Feature/Features.ts @@ -10,6 +10,7 @@ import { IframeEditors } from '../Lists/IframeEditors' import { themes } from '../Lists/Themes' import { nativeEditors } from '../Lists/NativeEditors' import { IframeComponentFeatureDescription } from './IframeComponentFeatureDescription' +import { ComponentArea } from '../Component/ComponentArea' export function GetFeatures(): AnyFeatureDescription[] { return [ @@ -54,3 +55,7 @@ export function GetNativeThemes(): ThemeFeatureDescription[] { export function GetDarkThemeFeature(): ThemeFeatureDescription { return themes().find((t) => t.identifier === NativeFeatureIdentifier.TYPES.DarkTheme) as ThemeFeatureDescription } + +export function GetDeprecatedEditors(): IframeComponentFeatureDescription[] { + return (GetDeprecatedFeatures() as IframeComponentFeatureDescription[]).filter((f) => f.area === ComponentArea.Editor) +} diff --git a/packages/snjs/lib/Services/ComponentManager/ComponentManager.ts b/packages/snjs/lib/Services/ComponentManager/ComponentManager.ts index 9e5ab95d7..0741c0a53 100644 --- a/packages/snjs/lib/Services/ComponentManager/ComponentManager.ts +++ b/packages/snjs/lib/Services/ComponentManager/ComponentManager.ts @@ -28,6 +28,7 @@ import { GetIframeEditors, GetNativeThemes, NativeFeatureIdentifier, + GetDeprecatedEditors, } from '@standardnotes/features' import { Copy, removeFromArray, sleep, isNotUndefined, LoggerInterface } from '@standardnotes/utils' import { ComponentViewer } from '@Lib/Services/ComponentManager/ComponentViewer' @@ -106,6 +107,7 @@ export class ComponentManager this.addSyncedComponentItemObserver() this.registerMobileNativeComponentUrls() + this.registerDeprecatedEditorUrlsForAndroid() this.eventDisposers.push( preferences.addEventObserver((event) => { @@ -292,6 +294,23 @@ export class ComponentManager } } + private registerDeprecatedEditorUrlsForAndroid(): void { + if (!isMobileDevice(this.device)) { + return + } + + const deprecatedEditors = [...GetDeprecatedEditors()] + + for (const component of deprecatedEditors) { + const feature = new UIFeature(component) + const url = this.urlForFeature(feature) + + if (url) { + this.device.registerComponentUrl(feature.uniqueIdentifier.value, url) + } + } + } + detectFocusChange = (): void => { const activeIframes = Array.from(document.getElementsByTagName('iframe'))