- Handled cc avenue payment web view
- Added analytics and crashlytics. - Completed add address - Completed payment , added callback handler
This commit is contained in:
@@ -83,6 +83,16 @@
|
||||
526A43752C36AA4A00AE148F /* GamesListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 526A43742C36AA4A00AE148F /* GamesListVC.swift */; };
|
||||
5272FCE32BDFDB05000ECB1D /* UserDetailsRegisterVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5272FCE22BDFDB05000ECB1D /* UserDetailsRegisterVC.swift */; };
|
||||
5272FCE52BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5272FCE42BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift */; };
|
||||
527A2BC22C576E980080DF9B /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 527A2BC12C576E980080DF9B /* FirebaseAnalytics */; };
|
||||
527A2BC42C576E980080DF9B /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = 527A2BC32C576E980080DF9B /* FirebaseCrashlytics */; };
|
||||
527A2BC62C576EAF0080DF9B /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 527A2BC52C576EAF0080DF9B /* GoogleService-Info.plist */; };
|
||||
527A2BC82C5777360080DF9B /* VerifyAddressPincodeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527A2BC72C5777360080DF9B /* VerifyAddressPincodeVC.swift */; };
|
||||
527A2BCA2C57776A0080DF9B /* AddNewAddressVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527A2BC92C57776A0080DF9B /* AddNewAddressVC.swift */; };
|
||||
527A2BCC2C577F8A0080DF9B /* AnalyticsEventKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527A2BCB2C577F8A0080DF9B /* AnalyticsEventKeys.swift */; };
|
||||
527A2BCE2C579D490080DF9B /* AddNewAddressVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527A2BCD2C579D490080DF9B /* AddNewAddressVM.swift */; };
|
||||
527A2BD02C57A2AE0080DF9B /* PaymentWebViewVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527A2BCF2C57A2AE0080DF9B /* PaymentWebViewVC.swift */; };
|
||||
527A2BD22C57B40A0080DF9B /* CartDataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527A2BD12C57B40A0080DF9B /* CartDataCache.swift */; };
|
||||
527A2BD52C57D0C20080DF9B /* Address.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 527A2BD42C57D0C20080DF9B /* Address.storyboard */; };
|
||||
527AC6F72C171C8F00434FB7 /* BlogsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527AC6F52C171C8F00434FB7 /* BlogsCell.swift */; };
|
||||
527AC6F82C171C8F00434FB7 /* BlogsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 527AC6F62C171C8F00434FB7 /* BlogsCell.xib */; };
|
||||
527AC6FA2C17387300434FB7 /* SongBlogDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527AC6F92C17387300434FB7 /* SongBlogDM.swift */; };
|
||||
@@ -414,6 +424,14 @@
|
||||
526A43742C36AA4A00AE148F /* GamesListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamesListVC.swift; sourceTree = "<group>"; };
|
||||
5272FCE22BDFDB05000ECB1D /* UserDetailsRegisterVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDetailsRegisterVC.swift; sourceTree = "<group>"; };
|
||||
5272FCE42BDFDC8C000ECB1D /* UserDetailsRegisterVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDetailsRegisterVM.swift; sourceTree = "<group>"; };
|
||||
527A2BC52C576EAF0080DF9B /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
527A2BC72C5777360080DF9B /* VerifyAddressPincodeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifyAddressPincodeVC.swift; sourceTree = "<group>"; };
|
||||
527A2BC92C57776A0080DF9B /* AddNewAddressVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddNewAddressVC.swift; sourceTree = "<group>"; };
|
||||
527A2BCB2C577F8A0080DF9B /* AnalyticsEventKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsEventKeys.swift; sourceTree = "<group>"; };
|
||||
527A2BCD2C579D490080DF9B /* AddNewAddressVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddNewAddressVM.swift; sourceTree = "<group>"; };
|
||||
527A2BCF2C57A2AE0080DF9B /* PaymentWebViewVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentWebViewVC.swift; sourceTree = "<group>"; };
|
||||
527A2BD12C57B40A0080DF9B /* CartDataCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CartDataCache.swift; sourceTree = "<group>"; };
|
||||
527A2BD42C57D0C20080DF9B /* Address.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Address.storyboard; sourceTree = "<group>"; };
|
||||
527AC6F52C171C8F00434FB7 /* BlogsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogsCell.swift; sourceTree = "<group>"; };
|
||||
527AC6F62C171C8F00434FB7 /* BlogsCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BlogsCell.xib; sourceTree = "<group>"; };
|
||||
527AC6F92C17387300434FB7 /* SongBlogDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SongBlogDM.swift; sourceTree = "<group>"; };
|
||||
@@ -647,6 +665,8 @@
|
||||
files = (
|
||||
4469E533EC95AC428FE50FB2 /* Pods_WOKA.framework in Frameworks */,
|
||||
52C83E3F2C493FD700F27563 /* RSKPlaceholderTextView in Frameworks */,
|
||||
527A2BC42C576E980080DF9B /* FirebaseCrashlytics in Frameworks */,
|
||||
527A2BC22C576E980080DF9B /* FirebaseAnalytics in Frameworks */,
|
||||
521CB1002C493DB80085BDF8 /* JWPlayerKit in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -782,6 +802,7 @@
|
||||
523ED25C2BDA2BC700CFED02 /* WOKA */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
527A2BD32C57D0B20080DF9B /* Address */,
|
||||
5259542C2BEA392A00191286 /* Alerts */,
|
||||
523ED2932BDA3D0100CFED02 /* Assets */,
|
||||
52BFB52B2C33DA9700BAAE15 /* Audio Books */,
|
||||
@@ -796,6 +817,7 @@
|
||||
52C8B0512BDA4B51003B51D0 /* Helpers */,
|
||||
9CBCB2A62BE5104F007D7934 /* Home */,
|
||||
523ED26B2BDA2BC900CFED02 /* Info.plist */,
|
||||
527A2BC52C576EAF0080DF9B /* GoogleService-Info.plist */,
|
||||
9CB3D0832C37BA470062869D /* Karaoke */,
|
||||
523ED2682BDA2BC900CFED02 /* LaunchScreen.storyboard */,
|
||||
9C27E15E2BDB6E4F00EC1DA9 /* Localized Module */,
|
||||
@@ -1064,6 +1086,56 @@
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
527A2BD32C57D0B20080DF9B /* Address */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
527A2BD92C57D0CD0080DF9B /* Model */,
|
||||
527A2BD82C57D0CA0080DF9B /* View */,
|
||||
527A2BD72C57D0C70080DF9B /* ViewModel */,
|
||||
527A2BD62C57D0C50080DF9B /* Controller */,
|
||||
527A2BD42C57D0C20080DF9B /* Address.storyboard */,
|
||||
);
|
||||
path = Address;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
527A2BD62C57D0C50080DF9B /* Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52BBFCB12C52730C00F7D0D1 /* AddressListVC.swift */,
|
||||
527A2BC92C57776A0080DF9B /* AddNewAddressVC.swift */,
|
||||
527A2BC72C5777360080DF9B /* VerifyAddressPincodeVC.swift */,
|
||||
527A2BCF2C57A2AE0080DF9B /* PaymentWebViewVC.swift */,
|
||||
);
|
||||
path = Controller;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
527A2BD72C57D0C70080DF9B /* ViewModel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52BBFCB32C5275E100F7D0D1 /* AddressListVM.swift */,
|
||||
527A2BCD2C579D490080DF9B /* AddNewAddressVM.swift */,
|
||||
);
|
||||
path = ViewModel;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
527A2BD82C57D0CA0080DF9B /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52BBFCB72C52782600F7D0D1 /* AddressCell.swift */,
|
||||
52BBFCB82C52782600F7D0D1 /* AddressCell.xib */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
527A2BD92C57D0CD0080DF9B /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52BBFCB52C52764B00F7D0D1 /* AddressListDM.swift */,
|
||||
9CDAEB132C54132E00890C47 /* CheckEddDM.swift */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
527AC6FF2C182D1700434FB7 /* Timer */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -1138,6 +1210,7 @@
|
||||
52A6DCC12C4F8E8500F63C51 /* ViewModel */,
|
||||
52A6DCC02C4F8E8300F63C51 /* Controller */,
|
||||
52A6DCBE2C4F8E7C00F63C51 /* Cart.storyboard */,
|
||||
527A2BD12C57B40A0080DF9B /* CartDataCache.swift */,
|
||||
);
|
||||
path = Cart;
|
||||
sourceTree = "<group>";
|
||||
@@ -1147,7 +1220,6 @@
|
||||
children = (
|
||||
52A6DCC42C4F8EA800F63C51 /* CartListVC.swift */,
|
||||
525861D12C4FC6C000C33C79 /* CartPaymentOptionsVC.swift */,
|
||||
52BBFCB12C52730C00F7D0D1 /* AddressListVC.swift */,
|
||||
);
|
||||
path = Controller;
|
||||
sourceTree = "<group>";
|
||||
@@ -1157,7 +1229,6 @@
|
||||
children = (
|
||||
52A6DCC62C4F8FD000F63C51 /* CartListVM.swift */,
|
||||
525861D32C4FCCB500C33C79 /* CartPaymentOptionsVM.swift */,
|
||||
52BBFCB32C5275E100F7D0D1 /* AddressListVM.swift */,
|
||||
);
|
||||
path = ViewModel;
|
||||
sourceTree = "<group>";
|
||||
@@ -1171,8 +1242,6 @@
|
||||
525861D62C4FD38D00C33C79 /* CartPaymentOptionsCell.xib */,
|
||||
525861DB2C4FE7A100C33C79 /* CouponCell.swift */,
|
||||
525861DC2C4FE7A100C33C79 /* CouponCell.xib */,
|
||||
52BBFCB72C52782600F7D0D1 /* AddressCell.swift */,
|
||||
52BBFCB82C52782600F7D0D1 /* AddressCell.xib */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -1183,8 +1252,6 @@
|
||||
52A6DCC82C4F906900F63C51 /* CartListingDM.swift */,
|
||||
525861D92C4FE71100C33C79 /* CouponListDM.swift */,
|
||||
525861DF2C4FF16700C33C79 /* CouponApplyDM.swift */,
|
||||
52BBFCB52C52764B00F7D0D1 /* AddressListDM.swift */,
|
||||
9CDAEB132C54132E00890C47 /* CheckEddDM.swift */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
@@ -1317,6 +1384,7 @@
|
||||
524C42302C0499560016A11C /* NotificationCenterReloads.swift */,
|
||||
9C8C4FAF2C1328060017DD3B /* Disclaimer.rtf */,
|
||||
9C3E14462C517E8F00D06C10 /* TopViewEnum.swift */,
|
||||
527A2BCB2C577F8A0080DF9B /* AnalyticsEventKeys.swift */,
|
||||
);
|
||||
path = "Constants K";
|
||||
sourceTree = "<group>";
|
||||
@@ -1740,6 +1808,8 @@
|
||||
packageProductDependencies = (
|
||||
521CB0FF2C493DB80085BDF8 /* JWPlayerKit */,
|
||||
52C83E3E2C493FD700F27563 /* RSKPlaceholderTextView */,
|
||||
527A2BC12C576E980080DF9B /* FirebaseAnalytics */,
|
||||
527A2BC32C576E980080DF9B /* FirebaseCrashlytics */,
|
||||
);
|
||||
productName = WOKA;
|
||||
productReference = 523ED25A2BDA2BC700CFED02 /* WOKA.app */;
|
||||
@@ -1817,6 +1887,7 @@
|
||||
packageReferences = (
|
||||
521CB0FE2C493DB80085BDF8 /* XCRemoteSwiftPackageReference "JWPlayerKit-package" */,
|
||||
52C83E3D2C493FD700F27563 /* XCRemoteSwiftPackageReference "RSKPlaceholderTextView" */,
|
||||
527A2BC02C576E980080DF9B /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
|
||||
);
|
||||
productRefGroup = 523ED25B2BDA2BC700CFED02 /* Products */;
|
||||
projectDirPath = "";
|
||||
@@ -1859,6 +1930,7 @@
|
||||
526A436F2C36A97400AE148F /* Games.storyboard in Resources */,
|
||||
9CDAEB0B2C53E9FF00890C47 /* ShopProductImageCell.xib in Resources */,
|
||||
522D65652C1ACE9C0021E505 /* UserNotificationCell.xib in Resources */,
|
||||
527A2BD52C57D0C20080DF9B /* Address.storyboard in Resources */,
|
||||
9C535DC52C00BF2400DA6DCD /* HomeExploreCell.xib in Resources */,
|
||||
9CBE1B422C0F37B300CA6E61 /* DropDownCell.xib in Resources */,
|
||||
52A3F6A92BECBF2A0000BB0B /* LinkedChildCell.xib in Resources */,
|
||||
@@ -1882,6 +1954,7 @@
|
||||
52C6E0262BE3B46A00E22D59 /* SelectAvatarCell.xib in Resources */,
|
||||
52C8B0712BDA7512003B51D0 /* PassingCloud.json in Resources */,
|
||||
9C8C4FB02C1328060017DD3B /* Disclaimer.rtf in Resources */,
|
||||
527A2BC62C576EAF0080DF9B /* GoogleService-Info.plist in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -1983,6 +2056,7 @@
|
||||
525953D42BE8B2DF00191286 /* UIApplication.swift in Sources */,
|
||||
52C8EC802C358E75002DC35C /* AudioBookDetailsVC.swift in Sources */,
|
||||
52CC38C32BDF812F00B74C3E /* LocalisedElements.swift in Sources */,
|
||||
527A2BD02C57A2AE0080DF9B /* PaymentWebViewVC.swift in Sources */,
|
||||
52A6DCCC2C4F929B00F63C51 /* CartListCell.swift in Sources */,
|
||||
5259545E2BEBBA1A00191286 /* LoadingIndicatorImageView.swift in Sources */,
|
||||
52B8D4DC2C04A25E00ED65F3 /* Delegate.swift in Sources */,
|
||||
@@ -2052,6 +2126,7 @@
|
||||
9C7939132C0EFCAE00F5D6E6 /* FaqVM.swift in Sources */,
|
||||
52D774ED2BDFC13F001D87DE /* OTPVM.swift in Sources */,
|
||||
52D23F112C465E6F003E743A /* LogoutPopupVC.swift in Sources */,
|
||||
527A2BD22C57B40A0080DF9B /* CartDataCache.swift in Sources */,
|
||||
525327D62BFCC23600F64283 /* SideMenuVM.swift in Sources */,
|
||||
525861D22C4FC6C000C33C79 /* CartPaymentOptionsVC.swift in Sources */,
|
||||
525861DA2C4FE71100C33C79 /* CouponListDM.swift in Sources */,
|
||||
@@ -2061,6 +2136,7 @@
|
||||
9CBE1B402C0F37B300CA6E61 /* DPDKeyboardListener.swift in Sources */,
|
||||
52A3F6AB2BECBF550000BB0B /* LinkedChildVC.swift in Sources */,
|
||||
52FDBA7B2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift in Sources */,
|
||||
527A2BC82C5777360080DF9B /* VerifyAddressPincodeVC.swift in Sources */,
|
||||
9C834EC62C1C1D9500B29A9C /* BlogDetailsVC.swift in Sources */,
|
||||
9CBCB2A52BE50D49007D7934 /* NewPasswordVC.swift in Sources */,
|
||||
52C8D8D42C2D9F3400CA72A6 /* LikeFavCommonFunc.swift in Sources */,
|
||||
@@ -2084,6 +2160,7 @@
|
||||
9C0A853F2BEE35340093783D /* ForgotPassDM.swift in Sources */,
|
||||
9CBCB2AA2BE51A52007D7934 /* ThemeOneVC.swift in Sources */,
|
||||
52D774E92BDFBDA4001D87DE /* AuthenticationStringConstant.swift in Sources */,
|
||||
527A2BCE2C579D490080DF9B /* AddNewAddressVM.swift in Sources */,
|
||||
5259541B2BE8D6F900191286 /* NetworkReachibility.swift in Sources */,
|
||||
52AF71EE2C36AD3100BC5972 /* GamesListVM.swift in Sources */,
|
||||
52A981CE2C1AFE66000E0BEC /* FavouriteListingDM.swift in Sources */,
|
||||
@@ -2160,6 +2237,7 @@
|
||||
52A981D72C1B0E27000E0BEC /* FavouriteCell.swift in Sources */,
|
||||
52C8B05F2BDA5AFA003B51D0 /* SplashVM.swift in Sources */,
|
||||
52C1A4E12C05B69F007BAA50 /* UIApplicationSwitchRoot.swift in Sources */,
|
||||
527A2BCC2C577F8A0080DF9B /* AnalyticsEventKeys.swift in Sources */,
|
||||
52663FF72BDFACF60001D8CE /* ShadowView.swift in Sources */,
|
||||
522D65602C1ACD8D0021E505 /* UserNotificationVC.swift in Sources */,
|
||||
52AC2D252C295A7900337473 /* TeaserDM.swift in Sources */,
|
||||
@@ -2185,6 +2263,7 @@
|
||||
9CBE1B452C0F37B300CA6E61 /* DropDownCell.swift in Sources */,
|
||||
9C27E16D2BDB852F00EC1DA9 /* GVar.swift in Sources */,
|
||||
52B8D4E02C04A25E00ED65F3 /* UIView+Container.swift in Sources */,
|
||||
527A2BCA2C57776A0080DF9B /* AddNewAddressVC.swift in Sources */,
|
||||
9C56E8462BDBEE6400E4CA14 /* EmailVC.swift in Sources */,
|
||||
52A6DCC92C4F906900F63C51 /* CartListingDM.swift in Sources */,
|
||||
522D65622C1ACDA40021E505 /* CommonNwCall.swift in Sources */,
|
||||
@@ -2610,6 +2689,14 @@
|
||||
version = 4.19.1;
|
||||
};
|
||||
};
|
||||
527A2BC02C576E980080DF9B /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
|
||||
requirement = {
|
||||
kind = upToNextMajorVersion;
|
||||
minimumVersion = 10.29.0;
|
||||
};
|
||||
};
|
||||
52C83E3D2C493FD700F27563 /* XCRemoteSwiftPackageReference "RSKPlaceholderTextView" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/ruslanskorb/RSKPlaceholderTextView.git";
|
||||
@@ -2626,6 +2713,16 @@
|
||||
package = 521CB0FE2C493DB80085BDF8 /* XCRemoteSwiftPackageReference "JWPlayerKit-package" */;
|
||||
productName = JWPlayerKit;
|
||||
};
|
||||
527A2BC12C576E980080DF9B /* FirebaseAnalytics */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 527A2BC02C576E980080DF9B /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
|
||||
productName = FirebaseAnalytics;
|
||||
};
|
||||
527A2BC32C576E980080DF9B /* FirebaseCrashlytics */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 527A2BC02C576E980080DF9B /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
|
||||
productName = FirebaseCrashlytics;
|
||||
};
|
||||
52C83E3E2C493FD700F27563 /* RSKPlaceholderTextView */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 52C83E3D2C493FD700F27563 /* XCRemoteSwiftPackageReference "RSKPlaceholderTextView" */;
|
||||
|
||||
@@ -74,6 +74,12 @@
|
||||
ReferencedContainer = "container:WOKA.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "-FIRAnalyticsDebugEnabled"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
</CommandLineArguments>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "IDEPreferLogStreaming"
|
||||
|
||||
648
WOKA/Address/Address.storyboard
Normal file
648
WOKA/Address/Address.storyboard
Normal file
@@ -0,0 +1,648 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina6_5" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<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-Regular.ttf">
|
||||
<string>Exo2-Regular</string>
|
||||
</array>
|
||||
</customFonts>
|
||||
<scenes>
|
||||
<!--Verify Address PincodeVC-->
|
||||
<scene sceneID="Upd-vi-uVH">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="VerifyAddressPincodeVC" id="EzK-8E-Z9y" customClass="VerifyAddressPincodeVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="m3A-6R-jow">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="60" translatesAutoresizingMaskIntoConstraints="NO" id="eqb-f6-ptc">
|
||||
<rect key="frame" x="20" y="74" width="374" height="218"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Please enter your Pincode below to check service availability in your area." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4el-im-Ptb" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="374" height="48"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter Pincode" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="8JG-SF-ofW" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="108" width="374" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="CGP-V6-id7"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="numberPad" returnKeyType="done" enablesReturnKeyAutomatically="YES" textContentType="postal-code"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oUf-8Y-ZJl" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="218" width="374" height="0.0"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="beF-iZ-GoK" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="20" y="782" width="374" height="50"/>
|
||||
<color key="backgroundColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="5Bz-6e-Frn">
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</constraint>
|
||||
</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="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title="CHECK NOW">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="proceedBtnTapped:" destination="EzK-8E-Z9y" eventType="touchUpInside" id="SiH-sF-OLA"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="i17-bU-C2J"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="i17-bU-C2J" firstAttribute="bottom" secondItem="beF-iZ-GoK" secondAttribute="bottom" constant="30" id="67A-iC-kFF"/>
|
||||
<constraint firstItem="beF-iZ-GoK" firstAttribute="leading" secondItem="m3A-6R-jow" secondAttribute="leading" constant="20" id="Q8H-rp-kqH"/>
|
||||
<constraint firstAttribute="trailing" secondItem="eqb-f6-ptc" secondAttribute="trailing" constant="20" id="Sjg-yY-gCP"/>
|
||||
<constraint firstItem="eqb-f6-ptc" firstAttribute="leading" secondItem="i17-bU-C2J" secondAttribute="leading" constant="20" id="bnJ-qb-iGw"/>
|
||||
<constraint firstItem="i17-bU-C2J" firstAttribute="trailing" secondItem="beF-iZ-GoK" secondAttribute="trailing" constant="20" id="erU-gK-rSC"/>
|
||||
<constraint firstItem="eqb-f6-ptc" firstAttribute="top" secondItem="i17-bU-C2J" secondAttribute="top" constant="30" id="udO-7f-M4T"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="pinCodeTF" destination="8JG-SF-ofW" id="YJw-3G-Yhm"/>
|
||||
<outlet property="pincodeServieable" destination="oUf-8Y-ZJl" id="7gC-0f-bLf"/>
|
||||
<outlet property="proceedBtn" destination="beF-iZ-GoK" id="jp6-FD-Eja"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="UkX-3H-I0g" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2347.826086956522" y="-35.491071428571423"/>
|
||||
</scene>
|
||||
<!--Add New AddressVC-->
|
||||
<scene sceneID="bAM-ow-jH6">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="AddNewAddressVC" id="kUr-6C-wWC" customClass="AddNewAddressVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="CDd-dV-9ZS">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tqo-IU-eLh">
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="758"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="Fyh-aj-dYn">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="878.66666666666663"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add New Address" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S8i-lX-bse" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="10" y="5" width="394" height="24"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="v5u-ae-Jzp">
|
||||
<rect key="frame" x="10" y="48.999999999999993" width="394" height="79.333333333333314"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address Name (Firstname & Lastname)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZOH-FN-Yqz" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter address name" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="M6e-0t-FoD" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333329" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="dGT-rJ-SeV"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="words" autocorrectionType="no" enablesReturnKeyAutomatically="YES" textContentType="name"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="14w-xR-r1s">
|
||||
<rect key="frame" x="10" y="148.33333333333334" width="394" height="79.333333333333343"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address Line 1" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4qC-Pk-qkH" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter address line 1" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4gp-xB-FLw" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333314" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="FTw-KD-YCm"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" enablesReturnKeyAutomatically="YES" textContentType="address-line2"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="ipZ-MN-bfu">
|
||||
<rect key="frame" x="10" y="247.66666666666671" width="394" height="79.333333333333343"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address Line 2" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zm9-HI-4ph" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter address line 1" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Le6-W7-6jI" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333314" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="ClL-wQ-HJ9"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" enablesReturnKeyAutomatically="YES" textContentType="address-line1"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="rcB-OF-B3k">
|
||||
<rect key="frame" x="10" y="347" width="394" height="79.333333333333314"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="City" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uq9-GD-cPW" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter city" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="BEd-ik-j0X" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333314" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="6m3-1Y-mTb"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" enablesReturnKeyAutomatically="YES" textContentType="address-level2"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="c85-0g-vGf">
|
||||
<rect key="frame" x="10" y="446.33333333333331" width="394" height="79.333333333333314"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="State" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9DD-Ab-AS9" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter state" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="SOb-Uq-xld" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333314" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="hXR-PQ-U9y"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" enablesReturnKeyAutomatically="YES" textContentType="address-level1"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="ei6-kZ-2Pa">
|
||||
<rect key="frame" x="10" y="545.66666666666663" width="394" height="79.333333333333371"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Pincode" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ej4-NQ-wVN" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter coupon code" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="BqV-8B-1vE" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333371" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="kqh-DZ-rjE"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="numberPad" enablesReturnKeyAutomatically="YES" textContentType="postal-code"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Mzj-PS-LkR">
|
||||
<rect key="frame" x="10" y="645" width="394" height="79.333333333333371"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Country" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tyL-9S-yyo" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter country" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="lbG-6e-Siu" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333371" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="CxD-Jl-SHl"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="words" autocorrectionType="no" enablesReturnKeyAutomatically="YES" textContentType="country-name"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="dHl-UE-mSu">
|
||||
<rect key="frame" x="10" y="744.33333333333337" width="394" height="79.333333333333371"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Phone Number" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QfX-WL-6A3" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="0.0" width="384" height="19.333333333333332"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter phone number" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Kmc-Zf-kNp" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="5" y="29.333333333333258" width="384" height="50"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<color key="tintColor" name="TextDarkBlue"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="jQD-1Y-U29"/>
|
||||
</constraints>
|
||||
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="phonePad" enablesReturnKeyAutomatically="YES" textContentType="tel"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingLeftCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="paddingRightCustom">
|
||||
<real key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<edgeInsets key="layoutMargins" top="0.0" left="5" bottom="0.0" right="5"/>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JSs-5V-3H5">
|
||||
<rect key="frame" x="10" y="843.66666666666663" width="394" height="30"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="f6z-cu-XpL"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<edgeInsets key="layoutMargins" top="5" left="10" bottom="5" right="10"/>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="Fyh-aj-dYn" firstAttribute="leading" secondItem="AQg-AR-7VO" secondAttribute="leading" id="9Fd-aE-WIV"/>
|
||||
<constraint firstItem="AQg-AR-7VO" firstAttribute="trailing" secondItem="Fyh-aj-dYn" secondAttribute="trailing" id="GPC-Tr-IsZ"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Fyh-aj-dYn" secondAttribute="bottom" id="S1e-yr-XFD"/>
|
||||
<constraint firstItem="Fyh-aj-dYn" firstAttribute="width" secondItem="UFX-gk-2Lv" secondAttribute="width" id="fJn-5i-y4g"/>
|
||||
<constraint firstItem="Fyh-aj-dYn" firstAttribute="top" secondItem="tqo-IU-eLh" secondAttribute="top" id="faW-Of-4eU"/>
|
||||
</constraints>
|
||||
<viewLayoutGuide key="contentLayoutGuide" id="UFX-gk-2Lv"/>
|
||||
<viewLayoutGuide key="frameLayoutGuide" id="AQg-AR-7VO"/>
|
||||
</scrollView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HwB-90-dXI" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="10" y="807" width="394" height="50"/>
|
||||
<color key="backgroundColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="VmU-cD-GuG">
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</constraint>
|
||||
</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="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title="SUBMIT">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="25"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="submitBtnTapped:" destination="kUr-6C-wWC" eventType="touchUpInside" id="qvM-dW-RKq"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="u6A-RO-Swd"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="HwB-90-dXI" firstAttribute="leading" secondItem="u6A-RO-Swd" secondAttribute="leading" constant="10" id="12I-4V-n7e"/>
|
||||
<constraint firstItem="HwB-90-dXI" firstAttribute="top" secondItem="tqo-IU-eLh" secondAttribute="bottom" constant="5" id="5BO-yu-r6D"/>
|
||||
<constraint firstItem="tqo-IU-eLh" firstAttribute="top" secondItem="u6A-RO-Swd" secondAttribute="top" id="5UP-2Q-3bB"/>
|
||||
<constraint firstItem="u6A-RO-Swd" firstAttribute="bottom" secondItem="HwB-90-dXI" secondAttribute="bottom" constant="5" id="6VC-fw-cK2"/>
|
||||
<constraint firstItem="u6A-RO-Swd" firstAttribute="trailing" secondItem="tqo-IU-eLh" secondAttribute="trailing" id="NyN-gw-npW"/>
|
||||
<constraint firstItem="u6A-RO-Swd" firstAttribute="trailing" secondItem="HwB-90-dXI" secondAttribute="trailing" constant="10" id="nNM-Hp-YuE"/>
|
||||
<constraint firstItem="tqo-IU-eLh" firstAttribute="leading" secondItem="CDd-dV-9ZS" secondAttribute="leading" id="zIQ-dz-zKX"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="addressLine1TF" destination="4gp-xB-FLw" id="GEx-j8-lBv"/>
|
||||
<outlet property="addressLine2TF" destination="Le6-W7-6jI" id="dnP-7d-DsF"/>
|
||||
<outlet property="cityTF" destination="BEd-ik-j0X" id="sm0-IF-PLw"/>
|
||||
<outlet property="countryTF" destination="lbG-6e-Siu" id="rUo-gx-F8A"/>
|
||||
<outlet property="enterAddressNAmeTF" destination="M6e-0t-FoD" id="nNw-0k-g1r"/>
|
||||
<outlet property="phoneNumberTF" destination="Kmc-Zf-kNp" id="ygJ-lq-GVb"/>
|
||||
<outlet property="pinCodeTF" destination="BqV-8B-1vE" id="GOb-l8-s0J"/>
|
||||
<outlet property="stateTF" destination="SOb-Uq-xld" id="YCh-hO-Fpd"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="VYK-hh-sUe" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="3076.811594202899" y="-34.151785714285715"/>
|
||||
</scene>
|
||||
<!--Address ListVC-->
|
||||
<scene sceneID="yYB-W8-Be2">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="AddressListVC" id="9jV-jN-cBr" customClass="AddressListVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="3PQ-Lr-YrD">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ry1-Ll-tvj">
|
||||
<rect key="frame" x="10" y="49" width="394" height="808"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JAF-kY-lUa">
|
||||
<rect key="frame" x="7" y="7" width="380" height="794"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="w05-l0-ALY">
|
||||
<rect key="frame" x="10" y="10" width="360" height="649"/>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
</tableView>
|
||||
<stackView opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="ZcH-zz-6Ma">
|
||||
<rect key="frame" x="10" y="674" width="360" height="110"/>
|
||||
<subviews>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZNs-65-Cqv" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="360" height="50"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="EPk-lY-YfW"/>
|
||||
</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="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title="Use Selected Address">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="btnTapped:" destination="9jV-jN-cBr" eventType="touchUpInside" id="nVx-ab-UAY"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="02u-58-7FW" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="60" width="360" height="50"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="S7b-39-iqV"/>
|
||||
</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="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title="Add New Address">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="btnTapped:" destination="9jV-jN-cBr" eventType="touchUpInside" id="pfh-ww-S2K"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="ZcH-zz-6Ma" firstAttribute="top" secondItem="w05-l0-ALY" secondAttribute="bottom" constant="15" id="3Dl-PA-lw7"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ZcH-zz-6Ma" secondAttribute="trailing" constant="10" id="BgO-T1-2ax"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ZcH-zz-6Ma" secondAttribute="bottom" constant="10" id="CVN-3H-3hL"/>
|
||||
<constraint firstItem="w05-l0-ALY" firstAttribute="top" secondItem="JAF-kY-lUa" secondAttribute="top" constant="10" id="bEt-2z-c5O"/>
|
||||
<constraint firstAttribute="trailing" secondItem="w05-l0-ALY" secondAttribute="trailing" constant="10" id="fcO-JQ-gBO"/>
|
||||
<constraint firstItem="w05-l0-ALY" firstAttribute="leading" secondItem="JAF-kY-lUa" secondAttribute="leading" constant="10" id="t9N-Yr-mjo"/>
|
||||
<constraint firstItem="ZcH-zz-6Ma" firstAttribute="leading" secondItem="JAF-kY-lUa" secondAttribute="leading" constant="10" id="xLc-xS-qUW"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="JAF-kY-lUa" secondAttribute="bottom" constant="7" id="4Za-62-BdI"/>
|
||||
<constraint firstAttribute="trailing" secondItem="JAF-kY-lUa" secondAttribute="trailing" constant="7" id="7tt-XB-j8O"/>
|
||||
<constraint firstItem="JAF-kY-lUa" firstAttribute="leading" secondItem="Ry1-Ll-tvj" secondAttribute="leading" constant="7" id="bYh-QC-Mfw"/>
|
||||
<constraint firstItem="JAF-kY-lUa" firstAttribute="top" secondItem="Ry1-Ll-tvj" secondAttribute="top" constant="7" id="k5x-tt-fzJ"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="37x-el-mdR"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="37x-el-mdR" firstAttribute="bottom" secondItem="Ry1-Ll-tvj" secondAttribute="bottom" constant="5" id="g8o-D8-sxQ"/>
|
||||
<constraint firstItem="37x-el-mdR" firstAttribute="trailing" secondItem="Ry1-Ll-tvj" secondAttribute="trailing" constant="10" id="hfh-kM-3II"/>
|
||||
<constraint firstItem="Ry1-Ll-tvj" firstAttribute="top" secondItem="37x-el-mdR" secondAttribute="top" constant="5" id="nXO-UI-rOM"/>
|
||||
<constraint firstItem="Ry1-Ll-tvj" firstAttribute="leading" secondItem="37x-el-mdR" secondAttribute="leading" constant="10" id="zid-rU-Ovk"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="addNewAddressBtn" destination="02u-58-7FW" id="eWv-38-GfZ"/>
|
||||
<outlet property="innerView" destination="JAF-kY-lUa" id="cM7-cm-pqy"/>
|
||||
<outlet property="tableView" destination="w05-l0-ALY" id="J15-i9-ySS"/>
|
||||
<outlet property="useSelectedAddBtn" destination="ZNs-65-Cqv" id="hYN-Nc-H8h"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="AE5-IA-WsS" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1637" y="-35"/>
|
||||
</scene>
|
||||
<!--Payment Web ViewVC-->
|
||||
<scene sceneID="Lox-n8-Pum">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="PaymentWebViewVC" id="Ijq-60-uUO" customClass="PaymentWebViewVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="vAr-Rb-W19">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pMD-fy-kTc">
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="852"/>
|
||||
<color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<wkWebViewConfiguration key="configuration">
|
||||
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
|
||||
<wkPreferences key="preferences"/>
|
||||
</wkWebViewConfiguration>
|
||||
</wkWebView>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="9hc-zU-C3r"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="pMD-fy-kTc" firstAttribute="top" secondItem="9hc-zU-C3r" secondAttribute="top" id="Bfy-5b-hPK"/>
|
||||
<constraint firstItem="pMD-fy-kTc" firstAttribute="leading" secondItem="9hc-zU-C3r" secondAttribute="leading" id="JEJ-jC-kj3"/>
|
||||
<constraint firstAttribute="bottom" secondItem="pMD-fy-kTc" secondAttribute="bottom" id="jvs-sH-EBo"/>
|
||||
<constraint firstItem="9hc-zU-C3r" firstAttribute="trailing" secondItem="pMD-fy-kTc" secondAttribute="trailing" id="uYG-b4-Die"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="webView" destination="pMD-fy-kTc" id="bji-wV-HRX"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="XVA-9y-F1L" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="3845" y="-34"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<designables>
|
||||
<designable name="4gp-xB-FLw">
|
||||
<size key="intrinsicContentSize" width="191" height="21"/>
|
||||
</designable>
|
||||
<designable name="8JG-SF-ofW">
|
||||
<size key="intrinsicContentSize" width="150" height="21"/>
|
||||
</designable>
|
||||
<designable name="BEd-ik-j0X">
|
||||
<size key="intrinsicContentSize" width="119" height="21"/>
|
||||
</designable>
|
||||
<designable name="BqV-8B-1vE">
|
||||
<size key="intrinsicContentSize" width="184.33333333333334" height="21"/>
|
||||
</designable>
|
||||
<designable name="Kmc-Zf-kNp">
|
||||
<size key="intrinsicContentSize" width="198.33333333333334" height="21"/>
|
||||
</designable>
|
||||
<designable name="Le6-W7-6jI">
|
||||
<size key="intrinsicContentSize" width="191" height="21"/>
|
||||
</designable>
|
||||
<designable name="M6e-0t-FoD">
|
||||
<size key="intrinsicContentSize" width="195.33333333333334" height="21"/>
|
||||
</designable>
|
||||
<designable name="SOb-Uq-xld">
|
||||
<size key="intrinsicContentSize" width="130.33333333333334" height="21"/>
|
||||
</designable>
|
||||
<designable name="lbG-6e-Siu">
|
||||
<size key="intrinsicContentSize" width="149" height="21"/>
|
||||
</designable>
|
||||
</designables>
|
||||
<resources>
|
||||
<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>
|
||||
<systemColor name="systemGreenColor">
|
||||
<color red="0.20392156862745098" green="0.7803921568627451" blue="0.34901960784313724" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</systemColor>
|
||||
</resources>
|
||||
</document>
|
||||
133
WOKA/Address/Controller/AddNewAddressVC.swift
Normal file
133
WOKA/Address/Controller/AddNewAddressVC.swift
Normal file
@@ -0,0 +1,133 @@
|
||||
//
|
||||
// AddNewAddressVC.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class AddNewAddressVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var enterAddressNAmeTF: TextFieldShadow! // min - 2 , max - 50
|
||||
@IBOutlet weak var addressLine1TF: TextFieldShadow!
|
||||
@IBOutlet weak var addressLine2TF: TextFieldShadow!
|
||||
@IBOutlet weak var cityTF: TextFieldShadow!
|
||||
@IBOutlet weak var stateTF: TextFieldShadow!
|
||||
@IBOutlet weak var pinCodeTF: TextFieldShadow!
|
||||
@IBOutlet weak var countryTF: TextFieldShadow!
|
||||
@IBOutlet weak var phoneNumberTF: TextFieldShadow!
|
||||
|
||||
var vm = AddNewAddressVM()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
vm.vc = self
|
||||
vm.initView()
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
navigationController?.setNavigationBarHidden(false, animated: animated)
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
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 submitBtnTapped(_ sender: LocalisedElementsButton) {
|
||||
|
||||
if enterAddressNAmeTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Name should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if addressLine1TF.text!.count < 15 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Address Line 1 should be minimum 15 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
if addressLine2TF.text!.count < 15 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Address Line 2 should be minimum 15 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if cityTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "City should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if stateTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "State should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if countryTF.text!.count < 2 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Country should be minimum 2 Characters.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
if phoneNumberTF.text!.count < 10 {
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Enter 10 digit mobile number", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
self.vm.addAddress()
|
||||
}
|
||||
}
|
||||
|
||||
extension AddNewAddressVC : UITextFieldDelegate{
|
||||
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
||||
switch textField{
|
||||
case enterAddressNAmeTF:
|
||||
if !string.nameCharacterOnly(){return false}
|
||||
// min - 2 , max - 50
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 50,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
case addressLine1TF, addressLine2TF:
|
||||
if !string.numberAndCharacter(){return false}
|
||||
// min - 2 , max - 200
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 200,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
case cityTF, stateTF, countryTF:
|
||||
if !string.nameCharacterOnly(){return false}
|
||||
// min - 2 , max - 200
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 50,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
case phoneNumberTF:
|
||||
if !string.onlyNumber(){return false}
|
||||
// max - 10
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 10,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
default:
|
||||
break
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||
switch textField{
|
||||
case enterAddressNAmeTF:
|
||||
addressLine1TF.becomeFirstResponder()
|
||||
case addressLine1TF:
|
||||
addressLine2TF.becomeFirstResponder()
|
||||
case addressLine2TF:
|
||||
cityTF.becomeFirstResponder()
|
||||
case cityTF:
|
||||
stateTF.becomeFirstResponder()
|
||||
case stateTF:
|
||||
countryTF.becomeFirstResponder()
|
||||
case countryTF:
|
||||
phoneNumberTF.becomeFirstResponder()
|
||||
default:
|
||||
break
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -36,7 +36,9 @@ class AddressListVC: UIViewController {
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
self.navigationController?.setColor(color: .white)
|
||||
|
||||
|
||||
// handle data change
|
||||
self.tableView.reloadData()
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
@@ -52,6 +54,16 @@ class AddressListVC: UIViewController {
|
||||
}
|
||||
|
||||
@IBAction func btnTapped(_ sender: LocalisedElementsButton) {
|
||||
switch sender{
|
||||
case useSelectedAddBtn:
|
||||
vm.createOrder()
|
||||
case addNewAddressBtn:
|
||||
let sb = UIStoryboard(name: K.StoryBoard.address, bundle: nil)
|
||||
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Address.verifyAddressPincodeVC) as! VerifyAddressPincodeVC
|
||||
self.navigationController?.pushViewController(vcPush, animated: true)
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,27 +71,27 @@ class AddressListVC: UIViewController {
|
||||
|
||||
extension AddressListVC : TableViewSRC{
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
return vm.addressData.count
|
||||
return CartDataCache.addressData.count
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: K.CellIdentifier.Cart.addressCell) as! AddressCell
|
||||
let data = vm.addressData[indexPath.row]
|
||||
let data = CartDataCache.addressData[indexPath.row]
|
||||
cell.setData(data: data)
|
||||
return cell
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
||||
for index in vm.addressData.indices {
|
||||
vm.addressData[index].isDefault = false
|
||||
for index in CartDataCache.addressData.indices {
|
||||
CartDataCache.addressData[index].isDefault = false
|
||||
}
|
||||
if vm.addressData[indexPath.row].eddDate == nil || vm.addressData[indexPath.row].eddDate == ""{
|
||||
if let pincode = vm.addressData[indexPath.row].pincode, let id = vm.addressData[indexPath.row].id{
|
||||
if CartDataCache.addressData[indexPath.row].eddDate == nil || CartDataCache.addressData[indexPath.row].eddDate == ""{
|
||||
if let pincode = CartDataCache.addressData[indexPath.row].pincode, let id = CartDataCache.addressData[indexPath.row].id{
|
||||
vm.checkEstimatedDeliveryData(pinCode: pincode, id: id)
|
||||
}
|
||||
}
|
||||
|
||||
vm.addressData[indexPath.row].isDefault = true
|
||||
CartDataCache.addressData[indexPath.row].isDefault = true
|
||||
tableView.reloadData()
|
||||
}
|
||||
}
|
||||
71
WOKA/Address/Controller/PaymentWebViewVC.swift
Normal file
71
WOKA/Address/Controller/PaymentWebViewVC.swift
Normal file
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// PaymentWebViewVC.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import WebKit
|
||||
|
||||
class PaymentWebViewVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var webView: WKWebView!
|
||||
var url : String?
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
if let url {
|
||||
let link = URL(string:url)!
|
||||
let request = URLRequest(url: link)
|
||||
webView.load(request)
|
||||
}
|
||||
webView.addObserver(self, forKeyPath: "URL", options: .new, context: nil)
|
||||
|
||||
}
|
||||
|
||||
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
|
||||
if let key = change?[NSKeyValueChangeKey.newKey] {
|
||||
print("observeValue \(key)") // url value
|
||||
if let finalURL = key as? URL {
|
||||
let endpoint = finalURL.lastPathComponent
|
||||
var domain = String()
|
||||
if #available(iOS 16.0, *) {
|
||||
domain = finalURL.host() ?? ""
|
||||
} else {
|
||||
domain = finalURL.host ?? ""
|
||||
}
|
||||
|
||||
if domain == "secure.ccavenue.com" && endpoint.lowercased() == "canceltransaction"{
|
||||
Timer.scheduledTimer(withTimeInterval: 2.5, repeats: false) { _ in
|
||||
self.dismiss(animated: true)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print("urlAny is not a String")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
navigationController?.setNavigationBarHidden(false, animated: animated)
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
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)
|
||||
}
|
||||
}
|
||||
150
WOKA/Address/Controller/VerifyAddressPincodeVC.swift
Normal file
150
WOKA/Address/Controller/VerifyAddressPincodeVC.swift
Normal file
@@ -0,0 +1,150 @@
|
||||
//
|
||||
// VerifyAddressPincodeVC.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Alamofire
|
||||
|
||||
class VerifyAddressPincodeVC: UIViewController {
|
||||
|
||||
@IBOutlet weak var pinCodeTF: TextFieldShadow!
|
||||
@IBOutlet weak var proceedBtn: LocalisedElementsButton!
|
||||
@IBOutlet weak var pincodeServieable: LocalisedElementsLabel!
|
||||
|
||||
var verifyPincodeData : CheckEddDM.ResultData?
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
addGradient()
|
||||
self.pinCodeTF.roundCorner()
|
||||
self.title = "ADDRESS DETAILS".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
|
||||
pinCodeTF.delegate = self
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
navigationController?.setNavigationBarHidden(false, animated: animated)
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
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 proceedBtnTapped(_ sender: LocalisedElementsButton) {
|
||||
guard let tf = pinCodeTF.text else{return}
|
||||
if sender.titleLabel?.text == "CHECK NOW"{
|
||||
if tf.count < 6{
|
||||
Utilities.alertWithBtn(title: "", msgBody: "Please enter 6 digit pincode.", okBtnStr: "OK", vc: self)
|
||||
return
|
||||
}
|
||||
|
||||
//check if user is checking for same pincode
|
||||
if let verifyPincodeData{
|
||||
if tf == verifyPincodeData.lmPincode{
|
||||
checkServiceAble()
|
||||
return
|
||||
}
|
||||
}
|
||||
checkEstimatedDeliveryData(pinCode: tf)
|
||||
} else{
|
||||
let sb = UIStoryboard(name: K.StoryBoard.address, bundle: nil)
|
||||
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Address.addNewAddressVC) as! AddNewAddressVC
|
||||
vcPush.vm.pincode = tf
|
||||
self.navigationController?.pushViewController(vcPush, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
func addGradient(){
|
||||
let color1 = #colorLiteral(red: 0.6745098039, green: 0.6235294118, blue: 0.1725490196, alpha: 1)
|
||||
let color2 = #colorLiteral(red: 0.5450980392, green: 0.6745098039, blue: 0.1725490196, alpha: 1)
|
||||
|
||||
self.view.applyGradient(colors: [color2, color1], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0.8, y: 0))
|
||||
}
|
||||
|
||||
func checkEstimatedDeliveryData(pinCode : String){
|
||||
Utilities.startProgressHUD()
|
||||
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
|
||||
let params : Parameters = ["pincode" : pinCode]
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Address.pincode_serviceability_check_edd, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<CheckEddDM>, NetworkManager.APIError>) in
|
||||
switch result{
|
||||
case .success(let data):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
switch data.success{
|
||||
case 0:
|
||||
/*
|
||||
Error
|
||||
*/
|
||||
Utilities.dismissProgressHUD()
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
guard let data = data.data?.result else{return}
|
||||
self.verifyPincodeData = data
|
||||
checkServiceAble()
|
||||
default:
|
||||
Utilities.dismissProgressHUD()
|
||||
break
|
||||
}
|
||||
case .failure(let error):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
Utilities.dismissProgressHUD()
|
||||
self.toast(msg: error.localizedDescription, time: 1.5)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func checkServiceAble(){
|
||||
guard let data = self.verifyPincodeData else{
|
||||
self.pincodeServieable.text = "Pincode Unserviceable."
|
||||
proceedBtn.setTitle("CHECK NOW", for: .normal)
|
||||
return
|
||||
}
|
||||
proceedBtn.setTitle("PROCEED", for: .normal)
|
||||
self.pincodeServieable.text = "Pincode Servicable." + "\n" + "Expected delivery by " + (data.edd ?? "123456")
|
||||
}
|
||||
}
|
||||
|
||||
extension VerifyAddressPincodeVC : UITextFieldDelegate{
|
||||
|
||||
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
||||
|
||||
// Check if user is deleting text so hide pincode servicable text
|
||||
if string.count == 0 && range.length > 0 {
|
||||
self.pincodeServieable.text = ""
|
||||
self.proceedBtn.setTitle("CHECK NOW", for: .normal)
|
||||
// Back pressed
|
||||
return true
|
||||
}
|
||||
|
||||
//Pincode should be only number
|
||||
if !string.onlyNumber(){return false}
|
||||
|
||||
// pincode should be max 6 characters in length
|
||||
return ValidatorClass.sharedInstanec.limitCharacter(length: 6,textField, shouldChangeCharactersIn: range, replacementString: string)
|
||||
}
|
||||
|
||||
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
|
||||
print("Return")
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -25,3 +25,4 @@ struct AddressListDM: Codable {
|
||||
case email
|
||||
}
|
||||
}
|
||||
|
||||
101
WOKA/Address/ViewModel/AddNewAddressVM.swift
Normal file
101
WOKA/Address/ViewModel/AddNewAddressVM.swift
Normal file
@@ -0,0 +1,101 @@
|
||||
//
|
||||
// AddNewAddressVM.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Alamofire
|
||||
|
||||
class AddNewAddressVM{
|
||||
|
||||
weak var vc : AddNewAddressVC!
|
||||
var pincode = String()
|
||||
|
||||
func initView(){
|
||||
vc.title = "ADDRESS DETAILS".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
|
||||
addGradient()
|
||||
|
||||
vc.enterAddressNAmeTF.delegate = self.vc
|
||||
vc.addressLine1TF.delegate = self.vc
|
||||
vc.addressLine2TF.delegate = self.vc
|
||||
vc.cityTF.delegate = self.vc
|
||||
vc.stateTF.delegate = self.vc
|
||||
vc.countryTF.delegate = self.vc
|
||||
vc.phoneNumberTF.delegate = self.vc
|
||||
|
||||
vc.enterAddressNAmeTF.roundCorner()
|
||||
vc.addressLine1TF.roundCorner()
|
||||
vc.addressLine2TF.roundCorner()
|
||||
vc.cityTF.roundCorner()
|
||||
vc.stateTF.roundCorner()
|
||||
vc.countryTF.roundCorner()
|
||||
vc.phoneNumberTF.roundCorner()
|
||||
vc.pinCodeTF.roundCorner()
|
||||
vc.pinCodeTF.text = pincode
|
||||
}
|
||||
|
||||
func addGradient(){
|
||||
let color1 = #colorLiteral(red: 0.6745098039, green: 0.6235294118, blue: 0.1725490196, alpha: 1)
|
||||
let color2 = #colorLiteral(red: 0.5450980392, green: 0.6745098039, blue: 0.1725490196, alpha: 1)
|
||||
vc.view.applyGradient(colors: [color2, color1], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0.8, y: 0))
|
||||
}
|
||||
|
||||
func addAddress(){
|
||||
Utilities.startProgressHUD()
|
||||
let address = (vc.addressLine1TF.text ?? "") + ", " + (vc.addressLine2TF.text ?? "")
|
||||
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
|
||||
let params : Parameters = ["address_name" : vc.enterAddressNAmeTF.text!,
|
||||
"address" : address,
|
||||
"city" : vc.cityTF.text!,
|
||||
"state" : vc.stateTF.text!,
|
||||
"pincode" : vc.pinCodeTF.text!,
|
||||
"mobile_number" : vc.phoneNumberTF.text!]
|
||||
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Address.add_parent_address, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<AddressListDM>, NetworkManager.APIError>) in
|
||||
switch result{
|
||||
case .success(let data):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
switch data.success{
|
||||
case 0:
|
||||
/*
|
||||
Error
|
||||
*/
|
||||
Utilities.dismissProgressHUD()
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
self.vc.toast(msg: data.message ?? "Address Added", time: 2) {
|
||||
guard let data = data.data else{return}
|
||||
|
||||
CartDataCache.addressData.append(data)
|
||||
//set the newly added address as default
|
||||
guard let navigationController = self.vc.navigationController else {
|
||||
print("Not in a navigation controller")
|
||||
return
|
||||
}
|
||||
|
||||
if let targetController = navigationController.viewControllers.first(where: { $0 is AddressListVC }) {
|
||||
navigationController.popToViewController(targetController, animated: true)
|
||||
} else {
|
||||
print("Target view controller not found in the navigation stack")
|
||||
}
|
||||
}
|
||||
default:
|
||||
Utilities.dismissProgressHUD()
|
||||
break
|
||||
}
|
||||
case .failure(let error):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
Utilities.dismissProgressHUD()
|
||||
Utilities.alert(title: "Error", message: error.localizedDescription, viewController: self.vc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,6 @@ import Alamofire
|
||||
class AddressListVM{
|
||||
|
||||
weak var vc : AddressListVC!
|
||||
var addressData = [AddressListDM]()
|
||||
|
||||
func initView(){
|
||||
vc.innerView.addBorderView(width: 1, color: .darkGray)
|
||||
@@ -51,7 +50,7 @@ class AddressListVM{
|
||||
Utilities.startProgressHUD()
|
||||
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
|
||||
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Cart.parent_address_listing, method: .get,headers: headers) { [weak self](result : Result<BaseResponseModel<[AddressListDM]>, NetworkManager.APIError>) in
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Address.parent_address_listing, method: .get,headers: headers) { [weak self](result : Result<BaseResponseModel<[AddressListDM]>, NetworkManager.APIError>) in
|
||||
switch result{
|
||||
case .success(let data):
|
||||
guard let self else{
|
||||
@@ -67,12 +66,12 @@ class AddressListVM{
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
guard let data = data.data else{return}
|
||||
self.addressData = data
|
||||
if self.addressData.count != 0{
|
||||
self.addressData[0].isDefault = true
|
||||
CartDataCache.addressData = data
|
||||
if CartDataCache.addressData.count != 0{
|
||||
CartDataCache.addressData[0].isDefault = true
|
||||
}
|
||||
self.vc.tableView.reloadData()
|
||||
if let pincode = self.addressData.first?.pincode , let id = self.addressData.first?.id{
|
||||
if let pincode = CartDataCache.addressData.first?.pincode , let id = CartDataCache.addressData.first?.id{
|
||||
checkEstimatedDeliveryData(pinCode: pincode, id: id)
|
||||
}
|
||||
default:
|
||||
@@ -97,7 +96,7 @@ class AddressListVM{
|
||||
func checkEstimatedDeliveryData(pinCode : String, id : Int){
|
||||
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
|
||||
let params : Parameters = ["pincode" : pinCode]
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Cart.pincode_serviceability_check_edd, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<CheckEddDM>, NetworkManager.APIError>) in
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Address.pincode_serviceability_check_edd, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<CheckEddDM>, NetworkManager.APIError>) in
|
||||
switch result{
|
||||
case .success(let data):
|
||||
guard let self else{
|
||||
@@ -113,8 +112,8 @@ class AddressListVM{
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
guard let data = data.data?.result else{return}
|
||||
if let index = self.addressData.firstIndex(where: {$0.id == id}){
|
||||
self.addressData[index].eddDate = data.edd
|
||||
if let index = CartDataCache.addressData.firstIndex(where: {$0.id == id}){
|
||||
CartDataCache.addressData[index].eddDate = data.edd
|
||||
self.vc.tableView.reloadData()
|
||||
}
|
||||
default:
|
||||
@@ -131,4 +130,60 @@ class AddressListVM{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func createOrder(){
|
||||
var productIDs = [Int]()
|
||||
|
||||
for i in CartDataCache.cartListData{
|
||||
if let id = i.id{
|
||||
productIDs.append(id)
|
||||
}
|
||||
}
|
||||
Utilities.startProgressHUD()
|
||||
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
|
||||
let params : Parameters = ["product_ids" : productIDs,
|
||||
"address_id" : "56"]
|
||||
struct URLResp : Codable {
|
||||
var url : String?
|
||||
}
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Cart.create_new_order, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<URLResp>, NetworkManager.APIError>) in
|
||||
switch result{
|
||||
case .success(let data):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
switch data.success{
|
||||
case 0:
|
||||
/*
|
||||
Error
|
||||
*/
|
||||
Utilities.dismissProgressHUD()
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
guard let data = data.data else{return}
|
||||
let sb = UIStoryboard(name: K.StoryBoard.address, bundle: nil)
|
||||
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Address.paymentWebViewVC) as! PaymentWebViewVC
|
||||
vcPush.url = data.url
|
||||
vcPush.modalTransitionStyle = .crossDissolve
|
||||
vcPush.modalPresentationStyle = .fullScreen
|
||||
self.vc.present(vcPush, animated: true)
|
||||
default:
|
||||
Utilities.dismissProgressHUD()
|
||||
break
|
||||
}
|
||||
case .failure(let error):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
Utilities.dismissProgressHUD()
|
||||
Utilities.alertWithBtnCancelCompletion(title: "Error", msgBody: error.localizedDescription, okBtnStr: "Retry?", vc: self.vc) { isDone in
|
||||
if isDone{
|
||||
self.createOrder()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -385,117 +385,10 @@
|
||||
</objects>
|
||||
<point key="canvasLocation" x="907.63358778625945" y="-35.211267605633807"/>
|
||||
</scene>
|
||||
<!--Address ListVC-->
|
||||
<scene sceneID="pB5-5z-2Mm">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="AddressListVC" id="e74-xp-vgC" customClass="AddressListVC" customModule="WOKA" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="Qtr-Tw-ga2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u8h-Ky-5D7">
|
||||
<rect key="frame" x="10" y="49" width="394" height="808"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="o9Q-Ev-529">
|
||||
<rect key="frame" x="7" y="7" width="380" height="794"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="hwr-Ev-IwN">
|
||||
<rect key="frame" x="10" y="10" width="360" height="649"/>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
</tableView>
|
||||
<stackView opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="uW6-Km-RZg">
|
||||
<rect key="frame" x="10" y="674" width="360" height="110"/>
|
||||
<subviews>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yKt-QH-gCB" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="360" height="50"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="E9r-k9-Fq8"/>
|
||||
</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="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title="Use Selected Address">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="btnTapped:" destination="e74-xp-vgC" eventType="touchUpInside" id="5vZ-BG-eI8"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2Fy-uW-HrA" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="60" width="360" height="50"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="50" id="1EF-fs-4m9"/>
|
||||
</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="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||
<state key="normal" title="Add New Address">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="btnTapped:" destination="e74-xp-vgC" eventType="touchUpInside" id="go2-GU-591"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="uW6-Km-RZg" firstAttribute="top" secondItem="hwr-Ev-IwN" secondAttribute="bottom" constant="15" id="OVV-uW-oXC"/>
|
||||
<constraint firstItem="uW6-Km-RZg" firstAttribute="leading" secondItem="o9Q-Ev-529" secondAttribute="leading" constant="10" id="P1a-Az-pIH"/>
|
||||
<constraint firstItem="hwr-Ev-IwN" firstAttribute="leading" secondItem="o9Q-Ev-529" secondAttribute="leading" constant="10" id="Tuw-H5-5Yr"/>
|
||||
<constraint firstAttribute="trailing" secondItem="hwr-Ev-IwN" secondAttribute="trailing" constant="10" id="Txv-7p-fEZ"/>
|
||||
<constraint firstAttribute="bottom" secondItem="uW6-Km-RZg" secondAttribute="bottom" constant="10" id="UU8-Kf-CaV"/>
|
||||
<constraint firstItem="hwr-Ev-IwN" firstAttribute="top" secondItem="o9Q-Ev-529" secondAttribute="top" constant="10" id="m1B-Mo-zwg"/>
|
||||
<constraint firstAttribute="trailing" secondItem="uW6-Km-RZg" secondAttribute="trailing" constant="10" id="rVg-cz-SNd"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="o9Q-Ev-529" firstAttribute="top" secondItem="u8h-Ky-5D7" secondAttribute="top" constant="7" id="BDm-Ob-kzQ"/>
|
||||
<constraint firstAttribute="bottom" secondItem="o9Q-Ev-529" secondAttribute="bottom" constant="7" id="JYE-Kg-AqL"/>
|
||||
<constraint firstAttribute="trailing" secondItem="o9Q-Ev-529" secondAttribute="trailing" constant="7" id="Ltn-Wb-Tqk"/>
|
||||
<constraint firstItem="o9Q-Ev-529" firstAttribute="leading" secondItem="u8h-Ky-5D7" secondAttribute="leading" constant="7" id="XSS-aC-DNR"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
|
||||
<integer key="value" value="10"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<viewLayoutGuide key="safeArea" id="GRP-hQ-hXk"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="u8h-Ky-5D7" firstAttribute="leading" secondItem="GRP-hQ-hXk" secondAttribute="leading" constant="10" id="Cv6-mw-Ufr"/>
|
||||
<constraint firstItem="GRP-hQ-hXk" firstAttribute="bottom" secondItem="u8h-Ky-5D7" secondAttribute="bottom" constant="5" id="J1K-fH-i7N"/>
|
||||
<constraint firstItem="GRP-hQ-hXk" firstAttribute="trailing" secondItem="u8h-Ky-5D7" secondAttribute="trailing" constant="10" id="Yaw-gX-PJ4"/>
|
||||
<constraint firstItem="u8h-Ky-5D7" firstAttribute="top" secondItem="GRP-hQ-hXk" secondAttribute="top" constant="5" id="jkK-Ha-dps"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="addNewAddressBtn" destination="2Fy-uW-HrA" id="PaR-kg-dCQ"/>
|
||||
<outlet property="innerView" destination="o9Q-Ev-529" id="yRK-FN-AyR"/>
|
||||
<outlet property="tableView" destination="hwr-Ev-IwN" id="0H0-wg-Nf0"/>
|
||||
<outlet property="useSelectedAddBtn" destination="yKt-QH-gCB" id="ZXu-Tn-XLT"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="x5u-g1-Lhg" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1637" y="-35"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<designables>
|
||||
<designable name="0cZ-tT-3PH">
|
||||
<size key="intrinsicContentSize" width="134.33333333333334" height="21"/>
|
||||
<size key="intrinsicContentSize" width="184.33333333333334" height="21"/>
|
||||
</designable>
|
||||
</designables>
|
||||
<resources>
|
||||
@@ -504,9 +397,6 @@
|
||||
<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>
|
||||
<systemColor name="systemGreenColor">
|
||||
<color red="0.20392156862745098" green="0.7803921568627451" blue="0.34901960784313724" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</systemColor>
|
||||
|
||||
15
WOKA/Cart/CartDataCache.swift
Normal file
15
WOKA/Cart/CartDataCache.swift
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// CartDataCache.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class CartDataCache{
|
||||
|
||||
static var cartListData = [CartListingDM.ResultData]()
|
||||
static var addressData = [AddressListDM]()
|
||||
|
||||
}
|
||||
@@ -14,6 +14,7 @@ class CartListVC: UIViewController {
|
||||
@IBOutlet weak var noDataStack: UIStackView!
|
||||
@IBOutlet weak var checkoutBtn: LocalisedElementsButton!
|
||||
var vm = CartListVM()
|
||||
static let shareInstance = CartListVC()
|
||||
|
||||
// MARK: - Life Cycle
|
||||
|
||||
@@ -64,7 +65,7 @@ class CartListVC: UIViewController {
|
||||
}
|
||||
let sb = UIStoryboard(name: K.StoryBoard.cart, bundle: nil)
|
||||
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Cart.cartPaymentOptionsVC) as! CartPaymentOptionsVC
|
||||
vcPush.vm.cartListData = vm.cartListData
|
||||
// vcPush.vm.cartListData = vm.cartListData
|
||||
vcPush.vm.cartTotalPrice = vm.totalAmount
|
||||
self.navigationController?.pushViewController(vcPush, animated: true)
|
||||
}
|
||||
@@ -74,12 +75,12 @@ class CartListVC: UIViewController {
|
||||
|
||||
extension CartListVC : TableViewSRC{
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
return vm.cartListData.count
|
||||
return CartDataCache.cartListData.count
|
||||
}
|
||||
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: K.CellIdentifier.Cart.cartListCell) as! CartListCell
|
||||
let data = vm.cartListData[indexPath.row]
|
||||
let data = CartDataCache.cartListData[indexPath.row]
|
||||
cell.setData(data: data)
|
||||
cell.btnTapped = { [weak self] () -> Void in
|
||||
guard let self else{return}
|
||||
@@ -117,7 +118,7 @@ extension CartListVC : TableViewSRC{
|
||||
switch mode{
|
||||
case .yes:
|
||||
guard let self else{return}
|
||||
if let shopMasterID = vm.cartListData[indexPath].id{
|
||||
if let shopMasterID = CartDataCache.cartListData[indexPath].id{
|
||||
vm.removeItemFromCart(shopMasterID: shopMasterID, index: indexPath)
|
||||
}
|
||||
case .no:
|
||||
|
||||
@@ -40,6 +40,7 @@ class CartPaymentOptionsVC: UIViewController {
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
self.navigationController?.setColor(color: .white)
|
||||
|
||||
}
|
||||
@@ -69,8 +70,8 @@ class CartPaymentOptionsVC: UIViewController {
|
||||
}
|
||||
|
||||
@IBAction func confirmBtnTapped(_ sender: LocalisedElementsButton) {
|
||||
let sb = UIStoryboard(name: K.StoryBoard.cart, bundle: nil)
|
||||
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Cart.addressListVC) as! AddressListVC
|
||||
let sb = UIStoryboard(name: K.StoryBoard.address, bundle: nil)
|
||||
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Address.addressListVC) as! AddressListVC
|
||||
self.navigationController?.pushViewController(vcPush, animated: true)
|
||||
// vm.createOrder()
|
||||
}
|
||||
@@ -88,7 +89,7 @@ class CartPaymentOptionsVC: UIViewController {
|
||||
extension CartPaymentOptionsVC : TableViewSRC{
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
if tableView == cartTableView{
|
||||
return vm.cartListData.count
|
||||
return CartDataCache.cartListData.count
|
||||
}else{
|
||||
return vm.couponData.count
|
||||
}
|
||||
@@ -97,7 +98,7 @@ extension CartPaymentOptionsVC : TableViewSRC{
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
if tableView == cartTableView{
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: K.CellIdentifier.Cart.cartPaymentOptionsCell) as! CartPaymentOptionsCell
|
||||
let data = vm.cartListData[indexPath.row]
|
||||
let data = CartDataCache.cartListData[indexPath.row]
|
||||
cell.setData(data: data)
|
||||
return cell
|
||||
}else{
|
||||
|
||||
@@ -11,7 +11,7 @@ import Alamofire
|
||||
class CartListVM{
|
||||
|
||||
weak var vc : CartListVC!
|
||||
var cartListData = [CartListingDM.ResultData]()
|
||||
// var cartListData = [CartListingDM.ResultData]()
|
||||
|
||||
var totalAmount = 0.0 {
|
||||
didSet{
|
||||
@@ -78,7 +78,7 @@ class CartListVM{
|
||||
totalAmount = data.data?.totalAmount ?? 0.0
|
||||
|
||||
guard let data = data.data?.result else{return}
|
||||
self.cartListData = data
|
||||
CartDataCache.cartListData = data
|
||||
self.vc.tableView.reloadData()
|
||||
feedbackGenerator.impactOccurred()
|
||||
self.checkCount()
|
||||
@@ -105,7 +105,7 @@ class CartListVM{
|
||||
}
|
||||
|
||||
func checkCount(){
|
||||
if self.cartListData.count == 0 {
|
||||
if CartDataCache.cartListData.count == 0 {
|
||||
self.vc.noDataStack.isHidden = false
|
||||
self.vc.checkoutBtn.isEnabled = false
|
||||
self.vc.checkoutBtn.backgroundColor = #colorLiteral(red: 0.03529411765, green: 0, blue: 0.3647058824, alpha: 1).withAlphaComponent(0.7)
|
||||
@@ -140,8 +140,8 @@ class CartListVM{
|
||||
}
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
self.totalAmount = self.totalAmount - (self.cartListData[index].productFinalPrice ?? 0.0)
|
||||
self.cartListData.remove(at: index)
|
||||
self.totalAmount = self.totalAmount - (CartDataCache.cartListData[index].productFinalPrice ?? 0.0)
|
||||
CartDataCache.cartListData.remove(at: index)
|
||||
self.vc.tableView.reloadData()
|
||||
self.checkCount()
|
||||
default:
|
||||
|
||||
@@ -11,7 +11,7 @@ import Alamofire
|
||||
class CartPaymentOptionsVM{
|
||||
|
||||
weak var vc : CartPaymentOptionsVC!
|
||||
var cartListData = [CartListingDM.ResultData]()
|
||||
// var cartListData = [CartListingDM.ResultData]()
|
||||
var couponData = [CouponListDM.ResultData]()
|
||||
var isExpanded = false
|
||||
var cartTotalPrice = 0.0
|
||||
@@ -147,55 +147,6 @@ class CartPaymentOptionsVM{
|
||||
}
|
||||
}
|
||||
|
||||
func createOrder(){
|
||||
var productIDs = [Int]()
|
||||
|
||||
for i in cartListData{
|
||||
if let id = i.id{
|
||||
productIDs.append(id)
|
||||
}
|
||||
}
|
||||
Utilities.startProgressHUD()
|
||||
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
|
||||
let params : Parameters = ["product_ids" : productIDs,
|
||||
"address_id" : "56"]
|
||||
struct URLResp : Codable {
|
||||
var url : String?
|
||||
}
|
||||
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Cart.create_new_order, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<URLResp>, NetworkManager.APIError>) in
|
||||
switch result{
|
||||
case .success(let data):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
switch data.success{
|
||||
case 0:
|
||||
/*
|
||||
Error
|
||||
*/
|
||||
Utilities.dismissProgressHUD()
|
||||
case 1:
|
||||
Utilities.dismissProgressHUD()
|
||||
guard let data = data.data else{return}
|
||||
print(data.url)
|
||||
default:
|
||||
Utilities.dismissProgressHUD()
|
||||
break
|
||||
}
|
||||
case .failure(let error):
|
||||
guard let self else{
|
||||
Utilities.dismissProgressHUD()
|
||||
return
|
||||
}
|
||||
Utilities.dismissProgressHUD()
|
||||
Utilities.alertWithBtnCancelCompletion(title: "Error", msgBody: error.localizedDescription, okBtnStr: "Retry?", vc: self.vc) { isDone in
|
||||
if isDone{
|
||||
self.createOrder()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
16
WOKA/Constants K/AnalyticsEventKeys.swift
Normal file
16
WOKA/Constants K/AnalyticsEventKeys.swift
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// AnalyticsEventKeys.swift
|
||||
// WOKA
|
||||
//
|
||||
// Created by MacBook Pro on 29/07/24.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
extension K{
|
||||
struct AnalyticsEventKeys{
|
||||
static var new_guest_login = "new_guest_login"
|
||||
static var user_signup = "user_signup"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,5 +22,6 @@ extension K{
|
||||
static let Karaoke = "Karaoke"
|
||||
static let shop = "Shop"
|
||||
static let cart = "Cart"
|
||||
static let address = "Address"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,15 @@ extension K{
|
||||
struct Cart{
|
||||
static let cartListVC = "CartListVC"
|
||||
static let cartPaymentOptionsVC = "CartPaymentOptionsVC"
|
||||
}
|
||||
|
||||
// MARK: - Address
|
||||
|
||||
struct Address{
|
||||
static let addressListVC = "AddressListVC"
|
||||
static let verifyAddressPincodeVC = "VerifyAddressPincodeVC"
|
||||
static let addNewAddressVC = "AddNewAddressVC"
|
||||
static let paymentWebViewVC = "PaymentWebViewVC"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
32
WOKA/GoogleService-Info.plist
Normal file
32
WOKA/GoogleService-Info.plist
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyDA_akTO852Olbp9YUbtBlmTQVk0-z9NPA</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>15836861503</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.app.woka</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>wokaga-19312</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>wokaga-19312.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:15836861503:ios:4bd34209992a812c66548a</string>
|
||||
<key>ADMOB_APP_ID</key>
|
||||
<string>ca-app-pub-5699008063638916~6654980943</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -9,6 +9,7 @@ import UIKit
|
||||
import Lottie
|
||||
import IQKeyboardManagerSwift
|
||||
import JWPlayerKit
|
||||
import Firebase
|
||||
|
||||
@main
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
@@ -29,6 +30,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
}
|
||||
|
||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||||
|
||||
//Initialize Firebase
|
||||
// FirebaseApp.configure()
|
||||
|
||||
// enabling the IQKeyboard manager instance
|
||||
IQKeyboardManager.shared.enable = true
|
||||
IQKeyboardManager.shared.resignOnTouchOutside = true
|
||||
|
||||
@@ -19,8 +19,8 @@ struct APIEndPoints {
|
||||
private init() {}
|
||||
|
||||
struct BaseURL {
|
||||
static let staging = "https://wokaland.com/admin/api/"
|
||||
static let production = "https://simplitend.com"
|
||||
static let staging = "https://wokaland.com/secret-panel-10102023/hidden-admin-portal-20092023/api/"
|
||||
static let production = ""
|
||||
|
||||
static let appUrl = "https://apps.apple.com/in/app/woka/id6465305185"
|
||||
}
|
||||
@@ -122,7 +122,11 @@ struct APIEndPoints {
|
||||
static let coupon_listing = makeURL(path: "coupon_listing")
|
||||
static let applied_coupon_discount = makeURL(path: "applied_coupon_discount")
|
||||
static let create_new_order = makeURL(path: "create_new_order")
|
||||
}
|
||||
|
||||
struct Address{
|
||||
static let parent_address_listing = makeURL(path: "parent_address_listing")
|
||||
static let add_parent_address = makeURL(path: "add_parent_address")
|
||||
static let pincode_serviceability_check_edd = makeURL(path: "pincode_serviceability_check_edd")
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
import UIKit
|
||||
import AVFoundation
|
||||
import Alamofire
|
||||
import FirebaseAnalytics
|
||||
|
||||
class SplashVM{
|
||||
|
||||
@@ -15,6 +16,9 @@ class SplashVM{
|
||||
var player: AVAudioPlayer?
|
||||
|
||||
func initView(){
|
||||
|
||||
// Analytics.logEvent(K.AnalyticsEventKeys.new_guest_login, parameters: ["os_type" : "iOS"])
|
||||
|
||||
vc.activityIndicator.hidesWhenStopped = true
|
||||
let color1 = #colorLiteral(red: 0.144693464, green: 0.1426281333, blue: 0.6686832905, alpha: 1)
|
||||
let color2 = #colorLiteral(red: 0.4862745098, green: 0.1960784314, blue: 0.7019607843, alpha: 1)
|
||||
|
||||
Reference in New Issue
Block a user