- Handled the star and moon to show only at the night time.
- Added a star above the grass and added it to the animation. - Woke Client call 1:15 - 1:40 - Added Sidebar theme clicks and added userdefaults with checks for default loading. Also added to logout - Handled the Theme change from sidebar, also handled the default theme selected and loading it at the time of startup - Fixed issue of sidebar showing up, left side blacktint was not coming. It was the issue of ViewLifeCycle - Theme 2 Explore woka items size ratio updated for auto layouts - Worked on RootView Navigation.
@@ -9,16 +9,6 @@
|
||||
/* Begin PBXBuildFile section */
|
||||
5202AAFE2BDF90590043B7BD /* TextFieldImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5202AAFD2BDF90590043B7BD /* TextFieldImage.swift */; };
|
||||
5202AB012BDFA7900043B7BD /* EmailValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5202AB002BDFA7900043B7BD /* EmailValidation.swift */; };
|
||||
522242592BFC73E40085C632 /* BasicTransitionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5222424D2BFC73E40085C632 /* BasicTransitionAnimator.swift */; };
|
||||
5222425A2BFC73E40085C632 /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5222424E2BFC73E40085C632 /* Delegate.swift */; };
|
||||
5222425B2BFC73E40085C632 /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5222424F2BFC73E40085C632 /* Preferences.swift */; };
|
||||
5222425C2BFC73E40085C632 /* Segue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242502BFC73E40085C632 /* Segue.swift */; };
|
||||
5222425D2BFC73E40085C632 /* SideMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242522BFC73E40085C632 /* SideMenuController.swift */; };
|
||||
5222425E2BFC73E40085C632 /* StatusBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242532BFC73E40085C632 /* StatusBar.swift */; };
|
||||
5222425F2BFC73E40085C632 /* TransitionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242542BFC73E40085C632 /* TransitionContext.swift */; };
|
||||
522242602BFC73E40085C632 /* UIView+Container.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242552BFC73E40085C632 /* UIView+Container.swift */; };
|
||||
522242612BFC73E40085C632 /* UIViewController+Container.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242562BFC73E40085C632 /* UIViewController+Container.swift */; };
|
||||
522242622BFC73E40085C632 /* UIViewController+SideMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242572BFC73E40085C632 /* UIViewController+SideMenu.swift */; };
|
||||
522242662BFC74380085C632 /* MyListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242632BFC74380085C632 /* MyListVC.swift */; };
|
||||
522242682BFC74380085C632 /* TabBarVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242652BFC74380085C632 /* TabBarVC.swift */; };
|
||||
5222426A2BFC7AFC0085C632 /* SideMenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 522242692BFC7AFC0085C632 /* SideMenuVC.swift */; };
|
||||
@@ -31,6 +21,9 @@
|
||||
523ED2752BDA2BC900CFED02 /* WOKATests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523ED2742BDA2BC900CFED02 /* WOKATests.swift */; };
|
||||
523ED27F2BDA2BC900CFED02 /* WOKAUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523ED27E2BDA2BC900CFED02 /* WOKAUITests.swift */; };
|
||||
523ED2812BDA2BC900CFED02 /* WOKAUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523ED2802BDA2BC900CFED02 /* WOKAUITestsLaunchTests.swift */; };
|
||||
524C422B2C04781B0016A11C /* ThemeTwoVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524C422A2C04781B0016A11C /* ThemeTwoVM.swift */; };
|
||||
524C42312C0499560016A11C /* NotificationCenterReloads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524C42302C0499560016A11C /* NotificationCenterReloads.swift */; };
|
||||
524C42332C049D590016A11C /* CustomizableSegmentControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524C42322C049D590016A11C /* CustomizableSegmentControl.swift */; };
|
||||
525327D02BFCBC4A00F64283 /* ExploreWokaVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525327CF2BFCBC4A00F64283 /* ExploreWokaVC.swift */; };
|
||||
525327D62BFCC23600F64283 /* SideMenuVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525327D52BFCC23600F64283 /* SideMenuVM.swift */; };
|
||||
525327D92BFCDDF700F64283 /* AuthFuncStartupSoundHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525327D82BFCDDF700F64283 /* AuthFuncStartupSoundHandling.swift */; };
|
||||
@@ -77,6 +70,16 @@
|
||||
52A3F6AB2BECBF550000BB0B /* LinkedChildVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A3F6AA2BECBF550000BB0B /* LinkedChildVC.swift */; };
|
||||
52A3F6AD2BECC0340000BB0B /* TypeAlias.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A3F6AC2BECC0340000BB0B /* TypeAlias.swift */; };
|
||||
52A3F6AF2BECC0690000BB0B /* LinkedChildVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A3F6AE2BECC0690000BB0B /* LinkedChildVM.swift */; };
|
||||
52B8D4D92C04A25E00ED65F3 /* UIViewController+Container.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4CE2C04A25D00ED65F3 /* UIViewController+Container.swift */; };
|
||||
52B8D4DA2C04A25E00ED65F3 /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4CF2C04A25D00ED65F3 /* Preferences.swift */; };
|
||||
52B8D4DB2C04A25E00ED65F3 /* TransitionContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D02C04A25D00ED65F3 /* TransitionContext.swift */; };
|
||||
52B8D4DC2C04A25E00ED65F3 /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D12C04A25D00ED65F3 /* Delegate.swift */; };
|
||||
52B8D4DD2C04A25E00ED65F3 /* UIViewController+SideMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D32C04A25D00ED65F3 /* UIViewController+SideMenu.swift */; };
|
||||
52B8D4DE2C04A25E00ED65F3 /* SideMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D42C04A25D00ED65F3 /* SideMenuController.swift */; };
|
||||
52B8D4DF2C04A25E00ED65F3 /* StatusBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D52C04A25D00ED65F3 /* StatusBar.swift */; };
|
||||
52B8D4E02C04A25E00ED65F3 /* UIView+Container.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D62C04A25D00ED65F3 /* UIView+Container.swift */; };
|
||||
52B8D4E12C04A25E00ED65F3 /* BasicTransitionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D72C04A25E00ED65F3 /* BasicTransitionAnimator.swift */; };
|
||||
52B8D4E22C04A25E00ED65F3 /* Segue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B8D4D82C04A25E00ED65F3 /* Segue.swift */; };
|
||||
52C6E01B2BE383C000E22D59 /* YourIntrestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C6E0192BE383C000E22D59 /* YourIntrestCell.swift */; };
|
||||
52C6E01C2BE383C000E22D59 /* YourIntrestCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 52C6E01A2BE383C000E22D59 /* YourIntrestCell.xib */; };
|
||||
52C6E01E2BE3847F00E22D59 /* BorderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C6E01D2BE3847F00E22D59 /* BorderView.swift */; };
|
||||
@@ -168,17 +171,6 @@
|
||||
26B5FF3DFDEFA683C1B79490 /* Pods-WOKA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WOKA.debug.xcconfig"; path = "Target Support Files/Pods-WOKA/Pods-WOKA.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
5202AAFD2BDF90590043B7BD /* TextFieldImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldImage.swift; sourceTree = "<group>"; };
|
||||
5202AB002BDFA7900043B7BD /* EmailValidation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmailValidation.swift; sourceTree = "<group>"; };
|
||||
5222424D2BFC73E40085C632 /* BasicTransitionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicTransitionAnimator.swift; sourceTree = "<group>"; };
|
||||
5222424E2BFC73E40085C632 /* Delegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = "<group>"; };
|
||||
5222424F2BFC73E40085C632 /* Preferences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
|
||||
522242502BFC73E40085C632 /* Segue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Segue.swift; sourceTree = "<group>"; };
|
||||
522242512BFC73E40085C632 /* SideMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenu.h; sourceTree = "<group>"; };
|
||||
522242522BFC73E40085C632 /* SideMenuController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SideMenuController.swift; sourceTree = "<group>"; };
|
||||
522242532BFC73E40085C632 /* StatusBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBar.swift; sourceTree = "<group>"; };
|
||||
522242542BFC73E40085C632 /* TransitionContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransitionContext.swift; sourceTree = "<group>"; };
|
||||
522242552BFC73E40085C632 /* UIView+Container.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Container.swift"; sourceTree = "<group>"; };
|
||||
522242562BFC73E40085C632 /* UIViewController+Container.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+Container.swift"; sourceTree = "<group>"; };
|
||||
522242572BFC73E40085C632 /* UIViewController+SideMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+SideMenu.swift"; sourceTree = "<group>"; };
|
||||
522242632BFC74380085C632 /* MyListVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyListVC.swift; sourceTree = "<group>"; };
|
||||
522242652BFC74380085C632 /* TabBarVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabBarVC.swift; sourceTree = "<group>"; };
|
||||
522242692BFC7AFC0085C632 /* SideMenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuVC.swift; sourceTree = "<group>"; };
|
||||
@@ -195,6 +187,9 @@
|
||||
523ED27A2BDA2BC900CFED02 /* WOKAUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WOKAUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
523ED27E2BDA2BC900CFED02 /* WOKAUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WOKAUITests.swift; sourceTree = "<group>"; };
|
||||
523ED2802BDA2BC900CFED02 /* WOKAUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WOKAUITestsLaunchTests.swift; sourceTree = "<group>"; };
|
||||
524C422A2C04781B0016A11C /* ThemeTwoVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeTwoVM.swift; sourceTree = "<group>"; };
|
||||
524C42302C0499560016A11C /* NotificationCenterReloads.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCenterReloads.swift; sourceTree = "<group>"; };
|
||||
524C42322C049D590016A11C /* CustomizableSegmentControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomizableSegmentControl.swift; sourceTree = "<group>"; };
|
||||
525327CF2BFCBC4A00F64283 /* ExploreWokaVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExploreWokaVC.swift; sourceTree = "<group>"; };
|
||||
525327D52BFCC23600F64283 /* SideMenuVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuVM.swift; sourceTree = "<group>"; };
|
||||
525327D82BFCDDF700F64283 /* AuthFuncStartupSoundHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthFuncStartupSoundHandling.swift; sourceTree = "<group>"; };
|
||||
@@ -235,6 +230,17 @@
|
||||
52A3F6AA2BECBF550000BB0B /* LinkedChildVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkedChildVC.swift; sourceTree = "<group>"; };
|
||||
52A3F6AC2BECC0340000BB0B /* TypeAlias.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypeAlias.swift; sourceTree = "<group>"; };
|
||||
52A3F6AE2BECC0690000BB0B /* LinkedChildVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkedChildVM.swift; sourceTree = "<group>"; };
|
||||
52B8D4CE2C04A25D00ED65F3 /* UIViewController+Container.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+Container.swift"; sourceTree = "<group>"; };
|
||||
52B8D4CF2C04A25D00ED65F3 /* Preferences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
|
||||
52B8D4D02C04A25D00ED65F3 /* TransitionContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransitionContext.swift; sourceTree = "<group>"; };
|
||||
52B8D4D12C04A25D00ED65F3 /* Delegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = "<group>"; };
|
||||
52B8D4D22C04A25D00ED65F3 /* SideMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenu.h; sourceTree = "<group>"; };
|
||||
52B8D4D32C04A25D00ED65F3 /* UIViewController+SideMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+SideMenu.swift"; sourceTree = "<group>"; };
|
||||
52B8D4D42C04A25D00ED65F3 /* SideMenuController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SideMenuController.swift; sourceTree = "<group>"; };
|
||||
52B8D4D52C04A25D00ED65F3 /* StatusBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBar.swift; sourceTree = "<group>"; };
|
||||
52B8D4D62C04A25D00ED65F3 /* UIView+Container.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+Container.swift"; sourceTree = "<group>"; };
|
||||
52B8D4D72C04A25E00ED65F3 /* BasicTransitionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicTransitionAnimator.swift; sourceTree = "<group>"; };
|
||||
52B8D4D82C04A25E00ED65F3 /* Segue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Segue.swift; sourceTree = "<group>"; };
|
||||
52C6E0192BE383C000E22D59 /* YourIntrestCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YourIntrestCell.swift; sourceTree = "<group>"; };
|
||||
52C6E01A2BE383C000E22D59 /* YourIntrestCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = YourIntrestCell.xib; sourceTree = "<group>"; };
|
||||
52C6E01D2BE3847F00E22D59 /* BorderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BorderView.swift; sourceTree = "<group>"; };
|
||||
@@ -287,8 +293,8 @@
|
||||
9C535DB72C0089B400DA6DCD /* ViewButtonAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewButtonAnimation.swift; sourceTree = "<group>"; };
|
||||
9C535DBF2C00B36000DA6DCD /* HomeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeVC.swift; sourceTree = "<group>"; };
|
||||
9C535DC12C00B36900DA6DCD /* ThemeTwoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeTwoVC.swift; sourceTree = "<group>"; };
|
||||
9C535DC32C00BF2400DA6DCD /* HomeExploreCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = HomeExploreCell.swift; path = WOKA/Home/View/HomeExploreCell.swift; sourceTree = SOURCE_ROOT; };
|
||||
9C535DC42C00BF2400DA6DCD /* HomeExploreCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = HomeExploreCell.xib; path = WOKA/Home/View/HomeExploreCell.xib; sourceTree = SOURCE_ROOT; };
|
||||
9C535DC32C00BF2400DA6DCD /* HomeExploreCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = HomeExploreCell.swift; path = WOKA/Theme/View/HomeExploreCell.swift; sourceTree = SOURCE_ROOT; };
|
||||
9C535DC42C00BF2400DA6DCD /* HomeExploreCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = HomeExploreCell.xib; path = WOKA/Theme/View/HomeExploreCell.xib; sourceTree = SOURCE_ROOT; };
|
||||
9C535DC92C00C34A00DA6DCD /* Theme.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Theme.storyboard; sourceTree = "<group>"; };
|
||||
9C56E82E2BDBC3EF00E4CA14 /* Exo2-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Exo2-Bold.ttf"; sourceTree = "<group>"; };
|
||||
9C56E82F2BDBC3EF00E4CA14 /* Exo2-Medium.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Exo2-Medium.ttf"; sourceTree = "<group>"; };
|
||||
@@ -374,17 +380,17 @@
|
||||
522242582BFC73E40085C632 /* SideMenu */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5222424D2BFC73E40085C632 /* BasicTransitionAnimator.swift */,
|
||||
5222424E2BFC73E40085C632 /* Delegate.swift */,
|
||||
5222424F2BFC73E40085C632 /* Preferences.swift */,
|
||||
522242502BFC73E40085C632 /* Segue.swift */,
|
||||
522242512BFC73E40085C632 /* SideMenu.h */,
|
||||
522242522BFC73E40085C632 /* SideMenuController.swift */,
|
||||
522242532BFC73E40085C632 /* StatusBar.swift */,
|
||||
522242542BFC73E40085C632 /* TransitionContext.swift */,
|
||||
522242552BFC73E40085C632 /* UIView+Container.swift */,
|
||||
522242562BFC73E40085C632 /* UIViewController+Container.swift */,
|
||||
522242572BFC73E40085C632 /* UIViewController+SideMenu.swift */,
|
||||
52B8D4D72C04A25E00ED65F3 /* BasicTransitionAnimator.swift */,
|
||||
52B8D4D12C04A25D00ED65F3 /* Delegate.swift */,
|
||||
52B8D4CF2C04A25D00ED65F3 /* Preferences.swift */,
|
||||
52B8D4D82C04A25E00ED65F3 /* Segue.swift */,
|
||||
52B8D4D22C04A25D00ED65F3 /* SideMenu.h */,
|
||||
52B8D4D42C04A25D00ED65F3 /* SideMenuController.swift */,
|
||||
52B8D4D52C04A25D00ED65F3 /* StatusBar.swift */,
|
||||
52B8D4D02C04A25D00ED65F3 /* TransitionContext.swift */,
|
||||
52B8D4D62C04A25D00ED65F3 /* UIView+Container.swift */,
|
||||
52B8D4CE2C04A25D00ED65F3 /* UIViewController+Container.swift */,
|
||||
52B8D4D32C04A25D00ED65F3 /* UIViewController+SideMenu.swift */,
|
||||
);
|
||||
path = SideMenu;
|
||||
sourceTree = "<group>";
|
||||
@@ -414,23 +420,23 @@
|
||||
523ED25C2BDA2BC700CFED02 /* WOKA */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9C535DC82C00C34000DA6DCD /* Theme */,
|
||||
525327D72BFCC30400F64283 /* TabBar & SideMenu */,
|
||||
5259542C2BEA392A00191286 /* Alerts */,
|
||||
525954152BE8CAC900191286 /* Network Adapter */,
|
||||
9CBCB2A62BE5104F007D7934 /* Home */,
|
||||
52C6E01F2BE3ADD800E22D59 /* Default Enum */,
|
||||
9C56E83E2BDBE4FB00E4CA14 /* Authentication */,
|
||||
523ED28E2BDA372C00CFED02 /* OnBoarding Module */,
|
||||
9C27E1612BDB6F0F00EC1DA9 /* Main */,
|
||||
9C27E15E2BDB6E4F00EC1DA9 /* Localized Module */,
|
||||
52C8B0552BDA57CE003B51D0 /* Constants K */,
|
||||
52C8B0512BDA4B51003B51D0 /* Helpers */,
|
||||
523ED2932BDA3D0100CFED02 /* Assets */,
|
||||
9C9BEEC62BEE1BBF004ECC2F /* CollectionViewCenteredFlowLayout.swift */,
|
||||
523ED2682BDA2BC900CFED02 /* LaunchScreen.storyboard */,
|
||||
523ED26B2BDA2BC900CFED02 /* Info.plist */,
|
||||
9C9BEEC62BEE1BBF004ECC2F /* CollectionViewCenteredFlowLayout.swift */,
|
||||
5259541E2BE8E93500191286 /* Config.xcconfig */,
|
||||
5259542C2BEA392A00191286 /* Alerts */,
|
||||
523ED2932BDA3D0100CFED02 /* Assets */,
|
||||
9C56E83E2BDBE4FB00E4CA14 /* Authentication */,
|
||||
52C8B0552BDA57CE003B51D0 /* Constants K */,
|
||||
52C6E01F2BE3ADD800E22D59 /* Default Enum */,
|
||||
52C8B0512BDA4B51003B51D0 /* Helpers */,
|
||||
9CBCB2A62BE5104F007D7934 /* Home */,
|
||||
523ED2682BDA2BC900CFED02 /* LaunchScreen.storyboard */,
|
||||
9C27E15E2BDB6E4F00EC1DA9 /* Localized Module */,
|
||||
9C27E1612BDB6F0F00EC1DA9 /* Main */,
|
||||
525954152BE8CAC900191286 /* Network Adapter */,
|
||||
523ED28E2BDA372C00CFED02 /* OnBoarding Module */,
|
||||
525327D72BFCC30400F64283 /* TabBar & SideMenu */,
|
||||
9C535DC82C00C34000DA6DCD /* Theme */,
|
||||
);
|
||||
path = WOKA;
|
||||
sourceTree = "<group>";
|
||||
@@ -526,10 +532,40 @@
|
||||
path = Fonts;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
524C422C2C048C5E0016A11C /* Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
522242652BFC74380085C632 /* TabBarVC.swift */,
|
||||
522242692BFC7AFC0085C632 /* SideMenuVC.swift */,
|
||||
);
|
||||
path = Controller;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
524C422D2C048C620016A11C /* ViewModel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
525327D52BFCC23600F64283 /* SideMenuVM.swift */,
|
||||
);
|
||||
path = ViewModel;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
524C422E2C048C670016A11C /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
524C422F2C048C710016A11C /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
525327D12BFCC1BC00F64283 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52FDBA772BFF23F4009D7AC7 /* TimePeriod.swift */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
@@ -537,7 +573,6 @@
|
||||
525327D32BFCC1C900F64283 /* ViewModel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
525327D52BFCC23600F64283 /* SideMenuVM.swift */,
|
||||
);
|
||||
path = ViewModel;
|
||||
sourceTree = "<group>";
|
||||
@@ -555,9 +590,11 @@
|
||||
525327D72BFCC30400F64283 /* TabBar & SideMenu */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
524C422E2C048C670016A11C /* Model */,
|
||||
524C422F2C048C710016A11C /* View */,
|
||||
524C422D2C048C620016A11C /* ViewModel */,
|
||||
524C422C2C048C5E0016A11C /* Controller */,
|
||||
522242582BFC73E40085C632 /* SideMenu */,
|
||||
522242652BFC74380085C632 /* TabBarVC.swift */,
|
||||
522242692BFC7AFC0085C632 /* SideMenuVC.swift */,
|
||||
);
|
||||
path = "TabBar & SideMenu";
|
||||
sourceTree = "<group>";
|
||||
@@ -645,6 +682,7 @@
|
||||
52663FF42BDFAB830001D8CE /* TextFieldErrorView.swift */,
|
||||
52663FFA2BDFB1700001D8CE /* TextFieldShadow.swift */,
|
||||
9CBCB2A02BE4E50A007D7934 /* TextFieldPassword.swift */,
|
||||
524C42322C049D590016A11C /* CustomizableSegmentControl.swift */,
|
||||
);
|
||||
path = "UIElements Helper";
|
||||
sourceTree = "<group>";
|
||||
@@ -661,6 +699,7 @@
|
||||
9C27E16C2BDB852F00EC1DA9 /* GVar.swift */,
|
||||
9C27E16E2BDB866500EC1DA9 /* CellIdentifier.swift */,
|
||||
525954182BE8CC3400191286 /* ConstantString.swift */,
|
||||
524C42302C0499560016A11C /* NotificationCenterReloads.swift */,
|
||||
);
|
||||
path = "Constants K";
|
||||
sourceTree = "<group>";
|
||||
@@ -681,6 +720,23 @@
|
||||
path = GIF_JSON;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
52F12C802C04569100AF8139 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52FDBA772BFF23F4009D7AC7 /* TimePeriod.swift */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
52F12C812C04569500AF8139 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9C535DC32C00BF2400DA6DCD /* HomeExploreCell.swift */,
|
||||
9C535DC42C00BF2400DA6DCD /* HomeExploreCell.xib */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
52FDBA792BFF26F9009D7AC7 /* AuthFunc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -721,8 +777,6 @@
|
||||
9C535DC72C00BF3E00DA6DCD /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9C535DC32C00BF2400DA6DCD /* HomeExploreCell.swift */,
|
||||
9C535DC42C00BF2400DA6DCD /* HomeExploreCell.xib */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -730,6 +784,8 @@
|
||||
9C535DC82C00C34000DA6DCD /* Theme */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52F12C802C04569100AF8139 /* Model */,
|
||||
52F12C812C04569500AF8139 /* View */,
|
||||
9C535DCC2C00CD1200DA6DCD /* ViewModel */,
|
||||
9C535DCB2C00CD0800DA6DCD /* Controller */,
|
||||
9C535DC92C00C34A00DA6DCD /* Theme.storyboard */,
|
||||
@@ -750,6 +806,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52FDBA7C2BFF481A009D7AC7 /* ThemeOneVM.swift */,
|
||||
524C422A2C04781B0016A11C /* ThemeTwoVM.swift */,
|
||||
);
|
||||
path = ViewModel;
|
||||
sourceTree = "<group>";
|
||||
@@ -1050,9 +1107,7 @@
|
||||
files = (
|
||||
9C535DC62C00BF2400DA6DCD /* HomeExploreCell.swift in Sources */,
|
||||
52D774EF2BDFC50D001D87DE /* StringValidations.swift in Sources */,
|
||||
5222425D2BFC73E40085C632 /* SideMenuController.swift in Sources */,
|
||||
5272FCE32BDFDB05000ECB1D /* UserDetailsRegisterVC.swift in Sources */,
|
||||
5222425E2BFC73E40085C632 /* StatusBar.swift in Sources */,
|
||||
525954102BE8B72900191286 /* FontCustom.swift in Sources */,
|
||||
5202AAFE2BDF90590043B7BD /* TextFieldImage.swift in Sources */,
|
||||
52FDDAB52BF34DC300E037C1 /* YesNoAlertVC.swift in Sources */,
|
||||
@@ -1062,9 +1117,13 @@
|
||||
525953D42BE8B2DF00191286 /* UIApplication.swift in Sources */,
|
||||
52CC38C32BDF812F00B74C3E /* LocalisedElements.swift in Sources */,
|
||||
5259545E2BEBBA1A00191286 /* LoadingIndicatorImageView.swift in Sources */,
|
||||
52B8D4DC2C04A25E00ED65F3 /* Delegate.swift in Sources */,
|
||||
52CA28FC2BE11A0400708B49 /* UserIntrestVM.swift in Sources */,
|
||||
52B8D4DB2C04A25E00ED65F3 /* TransitionContext.swift in Sources */,
|
||||
9C27E1602BDB6ECA00EC1DA9 /* UserDefaultsStruct.swift in Sources */,
|
||||
52A3F6AD2BECC0340000BB0B /* TypeAlias.swift in Sources */,
|
||||
524C422B2C04781B0016A11C /* ThemeTwoVM.swift in Sources */,
|
||||
52B8D4DF2C04A25E00ED65F3 /* StatusBar.swift in Sources */,
|
||||
5259541D2BE8D94400191286 /* QueueHelper.swift in Sources */,
|
||||
525954232BE8F00400191286 /* BaseResponseModel.swift in Sources */,
|
||||
9C27E1692BDB76F200EC1DA9 /* OnBoardVM.swift in Sources */,
|
||||
@@ -1076,9 +1135,9 @@
|
||||
5259542B2BEA292800191286 /* UserRegPostModel.swift in Sources */,
|
||||
52C8B0572BDA57DB003B51D0 /* Constant.swift in Sources */,
|
||||
5202AB012BDFA7900043B7BD /* EmailValidation.swift in Sources */,
|
||||
52B8D4E12C04A25E00ED65F3 /* BasicTransitionAnimator.swift in Sources */,
|
||||
525954192BE8CC3400191286 /* ConstantString.swift in Sources */,
|
||||
52D774EB2BDFC0BF001D87DE /* OTPVC.swift in Sources */,
|
||||
5222425A2BFC73E40085C632 /* Delegate.swift in Sources */,
|
||||
9C27E16F2BDB866500EC1DA9 /* CellIdentifier.swift in Sources */,
|
||||
9C27E1632BDB6F1900EC1DA9 /* AuthFunc.swift in Sources */,
|
||||
9C0A85412BEE35670093783D /* ResetPassUserNameVM.swift in Sources */,
|
||||
@@ -1087,19 +1146,21 @@
|
||||
52C8B05D2BDA5AA7003B51D0 /* ApplyGradrient.swift in Sources */,
|
||||
52C6E01B2BE383C000E22D59 /* YourIntrestCell.swift in Sources */,
|
||||
525954142BE8C87300191286 /* ExtensionVCToastAlert.swift in Sources */,
|
||||
52B8D4D92C04A25E00ED65F3 /* UIViewController+Container.swift in Sources */,
|
||||
523ED25E2BDA2BC700CFED02 /* AppDelegate.swift in Sources */,
|
||||
52D774ED2BDFC13F001D87DE /* OTPVM.swift in Sources */,
|
||||
525327D62BFCC23600F64283 /* SideMenuVM.swift in Sources */,
|
||||
9CBCB2A32BE50C95007D7934 /* ResetPassUserNameVC.swift in Sources */,
|
||||
52A3F6A52BECBA8D0000BB0B /* LinkedChildDM.swift in Sources */,
|
||||
52B8D4DE2C04A25E00ED65F3 /* SideMenuController.swift in Sources */,
|
||||
52A3F6AB2BECBF550000BB0B /* LinkedChildVC.swift in Sources */,
|
||||
52FDBA7B2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift in Sources */,
|
||||
9CBCB2A52BE50D49007D7934 /* NewPasswordVC.swift in Sources */,
|
||||
9CBCB29F2BE4E13A007D7934 /* ValidatorClass.swift in Sources */,
|
||||
522242592BFC73E40085C632 /* BasicTransitionAnimator.swift in Sources */,
|
||||
9CBCB29B2BE4D614007D7934 /* LoginVC.swift in Sources */,
|
||||
9C56E83B2BDBC6E600E4CA14 /* SelectAgeVM.swift in Sources */,
|
||||
9C535DC02C00B36000DA6DCD /* HomeVC.swift in Sources */,
|
||||
52B8D4E22C04A25E00ED65F3 /* Segue.swift in Sources */,
|
||||
5259542E2BEA393700191286 /* AlertCustomVC.swift in Sources */,
|
||||
52CA28FA2BE119F500708B49 /* UserIntrestVC.swift in Sources */,
|
||||
9C27E16B2BDB774D00EC1DA9 /* CarouselData.swift in Sources */,
|
||||
@@ -1114,12 +1175,11 @@
|
||||
52C8B0692BDA6E1E003B51D0 /* LocalizedEnum.swift in Sources */,
|
||||
525954122BE8C84900191286 /* Toast.swift in Sources */,
|
||||
525954172BE8CAD300191286 /* NetworkManager.swift in Sources */,
|
||||
52B8D4DD2C04A25E00ED65F3 /* UIViewController+SideMenu.swift in Sources */,
|
||||
525954292BEA079500191286 /* UserEmailVerifyDM.swift in Sources */,
|
||||
52A3F6AF2BECC0690000BB0B /* LinkedChildVM.swift in Sources */,
|
||||
525954252BE8F01600191286 /* ValueWrapper.swift in Sources */,
|
||||
52A3F6A82BECBF2A0000BB0B /* LinkedChildCell.swift in Sources */,
|
||||
522242622BFC73E40085C632 /* UIViewController+SideMenu.swift in Sources */,
|
||||
5222425B2BFC73E40085C632 /* Preferences.swift in Sources */,
|
||||
52C6E01E2BE3847F00E22D59 /* BorderView.swift in Sources */,
|
||||
52FDBA7D2BFF481A009D7AC7 /* ThemeOneVM.swift in Sources */,
|
||||
52C8B0742BDA7626003B51D0 /* OnBoardVC.swift in Sources */,
|
||||
@@ -1127,14 +1187,14 @@
|
||||
9CBCB2A12BE4E50A007D7934 /* TextFieldPassword.swift in Sources */,
|
||||
9C56E8482BDBEFAB00E4CA14 /* AssetColor.swift in Sources */,
|
||||
9C0A85432BEE3EC90093783D /* NewPasswordVM.swift in Sources */,
|
||||
524C42332C049D590016A11C /* CustomizableSegmentControl.swift in Sources */,
|
||||
9C535DB52C005A6D00DA6DCD /* KeyWindowFix.swift in Sources */,
|
||||
9C9BEEC72BEE1BBF004ECC2F /* CollectionViewCenteredFlowLayout.swift in Sources */,
|
||||
5222426A2BFC7AFC0085C632 /* SideMenuVC.swift in Sources */,
|
||||
9CBCB29D2BE4D6BB007D7934 /* LoginVM.swift in Sources */,
|
||||
524C42312C0499560016A11C /* NotificationCenterReloads.swift in Sources */,
|
||||
5272FCE52BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift in Sources */,
|
||||
525954272BE9178F00191286 /* UserDataDM.swift in Sources */,
|
||||
522242602BFC73E40085C632 /* UIView+Container.swift in Sources */,
|
||||
522242612BFC73E40085C632 /* UIViewController+Container.swift in Sources */,
|
||||
9C27E1652BDB6FBC00EC1DA9 /* StoryBoardID.swift in Sources */,
|
||||
52FDBA782BFF23F4009D7AC7 /* TimePeriod.swift in Sources */,
|
||||
525954322BEA39D200191286 /* AddTapGesture.swift in Sources */,
|
||||
@@ -1143,15 +1203,15 @@
|
||||
52C8B05F2BDA5AFA003B51D0 /* SplashVM.swift in Sources */,
|
||||
52663FF72BDFACF60001D8CE /* ShadowView.swift in Sources */,
|
||||
9C535DC22C00B36900DA6DCD /* ThemeTwoVC.swift in Sources */,
|
||||
5222425F2BFC73E40085C632 /* TransitionContext.swift in Sources */,
|
||||
52D774F12BDFC53B001D87DE /* StringSubScript.swift in Sources */,
|
||||
52B8D4DA2C04A25E00ED65F3 /* Preferences.swift in Sources */,
|
||||
52FB2D8F2BDF898F0009B0C7 /* TextFieldPadding.swift in Sources */,
|
||||
5257B2652BDFB6F50086D79B /* CheckPhoneHomeBtnOrNotch.swift in Sources */,
|
||||
52663FF92BDFAF110001D8CE /* EmailVM.swift in Sources */,
|
||||
5222425C2BFC73E40085C632 /* Segue.swift in Sources */,
|
||||
525954342BEA620800191286 /* IntrestTopicDM.swift in Sources */,
|
||||
52663FF52BDFAB830001D8CE /* TextFieldErrorView.swift in Sources */,
|
||||
9C27E16D2BDB852F00EC1DA9 /* GVar.swift in Sources */,
|
||||
52B8D4E02C04A25E00ED65F3 /* UIView+Container.swift in Sources */,
|
||||
9C56E8462BDBEE6400E4CA14 /* EmailVC.swift in Sources */,
|
||||
525327D92BFCDDF700F64283 /* AuthFuncStartupSoundHandling.swift in Sources */,
|
||||
52663FFB2BDFB1700001D8CE /* TextFieldShadow.swift in Sources */,
|
||||
|
||||
23
WOKA/Assets/Assets.xcassets/Home/Theme1/BottomArrow.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "icons8-down_button.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "icons8-down_button@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icons8-down_button@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
WOKA/Assets/Assets.xcassets/Home/Theme1/BottomArrow.imageset/icons8-down_button.png
vendored
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
WOKA/Assets/Assets.xcassets/Home/Theme1/BottomArrow.imageset/icons8-down_button@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
WOKA/Assets/Assets.xcassets/Home/Theme1/BottomArrow.imageset/icons8-down_button@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
WOKA/Assets/Assets.xcassets/Home/Theme1/Moon.imageset/moon.png.zip
vendored
Normal file
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
21
WOKA/Assets/Assets.xcassets/Home/Theme2/BottomFrame.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Frame 4.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
WOKA/Assets/Assets.xcassets/Home/Theme2/BottomFrame.imageset/Frame 4.png
vendored
Normal file
|
After Width: | Height: | Size: 24 KiB |
23
WOKA/Assets/Assets.xcassets/Home/Theme2/CheckMark.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "icons8-ok 1.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "icons8-ok 1@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "icons8-ok 1@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
WOKA/Assets/Assets.xcassets/Home/Theme2/CheckMark.imageset/icons8-ok 1.png
vendored
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
WOKA/Assets/Assets.xcassets/Home/Theme2/CheckMark.imageset/icons8-ok 1@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
WOKA/Assets/Assets.xcassets/Home/Theme2/CheckMark.imageset/icons8-ok 1@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
@@ -23,7 +23,7 @@ extension K{
|
||||
static let linkedChildCell = "LinkedChildCell"
|
||||
}
|
||||
|
||||
struct Theme2{
|
||||
struct Theme{
|
||||
static let homeExploreCell = "HomeExploreCell"
|
||||
}
|
||||
}
|
||||
|
||||
15
WOKA/Constants K/NotificationCenterReloads.swift
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// NotificationCenterReloads.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 27/05/24.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
extension K{
|
||||
|
||||
struct NotificationCenterReloads{
|
||||
static var reloadTheme = "ReloadTheme"
|
||||
}
|
||||
}
|
||||
@@ -14,5 +14,6 @@ extension K{
|
||||
static let authenticationSB = "AuthenticationSB"
|
||||
static let home = "Home"
|
||||
static let customAlerts = "CustomAlerts"
|
||||
static let theme = "Theme"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,5 +38,9 @@ extension K{
|
||||
static let yesNoAlertVC = "YesNoAlertVC"
|
||||
}
|
||||
|
||||
struct Theme{
|
||||
static let themeOneVC = "ThemeOneVC"
|
||||
static let themeTwoVC = "ThemeTwoVC"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,5 +17,12 @@ extension K{
|
||||
struct UserDefaultsStruct{
|
||||
// App Update
|
||||
static let appUpdateSkipVer = "appUpdateSkipVer"
|
||||
static let themeDefault = "themeDefault"
|
||||
}
|
||||
}
|
||||
|
||||
// theme switch enum
|
||||
enum ThemeSelect : String{
|
||||
case theme1
|
||||
case theme2
|
||||
}
|
||||
|
||||
@@ -13,14 +13,14 @@ class ViewButtonAnimation {
|
||||
|
||||
private init() {}
|
||||
|
||||
@objc func btnTapped(in viewController: UIViewController, view: UIView ) {
|
||||
@objc func btnTapped(in viewController: UIViewController, view: UIView, completionHandler : @escaping () -> Void) {
|
||||
// Apply click effect animation
|
||||
UIView.animate(withDuration: 0.1, animations: {
|
||||
view.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
|
||||
}) { _ in
|
||||
UIView.animate(withDuration: 0.1) {
|
||||
view.transform = .identity
|
||||
/*completionHandler*/()
|
||||
completionHandler()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,42 +1,18 @@
|
||||
//
|
||||
// SideMenuVC.swift
|
||||
// CustomizableSegmentControl.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 21/05/24.
|
||||
// Created by MacBook Pro on 27/05/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class SideMenuVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var logoutBtn: UIButton!
|
||||
@IBOutlet weak var selectionMenuTrailingConstraint: NSLayoutConstraint!
|
||||
@IBOutlet weak var languageControl: CustomizableSegmentControl!
|
||||
|
||||
@IBOutlet weak var theme1: UIImageView!
|
||||
@IBOutlet weak var theme2: UIImageView!
|
||||
|
||||
var vm = SideMenuVM()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
vm.vc = self
|
||||
vm.initView()
|
||||
|
||||
}
|
||||
|
||||
@IBAction func closeBtnTapped(_ sender: UIButton) {
|
||||
self.sideMenuController?.hideMenu()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CustomizableSegmentControl: UISegmentedControl {
|
||||
|
||||
private(set) lazy var radius:CGFloat = bounds.height / 2
|
||||
|
||||
private let segmentInset: CGFloat = 5 //your inset amount
|
||||
private let segmentImage: UIImage? = UIImage(color: UIColor.white) //your color
|
||||
private let segmentInset: CGFloat = 5
|
||||
private let segmentImage: UIImage? = UIImage(color: UIColor.white)
|
||||
|
||||
override init(items: [Any]?) {
|
||||
super.init(items: items)
|
||||
@@ -88,31 +64,3 @@ extension UIImage{
|
||||
self.init(cgImage: cgImage)
|
||||
}
|
||||
}
|
||||
|
||||
//extension UIView {
|
||||
//
|
||||
// /// Apply gradient colors to the view.
|
||||
// ///
|
||||
// /// - Parameters:
|
||||
// /// - colors: An array of UIColor objects defining the color of each gradient stop.
|
||||
// /// - startPoint: The start point of the gradient, defined in the unit coordinate space. The start point corresponds to the top-left corner of the layer's bounds rectangle.
|
||||
// /// - endPoint: The end point of the gradient, defined in the unit coordinate space. The end point corresponds to the bottom-right corner of the layer's bounds rectangle.
|
||||
// ///
|
||||
// func applyGradient(colors: [UIColor], startPoint: CGPoint, endPoint: CGPoint) {
|
||||
// // Create a new CAGradientLayer instance
|
||||
// let gradientLayer = CAGradientLayer()
|
||||
//
|
||||
// // Set the frame of the gradient layer to match the bounds of the view
|
||||
// gradientLayer.frame = bounds
|
||||
//
|
||||
// // Convert the array of UIColor objects to an array of CGColor objects
|
||||
// gradientLayer.colors = colors.map { $0.cgColor }
|
||||
//
|
||||
// // Set the start and end points of the gradient
|
||||
// gradientLayer.startPoint = startPoint
|
||||
// gradientLayer.endPoint = endPoint
|
||||
//
|
||||
// // Insert the gradient layer as the bottom layer of the view's layer hierarchy
|
||||
// layer.insertSublayer(gradientLayer, at: 0)
|
||||
// }
|
||||
//}
|
||||
@@ -18,25 +18,34 @@ class HomeVC: UIViewController ,ChildViewControllerDelegate{
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
// Initialize the first child view controller
|
||||
let sb = UIStoryboard(name: "Theme", bundle: nil)
|
||||
if let firstVC = sb.instantiateViewController(withIdentifier: "ThemeOneVC") as? ThemeOneVC {
|
||||
add(asChildViewController: firstVC)
|
||||
firstVC.delegate = self
|
||||
|
||||
switch AuthFunc.shareInstance.selectedTheme {
|
||||
case .theme1:
|
||||
let sb = UIStoryboard(name: K.StoryBoard.theme, bundle: nil)
|
||||
if let firstVC = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Theme.themeOneVC) as? ThemeOneVC {
|
||||
add(asChildViewController: firstVC)
|
||||
firstVC.delegate = self
|
||||
}
|
||||
case .theme2:
|
||||
let sb = UIStoryboard(name: K.StoryBoard.theme, bundle: nil)
|
||||
if let firstVC = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Theme.themeTwoVC) as? ThemeTwoVC {
|
||||
add(asChildViewController: firstVC)
|
||||
firstVC.delegate = self
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func didPressSwitchButton(from viewController: UIViewController) {
|
||||
if viewController is ThemeOneVC {
|
||||
switchToViewController(withIdentifier: "ThemeTwoVC")
|
||||
switchToViewController(withIdentifier: K.StoryBoardID.Theme.themeTwoVC)
|
||||
} else if viewController is ThemeTwoVC {
|
||||
switchToViewController(withIdentifier: "ThemeOneVC")
|
||||
switchToViewController(withIdentifier: K.StoryBoardID.Theme.themeOneVC)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private func switchToViewController(withIdentifier identifier: String) {
|
||||
let sb = UIStoryboard(name: "Theme", bundle: nil)
|
||||
let sb = UIStoryboard(name: K.StoryBoard.theme, bundle: nil)
|
||||
let newVC = sb.instantiateViewController(withIdentifier: identifier)
|
||||
if let newVC = newVC as? ThemeOneVC {
|
||||
newVC.delegate = self
|
||||
|
||||
@@ -68,16 +68,16 @@
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iqc-o5-ovk">
|
||||
<rect key="frame" x="114" y="48" width="300" height="814"/>
|
||||
<rect key="frame" x="79" y="48" width="335" height="814"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="t37-ec-QfF">
|
||||
<rect key="frame" x="0.0" y="20" width="300" height="976"/>
|
||||
<rect key="frame" x="0.0" y="20" width="335" height="976"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Xny-eg-3V4">
|
||||
<rect key="frame" x="25" y="0.0" width="260" height="30"/>
|
||||
<rect key="frame" x="25" y="0.0" width="295" height="30"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="oX8-tK-cUr">
|
||||
<rect key="frame" x="230" y="0.0" width="30" height="30"/>
|
||||
<rect key="frame" x="265" y="0.0" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="oX8-tK-cUr" secondAttribute="height" multiplier="1:1" id="iC5-te-siA"/>
|
||||
</constraints>
|
||||
@@ -98,10 +98,10 @@
|
||||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="RkV-jH-yAB">
|
||||
<rect key="frame" x="25" y="60" width="260" height="186.5"/>
|
||||
<rect key="frame" x="25" y="60" width="295" height="186.5"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wst-a7-Npy">
|
||||
<rect key="frame" x="34" y="0.0" width="192" height="90"/>
|
||||
<rect key="frame" x="51.5" y="0.0" width="192" height="90"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HcQ-Ty-2GV">
|
||||
<rect key="frame" x="51" y="0.0" width="90" height="90"/>
|
||||
@@ -129,13 +129,13 @@
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hi, Bilal Khan!" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="suo-d0-ZWN">
|
||||
<rect key="frame" x="75" y="105" width="110" height="21.5"/>
|
||||
<rect key="frame" x="92.5" y="105" width="110" height="21.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" adjustsImageSizeForAccessibilityContentSizeCategory="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mCq-h5-pMf">
|
||||
<rect key="frame" x="20" y="141.5" width="220" height="45"/>
|
||||
<rect key="frame" x="37.5" y="141.5" width="220" height="45"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="16m-fq-Z3J"/>
|
||||
@@ -151,53 +151,116 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="FFp-2S-Idg" userLabel="THEME">
|
||||
<rect key="frame" x="25" y="276.5" width="260" height="189.5"/>
|
||||
<rect key="frame" x="25" y="276.5" width="295" height="189.5"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="THEME" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="97O-hX-edI">
|
||||
<rect key="frame" x="103.5" y="0.0" width="53.5" height="19.5"/>
|
||||
<rect key="frame" x="121" y="0.0" width="53.5" height="19.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="NLo-Lc-0nk">
|
||||
<rect key="frame" x="0.0" y="29.5" width="260" height="160"/>
|
||||
<rect key="frame" x="11.5" y="29.5" width="272" height="160"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Theme1" translatesAutoresizingMaskIntoConstraints="NO" id="5Wh-aJ-q5B">
|
||||
<rect key="frame" x="20" y="0.0" width="100" height="160"/>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eUd-z5-WmN">
|
||||
<rect key="frame" x="20" y="0.0" width="106" height="160"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Theme1" translatesAutoresizingMaskIntoConstraints="NO" id="5Wh-aJ-q5B">
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="160"/>
|
||||
</imageView>
|
||||
<view hidden="YES" alpha="0.59999999999999998" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RDY-eo-rkC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="160"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</view>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="CheckMark" translatesAutoresizingMaskIntoConstraints="NO" id="YDJ-OW-yab">
|
||||
<rect key="frame" x="38" y="65" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="YDJ-OW-yab" secondAttribute="height" multiplier="1:1" id="SGL-t7-dEJ"/>
|
||||
<constraint firstAttribute="height" constant="30" id="oMU-Ek-7X1"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="5Wh-aJ-q5B" firstAttribute="top" secondItem="eUd-z5-WmN" secondAttribute="top" id="C8w-ZW-us1"/>
|
||||
<constraint firstAttribute="trailing" secondItem="RDY-eo-rkC" secondAttribute="trailing" id="CFX-oV-94f"/>
|
||||
<constraint firstItem="5Wh-aJ-q5B" firstAttribute="leading" secondItem="eUd-z5-WmN" secondAttribute="leading" id="Gsl-5A-sYo"/>
|
||||
<constraint firstAttribute="bottom" secondItem="RDY-eo-rkC" secondAttribute="bottom" id="Ltd-Fg-D6j"/>
|
||||
<constraint firstItem="YDJ-OW-yab" firstAttribute="centerY" secondItem="eUd-z5-WmN" secondAttribute="centerY" id="RT0-9U-7kk"/>
|
||||
<constraint firstAttribute="bottom" secondItem="5Wh-aJ-q5B" secondAttribute="bottom" id="RmF-Tf-LK8"/>
|
||||
<constraint firstItem="RDY-eo-rkC" firstAttribute="leading" secondItem="eUd-z5-WmN" secondAttribute="leading" id="TRd-j8-oPD"/>
|
||||
<constraint firstItem="YDJ-OW-yab" firstAttribute="centerX" secondItem="eUd-z5-WmN" secondAttribute="centerX" id="nwx-Dr-l5f"/>
|
||||
<constraint firstAttribute="trailing" secondItem="5Wh-aJ-q5B" secondAttribute="trailing" id="tpp-2q-Itc"/>
|
||||
<constraint firstItem="RDY-eo-rkC" firstAttribute="top" secondItem="eUd-z5-WmN" secondAttribute="top" id="wrc-Md-fuI"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Theme2" translatesAutoresizingMaskIntoConstraints="NO" id="nAY-LD-xxC">
|
||||
<rect key="frame" x="140" y="0.0" width="100" height="160"/>
|
||||
</view>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HCH-H0-TUd">
|
||||
<rect key="frame" x="146" y="0.0" width="106" height="160"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Theme2" translatesAutoresizingMaskIntoConstraints="NO" id="nAY-LD-xxC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="160"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<view hidden="YES" alpha="0.59999999999999998" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="myZ-Rs-VkQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="160"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</view>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="CheckMark" translatesAutoresizingMaskIntoConstraints="NO" id="fAz-cu-AAI">
|
||||
<rect key="frame" x="38" y="65" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="H1e-nB-0w3"/>
|
||||
<constraint firstAttribute="width" secondItem="fAz-cu-AAI" secondAttribute="height" multiplier="1:1" id="icQ-6h-Jfx"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="nAY-LD-xxC" secondAttribute="trailing" id="0NW-SP-qrK"/>
|
||||
<constraint firstAttribute="bottom" secondItem="myZ-Rs-VkQ" secondAttribute="bottom" id="53F-Qt-aYq"/>
|
||||
<constraint firstItem="fAz-cu-AAI" firstAttribute="centerX" secondItem="HCH-H0-TUd" secondAttribute="centerX" id="KPv-1O-FCj"/>
|
||||
<constraint firstItem="fAz-cu-AAI" firstAttribute="centerY" secondItem="HCH-H0-TUd" secondAttribute="centerY" id="LDW-sM-802"/>
|
||||
<constraint firstItem="nAY-LD-xxC" firstAttribute="leading" secondItem="HCH-H0-TUd" secondAttribute="leading" id="OeM-vT-mON"/>
|
||||
<constraint firstAttribute="bottom" secondItem="nAY-LD-xxC" secondAttribute="bottom" id="YdS-Xt-OZx"/>
|
||||
<constraint firstItem="myZ-Rs-VkQ" firstAttribute="top" secondItem="HCH-H0-TUd" secondAttribute="top" id="ftw-kR-vez"/>
|
||||
<constraint firstItem="myZ-Rs-VkQ" firstAttribute="leading" secondItem="HCH-H0-TUd" secondAttribute="leading" id="rdY-Io-OYs"/>
|
||||
<constraint firstItem="nAY-LD-xxC" firstAttribute="top" secondItem="HCH-H0-TUd" secondAttribute="top" id="tEa-0V-TCS"/>
|
||||
<constraint firstAttribute="trailing" secondItem="myZ-Rs-VkQ" secondAttribute="trailing" id="ww3-V4-Rcm"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
</view>
|
||||
</subviews>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="20" bottom="0.0" right="20"/>
|
||||
</stackView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="17" translatesAutoresizingMaskIntoConstraints="NO" id="VRZ-To-5iq">
|
||||
<rect key="frame" x="25" y="496" width="260" height="80"/>
|
||||
<rect key="frame" x="25" y="496" width="295" height="80"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2Ss-sF-9JC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="260" height="0.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="0.5"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="0.5" id="vD2-0c-MGR"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="czq-AM-ets">
|
||||
<rect key="frame" x="0.0" y="17.5" width="260" height="45"/>
|
||||
<rect key="frame" x="0.0" y="17.5" width="295" height="45"/>
|
||||
<subviews>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="dR3-t9-4tw" customClass="CustomizableSegmentControl" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="230" height="46"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="265" height="46"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="S0T-Zr-FUt"/>
|
||||
</constraints>
|
||||
@@ -208,7 +271,7 @@
|
||||
<color key="selectedSegmentTintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</segmentedControl>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uY8-gn-7UA">
|
||||
<rect key="frame" x="230" y="0.0" width="30" height="45"/>
|
||||
<rect key="frame" x="265" y="0.0" width="30" height="45"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="LE3-he-Y3K"/>
|
||||
</constraints>
|
||||
@@ -216,7 +279,7 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5fV-UP-f4i">
|
||||
<rect key="frame" x="0.0" y="79.5" width="260" height="0.5"/>
|
||||
<rect key="frame" x="0.0" y="79.5" width="295" height="0.5"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="0.5" id="EFi-kk-SIB"/>
|
||||
@@ -225,7 +288,7 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="NlR-Il-Kw6">
|
||||
<rect key="frame" x="25" y="606" width="260" height="192"/>
|
||||
<rect key="frame" x="25" y="606" width="295" height="192"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="27K-dP-rLv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="105" height="32"/>
|
||||
@@ -265,17 +328,17 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="eEN-Gz-Lba">
|
||||
<rect key="frame" x="25" y="828" width="260" height="148"/>
|
||||
<rect key="frame" x="25" y="828" width="295" height="148"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kdd-R6-VSK">
|
||||
<rect key="frame" x="0.0" y="0.0" width="260" height="0.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="295" height="0.5"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="0.5" id="zNf-t1-EI9"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="0mL-Ab-I52">
|
||||
<rect key="frame" x="0.0" y="15.5" width="260" height="20"/>
|
||||
<rect key="frame" x="0.0" y="15.5" width="295" height="20"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="sgm-gC-aUu">
|
||||
<rect key="frame" x="0.0" y="0.0" width="255" height="20"/>
|
||||
@@ -309,14 +372,14 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Xs-es-ydw">
|
||||
<rect key="frame" x="0.0" y="50.5" width="260" height="0.5"/>
|
||||
<rect key="frame" x="0.0" y="50.5" width="295" height="0.5"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="0.5" id="yVw-Ap-vAS"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="ALy-fb-Zww">
|
||||
<rect key="frame" x="0.0" y="66" width="260" height="20"/>
|
||||
<rect key="frame" x="0.0" y="66" width="295" height="20"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DDe-vK-Hd2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="71" height="20"/>
|
||||
@@ -331,14 +394,14 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KGD-q6-IV3">
|
||||
<rect key="frame" x="0.0" y="101" width="260" height="0.5"/>
|
||||
<rect key="frame" x="0.0" y="101" width="295" height="0.5"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="0.5" id="qFj-5C-IvH"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" translatesAutoresizingMaskIntoConstraints="NO" id="8Nc-DS-Cyi">
|
||||
<rect key="frame" x="0.0" y="116.5" width="260" height="16"/>
|
||||
<rect key="frame" x="0.0" y="116.5" width="295" height="16"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WOKA Creations PVT LTD" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fMz-tw-JjQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="147" height="16"/>
|
||||
@@ -347,7 +410,7 @@
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="VER 25.5" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bOt-Ov-fli">
|
||||
<rect key="frame" x="213" y="0.0" width="47" height="16"/>
|
||||
<rect key="frame" x="248" y="0.0" width="47" height="16"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Medium" family="Exo 2" pointSize="12"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
@@ -355,7 +418,7 @@
|
||||
</subviews>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BZg-mG-X2p">
|
||||
<rect key="frame" x="0.0" y="147.5" width="260" height="0.5"/>
|
||||
<rect key="frame" x="0.0" y="147.5" width="295" height="0.5"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="0.5" id="jFf-2J-C4a"/>
|
||||
@@ -382,7 +445,7 @@
|
||||
<viewLayoutGuide key="safeArea" id="slh-HS-0OR"/>
|
||||
<color key="backgroundColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="iqc-o5-ovk" firstAttribute="width" secondItem="qHL-AI-7IP" secondAttribute="width" multiplier="0.724638" id="18H-xY-ShM"/>
|
||||
<constraint firstItem="iqc-o5-ovk" firstAttribute="width" secondItem="qHL-AI-7IP" secondAttribute="width" multiplier="0.809179" id="O0o-gL-bug"/>
|
||||
<constraint firstItem="NLo-Lc-0nk" firstAttribute="height" secondItem="qHL-AI-7IP" secondAttribute="height" multiplier="0.178571" id="ROH-9O-qFA"/>
|
||||
<constraint firstItem="iqc-o5-ovk" firstAttribute="top" secondItem="slh-HS-0OR" secondAttribute="top" id="SHa-dQ-wGm"/>
|
||||
<constraint firstItem="iqc-o5-ovk" firstAttribute="trailing" secondItem="slh-HS-0OR" secondAttribute="trailing" id="V31-3u-cFE"/>
|
||||
@@ -396,8 +459,12 @@
|
||||
<outlet property="languageControl" destination="dR3-t9-4tw" id="3Jd-0j-YA7"/>
|
||||
<outlet property="logoutBtn" destination="mCq-h5-pMf" id="bkx-Ld-3gQ"/>
|
||||
<outlet property="selectionMenuTrailingConstraint" destination="V31-3u-cFE" id="gJh-Kh-fu0"/>
|
||||
<outlet property="theme1" destination="5Wh-aJ-q5B" id="8pf-Kq-IZn"/>
|
||||
<outlet property="theme2" destination="nAY-LD-xxC" id="gfY-LN-cbJ"/>
|
||||
<outlet property="theme1" destination="eUd-z5-WmN" id="2jG-Ie-lWp"/>
|
||||
<outlet property="theme2" destination="HCH-H0-TUd" id="YU1-tv-J8j"/>
|
||||
<outlet property="themeOneCheckMark" destination="YDJ-OW-yab" id="gjk-WA-1yK"/>
|
||||
<outlet property="themeOneView" destination="RDY-eo-rkC" id="Sd6-48-7EG"/>
|
||||
<outlet property="themeTwoView" destination="myZ-Rs-VkQ" id="vlW-X8-kOY"/>
|
||||
<outlet property="themetwoCheckMark" destination="fAz-cu-AAI" id="LKC-y3-weu"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="WmS-PJ-wRh" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
@@ -423,7 +490,6 @@
|
||||
<rect key="frame" x="177" y="802" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="P1N-m9-rvT" secondAttribute="height" multiplier="1:1" id="P6m-5H-Mc0"/>
|
||||
<constraint firstAttribute="height" constant="60" id="nv6-1G-C4K"/>
|
||||
</constraints>
|
||||
<color key="tintColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
@@ -444,6 +510,7 @@
|
||||
<constraint firstItem="bkq-AU-CNT" firstAttribute="leading" secondItem="D79-Dn-2Pj" secondAttribute="leading" id="OuW-WU-gkg"/>
|
||||
<constraint firstItem="lxy-WU-CSd" firstAttribute="leading" secondItem="D79-Dn-2Pj" secondAttribute="leading" id="cxe-Gq-rhA"/>
|
||||
<constraint firstItem="P1N-m9-rvT" firstAttribute="centerX" secondItem="D79-Dn-2Pj" secondAttribute="centerX" id="kWw-aG-YDa"/>
|
||||
<constraint firstItem="P1N-m9-rvT" firstAttribute="height" secondItem="HLg-jy-523" secondAttribute="height" multiplier="0.0669643" id="sh2-E1-RKO"/>
|
||||
<constraint firstItem="bkq-AU-CNT" firstAttribute="top" secondItem="HLg-jy-523" secondAttribute="top" id="v3g-LP-cO8"/>
|
||||
<constraint firstItem="lxy-WU-CSd" firstAttribute="trailing" secondItem="D79-Dn-2Pj" secondAttribute="trailing" id="yjV-xh-53r"/>
|
||||
<constraint firstItem="bkq-AU-CNT" firstAttribute="trailing" secondItem="D79-Dn-2Pj" secondAttribute="trailing" id="z17-Q6-WjV"/>
|
||||
@@ -569,6 +636,7 @@
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="CheckMark" width="48" height="48"/>
|
||||
<image name="CloseIcon" width="61.333332061767578" height="61.333332061767578"/>
|
||||
<image name="ExploreWoka" width="36.5" height="25"/>
|
||||
<image name="HeartIcon" width="26.5" height="26.5"/>
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
//
|
||||
// SideMenuVM.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 21/05/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class SideMenuVM{
|
||||
|
||||
weak var vc : SideMenuVC!
|
||||
|
||||
func initView(){
|
||||
customizeSegmentControl()
|
||||
|
||||
let color1 = #colorLiteral(red: 0.144693464, green: 0.1426281333, blue: 0.6686832905, alpha: 1)
|
||||
let color2 = #colorLiteral(red: 0.6901960784, green: 0.2745098039, blue: 0.7568627451, alpha: 1)
|
||||
vc.logoutBtn.applyGradient(colors: [color1, color2], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0.8, y: 0))
|
||||
vc.logoutBtn.layer.cornerRadius = vc.logoutBtn.frame.height / 2
|
||||
|
||||
// Adding the trailing constriant to make the view appeared center when expanded
|
||||
let sidemenuBasicConfiguration = SideMenuController.preferences.basic
|
||||
let showPlaceTableOnLeft = (sidemenuBasicConfiguration.position == .under) != (sidemenuBasicConfiguration.direction == .right)
|
||||
if showPlaceTableOnLeft {
|
||||
vc.selectionMenuTrailingConstraint.constant = SideMenuController.preferences.basic.menuWidth - vc.view.frame.width
|
||||
}
|
||||
|
||||
// Add border to theme
|
||||
|
||||
vc.theme1.addBorderView(width: 1.5, color: UIColor.white)
|
||||
vc.theme2.addBorderView(width: 1.5, color: UIColor.white)
|
||||
|
||||
vc.theme1.addTapGesture {
|
||||
print("ss")
|
||||
}
|
||||
|
||||
vc.theme1.addTapGesture {
|
||||
print("ss")
|
||||
}
|
||||
}
|
||||
|
||||
private func customizeSegmentControl(){
|
||||
// Customize Segment Control
|
||||
vc.languageControl.layer.cornerRadius = vc.languageControl.layer.frame.height / 2
|
||||
vc.languageControl.layer.masksToBounds = true
|
||||
vc.languageControl.clipsToBounds = true
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -76,7 +76,8 @@ extension AppDelegate {
|
||||
// MARK: - Configure Sidebar
|
||||
|
||||
final private func configureSideBar(){
|
||||
SideMenuController.preferences.basic.menuWidth = UIScreen.main.bounds.width - 114
|
||||
SideMenuController.preferences.basic.menuWidth = UIScreen.main.bounds.width - 79
|
||||
SideMenuController.preferences.animation.shadowAlpha = 0.5
|
||||
SideMenuController.preferences.basic.direction = .right
|
||||
SideMenuController.preferences.basic.enableRubberEffectWhenPanning = true
|
||||
SideMenuController.preferences.basic.position = .above
|
||||
|
||||
@@ -24,6 +24,8 @@ class AuthFunc{
|
||||
var authID = String()
|
||||
var authPass = String()
|
||||
|
||||
var selectedTheme = ThemeSelect.theme1
|
||||
|
||||
//This is temporary variable. Make it emtpy when the registration is finished.
|
||||
var regData = UserRegPostModel()
|
||||
|
||||
@@ -55,6 +57,14 @@ class AuthFunc{
|
||||
authPass = pass
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
This func will remove the selected userdefaults while logout
|
||||
*/
|
||||
func logout(){
|
||||
//Reset Theme to defaults
|
||||
UserDefaults.standard.setValue(nil, forKey: K.UserDefaultsStruct.themeDefault)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Language Enum
|
||||
|
||||
@@ -17,7 +17,8 @@ extension AuthFunc{
|
||||
color1: #colorLiteral(red: 0.6509803922, green: 0.8862745098, blue: 0.8196078431, alpha: 1),
|
||||
color2: #colorLiteral(red: 0.9529411765, green: 0.9843137255, blue: 0.7137254902, alpha: 1),
|
||||
grass: "HomeGrassDay",
|
||||
textColor : UIColor.appColor(.TextDarkBlue)!
|
||||
textColor : UIColor.appColor(.TextDarkBlue)!,
|
||||
dayCycle: .morning
|
||||
)
|
||||
|
||||
let afternoon = TimePeriod.afternoon(
|
||||
@@ -26,7 +27,8 @@ extension AuthFunc{
|
||||
color1: #colorLiteral(red: 0.1333333333, green: 0.7294117647, blue: 0.9960784314, alpha: 1),
|
||||
color2: #colorLiteral(red: 0.5921568627, green: 0.9098039216, blue: 0.9960784314, alpha: 1),
|
||||
grass: "HomeGrassDay",
|
||||
textColor : UIColor.appColor(.TextDarkBlue)!
|
||||
textColor : UIColor.appColor(.TextDarkBlue)!,
|
||||
dayCycle: .afternoon
|
||||
)
|
||||
|
||||
let evening = TimePeriod.evening(
|
||||
@@ -35,7 +37,8 @@ extension AuthFunc{
|
||||
color1: #colorLiteral(red: 0.8196078431, green: 0.3333333333, blue: 0.4705882353, alpha: 1),
|
||||
color2: #colorLiteral(red: 1, green: 0.7764705882, blue: 0.4, alpha: 1),
|
||||
grass: "HomeGrassDay",
|
||||
textColor : UIColor.appColor(.TextDarkBlue)!
|
||||
textColor : UIColor.white,
|
||||
dayCycle: .evening
|
||||
)
|
||||
|
||||
let night = TimePeriod.night(
|
||||
@@ -44,7 +47,8 @@ extension AuthFunc{
|
||||
color1: #colorLiteral(red: 0.2705882353, green: 0.2156862745, blue: 0.5176470588, alpha: 1),
|
||||
color2: #colorLiteral(red: 0.3764705882, green: 0.3803921569, blue: 0.7843137255, alpha: 1),
|
||||
grass: "HomeGrassNight",
|
||||
textColor : UIColor.white
|
||||
textColor : UIColor.white,
|
||||
dayCycle: .night
|
||||
)
|
||||
|
||||
self.timePeriods = [morning,afternoon,evening,night]
|
||||
|
||||
@@ -34,5 +34,15 @@ class SplashVM{
|
||||
vc.englishBtn.applyGradient(colors: [color1, color2], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 0.8))
|
||||
vc.hindiBtn.roundCorner()
|
||||
vc.englishBtn.roundCorner()
|
||||
selectTheme()
|
||||
}
|
||||
|
||||
func selectTheme(){
|
||||
let theme = UserDefaults.standard.string(forKey: K.UserDefaultsStruct.themeDefault)
|
||||
if theme != nil{
|
||||
(theme == ThemeSelect.theme1.rawValue) ? (AuthFunc.shareInstance.selectedTheme = .theme1) : (AuthFunc.shareInstance.selectedTheme = .theme2)
|
||||
}else{
|
||||
AuthFunc.shareInstance.selectedTheme = .theme1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
41
WOKA/TabBar & SideMenu/Controller/SideMenuVC.swift
Normal file
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// SideMenuVC.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 21/05/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class SideMenuVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var logoutBtn: UIButton!
|
||||
@IBOutlet weak var selectionMenuTrailingConstraint: NSLayoutConstraint!
|
||||
@IBOutlet weak var languageControl: CustomizableSegmentControl!
|
||||
|
||||
@IBOutlet weak var theme1: UIView!
|
||||
@IBOutlet weak var theme2: UIView!
|
||||
|
||||
//Theme Select Outlets
|
||||
@IBOutlet weak var themeOneView: UIView!
|
||||
@IBOutlet weak var themeOneCheckMark: UIImageView!
|
||||
@IBOutlet weak var themeTwoView: UIView!
|
||||
@IBOutlet weak var themetwoCheckMark: UIImageView!
|
||||
|
||||
|
||||
var vm = SideMenuVM()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
vm.vc = self
|
||||
vm.initView()
|
||||
}
|
||||
|
||||
override func viewDidLayoutSubviews() {
|
||||
vm.themeSelect()
|
||||
}
|
||||
|
||||
@IBAction func closeBtnTapped(_ sender: UIButton) {
|
||||
self.sideMenuController?.hideMenu()
|
||||
}
|
||||
}
|
||||
@@ -18,22 +18,19 @@ class TabBarVC: UITabBarController {
|
||||
self.delegate = self
|
||||
customizeTabBarItemFont()
|
||||
|
||||
// UITabBar.appearance().tintColor = #colorLiteral(red: 0.0349480696, green: 0.0643344149, blue: 0.4407724142, alpha: 1)
|
||||
//// UITabBar.appearance().unselectedItemTintColor = #colorLiteral(red: 0.0349480696, green: 0.0643344149, blue: 0.4407724142, alpha: 1)
|
||||
// UITabBar.appearance().unselectedItemTintColor = #colorLiteral(red: 0.501960814, green: 0.501960814, blue: 0.501960814, alpha: 1)
|
||||
|
||||
self.setupTabBarUI()
|
||||
self.addCustomTabBarView()
|
||||
|
||||
}
|
||||
|
||||
override func viewDidLayoutSubviews() {
|
||||
super.viewDidLayoutSubviews()
|
||||
if hasTopNotch{
|
||||
tabBar.frame.size.height = 95
|
||||
tabBar.frame.origin.y = view.frame.height - 95
|
||||
tabBar.frame.size.height = 90
|
||||
tabBar.frame.origin.y = view.frame.height - 90
|
||||
}else{
|
||||
tabBar.frame.size.height = 80
|
||||
tabBar.frame.origin.y = view.frame.height - 80
|
||||
tabBar.frame.size.height = 60
|
||||
tabBar.frame.origin.y = view.frame.height - 60
|
||||
}
|
||||
|
||||
}
|
||||
@@ -200,10 +200,6 @@ open class SideMenuController: UIViewController {
|
||||
|
||||
configureGesturesRecognizer()
|
||||
setUpNotifications()
|
||||
|
||||
// sideMenuController?.cache(viewController: SideMenuVC(), with: "second")
|
||||
// sideMenuController?.cache(viewController: TabBarVC(), with: "second")
|
||||
|
||||
}
|
||||
|
||||
private func resolveDirection(with view: UIView) {
|
||||
|
||||
86
WOKA/TabBar & SideMenu/ViewModel/SideMenuVM.swift
Normal file
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// SideMenuVM.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 21/05/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class SideMenuVM{
|
||||
|
||||
weak var vc : SideMenuVC!
|
||||
|
||||
func initView(){
|
||||
customizeSegmentControl()
|
||||
|
||||
let color1 = #colorLiteral(red: 0.144693464, green: 0.1426281333, blue: 0.6686832905, alpha: 1)
|
||||
let color2 = #colorLiteral(red: 0.6901960784, green: 0.2745098039, blue: 0.7568627451, alpha: 1)
|
||||
vc.logoutBtn.applyGradient(colors: [color1, color2], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0.8, y: 0))
|
||||
vc.logoutBtn.layer.cornerRadius = vc.logoutBtn.frame.height / 2
|
||||
|
||||
// Adding the trailing constriant to make the view appeared center when expanded
|
||||
let sidemenuBasicConfiguration = SideMenuController.preferences.basic
|
||||
let showPlaceTableOnLeft = (sidemenuBasicConfiguration.position == .under) != (sidemenuBasicConfiguration.direction == .right)
|
||||
if showPlaceTableOnLeft {
|
||||
vc.selectionMenuTrailingConstraint.constant = SideMenuController.preferences.basic.menuWidth - vc.view.frame.width
|
||||
}
|
||||
|
||||
// Add border to theme
|
||||
|
||||
vc.theme1.addBorderView(width: 1.5, color: UIColor.white)
|
||||
vc.theme2.addBorderView(width: 1.5, color: UIColor.white)
|
||||
|
||||
vc.theme1.addTapGesture { [weak self] in
|
||||
UserDefaults.standard.setValue(ThemeSelect.theme1.rawValue, forKey: K.UserDefaultsStruct.themeDefault)
|
||||
AuthFunc.shareInstance.selectedTheme = .theme1
|
||||
guard let self else {return}
|
||||
ViewButtonAnimation.sharedInstance.btnTapped(in: self.vc, view: vc.theme1) {
|
||||
|
||||
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.reloadTheme), object: nil, userInfo: nil)
|
||||
self.themeSelect()
|
||||
}
|
||||
}
|
||||
|
||||
vc.theme2.addTapGesture { [weak self] in
|
||||
UserDefaults.standard.setValue(ThemeSelect.theme2.rawValue, forKey: K.UserDefaultsStruct.themeDefault)
|
||||
AuthFunc.shareInstance.selectedTheme = .theme2
|
||||
guard let self else {return}
|
||||
ViewButtonAnimation.sharedInstance.btnTapped(in: self.vc, view: vc.theme2) {
|
||||
NotificationCenter.default.post(name: NSNotification.Name(K.NotificationCenterReloads.reloadTheme), object: nil, userInfo: nil)
|
||||
self.themeSelect()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func themeSelect(){
|
||||
switch AuthFunc.shareInstance.selectedTheme {
|
||||
case .theme1:
|
||||
//Show theme 1 selected
|
||||
vc.themeOneView.isHidden = false
|
||||
vc.themeOneCheckMark.isHidden = false
|
||||
|
||||
// remove theme 2 selection
|
||||
vc.themeTwoView.isHidden = true
|
||||
vc.themetwoCheckMark.isHidden = true
|
||||
case .theme2:
|
||||
//Show theme 2 selected
|
||||
vc.themeTwoView.isHidden = false
|
||||
vc.themetwoCheckMark.isHidden = false
|
||||
|
||||
// remove theme 1 selection
|
||||
vc.themeOneView.isHidden = true
|
||||
vc.themeOneCheckMark.isHidden = true
|
||||
}
|
||||
self.vc.sideMenuController?.hideMenu()
|
||||
}
|
||||
|
||||
private func customizeSegmentControl(){
|
||||
// Customize Segment Control
|
||||
vc.languageControl.layer.cornerRadius = vc.languageControl.layer.frame.height / 2
|
||||
vc.languageControl.layer.masksToBounds = true
|
||||
vc.languageControl.clipsToBounds = true
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -20,6 +20,7 @@ class ThemeOneVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var webSeriesView: UIStackView!
|
||||
@IBOutlet var star: [UIImageView]!
|
||||
@IBOutlet weak var moonImage: UIImageView!
|
||||
|
||||
var timer: Timer?
|
||||
|
||||
@@ -29,8 +30,14 @@ class ThemeOneVC: UIViewController {
|
||||
|
||||
deinit{
|
||||
timer?.invalidate()
|
||||
// Removing observers
|
||||
NotificationCenter.default.removeObserver(self, name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
NotificationCenter.default.removeObserver(self, name: UIApplication.willEnterForegroundNotification, object: nil)
|
||||
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: K.NotificationCenterReloads.reloadTheme), object: nil)
|
||||
}
|
||||
|
||||
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
vm.vc = self
|
||||
|
||||
@@ -13,8 +13,16 @@ class ThemeTwoVC: UIViewController {
|
||||
@IBOutlet weak var collectionView: UICollectionView!
|
||||
@IBOutlet weak var liveTvView: UIView!
|
||||
|
||||
var vm = ThemeTwoVM()
|
||||
|
||||
deinit{
|
||||
NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: K.NotificationCenterReloads.reloadTheme), object: nil)
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
vm.vc = self
|
||||
vm.initView()
|
||||
liveTvView.addTapGesture { [weak self] in
|
||||
guard let self else{return}
|
||||
delegate?.didPressSwitchButton(from: self)
|
||||
@@ -27,10 +35,48 @@ class ThemeTwoVC: UIViewController {
|
||||
|
||||
}
|
||||
|
||||
//extension ThemeTwoVC : CollectionViewSRC{
|
||||
// func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||||
// <#code#>
|
||||
// MARK: - CollectionView DataSource Delegate
|
||||
|
||||
extension ThemeTwoVC : CollectionViewSRC{
|
||||
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
|
||||
vm.cellData.count
|
||||
}
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||||
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: K.CellIdentifier.Theme.homeExploreCell, for: indexPath) as! HomeExploreCell
|
||||
cell.setData(image: vm.cellData[indexPath.row])
|
||||
return cell
|
||||
}
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
|
||||
print(indexPath.row)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Collection Flow Layout
|
||||
|
||||
extension ThemeTwoVC : UICollectionViewDelegateFlowLayout{
|
||||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
|
||||
return 5
|
||||
}
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
|
||||
return 5
|
||||
}
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
|
||||
return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5)
|
||||
}
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
|
||||
let itemsPerRow: CGFloat = 3
|
||||
let paddingSpace = 5 * (itemsPerRow + 1)
|
||||
let availableWidth = collectionView.frame.width - paddingSpace
|
||||
let widthPerItem = availableWidth / itemsPerRow
|
||||
return CGSize(width: widthPerItem, height: widthPerItem + (widthPerItem / 6))
|
||||
}
|
||||
|
||||
// func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
|
||||
// return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5)
|
||||
// }
|
||||
//
|
||||
//
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -8,24 +8,24 @@
|
||||
import UIKit
|
||||
|
||||
// Enumeration representing different periods of the day, each with a start time, end time, and two colors.
|
||||
enum TimePeriod : Equatable{
|
||||
enum TimePeriod: Equatable {
|
||||
// Enumeration cases for different periods of the day with associated values.
|
||||
case morning(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
|
||||
case afternoon(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
|
||||
case evening(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
|
||||
case night(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
|
||||
case morning(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor, dayCycle: DayCycle)
|
||||
case afternoon(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor, dayCycle: DayCycle)
|
||||
case evening(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor, dayCycle: DayCycle)
|
||||
case night(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor, dayCycle: DayCycle)
|
||||
|
||||
// Computed property to get the details of each time period as a tuple.
|
||||
var details: (startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor) {
|
||||
var details: (startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor, dayCycle: DayCycle) {
|
||||
switch self {
|
||||
case .morning(let startTime, let endTime, let color1, let color2, let grass, let textColor):
|
||||
return (startTime, endTime, color1, color2, grass, textColor)
|
||||
case .afternoon(let startTime, let endTime, let color1, let color2, let grass, let textColor):
|
||||
return (startTime, endTime, color1, color2, grass, textColor)
|
||||
case .evening(let startTime, let endTime, let color1, let color2, let grass, let textColor):
|
||||
return (startTime, endTime, color1, color2, grass, textColor)
|
||||
case .night(let startTime, let endTime, let color1, let color2, let grass, let textColor):
|
||||
return (startTime, endTime, color1, color2, grass, textColor)
|
||||
case .morning(let startTime, let endTime, let color1, let color2, let grass, let textColor, let dayCycle):
|
||||
return (startTime, endTime, color1, color2, grass, textColor, dayCycle)
|
||||
case .afternoon(let startTime, let endTime, let color1, let color2, let grass, let textColor, let dayCycle):
|
||||
return (startTime, endTime, color1, color2, grass, textColor, dayCycle)
|
||||
case .evening(let startTime, let endTime, let color1, let color2, let grass, let textColor, let dayCycle):
|
||||
return (startTime, endTime, color1, color2, grass, textColor, dayCycle)
|
||||
case .night(let startTime, let endTime, let color1, let color2, let grass, let textColor, let dayCycle):
|
||||
return (startTime, endTime, color1, color2, grass, textColor, dayCycle)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,11 +42,11 @@ enum TimePeriod : Equatable{
|
||||
// Equatable protocol conformance to compare two TimePeriod instances.
|
||||
static func ==(lhs: TimePeriod, rhs: TimePeriod) -> Bool {
|
||||
switch (lhs, rhs) {
|
||||
case let (.morning(startTime1, endTime1, color11, color12, grass1, textColor1), .morning(startTime2, endTime2, color21, color22, grass2, textColor2)),
|
||||
let (.afternoon(startTime1, endTime1, color11, color12, grass1, textColor1), .afternoon(startTime2, endTime2, color21, color22, grass2, textColor2)),
|
||||
let (.evening(startTime1, endTime1, color11, color12, grass1, textColor1), .evening(startTime2, endTime2, color21, color22, grass2, textColor2)),
|
||||
let (.night(startTime1, endTime1, color11, color12, grass1, textColor1), .night(startTime2, endTime2, color21, color22, grass2, textColor2)):
|
||||
return startTime1 == startTime2 && endTime1 == endTime2 && color11 == color21 && color12 == color22 && grass1 == grass2 && textColor1 == textColor2
|
||||
case let (.morning(startTime1, endTime1, color11, color12, grass1, textColor1, dayCycle1), .morning(startTime2, endTime2, color21, color22, grass2, textColor2, dayCycle2)),
|
||||
let (.afternoon(startTime1, endTime1, color11, color12, grass1, textColor1, dayCycle1), .afternoon(startTime2, endTime2, color21, color22, grass2, textColor2, dayCycle2)),
|
||||
let (.evening(startTime1, endTime1, color11, color12, grass1, textColor1, dayCycle1), .evening(startTime2, endTime2, color21, color22, grass2, textColor2, dayCycle2)),
|
||||
let (.night(startTime1, endTime1, color11, color12, grass1, textColor1, dayCycle1), .night(startTime2, endTime2, color21, color22, grass2, textColor2, dayCycle2)):
|
||||
return startTime1 == startTime2 && endTime1 == endTime2 && color11 == color21 && color12 == color22 && grass1 == grass2 && textColor1 == textColor2 && dayCycle1 == dayCycle2
|
||||
default:
|
||||
return false
|
||||
}
|
||||
@@ -78,3 +78,11 @@ enum TimePeriod : Equatable{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
enum DayCycle{
|
||||
case morning
|
||||
case afternoon
|
||||
case evening
|
||||
case night
|
||||
}
|
||||
@@ -29,27 +29,35 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="393" height="532.66666666666663"/>
|
||||
<color key="backgroundColor" red="0.34901960780000002" green="0.81568627449999997" blue="0.99607843139999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="s5k-HV-Zkc">
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="s5k-HV-Zkc">
|
||||
<rect key="frame" x="101" y="74.333333333333329" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="40" id="T5w-0w-VHk"/>
|
||||
<constraint firstAttribute="height" constant="40" id="ijF-vI-jb7"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="XTn-ID-1Yb">
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="XTn-ID-1Yb">
|
||||
<rect key="frame" x="20" y="225" width="30" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="Kjd-Nt-Asn"/>
|
||||
<constraint firstAttribute="width" secondItem="XTn-ID-1Yb" secondAttribute="height" multiplier="1:1" id="WO6-Ed-Yfd"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="U1W-OZ-7vR">
|
||||
<rect key="frame" x="184" y="374" width="25" height="25"/>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="U1W-OZ-7vR">
|
||||
<rect key="frame" x="184" y="377" width="25" height="25"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="U1W-OZ-7vR" secondAttribute="height" multiplier="1:1" id="PvJ-97-UfQ"/>
|
||||
<constraint firstAttribute="height" constant="25" id="vTp-0T-OjL"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Moon" translatesAutoresizingMaskIntoConstraints="NO" id="Jbf-Kl-35X">
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star" translatesAutoresizingMaskIntoConstraints="NO" id="t3E-Cj-I2d">
|
||||
<rect key="frame" x="268" y="415.66666666666669" width="20" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="20" id="8f0-Kf-opP"/>
|
||||
<constraint firstAttribute="width" secondItem="t3E-Cj-I2d" secondAttribute="height" multiplier="1:1" id="bWZ-b9-ckU"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Moon" translatesAutoresizingMaskIntoConstraints="NO" id="Jbf-Kl-35X">
|
||||
<rect key="frame" x="293" y="175" width="70" height="100"/>
|
||||
<color key="tintColor" red="0.59309977107359713" green="0.60037522820196854" blue="0.93852707153973092" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
@@ -85,6 +93,39 @@
|
||||
</label>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xgH-t8-LiX" userLabel="GrassCloudView">
|
||||
<rect key="frame" x="0.0" y="392" width="393" height="460"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Cloud1" translatesAutoresizingMaskIntoConstraints="NO" id="hnb-h6-Rgs" userLabel="LightCloud">
|
||||
<rect key="frame" x="-183.66666666666666" y="-50" width="760.33333333333337" height="180"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="760" id="R0a-7m-o4f"/>
|
||||
<constraint firstAttribute="height" constant="180" id="laa-aE-ve4"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Cloud2" translatesAutoresizingMaskIntoConstraints="NO" id="lMA-vm-xCk" userLabel="DenseCloud">
|
||||
<rect key="frame" x="-183.66666666666666" y="13" width="760.33333333333337" height="154"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="154" id="0Dz-kQ-2bb"/>
|
||||
<constraint firstAttribute="width" constant="760" id="teJ-X3-Yjs"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HomeGrassDay" translatesAutoresizingMaskIntoConstraints="NO" id="bNd-CB-wx1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="393" height="460"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="lMA-vm-xCk" firstAttribute="centerX" secondItem="xgH-t8-LiX" secondAttribute="centerX" id="7h7-Ex-TCx"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bNd-CB-wx1" secondAttribute="trailing" id="CPG-40-ajT"/>
|
||||
<constraint firstItem="bNd-CB-wx1" firstAttribute="top" secondItem="xgH-t8-LiX" secondAttribute="top" id="MJg-64-lcd"/>
|
||||
<constraint firstItem="lMA-vm-xCk" firstAttribute="top" secondItem="xgH-t8-LiX" secondAttribute="top" constant="13" id="NQL-bt-Gqw"/>
|
||||
<constraint firstItem="hnb-h6-Rgs" firstAttribute="top" secondItem="xgH-t8-LiX" secondAttribute="top" constant="-50" id="Rod-zu-LQ6"/>
|
||||
<constraint firstItem="bNd-CB-wx1" firstAttribute="leading" secondItem="xgH-t8-LiX" secondAttribute="leading" id="kHa-Rp-Whd"/>
|
||||
<constraint firstItem="hnb-h6-Rgs" firstAttribute="centerX" secondItem="xgH-t8-LiX" secondAttribute="centerX" id="m6c-e5-dms"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bNd-CB-wx1" secondAttribute="bottom" id="z1s-rg-Wln"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kzE-UE-7KK">
|
||||
<rect key="frame" x="98.666666666666671" y="195" width="195.66666666666663" height="180.66666666666663"/>
|
||||
<subviews>
|
||||
@@ -133,39 +174,6 @@
|
||||
<action selector="barButtonTapped:" destination="VXi-XB-hOy" eventType="touchUpInside" id="wHk-vO-OlX"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xgH-t8-LiX" userLabel="GrassCloudView">
|
||||
<rect key="frame" x="0.0" y="404" width="393" height="448"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Cloud1" translatesAutoresizingMaskIntoConstraints="NO" id="hnb-h6-Rgs" userLabel="LightCloud">
|
||||
<rect key="frame" x="-183.66666666666666" y="-50" width="760.33333333333337" height="180"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="760" id="R0a-7m-o4f"/>
|
||||
<constraint firstAttribute="height" constant="180" id="laa-aE-ve4"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Cloud2" translatesAutoresizingMaskIntoConstraints="NO" id="lMA-vm-xCk" userLabel="DenseCloud">
|
||||
<rect key="frame" x="-183.66666666666666" y="13" width="760.33333333333337" height="154"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="154" id="0Dz-kQ-2bb"/>
|
||||
<constraint firstAttribute="width" constant="760" id="teJ-X3-Yjs"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HomeGrassDay" translatesAutoresizingMaskIntoConstraints="NO" id="bNd-CB-wx1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="393" height="448"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="lMA-vm-xCk" firstAttribute="centerX" secondItem="xgH-t8-LiX" secondAttribute="centerX" id="7h7-Ex-TCx"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bNd-CB-wx1" secondAttribute="trailing" id="CPG-40-ajT"/>
|
||||
<constraint firstItem="bNd-CB-wx1" firstAttribute="top" secondItem="xgH-t8-LiX" secondAttribute="top" id="MJg-64-lcd"/>
|
||||
<constraint firstItem="lMA-vm-xCk" firstAttribute="top" secondItem="xgH-t8-LiX" secondAttribute="top" constant="13" id="NQL-bt-Gqw"/>
|
||||
<constraint firstItem="hnb-h6-Rgs" firstAttribute="top" secondItem="xgH-t8-LiX" secondAttribute="top" constant="-50" id="Rod-zu-LQ6"/>
|
||||
<constraint firstItem="bNd-CB-wx1" firstAttribute="leading" secondItem="xgH-t8-LiX" secondAttribute="leading" id="kHa-Rp-Whd"/>
|
||||
<constraint firstItem="hnb-h6-Rgs" firstAttribute="centerX" secondItem="xgH-t8-LiX" secondAttribute="centerX" id="m6c-e5-dms"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bNd-CB-wx1" secondAttribute="bottom" id="z1s-rg-Wln"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ppi-HI-rj1" userLabel="IconView">
|
||||
<rect key="frame" x="0.0" y="395.66666666666674" width="393" height="456.33333333333326"/>
|
||||
<subviews>
|
||||
@@ -190,7 +198,7 @@
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="lRy-nX-Xia" userLabel="LiveTV">
|
||||
<rect key="frame" x="149" y="72.333333333333314" width="95" height="95"/>
|
||||
<rect key="frame" x="149" y="52.333333333333314" width="95" height="95"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="LiveTV" translatesAutoresizingMaskIntoConstraints="NO" id="LoO-Qh-9ci">
|
||||
<rect key="frame" x="0.0" y="0.0" width="95" height="79"/>
|
||||
@@ -210,7 +218,7 @@
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="Sp0-yh-bdj" userLabel="WebSeries">
|
||||
<rect key="frame" x="10" y="82.333333333333314" width="95" height="95"/>
|
||||
<rect key="frame" x="10" y="77.333333333333314" width="95" height="95"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="WebSeries" translatesAutoresizingMaskIntoConstraints="NO" id="LGm-UX-yVh">
|
||||
<rect key="frame" x="0.0" y="0.0" width="95" height="79"/>
|
||||
@@ -230,7 +238,7 @@
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="r88-JP-phS" userLabel="Games">
|
||||
<rect key="frame" x="298" y="154.99999999999994" width="95" height="95"/>
|
||||
<rect key="frame" x="298" y="134.99999999999994" width="95" height="95"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Games" translatesAutoresizingMaskIntoConstraints="NO" id="rhc-kY-sTl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="95" height="79"/>
|
||||
@@ -250,7 +258,7 @@
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="JHO-R6-WGZ" userLabel="Audio Books">
|
||||
<rect key="frame" x="169.33333333333334" y="222.33333333333334" width="114.33333333333334" height="95.333333333333343"/>
|
||||
<rect key="frame" x="169.33333333333334" y="202.33333333333331" width="114.33333333333334" height="95.333333333333314"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="AudioBooks" translatesAutoresizingMaskIntoConstraints="NO" id="za2-oW-KjU">
|
||||
<rect key="frame" x="0.0" y="0.0" width="114.33333333333333" height="79.333333333333329"/>
|
||||
@@ -270,7 +278,7 @@
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="9fz-vc-Ufb" userLabel="Karaoke">
|
||||
<rect key="frame" x="14.333333333333336" y="212.33333333333334" width="95" height="95.333333333333343"/>
|
||||
<rect key="frame" x="14.333333333333336" y="192.33333333333331" width="95" height="95.333333333333314"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Karaoke" translatesAutoresizingMaskIntoConstraints="NO" id="DWF-Lu-F24">
|
||||
<rect key="frame" x="0.0" y="0.0" width="95" height="79.333333333333329"/>
|
||||
@@ -293,9 +301,9 @@
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="r88-JP-phS" firstAttribute="height" secondItem="ppi-HI-rj1" secondAttribute="height" multiplier="0.208333" id="0sg-36-CK8"/>
|
||||
<constraint firstItem="Sp0-yh-bdj" firstAttribute="centerY" secondItem="lRy-nX-Xia" secondAttribute="centerY" constant="10" id="3t3-nm-6LF"/>
|
||||
<constraint firstItem="Ehe-Th-asW" firstAttribute="baseline" secondItem="lRy-nX-Xia" secondAttribute="firstBaseline" constant="20" id="6HI-BQ-pxx"/>
|
||||
<constraint firstItem="r88-JP-phS" firstAttribute="top" secondItem="Ehe-Th-asW" secondAttribute="bottom" constant="60" id="6wM-Ss-Lui"/>
|
||||
<constraint firstItem="Sp0-yh-bdj" firstAttribute="centerY" secondItem="lRy-nX-Xia" secondAttribute="centerY" constant="25" id="3t3-nm-6LF"/>
|
||||
<constraint firstItem="Ehe-Th-asW" firstAttribute="baseline" secondItem="lRy-nX-Xia" secondAttribute="firstBaseline" constant="40" id="6HI-BQ-pxx"/>
|
||||
<constraint firstItem="r88-JP-phS" firstAttribute="top" secondItem="Ehe-Th-asW" secondAttribute="bottom" constant="40" id="6wM-Ss-Lui"/>
|
||||
<constraint firstItem="JHO-R6-WGZ" firstAttribute="centerX" secondItem="lRy-nX-Xia" secondAttribute="centerX" constant="30" id="KjY-SZ-e5Z"/>
|
||||
<constraint firstItem="r88-JP-phS" firstAttribute="centerX" secondItem="Ehe-Th-asW" secondAttribute="centerX" constant="10" id="M0G-TU-M2T"/>
|
||||
<constraint firstItem="9fz-vc-Ufb" firstAttribute="height" secondItem="ppi-HI-rj1" secondAttribute="height" multiplier="0.208333" id="RjE-7v-VJf"/>
|
||||
@@ -312,11 +320,31 @@
|
||||
<constraint firstItem="JHO-R6-WGZ" firstAttribute="height" secondItem="ppi-HI-rj1" secondAttribute="height" multiplier="0.208333" id="z24-hh-k41"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="-2" translatesAutoresizingMaskIntoConstraints="NO" id="LYo-Uy-0nM" userLabel="More">
|
||||
<rect key="frame" x="162.66666666666666" y="758" width="67.666666666666657" height="45"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BottomArrow" translatesAutoresizingMaskIntoConstraints="NO" id="rdd-P1-Vk7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="67.666666666666671" height="32.333333333333336"/>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" text="MORE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4pq-lE-hJz">
|
||||
<rect key="frame" x="0.0" y="30.333333333333375" width="67.666666666666671" height="14.666666666666668"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="12"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="45" id="0hL-tE-AiW"/>
|
||||
<constraint firstAttribute="width" secondItem="LYo-Uy-0nM" secondAttribute="height" multiplier="1.5:1" id="sgf-5C-jmD"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="vdl-cu-G32"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="t3E-Cj-I2d" firstAttribute="top" secondItem="ppi-HI-rj1" secondAttribute="top" constant="20" id="0ma-6s-cY3"/>
|
||||
<constraint firstItem="Ehe-Th-asW" firstAttribute="leading" secondItem="t3E-Cj-I2d" secondAttribute="trailing" id="1lg-KO-GFR"/>
|
||||
<constraint firstItem="jdZ-WQ-xcr" firstAttribute="trailing" secondItem="vdl-cu-G32" secondAttribute="trailing" id="1om-dS-PtT"/>
|
||||
<constraint firstItem="kzE-UE-7KK" firstAttribute="top" secondItem="sf9-me-n7i" secondAttribute="bottom" constant="30" id="2cv-dI-9b7"/>
|
||||
<constraint firstItem="xgH-t8-LiX" firstAttribute="trailing" secondItem="vdl-cu-G32" secondAttribute="trailing" id="55h-eD-07b"/>
|
||||
@@ -326,25 +354,26 @@
|
||||
<constraint firstItem="vdl-cu-G32" firstAttribute="trailing" secondItem="b3F-hf-9c8" secondAttribute="trailing" constant="15" id="84K-nZ-Rfz"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ppi-HI-rj1" secondAttribute="bottom" id="Ahn-Nf-O3r"/>
|
||||
<constraint firstItem="rkf-MW-5IL" firstAttribute="leading" secondItem="vdl-cu-G32" secondAttribute="leading" constant="10" id="B4I-l7-DMO"/>
|
||||
<constraint firstItem="xgH-t8-LiX" firstAttribute="top" secondItem="U1W-OZ-7vR" secondAttribute="bottom" constant="5" id="CIy-vs-vwp"/>
|
||||
<constraint firstItem="xgH-t8-LiX" firstAttribute="top" secondItem="U1W-OZ-7vR" secondAttribute="bottom" constant="-10" id="CIy-vs-vwp"/>
|
||||
<constraint firstItem="ppi-HI-rj1" firstAttribute="trailing" secondItem="vdl-cu-G32" secondAttribute="trailing" id="DQI-oo-bqb"/>
|
||||
<constraint firstItem="ppi-HI-rj1" firstAttribute="leading" secondItem="vdl-cu-G32" secondAttribute="leading" id="DnV-cr-qUh"/>
|
||||
<constraint firstAttribute="bottom" secondItem="xgH-t8-LiX" secondAttribute="bottom" id="KLp-zL-JIG"/>
|
||||
<constraint firstItem="sf9-me-n7i" firstAttribute="top" secondItem="vdl-cu-G32" secondAttribute="top" constant="5" id="MnT-8w-p9T"/>
|
||||
<constraint firstItem="U1W-OZ-7vR" firstAttribute="centerX" secondItem="vdl-cu-G32" secondAttribute="centerX" id="NqK-Cw-qNu"/>
|
||||
<constraint firstItem="U1W-OZ-7vR" firstAttribute="width" secondItem="U1W-OZ-7vR" secondAttribute="height" multiplier="1:1" id="PvJ-97-UfQ"/>
|
||||
<constraint firstItem="XTn-ID-1Yb" firstAttribute="top" secondItem="sf9-me-n7i" secondAttribute="bottom" constant="60" id="Q9c-DO-OgW"/>
|
||||
<constraint firstItem="o2x-QJ-V9A" firstAttribute="height" secondItem="UEh-jl-IQp" secondAttribute="height" multiplier="0.0558036" id="UDY-Wb-Xsa"/>
|
||||
<constraint firstItem="Jbf-Kl-35X" firstAttribute="top" secondItem="sf9-me-n7i" secondAttribute="bottom" constant="10" id="VLa-Ha-6Yo"/>
|
||||
<constraint firstItem="xgH-t8-LiX" firstAttribute="height" secondItem="UEh-jl-IQp" secondAttribute="height" multiplier="0.539906" id="YFN-fY-VOP"/>
|
||||
<constraint firstItem="rkf-MW-5IL" firstAttribute="centerY" secondItem="sf9-me-n7i" secondAttribute="centerY" constant="-20" id="ZVu-Px-dqT"/>
|
||||
<constraint firstItem="xgH-t8-LiX" firstAttribute="leading" secondItem="vdl-cu-G32" secondAttribute="leading" id="axA-78-I8c"/>
|
||||
<constraint firstItem="jdZ-WQ-xcr" firstAttribute="height" secondItem="UEh-jl-IQp" secondAttribute="height" multiplier="0.625" id="dfh-6o-p0D"/>
|
||||
<constraint firstItem="LYo-Uy-0nM" firstAttribute="centerX" secondItem="vdl-cu-G32" secondAttribute="centerX" id="f0k-KL-GNO"/>
|
||||
<constraint firstItem="s5k-HV-Zkc" firstAttribute="centerY" secondItem="rkf-MW-5IL" secondAttribute="centerY" id="fHp-Jm-GAf"/>
|
||||
<constraint firstItem="jdZ-WQ-xcr" firstAttribute="top" secondItem="UEh-jl-IQp" secondAttribute="top" id="kVK-dJ-BXA"/>
|
||||
<constraint firstItem="kzE-UE-7KK" firstAttribute="centerX" secondItem="vdl-cu-G32" secondAttribute="centerX" id="lxF-lj-Z1U"/>
|
||||
<constraint firstItem="xgH-t8-LiX" firstAttribute="height" secondItem="UEh-jl-IQp" secondAttribute="height" multiplier="0.52567" id="pHy-CM-iKk"/>
|
||||
<constraint firstItem="XTn-ID-1Yb" firstAttribute="leading" secondItem="vdl-cu-G32" secondAttribute="leading" constant="20" id="pPN-hO-fOe"/>
|
||||
<constraint firstItem="vdl-cu-G32" firstAttribute="trailing" secondItem="Jbf-Kl-35X" secondAttribute="trailing" constant="30" id="pzf-si-aC5"/>
|
||||
<constraint firstItem="vdl-cu-G32" firstAttribute="bottom" secondItem="LYo-Uy-0nM" secondAttribute="bottom" constant="15" id="qYM-va-cyv"/>
|
||||
<constraint firstItem="kzE-UE-7KK" firstAttribute="height" secondItem="UEh-jl-IQp" secondAttribute="height" multiplier="0.212054" id="s5Y-TI-1sZ"/>
|
||||
<constraint firstItem="ppi-HI-rj1" firstAttribute="height" secondItem="UEh-jl-IQp" secondAttribute="height" multiplier="0.535714" id="sLx-ty-T4s"/>
|
||||
<constraint firstItem="sf9-me-n7i" firstAttribute="centerX" secondItem="vdl-cu-G32" secondAttribute="centerX" id="vZE-xF-UKh"/>
|
||||
@@ -358,11 +387,14 @@
|
||||
<outlet property="homeGrass" destination="bNd-CB-wx1" id="Rhs-zT-ChZ"/>
|
||||
<outlet property="liveTVView" destination="kzE-UE-7KK" id="wh1-1v-X4B"/>
|
||||
<outlet property="liveTvPlayer" destination="edI-4n-4AY" id="Ofv-d0-YP4"/>
|
||||
<outlet property="moonImage" destination="Jbf-Kl-35X" id="WBx-uu-r3W"/>
|
||||
<outlet property="nameLabel" destination="tQN-s8-9SK" id="GIQ-nv-8rM"/>
|
||||
<outlet property="webSeriesView" destination="Sp0-yh-bdj" id="HMn-cX-z6Y"/>
|
||||
<outlet property="welcomeLabel" destination="dnl-w0-q5K" id="ePX-F9-APX"/>
|
||||
<outletCollection property="star" destination="XTn-ID-1Yb" collectionClass="NSMutableArray" id="8Fh-RB-UOY"/>
|
||||
<outletCollection property="star" destination="s5k-HV-Zkc" collectionClass="NSMutableArray" id="icE-65-uve"/>
|
||||
<outletCollection property="star" destination="U1W-OZ-7vR" collectionClass="NSMutableArray" id="21j-eq-JQi"/>
|
||||
<outletCollection property="star" destination="t3E-Cj-I2d" collectionClass="NSMutableArray" id="HTJ-Bj-Pjs"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Xus-eA-saB" sceneMemberID="firstResponder"/>
|
||||
@@ -378,14 +410,14 @@
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ksi-1c-xBG">
|
||||
<rect key="frame" x="0.0" y="134" width="393" height="220"/>
|
||||
<rect key="frame" x="0.0" y="132.33333333333334" width="393" height="220.00000000000003"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="220" id="ezY-uu-Vnb"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4qI-5q-8TH">
|
||||
<rect key="frame" x="338" y="69" width="40" height="40"/>
|
||||
<rect key="frame" x="338" y="68.333333333333329" width="40" height="40"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="4qI-5q-8TH" secondAttribute="height" multiplier="1:1" id="HP0-u8-WP8"/>
|
||||
<constraint firstAttribute="height" constant="40" id="pa1-no-jcD"/>
|
||||
@@ -400,22 +432,22 @@
|
||||
</connections>
|
||||
</button>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="wHk-XC-Cqq" userLabel="Avatar Stack">
|
||||
<rect key="frame" x="10" y="64" width="234.66666666666666" height="50"/>
|
||||
<rect key="frame" x="10" y="64" width="234.66666666666666" height="48.333333333333343"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Boy" translatesAutoresizingMaskIntoConstraints="NO" id="4xI-oX-ffb">
|
||||
<rect key="frame" x="0.0" y="0.0" width="49.666666666666664" height="50"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="49.666666666666664" height="48.333333333333336"/>
|
||||
</imageView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="LZa-k2-Fa1">
|
||||
<rect key="frame" x="59.666666666666686" y="0.0" width="175" height="50"/>
|
||||
<rect key="frame" x="59.666666666666686" y="0.0" width="175" height="48.333333333333336"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" text="Hi, Vijay" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IFj-XX-sbq">
|
||||
<rect key="frame" x="0.0" y="0.0" width="175" height="25.666666666666668"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="175" height="24"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Welcome to WOKALAND" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nbe-Ob-bia" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="30.666666666666671" width="175" height="19.333333333333329"/>
|
||||
<rect key="frame" x="0.0" y="29" width="175" height="19.333333333333329"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
@@ -424,8 +456,11 @@
|
||||
</stackView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="BottomFrame" translatesAutoresizingMaskIntoConstraints="NO" id="1fD-0F-KMn">
|
||||
<rect key="frame" x="0.0" y="457.33333333333326" width="393" height="464.66666666666674"/>
|
||||
</imageView>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wIw-DO-ba0">
|
||||
<rect key="frame" x="0.0" y="359" width="393" height="493"/>
|
||||
<rect key="frame" x="0.0" y="357.33333333333326" width="393" height="494.66666666666674"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="1iA-oh-toI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="393" height="184"/>
|
||||
@@ -436,13 +471,13 @@
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="4rq-xX-XRh">
|
||||
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="4rq-xX-XRh">
|
||||
<rect key="frame" x="10" y="44" width="373" height="140"/>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="140" id="82w-Zb-27Q"/>
|
||||
</constraints>
|
||||
<collectionViewFlowLayout key="collectionViewLayout" automaticEstimatedItemSize="YES" minimumLineSpacing="10" minimumInteritemSpacing="10" id="v7N-mj-NZr">
|
||||
<collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="v7N-mj-NZr">
|
||||
<size key="itemSize" width="128" height="128"/>
|
||||
<size key="headerReferenceSize" width="0.0" height="0.0"/>
|
||||
<size key="footerReferenceSize" width="0.0" height="0.0"/>
|
||||
@@ -468,12 +503,16 @@
|
||||
<viewLayoutGuide key="safeArea" id="QRd-bR-MwE"/>
|
||||
<color key="backgroundColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="1fD-0F-KMn" firstAttribute="leading" secondItem="QRd-bR-MwE" secondAttribute="leading" id="6I2-0g-j8p"/>
|
||||
<constraint firstAttribute="bottom" secondItem="wIw-DO-ba0" secondAttribute="bottom" id="8aT-sg-dlZ"/>
|
||||
<constraint firstItem="wIw-DO-ba0" firstAttribute="top" secondItem="Ksi-1c-xBG" secondAttribute="bottom" constant="5" id="9iK-1y-iUL"/>
|
||||
<constraint firstItem="wIw-DO-ba0" firstAttribute="trailing" secondItem="QRd-bR-MwE" secondAttribute="trailing" id="B2f-vS-BlM"/>
|
||||
<constraint firstAttribute="bottom" secondItem="1fD-0F-KMn" secondAttribute="bottom" constant="-70" id="Prn-39-0xD"/>
|
||||
<constraint firstItem="wHk-XC-Cqq" firstAttribute="leading" secondItem="QRd-bR-MwE" secondAttribute="leading" constant="10" id="YGq-MK-aVC"/>
|
||||
<constraint firstItem="wHk-XC-Cqq" firstAttribute="top" secondItem="QRd-bR-MwE" secondAttribute="top" constant="5" id="aC0-db-DaE"/>
|
||||
<constraint firstItem="1fD-0F-KMn" firstAttribute="top" secondItem="wIw-DO-ba0" secondAttribute="top" constant="100" id="f0v-wy-myo"/>
|
||||
<constraint firstItem="wIw-DO-ba0" firstAttribute="leading" secondItem="QRd-bR-MwE" secondAttribute="leading" id="icN-WK-7ux"/>
|
||||
<constraint firstItem="1fD-0F-KMn" firstAttribute="trailing" secondItem="QRd-bR-MwE" secondAttribute="trailing" id="isc-ka-Z4S"/>
|
||||
<constraint firstItem="QRd-bR-MwE" firstAttribute="trailing" secondItem="Ksi-1c-xBG" secondAttribute="trailing" id="l1S-Jm-gVK"/>
|
||||
<constraint firstItem="Ksi-1c-xBG" firstAttribute="top" secondItem="wHk-XC-Cqq" secondAttribute="bottom" constant="20" id="nBa-4R-qSd"/>
|
||||
<constraint firstItem="4qI-5q-8TH" firstAttribute="centerY" secondItem="wHk-XC-Cqq" secondAttribute="centerY" id="rWN-WN-Oxo"/>
|
||||
@@ -488,30 +527,29 @@
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="AKa-H1-a6U" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2883" y="-1602"/>
|
||||
<point key="canvasLocation" x="2881.679389312977" y="-1602.1126760563382"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="AudioBooks" width="172" height="120"/>
|
||||
<image name="BottomArrow" width="33" height="33"/>
|
||||
<image name="BottomFrame" width="570.66668701171875" height="729.33331298828125"/>
|
||||
<image name="Boy" width="49.666667938232422" height="50"/>
|
||||
<image name="Cloud1" width="2469.666748046875" height="734.66668701171875"/>
|
||||
<image name="Cloud2" width="2469.333251953125" height="354.66665649414062"/>
|
||||
<image name="FM" width="76" height="76"/>
|
||||
<image name="Games" width="108.33333587646484" height="115.33333587646484"/>
|
||||
<image name="Games" width="164" height="130.66667175292969"/>
|
||||
<image name="HomeGrassDay" width="570.66668701171875" height="641.33331298828125"/>
|
||||
<image name="HomeIcon" width="26.666666030883789" height="26.666666030883789"/>
|
||||
<image name="Karaoke" width="109.33333587646484" height="132.66667175292969"/>
|
||||
<image name="LiveTV" width="106.66666412353516" height="128"/>
|
||||
<image name="Karaoke" width="172" height="137.33332824707031"/>
|
||||
<image name="LiveTV" width="172" height="122.66666412353516"/>
|
||||
<image name="LiveTVBaloon" width="135" height="135"/>
|
||||
<image name="LiveTVBorder" width="79.333335876464844" height="67"/>
|
||||
<image name="Moon" width="144.66667175292969" height="144.66667175292969"/>
|
||||
<image name="Shop" width="109.33333587646484" height="132.66667175292969"/>
|
||||
<image name="Shop" width="165.33332824707031" height="148"/>
|
||||
<image name="SideMenu" width="44" height="44"/>
|
||||
<image name="Star" width="62.666667938232422" height="62.666667938232422"/>
|
||||
<image name="WebSeries" width="164" height="118.66666412353516"/>
|
||||
<systemColor name="systemBackgroundColor">
|
||||
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</systemColor>
|
||||
<systemColor name="systemGreenColor">
|
||||
<color red="0.20392156862745098" green="0.7803921568627451" blue="0.34901960784313724" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</systemColor>
|
||||
|
||||
@@ -9,9 +9,13 @@ import UIKit
|
||||
|
||||
class HomeExploreCell: UICollectionViewCell {
|
||||
|
||||
@IBOutlet weak var cellBtn: UIImageView!
|
||||
override func awakeFromNib() {
|
||||
super.awakeFromNib()
|
||||
// Initialization code
|
||||
}
|
||||
|
||||
func setData(image : String){
|
||||
self.cellBtn.image = UIImage(named: image)
|
||||
}
|
||||
}
|
||||
@@ -17,25 +17,26 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="145" height="145"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zJF-6G-BCX">
|
||||
<rect key="frame" x="10" y="5" width="125" height="135"/>
|
||||
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" image="WokaFM"/>
|
||||
</button>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="WokaFMT2" translatesAutoresizingMaskIntoConstraints="NO" id="SFy-o2-AXG">
|
||||
<rect key="frame" x="5" y="5" width="135" height="135"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
</view>
|
||||
<viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="zJF-6G-BCX" secondAttribute="trailing" constant="10" id="0aI-CE-h7w"/>
|
||||
<constraint firstItem="zJF-6G-BCX" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="10" id="JVa-UY-3k4"/>
|
||||
<constraint firstAttribute="bottom" secondItem="zJF-6G-BCX" secondAttribute="bottom" constant="5" id="bRI-VS-Ul3"/>
|
||||
<constraint firstItem="zJF-6G-BCX" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5" id="vN2-2h-fzm"/>
|
||||
<constraint firstItem="SFy-o2-AXG" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5" id="Ogd-AO-BNT"/>
|
||||
<constraint firstItem="SFy-o2-AXG" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="5" id="VKa-Pp-78L"/>
|
||||
<constraint firstAttribute="bottom" secondItem="SFy-o2-AXG" secondAttribute="bottom" constant="5" id="iPy-xi-0TV"/>
|
||||
<constraint firstAttribute="trailing" secondItem="SFy-o2-AXG" secondAttribute="trailing" constant="5" id="oqe-nc-acg"/>
|
||||
</constraints>
|
||||
<size key="customSize" width="145" height="145"/>
|
||||
<connections>
|
||||
<outlet property="cellBtn" destination="SFy-o2-AXG" id="nEY-rV-xHM"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="199.23664122137404" y="22.183098591549296"/>
|
||||
</collectionViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="WokaFM" width="111.66666412353516" height="137"/>
|
||||
<image name="WokaFMT2" width="111.66666412353516" height="137"/>
|
||||
</resources>
|
||||
</document>
|
||||
@@ -23,36 +23,40 @@ class ThemeOneVM{
|
||||
|
||||
handleTaps()
|
||||
|
||||
startGlowAnimation()
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(appDidEnterBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(appWillEnterForeground), name: UIApplication.willEnterForegroundNotification, object: nil)
|
||||
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(self.reloadTheme), name: NSNotification.Name(rawValue: K.NotificationCenterReloads.reloadTheme), object: nil)
|
||||
|
||||
}
|
||||
|
||||
func startGlowAnimation() {
|
||||
for (index, imageView) in vc.star.enumerated() {
|
||||
let animation = CABasicAnimation(keyPath: "opacity")
|
||||
animation.fromValue = 1.0
|
||||
animation.toValue = 0.07
|
||||
animation.duration = 3.0
|
||||
animation.autoreverses = true
|
||||
animation.repeatCount = .infinity
|
||||
|
||||
// Calculate delay for each animation based on index
|
||||
let delay = Double(index) * 1 // Adjust the delay as needed
|
||||
|
||||
// Apply the delay to the animation
|
||||
animation.beginTime = CACurrentMediaTime() + delay
|
||||
|
||||
imageView.layer.add(animation, forKey: "glowAnimation")
|
||||
}
|
||||
// MARK: - Notification Center Handlers
|
||||
|
||||
@objc func reloadTheme(){
|
||||
self.vc.delegate?.didPressSwitchButton(from: self.vc)
|
||||
}
|
||||
|
||||
@objc func appDidEnterBackground() {
|
||||
// Code to execute when the app enters the background
|
||||
print("App entered background")
|
||||
self.handleBackground()
|
||||
}
|
||||
|
||||
@objc func appWillEnterForeground() {
|
||||
// Code to execute when the app enters the foreground
|
||||
print("App will enter foreground")
|
||||
self.handleBackground()
|
||||
}
|
||||
|
||||
// MARK: - Handle Tap Gesture
|
||||
|
||||
func handleTaps(){
|
||||
//WebSeries
|
||||
vc.webSeriesView.addTapGesture { [weak self] in
|
||||
guard let self else {return}
|
||||
ViewButtonAnimation.sharedInstance.btnTapped(in: self.vc, view: vc.webSeriesView)
|
||||
self.vc.delegate?.didPressSwitchButton(from: self.vc)
|
||||
ViewButtonAnimation.sharedInstance.btnTapped(in: self.vc, view: vc.webSeriesView) {
|
||||
self.vc.delegate?.didPressSwitchButton(from: self.vc)
|
||||
}
|
||||
}
|
||||
|
||||
//LiveTV
|
||||
@@ -163,8 +167,19 @@ class ThemeOneVM{
|
||||
for period in AuthFunc.shareInstance.timePeriods {
|
||||
if period.contains(currentTime: currentTime) {
|
||||
let details = period.details
|
||||
|
||||
// Update view's background color with a gradient or single color
|
||||
DispatchQueue.main.async { [self] in
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
guard let self else{return}
|
||||
if period.details.dayCycle == .night{
|
||||
startStarGlowAnimation()
|
||||
}else{
|
||||
//just hide the moon and star if its not night
|
||||
!vc.moonImage.isHidden ? vc.moonImage.isHidden = true : nil
|
||||
vc.star.forEach { image in
|
||||
!image.isHidden ? image.isHidden = true : nil
|
||||
}
|
||||
}
|
||||
vc.gradientView.applyGradient(colors: [details.color1, details.color2], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 0.8))
|
||||
vc.nameLabel.textColor = details.textColor
|
||||
vc.welcomeLabel.textColor = details.textColor
|
||||
@@ -175,6 +190,28 @@ class ThemeOneVM{
|
||||
}
|
||||
}
|
||||
|
||||
func startStarGlowAnimation() {
|
||||
vc.moonImage.isHidden ? vc.moonImage.isHidden = false : nil
|
||||
for (index, imageView) in vc.star.enumerated() {
|
||||
//If star is hidden just unhide it for the night time
|
||||
(vc.star[index].isHidden) ? (vc.star[index].isHidden = false) : nil
|
||||
let animation = CABasicAnimation(keyPath: "opacity")
|
||||
animation.fromValue = 1.0
|
||||
animation.toValue = 0.07
|
||||
animation.duration = 3.0
|
||||
animation.autoreverses = true
|
||||
animation.repeatCount = .infinity
|
||||
|
||||
// Calculate delay for each animation based on index
|
||||
let delay = Double(index) * 1 // Adjust the delay as needed
|
||||
|
||||
// Apply the delay to the animation
|
||||
animation.beginTime = CACurrentMediaTime() + delay
|
||||
|
||||
imageView.layer.add(animation, forKey: "glowAnimation")
|
||||
}
|
||||
}
|
||||
|
||||
func startInitialTimer() {
|
||||
self.handleBackground()
|
||||
let now = Date()
|
||||
@@ -190,7 +227,7 @@ class ThemeOneVM{
|
||||
self.handleBackground()
|
||||
|
||||
// Schedule the repeating timer to fire every minute
|
||||
vc.timer = Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(handleBackground), userInfo: nil, repeats: false)
|
||||
vc.timer = Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(handleBackground), userInfo: nil, repeats: true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
32
WOKA/Theme/ViewModel/ThemeTwoVM.swift
Normal file
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// ThemeTwoVM.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 27/05/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class ThemeTwoVM{
|
||||
|
||||
weak var vc : ThemeTwoVC!
|
||||
|
||||
var cellData = ["WokaFMT2", "LiveTVT2", "WebSeriesT2", "GamesT2", "AudioBooksT2", "KaraokeT2", "ShopT2"]
|
||||
|
||||
func initView(){
|
||||
setupCell()
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(self.reloadTheme), name: NSNotification.Name(rawValue: K.NotificationCenterReloads.reloadTheme), object: nil)
|
||||
}
|
||||
|
||||
// MARK: - Notification Center Handlers
|
||||
|
||||
@objc func reloadTheme(){
|
||||
self.vc.delegate?.didPressSwitchButton(from: self.vc)
|
||||
}
|
||||
|
||||
func setupCell(){
|
||||
vc.collectionView.register(UINib(nibName: K.CellIdentifier.Theme.homeExploreCell, bundle: nil), forCellWithReuseIdentifier: K.CellIdentifier.Theme.homeExploreCell)
|
||||
vc.collectionView.delegate = vc.self
|
||||
vc.collectionView.dataSource = vc.self
|
||||
}
|
||||
}
|
||||