- Added native shimmer effect.

- Updated my list for handling the comma separated language.
- Added shimmer to manila , language , list table
- Added action for dropdown, if user clicks outside the dropdown it ill dismiss and change the arrow direction
- Handled shimmer with api call, removed the progress hud
- Updated Lingual file for webSeries VC
This commit is contained in:
2024-06-20 19:51:39 +05:30
parent 1d6add0322
commit 95495dc414
32 changed files with 1255 additions and 225 deletions

View File

@@ -30,6 +30,8 @@
523ED2752BDA2BC900CFED02 /* WOKATests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523ED2742BDA2BC900CFED02 /* WOKATests.swift */; };
523ED27F2BDA2BC900CFED02 /* WOKAUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523ED27E2BDA2BC900CFED02 /* WOKAUITests.swift */; };
523ED2812BDA2BC900CFED02 /* WOKAUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 523ED2802BDA2BC900CFED02 /* WOKAUITestsLaunchTests.swift */; };
5242FE592C24203E0086A86D /* WebSeriesSeasonVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5242FE582C24203E0086A86D /* WebSeriesSeasonVC.swift */; };
5242FE5B2C24317A0086A86D /* WebSeriesSeasonVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5242FE5A2C24317A0086A86D /* WebSeriesSeasonVM.swift */; };
524C422B2C04781B0016A11C /* ThemeTwoVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524C422A2C04781B0016A11C /* ThemeTwoVM.swift */; };
524C42312C0499560016A11C /* NotificationCenterReloads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524C42302C0499560016A11C /* NotificationCenterReloads.swift */; };
524C42332C049D590016A11C /* CustomizableSegmentControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524C42322C049D590016A11C /* CustomizableSegmentControl.swift */; };
@@ -57,7 +59,6 @@
525954302BEA394400191286 /* CustomAlerts.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5259542F2BEA394300191286 /* CustomAlerts.storyboard */; };
525954322BEA39D200191286 /* AddTapGesture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525954312BEA39D200191286 /* AddTapGesture.swift */; };
525954342BEA620800191286 /* IntrestTopicDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525954332BEA620800191286 /* IntrestTopicDM.swift */; };
525954512BEB5EB700191286 /* SkeletonView in Frameworks */ = {isa = PBXBuildFile; productRef = 525954502BEB5EB700191286 /* SkeletonView */; };
5259545A2BEB67D200191286 /* DateFormatterLib.swift in Sources */ = {isa = PBXBuildFile; fileRef = 525954592BEB67D200191286 /* DateFormatterLib.swift */; };
5259545C2BEBB80400191286 /* AvatarDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5259545B2BEBB80400191286 /* AvatarDM.swift */; };
5259545E2BEBBA1A00191286 /* LoadingIndicatorImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5259545D2BEBBA1A00191286 /* LoadingIndicatorImageView.swift */; };
@@ -73,6 +74,9 @@
527AC6FD2C173A5100434FB7 /* SongListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527AC6FB2C173A5100434FB7 /* SongListCell.swift */; };
527AC6FE2C173A5100434FB7 /* SongListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 527AC6FC2C173A5100434FB7 /* SongListCell.xib */; };
527AC7012C182DCE00434FB7 /* TimeStringToSeconds.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527AC7002C182DCE00434FB7 /* TimeStringToSeconds.swift */; };
528E5F1B2C24531200E33E4E /* SeasonListingDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528E5F1A2C24531200E33E4E /* SeasonListingDM.swift */; };
528E5F222C24660F00E33E4E /* SeasonCategoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 528E5F202C24660F00E33E4E /* SeasonCategoryCell.swift */; };
528E5F232C24660F00E33E4E /* SeasonCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 528E5F212C24660F00E33E4E /* SeasonCategoryCell.xib */; };
529B0DD42C06156B00CFC54B /* LoginNavVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B0DD32C06156B00CFC54B /* LoginNavVC.swift */; };
529B0DD62C070C0F00CFC54B /* GuestDataDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529B0DD52C070C0F00CFC54B /* GuestDataDM.swift */; };
52A3F6A52BECBA8D0000BB0B /* LinkedChildDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52A3F6A42BECBA8D0000BB0B /* LinkedChildDM.swift */; };
@@ -130,6 +134,7 @@
52CA28FC2BE11A0400708B49 /* UserIntrestVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CA28FB2BE11A0400708B49 /* UserIntrestVM.swift */; };
52CC38C32BDF812F00B74C3E /* LocalisedElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CC38C22BDF812F00B74C3E /* LocalisedElements.swift */; };
52CCD7B02C1AF0F80078BD65 /* RadioVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52CCD7AF2C1AF0F80078BD65 /* RadioVC.swift */; };
52D2F3D82C24043D009E52FF /* ShimmerEffectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D2F3D72C24043D009E52FF /* ShimmerEffectView.swift */; };
52D6A2462C21A29800145908 /* ContinueWatchingDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D6A2452C21A29800145908 /* ContinueWatchingDM.swift */; };
52D6A2482C21A3A500145908 /* WebSeriesVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D6A2472C21A3A500145908 /* WebSeriesVM.swift */; };
52D6A24B2C21B43300145908 /* WebSeriesCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 52D6A24A2C21B43300145908 /* WebSeriesCell.xib */; };
@@ -272,6 +277,8 @@
523ED27A2BDA2BC900CFED02 /* WOKAUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WOKAUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
523ED27E2BDA2BC900CFED02 /* WOKAUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WOKAUITests.swift; sourceTree = "<group>"; };
523ED2802BDA2BC900CFED02 /* WOKAUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WOKAUITestsLaunchTests.swift; sourceTree = "<group>"; };
5242FE582C24203E0086A86D /* WebSeriesSeasonVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSeriesSeasonVC.swift; sourceTree = "<group>"; };
5242FE5A2C24317A0086A86D /* WebSeriesSeasonVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSeriesSeasonVM.swift; sourceTree = "<group>"; };
524C422A2C04781B0016A11C /* ThemeTwoVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeTwoVM.swift; sourceTree = "<group>"; };
524C42302C0499560016A11C /* NotificationCenterReloads.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCenterReloads.swift; sourceTree = "<group>"; };
524C42322C049D590016A11C /* CustomizableSegmentControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomizableSegmentControl.swift; sourceTree = "<group>"; };
@@ -315,6 +322,9 @@
527AC6FB2C173A5100434FB7 /* SongListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SongListCell.swift; sourceTree = "<group>"; };
527AC6FC2C173A5100434FB7 /* SongListCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SongListCell.xib; sourceTree = "<group>"; };
527AC7002C182DCE00434FB7 /* TimeStringToSeconds.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeStringToSeconds.swift; sourceTree = "<group>"; };
528E5F1A2C24531200E33E4E /* SeasonListingDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeasonListingDM.swift; sourceTree = "<group>"; };
528E5F202C24660F00E33E4E /* SeasonCategoryCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeasonCategoryCell.swift; sourceTree = "<group>"; };
528E5F212C24660F00E33E4E /* SeasonCategoryCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SeasonCategoryCell.xib; sourceTree = "<group>"; };
529B0DD32C06156B00CFC54B /* LoginNavVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginNavVC.swift; sourceTree = "<group>"; };
529B0DD52C070C0F00CFC54B /* GuestDataDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuestDataDM.swift; sourceTree = "<group>"; };
52A3F6A42BECBA8D0000BB0B /* LinkedChildDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkedChildDM.swift; sourceTree = "<group>"; };
@@ -374,6 +384,7 @@
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>"; };
52CCD7AF2C1AF0F80078BD65 /* RadioVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioVC.swift; sourceTree = "<group>"; };
52D2F3D72C24043D009E52FF /* ShimmerEffectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShimmerEffectView.swift; sourceTree = "<group>"; };
52D6A2452C21A29800145908 /* ContinueWatchingDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContinueWatchingDM.swift; sourceTree = "<group>"; };
52D6A2472C21A3A500145908 /* WebSeriesVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSeriesVM.swift; sourceTree = "<group>"; };
52D6A2492C21B43300145908 /* WebSeriesCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSeriesCell.swift; sourceTree = "<group>"; };
@@ -470,7 +481,6 @@
files = (
522A93132C0DB5D50098FE49 /* JWPlayerKit in Frameworks */,
9C1C69FA2C106B290035B2C7 /* RSKPlaceholderTextView in Frameworks */,
525954512BEB5EB700191286 /* SkeletonView in Frameworks */,
619A5A1BD8BD968ADC83C106 /* Pods_WOKA.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -954,6 +964,7 @@
isa = PBXGroup;
children = (
52DAC64D2C21775300E2F85B /* WebSeriesVC.swift */,
5242FE582C24203E0086A86D /* WebSeriesSeasonVC.swift */,
);
path = Controller;
sourceTree = "<group>";
@@ -962,6 +973,7 @@
isa = PBXGroup;
children = (
52D6A2472C21A3A500145908 /* WebSeriesVM.swift */,
5242FE5A2C24317A0086A86D /* WebSeriesSeasonVM.swift */,
);
path = ViewModel;
sourceTree = "<group>";
@@ -973,6 +985,8 @@
52D6A24A2C21B43300145908 /* WebSeriesCell.xib */,
52D6A24F2C22B58200145908 /* WebSeriesShowListingCell.swift */,
52D6A2562C22C1E300145908 /* WebSeriesShowListingCell.xib */,
528E5F202C24660F00E33E4E /* SeasonCategoryCell.swift */,
528E5F212C24660F00E33E4E /* SeasonCategoryCell.xib */,
);
path = View;
sourceTree = "<group>";
@@ -983,6 +997,7 @@
52D6A2452C21A29800145908 /* ContinueWatchingDM.swift */,
52D6A24D2C22B3AB00145908 /* WebSeriesShowListDM.swift */,
52D6A2532C22B93F00145908 /* CategoryListingDM.swift */,
528E5F1A2C24531200E33E4E /* SeasonListingDM.swift */,
);
path = Model;
sourceTree = "<group>";
@@ -1044,6 +1059,7 @@
isa = PBXGroup;
children = (
9C535DB72C0089B400DA6DCD /* ViewButtonAnimation.swift */,
52D2F3D72C24043D009E52FF /* ShimmerEffectView.swift */,
);
path = Animation;
sourceTree = "<group>";
@@ -1264,7 +1280,6 @@
);
name = WOKA;
packageProductDependencies = (
525954502BEB5EB700191286 /* SkeletonView */,
522A93122C0DB5D50098FE49 /* JWPlayerKit */,
9C1C69F92C106B290035B2C7 /* RSKPlaceholderTextView */,
);
@@ -1342,7 +1357,6 @@
);
mainGroup = 523ED2512BDA2BC700CFED02;
packageReferences = (
5259544F2BEB5EB700191286 /* XCRemoteSwiftPackageReference "SkeletonView" */,
522A93112C0DB5D50098FE49 /* XCRemoteSwiftPackageReference "JWPlayerKit-package" */,
9C1C69F82C106B290035B2C7 /* XCRemoteSwiftPackageReference "RSKPlaceholderTextView" */,
);
@@ -1362,6 +1376,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
528E5F232C24660F00E33E4E /* SeasonCategoryCell.xib in Resources */,
9C27E1732BDB86B600EC1DA9 /* OnBoardCell.xib in Resources */,
522A931A2C0DE8CC0098FE49 /* SideBarNav.storyboard in Resources */,
9CDCE1452BDB9B9A003FEF11 /* OnBoardMainSound.m4a in Resources */,
@@ -1480,6 +1495,7 @@
525954102BE8B72900191286 /* FontCustom.swift in Sources */,
5202AAFE2BDF90590043B7BD /* TextFieldImage.swift in Sources */,
9C7939152C0F23AA00F5D6E6 /* NsNotificationExtension.swift in Sources */,
528E5F1B2C24531200E33E4E /* SeasonListingDM.swift in Sources */,
52FDDAB52BF34DC300E037C1 /* YesNoAlertVC.swift in Sources */,
52C6E0232BE3B3E300E22D59 /* SelectAvatarVC.swift in Sources */,
529B0DD62C070C0F00CFC54B /* GuestDataDM.swift in Sources */,
@@ -1494,6 +1510,7 @@
9C27E1602BDB6ECA00EC1DA9 /* UserDefaultsStruct.swift in Sources */,
52A3F6AD2BECC0340000BB0B /* TypeAlias.swift in Sources */,
52D6A24C2C21B43300145908 /* WebSeriesCell.swift in Sources */,
5242FE5B2C24317A0086A86D /* WebSeriesSeasonVM.swift in Sources */,
524C422B2C04781B0016A11C /* ThemeTwoVM.swift in Sources */,
52B8D4DF2C04A25E00ED65F3 /* StatusBar.swift in Sources */,
5259541D2BE8D94400191286 /* QueueHelper.swift in Sources */,
@@ -1516,6 +1533,7 @@
52BC3BF02C1701F8002FACA6 /* BlogDM.swift in Sources */,
525954192BE8CC3400191286 /* ConstantString.swift in Sources */,
52D774EB2BDFC0BF001D87DE /* OTPVC.swift in Sources */,
52D2F3D82C24043D009E52FF /* ShimmerEffectView.swift in Sources */,
9C27E16F2BDB866500EC1DA9 /* CellIdentifier.swift in Sources */,
52BC3BF22C170264002FACA6 /* MoreVM.swift in Sources */,
9CBE1B412C0F37B300CA6E61 /* DPDUIView+Extension.swift in Sources */,
@@ -1597,6 +1615,7 @@
52BC3BE22C0E02EE002FACA6 /* FaqVC.swift in Sources */,
52A981D02C1AFEE8000E0BEC /* MyListVM.swift in Sources */,
5272FCE52BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift in Sources */,
528E5F222C24660F00E33E4E /* SeasonCategoryCell.swift in Sources */,
525954272BE9178F00191286 /* UserDataDM.swift in Sources */,
9C27E1652BDB6FBC00EC1DA9 /* StoryBoardID.swift in Sources */,
52FDBA782BFF23F4009D7AC7 /* TimePeriod.swift in Sources */,
@@ -1605,6 +1624,7 @@
9CB4C5A92C118EF300737C00 /* NavBarColor.swift in Sources */,
525954322BEA39D200191286 /* AddTapGesture.swift in Sources */,
522242682BFC74380085C632 /* TabBarVC.swift in Sources */,
5242FE592C24203E0086A86D /* WebSeriesSeasonVC.swift in Sources */,
9C27E1722BDB86B600EC1DA9 /* OnBoardCell.swift in Sources */,
529B0DD42C06156B00CFC54B /* LoginNavVC.swift in Sources */,
52A981D72C1B0E27000E0BEC /* FavouriteCell.swift in Sources */,
@@ -2050,14 +2070,6 @@
minimumVersion = 4.19.1;
};
};
5259544F2BEB5EB700191286 /* XCRemoteSwiftPackageReference "SkeletonView" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/Juanpe/SkeletonView.git";
requirement = {
kind = exactVersion;
version = 1.31.0;
};
};
9C1C69F82C106B290035B2C7 /* XCRemoteSwiftPackageReference "RSKPlaceholderTextView" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/ruslanskorb/RSKPlaceholderTextView.git";
@@ -2074,11 +2086,6 @@
package = 522A93112C0DB5D50098FE49 /* XCRemoteSwiftPackageReference "JWPlayerKit-package" */;
productName = JWPlayerKit;
};
525954502BEB5EB700191286 /* SkeletonView */ = {
isa = XCSwiftPackageProductDependency;
package = 5259544F2BEB5EB700191286 /* XCRemoteSwiftPackageReference "SkeletonView" */;
productName = SkeletonView;
};
9C1C69F92C106B290035B2C7 /* RSKPlaceholderTextView */ = {
isa = XCSwiftPackageProductDependency;
package = 9C1C69F82C106B290035B2C7 /* XCRemoteSwiftPackageReference "RSKPlaceholderTextView" */;

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "PlayButton.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "PlayButton@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "PlayButton@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "ShareImage.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ShareImage@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ShareImage@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Modal1.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -190,7 +190,9 @@ extension UIView {
func startShimmeringViewAnimation() {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
// gradientLayer.frame = bounds
gradientLayer.frame = CGRect(x: -bounds.width, y: 0, width: 3 * bounds.width, height: bounds.height)
gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)
let gradientColorOne = #colorLiteral(red: 0.7529411765, green: 0.7529411765, blue: 0.7529411765, alpha: 1).cgColor

View File

@@ -37,7 +37,7 @@ class UserDetailsRegisterVM{
vc.enterUserNameTF.addRightButton(title: "", tintColor: UIColor.red, btnImage: UIImage(systemName: "exclamationmark.circle.fill"), target: self, action: #selector(errorUserName))
vc.enterUserNameTF.rightView?.isHidden = true
if let createChildAccount{ // this is from the home screen when a parent can adda child
if createChildAccount != nil{ // this is from the home screen when a parent can adda child
vc.dontSharePassLabel.isHidden = true
vc.viewTitleLabel.text = "Add Child Account".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
vc.userNameTitleLabel.text = "USERNAME".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)

View File

@@ -41,6 +41,7 @@ extension K{
struct WebSeries{
static let webSeriesCell = "WebSeriesCell"
static let webSeriesShowListingCell = "WebSeriesShowListingCell"
static let seasonCategoryCell = "SeasonCategoryCell"
}
}
}

View File

@@ -62,6 +62,7 @@ extension K{
struct WebSeries{
static let webSeriesVC = "WebSeriesVC"
static let webSeriesSeasonVC = "WebSeriesSeasonVC"
}
}
}

View File

@@ -0,0 +1,86 @@
//
// ShimmerEffectView.swift
// WOKA
//
// Created by MacBook Pro on 20/06/24.
//
import UIKit
class ShimmerEffectView: UIView {
var gradientColorOne: CGColor = UIColor(red: 0.176, green: 0.012, blue: 0.561, alpha: 1.0).cgColor
var gradientColorTwo: CGColor = UIColor(white: 0.925, alpha: 1.0).cgColor
private var gradientLayer: CAGradientLayer?
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
private func commonInit() {
self.clipsToBounds = true
}
private func addGradientLayer() -> CAGradientLayer {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.bounds
// Calculate points for a 70-degree angle (slant)
let angleInRadians = CGFloat(70) * .pi / 180.0 // Convert degrees to radians
let startPointX = sin(angleInRadians)
let startPoint = CGPoint(x: -startPointX, y: 1.0)
let endPointX = cos(angleInRadians)
let endPoint = CGPoint(x: 1.0 + endPointX, y: 1.0)
gradientLayer.startPoint = startPoint
gradientLayer.endPoint = endPoint
gradientLayer.colors = [gradientColorOne, gradientColorTwo, gradientColorOne]
gradientLayer.locations = [0.0, 0.5, 1.0]
self.layer.addSublayer(gradientLayer)
return gradientLayer
}
private func addAnimation() -> CABasicAnimation {
let animation = CABasicAnimation(keyPath: "locations")
// Adjust fromValue and toValue for a 70-degree angle (slant)
animation.fromValue = [-1.0, -0.5, 0.0]
animation.toValue = [1.0, 1.5, 2.0]
animation.repeatCount = .infinity
animation.duration = 1.2
return animation
}
func startShimmer() {
let gradientLayer = addGradientLayer()
let animation = addAnimation()
gradientLayer.add(animation, forKey: animation.keyPath)
self.gradientLayer = gradientLayer
}
func stopShimmer() {
guard let gradientLayer = self.gradientLayer else { return }
gradientLayer.removeAllAnimations()
gradientLayer.removeFromSuperlayer()
self.gradientLayer = nil
}
override func layoutSubviews() {
super.layoutSubviews()
gradientLayer?.frame = self.bounds
}
}

View File

@@ -40,7 +40,7 @@ internal extension UIView {
internal extension UIWindow {
static func visibleWindow() -> UIWindow? {
var currentWindow = UIApplication.shared.keyWindow
var currentWindow = UIApplication.shared.keyWindowInConnectedScenes
if currentWindow == nil {
let frontToBackWindows = Array(UIApplication.shared.windows.reversed())

View File

@@ -27,6 +27,7 @@ extension UIImageView {
self.addSubview(activityIndicator)
// Timer.scheduledTimer(withTimeInterval: 1.5, repeats: false) { _ in
self.sd_setImage(with: URL(string: url.replacingOccurrences(of: " ", with: "%20"))) { (image, error, cacheType, url) in
activityIndicator.stopAnimating()
}

View File

@@ -204,7 +204,7 @@ extension MyListVC : CollectionViewSRC{
}
}
case .liked:
guard let isLiked = data.isLiked ,let postID = data.id,let postType = data.contentMoreDetails?.first?.postType,let categoryID = data.bookmarkCategoryIDS else{return}
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
if isDone{

View File

@@ -83,20 +83,27 @@ class MyListVM{
*/
webSeriesHindi = hindiData.compactMap { $0 }.filter { ($0.bookmarkCategoryIDS?.components(separatedBy: ",").first == "18" || $0.bookmarkCategoryIDS?.components(separatedBy: ",").last == "18") }
// Deleting the hindi series from main (those with category ID "18")
for (index, element) in favListingData!.showData!.enumerated() {
let bookMarkCatID = element.bookmarkCategoryIDS?.components(separatedBy: ",")
if let data = favListingData?.showData{
var indicesToRemove = [Int]()
// Deleting the hindi series from main (those with category ID "18")
for (index, element) in data.enumerated() {
if let bookMarkCatID = element.bookmarkCategoryIDS?.components(separatedBy: ","){
if bookMarkCatID.count > 1{
hindiData[index].bookmarkCategoryIDS = "1"
}else{
indicesToRemove.append(index)
}
}
}
if bookMarkCatID?.count == 2{
hindiData[index-1].bookmarkCategoryIDS = "1"
}else{
hindiData.remove(at: index-1)
// Remove items in reverse order to avoid index shifting issues
for index in indicesToRemove.reversed() {
hindiData.remove(at: index)
}
}
// hindiData.removeAll { $0.bookmarkCategoryIDS?.components(separatedBy: ",").count == 1 ? $0.bookmarkCategoryIDS? }
// Updating the showData with the filtered list
favListingData?.showData = hindiData
}

View File

@@ -215,3 +215,10 @@
"Karaoke" = "कराओके";
"Games" = "खेल";
/*
Web Series
*/
"Select Video Language" = "वीडियो भाषा चुनें";
"TRAILER" = "ट्रेलर";

View File

@@ -83,6 +83,7 @@ struct APIEndPoints {
static let continue_watching = makeURL(path: "continue_watching")
static let watch_show_listing = makeURL(path: "watch_show_listing")
static let category_listing = makeURL(path: "category_listing")
static let season_listing = makeURL(path: "season_listing")
}
// Other endpoint categories...

View File

@@ -0,0 +1,158 @@
//
// WebSeriesSeasonVC.swift
// WOKA
//
// Created by MacBook Pro on 20/06/24.
//
import UIKit
class WebSeriesSeasonVC: UIViewController {
var vm = WebSeriesSeasonVM()
@IBOutlet weak var seasonImage: UIImageView!
@IBOutlet weak var seasonTitle: UILabel!
@IBOutlet weak var seasonDate: UILabel!
@IBOutlet weak var seasonEpisodes: UILabel!
@IBOutlet weak var seasonMediaType: UILabel!
@IBOutlet weak var seasonDesc: UILabel!
@IBOutlet weak var categoryCV: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
vm.vc = self
vm.initView()
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
self.navigationController?.setColor(color: .white)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// Customize the navigation bar's appearance
self.navigationController?.setColor(color: .black)
}
@IBAction func watchBtnTapped(_ sender: LocalisedElementsButton) {
}
@IBAction func btnTapped(_ sender: LocalisedElementsButton) {
}
}
// MARK: - CollectionView Delegate
extension WebSeriesSeasonVC : CollectionViewSRC{
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return vm.seasonListingData.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: K.CellIdentifier.WebSeries.seasonCategoryCell, for: indexPath) as! SeasonCategoryCell
let data = vm.seasonListingData[indexPath.row]
cell.setData(title: data.seasonNumber ?? "Season", iselected: indexPath.row == vm.selectedCateogory)
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print(indexPath.row)
}
}
// MARK: - Collection Flow Layout
extension WebSeriesSeasonVC : UICollectionViewDelegateFlowLayout{
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
// Generate a random string for testing purposes
let randomText = vm.seasonListingData[indexPath.row].seasonNumber!
// Define the font for the text
let font = FontCustom.shareInstance.customFont(fontName: .Exo2_Bold, size: 18) // You can adjust the font size as needed
// Calculate the width of the text
let textWidth = randomText.size(withAttributes: [.font: font]).width
// Set the cell width based on the text width and any additional padding
let cellWidth = textWidth + 25 // Add any additional spacing you want
return CGSize(width: cellWidth, height: 50)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
section == 0 ? 15 : 5
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
}
}
// Helper method to calculate text width
extension String {
func width(withConstrainedHeight height: CGFloat, font: UIFont) -> CGFloat {
let constraintRect = CGSize(width: .greatestFiniteMagnitude, height: height)
let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [.font: font], context: nil)
return ceil(boundingBox.width)
}
}
@IBDesignable
class VerticalButton: UIButton {
@IBInspectable public var padding: CGFloat = 20.0 {
didSet {
setNeedsLayout()
}
}
override var intrinsicContentSize: CGSize {
let maxSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)
if let titleSize = titleLabel?.sizeThatFits(maxSize), let imageSize = imageView?.sizeThatFits(maxSize) {
let width = ceil(max(imageSize.width, titleSize.width))
let height = ceil(imageSize.height + titleSize.height + padding)
return CGSize(width: width, height: height)
}
return super.intrinsicContentSize
}
override func layoutSubviews() {
if let image = imageView?.image, let title = titleLabel?.attributedText {
let imageSize = image.size
let titleSize = title.size()
if effectiveUserInterfaceLayoutDirection == .leftToRight {
titleEdgeInsets = UIEdgeInsets(top: 0.0, left: -imageSize.width, bottom: -(imageSize.height + padding), right: 0.0)
imageEdgeInsets = UIEdgeInsets(top: -(titleSize.height + padding), left: 0.0, bottom: 0.0, right: -titleSize.width)
}
else {
titleEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: -(imageSize.height + padding), right: -imageSize.width)
imageEdgeInsets = UIEdgeInsets(top: -(titleSize.height + padding), left: -titleSize.width, bottom: 0.0, right: 0.0)
}
}
super.layoutSubviews()
}
}

View File

@@ -9,7 +9,11 @@ import UIKit
class WebSeriesVC: UIViewController {
@IBOutlet weak var headerView: UIView!
@IBOutlet weak var headerView: ShimmerEffectView!
@IBOutlet weak var masilaTrailerView: ShimmerEffectView!
@IBOutlet weak var videoLanguageView: ShimmerEffectView!
@IBOutlet weak var topLabel: UILabel!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var headerViewTopConstraint: NSLayoutConstraint!
@@ -23,6 +27,8 @@ class WebSeriesVC: UIViewController {
@IBOutlet weak var showListingTableView: UITableView!
@IBOutlet weak var tableHeight: NSLayoutConstraint!
@IBOutlet weak var continueWatchingStack: UIStackView!
var vm = WebSeriesVM()
override func viewDidLoad() {
@@ -66,15 +72,20 @@ class WebSeriesVC: UIViewController {
extension WebSeriesVC : TableViewSRC{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return vm.showData.count
return vm.showData.count == 0 ? 2 : vm.showData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: K.CellIdentifier.WebSeries.webSeriesShowListingCell) as! WebSeriesShowListingCell
let data = vm.showData[indexPath.row]
let categoryID = vm.categoryListingData[vm.dropDownModule.indexForSelectedRow ?? 0].id ?? 0
cell.setData(data: data,selectedCategory: categoryID)
if vm.showData.count == 0{
cell.showShimmer()
}else{
let data = vm.showData[indexPath.row]
let categoryID = vm.categoryListingData[vm.dropDownModule.indexForSelectedRow ?? 0].id ?? 0
cell.setData(data: data,selectedCategory: categoryID)
cell.stopShimmer()
}
cell.btnTapped = { [self] (type) -> Void in
updateFavLikes(type: type, index: indexPath.row)
@@ -179,7 +190,17 @@ extension WebSeriesVC : TableViewSRC{
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath.row)
if vm.showData.count == 0 {return}
let showData = vm.showData[indexPath.row]
let sb = UIStoryboard(name: K.StoryBoard.webSeries, bundle: nil)
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.WebSeries.webSeriesSeasonVC) as! WebSeriesSeasonVC
vcPush.vm.watchShowID = showData.id
if let selectedIndex = vm.dropDownModule.indexForSelectedRow{
let categoryID = vm.categoryListingData[selectedIndex]
vcPush.vm.categoryID = categoryID.id
}
self.navigationController?.pushViewController(vcPush, animated: true)
}
}

View File

@@ -0,0 +1,71 @@
//
// SeasonListingDM.swift
// WOKA
//
// Created by MacBook Pro on 20/06/24.
//
import Foundation
// MARK: - SeasonListingDM
struct SeasonListingDM: Codable {
let result: [Result]?
let totalRecords: Int?
enum CodingKeys: String, CodingKey {
case result
case totalRecords = "total_records"
}
// MARK: - Result
struct Result: Codable {
let id, watchShowsMasterID: Int?
let categoryMasterID, seasonNumber: String?
let noOfEpisodes: Int?
let seasonDescription: String?
let releaseYear: Int?
let seasonTitle: String?
let trailerURL: String?
let thumbnailPath: String?
let thumbnailImgURL: String?
let tagsKeyword, releaseDate, mediaType: String?
let seasonMoreDetails: [SeasonMoreDetail]?
enum CodingKeys: String, CodingKey {
case id
case watchShowsMasterID = "watch_shows_master_id"
case categoryMasterID = "category_master_id"
case seasonNumber = "season_number"
case noOfEpisodes = "no_of_episodes"
case seasonDescription = "season_description"
case releaseYear = "release_year"
case seasonTitle = "season_title"
case trailerURL = "trailer_url"
case thumbnailPath = "thumbnail_path"
case thumbnailImgURL = "thumbnail_img_url"
case tagsKeyword = "tags_keyword"
case releaseDate = "release_date"
case mediaType = "media_type"
case seasonMoreDetails = "season_more_details"
}
}
// MARK: - SeasonMoreDetail
struct SeasonMoreDetail: Codable {
let id, contentID, postType, languageMasterID: Int?
let title, description, tagsKeywords: String?
let trailerHDURL, trailerSDURL: String?
enum CodingKeys: String, CodingKey {
case id
case contentID = "content_id"
case postType = "post_type"
case languageMasterID = "language_master_id"
case title, description
case tagsKeywords = "tags_keywords"
case trailerHDURL = "trailer_hd_url"
case trailerSDURL = "trailer_sd_url"
}
}
}

View File

@@ -0,0 +1,38 @@
//
// SeasonCategoryCell.swift
// WOKA
//
// Created by MacBook Pro on 20/06/24.
//
import UIKit
class SeasonCategoryCell: UICollectionViewCell {
@IBOutlet weak var categoryTitle: UILabel!
@IBOutlet weak var outerView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func layoutSubviews() {
outerView.roundCorner()
}
func setData(title : String , iselected : Bool){
self.categoryTitle.text = title
selectDeselect(isSelected: iselected)
}
func selectDeselect(isSelected : Bool){
if isSelected{
outerView.backgroundColor = #colorLiteral(red: 0.4495816827, green: 0.2344398499, blue: 0.8120074868, alpha: 1)
categoryTitle.textColor = .white
}else{
outerView.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
categoryTitle.textColor = .black
}
}
}

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="SeasonCategoryCell" id="gTV-IL-0wX" customClass="SeasonCategoryCell" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="193" height="58"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="193" height="58"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HMN-pO-RGh">
<rect key="frame" x="10" y="5" width="173" height="48"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="wordWrap" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="83B-dW-gdG">
<rect key="frame" x="10" y="0.0" width="153" height="48"/>
<fontDescription key="fontDescription" name="Exo2-SemiBold" family="Exo 2" pointSize="18"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="83B-dW-gdG" secondAttribute="bottom" id="KH0-hj-diX"/>
<constraint firstAttribute="trailing" secondItem="83B-dW-gdG" secondAttribute="trailing" constant="10" id="SZk-hQ-AoF"/>
<constraint firstItem="83B-dW-gdG" firstAttribute="leading" secondItem="HMN-pO-RGh" secondAttribute="leading" constant="10" id="bPU-V8-tsf"/>
<constraint firstItem="83B-dW-gdG" firstAttribute="top" secondItem="HMN-pO-RGh" secondAttribute="top" id="mgG-mx-kxk"/>
</constraints>
</view>
</subviews>
</view>
<viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="HMN-pO-RGh" secondAttribute="trailing" constant="10" id="ERp-LI-fWH"/>
<constraint firstItem="HMN-pO-RGh" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="10" id="hc8-Nb-nf4"/>
<constraint firstAttribute="bottom" secondItem="HMN-pO-RGh" secondAttribute="bottom" constant="5" id="lwt-U3-qk0"/>
<constraint firstItem="HMN-pO-RGh" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" constant="5" id="r30-MA-j6Q"/>
</constraints>
<size key="customSize" width="193" height="58"/>
<connections>
<outlet property="categoryTitle" destination="83B-dW-gdG" id="2uE-ew-EY9"/>
<outlet property="outerView" destination="HMN-pO-RGh" id="Fg8-sO-f0l"/>
</connections>
<point key="canvasLocation" x="248.09160305343511" y="22.535211267605636"/>
</collectionViewCell>
</objects>
</document>

View File

@@ -14,6 +14,7 @@ class WebSeriesShowListingCell: UITableViewCell {
@IBOutlet weak var totalLikes: UILabel!
@IBOutlet weak var likeBtn: UIButton!
@IBOutlet weak var favBtn: UIButton!
@IBOutlet weak var shimmerView: ShimmerEffectView!
typealias btnTappedBlock = ( _ from : FavCellCLick) -> Void // 0 - plus 1 - minus
var btnTapped : btnTappedBlock!
@@ -22,7 +23,15 @@ class WebSeriesShowListingCell: UITableViewCell {
super.awakeFromNib()
// Initialization code
}
func showShimmer(){
shimmerView.startShimmer()
}
func stopShimmer(){
shimmerView.stopShimmer()
}
func setData(data : WebSeriesShowListDM.ShowDatum, selectedCategory : Int){
//heart.fill , heart , hand.thumbsup.fill , hand.thumbsup
if AuthFunc.shareInstance.getDefaultLanguage() == .english{
@@ -69,8 +78,6 @@ class WebSeriesShowListingCell: UITableViewCell {
//
// }
}
}
@IBAction func btnTapped(_ sender: UIButton) {

View File

@@ -24,98 +24,110 @@
<rect key="frame" x="0.0" y="0.0" width="517" height="244"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<stackView opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" axis="vertical" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="G54-zR-8Xw">
<rect key="frame" x="5" y="5" width="507" height="234"/>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sbJ-4V-z2d" customClass="ShimmerEffectView" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="5" y="5" width="507" height="228"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="EAi-LC-2U0">
<rect key="frame" x="10" y="10" width="487" height="176"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="170" id="yPf-xi-Xrf"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" distribution="equalSpacing" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="nyj-pp-g9k">
<rect key="frame" x="10" y="189" width="487" height="40"/>
<stackView opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="G54-zR-8Xw">
<rect key="frame" x="0.0" y="0.0" width="507" height="228"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="m8K-7d-Jib">
<rect key="frame" x="0.0" y="12.333333333333343" width="34" height="15.666666666666664"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" alignment="bottom" spacing="7" translatesAutoresizingMaskIntoConstraints="NO" id="Yeo-E9-Zv6">
<rect key="frame" x="355.33333333333331" y="0.0" width="131.66666666666669" height="40"/>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="EAi-LC-2U0">
<rect key="frame" x="10" y="10" width="487" height="170"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="170" id="yPf-xi-Xrf"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" distribution="equalSpacing" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="nyj-pp-g9k">
<rect key="frame" x="10" y="183" width="487" height="40"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="BXr-9k-Qk2">
<rect key="frame" x="0.0" y="0.0" width="131.66666666666666" height="40"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="m8K-7d-Jib">
<rect key="frame" x="0.0" y="12.333333333333343" width="34" height="15.666666666666664"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" alignment="bottom" spacing="7" translatesAutoresizingMaskIntoConstraints="NO" id="Yeo-E9-Zv6">
<rect key="frame" x="355.33333333333331" y="0.0" width="131.66666666666669" height="40"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1hk-86-QRw">
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="width" secondItem="1hk-86-QRw" secondAttribute="height" multiplier="1:1" id="xxl-2N-8EP"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JZR-Nd-wLM">
<rect key="frame" x="42" y="0.0" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" secondItem="JZR-Nd-wLM" secondAttribute="height" multiplier="1:1" id="atx-c5-FRS"/>
</constraints>
<color key="tintColor" name="TextDarkBlue"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="hand.thumbsup.fill" catalog="system"/>
<connections>
<action selector="btnTapped:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="EuW-HE-LQb"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1ig-SQ-qye">
<rect key="frame" x="84" y="0.0" width="5.6666666666666714" height="40"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JKZ-Mx-BE0">
<rect key="frame" x="91.666666666666686" y="0.0" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" secondItem="JKZ-Mx-BE0" secondAttribute="height" multiplier="1:1" id="Klv-tP-CFQ"/>
</constraints>
<color key="tintColor" name="TextDarkBlue"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="heart.fill" catalog="system"/>
<connections>
<action selector="btnTapped:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Lac-h1-kbx"/>
</connections>
</button>
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="BXr-9k-Qk2">
<rect key="frame" x="0.0" y="0.0" width="131.66666666666666" height="40"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1hk-86-QRw">
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="width" secondItem="1hk-86-QRw" secondAttribute="height" multiplier="1:1" id="xxl-2N-8EP"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JZR-Nd-wLM">
<rect key="frame" x="42" y="0.0" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" secondItem="JZR-Nd-wLM" secondAttribute="height" multiplier="1:1" id="atx-c5-FRS"/>
</constraints>
<color key="tintColor" name="TextDarkBlue"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="hand.thumbsup.fill" catalog="system"/>
<connections>
<action selector="btnTapped:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="EuW-HE-LQb"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1ig-SQ-qye">
<rect key="frame" x="84" y="0.0" width="5.6666666666666714" height="40"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JKZ-Mx-BE0">
<rect key="frame" x="91.666666666666686" y="0.0" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" secondItem="JKZ-Mx-BE0" secondAttribute="height" multiplier="1:1" id="Klv-tP-CFQ"/>
</constraints>
<color key="tintColor" name="TextDarkBlue"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="heart.fill" catalog="system"/>
<connections>
<action selector="btnTapped:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Lac-h1-kbx"/>
</connections>
</button>
</subviews>
</stackView>
</subviews>
</stackView>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="40" id="eHz-Hw-4GD"/>
</constraints>
</stackView>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="40" id="eHz-Hw-4GD"/>
</constraints>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<edgeInsets key="layoutMargins" top="10" left="10" bottom="5" right="10"/>
</stackView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<edgeInsets key="layoutMargins" top="10" left="10" bottom="5" right="10"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="G54-zR-8Xw" secondAttribute="trailing" id="R4z-Z4-Zrf"/>
<constraint firstItem="G54-zR-8Xw" firstAttribute="leading" secondItem="sbJ-4V-z2d" secondAttribute="leading" id="UT7-xk-tyD"/>
<constraint firstItem="G54-zR-8Xw" firstAttribute="top" secondItem="sbJ-4V-z2d" secondAttribute="top" id="mnF-1N-aYV"/>
<constraint firstAttribute="bottom" secondItem="G54-zR-8Xw" secondAttribute="bottom" id="o5s-L8-erL"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</stackView>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="G54-zR-8Xw" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="5" id="Mzr-1D-4EY"/>
<constraint firstItem="G54-zR-8Xw" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="5" id="ZAr-tc-Dd5"/>
<constraint firstAttribute="trailing" secondItem="G54-zR-8Xw" secondAttribute="trailing" constant="5" id="lD2-m8-2nk"/>
<constraint firstAttribute="bottom" secondItem="G54-zR-8Xw" secondAttribute="bottom" constant="5" id="rf1-fD-USN"/>
<constraint firstAttribute="bottom" secondItem="sbJ-4V-z2d" secondAttribute="bottom" constant="5" id="FYN-Aj-h4V"/>
<constraint firstAttribute="trailing" secondItem="sbJ-4V-z2d" secondAttribute="trailing" constant="5" id="Ga2-qR-nby"/>
<constraint firstItem="sbJ-4V-z2d" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="5" id="olh-aX-bkU"/>
<constraint firstItem="sbJ-4V-z2d" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="5" id="xCg-EJ-cU3"/>
</constraints>
</tableViewCellContentView>
<viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
@@ -123,6 +135,7 @@
<connections>
<outlet property="favBtn" destination="JKZ-Mx-BE0" id="RmY-pT-bZ9"/>
<outlet property="likeBtn" destination="JZR-Nd-wLM" id="dfG-hW-1PZ"/>
<outlet property="shimmerView" destination="sbJ-4V-z2d" id="kPj-ZS-OLX"/>
<outlet property="showThumbnail" destination="EAi-LC-2U0" id="UqK-Mv-yaC"/>
<outlet property="showTitle" destination="m8K-7d-Jib" id="uK6-U5-gBN"/>
<outlet property="totalLikes" destination="1ig-SQ-qye" id="XAw-XE-AYg"/>

View File

@@ -0,0 +1,102 @@
//
// WebSeriesSeasonVM.swift
// WOKA
//
// Created by MacBook Pro on 20/06/24.
//
import Foundation
import Alamofire
class WebSeriesSeasonVM{
weak var vc : WebSeriesSeasonVC!
var watchShowID : Int?
var categoryID : Int?
var selectedCateogory = 0
var seasonListingData = [SeasonListingDM.Result]()
func initView(){
getSeasonListing()
setupCell()
}
func setupCell(){
vc.categoryCV.register(UINib(nibName: K.CellIdentifier.WebSeries.seasonCategoryCell, bundle: nil), forCellWithReuseIdentifier: K.CellIdentifier.WebSeries.seasonCategoryCell)
vc.categoryCV.delegate = vc.self
vc.categoryCV.dataSource = vc.self
}
// MARK: - Api Calls
func getSeasonListing(){
Utilities.startProgressHUD()
guard let watchShowID, let categoryID else{return}
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["watch_show_id" : watchShowID,
"category_id" : categoryID]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.WebSeries.season_listing, method: .post,parameters: params,headers : headers) { [weak self](result : Result<BaseResponseModel<SeasonListingDM>, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{
Utilities.dismissProgressHUD()
return
}
switch data.success{
case 0:
/*
Error
*/
Utilities.dismissProgressHUD()
vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
case 1:
Utilities.dismissProgressHUD()
guard let data = data.data?.result else{return}
self.seasonListingData = data
setSeasonData()
self.vc.categoryCV.reloadData()
default:
break
}
case .failure(let error):
guard let self else{
Utilities.dismissProgressHUD()
return
}
Utilities.dismissProgressHUD()
vc.toast(msg: error.localizedDescription , time: 2)
}
}
}
func setSeasonData(){
guard let data = seasonListingData.first else{return}
vc.seasonImage.imageURL(data.thumbnailPath!, color: UIColor.appColor(.TextDarkBlue)!)
if AuthFunc.shareInstance.getDefaultLanguage() == .english{
let englishData = data.seasonMoreDetails?.filter({$0.languageMasterID == 1}).first
vc.seasonTitle.text = englishData?.title
if let desc = englishData?.description?.replacingOccurrences(of: "<br>", with: "").htmlToAttributedString{
let sizeText = NSMutableAttributedString(attributedString: desc)
sizeText.setFontFace(font: FontCustom.shareInstance.customFont(fontName: .Exo2_Regular, size: 15),color: UIColor.appColor(.TextDarkBlue)!)
self.vc.seasonDesc.attributedText = sizeText
}
}else{
let hindiData = data.seasonMoreDetails?.filter({$0.languageMasterID == 2}).first
vc.seasonTitle.text = hindiData?.title
if let desc = hindiData?.description?.replacingOccurrences(of: "<br>", with: "").htmlToAttributedString{
let sizeText = NSMutableAttributedString(attributedString: desc)
sizeText.setFontFace(font: FontCustom.shareInstance.customFont(fontName: .Exo2_Regular, size: 15),color: UIColor.appColor(.TextDarkBlue)!)
self.vc.seasonDesc.attributedText = sizeText
}
}
vc.seasonDate.text = data.releaseYear?.toString()
vc.seasonEpisodes.text = data.noOfEpisodes?.toString()
vc.seasonMediaType.text = data.mediaType
}
}

View File

@@ -13,12 +13,20 @@ class WebSeriesVM{
weak var vc : WebSeriesVC!
var continueWatchingData = [ContinueWatchingDM.ResultData]()
var categoryListingData = [CategoryListingDM.ResultData]()
var showData = [WebSeriesShowListDM.ShowDatum]()
let dropDownModule = DropDown()
var dataSource = [String]()
func initView(){
setupCell()
self.vc.tableHeight.constant = self.vc.showListingTableView.contentSize.height + 100
self.vc.showListingTableView.layoutIfNeeded()
self.vc.tableHeight.constant = self.vc.showListingTableView.contentSize.height
startShimmer()
vc.scrollView.indicatorStyle = .white // or .white
let color1 = #colorLiteral(red: 0.5921568627, green: 0.2588235294, blue: 0.8941176471, alpha: 1)
@@ -31,14 +39,25 @@ class WebSeriesVM{
getCategoryListing()
// for the first load always send hindi as it is default category
getShowListing(categoryID: 18)
self.getShowListing(categoryID: 18)
vc.languageStack.addTapGesture { [weak self] in
guard let self else {return}
dropDownModule.show()
self.vc.expandBtn.setImage(UIImage(named: "SupportUpArrow"), for: .normal)
}
setupCell()
}
func startShimmer(){
vc.headerView.startShimmer()
vc.masilaTrailerView.startShimmer()
vc.videoLanguageView.startShimmer()
}
func stopShimmer(){
self.vc.headerView.stopShimmer()
self.vc.masilaTrailerView.stopShimmer()
self.vc.videoLanguageView.stopShimmer()
}
func setupCell(){
@@ -69,6 +88,13 @@ class WebSeriesVM{
dropDownModule.selectionBackgroundColor = UIColor.appColor(.TextDarkBlue)!
dropDownModule.selectedTextColor = .white
dropDownModule.selectRow(at: 0)
// handle if user clicks outside
dropDownModule.cancelAction = { [weak self] in
guard let self else{return}
vc.expandBtn.setImage(UIImage(named: "SupportBottomArrow"), for: .normal)
}
dropDownModule.selectionAction = { [weak self] (index: Int, item: String) in
guard let self else{return}
vc.languageLabel.text = item
@@ -84,9 +110,8 @@ class WebSeriesVM{
// MARK: - Api Calls
func getContinueWatching(){
Utilities.startProgressHUD()
// let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
let headers : HTTPHeaders = ["access-token" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3dva2FsYW5kLmNvbS9hZG1pbi9hcGkvbG9naW5fcHJvY2VlZCIsImlhdCI6MTcxODcxNTk4OSwiZXhwIjoxNzUwMjUxOTg5LCJuYmYiOjE3MTg3MTU5ODksImp0aSI6Ilh1QzVIdjY1RkcwQ1hqUkYiLCJzdWIiOiIyMTYiLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.w8AfPv_6WUoDiBRcJzHz036qhaxfw_R9Gcb2C2wGLvs"]
// Utilities.startProgressHUD()
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["post_type" : 3] // 3- webseries
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.WebSeries.continue_watching, method: .post,parameters: params,headers : headers) { [weak self](result : Result<BaseResponseModel<ContinueWatchingDM>, NetworkManager.APIError>) in
switch result{
@@ -101,10 +126,16 @@ class WebSeriesVM{
Error
*/
Utilities.dismissProgressHUD()
vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
// vc.toast(msg: data.message ?? "Unrecognised error" , time: 2)
self.vc.continueWatchingStack.isHidden = true
case 1:
Utilities.dismissProgressHUD()
guard let data = data.data?.result else{return}
if data.count == 0{
self.vc.continueWatchingStack.isHidden = true
}else{
self.vc.continueWatchingStack.isHidden = false
}
self.continueWatchingData = data
self.vc.continueWatchingCV.reloadData()
default:
@@ -116,13 +147,14 @@ class WebSeriesVM{
return
}
Utilities.dismissProgressHUD()
self.vc.continueWatchingStack.isHidden = true
vc.toast(msg: error.localizedDescription , time: 2)
}
}
}
func getShowListing(categoryID : Int){
Utilities.startProgressHUD()
// Utilities.startProgressHUD()
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["category_id" : categoryID] // from category listing api , default will be 1
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.WebSeries.watch_show_listing, method: .post,parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<WebSeriesShowListDM>, NetworkManager.APIError>) in
@@ -147,7 +179,9 @@ class WebSeriesVM{
self.vc.showListingTableView.reloadData()
self.vc.tableHeight.constant = self.vc.showListingTableView.contentSize.height + 100
self.vc.showListingTableView.layoutIfNeeded()
self.vc.tableHeight.constant = self.vc.showListingTableView.contentSize.height
self.vc.tableHeight.constant = self.vc.showListingTableView.contentSize.height
self.stopShimmer()
default:
break
}
@@ -163,7 +197,7 @@ class WebSeriesVM{
}
func getCategoryListing(){
Utilities.startProgressHUD()
// Utilities.startProgressHUD()
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["module_id" : 7] // 7 - webseries
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.WebSeries.category_listing, method: .post,parameters: params,headers : headers) { [weak self](result : Result<BaseResponseModel<CategoryListingDM>, NetworkManager.APIError>) in

View File

@@ -6,12 +6,19 @@
<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"/>
</dependencies>
<customFonts key="customFonts">
<array key="Exo2-Bold.ttf">
<string>Exo2-Bold</string>
</array>
<array key="Exo2-Medium.ttf">
<string>Exo2-Medium</string>
</array>
<array key="Exo2-Regular.ttf">
<string>Exo2-Regular</string>
</array>
</customFonts>
<scenes>
<!--Web SeriesVC-->
@@ -22,7 +29,7 @@
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bTO-Ql-tyN">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bTO-Ql-tyN" customClass="ShimmerEffectView" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="59" width="393" height="200"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="MasilaComingSoon" translatesAutoresizingMaskIntoConstraints="NO" id="wnB-dE-0v3">
@@ -37,49 +44,64 @@
<constraint firstAttribute="height" constant="200" id="X2g-lr-CX0"/>
<constraint firstItem="wnB-dE-0v3" firstAttribute="leading" secondItem="bTO-Ql-tyN" secondAttribute="leading" id="sQQ-a5-rhV"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="isSkeletonable" value="YES"/>
</userDefinedRuntimeAttributes>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="0UD-sZ-RF4">
<rect key="frame" x="0.0" y="259" width="393" height="593"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="tRo-aT-Zuf">
<rect key="frame" x="0.0" y="0.0" width="393" height="98"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cog-DZ-ib0" customClass="ShimmerEffectView" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="393" height="103"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MASILA" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RDe-bw-Rsd">
<rect key="frame" x="145.66666666666666" y="0.0" width="102" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="niS-eQ-1x0"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="28"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Vyo-SD-Uke" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="146.66666666666666" y="58" width="100" height="40"/>
<color key="backgroundColor" red="0.36862745099999999" green="0.1215686275" blue="0.76862745099999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="Xr1-4J-QSr"/>
<constraint firstAttribute="width" constant="100" id="wO4-9d-U0h"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="14"/>
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="TRAILER"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="20"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</button>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="tRo-aT-Zuf">
<rect key="frame" x="0.0" y="0.0" width="393" height="103"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MASILA" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RDe-bw-Rsd">
<rect key="frame" x="145.66666666666666" y="0.0" width="102" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="niS-eQ-1x0"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="28"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Vyo-SD-Uke" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="136.66666666666666" y="58" width="119.99999999999997" height="45"/>
<color key="backgroundColor" red="0.36862745099999999" green="0.1215686275" blue="0.76862745099999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="Xr1-4J-QSr"/>
<constraint firstAttribute="width" constant="120" id="wO4-9d-U0h"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="14"/>
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="TRAILER"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="20"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</button>
</subviews>
</stackView>
</subviews>
</stackView>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="tRo-aT-Zuf" secondAttribute="bottom" id="1MS-kc-OFl"/>
<constraint firstAttribute="trailing" secondItem="tRo-aT-Zuf" secondAttribute="trailing" id="DaK-Wx-IIH"/>
<constraint firstItem="tRo-aT-Zuf" firstAttribute="top" secondItem="Cog-DZ-ib0" secondAttribute="top" id="Klr-U0-9LJ"/>
<constraint firstItem="tRo-aT-Zuf" firstAttribute="leading" secondItem="Cog-DZ-ib0" secondAttribute="leading" id="icB-N3-EK6"/>
</constraints>
</view>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rom-H6-7RC">
<rect key="frame" x="0.0" y="106" width="393" height="487"/>
<rect key="frame" x="0.0" y="111" width="393" height="482"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="c6v-VU-iKP">
<rect key="frame" x="0.0" y="0.0" width="393" height="645"/>
<rect key="frame" x="0.0" y="0.0" width="393" height="105"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="mFz-UO-YUA">
<rect key="frame" x="10" y="0.0" width="373" height="270"/>
<stackView hidden="YES" opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="mFz-UO-YUA">
<rect key="frame" x="10" y="-270" width="373" height="270"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CONTINUE WATCHING" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l9e-Rq-ZI5">
<rect key="frame" x="0.0" y="0.0" width="373" height="40"/>
@@ -106,88 +128,80 @@
</collectionView>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="sVS-IL-R2M">
<rect key="frame" x="10" y="285" width="373" height="90"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="emj-f9-sOE" customClass="ShimmerEffectView" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="373" height="90"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Select Video Language" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4zk-yS-92w">
<rect key="frame" x="0.0" y="0.0" width="373" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="fjV-kt-Sf2"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="aqw-eq-zU5">
<rect key="frame" x="0.0" y="40" width="373" height="50"/>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="sVS-IL-R2M">
<rect key="frame" x="0.0" y="0.0" width="373" height="90"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yFH-vA-sul">
<rect key="frame" x="0.0" y="0.0" width="205" height="50"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Select Video Language" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4zk-yS-92w" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="373" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="fjV-kt-Sf2"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" translatesAutoresizingMaskIntoConstraints="NO" id="aqw-eq-zU5">
<rect key="frame" x="0.0" y="40" width="373" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hindi" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Exa-2W-66W">
<rect key="frame" x="15" y="10" width="150" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="150" id="RUF-0Z-y7n"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="15"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nJQ-BB-3U3">
<rect key="frame" x="165" y="10" width="30" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="HRV-zm-4xd"/>
</constraints>
<color key="tintColor" name="TextDarkBlue"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="SupportBottomArrow"/>
<connections>
<action selector="expandLanguageTapped:" destination="Y6W-OH-hqX" eventType="touchUpInside" id="NlA-yz-KeY"/>
</connections>
</button>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yFH-vA-sul">
<rect key="frame" x="0.0" y="0.0" width="205" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hindi" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Exa-2W-66W">
<rect key="frame" x="15" y="10" width="150" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="150" id="RUF-0Z-y7n"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="15"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nJQ-BB-3U3">
<rect key="frame" x="165" y="10" width="30" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="HRV-zm-4xd"/>
</constraints>
<color key="tintColor" name="TextDarkBlue"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="SupportBottomArrow"/>
<connections>
<action selector="expandLanguageTapped:" destination="Y6W-OH-hqX" eventType="touchUpInside" id="NlA-yz-KeY"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<edgeInsets key="layoutMargins" top="10" left="15" bottom="10" right="10"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</stackView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<edgeInsets key="layoutMargins" top="10" left="15" bottom="10" right="10"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<constraints>
<constraint firstAttribute="height" constant="50" id="1hs-aK-S1w"/>
</constraints>
</stackView>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="50" id="1hs-aK-S1w"/>
</constraints>
</stackView>
</subviews>
</stackView>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="sVS-IL-R2M" secondAttribute="trailing" id="0SR-uh-Qae"/>
<constraint firstItem="sVS-IL-R2M" firstAttribute="leading" secondItem="emj-f9-sOE" secondAttribute="leading" id="AfR-rc-7hK"/>
<constraint firstItem="sVS-IL-R2M" firstAttribute="top" secondItem="emj-f9-sOE" secondAttribute="top" id="QNX-NF-BLU"/>
<constraint firstAttribute="bottom" secondItem="sVS-IL-R2M" secondAttribute="bottom" id="uF5-sW-L0X"/>
</constraints>
</view>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="244" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="Oxv-4e-Qj0">
<rect key="frame" x="10" y="390" width="373" height="0.0"/>
<rect key="frame" x="10" y="105" width="373" height="0.0"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" id="WLI-rz-zRP"/>
</constraints>
</tableView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="DUm-IQ-hRU">
<rect key="frame" x="10" y="405" width="373" height="240"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Labelsad" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NUp-lE-9Lp">
<rect key="frame" x="0.0" y="0.0" width="373" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="05W-0e-kZ5"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" image="AboutKids" translatesAutoresizingMaskIntoConstraints="NO" id="6qQ-sF-he2">
<rect key="frame" x="0.0" y="40" width="373" height="200"/>
<constraints>
<constraint firstAttribute="height" constant="200" id="lxT-4m-HAv"/>
</constraints>
</imageView>
</subviews>
</stackView>
</subviews>
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
@@ -220,29 +234,365 @@
</view>
<connections>
<outlet property="continueWatchingCV" destination="SbC-xR-iRW" id="nKM-9B-Dk2"/>
<outlet property="continueWatchingStack" destination="mFz-UO-YUA" id="amK-9N-Knf"/>
<outlet property="expandBtn" destination="nJQ-BB-3U3" id="AZm-uJ-RpA"/>
<outlet property="headerHeight" destination="X2g-lr-CX0" id="PAQ-Df-ZBb"/>
<outlet property="headerView" destination="bTO-Ql-tyN" id="85Y-HZ-SN0"/>
<outlet property="headerViewTopConstraint" destination="qkp-BT-BFx" id="5E7-T8-qUm"/>
<outlet property="languageLabel" destination="Exa-2W-66W" id="e7q-aD-laV"/>
<outlet property="languageStack" destination="yFH-vA-sul" id="pBj-Ph-i57"/>
<outlet property="masilaTrailerView" destination="Cog-DZ-ib0" id="IMd-wS-yNh"/>
<outlet property="scrollView" destination="rom-H6-7RC" id="8bD-vg-lG2"/>
<outlet property="showListingTableView" destination="Oxv-4e-Qj0" id="Yye-0B-zRg"/>
<outlet property="tableHeight" destination="WLI-rz-zRP" id="g40-aL-ik2"/>
<outlet property="topLabel" destination="RDe-bw-Rsd" id="xAP-OV-KId"/>
<outlet property="videoLanguageView" destination="emj-f9-sOE" id="Lam-Kb-bnh"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-63.358778625954194" y="3.5211267605633805"/>
</scene>
<!--Web Series SeasonVC-->
<scene sceneID="GAx-2a-8fd">
<objects>
<viewController storyboardIdentifier="WebSeriesSeasonVC" id="sPj-Um-9Xm" customClass="WebSeriesSeasonVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="wXX-wW-Iuz">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" directionalLockEnabled="YES" showsHorizontalScrollIndicator="NO" indicatorStyle="white" bouncesZoom="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ka5-Rt-V3L">
<rect key="frame" x="0.0" y="59" width="393" height="793"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="JVZ-ee-mig">
<rect key="frame" x="0.0" y="0.0" width="393" height="1163"/>
<subviews>
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8zm-IG-hTk">
<rect key="frame" x="0.0" y="0.0" width="393" height="553"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="WebSeriesSeasonsBackground" translatesAutoresizingMaskIntoConstraints="NO" id="GF4-9m-aNo">
<rect key="frame" x="0.0" y="0.0" width="393" height="553"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="ZDd-3v-Wdp">
<rect key="frame" x="10" y="10" width="373" height="503"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Am7-iA-6bG">
<rect key="frame" x="0.0" y="0.0" width="373" height="206"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ygJ-Op-sJP">
<rect key="frame" x="8" y="8" width="357" height="190"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="ygJ-Op-sJP" secondAttribute="trailing" constant="8" id="5jT-M0-FSX"/>
<constraint firstItem="ygJ-Op-sJP" firstAttribute="top" secondItem="Am7-iA-6bG" secondAttribute="top" constant="8" id="FMB-f9-hlG"/>
<constraint firstAttribute="bottom" secondItem="ygJ-Op-sJP" secondAttribute="bottom" constant="8" id="b4t-4K-wrZ"/>
<constraint firstItem="ygJ-Op-sJP" firstAttribute="leading" secondItem="Am7-iA-6bG" secondAttribute="leading" constant="8" id="wSF-bR-JNe"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="10"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HN8-vD-Gdq">
<rect key="frame" x="0.0" y="216" width="373" height="49"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="ntr-yk-kf0">
<rect key="frame" x="0.0" y="0.0" width="340.66666666666669" height="49"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AdX-OP-Gcd">
<rect key="frame" x="0.0" y="0.0" width="8.3333333333333339" height="24"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="kuj-dx-TZO">
<rect key="frame" x="0.0" y="32" width="96" height="17"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3AX-wl-iqI">
<rect key="frame" x="0.0" y="0.0" width="6.333333333333333" height="17"/>
<fontDescription key="fontDescription" name="Exo2-Medium" family="Exo 2" pointSize="14"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" spacing="3" translatesAutoresizingMaskIntoConstraints="NO" id="Hmw-jf-jyN">
<rect key="frame" x="26.333333333333336" y="0.0" width="69.666666666666657" height="17"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="G0i-Q1-Tic">
<rect key="frame" x="0.0" y="0.0" width="9" height="17"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="14"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Episodes" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F1N-Se-lI3">
<rect key="frame" x="11.999999999999996" y="0.0" width="57.666666666666657" height="17"/>
<fontDescription key="fontDescription" name="Exo2-Medium" family="Exo 2" pointSize="14"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
</stackView>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" spacing="4" translatesAutoresizingMaskIntoConstraints="NO" id="xUb-mJ-NC8">
<rect key="frame" x="340.66666666666669" y="0.0" width="32.333333333333314" height="49"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="hand.thumbsup.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="eng-oC-d9H">
<rect key="frame" x="0.0" y="0.66666666666666785" width="20" height="47.666666666666657"/>
<color key="tintColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Egv-Cu-aPK">
<rect key="frame" x="24" y="0.0" width="8.3333333333333357" height="49"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DLr-9j-LSn">
<rect key="frame" x="0.0" y="275" width="373" height="168"/>
<string key="text">A set of moral stories inspired from the interactions of Mughal Emperor Akbar and his wisest courtier Birbal. The Akbar Birbal stories have been especially edited to suit the young kids and each story teaches audience an important moral lesson. </string>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalCentering" translatesAutoresizingMaskIntoConstraints="NO" id="a0z-CH-xbi">
<rect key="frame" x="0.0" y="453" width="373" height="50"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PzY-0K-yPM" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="140" height="50"/>
<color key="backgroundColor" red="0.36862745099999999" green="0.1215686275" blue="0.76862745099999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="140" id="UqM-B3-bVp"/>
<constraint firstAttribute="height" constant="50" id="ldT-CD-cmn"/>
</constraints>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="18"/>
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<inset key="titleEdgeInsets" minX="10" minY="0.0" maxX="0.0" maxY="0.0"/>
<state key="normal" title="WATCH" image="PlayButton"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="25"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<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">
<rect key="frame" x="233" y="0.0" width="140" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="iyr-1k-HHN">
<rect key="frame" x="0.0" y="0.0" width="38.333333333333336" height="50"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" image="heart" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="QkS-fP-ADo">
<rect key="frame" x="4.3333333333333428" y="1.9999999999999964" width="30" height="32.333333333333329"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="4SG-I2-B6S"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ADDED" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tlx-NG-HWl">
<rect key="frame" x="0.0" y="35.333333333333371" width="38.333333333333336" height="14.666666666666664"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="12"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9xJ-TL-8CA">
<rect key="frame" x="46.333333333333314" y="0.0" width="1" height="50"/>
<color key="backgroundColor" name="TextDarkBlue"/>
<constraints>
<constraint firstAttribute="width" constant="0.80000000000000004" id="y2u-9V-Gis"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="Lag-16-uzP">
<rect key="frame" x="55.333333333333314" y="0.0" width="36.666666666666657" height="50"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" image="ShareImage" translatesAutoresizingMaskIntoConstraints="NO" id="Azy-gL-vtW">
<rect key="frame" x="3.3333333333333712" y="0.0" width="30" height="35.333333333333336"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="DYv-5U-6mY"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHARE" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a4Q-xN-IE4">
<rect key="frame" x="0.0" y="35.333333333333371" width="36.666666666666664" height="14.666666666666664"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="12"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gs2-gk-Fn0">
<rect key="frame" x="100" y="0.0" width="0.6666666666666714" height="50"/>
<color key="backgroundColor" name="TextDarkBlue"/>
<constraints>
<constraint firstAttribute="width" constant="0.80000000000000004" id="2M1-wj-hEy"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="8UJ-rG-fB2">
<rect key="frame" x="108.66666666666669" y="0.0" width="31.333333333333343" height="50"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" image="hand.thumbsup" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="f9M-ON-9gL">
<rect key="frame" x="3.3333333333333144" y="-0.33333333333333215" width="25" height="35.333333333333329"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
<constraint firstAttribute="width" constant="25" id="UAK-v9-EKA"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LIKED" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q4V-Gl-g6v">
<rect key="frame" x="0.0" y="35.333333333333371" width="31.333333333333332" height="14.666666666666664"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="12"/>
<color key="textColor" name="TextDarkBlue"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
</stackView>
</subviews>
</stackView>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="GF4-9m-aNo" secondAttribute="bottom" id="18i-1F-SSP"/>
<constraint firstAttribute="trailing" secondItem="ZDd-3v-Wdp" secondAttribute="trailing" constant="10" id="714-8p-JJF"/>
<constraint firstAttribute="bottom" secondItem="GF4-9m-aNo" secondAttribute="bottom" id="7VZ-FR-KGw"/>
<constraint firstItem="GF4-9m-aNo" firstAttribute="top" secondItem="8zm-IG-hTk" secondAttribute="top" id="FYb-LK-pNV"/>
<constraint firstItem="ZDd-3v-Wdp" firstAttribute="leading" secondItem="8zm-IG-hTk" secondAttribute="leading" constant="10" id="MMh-Td-Mxa"/>
<constraint firstAttribute="trailing" secondItem="GF4-9m-aNo" secondAttribute="trailing" id="Onl-eh-b16"/>
<constraint firstItem="GF4-9m-aNo" firstAttribute="leading" secondItem="8zm-IG-hTk" secondAttribute="leading" id="PSh-pi-b9X"/>
<constraint firstAttribute="trailing" secondItem="GF4-9m-aNo" secondAttribute="trailing" id="Pt0-U5-EvQ"/>
<constraint firstItem="GF4-9m-aNo" firstAttribute="leading" secondItem="8zm-IG-hTk" secondAttribute="leading" id="dRd-Rg-42W"/>
<constraint firstItem="ZDd-3v-Wdp" firstAttribute="top" secondItem="8zm-IG-hTk" secondAttribute="top" constant="10" id="iJa-UU-L1j"/>
<constraint firstItem="GF4-9m-aNo" firstAttribute="top" secondItem="8zm-IG-hTk" secondAttribute="top" id="mv2-an-vyW"/>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="100" id="wZQ-FG-xjb"/>
<constraint firstAttribute="bottom" secondItem="ZDd-3v-Wdp" secondAttribute="bottom" constant="40" id="y9h-oU-Z97"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="heV-KP-ndD">
<rect key="frame" x="0.0" y="558" width="393" height="300"/>
<subviews>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="rAO-uI-Djj">
<rect key="frame" x="0.0" y="0.0" width="393" height="70"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="70" id="0ZK-IU-MRo"/>
</constraints>
<collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="10" minimumInteritemSpacing="10" id="7l5-M2-DPF">
<size key="itemSize" width="128" height="70"/>
<size key="headerReferenceSize" width="0.0" height="0.0"/>
<size key="footerReferenceSize" width="0.0" height="0.0"/>
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout>
<cells/>
</collectionView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" image="HomeGrassDay" translatesAutoresizingMaskIntoConstraints="NO" id="PYp-GX-xml">
<rect key="frame" x="0.0" y="70" width="393" height="230"/>
</imageView>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="300" id="3Uq-sp-2CX"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="soQ-RR-JbO">
<rect key="frame" x="0.0" y="863" width="393" height="300"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Select Video Language" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AKn-0T-GcN" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="393" height="21.666666666666668"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" image="HomeGrassDay" translatesAutoresizingMaskIntoConstraints="NO" id="JBe-8V-5pR">
<rect key="frame" x="0.0" y="21.666666666666629" width="393" height="278.33333333333331"/>
</imageView>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="300" id="MFb-mi-H2z"/>
</constraints>
</stackView>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="JVZ-ee-mig" firstAttribute="leading" secondItem="6BC-EI-c6S" secondAttribute="leading" id="539-an-m3X"/>
<constraint firstItem="JVZ-ee-mig" firstAttribute="top" secondItem="Ka5-Rt-V3L" secondAttribute="top" id="Bgm-6h-ooD"/>
<constraint firstItem="6BC-EI-c6S" firstAttribute="trailing" secondItem="JVZ-ee-mig" secondAttribute="trailing" id="by6-GS-3rU"/>
<constraint firstAttribute="bottom" secondItem="JVZ-ee-mig" secondAttribute="bottom" id="pLq-j1-zx6"/>
<constraint firstItem="JVZ-ee-mig" firstAttribute="width" secondItem="QMw-h5-HV5" secondAttribute="width" id="phT-Ue-AAx"/>
</constraints>
<viewLayoutGuide key="contentLayoutGuide" id="QMw-h5-HV5"/>
<viewLayoutGuide key="frameLayoutGuide" id="6BC-EI-c6S"/>
</scrollView>
</subviews>
<viewLayoutGuide key="safeArea" id="5r4-z5-Bnx"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="Ka5-Rt-V3L" firstAttribute="top" secondItem="5r4-z5-Bnx" secondAttribute="top" id="9Yv-dh-L30"/>
<constraint firstAttribute="bottom" secondItem="Ka5-Rt-V3L" secondAttribute="bottom" id="HYj-vK-Xwc"/>
<constraint firstItem="ygJ-Op-sJP" firstAttribute="height" secondItem="wXX-wW-Iuz" secondAttribute="height" multiplier="0.223005" id="g65-es-mTS"/>
<constraint firstItem="Ka5-Rt-V3L" firstAttribute="leading" secondItem="5r4-z5-Bnx" secondAttribute="leading" id="imN-IN-JUq"/>
<constraint firstItem="Ka5-Rt-V3L" firstAttribute="trailing" secondItem="5r4-z5-Bnx" secondAttribute="trailing" id="y4K-6C-hRq"/>
</constraints>
</view>
<connections>
<outlet property="categoryCV" destination="rAO-uI-Djj" id="9vd-ge-YZ5"/>
<outlet property="seasonDate" destination="3AX-wl-iqI" id="4Zq-76-ZN2"/>
<outlet property="seasonDesc" destination="DLr-9j-LSn" id="hpg-2G-M9N"/>
<outlet property="seasonEpisodes" destination="G0i-Q1-Tic" id="t9J-Zm-eqb"/>
<outlet property="seasonImage" destination="ygJ-Op-sJP" id="cXY-pG-3ce"/>
<outlet property="seasonMediaType" destination="F1N-Se-lI3" id="8Wb-HP-3bZ"/>
<outlet property="seasonTitle" destination="AdX-OP-Gcd" id="I39-xA-Z1d"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ZBM-os-iEI" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="762.59541984732823" y="3.5211267605633805"/>
</scene>
</scenes>
<resources>
<image name="AboutKids" width="256" height="188.33332824707031"/>
<image name="HomeGrassDay" width="570.66668701171875" height="641.33331298828125"/>
<image name="MasilaComingSoon" width="200" height="100"/>
<image name="PlayButton" width="32" height="32"/>
<image name="ShareImage" width="18" height="18"/>
<image name="SupportBottomArrow" width="16.333333969116211" height="16.333333969116211"/>
<image name="WebSeriesSeasonsBackground" width="142.66667175292969" height="187.33332824707031"/>
<image name="hand.thumbsup" catalog="system" width="123" height="128"/>
<image name="hand.thumbsup.fill" catalog="system" width="128" height="121"/>
<image name="heart" catalog="system" width="128" height="107"/>
<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>
</resources>
</document>