This commit is contained in:
忆海16 2024-08-02 17:04:52 +08:00
parent 92b5a7c917
commit 12bc8a053e
29 changed files with 375 additions and 2057 deletions

View File

@ -38,6 +38,7 @@
755073C72C3F81B400ADFD6B /* AV_LaunchLimitesVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 755073C52C3F81B400ADFD6B /* AV_LaunchLimitesVC.xib */; };
755073C92C3F837700ADFD6B /* ip+idfa+ADID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755073C82C3F837700ADFD6B /* ip+idfa+ADID.swift */; };
755073CB2C3F843A00ADFD6B /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755073CA2C3F843A00ADFD6B /* NetworkManager.swift */; };
7559FE5D2C58C58D006A3D80 /* LuxADConfigure.m in Sources */ = {isa = PBXBuildFile; fileRef = 7559FE5C2C58C58D006A3D80 /* LuxADConfigure.m */; };
759616622C35244A00363C46 /* AV_SelectGenderVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759616602C35244A00363C46 /* AV_SelectGenderVC.swift */; };
759616632C35244A00363C46 /* AV_SelectGenderVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 759616612C35244A00363C46 /* AV_SelectGenderVC.xib */; };
759616682C3525AD00363C46 /* AV_SelectGenderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759616662C3525AD00363C46 /* AV_SelectGenderCell.swift */; };
@ -46,6 +47,14 @@
759616712C35348A00363C46 /* AV_SportsVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7596166F2C35348A00363C46 /* AV_SportsVC.xib */; };
759616742C353BEF00363C46 /* AV_SportsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759616722C353BEF00363C46 /* AV_SportsCell.swift */; };
759616752C353BEF00363C46 /* AV_SportsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 759616732C353BEF00363C46 /* AV_SportsCell.xib */; };
75A3DFAE2C588772002AEACE /* LuxADManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFA22C588772002AEACE /* LuxADManager.m */; };
75A3DFAF2C588772002AEACE /* LuxADSSModeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFA42C588772002AEACE /* LuxADSSModeVC.m */; };
75A3DFB02C588772002AEACE /* LuxADSuperVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFA62C588772002AEACE /* LuxADSuperVC.m */; };
75A3DFB12C588772002AEACE /* LuxADVCControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFA82C588772002AEACE /* LuxADVCControl.m */; };
75A3DFB22C588772002AEACE /* LuxNetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFAA2C588772002AEACE /* LuxNetManager.m */; };
75A3DFBC2C5895D9002AEACE /* OneVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFBB2C5895D9002AEACE /* OneVC.m */; };
75A3DFBF2C5895EA002AEACE /* twoVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFBE2C5895EA002AEACE /* twoVC.m */; };
75A3DFC22C5895F6002AEACE /* threeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 75A3DFC12C5895F6002AEACE /* threeVC.m */; };
75C0A1322BC787A400AB0094 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75C0A1312BC787A400AB0094 /* AppDelegate.swift */; };
75C0A1362BC787A500AB0094 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75C0A1352BC787A500AB0094 /* ViewController.swift */; };
75C0A1392BC787A500AB0094 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 75C0A1372BC787A500AB0094 /* Main.storyboard */; };
@ -75,14 +84,6 @@
75C4E0B92C367EAE00B4C170 /* AV_WaterCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75C4E0B62C367EAE00B4C170 /* AV_WaterCell.swift */; };
75C4E0BC2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 75C4E0BB2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.xib */; };
75C4E0BD2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75C4E0BA2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.swift */; };
75F3F3D22C4CE23200005A7E /* AV_RootPlayerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F3F3D02C4CE23200005A7E /* AV_RootPlayerVC.swift */; };
75F3F3D32C4CE23200005A7E /* AV_RootPlayerVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 75F3F3D12C4CE23200005A7E /* AV_RootPlayerVC.xib */; };
75F3F3D62C4CE32000005A7E /* AV_AddPlayerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F3F3D42C4CE32000005A7E /* AV_AddPlayerVC.swift */; };
75F3F3D72C4CE32000005A7E /* AV_AddPlayerVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 75F3F3D52C4CE32000005A7E /* AV_AddPlayerVC.xib */; };
75F3F3DA2C4CE5F600005A7E /* AV_MinePlayerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F3F3D82C4CE5F600005A7E /* AV_MinePlayerVC.swift */; };
75F3F3DB2C4CE5F600005A7E /* AV_MinePlayerVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 75F3F3D92C4CE5F600005A7E /* AV_MinePlayerVC.xib */; };
75F3F3DE2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F3F3DC2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.swift */; };
75F3F3DF2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 75F3F3DD2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.xib */; };
75FAEF2E2C3E5D9800298C7D /* CircularProgressBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75FAEF2D2C3E5D9700298C7D /* CircularProgressBarView.swift */; };
75FAEF312C3E735800298C7D /* HealthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75FAEF302C3E735800298C7D /* HealthManager.swift */; };
75FAEF342C3E8D7400298C7D /* AV_NoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75FAEF322C3E8D7400298C7D /* AV_NoneCell.swift */; };
@ -117,7 +118,7 @@
/* Begin PBXFileReference section */
54C12C891A8D806F1F2D9570 /* Pods_anniversary_Project.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_anniversary_Project.framework; sourceTree = BUILT_PRODUCTS_DIR; };
753B789D2C4FB1450007526F /* adNetWork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = adNetWork.swift; sourceTree = "<group>"; };
753B789D2C4FB1450007526F /* adNetWork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = adNetWork.swift; sourceTree = "<group>"; tabWidth = 5; };
753C25882C3B8272006E2660 /* AV_WaterDayCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_WaterDayCell.swift; sourceTree = "<group>"; };
753C25892C3B8272006E2660 /* AV_WaterDayCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_WaterDayCell.xib; sourceTree = "<group>"; };
753C258C2C3B88F4006E2660 /* AV_BirtherDayTaskCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_BirtherDayTaskCell.swift; sourceTree = "<group>"; };
@ -148,6 +149,9 @@
755073C52C3F81B400ADFD6B /* AV_LaunchLimitesVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_LaunchLimitesVC.xib; sourceTree = "<group>"; };
755073C82C3F837700ADFD6B /* ip+idfa+ADID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ip+idfa+ADID.swift"; sourceTree = "<group>"; };
755073CA2C3F843A00ADFD6B /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = "<group>"; };
7559FE5A2C58C2CF006A3D80 /* anniversaryPCH.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = anniversaryPCH.pch; sourceTree = "<group>"; };
7559FE5B2C58C58D006A3D80 /* LuxADConfigure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuxADConfigure.h; sourceTree = "<group>"; };
7559FE5C2C58C58D006A3D80 /* LuxADConfigure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LuxADConfigure.m; sourceTree = "<group>"; };
759616602C35244A00363C46 /* AV_SelectGenderVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_SelectGenderVC.swift; sourceTree = "<group>"; };
759616612C35244A00363C46 /* AV_SelectGenderVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_SelectGenderVC.xib; sourceTree = "<group>"; };
759616662C3525AD00363C46 /* AV_SelectGenderCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_SelectGenderCell.swift; sourceTree = "<group>"; };
@ -156,6 +160,23 @@
7596166F2C35348A00363C46 /* AV_SportsVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_SportsVC.xib; sourceTree = "<group>"; };
759616722C353BEF00363C46 /* AV_SportsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_SportsCell.swift; sourceTree = "<group>"; };
759616732C353BEF00363C46 /* AV_SportsCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_SportsCell.xib; sourceTree = "<group>"; };
75A3DFA12C588772002AEACE /* LuxADManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuxADManager.h; sourceTree = "<group>"; };
75A3DFA22C588772002AEACE /* LuxADManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LuxADManager.m; sourceTree = "<group>"; };
75A3DFA32C588772002AEACE /* LuxADSSModeVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuxADSSModeVC.h; sourceTree = "<group>"; };
75A3DFA42C588772002AEACE /* LuxADSSModeVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LuxADSSModeVC.m; sourceTree = "<group>"; };
75A3DFA52C588772002AEACE /* LuxADSuperVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuxADSuperVC.h; sourceTree = "<group>"; };
75A3DFA62C588772002AEACE /* LuxADSuperVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LuxADSuperVC.m; sourceTree = "<group>"; };
75A3DFA72C588772002AEACE /* LuxADVCControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuxADVCControl.h; sourceTree = "<group>"; };
75A3DFA82C588772002AEACE /* LuxADVCControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LuxADVCControl.m; sourceTree = "<group>"; };
75A3DFA92C588772002AEACE /* LuxNetManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuxNetManager.h; sourceTree = "<group>"; };
75A3DFAA2C588772002AEACE /* LuxNetManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LuxNetManager.m; sourceTree = "<group>"; };
75A3DFB82C588B16002AEACE /* anniversary_Project-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "anniversary_Project-Bridging-Header.h"; sourceTree = "<group>"; };
75A3DFBA2C5895D9002AEACE /* OneVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OneVC.h; sourceTree = "<group>"; };
75A3DFBB2C5895D9002AEACE /* OneVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OneVC.m; sourceTree = "<group>"; };
75A3DFBD2C5895EA002AEACE /* twoVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = twoVC.h; sourceTree = "<group>"; };
75A3DFBE2C5895EA002AEACE /* twoVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = twoVC.m; sourceTree = "<group>"; };
75A3DFC02C5895F6002AEACE /* threeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = threeVC.h; sourceTree = "<group>"; };
75A3DFC12C5895F6002AEACE /* threeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = threeVC.m; sourceTree = "<group>"; };
75C0A12E2BC787A400AB0094 /* anniversary_Project.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = anniversary_Project.app; sourceTree = BUILT_PRODUCTS_DIR; };
75C0A1312BC787A400AB0094 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
75C0A1352BC787A500AB0094 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
@ -183,21 +204,12 @@
75C0A1F22BCCD48A00AB0094 /* AV_TaskCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_TaskCell.swift; sourceTree = "<group>"; };
75C0A1F32BCCD48A00AB0094 /* AV_TaskCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_TaskCell.xib; sourceTree = "<group>"; };
75C0A1F62BCD027A00AB0094 /* color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = color.swift; sourceTree = "<group>"; };
75C0A1F92BCD06EB00AB0094 /* AV_header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AV_header.h; sourceTree = "<group>"; };
75C4E0AF2C36792900B4C170 /* AV_WaterHomeVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_WaterHomeVC.swift; sourceTree = "<group>"; };
75C4E0B02C36792900B4C170 /* AV_WaterHomeVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_WaterHomeVC.xib; sourceTree = "<group>"; };
75C4E0B62C367EAE00B4C170 /* AV_WaterCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_WaterCell.swift; sourceTree = "<group>"; };
75C4E0B72C367EAE00B4C170 /* AV_WaterCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_WaterCell.xib; sourceTree = "<group>"; };
75C4E0BA2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_AddWaterCollectionViewCell.swift; sourceTree = "<group>"; };
75C4E0BB2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_AddWaterCollectionViewCell.xib; sourceTree = "<group>"; };
75F3F3D02C4CE23200005A7E /* AV_RootPlayerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_RootPlayerVC.swift; sourceTree = "<group>"; };
75F3F3D12C4CE23200005A7E /* AV_RootPlayerVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_RootPlayerVC.xib; sourceTree = "<group>"; };
75F3F3D42C4CE32000005A7E /* AV_AddPlayerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_AddPlayerVC.swift; sourceTree = "<group>"; };
75F3F3D52C4CE32000005A7E /* AV_AddPlayerVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_AddPlayerVC.xib; sourceTree = "<group>"; };
75F3F3D82C4CE5F600005A7E /* AV_MinePlayerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_MinePlayerVC.swift; sourceTree = "<group>"; };
75F3F3D92C4CE5F600005A7E /* AV_MinePlayerVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_MinePlayerVC.xib; sourceTree = "<group>"; };
75F3F3DC2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AV_WaterKeyBordPlayerVC.swift; sourceTree = "<group>"; };
75F3F3DD2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AV_WaterKeyBordPlayerVC.xib; sourceTree = "<group>"; };
75FAEF2D2C3E5D9700298C7D /* CircularProgressBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularProgressBarView.swift; sourceTree = "<group>"; };
75FAEF2F2C3E723A00298C7D /* anniversary_Project.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = anniversary_Project.entitlements; sourceTree = "<group>"; };
75FAEF302C3E735800298C7D /* HealthManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HealthManager.swift; sourceTree = "<group>"; };
@ -320,6 +332,39 @@
path = V;
sourceTree = "<group>";
};
75A3DFAB2C588772002AEACE /* LuxADManager */ = {
isa = PBXGroup;
children = (
7559FE5B2C58C58D006A3D80 /* LuxADConfigure.h */,
7559FE5C2C58C58D006A3D80 /* LuxADConfigure.m */,
755073C22C3F7FC200ADFD6B /* GoogleService-Info.plist */,
75A3DFA12C588772002AEACE /* LuxADManager.h */,
75A3DFA22C588772002AEACE /* LuxADManager.m */,
75A3DFA32C588772002AEACE /* LuxADSSModeVC.h */,
75A3DFA42C588772002AEACE /* LuxADSSModeVC.m */,
75A3DFA52C588772002AEACE /* LuxADSuperVC.h */,
75A3DFA62C588772002AEACE /* LuxADSuperVC.m */,
75A3DFA72C588772002AEACE /* LuxADVCControl.h */,
75A3DFA82C588772002AEACE /* LuxADVCControl.m */,
75A3DFA92C588772002AEACE /* LuxNetManager.h */,
75A3DFAA2C588772002AEACE /* LuxNetManager.m */,
);
path = LuxADManager;
sourceTree = "<group>";
};
75A3DFB92C5895BF002AEACE /* playB */ = {
isa = PBXGroup;
children = (
75A3DFBA2C5895D9002AEACE /* OneVC.h */,
75A3DFBB2C5895D9002AEACE /* OneVC.m */,
75A3DFBD2C5895EA002AEACE /* twoVC.h */,
75A3DFBE2C5895EA002AEACE /* twoVC.m */,
75A3DFC02C5895F6002AEACE /* threeVC.h */,
75A3DFC12C5895F6002AEACE /* threeVC.m */,
);
path = playB;
sourceTree = "<group>";
};
75C0A1252BC787A400AB0094 = {
isa = PBXGroup;
children = (
@ -345,8 +390,8 @@
75C0A1302BC787A400AB0094 /* anniversary_Project */ = {
isa = PBXGroup;
children = (
75F3F3CE2C4CE20F00005A7E /* Player */,
755073C22C3F7FC200ADFD6B /* GoogleService-Info.plist */,
75A3DFB92C5895BF002AEACE /* playB */,
75A3DFAB2C588772002AEACE /* LuxADManager */,
75FAEF2F2C3E723A00298C7D /* anniversary_Project.entitlements */,
7596165F2C35242200363C46 /* Guidepages */,
75C0A1F82BCD06DC00AB0094 /* header */,
@ -489,7 +534,8 @@
75C0A1F82BCD06DC00AB0094 /* header */ = {
isa = PBXGroup;
children = (
75C0A1F92BCD06EB00AB0094 /* AV_header.h */,
75A3DFB82C588B16002AEACE /* anniversary_Project-Bridging-Header.h */,
7559FE5A2C58C2CF006A3D80 /* anniversaryPCH.pch */,
);
path = header;
sourceTree = "<group>";
@ -527,21 +573,6 @@
path = waterV;
sourceTree = "<group>";
};
75F3F3CE2C4CE20F00005A7E /* Player */ = {
isa = PBXGroup;
children = (
75F3F3D02C4CE23200005A7E /* AV_RootPlayerVC.swift */,
75F3F3D12C4CE23200005A7E /* AV_RootPlayerVC.xib */,
75F3F3D42C4CE32000005A7E /* AV_AddPlayerVC.swift */,
75F3F3D52C4CE32000005A7E /* AV_AddPlayerVC.xib */,
75F3F3D82C4CE5F600005A7E /* AV_MinePlayerVC.swift */,
75F3F3D92C4CE5F600005A7E /* AV_MinePlayerVC.xib */,
75F3F3DC2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.swift */,
75F3F3DD2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.xib */,
);
path = Player;
sourceTree = "<group>";
};
75FDC0B02BCE1C56005B3D13 /* V */ = {
isa = PBXGroup;
children = (
@ -675,8 +706,6 @@
755073C72C3F81B400ADFD6B /* AV_LaunchLimitesVC.xib in Resources */,
755073C32C3F7FC200ADFD6B /* GoogleService-Info.plist in Resources */,
759616752C353BEF00363C46 /* AV_SportsCell.xib in Resources */,
75F3F3D32C4CE23200005A7E /* AV_RootPlayerVC.xib in Resources */,
75F3F3D72C4CE32000005A7E /* AV_AddPlayerVC.xib in Resources */,
754C97D12C3D0F7100A0455D /* AV_selectWeightVC.xib in Resources */,
754835022C3D04F300AC6F8F /* AV_WaterSettingVC.xib in Resources */,
759616712C35348A00363C46 /* AV_SportsVC.xib in Resources */,
@ -693,9 +722,7 @@
75C0A16D2BC789F900AB0094 /* AV_HomeVC.xib in Resources */,
75C0A1392BC787A500AB0094 /* Main.storyboard in Resources */,
75FDC0CD2BCF77C9005B3D13 /* AV_PivacyVC.xib in Resources */,
75F3F3DB2C4CE5F600005A7E /* AV_MinePlayerVC.xib in Resources */,
754C97DD2C3D2EAA00A0455D /* AV_TemperatureVC.xib in Resources */,
75F3F3DF2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.xib in Resources */,
754C97D72C3D253200A0455D /* AV_selectWeightCell.xib in Resources */,
759616632C35244A00363C46 /* AV_SelectGenderVC.xib in Resources */,
75C4E0B12C36792900B4C170 /* AV_WaterHomeVC.xib in Resources */,
@ -804,9 +831,10 @@
75FAEF312C3E735800298C7D /* HealthManager.swift in Sources */,
754835032C3D04F300AC6F8F /* AV_WaterSettingVC.swift in Sources */,
75C0A1F72BCD027A00AB0094 /* color.swift in Sources */,
75F3F3DA2C4CE5F600005A7E /* AV_MinePlayerVC.swift in Sources */,
75C0A1F42BCCD48A00AB0094 /* AV_TaskCell.swift in Sources */,
75A3DFBC2C5895D9002AEACE /* OneVC.m in Sources */,
754C97DA2C3D258700A0455D /* weightView.swift in Sources */,
75A3DFAF2C588772002AEACE /* LuxADSSModeVC.m in Sources */,
75C0A1632BC7897600AB0094 /* AV_RootVC.swift in Sources */,
754C97D42C3D1E5500A0455D /* ageView.swift in Sources */,
753C25932C3BC46B006E2660 /* NotificationCenter.swift in Sources */,
@ -814,28 +842,32 @@
753C258B2C3B8272006E2660 /* AV_WaterDayCell.swift in Sources */,
759616742C353BEF00363C46 /* AV_SportsCell.swift in Sources */,
75C0A17A2BC791B400AB0094 /* AV_usermodel.swift in Sources */,
75A3DFB02C588772002AEACE /* LuxADSuperVC.m in Sources */,
75C0A1722BC78A1B00AB0094 /* AV_MineVC.swift in Sources */,
753C25912C3BBA9D006E2660 /* AV_WaveView.swift in Sources */,
75F3F3D22C4CE23200005A7E /* AV_RootPlayerVC.swift in Sources */,
75A3DFAE2C588772002AEACE /* LuxADManager.m in Sources */,
75FAEF2E2C3E5D9800298C7D /* CircularProgressBarView.swift in Sources */,
753C259B2C3BED09006E2660 /* AV_AddWaterVCCollectionViewCell.swift in Sources */,
75FDC0B72BCE2F37005B3D13 /* AV_DetalisVC.swift in Sources */,
75A3DFB22C588772002AEACE /* LuxNetManager.m in Sources */,
75FDC0B32BCE1F4F005B3D13 /* AV_CalenDarcell.swift in Sources */,
75F3F3DE2C4CE6F400005A7E /* AV_WaterKeyBordPlayerVC.swift in Sources */,
759616622C35244A00363C46 /* AV_SelectGenderVC.swift in Sources */,
753C25972C3BE9D5006E2660 /* AV_AddWaterVC.swift in Sources */,
75F3F3D62C4CE32000005A7E /* AV_AddPlayerVC.swift in Sources */,
75A3DFBF2C5895EA002AEACE /* twoVC.m in Sources */,
75A3DFB12C588772002AEACE /* LuxADVCControl.m in Sources */,
754C97E22C3D453800A0455D /* AV_pagesAllVC.swift in Sources */,
75C0A1762BC78F3300AB0094 /* WCDB.swift in Sources */,
754C97DE2C3D2EAA00A0455D /* AV_TemperatureVC.swift in Sources */,
754C97D22C3D0F7100A0455D /* AV_selectWeightVC.swift in Sources */,
753C259F2C3BEFB8006E2660 /* AV_ScrollingScaleView.swift in Sources */,
753C25A22C3BF4A1006E2660 /* MLSliderRulerView.swift in Sources */,
75A3DFC22C5895F6002AEACE /* threeVC.m in Sources */,
753C25A32C3BF4A1006E2660 /* MLSliderRulerScrollView.swift in Sources */,
755073C62C3F81B400ADFD6B /* AV_LaunchLimitesVC.swift in Sources */,
75C4E0BD2C3681A400B4C170 /* AV_AddWaterCollectionViewCell.swift in Sources */,
75C0A16C2BC789F900AB0094 /* AV_HomeVC.swift in Sources */,
75C0A1322BC787A400AB0094 /* AppDelegate.swift in Sources */,
7559FE5D2C58C58D006A3D80 /* LuxADConfigure.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1018,13 +1050,65 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = anniversary_Project/anniversary_Project.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 2;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = MK2ZG9GGT4;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "/Users/yihai16/Documents/纳克斯/纪念日/anniversary_Project/anniversary_Project/anniversary_Project/header/anniversaryPCH.pch";
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView/BRPickerView.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FSCalendar/FSCalendar.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseABTesting/FirebaseABTesting.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstallations/FirebaseInstallations.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfig/FirebaseRemoteConfig.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseSharedSwift/FirebaseSharedSwift.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/RAMAnimatedTabBarController/RAMAnimatedTabBarController.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/SVProgressHUD/SVProgressHUD.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/WCDB.swift/WCDBSwift.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/WCDBOptimizedSQLCipher/sqlcipher.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/libwebp/libwebp.framework/Headers\"",
"\"${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers\"",
"\"${PODS_ROOT}/Headers/Public\"",
"\"${PODS_ROOT}/Headers/Public/BURelyFoundation_Global\"",
"\"${PODS_ROOT}/Headers/Public/Firebase\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/AppLovinDSPLinkedInAdapter/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/AppLovinMediationByteDanceAdapter/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/AppLovinMediationVungleAdapter/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/AFNetworking/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/APM/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/Foundation/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/Gecko/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/Header/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/NETWork/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/SDWebImage/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/YYModel/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/ZFPlayer/Headers\"",
"\"${PODS_XCFRAMEWORKS_BUILD_DIR}/BURelyFoundation_Global/Zip/Headers\"",
"$(inherited)",
"${PODS_ROOT}/Firebase/CoreOnly/Sources",
"\"$(inherited) non-recursive\"",
);
INFOPLIST_FILE = anniversary_Project/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Watermore\n";
INFOPLIST_KEY_NSHealthShareUsageDescription = "When we record drinking water on the home page, we need to read your health data in order to analyze your drinking habits.";
INFOPLIST_KEY_NSHealthUpdateUsageDescription = "When we record drinking water on the home page, we need to enter your health data to record your water intake";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "We need to access your photo album so you can add reminders for anniversaries or birthdays";
INFOPLIST_KEY_NSUserTrackingUsageDescription = "\"Watermore\" needs to request tracking permissions to provide a personalized advertising experience. We respect and protect your privacy and will not sell your data to third parties.";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
@ -1034,7 +1118,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.1;
MARKETING_VERSION = 2.2;
PRODUCT_BUNDLE_IDENTIFIER = com.countdown.day.daycount;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@ -1042,9 +1126,14 @@
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/anniversary_Project/header/AV_header.h";
SWIFT_OBJC_BRIDGING_HEADER = "/Users/yihai16/Documents/纳克斯/纪念日/anniversary_Project/anniversary_Project/anniversary_Project/header/anniversary_Project-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
USER_HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/libwebp/src",
"\"${PODS_ROOT} recursive\"",
);
};
name = Debug;
};
@ -1056,13 +1145,19 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = anniversary_Project/anniversary_Project.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 2;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = MK2ZG9GGT4;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "/Users/yihai16/Documents/纳克斯/纪念日/anniversary_Project/anniversary_Project/anniversary_Project/header/anniversaryPCH.pch";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = anniversary_Project/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Watermore\n";
INFOPLIST_KEY_NSHealthShareUsageDescription = "When we record drinking water on the home page, we need to read your health data in order to analyze your drinking habits.";
INFOPLIST_KEY_NSHealthUpdateUsageDescription = "When we record drinking water on the home page, we need to enter your health data to record your water intake";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "We need to access your photo album so you can add reminders for anniversaries or birthdays";
INFOPLIST_KEY_NSUserTrackingUsageDescription = "\"Watermore\" needs to request tracking permissions to provide a personalized advertising experience. We respect and protect your privacy and will not sell your data to third parties.";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
@ -1072,7 +1167,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.1;
MARKETING_VERSION = 2.2;
PRODUCT_BUNDLE_IDENTIFIER = com.countdown.day.daycount;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@ -1080,9 +1175,14 @@
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/anniversary_Project/header/AV_header.h";
SWIFT_OBJC_BRIDGING_HEADER = "/Users/yihai16/Documents/纳克斯/纪念日/anniversary_Project/anniversary_Project/anniversary_Project/header/anniversary_Project-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
USER_HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/libwebp/src",
"\"${PODS_ROOT} recursive\"",
);
};
name = Release;
};

View File

@ -550,7 +550,9 @@ extension AV_AddVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "8fccdfa964b52e26")
let randomString = getRandomString()
interstitialAd = MAInterstitialAd(adUnitIdentifier: randomString ?? "8fccdfa964b52e26")
interstitialAd.delegate = self
// Load the first ad

View File

@ -18,60 +18,19 @@ import Alamofire
class AppDelegate: UIResponder, UIApplicationDelegate,UNUserNotificationCenterDelegate {
var window: UIWindow?
let hasLaunchedBeforeKey = "hasLaunchedBefore"
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
// window = UIWindow()
// window?.frame = UIScreen.main.bounds
IQKeyboardManager.shared.enable = true
self.window?.frame = UIScreen.main.bounds
UNUserNotificationCenter.current().delegate = self
// let vc = AV_RootTabbarVC()
// self.window?.rootViewController = AV_NAVVC(rootViewController: vc)
let userDefaults = UserDefaults.standard
let initConfig = ALSdkInitializationConfiguration(sdkKey: "NLQHJDx4rcfd5IqhZf9nad2tIqFSH8SSKP3DXD18sTKUvV6tBfrH9_RPCGb6hvEn3NPXJDmUQCnvnKgHIT7Qn4") { builder in
builder.mediationProvider = ALMediationProviderMAX
}
LuxADConfigure.shareInstance().checkATT()
LuxADConfigure.shareInstance().configureADByFirebase(with: self.window!)
if userDefaults.bool(forKey: hasLaunchedBeforeKey) {
// let vc = AV_LaunchLimitesVC()
if userDefaults.bool(forKey: "iswindows"){
//
let vc = AV_RootPlayerVC()
self.window?.rootViewController = AV_NAVVC(rootViewController: vc)
ALSdk.shared().initialize(with: initConfig) { sdkConfig in
// Start loading ads
}
}else{
//
let vc = AV_LaunchLimitesVC()
self.window?.rootViewController = AV_NAVVC(rootViewController: vc)
ALSdk.shared().initialize(with: initConfig) { sdkConfig in
// Start loading ads
vc.createInterstitialAd()
}
}
// self.window?.rootViewController = AV_NAVVC(rootViewController: vc)
} else {
//
let vc = AV_SelectGenderVC()
self.window?.rootViewController = AV_NAVVC(rootViewController: vc)
userDefaults.set(true, forKey: hasLaunchedBeforeKey)
setdispatch()
stePermissions()
let currentDate = Date()
// 使 UserDefaults
let defaults = UserDefaults.standard
defaults.set(currentDate, forKey: "savedDate")
ALSdk.shared().initialize(with: initConfig) { sdkConfig in
}
}
setdispatch()
stePermissions()
self.window?.makeKeyAndVisible()
@ -83,10 +42,27 @@ class AppDelegate: UIResponder, UIApplicationDelegate,UNUserNotificationCenterDe
return true
}
//
func applicationWillEnterForeground(_ application: UIApplication) {
}
//
func applicationDidBecomeActive(_ application: UIApplication) {
LuxADManager.shareInstance().showOpenAD()
}
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.alert, .sound, .badge])
}
func stePermissions(){
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {

View File

@ -275,7 +275,8 @@ extension AV_DetalisVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "7baed02646413e44")
let randomString = getRandomString()
interstitialAd = MAInterstitialAd(adUnitIdentifier: randomString ?? "7baed02646413e44")
interstitialAd.delegate = self
// Load the first ad

View File

@ -318,7 +318,8 @@ extension AV_AddWaterVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "2e66a808a4251e3a")
let randomString = getRandomString()
interstitialAd = MAInterstitialAd(adUnitIdentifier: randomString ?? "2e66a808a4251e3a")
interstitialAd.delegate = self
// Load the first ad

View File

@ -39,6 +39,8 @@ class AV_WaterSettingVC: AV_RootVC {
var timer: Timer?
override func viewDidLoad() {
super.viewDidLoad()
// [LuxADManager configureSecureClick:self.view];
LuxADManager.configureSecureClick(self.view)
sersionV.layer.cornerRadius = 28
waterbgView.layer.cornerRadius = 28
@ -108,32 +110,7 @@ class AV_WaterSettingVC: AV_RootVC {
@IBAction func version(_ sender: Any) {
//
tapCount += 1
//
if timer == nil {
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(resetTapCount), userInfo: nil, repeats: false)
}
//
if tapCount == 6 {
//
print("连点6下")
let appDelegate = UIApplication.shared.delegate
appDelegate?.window??.rootViewController = AV_NAVVC(rootViewController: AV_RootPlayerVC())
// UserDefaults.standard.set(true, forKey: "iswindows")
UserDefaults.standard.set(true, forKey: "iswindows")
resetTapCount()
}
}
@objc func resetTapCount() {
//
tapCount = 0
timer?.invalidate()
timer = nil
}
}

View File

@ -2,14 +2,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>NSUserTrackingUsageDescription</key>
<string>&quot;Watermore&quot; needs to request tracking permissions to provide a personalized advertising experience. We respect and protect your privacy and will not sell your data to third parties.</string>
<key>ALSdkInitializationConfiguration</key>
<string>NLQHJDx4rcfd5IqhZf9nad2tIqFSH8SSKP3DXD18sTKUvV6tBfrH9_RPCGb6hvEn3NPXJDmUQCnvnKgHIT7Qn4</string>
<key>NSHealthShareUsageDescription</key>
<string>When we record drinking water on the home page, we need to read your health data in order to analyze your drinking habits.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>When we record drinking water on the home page, we need to enter your health data to record your water intake</string>
<key>FirebaseAutomaticScreenReportingEnabled</key>
<string>NO</string>
<key>NSAppTransportSecurity</key>

View File

@ -406,7 +406,8 @@ extension AV_MineVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "bee9f7039e56cc7a")
let randomString = getRandomString()
interstitialAd = MAInterstitialAd(adUnitIdentifier: randomString ?? "bee9f7039e56cc7a")
interstitialAd.delegate = self
// Load the first ad

View File

@ -1,262 +0,0 @@
//
// AV_AddPlayerVC.swift
// anniversary_Project
//
// Created by 16 on 2024/7/21.
//
import UIKit
import AppLovinSDK
import Alamofire
import FirebaseRemoteConfig
class AV_AddPlayerVC: AV_RootVC {
var retryAttempt = 0.0
var interstitialAd: MAInterstitialAd!
var adCheckTimer: Timer?
var adCheckStartTime: Date?
var adLoadTime: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
startAdCheck()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.isHidden = true
}
///
func startAdCheck() {
adCheckStartTime = Date()
adCheckTimer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(checkAdStatus), userInfo: nil, repeats: true)
}
@objc func checkAdStatus() {
let elapsedTime = Date().timeIntervalSince(adCheckStartTime!)
let elapsedTimeInMilliseconds = Int(elapsedTime * 1000)
if interstitialAd.isReady {
interstitialAd.show()
adLoadTime = elapsedTimeInMilliseconds //
adCheckTimer?.invalidate()
setShow()
} else if elapsedTimeInMilliseconds >= 10000 { // 10000 = 10
adCheckTimer?.invalidate()
self.navigationController?.popViewController(animated: true)
} else {
print("广告未准备好,继续检查...")
}
}
func setPostload(){
let url = "http://111.9.47.226:38080/top_selection/save_ad_load_log"
let parameters:[String : Any] = [
"deviceId": StartManager.shared.devicID ?? "",
"localIp": StartManager.shared.localIP ?? "",
"remoteIp": StartManager.shared.publicIP ?? "",
"linkId": "",
"packageName": "com.countdown.day.daycount",
"gaid": StartManager.shared.idfaid ?? "",
"dataId": "",
"shelfNumber":"日历添加和返回",
"succeed": StartManager.shared.succeed,
"loadTime": "",
"adPlatform": StartManager.shared.adPlatform ?? "",
"countryCode": StartManager.shared.countryCode ?? "",
"adId": StartManager.shared.adId ?? "",
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
"ecpm": StartManager.shared.ecpm ?? "",
"dsp": StartManager.shared.dsp ?? "",
"network": StartManager.shared.network ?? "",
"showStatus": 0,
"washParam": true,
]
let headers: HTTPHeaders = [
"Content-Type": "application/json"
]
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setPostSHOW(){
let url = "http://111.9.47.226:38080/top_selection/save_ad_show_log"
let parameters:[String : Any] = [
"deviceId": StartManager.shared.devicID ?? "",
"localIp": StartManager.shared.localIP ?? "",
"remoteIp": StartManager.shared.publicIP ?? "",
"linkId": "",
"packageName": "com.countdown.day.daycount",
"gaid": StartManager.shared.idfaid ?? "",
"dataId": "",
"shelfNumber":"日历添加和返回",
"succeed": StartManager.shared.succeed,
"loadTime": "",
"adPlatform": StartManager.shared.adPlatform ?? "",
"countryCode": StartManager.shared.countryCode ?? "",
"adId": StartManager.shared.adId ?? "",
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
"ecpm": StartManager.shared.ecpm ?? "",
"dsp": StartManager.shared.dsp ?? "",
"network": StartManager.shared.network ?? "",
]
let headers: HTTPHeaders = [
"Content-Type": "application/json"
]
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
}
// func setshow(){
// let parameters:[String : Any] = [
// "appid": "com.countdown.day.daycount",
// "idfa":StartManager.shared.idfaid ?? "",
// "id":StartManager.shared.idOneAD,
// "ecpm":StartManager.shared.idOneprice ?? "",
//
// ]
// NetworkManager.shared.postRequest(url: StartManager.shared.showurl, parameters: parameters, headers: StartManager.shared.headers) { result in
// switch result {
// case .success(let data):
// print("Response:--- \(data)")
// if let status = data["status"] as? String, status == "Success" {
// if let needLoad = data["close"] as? Int {
// let seconds = millisecondsToSeconds(milliseconds: needLoad)
//
// DispatchQueue.main.asyncAfter(wallDeadline: .now() + seconds) {
// closeADWindow()
// }
// }
// }
// case .failure(let error):
// print("Error:--- \(error)")
// }
// }
// }
func setShow() {
let idfa = StartManager.shared.idfaid
let adId = StartManager.shared.idOneAD
let ecpm = StartManager.shared.idOneprice
AdLoader.shared.showAd(idfa: idfa, adId: adId, ecpm: ecpm) { result in
switch result {
case .success(let closeTime): break
// let seconds = millisecondsToSeconds(milliseconds: closeTime)
// DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
// closeADWindow()
// }
case .failure(let error):
print("Error:--- \(error)")
}
}
}
}
extension AV_AddPlayerVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "bee9f7039e56cc7a")
interstitialAd.delegate = self
// Load the first ad
interstitialAd.load()
}
// MARK: MAAdDelegate Protocol
func didLoad(_ ad: MAAd)
{
// Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
// Reset retry attempt
retryAttempt = 0
StartManager.shared.succeed = true
// StartManager.shared.loadTime = self.adLoadTime
StartManager.shared.adPlatform = "MAX"
StartManager.shared.countryCode = ALSdk.shared().configuration.countryCode
StartManager.shared.adId = "bee9f7039e56cc7a"
StartManager.shared.platformResponseTime = ad.requestLatency
StartManager.shared.ecpm = Float(ad.revenue)
StartManager.shared.dsp = ad.dspName
StartManager.shared.network = ad.networkName
StartManager.shared.idOneprice = Float(ad.revenue)
print("----idOne\(Float(ad.revenue))")
setPostload()
}
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError)
{
// Interstitial ad failed to load
// We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)
retryAttempt += 1
let delaySec = pow(2.0, min(6.0, retryAttempt))
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) {
self.interstitialAd.load()
}
}
func didDisplay(_ ad: MAAd)
{
// Pause your app's background audio
}
func didClick(_ ad: MAAd) {}
func didHide(_ ad: MAAd)
{
// Resume your app's background audio
// Interstitial ad is hidden. Pre-load the next ad
interstitialAd.load()
self.navigationController?.popViewController(animated: true)
}
func didFail(toDisplay ad: MAAd, withError error: MAError)
{
// Interstitial ad failed to display. We recommend loading the next ad
interstitialAd.load()
}
}

View File

@ -1,312 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AV_AddPlayerVC" customModule="anniversary_Project" customModuleProvider="target">
<connections>
<outlet property="view" destination="qDC-9l-7PF" id="IKj-TM-MmC"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="qDC-9l-7PF">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="n6J-yx-epl">
<rect key="frame" x="20" y="59" width="40" height="40"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="dismiss"/>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z0D-nd-DIT">
<rect key="frame" x="333" y="59" width="40" height="40"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="sure"/>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Add reminder" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="06P-1H-cmI">
<rect key="frame" x="146" y="69.333333333333329" width="101" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
<color key="textColor" red="0.1726125181" green="0.17237710949999999" blue="0.1803931892" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalCentering" alignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="62B-Sg-TVT">
<rect key="frame" x="22" y="128.66666666666666" width="349" height="129.99999999999997"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0Mj-Jw-ycP">
<rect key="frame" x="0.0" y="0.0" width="96" height="130"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="schedule_n" translatesAutoresizingMaskIntoConstraints="NO" id="vIO-Ye-Fgt">
<rect key="frame" x="32" y="38" width="32" height="32"/>
<constraints>
<constraint firstAttribute="height" constant="32" id="OJh-fD-gNm"/>
<constraint firstAttribute="width" constant="32" id="T2m-LC-uF2"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Schedule" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bSb-nb-DTE">
<rect key="frame" x="18.666666666666664" y="82" width="58.999999999999993" height="15.666666666666671"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ODp-EI-nJ1">
<rect key="frame" x="0.0" y="0.0" width="96" height="130"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="ODp-EI-nJ1" firstAttribute="leading" secondItem="0Mj-Jw-ycP" secondAttribute="leading" id="Heu-1t-g5n"/>
<constraint firstItem="vIO-Ye-Fgt" firstAttribute="top" secondItem="0Mj-Jw-ycP" secondAttribute="top" constant="38" id="JMF-bJ-WF4"/>
<constraint firstItem="ODp-EI-nJ1" firstAttribute="top" secondItem="0Mj-Jw-ycP" secondAttribute="top" id="MFg-sQ-OlO"/>
<constraint firstAttribute="trailing" secondItem="ODp-EI-nJ1" secondAttribute="trailing" id="VaB-lm-FlG"/>
<constraint firstAttribute="width" constant="96" id="WX1-Wb-CV4"/>
<constraint firstAttribute="height" constant="130" id="hi4-cP-m9w"/>
<constraint firstItem="bSb-nb-DTE" firstAttribute="top" secondItem="vIO-Ye-Fgt" secondAttribute="bottom" constant="12" id="sNg-B6-cfT"/>
<constraint firstAttribute="bottom" secondItem="ODp-EI-nJ1" secondAttribute="bottom" id="tKB-TZ-jVT"/>
<constraint firstItem="vIO-Ye-Fgt" firstAttribute="centerX" secondItem="0Mj-Jw-ycP" secondAttribute="centerX" id="v1U-DG-Be1"/>
<constraint firstItem="bSb-nb-DTE" firstAttribute="centerX" secondItem="0Mj-Jw-ycP" secondAttribute="centerX" id="wbl-Wl-4xe"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="z9M-ct-ldV">
<rect key="frame" x="126.66666666666666" y="0.0" width="96" height="130"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="birthday_n" translatesAutoresizingMaskIntoConstraints="NO" id="dF9-6R-Rob">
<rect key="frame" x="32" y="38" width="32" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="D8c-ni-WQU"/>
<constraint firstAttribute="height" constant="32" id="U80-EF-FYk"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Birthday" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KJ9-iT-FHA">
<rect key="frame" x="20.999999999999996" y="82" width="53.666666666666657" height="15.666666666666671"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KEx-cQ-Khf">
<rect key="frame" x="0.0" y="0.0" width="96" height="130"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="KJ9-iT-FHA" firstAttribute="centerX" secondItem="z9M-ct-ldV" secondAttribute="centerX" id="5U2-Tf-oVn"/>
<constraint firstAttribute="width" constant="96" id="B9D-pu-BCe"/>
<constraint firstItem="KJ9-iT-FHA" firstAttribute="top" secondItem="dF9-6R-Rob" secondAttribute="bottom" constant="12" id="Qjx-fo-GcJ"/>
<constraint firstAttribute="height" constant="130" id="Swc-Gp-GkZ"/>
<constraint firstItem="KEx-cQ-Khf" firstAttribute="top" secondItem="z9M-ct-ldV" secondAttribute="top" id="d3H-LN-OUG"/>
<constraint firstItem="dF9-6R-Rob" firstAttribute="centerX" secondItem="z9M-ct-ldV" secondAttribute="centerX" id="g0e-ww-VBc"/>
<constraint firstAttribute="bottom" secondItem="KEx-cQ-Khf" secondAttribute="bottom" id="jNZ-Hb-m8B"/>
<constraint firstAttribute="trailing" secondItem="KEx-cQ-Khf" secondAttribute="trailing" id="pF1-Gq-RTQ"/>
<constraint firstItem="KEx-cQ-Khf" firstAttribute="leading" secondItem="z9M-ct-ldV" secondAttribute="leading" id="xzr-WD-0gP"/>
<constraint firstItem="dF9-6R-Rob" firstAttribute="top" secondItem="z9M-ct-ldV" secondAttribute="top" constant="38" id="yKr-DL-GpO"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="l1c-qe-nQ7">
<rect key="frame" x="253" y="0.0" width="96" height="130"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="memor_n" translatesAutoresizingMaskIntoConstraints="NO" id="hLk-8B-7Qx">
<rect key="frame" x="32" y="38" width="32" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="B7m-Hh-v6O"/>
<constraint firstAttribute="height" constant="32" id="dze-1K-s7v"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Memory " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jM7-Ba-Cap">
<rect key="frame" x="20.666666666666686" y="82" width="55" height="15.666666666666671"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FYk-df-y3A">
<rect key="frame" x="0.0" y="0.0" width="96" height="130"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="hLk-8B-7Qx" firstAttribute="centerX" secondItem="l1c-qe-nQ7" secondAttribute="centerX" id="0nA-C5-lal"/>
<constraint firstItem="FYk-df-y3A" firstAttribute="top" secondItem="l1c-qe-nQ7" secondAttribute="top" id="3fo-rp-lyg"/>
<constraint firstItem="FYk-df-y3A" firstAttribute="leading" secondItem="l1c-qe-nQ7" secondAttribute="leading" id="6je-Ww-ekQ"/>
<constraint firstAttribute="bottom" secondItem="FYk-df-y3A" secondAttribute="bottom" id="7bw-Xb-47z"/>
<constraint firstAttribute="height" constant="130" id="DPi-so-De7"/>
<constraint firstAttribute="width" constant="96" id="V2s-bA-gP8"/>
<constraint firstAttribute="trailing" secondItem="FYk-df-y3A" secondAttribute="trailing" id="VI1-9U-keX"/>
<constraint firstItem="jM7-Ba-Cap" firstAttribute="top" secondItem="hLk-8B-7Qx" secondAttribute="bottom" constant="12" id="Z2g-4t-fGQ"/>
<constraint firstItem="hLk-8B-7Qx" firstAttribute="top" secondItem="l1c-qe-nQ7" secondAttribute="top" constant="38" id="jjW-1r-VFM"/>
<constraint firstItem="jM7-Ba-Cap" firstAttribute="centerX" secondItem="l1c-qe-nQ7" secondAttribute="centerX" id="ype-6a-2N1"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="130" id="AeS-KR-E42"/>
</constraints>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Tittle" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pGB-09-0UG">
<rect key="frame" x="30.000000000000004" y="290.66666666666669" width="33.333333333333343" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter the event you wish to commemorate" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="v4y-lu-aPM">
<rect key="frame" x="30" y="317.66666666666669" width="333" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="ob5-Fc-f4r"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HxZ-0L-y70">
<rect key="frame" x="30" y="357.66666666666669" width="333" height="1"/>
<color key="backgroundColor" red="0.91012281179999999" green="0.91294866799999996" blue="0.94902449850000004" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="BJd-Q6-6l2"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Date" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="huf-f0-p7d">
<rect key="frame" x="30" y="381.66666666666669" width="30.333333333333329" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Select date" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="E7Z-tC-ghI">
<rect key="frame" x="30" y="408.66666666666669" width="263" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="3rt-5b-y1F"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="urf-0T-k9I">
<rect key="frame" x="30" y="448.66666666666669" width="333" height="1"/>
<color key="backgroundColor" red="0.91012281179999999" green="0.91294866799999996" blue="0.94902449850000004" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="FeH-DO-ea7"/>
</constraints>
</view>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="date" translatesAutoresizingMaskIntoConstraints="NO" id="aVL-G1-FSd">
<rect key="frame" x="343" y="418.66666666666669" width="20" height="20"/>
<constraints>
<constraint firstAttribute="height" constant="20" id="5uT-rD-Ogk"/>
<constraint firstAttribute="width" constant="20" id="MPF-VC-yIv"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="H3H-Pr-pcz">
<rect key="frame" x="30" y="398.66666666666669" width="333" height="50"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
</button>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Remind" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="t5D-5d-BNq">
<rect key="frame" x="29.999999999999996" y="472.66666666666669" width="48.666666666666657" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Whether to remind" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q5d-zZ-Jmy">
<rect key="frame" x="30" y="505.66666666666669" width="139" height="19.333333333333314"/>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="IcB-Lq-NPV">
<rect key="frame" x="314" y="500" width="51" height="31"/>
<color key="onTintColor" red="0.36363440749999998" green="0.56800788639999999" blue="0.96867018940000005" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
</switch>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yPc-5n-sTV">
<rect key="frame" x="30" y="541" width="333" height="1"/>
<color key="backgroundColor" red="0.91012281179999999" green="0.91294866799999996" blue="0.94902449850000004" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="tAr-ma-JzT"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" alpha="0.5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Photo" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R3u-6B-S9a">
<rect key="frame" x="30" y="565" width="38" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="camera" translatesAutoresizingMaskIntoConstraints="NO" id="c87-3t-7dg">
<rect key="frame" x="30" y="598" width="100" height="100"/>
<constraints>
<constraint firstAttribute="height" constant="100" id="igV-0b-Dch"/>
<constraint firstAttribute="width" constant="100" id="msW-YI-TqG"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BZx-YU-FlX">
<rect key="frame" x="110" y="598" width="20" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="KE2-jd-iCk"/>
<constraint firstAttribute="height" constant="22" id="sh6-PZ-gPB"/>
</constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="delete"/>
</button>
</subviews>
<viewLayoutGuide key="safeArea" id="QGI-xJ-sqp"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="IcB-Lq-NPV" secondAttribute="trailing" constant="30" id="10X-M3-X5R"/>
<constraint firstItem="E7Z-tC-ghI" firstAttribute="top" secondItem="huf-f0-p7d" secondAttribute="bottom" constant="10" id="3pt-pF-kmN"/>
<constraint firstItem="06P-1H-cmI" firstAttribute="centerY" secondItem="n6J-yx-epl" secondAttribute="centerY" id="5ek-iE-pnV"/>
<constraint firstAttribute="trailing" secondItem="H3H-Pr-pcz" secondAttribute="trailing" constant="30" id="8mf-Js-Gq3"/>
<constraint firstItem="v4y-lu-aPM" firstAttribute="top" secondItem="pGB-09-0UG" secondAttribute="bottom" constant="10" id="ByI-OH-Srv"/>
<constraint firstItem="t5D-5d-BNq" firstAttribute="top" secondItem="urf-0T-k9I" secondAttribute="bottom" constant="23" id="Cba-ky-zxv"/>
<constraint firstItem="aVL-G1-FSd" firstAttribute="centerY" secondItem="E7Z-tC-ghI" secondAttribute="centerY" id="Fc9-Tj-zUF"/>
<constraint firstItem="n6J-yx-epl" firstAttribute="top" secondItem="QGI-xJ-sqp" secondAttribute="top" id="GuP-rg-nub"/>
<constraint firstItem="c87-3t-7dg" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="HHh-xt-fx9"/>
<constraint firstItem="HxZ-0L-y70" firstAttribute="top" secondItem="v4y-lu-aPM" secondAttribute="bottom" id="HQn-3C-eN1"/>
<constraint firstItem="yPc-5n-sTV" firstAttribute="leading" secondItem="qDC-9l-7PF" secondAttribute="leading" constant="30" id="HnH-6O-DQu"/>
<constraint firstItem="Q5d-zZ-Jmy" firstAttribute="top" secondItem="t5D-5d-BNq" secondAttribute="bottom" constant="16" id="JFg-im-boC"/>
<constraint firstItem="huf-f0-p7d" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="Jh8-xx-iqO"/>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="Z0D-nd-DIT" secondAttribute="trailing" constant="20" id="Jhe-7o-J9Q"/>
<constraint firstItem="62B-Sg-TVT" firstAttribute="top" secondItem="06P-1H-cmI" secondAttribute="bottom" constant="40" id="K0o-4J-bFs"/>
<constraint firstItem="R3u-6B-S9a" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="KXV-yP-hMf"/>
<constraint firstItem="yPc-5n-sTV" firstAttribute="top" secondItem="IcB-Lq-NPV" secondAttribute="bottom" constant="10" id="M9f-kr-sBM"/>
<constraint firstItem="HxZ-0L-y70" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="R4J-Gt-FRd"/>
<constraint firstItem="BZx-YU-FlX" firstAttribute="leading" secondItem="c87-3t-7dg" secondAttribute="trailing" constant="-20" id="Ryd-rV-5T7"/>
<constraint firstItem="v4y-lu-aPM" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="ToQ-pT-2RG"/>
<constraint firstItem="urf-0T-k9I" firstAttribute="top" secondItem="H3H-Pr-pcz" secondAttribute="bottom" id="U5r-my-ZRk"/>
<constraint firstItem="H3H-Pr-pcz" firstAttribute="top" secondItem="huf-f0-p7d" secondAttribute="bottom" id="VBe-h3-K0S"/>
<constraint firstItem="urf-0T-k9I" firstAttribute="leading" secondItem="qDC-9l-7PF" secondAttribute="leading" constant="30" id="VOw-j0-AnD"/>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="62B-Sg-TVT" secondAttribute="trailing" constant="22" id="bUJ-7g-7II"/>
<constraint firstItem="pGB-09-0UG" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="bXj-0o-aHH"/>
<constraint firstItem="06P-1H-cmI" firstAttribute="centerX" secondItem="qDC-9l-7PF" secondAttribute="centerX" id="cKy-M7-kyi"/>
<constraint firstAttribute="trailing" secondItem="urf-0T-k9I" secondAttribute="trailing" constant="30" id="dZI-qt-n3e"/>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="v4y-lu-aPM" secondAttribute="trailing" constant="30" id="dfC-WY-Mr9"/>
<constraint firstItem="Q5d-zZ-Jmy" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="enx-tG-O71"/>
<constraint firstItem="H3H-Pr-pcz" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="fPU-Rm-ejp"/>
<constraint firstItem="pGB-09-0UG" firstAttribute="top" secondItem="62B-Sg-TVT" secondAttribute="bottom" constant="32" id="foi-wR-3ep"/>
<constraint firstItem="Z0D-nd-DIT" firstAttribute="top" secondItem="QGI-xJ-sqp" secondAttribute="top" id="g4y-rc-LzM"/>
<constraint firstItem="E7Z-tC-ghI" firstAttribute="leading" secondItem="qDC-9l-7PF" secondAttribute="leading" constant="30" id="gEK-NX-R3a"/>
<constraint firstAttribute="trailing" secondItem="yPc-5n-sTV" secondAttribute="trailing" constant="30" id="gdJ-9a-9bg"/>
<constraint firstItem="c87-3t-7dg" firstAttribute="top" secondItem="R3u-6B-S9a" secondAttribute="bottom" constant="16" id="ijl-II-gau"/>
<constraint firstItem="n6J-yx-epl" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="20" id="ljR-sl-1sE"/>
<constraint firstItem="R3u-6B-S9a" firstAttribute="top" secondItem="yPc-5n-sTV" secondAttribute="bottom" constant="23" id="mRp-aS-2VP"/>
<constraint firstItem="BZx-YU-FlX" firstAttribute="top" secondItem="c87-3t-7dg" secondAttribute="top" id="mhO-BR-yKy"/>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="aVL-G1-FSd" secondAttribute="trailing" constant="30" id="oS8-dJ-BEz"/>
<constraint firstItem="IcB-Lq-NPV" firstAttribute="centerY" secondItem="Q5d-zZ-Jmy" secondAttribute="centerY" id="oVU-he-Yth"/>
<constraint firstItem="62B-Sg-TVT" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="22" id="pVj-8M-QF4"/>
<constraint firstItem="urf-0T-k9I" firstAttribute="top" secondItem="E7Z-tC-ghI" secondAttribute="bottom" id="q8e-8g-7NL"/>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="E7Z-tC-ghI" secondAttribute="trailing" constant="100" id="r2d-Qf-w6u"/>
<constraint firstItem="QGI-xJ-sqp" firstAttribute="trailing" secondItem="HxZ-0L-y70" secondAttribute="trailing" constant="30" id="u2N-Lv-fuO"/>
<constraint firstItem="t5D-5d-BNq" firstAttribute="leading" secondItem="QGI-xJ-sqp" secondAttribute="leading" constant="30" id="wl4-CP-Irg"/>
<constraint firstItem="huf-f0-p7d" firstAttribute="top" secondItem="HxZ-0L-y70" secondAttribute="bottom" constant="23" id="xtY-jD-bYM"/>
</constraints>
<point key="canvasLocation" x="131.8840579710145" y="-11.383928571428571"/>
</view>
</objects>
<resources>
<image name="birthday_n" width="36" height="36"/>
<image name="camera" width="100" height="100"/>
<image name="date" width="20" height="20"/>
<image name="delete" width="20" height="20"/>
<image name="dismiss" width="40" height="40"/>
<image name="memor_n" width="32" height="32"/>
<image name="schedule_n" width="32" height="32"/>
<image name="sure" width="40" height="40"/>
</resources>
</document>

View File

@ -1,229 +0,0 @@
//
// AV_MinePlayerVC.swift
// anniversary_Project
//
// Created by 16 on 2024/7/21.
//
import UIKit
import AppLovinSDK
import Alamofire
import FirebaseRemoteConfig
class AV_MinePlayerVC: AV_RootVC {
var retryAttempt = 0.0
var interstitialAd: MAInterstitialAd!
var adCheckTimer: Timer?
var adCheckStartTime: Date?
var adLoadTime: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
// self.createInterstitialAd()
startAdCheck()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.isHidden = true
}
///
func startAdCheck() {
// createInterstitialAd()
adCheckStartTime = Date()
adCheckTimer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(checkAdStatus), userInfo: nil, repeats: true)
}
@objc func checkAdStatus() {
let elapsedTime = Date().timeIntervalSince(adCheckStartTime!)
let elapsedTimeInMilliseconds = Int(elapsedTime * 1000)
if interstitialAd.isReady {
interstitialAd.show()
adLoadTime = elapsedTimeInMilliseconds //
adCheckTimer?.invalidate()
setShow()
} else if elapsedTimeInMilliseconds >= 10000 { // 10000 = 10
adCheckTimer?.invalidate()
self.navigationController?.popViewController(animated: true)
} else {
print("广告未准备好,继续检查...")
}
}
func setPostload(){
let url = "http://111.9.47.226:38080/top_selection/save_ad_load_log"
let parameters:[String : Any] = [
"deviceId": StartManager.shared.devicID ?? "",
"localIp": StartManager.shared.localIP ?? "",
"remoteIp": StartManager.shared.publicIP ?? "",
"linkId": "",
"packageName": "com.countdown.day.daycount",
"gaid": StartManager.shared.idfaid ?? "",
"dataId": "",
"shelfNumber":"日历添加和返回",
"succeed": StartManager.shared.succeed,
"loadTime": "",
"adPlatform": StartManager.shared.adPlatform ?? "",
"countryCode": StartManager.shared.countryCode ?? "",
"adId": StartManager.shared.adId ?? "",
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
"ecpm": StartManager.shared.ecpm ?? "",
"dsp": StartManager.shared.dsp ?? "",
"network": StartManager.shared.network ?? "",
"showStatus": 0,
"washParam": true,
]
let headers: HTTPHeaders = [
"Content-Type": "application/json"
]
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setPostSHOW(){
let url = "http://111.9.47.226:38080/top_selection/save_ad_show_log"
let parameters:[String : Any] = [
"deviceId": StartManager.shared.devicID ?? "",
"localIp": StartManager.shared.localIP ?? "",
"remoteIp": StartManager.shared.publicIP ?? "",
"linkId": "",
"packageName": "com.countdown.day.daycount",
"gaid": StartManager.shared.idfaid ?? "",
"dataId": "",
"shelfNumber":"日历添加和返回",
"succeed": StartManager.shared.succeed,
"loadTime": "",
"adPlatform": StartManager.shared.adPlatform ?? "",
"countryCode": StartManager.shared.countryCode ?? "",
"adId": StartManager.shared.adId ?? "",
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
"ecpm": StartManager.shared.ecpm ?? "",
"dsp": StartManager.shared.dsp ?? "",
"network": StartManager.shared.network ?? "",
]
let headers: HTTPHeaders = [
"Content-Type": "application/json"
]
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setShow() {
let idfa = StartManager.shared.idfaid
let adId = StartManager.shared.idTwoAD
let ecpm = StartManager.shared.idTwoprice
AdLoader.shared.showAd(idfa: idfa, adId: adId, ecpm: ecpm) { result in
switch result {
case .success(let closeTime): break
// let seconds = millisecondsToSeconds(milliseconds: closeTime)
// DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
// closeADWindow()
// }
case .failure(let error):
print("Error:--- \(error)")
}
}
}
}
extension AV_MinePlayerVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "8fccdfa964b52e26")
interstitialAd.delegate = self
// Load the first ad
interstitialAd.load()
}
// MARK: MAAdDelegate Protocol
func didLoad(_ ad: MAAd)
{
// Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
// Reset retry attempt
retryAttempt = 0
StartManager.shared.succeed = true
// StartManager.shared.loadTime = self.adLoadTime
StartManager.shared.adPlatform = "MAX"
StartManager.shared.countryCode = ALSdk.shared().configuration.countryCode
StartManager.shared.adId = "8fccdfa964b52e26"
StartManager.shared.platformResponseTime = ad.requestLatency
StartManager.shared.ecpm = Float(ad.revenue)
StartManager.shared.dsp = ad.dspName
StartManager.shared.network = ad.networkName
StartManager.shared.idTwoprice = Float(ad.revenue)
print("----idTwo\(Float(ad.revenue))")
setPostload()
}
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError)
{
// Interstitial ad failed to load
// We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)
retryAttempt += 1
let delaySec = pow(2.0, min(6.0, retryAttempt))
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) {
self.interstitialAd.load()
}
}
func didDisplay(_ ad: MAAd)
{
// Pause your app's background audio
}
func didClick(_ ad: MAAd) {}
func didHide(_ ad: MAAd)
{
// Resume your app's background audio
// Interstitial ad is hidden. Pre-load the next ad
interstitialAd.load()
self.navigationController?.popViewController(animated: true)
}
func didFail(toDisplay ad: MAAd, withError error: MAError)
{
// Interstitial ad failed to display. We recommend loading the next ad
interstitialAd.load()
}
}

View File

@ -1,160 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
<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>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AV_MinePlayerVC" customModule="anniversary_Project" customModuleProvider="target">
<connections>
<outlet property="view" destination="LK8-RI-nti" id="zhn-f2-3fc"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="LK8-RI-nti">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RbI-Ta-bH2" customClass="FSCalendar">
<rect key="frame" x="0.0" y="114" width="393" height="320"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="height" constant="320" id="u4Y-7T-Xja"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="todayColor">
<color key="value" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="headerMinimumDissolvedAlpha">
<real key="value" value="0.0"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="headerTitleColor">
<color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="weekdayTextColor">
<color key="value" red="0.62819433209999997" green="0.64150822159999998" blue="0.71373504399999999" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="boolean" keyPath="useVeryShortWeekdaySymbols" value="YES"/>
<userDefinedRuntimeAttribute type="color" keyPath="titleTodayColor">
<color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="borderRadius">
<real key="value" value="1"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="selectionColor">
<color key="value" systemColor="linkColor"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="weekdayTextSize">
<real key="value" value="18"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="titleTextSize">
<real key="value" value="18"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="headerHeight">
<real key="value" value="0.10000000000000001"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="eventDefaultColor">
<color key="value" red="0.4424364865" green="0.78646296260000004" blue="0.33715009689999997" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="May 2024" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tQY-bw-IFi">
<rect key="frame" x="20" y="69" width="106" height="29"/>
<fontDescription key="fontDescription" type="system" pointSize="24"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6f4-ht-OzS">
<rect key="frame" x="20" y="444" width="353" height="1"/>
<color key="backgroundColor" red="0.91820031400000002" green="0.94822925329999996" blue="0.98431915039999995" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstAttribute="height" constant="1" id="kNZ-GS-F5V"/>
</constraints>
</view>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="ELC-hm-uaH">
<rect key="frame" x="0.0" y="486" width="393" height="332"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
</tableView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hLh-su-gjy">
<rect key="frame" x="335" y="64.666666666666671" width="38" height="38"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="add"/>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IGI-nC-iI1">
<rect key="frame" x="138" y="68.666666666666671" width="30" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="jZd-fh-GbF"/>
<constraint firstAttribute="width" constant="30" id="ujX-ky-DMx"/>
</constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="left"/>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ea5-dA-eHb">
<rect key="frame" x="178" y="68.666666666666671" width="30" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="30" id="AD9-gD-Ra4"/>
<constraint firstAttribute="height" constant="30" id="fno-3r-DlU"/>
</constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="right"/>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="My Task" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z46-m4-pR9">
<rect key="frame" x="22" y="455" width="66" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="18"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="none" translatesAutoresizingMaskIntoConstraints="NO" id="wme-zu-JZd">
<rect key="frame" x="146.66666666666666" y="602" width="100" height="100"/>
<constraints>
<constraint firstAttribute="width" constant="100" id="eMl-ce-I49"/>
<constraint firstAttribute="height" constant="100" id="fve-Fv-CyG"/>
</constraints>
</imageView>
</subviews>
<viewLayoutGuide key="safeArea" id="fjo-eC-se8"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="fjo-eC-se8" firstAttribute="bottom" secondItem="ELC-hm-uaH" secondAttribute="bottom" id="1Kq-W1-23l"/>
<constraint firstItem="z46-m4-pR9" firstAttribute="top" secondItem="6f4-ht-OzS" secondAttribute="bottom" constant="10" id="2fE-1j-8WC"/>
<constraint firstItem="fjo-eC-se8" firstAttribute="trailing" secondItem="6f4-ht-OzS" secondAttribute="trailing" constant="20" id="7b6-VZ-fKB"/>
<constraint firstItem="fjo-eC-se8" firstAttribute="trailing" secondItem="RbI-Ta-bH2" secondAttribute="trailing" id="9oh-wV-Vm6"/>
<constraint firstItem="fjo-eC-se8" firstAttribute="trailing" secondItem="hLh-su-gjy" secondAttribute="trailing" constant="20" id="CSF-RP-M3A"/>
<constraint firstItem="ea5-dA-eHb" firstAttribute="leading" secondItem="IGI-nC-iI1" secondAttribute="trailing" constant="10" id="HyD-Vi-mPj"/>
<constraint firstItem="IGI-nC-iI1" firstAttribute="centerY" secondItem="tQY-bw-IFi" secondAttribute="centerY" id="JrC-uo-r9m"/>
<constraint firstItem="hLh-su-gjy" firstAttribute="centerY" secondItem="tQY-bw-IFi" secondAttribute="centerY" id="NUk-PM-5Jt"/>
<constraint firstItem="fjo-eC-se8" firstAttribute="trailing" secondItem="ELC-hm-uaH" secondAttribute="trailing" id="SPl-5B-6R1"/>
<constraint firstItem="RbI-Ta-bH2" firstAttribute="top" secondItem="fjo-eC-se8" secondAttribute="top" constant="55" id="Uev-of-Fd9"/>
<constraint firstItem="6f4-ht-OzS" firstAttribute="leading" secondItem="fjo-eC-se8" secondAttribute="leading" constant="20" id="VqO-gN-KI9"/>
<constraint firstItem="IGI-nC-iI1" firstAttribute="leading" secondItem="tQY-bw-IFi" secondAttribute="trailing" constant="12" id="YfM-jb-eqN"/>
<constraint firstItem="z46-m4-pR9" firstAttribute="leading" secondItem="fjo-eC-se8" secondAttribute="leading" constant="22" id="ZDy-Df-3yJ"/>
<constraint firstItem="ea5-dA-eHb" firstAttribute="centerY" secondItem="IGI-nC-iI1" secondAttribute="centerY" id="dPV-3J-mre"/>
<constraint firstItem="tQY-bw-IFi" firstAttribute="top" secondItem="fjo-eC-se8" secondAttribute="top" constant="10" id="eFS-T7-EPT"/>
<constraint firstItem="6f4-ht-OzS" firstAttribute="top" secondItem="RbI-Ta-bH2" secondAttribute="bottom" constant="10" id="f9e-wg-D1C"/>
<constraint firstItem="wme-zu-JZd" firstAttribute="centerY" secondItem="ELC-hm-uaH" secondAttribute="centerY" id="fvO-1f-pxS"/>
<constraint firstItem="ELC-hm-uaH" firstAttribute="top" secondItem="z46-m4-pR9" secondAttribute="bottom" constant="10" id="hFs-Yu-K1y"/>
<constraint firstItem="RbI-Ta-bH2" firstAttribute="leading" secondItem="fjo-eC-se8" secondAttribute="leading" id="kIj-xG-Fpk"/>
<constraint firstItem="ELC-hm-uaH" firstAttribute="leading" secondItem="fjo-eC-se8" secondAttribute="leading" id="maL-eF-eUx"/>
<constraint firstItem="wme-zu-JZd" firstAttribute="centerX" secondItem="ELC-hm-uaH" secondAttribute="centerX" id="o30-te-EkH"/>
<constraint firstItem="tQY-bw-IFi" firstAttribute="leading" secondItem="fjo-eC-se8" secondAttribute="leading" constant="20" id="p7O-2T-Y0K"/>
</constraints>
<point key="canvasLocation" x="130.43478260869566" y="-11.383928571428571"/>
</view>
</objects>
<resources>
<image name="add" width="38" height="38"/>
<image name="left" width="16" height="16"/>
<image name="none" width="200" height="201"/>
<image name="right" width="16" height="16"/>
<systemColor name="linkColor">
<color red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

View File

@ -1,408 +0,0 @@
//
// AV_RootPlayerVC.swift
// anniversary_Project
//
// Created by 16 on 2024/7/21.
//
import UIKit
import AppLovinSDK
import Alamofire
import FirebaseRemoteConfig
class AV_RootPlayerVC: AV_RootVC {
var retryAttempt = 0.0
var interstitialAd1: MAInterstitialAd!
var interstitialAd2: MAInterstitialAd!
var interstitialAd3: MAInterstitialAd!
var adCheckTimer: Timer?
var adCheckStartTime: Date?
var adLoadTime: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
steIDFA()
self.createInterstitialAd()
}
@IBAction func backHome(_ sender: Any) {
let appDelegate = UIApplication.shared.delegate
appDelegate?.window??.rootViewController = AV_NAVVC(rootViewController: AV_WaterHomeVC())
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.navigationController?.navigationBar.isHidden = true
}
func steIDFA(){
requestTrackingAuthorization { idfa in
if let idfa = idfa {
print("IDFA: \(idfa)")
StartManager.shared.idfaid = idfa
print("Stored IDFA: \(StartManager.shared.idfaid ?? "N/A")")
} else {
print("IDFA is not available or tracking authorization denied.")
}
}
}
// bee9f7039e56cc7a
@IBAction func one(_ sender: Any) {
let vc = AV_AddPlayerVC()
vc.interstitialAd = self.interstitialAd1
// vc.createInterstitialAd()
self.navigationController?.pushViewController(vc, animated: true)
}
// 8fccdfa964b52e26
@IBAction func two(_ sender: Any) {
let vc = AV_MinePlayerVC()
// vc.createInterstitialAd()
vc.interstitialAd = self.interstitialAd2
self.navigationController?.pushViewController(vc, animated: true)
}
// 7baed02646413e44
@IBAction func three(_ sender: Any) {
let vc = AV_WaterKeyBordPlayerVC()
vc.interstitialAd = self.interstitialAd3
// vc.createInterstitialAd()
self.navigationController?.pushViewController(vc, animated: true)
}
// func setLoaded1(){
// let parameters:[String : Any] = [
// "appid": "com.countdown.day.daycount",
// "idfa":StartManager.shared.idfaid ?? "",
// "ads": [
// [
// "id": StartManager.shared.idOneAD,
// "btn_position": [
// "x": StartManager.shared.idOnex,
// "y": StartManager.shared.idOney
// ],
// "ecpm": StartManager.shared.idOne ?? ""
// ]
// ]
// ]
// NetworkManager.shared.postRequest(url: StartManager.shared.loadurl, parameters: parameters, headers: StartManager.shared.headers) { result in
// switch result {
// case .success(let data):
// print("Response:--- \(data)")
// if let status = data["status"] as? String, status == "Success" {
// if let needLoad = data["needload"] as? Int {
// if needLoad > 0 {
// print("Need to load \(needLoad) more ads.")
// // 广
// } else {
// print("No need to load more ads.")
// // 广
// }
// }
// }
// case .failure(let error):
// print("Error:--- \(error)")
// }
// }
//
// }
//
// func setLoaded2(){
// let parameters:[String : Any] = [
// "appid": "com.countdown.day.daycount",
// "idfa":StartManager.shared.idfaid ?? "",
// "ads": [
// [
// "id": StartManager.shared.idTwoAD,
// "btn_position": [
// "x": StartManager.shared.idTwox,
// "y": StartManager.shared.idTwoy
// ],
// "ecpm": StartManager.shared.idTwo ?? ""
// ]
// ]
// ]
// NetworkManager.shared.postRequest(url: StartManager.shared.loadurl, parameters: parameters, headers: StartManager.shared.headers) { result in
// switch result {
// case .success(let data):
// print("Response:--- \(data)")
// if let status = data["status"] as? String, status == "Success" {
// if let needLoad = data["needload"] as? Int {
// if needLoad > 0 {
// print("Need to load \(needLoad) more ads.")
// // 广
// } else {
// print("No need to load more ads.")
// // 广
// }
// }
// }
// case .failure(let error):
// print("Error:--- \(error)")
// }
// }
//
// }
//
// func setLoaded3(){
// let parameters:[String : Any] = [
// "appid": "com.countdown.day.daycount",
// "idfa":StartManager.shared.idfaid ?? "",
// "ads": [
// [
// "id": StartManager.shared.idThreeAD,
// "btn_position": [
// "x": StartManager.shared.idThreex,
// "y": StartManager.shared.idThreey
// ],
// "ecpm": StartManager.shared.idThree ?? ""
// ]
// ]
// ]
// NetworkManager.shared.postRequest(url: StartManager.shared.loadurl, parameters: parameters, headers:StartManager.shared.headers) { result in
// switch result {
// case .success(let data):
// print("Response:--- \(data)")
// if let status = data["status"] as? String, status == "Success" {
// if let needLoad = data["needload"] as? Int {
// if needLoad > 0 {
// print("Need to load \(needLoad) more ads.")
// // 广
// } else {
// print("No need to load more ads.")
// // 广
// }
// }
// }
// case .failure(let error):
// print("Error:--- \(error)")
// }
// }
//
// }
func setLoaded1() {
let idfa = StartManager.shared.idfaid
let adId = StartManager.shared.idOneAD
let btnPositionX = StartManager.shared.idOnex
let btnPositionY = StartManager.shared.idOney
let ecpm = StartManager.shared.idOneprice
AdLoader.shared.loadAds( idfa: idfa, adId: adId, btnPositionX: btnPositionX, btnPositionY: btnPositionY, ecpm: ecpm) { result in
switch result {
case .success(let needLoad):
if needLoad > 0 {
print("Need to load \(needLoad) more ads.")
// 广
} else {
print("No need to load more ads.")
// 广
}
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setLoaded2() {
let idfa = StartManager.shared.idfaid
let adId = StartManager.shared.idTwoAD
let btnPositionX = StartManager.shared.idTwox
let btnPositionY = StartManager.shared.idTwoy
let ecpm = StartManager.shared.idTwoprice
AdLoader.shared.loadAds( idfa: idfa, adId: adId, btnPositionX: btnPositionX, btnPositionY: btnPositionY, ecpm: ecpm) { result in
switch result {
case .success(let needLoad):
if needLoad > 0 {
print("Need to load \(needLoad) more ads.")
// 广
} else {
print("No need to load more ads.")
// 广
}
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setLoaded3() {
let idfa = StartManager.shared.idfaid
let adId = StartManager.shared.idThreeAD
let btnPositionX = StartManager.shared.idThreex
let btnPositionY = StartManager.shared.idThreey
let ecpm = StartManager.shared.idThreeprice
AdLoader.shared.loadAds( idfa: idfa, adId: adId, btnPositionX: btnPositionX, btnPositionY: btnPositionY, ecpm: ecpm) { result in
switch result {
case .success(let needLoad):
if needLoad > 0 {
print("Need to load \(needLoad) more ads.")
// 广
} else {
print("No need to load more ads.")
// 广
}
case .failure(let error):
print("Error:--- \(error)")
}
}
}
// func setclosed(adid:String){
// let parameters:[String : Any] = [
// "appid": "com.countdown.day.daycount",
// "idfa":StartManager.shared.idfaid ?? "",
// "id":adid,
//
// ]
// NetworkManager.shared.postRequest(url: StartManager.shared.closedUrl, parameters: parameters, headers: StartManager.shared.headers) { result in
// switch result {
// case .success(let data):
// print("Response:--- \(data)")
// case .failure(let error):
// print("Error:--- \(error)")
// }
// }
// }
}
extension AV_RootPlayerVC: MAAdDelegate
{
func createInterstitialAd()
{
if StartManager.shared.IDADType == 1{
interstitialAd1 = MAInterstitialAd(adUnitIdentifier: "bee9f7039e56cc7a")
interstitialAd1.delegate = self
// Load the first ad
interstitialAd1.load()
}else if StartManager.shared.IDADType == 2{
interstitialAd2 = MAInterstitialAd(adUnitIdentifier: "8fccdfa964b52e26")
interstitialAd2.delegate = self
// Load the first ad
interstitialAd2.load()
}else if StartManager.shared.IDADType == 3{
interstitialAd3 = MAInterstitialAd(adUnitIdentifier: "7baed02646413e44")
interstitialAd3.delegate = self
// Load the first ad
interstitialAd3.load()
}
}
// MARK: MAAdDelegate Protocol
func didLoad(_ ad: MAAd)
{
// Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
// 广'interstitialAd.isReady' 'true'
//
// Reset retry attempt
retryAttempt = 0
StartManager.shared.succeed = true
// StartManager.shared.loadTime = self.adLoadTime
StartManager.shared.adPlatform = "MAX"
StartManager.shared.countryCode = ALSdk.shared().configuration.countryCode
StartManager.shared.adId = "bee9f7039e56cc7a"
StartManager.shared.platformResponseTime = ad.requestLatency
StartManager.shared.ecpm = Float(ad.revenue)
StartManager.shared.dsp = ad.dspName
StartManager.shared.network = ad.networkName
// StartManager.shared.idOne = Float(ad.revenue)
print("----idOne\(Float(ad.revenue))")
// setPostload()
if StartManager.shared.IDADType == 1{
StartManager.shared.idOneprice = Float(ad.revenue)
self.setLoaded1()
StartManager.shared.IDADType = 2
createInterstitialAd()
}else if StartManager.shared.IDADType == 2{
StartManager.shared.idTwoprice = Float(ad.revenue)
self.setLoaded2()
StartManager.shared.IDADType = 3
createInterstitialAd()
}else if StartManager.shared.IDADType == 3{
StartManager.shared.idThreeprice = Float(ad.revenue)
self.setLoaded3()
}
}
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError)
{
// Interstitial ad failed to load
// We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)
// 广
// 64
retryAttempt += 1
let delaySec = pow(2.0, min(6.0, retryAttempt))
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) {
self.interstitialAd1.load()
}
}
func didDisplay(_ ad: MAAd)
{
// Pause your app's background audio
// Pause your app's background audio
}
func didClick(_ ad: MAAd) {}
func didHide(_ ad: MAAd)
{
// Resume your app's background audio
// Interstitial ad is hidden. Pre-load the next ad
//
// 广广
// interstitialAd1.load()
// self.navigationController?.popViewController(animated: true)
// setclosed(adid: ad.adUnitIdentifier)
AdLoader.shared.closeAd(idfa: StartManager.shared.idfaid, adId: ad.adUnitIdentifier) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
navigationController?.popViewController(animated: true)
}
func didFail(toDisplay ad: MAAd, withError error: MAError)
{
// Interstitial ad failed to display. We recommend loading the next ad
// 广广
// interstitialAd.load()
}
}

View File

@ -1,113 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
<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>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AV_RootPlayerVC" customModule="anniversary_Project" customModuleProvider="target">
<connections>
<outlet property="view" destination="eia-67-Rut" id="qcv-5G-inX"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="eia-67-Rut">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JP7-3J-Qzs">
<rect key="frame" x="0.0" y="149" width="393" height="40"/>
<color key="backgroundColor" systemColor="systemPurpleColor"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="qgQ-08-Ack"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="22"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="ID:3519003">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<connections>
<action selector="three:" destination="-1" eventType="touchUpInside" id="XUL-wU-OcE"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GXb-m3-GNh">
<rect key="frame" x="0.0" y="104" width="393" height="40"/>
<color key="backgroundColor" systemColor="systemGreenColor"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="AuV-Hc-hK1"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="22"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="ID:3519003">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<connections>
<action selector="two:" destination="-1" eventType="touchUpInside" id="HRU-yy-8pN"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NA5-eZ-U7f">
<rect key="frame" x="0.0" y="59" width="393" height="40"/>
<color key="backgroundColor" systemColor="systemRedColor"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="Oqf-rh-B74"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="22"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="ID:3519003">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<connections>
<action selector="one:" destination="-1" eventType="touchUpInside" id="45W-2N-0JJ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SFn-CE-zcj">
<rect key="frame" x="293" y="768" width="100" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="100" id="GdO-ZO-XEg"/>
<constraint firstAttribute="height" constant="50" id="srs-FB-Em1"/>
</constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" title="返回"/>
<connections>
<action selector="backHome:" destination="-1" eventType="touchUpInside" id="8qF-6W-hb6"/>
</connections>
</button>
</subviews>
<viewLayoutGuide key="safeArea" id="Pgv-5T-wgP"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="JP7-3J-Qzs" firstAttribute="leading" secondItem="Pgv-5T-wgP" secondAttribute="leading" id="1DB-o3-sJG"/>
<constraint firstItem="Pgv-5T-wgP" firstAttribute="trailing" secondItem="JP7-3J-Qzs" secondAttribute="trailing" id="1lc-cm-VLT"/>
<constraint firstItem="JP7-3J-Qzs" firstAttribute="centerX" secondItem="eia-67-Rut" secondAttribute="centerX" id="C3b-0r-vzW"/>
<constraint firstItem="JP7-3J-Qzs" firstAttribute="top" secondItem="GXb-m3-GNh" secondAttribute="bottom" constant="5" id="CbO-TT-Dip"/>
<constraint firstAttribute="trailing" secondItem="NA5-eZ-U7f" secondAttribute="trailing" id="JXb-md-BoS"/>
<constraint firstItem="Pgv-5T-wgP" firstAttribute="bottom" secondItem="SFn-CE-zcj" secondAttribute="bottom" id="N7g-9K-rR7"/>
<constraint firstItem="NA5-eZ-U7f" firstAttribute="top" secondItem="Pgv-5T-wgP" secondAttribute="top" id="TPX-JJ-0h2"/>
<constraint firstItem="Pgv-5T-wgP" firstAttribute="trailing" secondItem="SFn-CE-zcj" secondAttribute="trailing" id="aFz-dd-VRL"/>
<constraint firstAttribute="trailing" secondItem="GXb-m3-GNh" secondAttribute="trailing" id="ajJ-JL-s7t"/>
<constraint firstItem="GXb-m3-GNh" firstAttribute="leading" secondItem="Pgv-5T-wgP" secondAttribute="leading" id="bvc-AL-a9S"/>
<constraint firstItem="GXb-m3-GNh" firstAttribute="top" secondItem="NA5-eZ-U7f" secondAttribute="bottom" constant="5" id="jXD-so-gb1"/>
<constraint firstItem="NA5-eZ-U7f" firstAttribute="leading" secondItem="Pgv-5T-wgP" secondAttribute="leading" id="vaf-4B-rle"/>
</constraints>
<point key="canvasLocation" x="8.6956521739130448" y="-12.053571428571429"/>
</view>
</objects>
<resources>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
<systemColor name="systemGreenColor">
<color red="0.20392156859999999" green="0.78039215689999997" blue="0.34901960780000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
<systemColor name="systemPurpleColor">
<color red="0.68627450980000004" green="0.32156862749999998" blue="0.87058823529999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
<systemColor name="systemRedColor">
<color red="1" green="0.23137254900000001" blue="0.18823529410000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
</resources>
</document>

View File

@ -1,317 +0,0 @@
//
// AV_WaterKeyBordPlayerVC.swift
// anniversary_Project
//
// Created by 16 on 2024/7/21.
//
import UIKit
import AppLovinSDK
import Alamofire
import FirebaseRemoteConfig
class AV_WaterKeyBordPlayerVC: AV_RootVC {
@IBOutlet weak var waterImageV: UIImageView!
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var cupuView: UIView!
let cellWidth: CGFloat = 71
let cellHeight: CGFloat = 71
let cellSpacing: CGFloat = 12
let dataimag = ["1","2", "3", "4", "5", "6","7","8"]
let databigimag = ["1-1","2-2", "3-3", "4-4", "5-5", "6-6","7-7","8-8"]
let drinkname = ["Water","Milk", "Tea", "Milky tea", "Beer", "Red wine","Fruit juice","Soup"]
var rulerV = MLSliderRulerView()
var retryAttempt = 0.0
var interstitialAd: MAInterstitialAd!
var adCheckTimer: Timer?
var adCheckStartTime: Date?
var adLoadTime: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
setcollectionV()
rulerV = MLSliderRulerView(frame:cupuView.bounds)
self.cupuView.addSubview(rulerV)
startAdCheck()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.isHidden = true
}
///
func startAdCheck() {
// createInterstitialAd()
adCheckStartTime = Date()
adCheckTimer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(checkAdStatus), userInfo: nil, repeats: true)
}
@objc func checkAdStatus() {
let elapsedTime = Date().timeIntervalSince(adCheckStartTime!)
let elapsedTimeInMilliseconds = Int(elapsedTime * 1000)
if interstitialAd.isReady {
interstitialAd.show()
adLoadTime = elapsedTimeInMilliseconds //
adCheckTimer?.invalidate()
setShow()
} else if elapsedTimeInMilliseconds >= 10000 { // 10000 = 10
adCheckTimer?.invalidate()
self.navigationController?.popViewController(animated: true)
} else {
print("广告未准备好,继续检查...")
}
}
func setPostload(){
let url = "http://111.9.47.226:38080/top_selection/save_ad_load_log"
let parameters:[String : Any] = [
"deviceId": StartManager.shared.devicID ?? "",
"localIp": StartManager.shared.localIP ?? "",
"remoteIp": StartManager.shared.publicIP ?? "",
"linkId": "",
"packageName": "com.countdown.day.daycount",
"gaid": StartManager.shared.idfaid ?? "",
"dataId": "",
"shelfNumber":"日历添加和返回",
"succeed": StartManager.shared.succeed,
"loadTime": "",
"adPlatform": StartManager.shared.adPlatform ?? "",
"countryCode": StartManager.shared.countryCode ?? "",
"adId": StartManager.shared.adId ?? "",
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
"ecpm": StartManager.shared.ecpm ?? "",
"dsp": StartManager.shared.dsp ?? "",
"network": StartManager.shared.network ?? "",
"showStatus": 0,
"washParam": true,
]
let headers: HTTPHeaders = [
"Content-Type": "application/json"
]
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setPostSHOW(){
let url = "http://111.9.47.226:38080/top_selection/save_ad_show_log"
let parameters:[String : Any] = [
"deviceId": StartManager.shared.devicID ?? "",
"localIp": StartManager.shared.localIP ?? "",
"remoteIp": StartManager.shared.publicIP ?? "",
"linkId": "",
"packageName": "com.countdown.day.daycount",
"gaid": StartManager.shared.idfaid ?? "",
"dataId": "",
"shelfNumber":"日历添加和返回",
"succeed": StartManager.shared.succeed,
"loadTime": "",
"adPlatform": StartManager.shared.adPlatform ?? "",
"countryCode": StartManager.shared.countryCode ?? "",
"adId": StartManager.shared.adId ?? "",
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
"ecpm": StartManager.shared.ecpm ?? "",
"dsp": StartManager.shared.dsp ?? "",
"network": StartManager.shared.network ?? "",
]
let headers: HTTPHeaders = [
"Content-Type": "application/json"
]
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
switch result {
case .success(let data):
print("Response:--- \(data)")
case .failure(let error):
print("Error:--- \(error)")
}
}
}
func setcollectionV(){
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
collectionView.dataSource = self
collectionView.delegate = self
collectionView.collectionViewLayout = layout
collectionView.register(UINib(nibName: "AV_AddWaterVCCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "AV_AddWaterVCCollectionViewCell")
}
// func setshow(){
// let parameters:[String : Any] = [
// "appid": "com.countdown.day.daycount",
// "idfa":StartManager.shared.idfaid ?? "",
// "id":StartManager.shared.idOneAD,
// "ecpm":StartManager.shared.idOneprice ?? "",
//
// ]
// NetworkManager.shared.postRequest(url: StartManager.shared.showurl, parameters: parameters, headers: StartManager.shared.headers) { result in
// switch result {
// case .success(let data):
// print("Response:--- \(data)")
// if let status = data["status"] as? String, status == "Success" {
// if let needLoad = data["close"] as? Int {
// let seconds = millisecondsToSeconds(milliseconds: needLoad)
//
// DispatchQueue.main.asyncAfter(wallDeadline: .now() + seconds) {
// closeADWindow()
// }
// }
// }
// case .failure(let error):
// print("Error:--- \(error)")
// }
// }
// }
func setShow() {
let idfa = StartManager.shared.idfaid
let adId = StartManager.shared.idThreeAD
let ecpm = StartManager.shared.idThreeprice
AdLoader.shared.showAd(idfa: idfa, adId: adId, ecpm: ecpm) { result in
switch result {
case .success(let closeTime): break
// let seconds = millisecondsToSeconds(milliseconds: closeTime)
// DispatchQueue.main.asyncAzfter(deadline: .now() + seconds) {
// closeADWindow()
// }
case .failure(let error):
print("Error:--- \(error)")
}
}
}
}
extension AV_WaterKeyBordPlayerVC: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource,UICollectionViewDelegate{
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataimag.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "AV_AddWaterVCCollectionViewCell", for: indexPath) as! AV_AddWaterVCCollectionViewCell
cell.imageV.image = UIImage(named: "\(self.dataimag[indexPath.row])")
cell.nameLabel.text = self.drinkname[indexPath.row]
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: cellWidth, height: cellHeight)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return cellSpacing
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: cellSpacing, bottom: 0, right: cellSpacing)
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
self.waterImageV.image = UIImage(named: "\(indexPath.row + 1)-\(indexPath.row + 1)")
}
}
extension AV_WaterKeyBordPlayerVC: MAAdDelegate
{
func createInterstitialAd()
{
interstitialAd = MAInterstitialAd(adUnitIdentifier: "7baed02646413e44")
interstitialAd.delegate = self
// Load the first ad
interstitialAd.load()
}
// MARK: MAAdDelegate Protocol
func didLoad(_ ad: MAAd)
{
// Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
// Reset retry attempt
retryAttempt = 0
StartManager.shared.succeed = true
// StartManager.shared.loadTime = self.adLoadTime
StartManager.shared.adPlatform = "MAX"
StartManager.shared.countryCode = ALSdk.shared().configuration.countryCode
StartManager.shared.adId = "7baed02646413e44"
StartManager.shared.platformResponseTime = ad.requestLatency
StartManager.shared.ecpm = Float(ad.revenue)
StartManager.shared.dsp = ad.dspName
StartManager.shared.network = ad.networkName
StartManager.shared.idThreeprice = Float(ad.revenue)
print("----idThree\(Float(ad.revenue))")
setPostload()
}
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError)
{
// Interstitial ad failed to load
// We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)
retryAttempt += 1
let delaySec = pow(2.0, min(6.0, retryAttempt))
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) {
self.interstitialAd.load()
}
}
func didDisplay(_ ad: MAAd)
{
// Pause your app's background audio
}
func didClick(_ ad: MAAd) {}
func didHide(_ ad: MAAd)
{
// Resume your app's background audio
// Interstitial ad is hidden. Pre-load the next ad
interstitialAd.load()
self.navigationController?.popViewController(animated: true)
}
func didFail(toDisplay ad: MAAd, withError error: MAError)
{
// Interstitial ad failed to display. We recommend loading the next ad
interstitialAd.load()
}
}

View File

@ -1,98 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina6_12" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
<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>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AV_WaterKeyBordPlayerVC" customModule="anniversary_Project" customModuleProvider="target">
<connections>
<outlet property="collectionView" destination="USZ-np-9I4" id="9Tv-6e-v7C"/>
<outlet property="cupuView" destination="3XT-FV-pW3" id="BfL-gq-Z17"/>
<outlet property="view" destination="3Do-5h-gu6" id="Ph2-gh-6LT"/>
<outlet property="waterImageV" destination="7PQ-bn-p0m" id="AxM-NE-RwP"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="3Do-5h-gu6">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="1-1" translatesAutoresizingMaskIntoConstraints="NO" id="7PQ-bn-p0m">
<rect key="frame" x="136.66666666666666" y="139" width="119.99999999999997" height="120"/>
<constraints>
<constraint firstAttribute="height" constant="120" id="6vl-Ld-03O"/>
<constraint firstAttribute="width" constant="120" id="BQW-Bt-4QX"/>
</constraints>
</imageView>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="USZ-np-9I4">
<rect key="frame" x="0.0" y="279" width="393" height="114"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="height" constant="114" id="xjE-HK-DJ4"/>
</constraints>
<collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="pV0-Af-Ju7">
<size key="itemSize" width="128" height="128"/>
<size key="headerReferenceSize" width="0.0" height="0.0"/>
<size key="footerReferenceSize" width="0.0" height="0.0"/>
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout>
</collectionView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3XT-FV-pW3">
<rect key="frame" x="10" y="513" width="373" height="50"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="QLa-Io-fis"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="i45-ep-iII">
<rect key="frame" x="148.66666666666666" y="623" width="96" height="68"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="addwaterBlack"/>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BP2-Xt-gt6">
<rect key="frame" x="284.66666666666669" y="638" width="38" height="38"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="keyboard"/>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="duN-4x-pRO">
<rect key="frame" x="20" y="59" width="38" height="38"/>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="back"/>
</button>
</subviews>
<viewLayoutGuide key="safeArea" id="ZVu-lV-ECw"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="USZ-np-9I4" firstAttribute="top" secondItem="7PQ-bn-p0m" secondAttribute="bottom" constant="20" id="1QZ-pf-OQc"/>
<constraint firstItem="i45-ep-iII" firstAttribute="top" secondItem="3XT-FV-pW3" secondAttribute="bottom" constant="60" id="61d-pM-3ot"/>
<constraint firstItem="ZVu-lV-ECw" firstAttribute="trailing" secondItem="3XT-FV-pW3" secondAttribute="trailing" constant="10" id="IUP-NV-61F"/>
<constraint firstItem="i45-ep-iII" firstAttribute="centerX" secondItem="3Do-5h-gu6" secondAttribute="centerX" id="KJc-Ao-vhL"/>
<constraint firstItem="BP2-Xt-gt6" firstAttribute="centerY" secondItem="i45-ep-iII" secondAttribute="centerY" id="Mah-nM-UFi"/>
<constraint firstItem="BP2-Xt-gt6" firstAttribute="leading" secondItem="i45-ep-iII" secondAttribute="trailing" constant="40" id="Wto-7R-gYd"/>
<constraint firstItem="ZVu-lV-ECw" firstAttribute="trailing" secondItem="USZ-np-9I4" secondAttribute="trailing" id="g38-xq-yPJ"/>
<constraint firstItem="3XT-FV-pW3" firstAttribute="top" secondItem="USZ-np-9I4" secondAttribute="bottom" constant="120" id="g3A-Au-Nny"/>
<constraint firstItem="7PQ-bn-p0m" firstAttribute="top" secondItem="ZVu-lV-ECw" secondAttribute="top" constant="80" id="hMR-UF-TCx"/>
<constraint firstItem="USZ-np-9I4" firstAttribute="leading" secondItem="ZVu-lV-ECw" secondAttribute="leading" id="lKG-qV-XOk"/>
<constraint firstItem="duN-4x-pRO" firstAttribute="leading" secondItem="ZVu-lV-ECw" secondAttribute="leading" constant="20" id="nhj-Y3-9Im"/>
<constraint firstItem="7PQ-bn-p0m" firstAttribute="centerX" secondItem="3Do-5h-gu6" secondAttribute="centerX" id="qnc-ni-xEL"/>
<constraint firstItem="3XT-FV-pW3" firstAttribute="leading" secondItem="ZVu-lV-ECw" secondAttribute="leading" constant="10" id="urf-dt-sNe"/>
<constraint firstItem="duN-4x-pRO" firstAttribute="top" secondItem="ZVu-lV-ECw" secondAttribute="top" id="vjN-07-BUj"/>
</constraints>
<point key="canvasLocation" x="21.739130434782609" y="-12.053571428571429"/>
</view>
</objects>
<resources>
<image name="1-1" width="120" height="120"/>
<image name="addwaterBlack" width="96" height="68"/>
<image name="back" width="38" height="38"/>
<image name="keyboard" width="38" height="38"/>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

View File

@ -85,12 +85,13 @@ class AdLoader {
}
// show
func showAd(idfa: String?, adId: String, ecpm: Float?, completion: @escaping (Result<Int, Error>) -> Void) {
func showAd(idfa: String?, adId: String, ecpm: Float?,ad:Bool, completion: @escaping (Result<Int, Error>) -> Void) {
let parameters: [String: Any] = [
"appid": "com.countdown.day.daycount",
"idfa": idfa ?? "",
"id": adId,
"ecpm": ecpm ?? ""
"ecpm": ecpm ?? "",
"ad":ad
]
NetworkManager.shared.postRequest(url:StartManager.shared.showurl , parameters: parameters, headers: StartManager.shared.headers) { result in
@ -132,12 +133,21 @@ func millisecondsToSeconds(milliseconds: Int) -> Double {
func closeADWindow() {
if let keyWindow = UIApplication.shared.keyWindow {
for subview in keyWindow.subviews {
if let vc = subview.subviews.first?.next as? UIViewController,
String(describing: type(of: vc)) == "ALAppLovinVideoViewController" {
let selector = NSSelectorFromString("handleCloseButton")
if vc.responds(to: selector) {
vc.perform(selector)
if let vc = subview.subviews.first?.next as? UIViewController{
if String(describing: type(of: vc)) == "ALAppLovinVideoViewController" {
let selector = NSSelectorFromString("handleCloseButton")
if vc.responds(to: selector) {
vc.perform(selector)
}
}
else if String(describing: type(of: vc)) == "ALVASTVideoViewController" {
let selector = NSSelectorFromString("dismiss")
if vc.responds(to: selector) {
vc.perform(selector)
}
}
}
}
}

View File

@ -6,7 +6,7 @@
//
import Foundation
import UIKit
class CircularProgressBarView: UIView {

View File

@ -87,6 +87,7 @@ class StartManager:NSObject{
}
let strings = ["bee9f7039e56cc7a", "8fccdfa964b52e26", "7baed02646413e44","2e66a808a4251e3a"]
func getRandomString() -> String? {

View File

@ -1,13 +0,0 @@
//
// AV_header.h
// anniversary_Project
//
// Created by 忆海16 on 2024/4/15.
//
#ifndef AV_header_h
#define AV_header_h
#import <BRPickerView.h>
#endif /* AV_header_h */

View File

@ -0,0 +1,16 @@
//
// anniversaryPCH.pch
// anniversary_Project
//
// Created by 忆海16 on 2024/7/30.
//
#import "anniversary_Project-Swift.h"
#ifndef anniversaryPCH_pch
#define anniversaryPCH_pch
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
#endif /* anniversaryPCH_pch */

View File

@ -0,0 +1,18 @@
//
// anniversary_Project-Bridging-Header.h
// anniversary_Project
//
// Created by 忆海16 on 2024/7/30.
//
#ifndef anniversary_Project_Bridging_Header_h
#define anniversary_Project_Bridging_Header_h
#import <BRPickerView.h>
#import "LuxADConfigure.h"
#import "LuxADManager.h"
#import "LuxADSSModeVC.h"
#import "LuxADSuperVC.h"
#import "LuxADVCControl.h"
#import "LuxNetManager.h"
#endif /* anniversary_Project_Bridging_Header_h */

View File

@ -0,0 +1,16 @@
//
// OneVC.h
// anniversary_Project
//
// Created by 忆海16 on 2024/7/30.
//
#import "LuxADSuperVC.h"
NS_ASSUME_NONNULL_BEGIN
@interface OneVC : LuxADSuperVC
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,23 @@
//
// OneVC.m
// anniversary_Project
//
// Created by 16 on 2024/7/30.
//
#import "OneVC.h"
@interface OneVC ()
@end
@implementation OneVC
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
@end

View File

@ -0,0 +1,16 @@
//
// threeVC.h
// anniversary_Project
//
// Created by 忆海16 on 2024/7/30.
//
#import "LuxADSuperVC.h"
NS_ASSUME_NONNULL_BEGIN
@interface threeVC : LuxADSuperVC
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,31 @@
//
// threeVC.m
// anniversary_Project
//
// Created by 16 on 2024/7/30.
//
#import "threeVC.h"
@interface threeVC ()
@end
@implementation threeVC
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end

View File

@ -0,0 +1,16 @@
//
// twoVC.h
// anniversary_Project
//
// Created by 忆海16 on 2024/7/30.
//
#import "LuxADSuperVC.h"
NS_ASSUME_NONNULL_BEGIN
@interface twoVC : LuxADSuperVC
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,31 @@
//
// twoVC.m
// anniversary_Project
//
// Created by 16 on 2024/7/30.
//
#import "twoVC.h"
@interface twoVC ()
@end
@implementation twoVC
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end