- Worked with woka react native for analysing the issues.

- Finished favourite and like in episode listing screen, also updating the websites view
- Handled the teaser data player play. Also now teaser will play according to category language, titles and desc will be base on app language
- My list merged hindi and English. Now if hindi version is like and same content is aavailable in English it will be replicated
- Handled the fav and likes reload if user navigates from my list to season rising
This commit is contained in:
2024-06-27 19:51:43 +05:30
parent 61262e8529
commit bf98cc89b1
12 changed files with 614 additions and 353 deletions

View File

@@ -133,6 +133,7 @@
52C8B06C2BDA6E87003B51D0 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C8B06B2BDA6E87003B51D0 /* LocalizedString.swift */; };
52C8B0712BDA7512003B51D0 /* PassingCloud.json in Resources */ = {isa = PBXBuildFile; fileRef = 52C8B0702BDA7512003B51D0 /* PassingCloud.json */; };
52C8B0742BDA7626003B51D0 /* OnBoardVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C8B0732BDA7626003B51D0 /* OnBoardVC.swift */; };
52C8D8D42C2D9F3400CA72A6 /* LikeFavCommonFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C8D8D32C2D9F3400CA72A6 /* LikeFavCommonFunc.swift */; };
52CA28FA2BE119F500708B49 /* UserIntrestVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CA28F92BE119F500708B49 /* UserIntrestVC.swift */; };
52CA28FC2BE11A0400708B49 /* UserIntrestVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CA28FB2BE11A0400708B49 /* UserIntrestVM.swift */; };
52CC38C32BDF812F00B74C3E /* LocalisedElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CC38C22BDF812F00B74C3E /* LocalisedElements.swift */; };
@@ -390,6 +391,7 @@
52C8B06B2BDA6E87003B51D0 /* LocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = "<group>"; };
52C8B0702BDA7512003B51D0 /* PassingCloud.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = PassingCloud.json; sourceTree = "<group>"; };
52C8B0732BDA7626003B51D0 /* OnBoardVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnBoardVC.swift; sourceTree = "<group>"; };
52C8D8D32C2D9F3400CA72A6 /* LikeFavCommonFunc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LikeFavCommonFunc.swift; sourceTree = "<group>"; };
52CA28F92BE119F500708B49 /* UserIntrestVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserIntrestVC.swift; sourceTree = "<group>"; };
52CA28FB2BE11A0400708B49 /* UserIntrestVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserIntrestVM.swift; sourceTree = "<group>"; };
52CC38C22BDF812F00B74C3E /* LocalisedElements.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalisedElements.swift; sourceTree = "<group>"; };
@@ -971,6 +973,7 @@
52DAC6492C21767900E2F85B /* Controller */,
52DAC6472C21762900E2F85B /* WebSeries.storyboard */,
52AC2D262C29791500337473 /* JWPlayerManager.swift */,
52C8D8D32C2D9F3400CA72A6 /* LikeFavCommonFunc.swift */,
);
path = WebSeries;
sourceTree = "<group>";
@@ -1583,6 +1586,7 @@
52FDBA7B2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift in Sources */,
9C834EC62C1C1D9500B29A9C /* BlogDetailsVC.swift in Sources */,
9CBCB2A52BE50D49007D7934 /* NewPasswordVC.swift in Sources */,
52C8D8D42C2D9F3400CA72A6 /* LikeFavCommonFunc.swift in Sources */,
9CBCB29F2BE4E13A007D7934 /* ValidatorClass.swift in Sources */,
528BEF602C2C372900FFDAB8 /* ContinueWatchingVC.swift in Sources */,
9CBCB29B2BE4D614007D7934 /* LoginVC.swift in Sources */,

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.66666666666663" width="390" height="203"/>
<rect key="frame" x="20" y="172.66666666666663" width="390" height="201.33333333333337"/>
<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="370" height="33.666666666666664"/>
<rect key="frame" x="10" y="0.0" width="370" height="32.666666666666664"/>
<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="103.66666666666666" width="370" height="99.333333333333343"/>
<rect key="frame" x="10" y="102.66666666666666" width="370" height="98.666666666666657"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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 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.333333333333371" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="370" 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.333333333333371" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666686" width="370" 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="776" width="370" height="102"/>
<rect key="frame" x="30" y="776.66666666666663" width="370" height="101.33333333333337"/>
<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="370" height="17"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="16.333333333333332"/>
<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="370" height="50"/>
<rect key="frame" x="0.0" y="51.333333333333371" width="370" 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.66666666666663" width="390" height="281"/>
<rect key="frame" x="20" y="172.66666666666666" width="390" height="277.66666666666674"/>
<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="370" height="67.333333333333329"/>
<rect key="frame" x="10" y="0.0" width="370" height="65.333333333333329"/>
<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.33333333333337" width="370" height="143.66666666666663"/>
<rect key="frame" x="10" y="135.33333333333331" width="370" height="142.33333333333331"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333314" width="370" height="60"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="370" 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="85" 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.33333333333331" width="370" height="19.333333333333343"/>
<rect key="frame" x="0.0" y="108.66666666666669" width="370" height="18.666666666666671"/>
<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" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="134.66666666666669" width="370" 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="143.66666666666669" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="142.33333333333331" width="370" 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="759.33333333333337" width="370" height="118.66666666666663"/>
<rect key="frame" x="30" y="760.33333333333337" width="370" height="117.66666666666663"/>
<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="370" height="33.666666666666664"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="32.666666666666664"/>
<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="68.666666666666629" width="370" height="50"/>
<rect key="frame" x="0.0" y="67.666666666666629" width="370" 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.66666666666663" width="390" height="510"/>
<rect key="frame" x="20" y="172.66666666666666" width="390" height="505.33333333333337"/>
<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="370" height="65"/>
<rect key="frame" x="10" y="0.0" width="370" 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="370" height="375"/>
<rect key="frame" x="10" y="133.00000000000003" width="370" height="372.33333333333337"/>
<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="370" height="99.333333333333329"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="98.666666666666671"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333314" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666629" width="370" 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.333333333333314" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666629" width="370" 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.33333333333331" width="370" height="99.333333333333314"/>
<rect key="frame" x="0.0" y="128.66666666666663" width="370" height="98.666666666666686"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333314" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="370" 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.333333333333371" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666686" width="370" 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="258.66666666666669" width="370" height="116.33333333333331"/>
<rect key="frame" x="0.0" y="257.33333333333331" width="370" height="115"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333258" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666629" width="370" 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.333333333333258" width="370" height="17"/>
<rect key="frame" x="0.0" y="98.666666666666629" width="370" height="16.333333333333329"/>
<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"/>
@@ -833,35 +833,35 @@ Sent to Your Parents Email</string>
<rect key="frame" x="0.0" y="107.66666666666669" width="430" height="790.33333333333326"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="aNK-S5-pik">
<rect key="frame" x="0.0" y="0.0" width="430" height="770"/>
<rect key="frame" x="0.0" y="0.0" width="430" height="766.33333333333337"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y9q-mR-AlW">
<rect key="frame" x="20" y="0.0" width="390" height="62.333333333333336"/>
<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="62.333333333333343" width="390" height="447.33333333333326"/>
<rect key="frame" x="20" y="62.333333333333343" width="390" height="444.33333333333326"/>
<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="390" height="32.666666666666664"/>
<rect key="frame" x="0.0" y="0.0" width="390" height="31.666666666666668"/>
<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.66666666666666" width="390" height="344.66666666666674"/>
<rect key="frame" x="0.0" y="101.66666666666666" width="390" height="342.66666666666674"/>
<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="390" height="99.333333333333329"/>
<rect key="frame" x="0.0" y="0.0" width="390" height="98.666666666666671"/>
<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="390" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="390" height="18.666666666666668"/>
<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.333333333333314" width="390" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666629" width="390" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -880,7 +880,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.333333333333314" width="390" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666629" width="390" 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"/>
@@ -888,19 +888,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.33333333333331" width="390" height="135.33333333333331"/>
<rect key="frame" x="0.0" y="128.66666666666663" width="390" height="134"/>
<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="390" height="99.333333333333329"/>
<rect key="frame" x="0.0" y="0.0" width="390" height="98.666666666666671"/>
<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="390" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="390" height="18.666666666666668"/>
<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.333333333333314" width="390" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="390" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -919,7 +919,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.333333333333314" width="390" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666686" width="390" 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"/>
@@ -927,7 +927,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.33333333333331" width="390" height="31"/>
<rect key="frame" x="0.0" y="103.66666666666669" width="390" height="30.333333333333343"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" title="Forgot Password">
@@ -940,7 +940,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="294.66666666666669" width="390" height="50"/>
<rect key="frame" x="0.0" y="292.66666666666669" width="390" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="Tle-PZ-1B4"/>
</constraints>
@@ -959,14 +959,14 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tOZ-1S-7K5">
<rect key="frame" x="20" y="509.66666666666669" width="390" height="124.66666666666669"/>
<rect key="frame" x="20" y="506.66666666666669" width="390" height="124.66666666666669"/>
<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="634.33333333333337" width="390" height="105.66666666666663"/>
<rect key="frame" x="20" y="631.33333333333337" width="390" 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="390" height="35.666666666666664"/>
<rect key="frame" x="0.0" y="0.0" width="390" height="35"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" title="Continue as a Guest">
@@ -977,7 +977,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="55.666666666666629" width="390" height="50"/>
<rect key="frame" x="0.0" y="55" width="390" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="sfz-a2-WZy"/>
</constraints>
@@ -994,7 +994,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Sb4-yj-JJ2">
<rect key="frame" x="20" y="740" width="390" height="30"/>
<rect key="frame" x="20" y="736.33333333333337" width="390" 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"/>
@@ -1063,25 +1063,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.66666666666663" width="390" height="203"/>
<rect key="frame" x="20" y="172.66666666666663" width="390" height="201.33333333333337"/>
<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="370" height="33.666666666666664"/>
<rect key="frame" x="10" y="0.0" width="370" height="32.666666666666664"/>
<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="103.66666666666666" width="370" height="99.333333333333343"/>
<rect key="frame" x="10" y="102.66666666666666" width="370" height="98.666666666666657"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333371" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="370" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1100,7 +1100,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.333333333333371" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666686" width="370" 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"/>
@@ -1111,16 +1111,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="776" width="370" height="102"/>
<rect key="frame" x="30" y="776.66666666666663" width="370" height="101.33333333333337"/>
<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="370" height="17"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="16.333333333333332"/>
<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="370" height="50"/>
<rect key="frame" x="0.0" y="51.333333333333371" width="370" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="I7D-T4-sU1"/>
</constraints>
@@ -1183,28 +1183,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.66666666666666" width="390" height="341.33333333333337"/>
<rect key="frame" x="20" y="172.66666666666663" width="390" height="339"/>
<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="370" height="32.666666666666664"/>
<rect key="frame" x="10" y="0.0" width="370" height="31.666666666666668"/>
<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.66666666666667" width="370" height="238.66666666666663"/>
<rect key="frame" x="10" y="101.66666666666664" width="370" height="237.33333333333337"/>
<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="370" height="99.333333333333329"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="98.666666666666671"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333371" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="370" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1223,7 +1223,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.333333333333371" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666686" width="370" 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"/>
@@ -1231,16 +1231,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.33333333333337" width="370" height="99.333333333333314"/>
<rect key="frame" x="0.0" y="138.66666666666669" width="370" height="98.666666666666686"/>
<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="370" height="19.333333333333332"/>
<rect key="frame" x="0.0" y="0.0" width="370" height="18.666666666666668"/>
<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.333333333333314" width="370" height="50"/>
<rect key="frame" x="0.0" y="33.666666666666686" width="370" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1259,7 +1259,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.333333333333314" width="370" height="0.0"/>
<rect key="frame" x="0.0" y="98.666666666666686" width="370" 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"/>
@@ -1435,43 +1435,43 @@ Sent to Your Parents Email</string>
</scenes>
<designables>
<designable name="42K-Uu-lPQ">
<size key="intrinsicContentSize" width="8.3333333333333339" height="23.333333333333332"/>
<size key="intrinsicContentSize" width="6.666666666666667" height="22.666666666666668"/>
</designable>
<designable name="4gw-z0-s4a">
<size key="intrinsicContentSize" width="150.66666666666666" height="20"/>
<size key="intrinsicContentSize" width="198" height="19"/>
</designable>
<designable name="68c-1b-KSI">
<size key="intrinsicContentSize" width="151.66666666666666" height="21"/>
<size key="intrinsicContentSize" width="199" height="20.333333333333332"/>
</designable>
<designable name="81S-Fa-CiD">
<size key="intrinsicContentSize" width="8.3333333333333339" height="23.333333333333332"/>
<size key="intrinsicContentSize" width="6.666666666666667" height="22.666666666666668"/>
</designable>
<designable name="DSB-Ge-wNO">
<size key="intrinsicContentSize" width="118.66666666666667" height="21"/>
<size key="intrinsicContentSize" width="166" height="20.666666666666668"/>
</designable>
<designable name="Hcd-Mm-IxW">
<size key="intrinsicContentSize" width="8.3333333333333339" height="23.333333333333332"/>
<size key="intrinsicContentSize" width="6.666666666666667" height="22.666666666666668"/>
</designable>
<designable name="JRR-Bk-5UP">
<size key="intrinsicContentSize" width="167.66666666666666" height="20"/>
<size key="intrinsicContentSize" width="214.33333333333334" height="19"/>
</designable>
<designable name="MpT-bm-drv">
<size key="intrinsicContentSize" width="8.3333333333333339" height="23.333333333333332"/>
<size key="intrinsicContentSize" width="6.666666666666667" height="22.666666666666668"/>
</designable>
<designable name="Skx-Ig-91N">
<size key="intrinsicContentSize" width="149" height="20"/>
<size key="intrinsicContentSize" width="196.33333333333334" height="19"/>
</designable>
<designable name="iJE-dm-qal">
<size key="intrinsicContentSize" width="150.66666666666666" height="20"/>
<size key="intrinsicContentSize" width="198" height="19"/>
</designable>
<designable name="m50-FZ-yVO">
<size key="intrinsicContentSize" width="151.66666666666666" height="21"/>
<size key="intrinsicContentSize" width="199" height="20.666666666666668"/>
</designable>
<designable name="tgW-LH-XfR">
<size key="intrinsicContentSize" width="119.33333333333333" height="21"/>
<size key="intrinsicContentSize" width="168" height="20.666666666666668"/>
</designable>
<designable name="wy2-0C-rxG">
<size key="intrinsicContentSize" width="151.66666666666666" height="21"/>
<size key="intrinsicContentSize" width="199" height="20.666666666666668"/>
</designable>
</designables>
<resources>

