- Created an extension to handle the rootview.

- Added localisation to theme 1, also updated the English localisation for reversing the language
- Added localisation to the sidebar. Also handled the live language change with the help of observers
- Integrated GetUserData API at splash.
- Added the login NAv. Now if user will logout he will be redirected to the login Screen.
- Added Activity Indicator on the splash to handle the getuserdata.
- Added Guest Login To home.
This commit is contained in:
2024-05-28 19:47:51 +05:30
parent 0e921c3113
commit 86bd90db31
33 changed files with 1040 additions and 236 deletions

View File

@@ -64,6 +64,7 @@
52663FFB2BDFB1700001D8CE /* TextFieldShadow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52663FFA2BDFB1700001D8CE /* TextFieldShadow.swift */; };
5272FCE32BDFDB05000ECB1D /* UserDetailsRegisterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5272FCE22BDFDB05000ECB1D /* UserDetailsRegisterVC.swift */; };
5272FCE52BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5272FCE42BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift */; };
529B0DD42C06156B00CFC54B /* LoginNavVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B0DD32C06156B00CFC54B /* LoginNavVC.swift */; };
52A3F6A52BECBA8D0000BB0B /* LinkedChildDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A3F6A42BECBA8D0000BB0B /* LinkedChildDM.swift */; };
52A3F6A82BECBF2A0000BB0B /* LinkedChildCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A3F6A62BECBF2A0000BB0B /* LinkedChildCell.swift */; };
52A3F6A92BECBF2A0000BB0B /* LinkedChildCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 52A3F6A72BECBF2A0000BB0B /* LinkedChildCell.xib */; };
@@ -80,6 +81,9 @@
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 */; };
52C1A4E12C05B69F007BAA50 /* UIApplicationSwitchRoot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C1A4E02C05B69F007BAA50 /* UIApplicationSwitchRoot.swift */; };
52C1A4E52C05BC86007BAA50 /* MainNavController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C1A4E42C05BC86007BAA50 /* MainNavController.swift */; };
52C1A4E82C05C95D007BAA50 /* Theme.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52C1A4E72C05C95D007BAA50 /* Theme.storyboard */; };
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 */; };
@@ -132,7 +136,6 @@
9C535DC22C00B36900DA6DCD /* ThemeTwoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C535DC12C00B36900DA6DCD /* ThemeTwoVC.swift */; };
9C535DC52C00BF2400DA6DCD /* HomeExploreCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9C535DC42C00BF2400DA6DCD /* HomeExploreCell.xib */; };
9C535DC62C00BF2400DA6DCD /* HomeExploreCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C535DC32C00BF2400DA6DCD /* HomeExploreCell.swift */; };
9C535DCA2C00C34A00DA6DCD /* Theme.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9C535DC92C00C34A00DA6DCD /* Theme.storyboard */; };
9C56E83B2BDBC6E600E4CA14 /* SelectAgeVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C56E83A2BDBC6E600E4CA14 /* SelectAgeVM.swift */; };
9C56E8462BDBEE6400E4CA14 /* EmailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C56E8452BDBEE6400E4CA14 /* EmailVC.swift */; };
9C56E8482BDBEFAB00E4CA14 /* AssetColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C56E8472BDBEFAB00E4CA14 /* AssetColor.swift */; };
@@ -224,6 +227,7 @@
52663FFA2BDFB1700001D8CE /* TextFieldShadow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldShadow.swift; sourceTree = "<group>"; };
5272FCE22BDFDB05000ECB1D /* UserDetailsRegisterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDetailsRegisterVC.swift; sourceTree = "<group>"; };
5272FCE42BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDetailsRegisterVM.swift; sourceTree = "<group>"; };
529B0DD32C06156B00CFC54B /* LoginNavVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginNavVC.swift; sourceTree = "<group>"; };
52A3F6A42BECBA8D0000BB0B /* LinkedChildDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkedChildDM.swift; sourceTree = "<group>"; };
52A3F6A62BECBF2A0000BB0B /* LinkedChildCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkedChildCell.swift; sourceTree = "<group>"; };
52A3F6A72BECBF2A0000BB0B /* LinkedChildCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LinkedChildCell.xib; sourceTree = "<group>"; };
@@ -241,6 +245,11 @@
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>"; };
52C1A4E02C05B69F007BAA50 /* UIApplicationSwitchRoot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIApplicationSwitchRoot.swift; sourceTree = "<group>"; };
52C1A4E42C05BC86007BAA50 /* MainNavController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainNavController.swift; sourceTree = "<group>"; };
52C1A4E62C05C95D007BAA50 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Theme.storyboard; sourceTree = "<group>"; };
52C1A4EF2C05DA49007BAA50 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Theme.strings; sourceTree = "<group>"; };
52C1A4F12C05DA4C007BAA50 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/Theme.strings; 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>"; };
@@ -295,7 +304,6 @@
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/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>"; };
9C56E8302BDBC3EF00E4CA14 /* Exo2-SemiBold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Exo2-SemiBold.ttf"; sourceTree = "<group>"; };
@@ -423,6 +431,7 @@
523ED26B2BDA2BC900CFED02 /* Info.plist */,
9C9BEEC62BEE1BBF004ECC2F /* CollectionViewCenteredFlowLayout.swift */,
5259541E2BE8E93500191286 /* Config.xcconfig */,
523ED2682BDA2BC900CFED02 /* LaunchScreen.storyboard */,
5259542C2BEA392A00191286 /* Alerts */,
523ED2932BDA3D0100CFED02 /* Assets */,
9C56E83E2BDBE4FB00E4CA14 /* Authentication */,
@@ -430,7 +439,6 @@
52C6E01F2BE3ADD800E22D59 /* Default Enum */,
52C8B0512BDA4B51003B51D0 /* Helpers */,
9CBCB2A62BE5104F007D7934 /* Home */,
523ED2682BDA2BC900CFED02 /* LaunchScreen.storyboard */,
9C27E15E2BDB6E4F00EC1DA9 /* Localized Module */,
9C27E1612BDB6F0F00EC1DA9 /* Main */,
525954152BE8CAC900191286 /* Network Adapter */,
@@ -503,6 +511,7 @@
523ED2612BDA2BC700CFED02 /* SplashVC.swift */,
52C8B0732BDA7626003B51D0 /* OnBoardVC.swift */,
9CDC343B2BDBBC6B00093089 /* SelectAgeVC.swift */,
52C1A4E42C05BC86007BAA50 /* MainNavController.swift */,
);
path = Controller;
sourceTree = "<group>";
@@ -641,6 +650,17 @@
path = Alerts;
sourceTree = "<group>";
};
52C1A4DF2C05B670007BAA50 /* Delegate */ = {
isa = PBXGroup;
children = (
523ED25D2BDA2BC700CFED02 /* AppDelegate.swift */,
523ED25F2BDA2BC700CFED02 /* SceneDelegate.swift */,
9C535DB42C005A6C00DA6DCD /* KeyWindowFix.swift */,
52C1A4E02C05B69F007BAA50 /* UIApplicationSwitchRoot.swift */,
);
path = Delegate;
sourceTree = "<group>";
};
52C6E01F2BE3ADD800E22D59 /* Default Enum */ = {
isa = PBXGroup;
children = (
@@ -758,10 +778,8 @@
9C27E1612BDB6F0F00EC1DA9 /* Main */ = {
isa = PBXGroup;
children = (
52C1A4DF2C05B670007BAA50 /* Delegate */,
52FDBA792BFF26F9009D7AC7 /* AuthFunc */,
523ED25D2BDA2BC700CFED02 /* AppDelegate.swift */,
523ED25F2BDA2BC700CFED02 /* SceneDelegate.swift */,
9C535DB42C005A6C00DA6DCD /* KeyWindowFix.swift */,
);
path = Main;
sourceTree = "<group>";
@@ -788,7 +806,7 @@
52F12C812C04569500AF8139 /* View */,
9C535DCC2C00CD1200DA6DCD /* ViewModel */,
9C535DCB2C00CD0800DA6DCD /* Controller */,
9C535DC92C00C34A00DA6DCD /* Theme.storyboard */,
52C1A4E72C05C95D007BAA50 /* Theme.storyboard */,
);
path = Theme;
sourceTree = "<group>";
@@ -879,6 +897,7 @@
9CBCB2A22BE50C95007D7934 /* ResetPassUserNameVC.swift */,
9CBCB2A42BE50D49007D7934 /* NewPasswordVC.swift */,
52A3F6AA2BECBF550000BB0B /* LinkedChildVC.swift */,
529B0DD32C06156B00CFC54B /* LoginNavVC.swift */,
);
path = Controller;
sourceTree = "<group>";
@@ -1027,7 +1046,7 @@
523ED26A2BDA2BC900CFED02 /* Base in Resources */,
52C8B05B2BDA5924003B51D0 /* WokaSplashSound.m4a in Resources */,
525954352BEB4B3B00191286 /* Exo2-Thin.ttf in Resources */,
9C535DCA2C00C34A00DA6DCD /* Theme.storyboard in Resources */,
52C1A4E82C05C95D007BAA50 /* Theme.storyboard in Resources */,
525954362BEB4B3B00191286 /* Exo2-Medium.ttf in Resources */,
525954372BEB4B3B00191286 /* Exo2-Bold.ttf in Resources */,
525954382BEB4B3B00191286 /* Exo2-Regular.ttf in Resources */,
@@ -1200,7 +1219,9 @@
525954322BEA39D200191286 /* AddTapGesture.swift in Sources */,
522242682BFC74380085C632 /* TabBarVC.swift in Sources */,
9C27E1722BDB86B600EC1DA9 /* OnBoardCell.swift in Sources */,
529B0DD42C06156B00CFC54B /* LoginNavVC.swift in Sources */,
52C8B05F2BDA5AFA003B51D0 /* SplashVM.swift in Sources */,
52C1A4E12C05B69F007BAA50 /* UIApplicationSwitchRoot.swift in Sources */,
52663FF72BDFACF60001D8CE /* ShadowView.swift in Sources */,
9C535DC22C00B36900DA6DCD /* ThemeTwoVC.swift in Sources */,
52D774F12BDFC53B001D87DE /* StringSubScript.swift in Sources */,
@@ -1208,6 +1229,7 @@
52FB2D8F2BDF898F0009B0C7 /* TextFieldPadding.swift in Sources */,
5257B2652BDFB6F50086D79B /* CheckPhoneHomeBtnOrNotch.swift in Sources */,
52663FF92BDFAF110001D8CE /* EmailVM.swift in Sources */,
52C1A4E52C05BC86007BAA50 /* MainNavController.swift in Sources */,
525954342BEA620800191286 /* IntrestTopicDM.swift in Sources */,
52663FF52BDFAB830001D8CE /* TextFieldErrorView.swift in Sources */,
9C27E16D2BDB852F00EC1DA9 /* GVar.swift in Sources */,
@@ -1273,6 +1295,16 @@
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
52C1A4E72C05C95D007BAA50 /* Theme.storyboard */ = {
isa = PBXVariantGroup;
children = (
52C1A4E62C05C95D007BAA50 /* Base */,
52C1A4EF2C05DA49007BAA50 /* en */,
52C1A4F12C05DA4C007BAA50 /* hi */,
);
name = Theme.storyboard;
sourceTree = "<group>";
};
52C8B0612BDA6993003B51D0 /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (

View File

@@ -3,7 +3,7 @@
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
@@ -134,22 +134,22 @@
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="25" translatesAutoresizingMaskIntoConstraints="NO" id="krK-cg-Oil">
<rect key="frame" x="20" y="355.66666666666669" width="353" height="166.00000000000006"/>
<rect key="frame" x="20" y="350.66666666666669" width="353" height="176.00000000000006"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="2aC-DO-6DC">
<rect key="frame" x="10" y="15" width="333" height="41"/>
<rect key="frame" x="15" y="15" width="323" height="41"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ium-M5-1Q9">
<rect key="frame" x="0.0" y="0.0" width="333" height="30"/>
<rect key="frame" x="0.0" y="0.0" width="323" height="30"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WOKA" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jJ7-vb-Tw5">
<rect key="frame" x="0.0" y="0.0" width="333" height="30"/>
<rect key="frame" x="0.0" y="0.0" width="323" height="30"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="18"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FQZ-wu-DL8">
<rect key="frame" x="303" y="0.0" width="30" height="30"/>
<rect key="frame" x="293" y="0.0" width="30" height="30"/>
<constraints>
<constraint firstAttribute="width" secondItem="FQZ-wu-DL8" secondAttribute="height" multiplier="1:1" id="fU5-4r-4IE"/>
</constraints>
@@ -174,7 +174,7 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6ut-1P-FdB">
<rect key="frame" x="0.0" y="40" width="333" height="1"/>
<rect key="frame" x="0.0" y="40" width="323" height="1"/>
<color key="backgroundColor" name="WelcomeBlue"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="r8A-Sj-Pc4"/>
@@ -183,16 +183,16 @@
</subviews>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2hO-Cj-GYn">
<rect key="frame" x="10" y="81" width="333" height="0.0"/>
<rect key="frame" x="15" y="81" width="323" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" distribution="fillEqually" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="vHX-v2-EPI">
<rect key="frame" x="10" y="106" width="333" height="50"/>
<rect key="frame" x="15" y="106" width="323" height="50"/>
<subviews>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mtd-2O-WKd" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="146.66666666666666" height="50"/>
<rect key="frame" x="0.0" y="0.0" width="141.66666666666666" height="50"/>
<color key="backgroundColor" name="TextDarkBlue"/>
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<state key="normal" title="Button"/>
@@ -204,7 +204,7 @@
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FnX-50-KNX" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="186.66666666666663" y="0.0" width="146.33333333333337" height="50"/>
<rect key="frame" x="181.66666666666663" y="0.0" width="141.33333333333337" height="50"/>
<color key="backgroundColor" name="TextDarkBlue"/>
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<state key="normal" title="Button"/>
@@ -227,7 +227,7 @@
</stackView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<edgeInsets key="layoutMargins" top="15" left="10" bottom="10" right="10"/>
<edgeInsets key="layoutMargins" top="15" left="15" bottom="20" right="15"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="10"/>

View File

@@ -43,25 +43,25 @@
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="wZZ-TW-F7M">
<rect key="frame" x="20" y="172.5" width="374" height="203.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="202"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Lets be Safe!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yPx-mT-kaf" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="34"/>
<rect key="frame" x="10" y="0.0" width="354" height="33"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="28"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="xww-d1-beY">
<rect key="frame" x="10" y="104" width="354" height="99.5"/>
<rect key="frame" x="10" y="103" width="354" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CAN WE HAVE YOUR PARENTS EMAIL?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="STc-F9-ORA">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="useless@yopmail.com" placeholder="Enter your email" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DSB-Ge-wNO" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your email" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DSB-Ge-wNO" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -80,7 +80,7 @@
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JHJ-Zh-JC5">
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -91,16 +91,16 @@
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="35" translatesAutoresizingMaskIntoConstraints="NO" id="kWC-4v-p9x">
<rect key="frame" x="30" y="740" width="354" height="102"/>
<rect key="frame" x="30" y="740.5" width="354" height="101.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="We will send a verification code to their email" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lqT-ZV-x5p" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="17"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="16.5"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zNR-RE-Ax8" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="52" width="354" height="50"/>
<rect key="frame" x="0.0" y="51.5" width="354" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="4eR-zk-hWT"/>
</constraints>
@@ -167,10 +167,10 @@
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="mhH-Ov-1nU">
<rect key="frame" x="20" y="172.5" width="374" height="281.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="278.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NYC-6J-drr" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="67.5"/>
<rect key="frame" x="10" y="0.0" width="354" height="65.5"/>
<string key="text">Please Get the Code
Sent to Your Parents Email</string>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="28"/>
@@ -178,16 +178,16 @@ Sent to Your Parents Email</string>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="dF8-rD-e8F">
<rect key="frame" x="10" y="137.5" width="354" height="144"/>
<rect key="frame" x="10" y="135.5" width="354" height="143"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PLEASE ENTER THE CODE" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tB6-Qz-8Ez" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="HGA-bw-mMW">
<rect key="frame" x="0.0" y="34.5" width="354" height="60"/>
<rect key="frame" x="0.0" y="34" width="354" height="60"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="*" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="81S-Fa-CiD" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="81" height="60"/>
@@ -223,13 +223,13 @@ Sent to Your Parents Email</string>
</constraints>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="OTP is valid for 10:00 Min" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WcL-Rp-jOq" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="109.5" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="109" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KX4-Ip-eii" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="136.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="135.5" width="354" height="0.0"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain">
@@ -247,7 +247,7 @@ Sent to Your Parents Email</string>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dt3-hg-7T4" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="144" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="143" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -258,16 +258,16 @@ Sent to Your Parents Email</string>
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="35" translatesAutoresizingMaskIntoConstraints="NO" id="xga-nK-9qJ">
<rect key="frame" x="30" y="723" width="354" height="119"/>
<rect key="frame" x="30" y="724" width="354" height="118"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Request them for the verfication code to activate your account" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M3r-lS-DmW" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="34"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="33"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vVW-Kz-YaV" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="69" width="354" height="50"/>
<rect key="frame" x="0.0" y="68" width="354" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="KmJ-vu-pxT"/>
</constraints>
@@ -339,28 +339,28 @@ Sent to Your Parents Email</string>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="L80-bN-1T0">
<rect key="frame" x="20" y="172.5" width="374" height="510.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="506.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Great! Now Lets Create Your WOKAccount" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3x2-kd-tL1" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="65"/>
<rect key="frame" x="10" y="0.0" width="354" height="63"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="27"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="bJs-H6-708">
<rect key="frame" x="10" y="135" width="354" height="375.5"/>
<rect key="frame" x="10" y="133" width="354" height="373.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="LUQ-BX-nHw">
<rect key="frame" x="0.0" y="0.0" width="354" height="99.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SELECT USERNAME" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="w7B-kJ-IgM" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your username" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="m50-FZ-yVO" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -379,7 +379,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RuI-5z-pyW">
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -387,16 +387,16 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="qSD-g5-OZA">
<rect key="frame" x="0.0" y="129.5" width="354" height="99.5"/>
<rect key="frame" x="0.0" y="129" width="354" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WHATS YOUR NAME?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eZm-zl-55m" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your name" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="tgW-LH-XfR" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -415,7 +415,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y3K-h2-Gbg">
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -423,16 +423,16 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="hWX-C0-soL">
<rect key="frame" x="0.0" y="259" width="354" height="116.5"/>
<rect key="frame" x="0.0" y="258" width="354" height="115.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CREATE YOUR PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fev-AX-lcQ" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4gw-z0-s4a" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -451,7 +451,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Shh!! Dont share your password with anyone." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3LF-iY-Hoi" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="99.5" width="354" height="17"/>
<rect key="frame" x="0.0" y="99" width="354" height="16.5"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -829,35 +829,35 @@ Sent to Your Parents Email</string>
<rect key="frame" x="0.0" y="107.5" width="414" height="754.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="aNK-S5-pik">
<rect key="frame" x="0.0" y="0.0" width="414" height="763.5"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="760"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y9q-mR-AlW">
<rect key="frame" x="20" y="0.0" width="374" height="60"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="Krs-Zs-R6t">
<rect key="frame" x="20" y="60" width="374" height="447.5"/>
<rect key="frame" x="20" y="60" width="374" height="445"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Login to WOKA" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1T4-5K-cXT" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="32.5"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="31.5"/>
<fontDescription key="fontDescription" name="Exo2-ExtraBold" family="Exo 2" pointSize="27"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="EhK-1C-Xey">
<rect key="frame" x="0.0" y="102.5" width="374" height="345"/>
<rect key="frame" x="0.0" y="101.5" width="374" height="343.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="krT-0d-tCQ">
<rect key="frame" x="0.0" y="0.0" width="374" height="99.5"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="USERNAME" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Xc-wy-9mu" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="68c-1b-KSI" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="374" height="50"/>
<rect key="frame" x="0.0" y="34" width="374" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -876,7 +876,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JQm-yr-A2M">
<rect key="frame" x="0.0" y="99.5" width="374" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="374" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -884,19 +884,19 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="fVp-fO-1fH">
<rect key="frame" x="0.0" y="129.5" width="374" height="135.5"/>
<rect key="frame" x="0.0" y="129" width="374" height="134.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="ebQ-va-83Q">
<rect key="frame" x="0.0" y="0.0" width="374" height="99.5"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcT-5f-ded" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="iJE-dm-qal" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="374" height="50"/>
<rect key="frame" x="0.0" y="34" width="374" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -915,7 +915,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2YT-HL-ug7">
<rect key="frame" x="0.0" y="99.5" width="374" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="374" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -923,7 +923,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yp6-2q-OZC" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="104.5" width="374" height="31"/>
<rect key="frame" x="0.0" y="104" width="374" height="30.5"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" title="Forgot Password">
@@ -936,7 +936,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OFt-kx-VfD" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="295" width="374" height="50"/>
<rect key="frame" x="0.0" y="293.5" width="374" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="Tle-PZ-1B4"/>
</constraints>
@@ -955,14 +955,14 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tOZ-1S-7K5">
<rect key="frame" x="20" y="507.5" width="374" height="120"/>
<rect key="frame" x="20" y="505" width="374" height="120"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="Nnb-iQ-OQs">
<rect key="frame" x="20" y="627.5" width="374" height="106"/>
<rect key="frame" x="20" y="625" width="374" height="105"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ly3-jW-G7X" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="36"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="35"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" title="Continue as a Guest">
@@ -973,7 +973,7 @@ Sent to Your Parents Email</string>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TYc-dA-ZOV" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="56" width="374" height="50"/>
<rect key="frame" x="0.0" y="55" width="374" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="sfz-a2-WZy"/>
</constraints>
@@ -990,7 +990,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Sb4-yj-JJ2">
<rect key="frame" x="20" y="733.5" width="374" height="30"/>
<rect key="frame" x="20" y="730" width="374" height="30"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="RxX-pL-7Ux"/>
@@ -1038,7 +1038,7 @@ Sent to Your Parents Email</string>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Mdc-Fp-9OO" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3098.5507246376815" y="-27.455357142857142"/>
<point key="canvasLocation" x="4008.6956521739135" y="-27.455357142857142"/>
</scene>
<!--Reset Pass User NameVC-->
<scene sceneID="h7R-p4-2q6">
@@ -1059,25 +1059,25 @@ Sent to Your Parents Email</string>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="Pjf-i3-BcY">
<rect key="frame" x="20" y="172.5" width="374" height="203.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="202"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Forgot your Password?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i7M-Ob-pCE" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="34"/>
<rect key="frame" x="10" y="0.0" width="354" height="33"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="28"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="Jlq-Ct-Mrz">
<rect key="frame" x="10" y="104" width="354" height="99.5"/>
<rect key="frame" x="10" y="103" width="354" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PLEASE GIVE US YOUR USERNAME" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fCB-jL-yE4" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your username" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="wy2-0C-rxG" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1096,7 +1096,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0ps-Ku-87z">
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -1107,16 +1107,16 @@ Sent to Your Parents Email</string>
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="35" translatesAutoresizingMaskIntoConstraints="NO" id="NPA-IJ-SA5">
<rect key="frame" x="30" y="740" width="354" height="102"/>
<rect key="frame" x="30" y="740.5" width="354" height="101.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="We will send a reset code to their email" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uv4-iY-Z87" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="17"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="16.5"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JJ0-wA-EP6" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="52" width="354" height="50"/>
<rect key="frame" x="0.0" y="51.5" width="354" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="I7D-T4-sU1"/>
</constraints>
@@ -1179,28 +1179,28 @@ Sent to Your Parents Email</string>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="ph5-wC-m3B">
<rect key="frame" x="20" y="172.5" width="374" height="341.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="339.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Great! Select New Password" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QGk-Uc-mER" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="32.5"/>
<rect key="frame" x="10" y="0.0" width="354" height="31.5"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="27"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="qzU-f1-tq1">
<rect key="frame" x="10" y="102.5" width="354" height="239"/>
<rect key="frame" x="10" y="101.5" width="354" height="238"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="1na-3A-stg">
<rect key="frame" x="0.0" y="0.0" width="354" height="99.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CREATE YOUR PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hYw-Vc-C9h">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter new password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Skx-Ig-91N" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1219,7 +1219,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht0-v3-TeN">
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -1227,16 +1227,16 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="Rwa-zV-eg9">
<rect key="frame" x="0.0" y="139.5" width="354" height="99.5"/>
<rect key="frame" x="0.0" y="139" width="354" height="99"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CONFIRM YOUR PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6LZ-Ed-gCK">
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="confirm your password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="JRR-Bk-5UP" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1255,7 +1255,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B3H-EX-OA7">
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -1411,46 +1411,63 @@ Sent to Your Parents Email</string>
</objects>
<point key="canvasLocation" x="799" y="710"/>
</scene>
<!--Login NavVC-->
<scene sceneID="CN3-gS-caP">
<objects>
<navigationController storyboardIdentifier="LoginNavVC" automaticallyAdjustsScrollViewInsets="NO" navigationBarHidden="YES" id="bHr-RA-yCX" customClass="LoginNavVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="h7h-Q6-GoK">
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<nil name="viewControllers"/>
<connections>
<segue destination="vuc-DA-J2M" kind="relationship" relationship="rootViewController" id="46t-xJ-5Cu"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="gRv-iT-0nd" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3098.5507246376815" y="-27.455357142857142"/>
</scene>
</scenes>
<designables>
<designable name="42K-Uu-lPQ">
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
</designable>
<designable name="4gw-z0-s4a">
<size key="intrinsicContentSize" width="200.5" height="20"/>
<size key="intrinsicContentSize" width="198" height="19"/>
</designable>
<designable name="68c-1b-KSI">
<size key="intrinsicContentSize" width="201.5" height="21"/>
<size key="intrinsicContentSize" width="199" height="20.5"/>
</designable>
<designable name="81S-Fa-CiD">
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
</designable>
<designable name="DSB-Ge-wNO">
<size key="intrinsicContentSize" width="210" height="21"/>
<size key="intrinsicContentSize" width="166" height="20.5"/>
</designable>
<designable name="Hcd-Mm-IxW">
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
</designable>
<designable name="JRR-Bk-5UP">
<size key="intrinsicContentSize" width="218" height="20"/>
<size key="intrinsicContentSize" width="214.5" height="19"/>
</designable>
<designable name="MpT-bm-drv">
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
</designable>
<designable name="Skx-Ig-91N">
<size key="intrinsicContentSize" width="199" height="20"/>
<size key="intrinsicContentSize" width="196.5" height="19"/>
</designable>
<designable name="iJE-dm-qal">
<size key="intrinsicContentSize" width="200.5" height="20"/>
<size key="intrinsicContentSize" width="198" height="19"/>
</designable>
<designable name="m50-FZ-yVO">
<size key="intrinsicContentSize" width="201.5" height="21"/>
<size key="intrinsicContentSize" width="199" height="20.5"/>
</designable>
<designable name="tgW-LH-XfR">
<size key="intrinsicContentSize" width="169.5" height="21"/>
<size key="intrinsicContentSize" width="168" height="20.5"/>
</designable>
<designable name="wy2-0C-rxG">
<size key="intrinsicContentSize" width="201.5" height="21"/>
<size key="intrinsicContentSize" width="199" height="20.5"/>
</designable>
</designables>
<resources>

View File

@@ -0,0 +1,29 @@
//
// LoginNavVC.swift
// WOKA
//
// Created by MacBook Pro on 28/05/24.
//
import UIKit
class LoginNavVC: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}

View File

@@ -25,8 +25,8 @@ class LoginVC: UIViewController {
vm.vc = self
vm.initView()
self.userNameTF.text = "tests104"
self.passwordTF.text = "123456"
self.userNameTF.text = "rizwan"
self.passwordTF.text = "Rizwan@123"
}
@IBAction func loginBtnTapped(_ sender: LocalisedElementsButton) {

View File

@@ -15,7 +15,7 @@ struct UserDataDM: Codable {
struct ResultData: Codable {
let id: Int?
let username, fullname: String?
let gender: Gender?
// let gender: Gender?
let birthdate, email: String?
let avtar: String?
let userType: String?
@@ -26,7 +26,8 @@ struct UserDataDM: Codable {
let alreadyLoggedIn: Bool?
enum CodingKeys: String, CodingKey {
case id, username, fullname, gender, birthdate, email, avtar
case id, username, fullname, birthdate, email, avtar
// case gender
case userType = "user_type"
case languageMasterID = "language_master_id"
case lastLogin = "last_login"

View File

@@ -100,6 +100,11 @@ class LoginVM{
/*
if user is not logined on other device directly nav him to home
*/
self.vc.toast(msg: data.message ?? K.ConstantString.unRecognised, time: 2) {
UserDefaults.standard.set(true, forKey: K.UserDefaultsStruct.isUserLogined)
UserDefaults.standard.set(dataResult.rememberToken, forKey: K.UserDefaultsStruct.userAccessToken)
UIApplication.setRootView(SideMenuController.instantiate(from: .Home))
}
}
default:
break
@@ -132,7 +137,10 @@ class LoginVM{
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
case 1:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2) {
UserDefaults.standard.set(true, forKey: K.UserDefaultsStruct.isUserLogined)
UIApplication.setRootView(SideMenuController.instantiate(from: .Home))
}
default:
break
}
@@ -167,9 +175,7 @@ class LoginVM{
case 1:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2) {
let sb1 = UIStoryboard(name: "Home", bundle: nil)
let vc1 = sb1.instantiateViewController(withIdentifier: "SideMenu") as! SideMenuController
self.vc.navigationController?.pushViewController(vc1, animated: true)
UIApplication.setRootView(SideMenuController.instantiate(from: .Home))
}
default:
break

View File

@@ -18,6 +18,8 @@ extension K{
// App Update
static let appUpdateSkipVer = "appUpdateSkipVer"
static let themeDefault = "themeDefault"
static let isUserLogined = "isUserLogined"
static let userAccessToken = "userAccessToken"
}
}

View File

@@ -16,6 +16,5 @@ extension UIViewController{
self.view.isUserInteractionEnabled = true
completionBlock?()
})
}
}

View File

@@ -52,11 +52,11 @@ public extension UIView {
private var activeToasts: NSMutableArray {
get {
if let activeToasts = objc_getAssociatedObject(self, ToastKeys.activeToasts) as? NSMutableArray {
if let activeToasts = objc_getAssociatedObject(self, &ToastKeys.activeToasts) as? NSMutableArray {
return activeToasts
} else {
let activeToasts = NSMutableArray()
objc_setAssociatedObject(self, ToastKeys.activeToasts, activeToasts, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
objc_setAssociatedObject(self, &ToastKeys.activeToasts, activeToasts, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
return activeToasts
}
}
@@ -64,11 +64,11 @@ public extension UIView {
private var queue: NSMutableArray {
get {
if let queue = objc_getAssociatedObject(self, ToastKeys.queue) as? NSMutableArray {
if let queue = objc_getAssociatedObject(self, &ToastKeys.queue) as? NSMutableArray {
return queue
} else {
let queue = NSMutableArray()
objc_setAssociatedObject(self, ToastKeys.queue, queue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
objc_setAssociatedObject(self, &ToastKeys.queue, queue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
return queue
}
}
@@ -93,7 +93,7 @@ public extension UIView {
let toast = try toastViewForMessage(message, title: title, image: image, style: style)
showToast(toast, duration: duration, position: position, completion: completion)
} catch ToastError.missingParameters {
print("Error: message, title, and image are all nil")
// print("Error: message, title, and image are all nil")
} catch {}
}
@@ -114,7 +114,7 @@ public extension UIView {
let toast = try toastViewForMessage(message, title: title, image: image, style: style)
showToast(toast, duration: duration, point: point, completion: completion)
} catch ToastError.missingParameters {
print("Error: message, title, and image cannot all be nil")
// print("Error: message, title, and image cannot all be nil")
} catch {}
}
@@ -148,11 +148,11 @@ public extension UIView {
didTap will be `true` if the toast view was dismissed from a tap.
*/
func showToast(_ toast: UIView, duration: TimeInterval = ToastManager.shared.duration, point: CGPoint, completion: ((_ didTap: Bool) -> Void)? = nil) {
objc_setAssociatedObject(toast, ToastKeys.completion, ToastCompletionWrapper(completion), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(toast, &ToastKeys.completion, ToastCompletionWrapper(completion), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
if ToastManager.shared.isQueueEnabled, activeToasts.count > 0 {
objc_setAssociatedObject(toast, ToastKeys.duration, NSNumber(value: duration), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(toast, ToastKeys.point, NSValue(cgPoint: point), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(toast, &ToastKeys.duration, NSNumber(value: duration), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(toast, &ToastKeys.point, NSValue(cgPoint: point), .OBJC_ASSOCIATION_RETAIN_NONATOMIC);
queue.add(toast)
} else {
@@ -232,14 +232,14 @@ public extension UIView {
@param position The toast's position
*/
// func makeToastActivity(_ position: ToastPosition) {
// // sanity
// guard objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView == nil else { return }
//
// let toast = createToastActivityView()
// let point = position.centerPoint(forToast: toast, inSuperview: self)
// makeToastActivity(toast, point: point)
// }
func makeToastActivity(_ position: ToastPosition) {
// sanity
guard objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView == nil else { return }
let toast = createToastActivityView()
let point = position.centerPoint(forToast: toast, inSuperview: self)
makeToastActivity(toast, point: point)
}
/**
Creates and displays a new toast activity indicator view at a specified position.
@@ -253,24 +253,24 @@ public extension UIView {
@param point The toast's center point
*/
// func makeToastActivity(_ point: CGPoint) {
// // sanity
// guard objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView == nil else { return }
//
// let toast = createToastActivityView()
// makeToastActivity(toast, point: point)
// }
func makeToastActivity(_ point: CGPoint) {
// sanity
guard objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView == nil else { return }
let toast = createToastActivityView()
makeToastActivity(toast, point: point)
}
/**
Dismisses the active toast activity indicator view.
*/
func hideToastActivity() {
if let toast = objc_getAssociatedObject(self, ToastKeys.activityView) as? UIView {
if let toast = objc_getAssociatedObject(self, &ToastKeys.activityView) as? UIView {
UIView.animate(withDuration: ToastManager.shared.style.fadeDuration, delay: 0.0, options: [.curveEaseIn, .beginFromCurrentState], animations: {
toast.alpha = 0.0
}) { _ in
toast.removeFromSuperview()
objc_setAssociatedObject(self, ToastKeys.activityView, nil, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
objc_setAssociatedObject(self, &ToastKeys.activityView, nil, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
@@ -281,7 +281,7 @@ public extension UIView {
toast.alpha = 0.0
toast.center = point
objc_setAssociatedObject(self, ToastKeys.activityView, toast, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
objc_setAssociatedObject(self, &ToastKeys.activityView, toast, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
self.addSubview(toast)
@@ -290,29 +290,29 @@ public extension UIView {
})
}
// private func createToastActivityView() -> UIView {
// let style = ToastManager.shared.style
//
// let activityView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: style.activitySize.width, height: style.activitySize.height))
// activityView.backgroundColor = style.activityBackgroundColor
// activityView.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleTopMargin, .flexibleBottomMargin]
// activityView.layer.cornerRadius = style.cornerRadius
//
// if style.displayShadow {
// activityView.layer.shadowColor = style.shadowColor.cgColor
// activityView.layer.shadowOpacity = style.shadowOpacity
// activityView.layer.shadowRadius = style.shadowRadius
// activityView.layer.shadowOffset = style.shadowOffset
// }
//
// let activityIndicatorView = UIActivityIndicatorView(style: .whiteLarge)
// activityIndicatorView.center = CGPoint(x: activityView.bounds.size.width / 2.0, y: activityView.bounds.size.height / 2.0)
// activityView.addSubview(activityIndicatorView)
// activityIndicatorView.color = style.activityIndicatorColor
// activityIndicatorView.startAnimating()
//
// return activityView
// }
private func createToastActivityView() -> UIView {
let style = ToastManager.shared.style
let activityView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: style.activitySize.width, height: style.activitySize.height))
activityView.backgroundColor = style.activityBackgroundColor
activityView.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleTopMargin, .flexibleBottomMargin]
activityView.layer.cornerRadius = style.cornerRadius
if style.displayShadow {
activityView.layer.shadowColor = style.shadowColor.cgColor
activityView.layer.shadowOpacity = style.shadowOpacity
activityView.layer.shadowRadius = style.shadowRadius
activityView.layer.shadowOffset = style.shadowOffset
}
let activityIndicatorView = UIActivityIndicatorView(style: .whiteLarge)
activityIndicatorView.center = CGPoint(x: activityView.bounds.size.width / 2.0, y: activityView.bounds.size.height / 2.0)
activityView.addSubview(activityIndicatorView)
activityIndicatorView.color = style.activityIndicatorColor
activityIndicatorView.startAnimating()
return activityView
}
// MARK: - Private Show/Hide Methods
@@ -335,12 +335,12 @@ public extension UIView {
}) { _ in
let timer = Timer(timeInterval: duration, target: self, selector: #selector(UIView.toastTimerDidFinish(_:)), userInfo: toast, repeats: false)
RunLoop.main.add(timer, forMode: .common)
objc_setAssociatedObject(toast, ToastKeys.timer, timer, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
objc_setAssociatedObject(toast, &ToastKeys.timer, timer, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
private func hideToast(_ toast: UIView, fromTap: Bool) {
if let timer = objc_getAssociatedObject(toast, ToastKeys.timer) as? Timer {
if let timer = objc_getAssociatedObject(toast, &ToastKeys.timer) as? Timer {
timer.invalidate()
}
@@ -350,11 +350,11 @@ public extension UIView {
toast.removeFromSuperview()
self.activeToasts.remove(toast)
if let wrapper = objc_getAssociatedObject(toast, ToastKeys.completion) as? ToastCompletionWrapper, let completion = wrapper.completion {
if let wrapper = objc_getAssociatedObject(toast, &ToastKeys.completion) as? ToastCompletionWrapper, let completion = wrapper.completion {
completion(fromTap)
}
if let nextToast = self.queue.firstObject as? UIView, let duration = objc_getAssociatedObject(nextToast, ToastKeys.duration) as? NSNumber, let point = objc_getAssociatedObject(nextToast, ToastKeys.point) as? NSValue {
if let nextToast = self.queue.firstObject as? UIView, let duration = objc_getAssociatedObject(nextToast, &ToastKeys.duration) as? NSNumber, let point = objc_getAssociatedObject(nextToast, &ToastKeys.point) as? NSValue {
self.queue.removeObject(at: 0)
self.showToast(nextToast, duration: duration.doubleValue, point: point.cgPointValue)
}

View File

@@ -7,6 +7,10 @@
import UIKit
extension Notification.Name {
static let languageDidChange = Notification.Name("languageDidChange")
}
class LocalisedElementsLabel: UILabel {
override init(frame: CGRect) {
@@ -21,6 +25,19 @@ class LocalisedElementsLabel: UILabel {
}
private func setup() {
updateText()
NotificationCenter.default.addObserver(self, selector: #selector(languageDidChange), name: .languageDidChange, object: nil)
}
deinit {
NotificationCenter.default.removeObserver(self, name: .languageDidChange, object: nil)
}
@objc private func languageDidChange() {
updateText()
}
private func updateText() {
self.text = self.text?.localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
}
}
@@ -40,6 +57,19 @@ class LocalisedElementsButton : UIButton {
}
private func setup() {
updateText()
NotificationCenter.default.addObserver(self, selector: #selector(updateBtnText), name: .languageDidChange, object: nil)
}
deinit {
NotificationCenter.default.removeObserver(self, name: .languageDidChange, object: nil)
}
@objc private func updateBtnText() {
updateText()
}
private func updateText() {
self.setTitle(self.titleLabel?.text?.localized(loc: AuthFunc.shareInstance.languageSelected.rawValue), for: .normal)
}
}

View File

@@ -20,7 +20,7 @@
<!--Side Menu Controller-->
<scene sceneID="XCR-DI-hN2">
<objects>
<viewController storyboardIdentifier="SideMenu" id="jHz-IY-SVp" customClass="SideMenuController" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="SideMenuController" id="jHz-IY-SVp" customClass="SideMenuController" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="10X-qX-Sn2">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -71,7 +71,7 @@
<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="335" height="976"/>
<rect key="frame" x="0.0" y="20" width="335" height="974"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Xny-eg-3V4">
<rect key="frame" x="25" y="0.0" width="295" height="30"/>
@@ -98,7 +98,7 @@
</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="295" height="186.5"/>
<rect key="frame" x="25" y="60" width="295" height="187"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Wst-a7-Npy">
<rect key="frame" x="51.5" y="0.0" width="192" height="90"/>
@@ -118,6 +118,11 @@
<constraint firstAttribute="trailing" secondItem="9zy-xC-ddd" secondAttribute="trailing" constant="10" id="blZ-OX-VGa"/>
<constraint firstAttribute="bottom" secondItem="9zy-xC-ddd" secondAttribute="bottom" constant="10" id="tTs-WE-tXn"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="45"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@@ -128,14 +133,25 @@
<constraint firstItem="HcQ-Ty-2GV" firstAttribute="centerX" secondItem="Wst-a7-Npy" secondAttribute="centerX" id="n4m-1f-Jwj"/>
</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="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="37.5" y="141.5" width="220" height="45"/>
<stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="nhO-F4-ZCe">
<rect key="frame" x="103.5" y="105" width="88" height="22"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hello" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="suo-d0-ZWN" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="44" height="22"/>
<fontDescription key="fontDescription" name="Exo2-SemiBold" family="Exo 2" pointSize="18"/>
<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="User" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="G0X-jh-qqG">
<rect key="frame" x="49" y="0.0" width="39" height="22"/>
<fontDescription key="fontDescription" name="Exo2-SemiBold" family="Exo 2" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" adjustsImageSizeForAccessibilityContentSizeCategory="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mCq-h5-pMf" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="37.5" y="142" 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"/>
@@ -147,20 +163,31 @@
<state key="normal" title="LOGOUT">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<connections>
<action selector="logoutBtnTapped:" destination="yYJ-KT-PYn" eventType="touchUpInside" id="Aza-fG-0gh"/>
</connections>
</button>
</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="295" height="189.5"/>
<rect key="frame" x="25" y="277" width="295" height="187"/>
<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="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"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="97O-hX-edI" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="124" y="0.0" width="47.5" height="17"/>
<attributedString key="attributedText">
<fragment content="THEME">
<attributes>
<color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<font key="NSFont" size="14" name="Exo2-Bold"/>
<font key="NSOriginalFont" size="16" name="GeezaPro"/>
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
</attributes>
</fragment>
</attributedString>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="NLo-Lc-0nk">
<rect key="frame" x="11.5" y="29.5" width="272" height="160"/>
<rect key="frame" x="11.5" y="27" width="272" height="160"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eUd-z5-WmN">
<rect key="frame" x="20" y="0.0" width="106" height="160"/>
@@ -247,7 +274,7 @@
</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="295" height="80"/>
<rect key="frame" x="25" y="494" width="295" height="80"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2Ss-sF-9JC">
<rect key="frame" x="0.0" y="0.0" width="295" height="0.5"/>
@@ -269,6 +296,9 @@
<segment title="हिन्दी"/>
</segments>
<color key="selectedSegmentTintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<connections>
<action selector="languageSwitchSlide:" destination="yYJ-KT-PYn" eventType="valueChanged" id="PS6-SM-s3h"/>
</connections>
</segmentedControl>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uY8-gn-7UA">
<rect key="frame" x="265" y="0.0" width="30" height="45"/>
@@ -288,7 +318,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="295" height="192"/>
<rect key="frame" x="25" y="604" 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"/>
@@ -328,7 +358,7 @@
</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="295" height="148"/>
<rect key="frame" x="25" y="826" width="295" height="148"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kdd-R6-VSK">
<rect key="frame" x="0.0" y="0.0" width="295" height="0.5"/>
@@ -456,6 +486,7 @@
<barButtonItem key="backBarButtonItem" title=" " id="Ro0-vL-itb"/>
</navigationItem>
<connections>
<outlet property="avatarImage" destination="9zy-xC-ddd" id="efq-RR-ZHd"/>
<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"/>
@@ -465,6 +496,7 @@
<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"/>
<outlet property="userName" destination="G0X-jh-qqG" id="WXZ-cp-qkE"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="WmS-PJ-wRh" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
@@ -604,7 +636,7 @@
</objects>
<point key="canvasLocation" x="3365" y="195"/>
</scene>
<!--Home-->
<!--HOME-->
<scene sceneID="QO5-LY-LJh">
<objects>
<viewController storyboardIdentifier="HomeVC" id="M4c-Ct-Tjk" customClass="HomeVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
@@ -625,7 +657,7 @@
<constraint firstAttribute="bottom" secondItem="xah-cJ-vgJ" secondAttribute="bottom" id="rLs-r9-LQb"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="Home" image="HomeIcon" id="9MY-CD-HSi"/>
<tabBarItem key="tabBarItem" title="HOME" image="HomeIcon" id="9MY-CD-HSi"/>
<connections>
<outlet property="containerView" destination="xah-cJ-vgJ" id="Q7S-hL-c03"/>
</connections>
@@ -649,10 +681,10 @@
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
<systemColor name="systemCyanColor">
<color red="0.19607843137254902" green="0.67843137254901964" blue="0.90196078431372551" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="0.1960784314" green="0.67843137249999996" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
<systemColor name="systemGreenColor">
<color red="0.20392156862745098" green="0.7803921568627451" blue="0.34901960784313724" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="0.20392156859999999" green="0.78039215689999997" blue="0.34901960780000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
</resources>
</document>

View File

@@ -11,3 +11,21 @@
/* Class = "UIButton"; normalTitle = "English"; ObjectID = "XdB-NB-osA"; */
"XdB-NB-osA.normalTitle" = "English";
/*
THEME 1
*/
"घर" = "HOME";
"वोका का अन्वेषण करें" = "EXPLORE WOKA";
"मेरी सूची" = "MY LIST";
"वेब सीरीज" = "WEB SERIES";
"लाइव टीवी" = "LIVE TV";
"दुकान" = "SHOP";
"कराओके" = "KARAOKE";
"ऑडियो-किताबें" = "AUDIO BOOKS";
"खेल" = "GAMES";
"वोकलैंड में आपका स्वागत है" = "Welcome to WOKALAND";
"नमस्ते" = "Hello";
"अधिक" = "MORE";
"थीम" = "THEME";
"लॉग आउट" = "LOGOUT";

View File

@@ -138,3 +138,37 @@
Avatar VC
*/
"Please select avatar" = "कृपया अवतार चुनें";
/*
Theme 1
*/
"HOME" = "घर";
"EXPLORE WOKA" = "वोका का अन्वेषण करें";
"MY LIST" = "मेरी सूची";
"WEB SERIES" = "वेब सीरीज";
"LIVE TV" = "लाइव टीवी";
"SHOP" = "दुकान";
"KARAOKE" = "कराओके";
"AUDIO BOOKS" = "ऑडियो-किताबें";
"GAMES" = "खेल";
"Welcome to WOKALAND" = "वोकलैंड में आपका स्वागत है";
"Hello" = "नमस्ते";
"MORE" = "अधिक";
"THEME" = "थीम";
"LOGOUT" = "लॉग आउट";
/*
<string name="home">घर</string>
<string name="explore_woka">वोका का अन्वेषण करें</string>
<string name="my_list">मेरी सूची</string>
<string name="hello">नमस्ते</string>
<string name="web_series">वेब सीरीज</string>
<string name="audio_books">ऑडियो-किताबें</string>
<string name="play">खेल</string>
<string name="karaoke">कराओके</string>
<string name="shop">दुकान</string>
<string name="more">और</string>
<string name="live_tv">लाइव टीवी</string>
<string name="welcome_to_wokaland">वोकलैंड में आपका स्वागत है</string>
*/

View File

@@ -19,7 +19,13 @@ class AuthFunc{
var player: AVQueuePlayer?
var playerLooper: AVPlayerLooper?
var userType = UserType.adult
var languageSelected = LocalizedEnum.english
var userData : UserDataDM.ResultData?
var languageSelected = LocalizedEnum.english {
didSet {
NotificationCenter.default.post(name: .languageDidChange, object: nil)
}
}
var authID = String()
var authPass = String()
@@ -58,12 +64,27 @@ class AuthFunc{
}
}
func checkLogin() -> Bool{
let isLoginned = UserDefaults.standard.bool(forKey: K.UserDefaultsStruct.isUserLogined)
return isLoginned
}
/*
This func will return the access token saved at the time of login
*/
func getAccessToken() -> String{
let accessToken = UserDefaults.standard.string(forKey: K.UserDefaultsStruct.userAccessToken)
return accessToken ?? ""
}
/*
This func will remove the selected userdefaults while logout
*/
func logout(){
//Reset Theme to defaults
UserDefaults.standard.setValue(nil, forKey: K.UserDefaultsStruct.themeDefault)
UserDefaults.standard.setValue(nil, forKey: K.UserDefaultsStruct.isUserLogined)
userData = nil
}
}

View File

@@ -67,7 +67,7 @@ extension AppDelegate {
ToastManager.shared.style = style
// toggle "tap to dismiss" functionality
ToastManager.shared.isTapToDismissEnabled = true
ToastManager.shared.isTapToDismissEnabled = false
// toggle queueing behavior
ToastManager.shared.isQueueEnabled = false

View File

@@ -0,0 +1,99 @@
//
// UIApplicationSwitchRoot.swift
// WOKA
//
// Created by MacBook Pro on 28/05/24.
//
import UIKit
enum RootViewAnimations{
case login
case logout
}
// MARK: - Extension to UIApplication to manage root view controller transitions with animations.
extension UIApplication {
// Static variable defining the animation option for login transition.
static var loginAnimation: UIView.AnimationOptions = .transitionCrossDissolve
// Static variable defining the animation option for logout transition.
static var logoutAnimation: UIView.AnimationOptions = .curveLinear
// Static method to set the root view controller of the key window with optional animation.
public static func setRootView(_ viewController: UIViewController,
// isLogin: Bool,
animated: Bool = true,
duration: TimeInterval = 0.5,
completion: (() -> Void)? = nil) {
// Safely unwrap the key window of the application.
guard let keyWindow = UIApplication.shared.keyWindowInConnectedScenes else { return }
// Choose the animation option based on login or logout (here we always use loginAnimation).
let options: UIView.AnimationOptions = loginAnimation
// If animation is not required, set the root view controller immediately.
guard animated else {
keyWindow.rootViewController = viewController
return
}
// Perform the transition animation for changing the root view controller.
UIView.transition(with: keyWindow, duration: duration, options: options, animations: {
// Temporarily disable animations for setting the root view controller.
let oldState = UIView.areAnimationsEnabled
UIView.setAnimationsEnabled(false)
UIApplication.shared.keyWindowInConnectedScenes?.rootViewController = viewController
UIView.setAnimationsEnabled(oldState)
}) { _ in
// Call the completion handler if provided.
completion?()
}
}
}
// MARK: - The enum AppStoryboard represents different storyboards in the application.
enum AppStoryboard: String {
// These are the cases of the enum, each representing a storyboard name.
case Login = "Login"
case Main = "Main"
case Home = "Home"
case AuthenticationSB = "AuthenticationSB"
// Computed property that returns an instance of UIStoryboard for the given case.
var instance: UIStoryboard {
// Creates and returns a UIStoryboard instance with the name of the enum case and the main bundle.
return UIStoryboard(name: self.rawValue, bundle: Bundle.main)
}
// Generic function to instantiate and return a view controller of the specified type from the storyboard.
func viewController<T: UIViewController>(viewControllerClass: T.Type, function: String = #function, line: Int = #line, file: String = #file) -> T {
// Get the storyboard ID from the view controller class.
let storyboardID = (viewControllerClass as UIViewController.Type).storyboardID
// Attempt to instantiate the view controller with the given identifier from the storyboard instance.
guard let scene = instance.instantiateViewController(withIdentifier: storyboardID) as? T else {
// If the view controller cannot be instantiated, a runtime error is thrown with a detailed message.
fatalError("ViewController with identifier \(storyboardID), not found in \(self.rawValue) Storyboard.\nFile : \(file) \nLine Number : \(line) \nFunction : \(function)")
}
// Return the instantiated view controller.
return scene
}
}
// MARK: - Extension to UIViewController to get the storyboard identifier.
extension UIViewController {
// Computed property to return the class name as the storyboard ID.
class var storyboardID: String {
return "\(self)"
}
static func instantiate(from: AppStoryboard) -> Self {
return from.viewController(viewControllerClass: self)
}
}

View File

@@ -48,6 +48,11 @@ struct APIEndPoints {
static let forgot_password_send_otp = makeURL(path: "forgot_password_send_otp")
static let forgot_password_verify_otp = makeURL(path: "forgot_password_verify_otp")
static let update_password = makeURL(path: "update_password")
/*
UserData
*/
static let get_user_data = makeURL(path: "get_user_data")
}
// Other endpoint categories...

View File

@@ -3,7 +3,8 @@
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -63,10 +64,41 @@
<constraint firstAttribute="height" constant="60" id="uib-PY-aKX"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b8h-6Z-OJr">
<rect key="frame" x="189.5" y="817" width="35" height="35"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="medium" translatesAutoresizingMaskIntoConstraints="NO" id="WFZ-SB-V1t">
<rect key="frame" x="0.0" y="0.0" width="35" height="35"/>
<constraints>
<constraint firstAttribute="height" constant="35" id="Hy3-fe-fxq"/>
<constraint firstAttribute="width" secondItem="WFZ-SB-V1t" secondAttribute="height" multiplier="1:1" id="wIx-4l-tWy"/>
</constraints>
<color key="color" name="TextDarkBlue"/>
</activityIndicatorView>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="T63-z7-Ddb">
<rect key="frame" x="0.0" y="0.0" width="0.0" height="35"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain">
<attributedString key="attributedTitle">
<fragment content="Retry?">
<attributes>
<font key="NSFont" size="18" name="Exo2-Bold"/>
</attributes>
</fragment>
</attributedString>
</buttonConfiguration>
<connections>
<action selector="retryBtnTapped:" destination="BYZ-38-t0r" eventType="touchUpInside" id="YyY-lB-4se"/>
</connections>
</button>
</subviews>
</stackView>
</subviews>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="b8h-6Z-OJr" secondAttribute="bottom" constant="10" id="8Oc-WY-2aa"/>
<constraint firstItem="KHl-9W-vAe" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="30" id="E1n-Eh-P1N"/>
<constraint firstAttribute="bottom" secondItem="OYq-ie-PCX" secondAttribute="bottom" id="JoJ-CY-PKV"/>
<constraint firstItem="OYq-ie-PCX" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="QIp-RX-W6O"/>
@@ -75,14 +107,17 @@
<constraint firstAttribute="trailing" secondItem="OYq-ie-PCX" secondAttribute="trailing" id="eul-m2-arb"/>
<constraint firstItem="0T1-bR-Cvy" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="fdB-2S-YYe"/>
<constraint firstItem="KHl-9W-vAe" firstAttribute="top" secondItem="0T1-bR-Cvy" secondAttribute="bottom" constant="80" id="ld4-Um-qic"/>
<constraint firstItem="b8h-6Z-OJr" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="rKT-Yg-uOY"/>
<constraint firstItem="OYq-ie-PCX" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" id="yVI-ZY-646"/>
</constraints>
</view>
<navigationItem key="navigationItem" id="cMP-Th-2kL"/>
<connections>
<outlet property="activityIndicator" destination="WFZ-SB-V1t" id="A9T-Bi-mAd"/>
<outlet property="englishBtn" destination="XdB-NB-osA" id="eiP-q9-9TH"/>
<outlet property="hindiBtn" destination="SYp-e1-w6s" id="mgg-al-7J8"/>
<outlet property="languageBtnStack" destination="KHl-9W-vAe" id="ssW-dX-fxk"/>
<outlet property="retryBtn" destination="T63-z7-Ddb" id="F0Y-wd-VEP"/>
<outlet property="wokaLogo" destination="0T1-bR-Cvy" id="d6a-va-BqC"/>
<outlet property="wokaOriginY" destination="fdB-2S-YYe" id="g0Q-Zd-FKu"/>
</connections>
@@ -240,10 +275,10 @@
</objects>
<point key="canvasLocation" x="1881.1594202898552" y="2.6785714285714284"/>
</scene>
<!--Navigation Controller-->
<!--Main Nav Controller-->
<scene sceneID="lM2-wG-a76">
<objects>
<navigationController automaticallyAdjustsScrollViewInsets="NO" navigationBarHidden="YES" id="v6B-41-NJx" sceneMemberID="viewController">
<navigationController storyboardIdentifier="MainNavController" automaticallyAdjustsScrollViewInsets="NO" navigationBarHidden="YES" id="v6B-41-NJx" customClass="MainNavController" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="Odo-w6-zNL">
<autoresizingMask key="autoresizingMask"/>
@@ -489,6 +524,9 @@
<image name="16Years" width="99" height="79.333335876464844"/>
<image name="BackgroundSplash" width="428" height="926"/>
<image name="WokaLogo" width="2224" height="450.5"/>
<namedColor name="TextDarkBlue">
<color red="0.10599999874830246" green="0.050999999046325684" blue="0.60399997234344482" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>

View File

@@ -0,0 +1,29 @@
//
// MainNavController.swift
// WOKA
//
// Created by MacBook Pro on 28/05/24.
//
import UIKit
class MainNavController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}

View File

@@ -16,6 +16,9 @@ class SplashVC: UIViewController {
@IBOutlet weak var languageBtnStack: UIStackView!
@IBOutlet weak var wokaOriginY: NSLayoutConstraint!
@IBOutlet weak var retryBtn: UIButton!
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
var vm = SplashVM()
// MARK: - View Life Cycle
@@ -29,11 +32,7 @@ class SplashVC: UIViewController {
}
@IBAction func languageBtnTapped(_ sender: UIButton) {
let sb1 = UIStoryboard(name: "Home", bundle: nil)
let vc1 = sb1.instantiateViewController(withIdentifier: "SideMenu") as! SideMenuController
self.navigationController?.pushViewController(vc1, animated: true)
return
switch sender{
case hindiBtn:
AuthFunc.shareInstance.languageSelected = .hindi
@@ -43,6 +42,15 @@ class SplashVC: UIViewController {
AuthFunc.shareInstance.languageSelected = .english
}
// let sb1 = UIStoryboard(name: "Home", bundle: nil)
// let vc1 = sb1.instantiateViewController(withIdentifier: "SideMenu") as! SideMenuController
// self.navigationController?.pushViewController(vc1, animated: true)
// UIApplication.setRootView(SideMenuController.instantiate(from: .Home))
//
// return
let sb = UIStoryboard(name: K.StoryBoard.main, bundle: nil)
let vc = sb.instantiateViewController(withIdentifier: K.StoryBoardID.OnBoarding.onBoardVC) as! OnBoardVC
@@ -63,6 +71,10 @@ class SplashVC: UIViewController {
navigationController.pushViewController(vc, animated: false)
}
@IBAction func retryBtnTapped(_ sender: UIButton) {
vm.getUserData()
}
func animateImageScale() {
UIView.animate(withDuration: 3.0, delay: 0, options: [], animations: {
self.wokaLogo.transform = CGAffineTransform(scaleX: 1.8, y: 1.8)
@@ -70,21 +82,30 @@ class SplashVC: UIViewController {
let newConstant = wokaOriginY.constant - 50
Timer.scheduledTimer(withTimeInterval: 6, repeats: false) { _ in
Timer.scheduledTimer(withTimeInterval: 6, repeats: false) { [weak self] _ in
guard let self else{return}
/*
If user is loggined no need to shift the woka logo upside to new constant.
Directly Navigate user to home
*/
if AuthFunc.shareInstance.checkLogin(){
vm.getUserData()
return
}
UIView.animate(withDuration: 0.5, animations: {
// Update the constant value of the top constraint
self.wokaOriginY.constant = newConstant
// Inform the layout system to update
self.view.layoutIfNeeded()
}) { _ in
UIView.animate(withDuration: 0.3, delay: 0,options : [.transitionCrossDissolve],animations: {
// Set the isHidden property of the view
self.languageBtnStack.isHidden = false
}) {_ in
// Inform the stack view to update its layout
self.languageBtnStack.layoutIfNeeded()
if !AuthFunc.shareInstance.checkLogin(){
UIView.animate(withDuration: 0.3, delay: 0,options : [.transitionCrossDissolve],animations: {
// Set the isHidden property of the view
self.languageBtnStack.isHidden = false
}) {_ in
// Inform the stack view to update its layout
self.languageBtnStack.layoutIfNeeded()
}
}
}
}

View File

@@ -7,6 +7,7 @@
import UIKit
import AVFoundation
import Alamofire
class SplashVM{
@@ -35,6 +36,7 @@ class SplashVM{
vc.hindiBtn.roundCorner()
vc.englishBtn.roundCorner()
selectTheme()
vc.activityIndicator.stopAnimating()
}
func selectTheme(){
@@ -45,4 +47,51 @@ class SplashVM{
AuthFunc.shareInstance.selectedTheme = .theme1
}
}
func getUserData(){
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
startStopIndicator(start: true)
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Auth.get_user_data, method: .get, headers: headers) { [weak self](result : Result<BaseResponseModel<UserDataDM>, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{return}
switch data.success{
case 0:
startStopIndicator(start: false)
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
case 1:
startStopIndicator(start: false,hide: true)
guard let data = data.data?.result else{return}
AuthFunc.shareInstance.userData = data
UIApplication.setRootView(SideMenuController.instantiate(from: .Home))
default:
break
}
case .failure(let error):
guard let self else{return}
startStopIndicator(start: false)
self.vc.toast(msg: error.localizedDescription , time: 2)
}
}
}
func startStopIndicator(start : Bool , hide : Bool = false){
if hide{
vc.activityIndicator.stopAnimating()
vc.activityIndicator.isHidden = true
vc.retryBtn.isHidden = true
return
}
if start{
vc.activityIndicator.isHidden = false
vc.activityIndicator.startAnimating()
vc.retryBtn.isHidden = true
}else{
vc.activityIndicator.stopAnimating()
vc.activityIndicator.isHidden = true
vc.retryBtn.isHidden = false
}
}
}

View File

@@ -21,7 +21,9 @@ class SideMenuVC: UIViewController {
@IBOutlet weak var themeOneCheckMark: UIImageView!
@IBOutlet weak var themeTwoView: UIView!
@IBOutlet weak var themetwoCheckMark: UIImageView!
@IBOutlet weak var userName: UILabel!
@IBOutlet weak var avatarImage: UIImageView!
var vm = SideMenuVM()
@@ -38,4 +40,40 @@ class SideMenuVC: UIViewController {
@IBAction func closeBtnTapped(_ sender: UIButton) {
self.sideMenuController?.hideMenu()
}
@IBAction func logoutBtnTapped(_ sender: LocalisedElementsButton) {
let sb = UIStoryboard(name: K.StoryBoard.customAlerts, bundle: nil)
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.CustomAlerts.yesNoAlertVC) as! YesNoAlertVC
vcPush.mainTitleText = "WOKA"
vcPush.contentLabel = "Do you want to LOGOUT from the WOKA APP"
vcPush.onDoneBlock = { mode in
switch mode{
case .yes:
//If user clicked to proceed on login. Call the api.
self.sideMenuController?.hideMenu()
AuthFunc.shareInstance.logout()
// UIApplication.setRootView(MainNavController.instantiate(from: .Main))
UIApplication.setRootView(LoginNavVC.instantiate(from: .AuthenticationSB))
case .no:
print("no")
}
}
vcPush.modalPresentationStyle = .overCurrentContext
vcPush.modalTransitionStyle = .crossDissolve
self.present(vcPush, animated: true)
}
@IBAction func languageSwitchSlide(_ sender: CustomizableSegmentControl) {
Timer.scheduledTimer(withTimeInterval: 0.2, repeats: false) { _ in
switch sender.selectedSegmentIndex{
case 0: // English
AuthFunc.shareInstance.languageSelected = .english
case 1: // Hindi
AuthFunc.shareInstance.languageSelected = .hindi
default:
break
}
self.sideMenuController?.hideMenu()
}
}
}

View File

@@ -20,7 +20,16 @@ class TabBarVC: UITabBarController {
self.setupTabBarUI()
self.addCustomTabBarView()
NotificationCenter.default.addObserver(self, selector: #selector(languageDidChange), name: .languageDidChange, object: nil)
}
deinit{
NotificationCenter.default.removeObserver(self, name: .languageDidChange, object: nil)
}
@objc private func languageDidChange() {
updateText()
}
override func viewDidLayoutSubviews() {
@@ -35,6 +44,13 @@ class TabBarVC: UITabBarController {
}
func updateText(){
guard let tabItems = self.tabBar.items else{return}
tabItems[0].title = tabItems[0].title?.localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
tabItems[1].title = tabItems[1].title?.localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
tabItems[2].title = tabItems[2].title?.localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
}
func customizeTabBarItemIconSize() {
// Get a reference to the tab bar controller
if let tabBarController = self.tabBarController {

View File

@@ -13,7 +13,7 @@ class SideMenuVM{
func initView(){
customizeSegmentControl()
AuthFunc.shareInstance.languageSelected == .english ? (vc.languageControl.selectedSegmentIndex = 0) : (vc.languageControl.selectedSegmentIndex = 1)
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))
@@ -51,6 +51,19 @@ class SideMenuVM{
self.themeSelect()
}
}
setData()
}
func setData(){
guard let data = AuthFunc.shareInstance.userData else{return}
//set the first name as the name
vc.userName.text = (data.fullname == nil || data.fullname == "") ? "User" : data.fullname
if let avatar = data.avtar{
//https://wokaland.com/admin/storage/app/public/uploads/avtar/avatar2.png?d=1716889852
vc.avatarImage.imageURL("https://wokaland.com/admin/storage/app/public/uploads/avtar/avatar2.png?d=1716889852",color: .white)
}
}
func themeSelect(){

View File

@@ -73,18 +73,29 @@
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="FM"/>
</button>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="sf9-me-n7i" userLabel="Avatar Stack">
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="sf9-me-n7i" userLabel="Avatar Stack">
<rect key="frame" x="109" y="64" width="175" height="101"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Boy" translatesAutoresizingMaskIntoConstraints="NO" id="o2x-QJ-V9A">
<rect key="frame" x="0.0" y="0.0" width="175" height="47.666666666666664"/>
<rect key="frame" x="62.666666666666657" y="0.0" width="49.666666666666657" height="47.666666666666664"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hi, Vijay" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tQN-s8-9SK">
<rect key="frame" x="0.0" y="52.666666666666671" width="175" height="24"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Pal-S1-L45">
<rect key="frame" x="37.33333333333335" y="52.666666666666671" width="100.66666666666669" height="24"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hello" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YmK-3m-WeD" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="50.333333333333336" height="24"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="User" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tQN-s8-9SK">
<rect key="frame" x="50.333333333333314" y="0.0" width="50.333333333333343" height="24"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Welcome to WOKALAND" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dnl-w0-q5K" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="81.666666666666657" width="175" height="19.333333333333329"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
@@ -183,7 +194,7 @@
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Shop" translatesAutoresizingMaskIntoConstraints="NO" id="z9r-YX-CUk">
<rect key="frame" x="0.0" y="0.0" width="95" height="79"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHOP" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a1C-yY-cjD">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHOP" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a1C-yY-cjD" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="80" width="95" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="QSf-0H-Fwk"/>
@@ -203,7 +214,7 @@
<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"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LIVE TV" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="arX-6A-JO0">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LIVE TV" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="arX-6A-JO0" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="80" width="95" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="Ff3-ym-Dew"/>
@@ -223,7 +234,7 @@
<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"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WEB SERIES" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zmu-oJ-DFc">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WEB SERIES" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zmu-oJ-DFc" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="80" width="95" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="tmo-ie-b2U"/>
@@ -243,7 +254,7 @@
<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"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="GAMES" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="blr-Es-vfw">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="GAMES" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="blr-Es-vfw" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="80" width="95" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="cfa-zV-qLo"/>
@@ -263,7 +274,7 @@
<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"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AUDIO BOOKS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="11" translatesAutoresizingMaskIntoConstraints="NO" id="Y9F-E4-lgm">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AUDIO BOOKS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="11" translatesAutoresizingMaskIntoConstraints="NO" id="Y9F-E4-lgm" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="80.333333333333371" width="114.33333333333333" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="978-3e-GXx"/>
@@ -283,7 +294,7 @@
<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"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="KARAOKE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yyo-6X-Jk4">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="KARAOKE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yyo-6X-Jk4" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="80.333333333333371" width="95" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="Z4M-G5-Rob"/>
@@ -326,7 +337,7 @@
<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">
<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" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<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"/>
@@ -381,6 +392,8 @@
</view>
<tabBarItem key="tabBarItem" title="HOME" image="HomeIcon" selectedImage="HomeIcon" id="4Hm-tg-Heb"/>
<connections>
<outlet property="HelloLabel" destination="YmK-3m-WeD" id="H6O-kI-Xc3"/>
<outlet property="avatarImage" destination="o2x-QJ-V9A" id="rgu-lT-WaZ"/>
<outlet property="cloud1" destination="hnb-h6-Rgs" id="yq6-eE-20d"/>
<outlet property="cloud2" destination="lMA-vm-xCk" id="91P-Rv-qHZ"/>
<outlet property="gradientView" destination="jdZ-WQ-xcr" id="EPt-cC-wNC"/>
@@ -551,7 +564,7 @@
<image name="Star" width="62.666667938232422" height="62.666667938232422"/>
<image name="WebSeries" width="164" height="118.66666412353516"/>
<systemColor name="systemGreenColor">
<color red="0.20392156862745098" green="0.7803921568627451" blue="0.34901960784313724" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color red="0.20392156859999999" green="0.78039215689999997" blue="0.34901960780000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
</resources>
</document>

View File

@@ -17,6 +17,9 @@ class ThemeOneVC: UIViewController {
@IBOutlet weak var homeGrass: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var welcomeLabel: LocalisedElementsLabel!
@IBOutlet weak var HelloLabel: LocalisedElementsLabel!
@IBOutlet weak var avatarImage: UIImageView!
@IBOutlet weak var webSeriesView: UIStackView!
@IBOutlet var star: [UIImageView]!

View File

@@ -27,7 +27,18 @@ class ThemeOneVM{
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)
setData()
}
func setData(){
guard let data = AuthFunc.shareInstance.userData else{return}
//set the first name as the name
vc.nameLabel.text = data.fullname?.components(separatedBy: " ").first
if let avatar = data.avtar{
//https://wokaland.com/admin/storage/app/public/uploads/avtar/avatar2.png?d=1716889852
vc.avatarImage.imageURL("https://wokaland.com/admin/storage/app/public/uploads/avtar/" + avatar)
}
}
// MARK: - Notification Center Handlers
@@ -55,7 +66,8 @@ class ThemeOneVM{
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)
// self.vc.delegate?.didPressSwitchButton(from: self.vc)
}
}
@@ -182,6 +194,7 @@ class ThemeOneVM{
}
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.HelloLabel.textColor = details.textColor
vc.welcomeLabel.textColor = details.textColor
vc.homeGrass.image = UIImage(named: details.grass)
}

View File

@@ -0,0 +1,42 @@
/* Class = "UITabBarItem"; title = "HOME"; ObjectID = "4Hm-tg-Heb"; */
"4Hm-tg-Heb.title" = "HOME";
/* Class = "UILabel"; text = "MORE"; ObjectID = "4pq-lE-hJz"; */
"4pq-lE-hJz.text" = "MORE";
/* Class = "UILabel"; text = "Hi, Vijay"; ObjectID = "IFj-XX-sbq"; */
"IFj-XX-sbq.text" = "Hi, Vijay";
/* Class = "UILabel"; text = "Welcome to WOKALAND"; ObjectID = "Nbe-Ob-bia"; */
"Nbe-Ob-bia.text" = "Welcome to WOKALAND";
/* Class = "UILabel"; text = "AUDIO BOOKS"; ObjectID = "Y9F-E4-lgm"; */
"Y9F-E4-lgm.text" = "AUDIO BOOKS";
/* Class = "UILabel"; text = "Hello"; ObjectID = "YmK-3m-WeD"; */
"YmK-3m-WeD.text" = "Hello";
/* Class = "UILabel"; text = "KARAOKE"; ObjectID = "Yyo-6X-Jk4"; */
"Yyo-6X-Jk4.text" = "KARAOKE";
/* Class = "UILabel"; text = "SHOP"; ObjectID = "a1C-yY-cjD"; */
"a1C-yY-cjD.text" = "SHOP";
/* Class = "UILabel"; text = "LIVE TV"; ObjectID = "arX-6A-JO0"; */
"arX-6A-JO0.text" = "LIVE TV";
/* Class = "UILabel"; text = "GAMES"; ObjectID = "blr-Es-vfw"; */
"blr-Es-vfw.text" = "GAMES";
/* Class = "UILabel"; text = "Explore WOKA"; ObjectID = "cla-Q5-K2m"; */
"cla-Q5-K2m.text" = "Explore WOKA";
/* Class = "UILabel"; text = "Welcome to WOKALAND"; ObjectID = "dnl-w0-q5K"; */
"dnl-w0-q5K.text" = "Welcome to WOKALAND";
/* Class = "UILabel"; text = "User"; ObjectID = "tQN-s8-9SK"; */
"tQN-s8-9SK.text" = "User";
/* Class = "UILabel"; text = "WEB SERIES"; ObjectID = "zmu-oJ-DFc"; */
"zmu-oJ-DFc.text" = "WEB SERIES";

View File

@@ -0,0 +1,42 @@
/* Class = "UITabBarItem"; title = "HOME"; ObjectID = "4Hm-tg-Heb"; */
"4Hm-tg-Heb.title" = "HOME";
/* Class = "UILabel"; text = "MORE"; ObjectID = "4pq-lE-hJz"; */
"4pq-lE-hJz.text" = "MORE";
/* Class = "UILabel"; text = "Hi, Vijay"; ObjectID = "IFj-XX-sbq"; */
"IFj-XX-sbq.text" = "Hi, Vijay";
/* Class = "UILabel"; text = "Welcome to WOKALAND"; ObjectID = "Nbe-Ob-bia"; */
"Nbe-Ob-bia.text" = "Welcome to WOKALAND";
/* Class = "UILabel"; text = "AUDIO BOOKS"; ObjectID = "Y9F-E4-lgm"; */
"Y9F-E4-lgm.text" = "AUDIO BOOKS";
/* Class = "UILabel"; text = "Hello"; ObjectID = "YmK-3m-WeD"; */
"YmK-3m-WeD.text" = "Hello";
/* Class = "UILabel"; text = "KARAOKE"; ObjectID = "Yyo-6X-Jk4"; */
"Yyo-6X-Jk4.text" = "KARAOKE";
/* Class = "UILabel"; text = "SHOP"; ObjectID = "a1C-yY-cjD"; */
"a1C-yY-cjD.text" = "SHOP";
/* Class = "UILabel"; text = "LIVE TV"; ObjectID = "arX-6A-JO0"; */
"arX-6A-JO0.text" = "LIVE TV";
/* Class = "UILabel"; text = "GAMES"; ObjectID = "blr-Es-vfw"; */
"blr-Es-vfw.text" = "GAMES";
/* Class = "UILabel"; text = "Explore WOKA"; ObjectID = "cla-Q5-K2m"; */
"cla-Q5-K2m.text" = "Explore WOKA";
/* Class = "UILabel"; text = "Welcome to WOKALAND"; ObjectID = "dnl-w0-q5K"; */
"dnl-w0-q5K.text" = "Welcome to WOKALAND";
/* Class = "UILabel"; text = "User"; ObjectID = "tQN-s8-9SK"; */
"tQN-s8-9SK.text" = "User";
/* Class = "UILabel"; text = "WEB SERIES"; ObjectID = "zmu-oJ-DFc"; */
"zmu-oJ-DFc.text" = "WEB SERIES";

View File

@@ -0,0 +1,162 @@
{
"sourceLanguage" : "en",
"strings" : {
"4Hm-tg-Heb.title" : {
"comment" : "Class = \"UITabBarItem\"; title = \"HOME\"; ObjectID = \"4Hm-tg-Heb\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "HOME"
}
}
}
},
"4pq-lE-hJz.text" : {
"comment" : "Class = \"UILabel\"; text = \"MORE\"; ObjectID = \"4pq-lE-hJz\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "MORE"
}
}
}
},
"a1C-yY-cjD.text" : {
"comment" : "Class = \"UILabel\"; text = \"SHOP\"; ObjectID = \"a1C-yY-cjD\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "SHOP"
}
}
}
},
"arX-6A-JO0.text" : {
"comment" : "Class = \"UILabel\"; text = \"LIVE TV\"; ObjectID = \"arX-6A-JO0\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "LIVE TV"
}
}
}
},
"blr-Es-vfw.text" : {
"comment" : "Class = \"UILabel\"; text = \"GAMES\"; ObjectID = \"blr-Es-vfw\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "GAMES"
}
}
}
},
"cla-Q5-K2m.text" : {
"comment" : "Class = \"UILabel\"; text = \"Explore WOKA\"; ObjectID = \"cla-Q5-K2m\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Explore WOKA"
}
}
}
},
"dnl-w0-q5K.text" : {
"comment" : "Class = \"UILabel\"; text = \"Welcome to WOKALAND\"; ObjectID = \"dnl-w0-q5K\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Welcome to WOKALAND"
}
}
}
},
"IFj-XX-sbq.text" : {
"comment" : "Class = \"UILabel\"; text = \"Hi, Vijay\"; ObjectID = \"IFj-XX-sbq\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Hi, Vijay"
}
}
}
},
"Nbe-Ob-bia.text" : {
"comment" : "Class = \"UILabel\"; text = \"Welcome to WOKALAND\"; ObjectID = \"Nbe-Ob-bia\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Welcome to WOKALAND"
}
}
}
},
"tQN-s8-9SK.text" : {
"comment" : "Class = \"UILabel\"; text = \"Hi, Vijay\"; ObjectID = \"tQN-s8-9SK\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Hi, Vijay"
}
}
}
},
"Y9F-E4-lgm.text" : {
"comment" : "Class = \"UILabel\"; text = \"AUDIO BOOKS\"; ObjectID = \"Y9F-E4-lgm\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "AUDIO BOOKS"
}
}
}
},
"Yyo-6X-Jk4.text" : {
"comment" : "Class = \"UILabel\"; text = \"KARAOKE\"; ObjectID = \"Yyo-6X-Jk4\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "KARAOKE"
}
}
}
},
"zmu-oJ-DFc.text" : {
"comment" : "Class = \"UILabel\"; text = \"WEB SERIES\"; ObjectID = \"zmu-oJ-DFc\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "WEB SERIES"
}
}
}
}
},
"version" : "1.0"
}