From 80b641ebf1b787f64ea5e0c5881d210063dbdf1d Mon Sep 17 00:00:00 2001 From: Vasil Chimev Date: Wed, 25 Sep 2019 15:37:52 +0300 Subject: [PATCH] feat: add traitCollectionDidChange to controllers --- .../ui/bottom-navigation/bottom-navigation.ios.ts | 12 ++++++++++++ tns-core-modules/ui/core/view/view.ios.ts | 12 ++++++++++++ tns-core-modules/ui/frame/frame.ios.ts | 12 ++++++++++++ tns-core-modules/ui/page/page.ios.ts | 12 ++++++++++++ tns-core-modules/ui/tab-view/tab-view.ios.ts | 12 ++++++++++++ tns-core-modules/ui/tabs/tabs.ios.ts | 12 ++++++++++++ 6 files changed, 72 insertions(+) diff --git a/tns-core-modules/ui/bottom-navigation/bottom-navigation.ios.ts b/tns-core-modules/ui/bottom-navigation/bottom-navigation.ios.ts index 2d2966105..c0ea8d49f 100644 --- a/tns-core-modules/ui/bottom-navigation/bottom-navigation.ios.ts +++ b/tns-core-modules/ui/bottom-navigation/bottom-navigation.ios.ts @@ -79,6 +79,18 @@ class UITabBarControllerImpl extends UITabBarController { } }); } + + public traitCollectionDidChange(previousTraitCollection: UITraitCollection): void { + super.traitCollectionDidChange(previousTraitCollection); + + const owner = this._owner.get(); + owner.notify({ eventName: "traitCollectionChanged", object: owner }); + console.log("---> UITabBarControllerImpl.traitCollectionDidChange()"); + + if (this.traitCollection.hasDifferentColorAppearanceComparedToTraitCollection(previousTraitCollection)) { + owner.notify({ eventName: "traitCollectionColorAppearanceChanged", object: owner }); + } + } } class UITabBarControllerDelegateImpl extends NSObject implements UITabBarControllerDelegate { diff --git a/tns-core-modules/ui/core/view/view.ios.ts b/tns-core-modules/ui/core/view/view.ios.ts index 6b1065352..c04add1f2 100644 --- a/tns-core-modules/ui/core/view/view.ios.ts +++ b/tns-core-modules/ui/core/view/view.ios.ts @@ -1003,6 +1003,18 @@ export namespace ios { owner.callUnloaded(); } } + + public traitCollectionDidChange(previousTraitCollection: UITraitCollection): void { + super.traitCollectionDidChange(previousTraitCollection); + + const owner = this.owner.get(); + owner.notify({ eventName: "traitCollectionChanged", object: owner }); + console.log("---> UILayoutViewController.traitCollectionDidChange()"); + + if (this.traitCollection.hasDifferentColorAppearanceComparedToTraitCollection(previousTraitCollection)) { + owner.notify({ eventName: "traitCollectionColorAppearanceChanged", object: owner }); + } + } } export class UIPopoverPresentationControllerDelegateImp extends NSObject implements UIPopoverPresentationControllerDelegate { diff --git a/tns-core-modules/ui/frame/frame.ios.ts b/tns-core-modules/ui/frame/frame.ios.ts index 7423e9cbb..afa1feaac 100644 --- a/tns-core-modules/ui/frame/frame.ios.ts +++ b/tns-core-modules/ui/frame/frame.ios.ts @@ -532,6 +532,18 @@ class UINavigationControllerImpl extends UINavigationController { return null; } + + public traitCollectionDidChange(previousTraitCollection: UITraitCollection): void { + super.traitCollectionDidChange(previousTraitCollection); + + const owner = this._owner.get(); + owner.notify({ eventName: "traitCollectionChanged", object: owner }); + console.log("---> UINavigationControllerImpl.traitCollectionDidChange()"); + + if (this.traitCollection.hasDifferentColorAppearanceComparedToTraitCollection(previousTraitCollection)) { + owner.notify({ eventName: "traitCollectionColorAppearanceChanged", object: owner }); + } + } } function _getTransitionId(nativeTransition: UIViewAnimationTransition, transitionType: string): string { diff --git a/tns-core-modules/ui/page/page.ios.ts b/tns-core-modules/ui/page/page.ios.ts index fa9a8c59f..d75c3f8f6 100644 --- a/tns-core-modules/ui/page/page.ios.ts +++ b/tns-core-modules/ui/page/page.ios.ts @@ -280,6 +280,18 @@ class UIViewControllerImpl extends UIViewController { iosView.layoutView(this, owner); } } + + public traitCollectionDidChange(previousTraitCollection: UITraitCollection): void { + super.traitCollectionDidChange(previousTraitCollection); + + const owner = this._owner.get(); + owner.notify({ eventName: "traitCollectionChanged", object: owner }); + console.log("---> UIViewControllerImpl.traitCollectionDidChange()"); + + if (this.traitCollection.hasDifferentColorAppearanceComparedToTraitCollection(previousTraitCollection)) { + owner.notify({ eventName: "traitCollectionColorAppearanceChanged", object: owner }); + } + } } const whiteColor = new Color("white").ios; diff --git a/tns-core-modules/ui/tab-view/tab-view.ios.ts b/tns-core-modules/ui/tab-view/tab-view.ios.ts index 5c0f939b2..a5a7983c9 100644 --- a/tns-core-modules/ui/tab-view/tab-view.ios.ts +++ b/tns-core-modules/ui/tab-view/tab-view.ios.ts @@ -71,6 +71,18 @@ class UITabBarControllerImpl extends UITabBarController { } }); } + + public traitCollectionDidChange(previousTraitCollection: UITraitCollection): void { + super.traitCollectionDidChange(previousTraitCollection); + + const owner = this._owner.get(); + owner.notify({ eventName: "traitCollectionChanged", object: owner }); + console.log("---> UITabBarControllerImpl.traitCollectionDidChange()"); + + if (this.traitCollection.hasDifferentColorAppearanceComparedToTraitCollection(previousTraitCollection)) { + owner.notify({ eventName: "traitCollectionColorAppearanceChanged", object: owner }); + } + } } class UITabBarControllerDelegateImpl extends NSObject implements UITabBarControllerDelegate { diff --git a/tns-core-modules/ui/tabs/tabs.ios.ts b/tns-core-modules/ui/tabs/tabs.ios.ts index be26ca1b0..eae05b6ef 100644 --- a/tns-core-modules/ui/tabs/tabs.ios.ts +++ b/tns-core-modules/ui/tabs/tabs.ios.ts @@ -190,6 +190,18 @@ class UIPageViewControllerImpl extends UIPageViewController { scrollView.frame = CGRectMake(0, scrollViewTop, this.view.bounds.size.width, scrollViewHeight); //this.view.bounds; } } + + public traitCollectionDidChange(previousTraitCollection: UITraitCollection): void { + super.traitCollectionDidChange(previousTraitCollection); + + const owner = this._owner.get(); + owner.notify({ eventName: "traitCollectionChanged", object: owner }); + console.log("---> UIPageViewControllerImpl.traitCollectionDidChange()"); + + if (this.traitCollection.hasDifferentColorAppearanceComparedToTraitCollection(previousTraitCollection)) { + owner.notify({ eventName: "traitCollectionColorAppearanceChanged", object: owner }); + } + } } class UIPageViewControllerDataSourceImpl extends NSObject implements UIPageViewControllerDataSource {