View File

@@ -6,8 +6,7 @@
import UIKit
class MyListVC: UIViewController {
class MyListVC: UIViewController{
@IBOutlet weak var webSeriesCV: UICollectionView!
@IBOutlet weak var webSeriesEnglishStack: UIStackView!
@@ -166,6 +165,7 @@ extension MyListVC : CollectionViewSRC{
if isDone{
vm.favListingData?.showData?.remove(at: index)
webSeriesCV.reloadData()
vm.checkNil()
}
}
}
@@ -177,6 +177,14 @@ extension MyListVC : CollectionViewSRC{
vm.favListingData?.showData?[index].isLiked = false
vm.favListingData?.showData?[index].likesCount! -= 1
webSeriesCV.reloadItems(at: [IndexPath(row: index, section: 0)])
for (i,element) in vm.webSeriesHindi.enumerated(){
if element.id == vm.favListingData?.showData?[index].id{
vm.webSeriesHindi[i].isLiked = false
vm.webSeriesHindi[i].likesCount! -= 1
webSeriesHindiCV.reloadItems(at: [IndexPath(row: i, section: 0)])
}
}
}
}
}else{
@@ -185,6 +193,15 @@ extension MyListVC : CollectionViewSRC{
vm.favListingData?.showData?[index].isLiked = true
vm.favListingData?.showData?[index].likesCount! += 1
webSeriesCV.reloadItems(at: [IndexPath(row: index, section: 0)])
for (i,element) in vm.webSeriesHindi.enumerated(){
if element.id == vm.favListingData?.showData?[index].id{
vm.webSeriesHindi[i].isLiked = true
vm.webSeriesHindi[i].likesCount! += 1
webSeriesHindiCV.reloadItems(at: [IndexPath(row: i, section: 0)])
}
}
}
}
}
@@ -203,7 +220,7 @@ extension MyListVC : CollectionViewSRC{
}
}
}
case .liked:
case .liked: // Hindi Data
guard let isLiked = data.isLiked ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType else{return}
if isLiked{
vm.unlikePost(postID: postID, postType: postType, index: index) { [unowned self] isDone in
@@ -212,6 +229,17 @@ extension MyListVC : CollectionViewSRC{
vm.webSeriesHindi[index].likesCount! -= 1
webSeriesHindiCV.reloadItems(at: [IndexPath(row: index, section: 0)])
vm.checkNil()
guard let showData = vm.favListingData?.showData else{return}
for (i,element) in showData.enumerated(){
if element.id == vm.webSeriesHindi[index].id{
vm.favListingData?.showData?[i].isLiked = false
vm.favListingData?.showData?[i].likesCount! -= 1
webSeriesCV.reloadItems(at: [IndexPath(row: i, section: 0)])
}
}
}
}
}else{
@@ -221,6 +249,16 @@ extension MyListVC : CollectionViewSRC{
vm.webSeriesHindi[index].likesCount! += 1
webSeriesHindiCV.reloadItems(at: [IndexPath(row: index, section: 0)])
vm.checkNil()
guard let showData = vm.favListingData?.showData else{return}
for (i,element) in showData.enumerated(){
if element.id == vm.webSeriesHindi[index].id{
vm.favListingData?.showData?[i].isLiked = true
vm.favListingData?.showData?[i].likesCount! += 1
webSeriesCV.reloadItems(at: [IndexPath(row: i, section: 0)])
}
}
}
}
}
@@ -341,9 +379,158 @@ extension MyListVC : CollectionViewSRC{
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
switch collectionView{
case webSeriesCV:
guard let showData = vm.favListingData?.showData?[indexPath.row] else{return}
let showDataModified = WebSeriesShowListDM.ShowDatum(id: showData.id, title: showData.title, description: showData.description, thumbnailPath: showData.thumbnailPath, showType: showData.showType, totalSeasons: showData.totalSeasons, totalEpisodes: showData.totalEpisodes, categoryMasterID: nil, ageRangeMasterID: nil, genderMasterID: showData.genderMasterID, contentMoreDetails: showData.contentMoreDetails, seasonData: nil, categoryData: nil, ageRangeData: nil, genderData: nil, markAsFavourite: showData.markAsFavourite, isLiked: showData.isLiked, likedCategoryIDS: nil, favouriteCategoryIDS: ValueWrapper.stringValue(showData.bookmarkCategoryIDS ?? "1") , likesCount: showData.likesCount, viewsCount: showData.viewsCount, bookmarkCount: showData.bookmarkCount)
let sb = UIStoryboard(name: K.StoryBoard.webSeries, bundle: nil)
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.WebSeries.webSeriesSeasonVC) as! WebSeriesSeasonVC
vcPush.vm.showData = showDataModified
vcPush.vm.indexSelected = indexPath.row
vcPush.likeFavDelegate = self
vcPush.vm.categoryID = 1
self.navigationController?.pushViewController(vcPush, animated: true)
self.vm.selectedCollection = .webSeriesCV
case webSeriesHindiCV:
let showData = vm.webSeriesHindi[indexPath.row]
let showDataModified = WebSeriesShowListDM.ShowDatum(id: showData.id, title: showData.title, description: showData.description, thumbnailPath: showData.thumbnailPath, showType: showData.showType, totalSeasons: showData.totalSeasons, totalEpisodes: showData.totalEpisodes, categoryMasterID: nil, ageRangeMasterID: nil, genderMasterID: showData.genderMasterID, contentMoreDetails: showData.contentMoreDetails, seasonData: nil, categoryData: nil, ageRangeData: nil, genderData: nil, markAsFavourite: showData.markAsFavourite, isLiked: showData.isLiked, likedCategoryIDS: nil, favouriteCategoryIDS: ValueWrapper.stringValue(showData.bookmarkCategoryIDS ?? "1") , likesCount: showData.likesCount, viewsCount: showData.viewsCount, bookmarkCount: showData.bookmarkCount)
let sb = UIStoryboard(name: K.StoryBoard.webSeries, bundle: nil)
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.WebSeries.webSeriesSeasonVC) as! WebSeriesSeasonVC
vcPush.vm.showData = showDataModified
vcPush.vm.indexSelected = indexPath.row
vcPush.likeFavDelegate = self
vcPush.vm.categoryID = 18
self.navigationController?.pushViewController(vcPush, animated: true)
self.vm.selectedCollection = .webSeriesHindiCV
default:
print(indexPath.row)
}
}
}
extension MyListVC : ReloadSeriesFavLike{
func updateRows(index: Int, type: FavCellCLick) {
updateFavLikes(type: type, index: index)
}
func updateFavLikes(type : FavCellCLick, index : Int){
switch vm.selectedCollection {
case .webSeriesCV:
guard let data = vm.favListingData?.showData?[index] else{return}
let categoryID = 1
switch type {
case .favourite:
guard let isFav = data.markAsFavourite ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType else{return}
if let categoryIds = data.bookmarkCategoryIDS {
let components = categoryIds.components(separatedBy: ",")
if isFav == true && (components.first == categoryID.toString() || components.last == categoryID.toString()){
LikeFavCommonFunc.shareInstance.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index, vc: self) { [unowned self] isDone in
if isDone{
vm.favListingData?.showData?.remove(at: index)
// vm.webSeriesHindi[index].markAsFavourite = false
// vm.webSeriesHindi[index].bookmarkCategoryIDS = ""
webSeriesCV.reloadItems(at: [IndexPath(row: index, section: 0)])
}
}
}
// else{
// LikeFavCommonFunc.shareInstance.addFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index, vc: self) { [unowned self] isDone in
// if isDone{
// vm.webSeriesHindi[index].markAsFavourite = false
// vm.webSeriesHindi[index].bookmarkCategoryIDS = categoryID.toString()
// webSeriesHindiCV.reloadItems(at: [IndexPath(row: index, section: 0)])
// }
// }
// }
return
}
case .liked:
break
// guard let isLiked = data.isLiked ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType else{return}
// if isLiked{
// LikeFavCommonFunc.shareInstance.unlikePost(postID: postID, postType: postType, index: index, vc: self) { [unowned self] isDone in
// if isDone{
// vm.showData[index].isLiked = false
// vm.showData[index].likesCount! -= 1
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// }
// }
// }else{
// LikeFavCommonFunc.shareInstance.likePost(postID: postID, postType: postType, index: index, vc: self){ [unowned self] isDone in
// if isDone{
// vm.showData[index].isLiked = true
// vm.showData[index].likesCount! += 1
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// }
// }
// }
}
case .webSeriesHindiCV:
let data = vm.webSeriesHindi[index]
let categoryID = 18
switch type {
case .favourite:
guard let isFav = data.markAsFavourite ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType else{return}
if let categoryIds = data.bookmarkCategoryIDS {
let components = categoryIds.components(separatedBy: ",")
if isFav == true && (components.first == categoryID.toString() || components.last == categoryID.toString()){
LikeFavCommonFunc.shareInstance.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index, vc: self) { [unowned self] isDone in
if isDone{
vm.webSeriesHindi.remove(at: index)
// vm.webSeriesHindi[index].markAsFavourite = false
// vm.webSeriesHindi[index].bookmarkCategoryIDS = ""
webSeriesHindiCV.reloadItems(at: [IndexPath(row: index, section: 0)])
}
}
}else{
LikeFavCommonFunc.shareInstance.addFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index, vc: self) { [unowned self] isDone in
if isDone{
vm.webSeriesHindi[index].markAsFavourite = false
vm.webSeriesHindi[index].bookmarkCategoryIDS = categoryID.toString()
webSeriesHindiCV.reloadItems(at: [IndexPath(row: index, section: 0)])
}
}
}
return
}
case .liked:
break
// guard let isLiked = data.isLiked ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType else{return}
// if isLiked{
// LikeFavCommonFunc.shareInstance.unlikePost(postID: postID, postType: postType, index: index, vc: self) { [unowned self] isDone in
// if isDone{
// vm.showData[index].isLiked = false
// vm.showData[index].likesCount! -= 1
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// }
// }
// }else{
// LikeFavCommonFunc.shareInstance.likePost(postID: postID, postType: postType, index: index, vc: self){ [unowned self] isDone in
// if isDone{
// vm.showData[index].isLiked = true
// vm.showData[index].likesCount! += 1
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// }
// }
// }
}
case .audioBooksCV:
break
case .karaokeCV:
break
case .gamesCV:
break
case .none:
break
}
}
}
// MARK: - Collection Flow Layout

