From 50a6834a3e773f849959b6a271ea966963c93321 Mon Sep 17 00:00:00 2001 From: Vasil Chimev Date: Wed, 11 Sep 2019 16:30:22 +0300 Subject: [PATCH] feat(dark-mode): compatibility color --- tns-core-modules/application/application.ios.ts | 13 ++----------- tns-core-modules/color/compatibility-colors.d.ts | 3 +++ tns-core-modules/color/compatibility-colors.ios.ts | 6 ++++++ .../activity-indicator/activity-indicator.ios.ts | 14 ++------------ tns-core-modules/ui/page/page.ios.ts | 11 ++--------- 5 files changed, 15 insertions(+), 32 deletions(-) create mode 100644 tns-core-modules/color/compatibility-colors.d.ts create mode 100644 tns-core-modules/color/compatibility-colors.ios.ts diff --git a/tns-core-modules/application/application.ios.ts b/tns-core-modules/application/application.ios.ts index 4b709470b..e9e409797 100644 --- a/tns-core-modules/application/application.ios.ts +++ b/tns-core-modules/application/application.ios.ts @@ -20,6 +20,7 @@ import { createViewFromEntry } from "../ui/builder"; import { CLASS_PREFIX, getRootViewCssClasses, pushToRootViewCssClasses } from "../css/system-classes"; import { ios as iosView, View } from "../ui/core/view"; import { Frame, NavigationEntry } from "../ui/frame"; +import { backgroundColor } from "../color/compatibility-colors.ios"; import { device } from "../platform/platform"; import { profile } from "../profiling"; import { ios } from "../utils/utils"; @@ -27,7 +28,6 @@ import { ios } from "../utils/utils"; const IOS_PLATFORM = "ios"; const getVisibleViewController = ios.getVisibleViewController; -const majorVersion = ios.MajorVersion; // NOTE: UIResponder with implementation of window - related to https://github.com/NativeScript/ios-runtime/issues/430 // TODO: Refactor the UIResponder to use Typescript extends when this issue is resolved: @@ -159,17 +159,8 @@ class IOSApplication implements IOSApplicationDefinition { } this._window = UIWindow.alloc().initWithFrame(UIScreen.mainScreen.bounds); - - // TODO: add CompatibilityColor.backgroundColor; - let backgroundColor; - if (majorVersion <= 12) { - backgroundColor = UIColor.whiteColor; - } else { - backgroundColor = UIColor.systemBackgroundColor; - } - // TODO: Expose Window module so that it can we styled from XML & CSS - this._window.backgroundColor = backgroundColor; + this._window.backgroundColor = backgroundColor(); this.notifyAppStarted(notification); } diff --git a/tns-core-modules/color/compatibility-colors.d.ts b/tns-core-modules/color/compatibility-colors.d.ts new file mode 100644 index 000000000..83bb5ebe4 --- /dev/null +++ b/tns-core-modules/color/compatibility-colors.d.ts @@ -0,0 +1,3 @@ +/** + * @module "color/compatibility-colors" + */ /** */ diff --git a/tns-core-modules/color/compatibility-colors.ios.ts b/tns-core-modules/color/compatibility-colors.ios.ts new file mode 100644 index 000000000..2244a075a --- /dev/null +++ b/tns-core-modules/color/compatibility-colors.ios.ts @@ -0,0 +1,6 @@ +import { ios } from "../utils/utils"; + +const majorVersion = ios.MajorVersion; + +export const activityIndicatorViewStyle = () => { return majorVersion <= 12 ? UIActivityIndicatorViewStyle.Gray : UIActivityIndicatorViewStyle.Medium }; +export const backgroundColor = () => { return majorVersion <= 12 ? UIColor.whiteColor : UIColor.systemBackgroundColor }; diff --git a/tns-core-modules/ui/activity-indicator/activity-indicator.ios.ts b/tns-core-modules/ui/activity-indicator/activity-indicator.ios.ts index 59e7e9067..84fad6f2c 100644 --- a/tns-core-modules/ui/activity-indicator/activity-indicator.ios.ts +++ b/tns-core-modules/ui/activity-indicator/activity-indicator.ios.ts @@ -1,23 +1,13 @@ import { ActivityIndicatorBase, busyProperty, colorProperty, Color } from "./activity-indicator-common"; +import { activityIndicatorViewStyle } from "../../color/compatibility-colors.ios"; export * from "./activity-indicator-common"; -import { ios } from "../../utils/utils"; - -const majorVersion = ios.MajorVersion; - export class ActivityIndicator extends ActivityIndicatorBase { nativeViewProtected: UIActivityIndicatorView; createNativeView() { - let viewStyle; - if (majorVersion <= 12) { - viewStyle = UIActivityIndicatorViewStyle.Gray; - } else { - viewStyle = UIActivityIndicatorViewStyle.Medium; - } - - const view = UIActivityIndicatorView.alloc().initWithActivityIndicatorStyle(viewStyle); + const view = UIActivityIndicatorView.alloc().initWithActivityIndicatorStyle(activityIndicatorViewStyle()); view.hidesWhenStopped = true; return view; diff --git a/tns-core-modules/ui/page/page.ios.ts b/tns-core-modules/ui/page/page.ios.ts index 12d360ee8..912f2fa2e 100644 --- a/tns-core-modules/ui/page/page.ios.ts +++ b/tns-core-modules/ui/page/page.ios.ts @@ -8,6 +8,7 @@ import { PageBase, View, layout, actionBarHiddenProperty, statusBarStyleProperty, Color } from "./page-common"; +import { backgroundColor } from "../../color/compatibility-colors.ios"; import { profile } from "../../profiling"; import { ios as iosUtils } from "../../utils/utils"; @@ -295,15 +296,7 @@ export class Page extends PageBase { this.viewController = this._ios = controller; // Make transitions look good - let backgroundColor; - if (majorVersion <= 12) { - backgroundColor = UIColor.whiteColor; - } else { - backgroundColor = UIColor.systemBackgroundColor; - } - - // TODO: add CompatibilityColor.backgroundColor; - controller.view.backgroundColor = backgroundColor; + controller.view.backgroundColor = backgroundColor(); } createNativeView() {