View File

@@ -34,7 +34,7 @@ struct FavouriteListingDM: Codable {
let categoryMasterID, ageRangeMasterID, tagsKeyword, releaseDate: String?
let languageMasterID: Int?
let genderMasterID, audioDuration, mediaID: String?
let contentMoreDetails: [ContentMoreDetail]?
let contentMoreDetails: [WebSeriesShowListDM.MoreDetail]?
var markAsFavourite, isLiked: Bool?
var viewsCount, likesCount, bookmarkCount: Int?
let bookmarkCategoryIDS: String?
@@ -70,21 +70,21 @@ struct FavouriteListingDM: Codable {
}
// MARK: - ContentMoreDetail
struct ContentMoreDetail: Codable {
let id, contentID, postType, languageMasterID: Int?
let title, description: String?
let url: String?
let tagsKeywords: String?
enum CodingKeys: String, CodingKey {
case id
case contentID = "content_id"
case postType = "post_type"
case languageMasterID = "language_master_id"
case title, description, url
case tagsKeywords = "tags_keywords"
}
}
// struct ContentMoreDetail: Codable {
// let id, contentID, postType, languageMasterID: Int?
// let title, description: String?
// let url: String?
// let tagsKeywords: String?
//
// enum CodingKeys: String, CodingKey {
// case id
// case contentID = "content_id"
// case postType = "post_type"
// case languageMasterID = "language_master_id"
// case title, description, url
// case tagsKeywords = "tags_keywords"
// }
// }
// MARK: - ShowDatum
struct ShowDatum: Codable {
@@ -94,7 +94,7 @@ struct FavouriteListingDM: Codable {
let showType: String?
let totalSeasons, totalEpisodes: Int?
let categoryMasterID, ageRangeMasterID, genderMasterID: String?
let contentMoreDetails: [ContentMoreDetail]?
let contentMoreDetails: [WebSeriesShowListDM.MoreDetail]?
var markAsFavourite, isLiked: Bool?
var likesCount : Int?
let viewsCount, bookmarkCount: Int?

View File

@@ -8,6 +8,14 @@
import Foundation
import Alamofire
enum CollectionSelectionMyList{
case webSeriesCV
case webSeriesHindiCV
case audioBooksCV
case karaokeCV
case gamesCV
}
class MyListVM{
weak var vc : MyListVC!
var favListingData : FavouriteListingDM.ResultData?
@@ -17,6 +25,8 @@ class MyListVM{
let refreshControl = UIRefreshControl()
let feedbackGenerator = UIImpactFeedbackGenerator(style: .light)
var selectedCollection : CollectionSelectionMyList?
func initView(){
setupCell()
Utilities.startProgressHUD()

View File

@@ -109,6 +109,7 @@ class PlayerVC: JWPlayerViewController, JWPlayerViewControllerDelegate {
if videoIndex == 0{
player.play()
}else{
player.play()
player.nextUpPlaylistIndex = videoIndex ?? 0
player.next()
}

View File

@@ -53,7 +53,7 @@ class WebSeriesSeasonVC: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
self.navigationController?.setColor(color: .white)
self.navigationController?.setColor(color: .black)
}
override func viewWillDisappear(_ animated: Bool) {
@@ -69,21 +69,42 @@ class WebSeriesSeasonVC: UIViewController {
}
@IBAction func watchBtnTapped(_ sender: LocalisedElementsButton) {
}
@IBAction func playTrailerBtnTapped(_ sender: LocalisedElementsButton) {
// 1-> english , 18- hindi
let seasonData = vm.seasonListingData.filter({$0.id == vm.episodeSelectedCateogory}).first
if vm.categoryID == 1{
guard let englishData = seasonData?.seasonMoreDetails?.filter({$0.languageMasterID == 1}).first , let url = englishData.trailerHDURL , let title = englishData.title else{return}
let playerItem = JwPlayerItemCreate(url: url, poster: seasonData?.thumbnailPath, titles: title)
JWPlayerManager.shared.presentPlayer(from: self, playerItems: [playerItem], startIndex: 0, contentType: .trailer)
}else if vm.categoryID == 18{
guard let hindiData = seasonData?.seasonMoreDetails?.filter({$0.languageMasterID == 2}).first , let url = hindiData.trailerHDURL , let title = hindiData.title else{return}
let playerItem = JwPlayerItemCreate(url: url, poster: seasonData?.thumbnailPath, titles: title)
JWPlayerManager.shared.presentPlayer(from: self, playerItems: [playerItem], startIndex: 0, contentType: .trailer)
var playerItems = [JwPlayerItemCreate]()
guard let seasonData = vm.seasonListingData.filter({$0.id == vm.episodeSelectedCateogory}).first else{return}
var url = String()
guard let englishData = seasonData.seasonMoreDetails?.filter({$0.languageMasterID == 1}).first, let hindiData = seasonData.seasonMoreDetails?.filter({$0.languageMasterID == 2}).first else{return}
/*
Based on selected Category language update the url
*/
if vm.categoryID == 1{ //1- english , 18 - hindi
url = englishData.trailerHDURL ?? ""
}else{
url = hindiData.trailerHDURL ?? ""
}
/*
Based on language change the title
*/
if AuthFunc.shareInstance.languageSelected == .english{
playerItems.append(JwPlayerItemCreate(url: url, poster: seasonData.thumbnailPath, titles: englishData.title))
}else{
playerItems.append(JwPlayerItemCreate(url: url, poster: seasonData.thumbnailPath, titles: hindiData.title))
}
JWPlayerManager.shared.presentPlayer(from: self, playerItems: playerItems, startIndex: 0, contentType: .trailer)
// let seasonData = vm.seasonListingData.filter({$0.id == vm.episodeSelectedCateogory}).first
// if vm.categoryID == 1{
// guard let englishData = seasonData?.seasonMoreDetails?.filter({$0.languageMasterID == 1}).first , let url = englishData.trailerHDURL , let title = englishData.title else{return}
// let playerItem = JwPlayerItemCreate(url: url, poster: seasonData?.thumbnailPath, titles: title)
// JWPlayerManager.shared.presentPlayer(from: self, playerItems: [playerItem], startIndex: 0, contentType: .trailer)
// }else if vm.categoryID == 18{
// guard let hindiData = seasonData?.seasonMoreDetails?.filter({$0.languageMasterID == 2}).first , let url = hindiData.trailerHDURL , let title = hindiData.title else{return}
// let playerItem = JwPlayerItemCreate(url: url, poster: seasonData?.thumbnailPath, titles: title)
// JWPlayerManager.shared.presentPlayer(from: self, playerItems: [playerItem], startIndex: 0, contentType: .trailer)
// }
}
@IBAction func retryBtnTapped(_ sender: LocalisedElementsButton) {
@@ -127,41 +148,62 @@ extension WebSeriesSeasonVC : TableViewSRC{
var playerItems = [JwPlayerItemCreate]()
if let episodeData = vm.seasonEpisodeData.first?.episodeData {
if vm.categoryID == 1{
playerItems = episodeData.flatMap { episode in
episode.contentMoreDetails?
.filter { $0.languageMasterID == 1 }
.prefix(1)
.compactMap { data in
if let url = data.contentHDURL, let title = data.title {
return JwPlayerItemCreate(url: url, poster: episode.thumbnailPath, titles: title)
}
return nil
} ?? []
switch tableView{
case self.teaserTableView:
let teaserData = vm.teaserData[indexPath.row]
guard let englishData = teaserData.contentMoreDetails?.filter({$0.languageMasterID == 1}).first, let hindiData = teaserData.contentMoreDetails?.filter({$0.languageMasterID == 2}).first else{return}
var url = String()
/*
Based on selected Category language update the url
*/
if vm.categoryID == 1{ //1- english , 18 - hindi
url = englishData.contentHDURL ?? ""
}else{
url = hindiData.contentHDURL ?? ""
}
/*
Based on language change the title
*/
if AuthFunc.shareInstance.languageSelected == .english{
playerItems.append(JwPlayerItemCreate(url: url, poster: teaserData.thumbnailPath, titles: englishData.title))
}else{
playerItems.append(JwPlayerItemCreate(url: url, poster: teaserData.thumbnailPath, titles: hindiData.title))
}
JWPlayerManager.shared.presentPlayer(from: self, playerItems: playerItems, startIndex: indexPath.row, contentType: .trailer)
case self.episodeTableView:
guard let episodeData = vm.seasonEpisodeData.first?.episodeData else{return}
for i in episodeData{
var url = String()
guard let englishData = i.contentMoreDetails?.filter({$0.languageMasterID == 1}).first, let hindiData = i.contentMoreDetails?.filter({$0.languageMasterID == 2}).first else{return}
/*
Based on selected Category language update the url
*/
if vm.categoryID == 1{ //1- english , 18 - hindi
url = englishData.contentHDURL ?? ""
}else{
url = hindiData.contentHDURL ?? ""
}
}else if vm.categoryID == 18{
playerItems = episodeData.flatMap { episode in
episode.contentMoreDetails?
.filter { $0.languageMasterID == 2 }
.prefix(1)
.compactMap { data in
if let url = data.contentHDURL, let title = data.title {
return JwPlayerItemCreate(url: url, poster: episode.thumbnailPath, titles: title)
}
return nil
} ?? []
/*
Based on language change the title
*/
if AuthFunc.shareInstance.languageSelected == .english{
playerItems.append(JwPlayerItemCreate(url: url, poster: i.thumbnailPath, titles: englishData.title))
}else{
playerItems.append(JwPlayerItemCreate(url: url, poster: i.thumbnailPath, titles: hindiData.title))
}
}
JWPlayerManager.shared.presentPlayer(from: self, playerItems: playerItems, startIndex: indexPath.row, contentType: .webSeries)
default:
break
}
JWPlayerManager.shared.presentPlayer(from: self, playerItems: playerItems, startIndex: indexPath.row, contentType: .webSeries)
// Ensure indexPath.row is valid before proceeding
// if indexPath.row < playerItems.count {
// } else {
// print("Index out of bounds for episode data")
// }
}
return cell
@@ -182,12 +224,58 @@ extension WebSeriesSeasonVC : TableViewSRC{
vcPush.onDoneBlock = { [weak self] in
guard let self else{return}
var playerItems = [JwPlayerItemCreate]()
if let episodeData = vm.seasonEpisodeData.first?.episodeData {
// Use compactMap to create an array of JwPlayerItemCreate instances
playerItems = episodeData.compactMap { episode in
JwPlayerItemCreate(url: episode.episodeURL ?? "", poster: episode.thumbnailPath, titles: episode.episodeTitle)
switch tableView{
case self.teaserTableView:
let teaserData = vm.teaserData[indexPath.row]
guard let englishData = teaserData.contentMoreDetails?.filter({$0.languageMasterID == 1}).first, let hindiData = teaserData.contentMoreDetails?.filter({$0.languageMasterID == 2}).first else{return}
var url = String()
/*
Based on selected Category language update the url
*/
if vm.categoryID == 1{ //1- english , 18 - hindi
url = englishData.contentHDURL ?? ""
}else{
url = hindiData.contentHDURL ?? ""
}
/*
Based on language change the title
*/
if AuthFunc.shareInstance.languageSelected == .english{
playerItems.append(JwPlayerItemCreate(url: url, poster: teaserData.thumbnailPath, titles: englishData.title))
}else{
playerItems.append(JwPlayerItemCreate(url: url, poster: teaserData.thumbnailPath, titles: hindiData.title))
}
case self.episodeTableView:
guard let episodeData = vm.seasonEpisodeData.first?.episodeData else{return}
for i in episodeData{
var url = String()
guard let englishData = i.contentMoreDetails?.filter({$0.languageMasterID == 1}).first, let hindiData = i.contentMoreDetails?.filter({$0.languageMasterID == 2}).first else{return}
/*
Based on selected Category language update the url
*/
if vm.categoryID == 1{ //1- english , 18 - hindi
url = englishData.contentHDURL ?? ""
}else{
url = hindiData.contentHDURL ?? ""
}
/*
Based on language change the title
*/
if AuthFunc.shareInstance.languageSelected == .english{
playerItems.append(JwPlayerItemCreate(url: url, poster: i.thumbnailPath, titles: englishData.title))
}else{
playerItems.append(JwPlayerItemCreate(url: url, poster: i.thumbnailPath, titles: hindiData.title))
}
}
JWPlayerManager.shared.presentPlayer(from: self, playerItems: playerItems, startIndex: indexPath.row, contentType: .webSeries)
default:
break
}
JWPlayerManager.shared.presentPlayer(from: self, playerItems: playerItems,startIndex: indexPath.row, contentType: .webSeries)
}

View File

@@ -111,7 +111,7 @@ extension WebSeriesVC : TableViewSRC{
if let categoryIds = data.favouriteCategoryIDS?.rawValue {
let components = categoryIds.components(separatedBy: ",")
if isFav == true && (components.first == categoryID.toString() || components.last == categoryID.toString()){
vm.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
LikeFavCommonFunc.shareInstance.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index, vc: self) { [unowned self] isDone in
if isDone{
vm.showData[index].markAsFavourite = false
vm.showData[index].favouriteCategoryIDS = ValueWrapper.stringValue("")
@@ -120,7 +120,7 @@ extension WebSeriesVC : TableViewSRC{
}
}
}else{
vm.addFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
LikeFavCommonFunc.shareInstance.addFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index, vc: self) { [unowned self] isDone in
if isDone{
vm.showData[index].markAsFavourite = true
vm.showData[index].favouriteCategoryIDS = ValueWrapper.stringValue(categoryID.toString())
@@ -131,54 +131,10 @@ extension WebSeriesVC : TableViewSRC{
}
return
}
// if isFav == true && data.favouriteCategoryIDS?.intValue == 0{ // means this is fav
// vm.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
// if isDone{
// vm.showData[index].markAsFavourite = false
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// K.GVar.reloadMyList = true
// }
// }
// }else if isFav == true && data.favouriteCategoryIDS?.intValue == categoryID{
// vm.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
// if isDone{
// vm.showData[index].markAsFavourite = false
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// K.GVar.reloadMyList = true
// }
// }
// }else{
// vm.addFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
// if isDone{
// vm.showData[index].markAsFavourite = true
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// K.GVar.reloadMyList = true
// }
// }
// }
// if isFav{
// vm.removeFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
// if isDone{
// vm.showData[index].markAsFavourite = false
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// K.GVar.reloadMyList = true
// }
// }
// }else{
// vm.addFavourite(postID: postID, postType: postType, categoryID: categoryID, index: index) { [unowned self] isDone in
// if isDone{
// vm.showData[index].markAsFavourite = true
// showListingTableView.reloadRows(at: [IndexPath(row: index, section: 0)],with: .none)
// K.GVar.reloadMyList = true
// }
// }
// }
case .liked:
guard let isLiked = data.isLiked ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType else{return}
if isLiked{
vm.unlikePost(postID: postID, postType: postType, index: index) { [unowned self] isDone in
LikeFavCommonFunc.shareInstance.unlikePost(postID: postID, postType: postType, index: index, vc: self) { [unowned self] isDone in
if isDone{
vm.showData[index].isLiked = false
vm.showData[index].likesCount! -= 1
@@ -186,7 +142,7 @@ extension WebSeriesVC : TableViewSRC{
}
}
}else{
vm.likePost(postID: postID, postType: postType, index: index){ [unowned self] isDone in
LikeFavCommonFunc.shareInstance.likePost(postID: postID, postType: postType, index: index, vc: self){ [unowned self] isDone in
if isDone{
vm.showData[index].isLiked = true
vm.showData[index].likesCount! += 1

View File

@@ -0,0 +1,141 @@
//
// LikeFavCommonFunc.swift
// WOKA
//
// Created by MacBook Pro on 27/06/24.
//
import Foundation
import Alamofire
class LikeFavCommonFunc{
static let shareInstance = LikeFavCommonFunc()
// MARK: - Like , unlike
func likePost(postID : Int, postType : Int, index : Int, vc : UIViewController, onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_id" : postID,
"post_type" : postType]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.post_like, method: .post, parameters: params, headers: headers) { (result : Result<CommonResponseModel, NetworkManager.APIError>) in
switch result{
case .success(let data):
switch data.success{
case 0:
Utilities.dismissProgressHUD()
vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
Utilities.dismissProgressHUD()
vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
func unlikePost(postID : Int, postType : Int , index : Int, vc : UIViewController, onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_id" : postID,
"post_type" : postType]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.post_unlike, method: .post, parameters: params, headers: headers) { (result : Result<BaseResponseModel<CommonResponseModel>, NetworkManager.APIError>) in
switch result{
case .success(let data):
switch data.success{
case 0:
Utilities.dismissProgressHUD()
vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
Utilities.dismissProgressHUD()
vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
// MARK: - Remove Favourite
func removeFavourite(postID : Int, postType : Int, categoryID : Int, index : Int, vc : UIViewController, onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["id" : postID,
"post_type" : postType,
"category_id" : categoryID]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.favourite_remove, method: .post, parameters: params, headers: headers) { (result : Result<CommonResponseModel, NetworkManager.APIError>) in
switch result{
case .success(let data):
switch data.success{
case 0:
Utilities.dismissProgressHUD()
vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
Utilities.dismissProgressHUD()
vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
func addFavourite(postID : Int, postType : Int, categoryID : Int, index : Int, vc : UIViewController, onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_id" : postID,
"post_type" : postType,
"category_id" : categoryID]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.favourite_add, method: .post, parameters: params, headers: headers) { (result : Result<CommonResponseModel, NetworkManager.APIError>) in
switch result{
case .success(let data):
switch data.success{
case 0:
Utilities.dismissProgressHUD()
vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
Utilities.dismissProgressHUD()
vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
}

View File

@@ -32,22 +32,30 @@ class WebSeriesSeasonVM{
setShowData()
vc.addView.addTapGesture { [weak self] in
guard let self else{return}
// if let showData, let fav = showData.markAsFavourite{
// if fav{
// self.showData?.markAsFavourite = false
//// self.showData?.likesCount! -= 1
// }else{
// self.showData?.markAsFavourite = true
//// self.showData?.likesCount! += 1
// }
// }
// setShowData()
vc.likeFavDelegate?.updateRows(index: indexSelected!, type: .favourite)
guard let self ,let indexSelected, let categoryID, let showData, let isFav = showData.markAsFavourite else{return}
vc.likeFavDelegate?.updateRows(index: indexSelected, type: .favourite)
if isFav {
self.showData?.markAsFavourite = false
self.showData?.favouriteCategoryIDS = ValueWrapper.stringValue("")
}else{
self.showData?.markAsFavourite = true
self.showData?.favouriteCategoryIDS = ValueWrapper.stringValue(categoryID.toString())
}
setShowData()
}
vc.likeView.addTapGesture { [weak self] in
guard let self else{return}
vc.likeFavDelegate?.updateRows(index: indexSelected!, type: .liked)
guard let self ,let indexSelected, let showData, let isLiked = showData.isLiked else{return}
vc.likeFavDelegate?.updateRows(index: indexSelected, type: .liked)
if isLiked{
self.showData?.isLiked = false
self.showData?.likesCount! -= 1
}else{
self.showData?.isLiked = true
self.showData?.likesCount! += 1
}
setShowData()
}
vc.shareView.addTapGesture {
print("share")

View File

@@ -237,138 +237,5 @@ class WebSeriesVM{
}
}
// MARK: - Like , unlike
func likePost(postID : Int, postType : Int, index : Int , onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_id" : postID,
"post_type" : postType]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.post_like, method: .post, parameters: params, headers: headers) { [weak self](result : Result<CommonResponseModel, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{return}
switch data.success{
case 0:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
guard let self else{return}
Utilities.dismissProgressHUD()
self.vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
func unlikePost(postID : Int, postType : Int , index : Int, onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_id" : postID,
"post_type" : postType]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.post_unlike, method: .post, parameters: params, headers: headers) { [weak self](result : Result<BaseResponseModel<CommonResponseModel>, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{return}
switch data.success{
case 0:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
guard let self else{return}
Utilities.dismissProgressHUD()
self.vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
// MARK: - Remove Favourite
func removeFavourite(postID : Int, postType : Int, categoryID : Int, index : Int , onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["id" : postID,
"post_type" : postType,
"category_id" : categoryID]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.favourite_remove, method: .post, parameters: params, headers: headers) { [weak self](result : Result<CommonResponseModel, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{return}
switch data.success{
case 0:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
guard let self else{return}
Utilities.dismissProgressHUD()
self.vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
func addFavourite(postID : Int, postType : Int, categoryID : Int, index : Int , onCompletion : @escaping (Bool) -> Void){
Utilities.startProgressHUD()
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
"access-token": AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_id" : postID,
"post_type" : postType,
"category_id" : categoryID]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Home.favourite_add, method: .post, parameters: params, headers: headers) { [weak self](result : Result<CommonResponseModel, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{return}
switch data.success{
case 0:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
onCompletion(false)
case 1:
Utilities.dismissProgressHUD()
onCompletion(true)
default:
Utilities.dismissProgressHUD()
onCompletion(false)
}
case .failure(let error):
guard let self else{return}
Utilities.dismissProgressHUD()
self.vc.toast(msg: error.localizedDescription , time: 2)
onCompletion(false)
}
}
}
}

View File

@@ -421,7 +421,6 @@
</userDefinedRuntimeAttributes>
<connections>
<action selector="playTrailerBtnTapped:" destination="sPj-Um-9Xm" eventType="touchUpInside" id="f7Z-6c-eXL"/>
<action selector="watchBtnTapped:" destination="sPj-Um-9Xm" eventType="touchUpInside" id="I1O-Rx-JeC"/>
</connections>
</button>
<stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="6gf-lV-70S">