diff --git a/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate
index f6bc499..9437b98 100644
Binary files a/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate and b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
new file mode 100644
index 0000000..0a41708
--- /dev/null
+++ b/HD wallpaper.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/HDwallpaper/AppDelegate.m b/HDwallpaper/AppDelegate.m
index 8da4dd2..a171cad 100644
--- a/HDwallpaper/AppDelegate.m
+++ b/HDwallpaper/AppDelegate.m
@@ -14,6 +14,8 @@
#import
#import
#import
+
+#import "LuxADManager.h"
@interface AppDelegate ()
@property (nonatomic,strong) NSTimer *attTimer;
@end
@@ -74,34 +76,93 @@ shopworn_4 *= aqueduct_d;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-NSDateFormatter *unfasten_4 = [NSDateFormatter new];
-[unfasten_4 setDateFormat:@"yyyy-MM-dd HH:mm"];
-NSString *noble_W = [unfasten_4 stringFromDate:[NSDate date]];
-[[NSUserDefaults standardUserDefaults] setObject:noble_W forKey:@"shack_k"];
+ NSDateFormatter *unfasten_4 = [NSDateFormatter new];
+ [unfasten_4 setDateFormat:@"yyyy-MM-dd HH:mm"];
+ NSString *noble_W = [unfasten_4 stringFromDate:[NSDate date]];
+ [[NSUserDefaults standardUserDefaults] setObject:noble_W forKey:@"shack_k"];
- [FIRApp configure];
-
-
-// [AWM_NetManager requestRemoteIp];
-//
-// [[AWM_WallPapaerADManager shareInstance] configureAD];
-//
-
- [self checkATT];
-
-
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
-// [AWM_NetManager uploadAD_Start];
+ UIViewController *vc = [UIViewController new];
+ self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
-// [[AWM_WallPapaerADManager shareInstance] showFirstOpenAD:^(NSInteger actionType) {
- [self configureRootVC];
-// } window:self.window];
-
-
+ [FIRApp configure];
+ [self checkATT];
+ NSLog(@">>>>>>>>>HDWall.......");
+ [self configureADByFirebase];
return YES;
+
+
+
+}
+
+- (void)configureADByFirebase {
+ if ([[LuxADManager shareInstance] isADSSMode] ) {
+ [self configureAD];
+ }
+ else {//读取firebase数据
+ FIRRemoteConfig *rc = [FIRRemoteConfig remoteConfig];
+ FIRRemoteConfigSettings *rcs = [FIRRemoteConfigSettings new];
+ rcs.minimumFetchInterval = 0;
+ rc.configSettings = rcs;
+ [rc fetchAndActivateWithCompletionHandler:^(FIRRemoteConfigFetchAndActivateStatus status, NSError * _Nullable error) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ if (status == FIRRemoteConfigFetchAndActivateStatusSuccessFetchedFromRemote) {
+ NSString *localVer = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"];
+ NSDictionary *value = [[rc configValueForKey:@"isopen"] JSONValue];
+ BOOL isadopen = [value[@"isadopen"] boolValue];
+ NSString *version = value[@"version"];
+ if (!isadopen || ( version && [version isEqualToString:localVer])) {//不展示ad
+ [self configureRootVC];
+ }
+ else {
+ [self configureAD];
+ }
+ }
+ else {
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+ [self configureADByFirebase];
+ });
+ }
+ });
+
+ }];
+ }
+}
+
+- (void)configureAD {
+
+
+ [[LuxADManager shareInstance] addADWithInterstitialId:@"748bee67bbad21b9" actionBlock:^(UIViewController * _Nonnull vc) {
+
+ }];//第一个一定为开屏插页
+
+ [[LuxADManager shareInstance] addADWithInterstitialId:@"e5837c56c18ee712" actionBlock:^(UIViewController * _Nonnull vc) {
+ LuxADSuperVC *subvc = [LuxADSuperVC new];
+ subvc.adIndex = 1;
+ [vc.navigationController pushViewController:subvc animated:NO];
+ }];
+
+ [[LuxADManager shareInstance] addADWithInterstitialId:@"edf0554479388c05" actionBlock:^(UIViewController * _Nonnull vc) {
+ LuxADSuperVC *subvc = [LuxADSuperVC new];
+ subvc.adIndex = 2;
+ [vc.navigationController pushViewController:subvc animated:NO];
+ }];
+
+ [[LuxADManager shareInstance] addADWithInterstitialId:@"5a3cff8307e36497" actionBlock:^(UIViewController * _Nonnull vc) {
+ LuxADSuperVC *subvc = [LuxADSuperVC new];
+ subvc.adIndex = 3;
+ [vc.navigationController pushViewController:subvc animated:NO];
+ }];
+
+ [[LuxADManager shareInstance] configureADWithAppLovinSDKKey:@"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX"];
+ [[LuxADManager shareInstance] showFirstOpenAD:^(NSInteger actionType) {
+ [self configureRootVC];
+ } window:self.window bgImgName:@"ssa" bgColor:nil];
+
+
}
- (void)configureRootVC {
@@ -145,7 +206,7 @@ transmit_M *= alkali_F;
tb.viewControllers = @[wpHomeNV,wpHotNV,wpEditNV,wpMyNV];
tb.selectedIndex = 0;
self.window.rootViewController = tb;
-
+ [self.window makeKeyAndVisible];
}
@@ -157,7 +218,7 @@ NSString *innuendo_6 = [milkman_k stringFromDate:[NSDate date]];
[[NSUserDefaults standardUserDefaults] setObject:innuendo_6 forKey:@"moderation_T"];
- [[AWM_WallPapaerADManager shareInstance] showOpenAD];
+ [[LuxADManager shareInstance] showOpenAD];
}
diff --git a/HDwallpaper/LuxADManager/LuxADManager.h b/HDwallpaper/LuxADManager/LuxADManager.h
new file mode 100644
index 0000000..f8f2724
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxADManager.h
@@ -0,0 +1,67 @@
+//
+// WPLuxADManager.h
+// TallPaper
+//
+// Created by aaa on 2024/7/25.
+//
+
+#import
+#import
+#import "LuxADSuperVC.h"
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^LuxADManagerCallback)(NSInteger actionType);//actionType,1表示关闭广告
+typedef void (^LuxADManagerActionBlock)(UIViewController *vc);//用于补量模式的跳转vc 的action
+
+#pragma mark ------LuxADManagerItem
+@interface LuxADManagerInterstitialItem : NSObject
+@property (nonatomic,strong) MAInterstitialAd *adItem;
+@property (nonatomic) NSInteger retryAttemptCount;
+@property (nonatomic,strong) NSDate *lastShowADDate;//ad间隔时长
+@property (nonatomic,strong) NSString *adId;
+
+@property (nonatomic,weak) LuxADManagerActionBlock actionBlock;//在补量模式下,跳转至目的页面
+
++ (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock;
+@end
+
+#pragma mark ------LuxADManager
+
+
+@interface LuxADManager : NSObject
++ (instancetype)shareInstance;
+
+//第一步: 通过指定的ids数组初始化所有 插屏 ad ,注意,仅是插屏
+- (void)addADWithInterstitialId:(NSString*)id actionBlock:(LuxADManagerActionBlock)block;
+
+//第二步: 初始化广告
+- (void)configureADWithAppLovinSDKKey:(NSString *)appLovinSDKKey;
+
+//用于在启动app时,即第一次在appDidFinishLanuch调用开屏广告
+- (void)showFirstOpenAD:(LuxADManagerCallback)callback window:(UIWindow *)window bgImgName:(NSString *)bgImgName bgColor:(UIColor *)bgColor;
+
+//用于在app进行前后台切换时调用
+- (void)showOpenAD;
+
+
+
+//随机展示_adItemsArr中的插屏ad
+- (void)showADByRandomModeWithCallback:(LuxADManagerCallback)callback;
+
+
+
+
+
+#pragma mark --------主要用于AD补量
+//返回所有的插屏ad(非开屏广告openad)
+- (NSArray *)allInterstitialAds;
+
+//根据指定的在_adItemsArr中的index展示插屏ad
+- (void)showADWithIndex:(NSInteger)index callback:(LuxADManagerCallback)callback ;
+
+//判断当前是否为广告不量模式
+- (BOOL)isADSSMode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HDwallpaper/LuxADManager/LuxADManager.m b/HDwallpaper/LuxADManager/LuxADManager.m
new file mode 100644
index 0000000..524e4a5
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxADManager.m
@@ -0,0 +1,427 @@
+//
+// LuxADManager.m
+// TallPaper
+//
+// Created by aaa on 2024/7/25.
+//
+
+#import "LuxADManager.h"
+#import "LuxNetManager.h"
+#import "LuxADSSModeVC.h"
+#import "AppDelegate.h"
+#define kOpenAdCTimeLength 15.0//最多等待开屏广告加载时常
+#define kOpenADPerSec 0.05
+
+#define kADShowTimePer 30.0 //每个广告的间隔时长
+
+#pragma mark ------LuxADManagerInterstitialItem
+@implementation LuxADManagerInterstitialItem
++ (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock{
+ LuxADManagerInterstitialItem *item = [[LuxADManagerInterstitialItem alloc] initWithAdId:adId adDelegate:adDelegate actionBlock:actionBlock];
+ return item;
+}
+
+- (LuxADManagerInterstitialItem *)initWithAdId:(NSString *)adId adDelegate:(id)adDelegate actionBlock:(LuxADManagerActionBlock)actionBlock{
+ self = [super init];
+ if (self) {
+ _retryAttemptCount = 0;
+ _adItem = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: adId];
+ _adItem.delegate = adDelegate;
+ self.actionBlock = actionBlock;
+ }
+ return self;
+}
+
+@end
+
+
+
+#pragma mark ------LuxADManager
+@interface LuxADManager ()
+
+@property (nonatomic,strong) ALSdkInitializationConfiguration *adConfig;
+@property (nonatomic,strong) NSMutableArray *adItemsArr;
+@property (nonatomic,copy) LuxADManagerCallback callback;
+
+@property (nonatomic,strong) NSTimer *openADTimer; //开屏加载的倒计时timer
+@property (nonatomic,strong) UIProgressView *processView; //开屏加载的进度条
+@end
+
+
+
+
+@implementation LuxADManager
++ (instancetype)shareInstance {
+ static LuxADManager * instance = nil;
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ instance = [LuxADManager new];
+ });
+ return instance;
+}
+
+- (id)init {
+ self = [super init];
+ if (self) {
+ _adItemsArr = [NSMutableArray new];
+ }
+ return self;
+}
+
+//初始化广告
+- (void)configureADWithAppLovinSDKKey:(NSString *)appLovinSDKKey{
+ //直接在此处把远程ip获取到
+ [LuxNetManager requestRemoteIp];
+
+ //配置ad
+ _adConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: appLovinSDKKey builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
+ builder.mediationProvider = ALMediationProviderMAX;
+// NSString *currentIDFV = UIDevice.currentDevice.identifierForVendor.UUIDString;
+// if ( currentIDFV.length > 0 )
+// {
+// builder.testDeviceAdvertisingIdentifiers = @[currentIDFV];
+// }
+ }];
+
+ __weak typeof(self)weakSelf = self;
+ [[ALSdk shared] initializeWithConfiguration: _adConfig completionHandler:^(ALSdkConfiguration *sdkConfig) {
+ if ([weakSelf isADSSMode]) {//如果为补量模式,直接加载剩下的插页广告
+ [[LuxADManager shareInstance] initOtherInitIntersitialAD];
+ [[LuxADManager shareInstance]showSSModeControlVC];
+ }
+ else {
+ [[LuxADManager shareInstance] initOpenAD];
+ //延时初始化其他ad,避免同时初始化导致网络带宽拥挤
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+ [[LuxADManager shareInstance] initOtherInitIntersitialAD];
+ });
+ }
+ }];
+
+ [LuxNetManager uploadAD_Start];
+}
+
+//顶层window显示SS模式下的控制 VC
+- (void)showSSModeControlVC {
+ UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
+ LuxADSSModeVC *vc = [LuxADSSModeVC new];
+ UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
+ keyWindow.rootViewController = nav;
+}
+
+//通过指定的ids数组初始化所有ad
+- (void)addADWithInterstitialId:(NSString*)adId actionBlock:(LuxADManagerActionBlock)block{
+ LuxADManagerInterstitialItem *item = [LuxADManagerInterstitialItem initWithAdId:adId adDelegate:self actionBlock:block];
+ [_adItemsArr addObject:item];
+}
+
+//初始化开屏广告,注意,我们默认把广告数组中的第一个添加的插页ad当作开屏广告
+- (void)initOpenAD{
+ [[self openAd].adItem loadAd];
+}
+
+- (LuxADManagerInterstitialItem *)openAd {
+ return _adItemsArr.firstObject;
+}
+
+//初始化余下的插屏广告
+- (void)initOtherInitIntersitialAD {
+ for (int i = 1; i < _adItemsArr.count; i ++) {
+ [_adItemsArr[i].adItem loadAd];
+ }
+}
+
+//返回所有的插屏ad(非开屏广告openad)
+- (NSArray *)allInterstitialAds {
+ if (_adItemsArr.count) {//第一个默认为开屏广告
+ return [_adItemsArr subarrayWithRange:NSMakeRange(1, _adItemsArr.count - 1)];
+ }
+ return nil;
+}
+
+#pragma mark -----主要是 配置开屏广告 的地方
+//用于在启动app时,即第一次在appDidFinishLanuch调用开屏广告
+- (void)showFirstOpenAD:(LuxADManagerCallback)callback window:(UIWindow *)window bgImgName:(NSString *)bgImgName bgColor:(UIColor *)bgColor{
+ if ([self isADSSMode]) {//补量模式,直接返回,不加载开屏
+ callback(1);
+ return;
+ }
+
+ self.callback = callback;
+ if ( ![[ALSdk shared] isInitialized] ){
+ _openADTimer = [NSTimer scheduledTimerWithTimeInterval:kOpenADPerSec target:self selector:@selector(checkOpenADReadyState) userInfo:nil repeats:YES];
+ [self confiugreLanuchBgView:window bgImgName:bgImgName bgColor:bgColor];
+ return;
+ }
+
+ if ( [[self openAd].adItem isReady] ){
+
+ [[self openAd].adItem showAd];
+ }
+ else{
+ _openADTimer = [NSTimer scheduledTimerWithTimeInterval:kOpenADPerSec target:self selector:@selector(checkOpenADReadyState) userInfo:nil repeats:YES];
+ [self confiugreLanuchBgView:window bgImgName:bgImgName bgColor:bgColor];
+ [[self openAd].adItem loadAd];
+ }
+}
+
+//用于在app进行前后台切换时调用
+- (void)showOpenAD {
+ if ([self isADSSMode]) {//补量模式,直接返回,不加载开屏
+ return;
+ }
+
+ if(![self canShowAD:[self openAd].lastShowADDate ]) {
+ return;
+ }
+
+ if ( ![[ALSdk shared] isInitialized] ){
+ return;
+ }
+
+ if ( [[self openAd].adItem isReady] ){
+ [[self openAd].adItem showAd];
+ }
+ else{
+ [[self openAd].adItem loadAd];
+ }
+}
+
+//检查openad的状态,如果可用则展示,并停止timer倒计时. 如果不可用且超时,则停止timer并回调;如果不可用并未超时,则更新进度条
+- (void)checkOpenADReadyState{
+ static CGFloat totalTimeC = 0.0;
+ totalTimeC += kOpenADPerSec;
+
+ if ( [[self openAd].adItem isReady] ){
+ [_openADTimer invalidate];
+ _openADTimer = nil;
+ [[self openAd].adItem showAd];
+ }
+ else {
+ if (totalTimeC > kOpenAdCTimeLength) {//超时
+ if(self.callback) {
+ self.callback(1);
+ }
+ [_openADTimer invalidate];
+ _openADTimer = nil;
+ }
+ else {
+ CGFloat v = totalTimeC / kOpenAdCTimeLength;
+ _processView.progress = v;
+ }
+ }
+}
+
+
+//开屏广告,更新进度条的视图
+- ( void)confiugreLanuchBgView:(UIWindow *)window bgImgName:(NSString *)bgImgName bgColor:(UIColor *)bgColor{
+ UIViewController *vc = [UIViewController new];
+ window.rootViewController = vc;
+
+ UIImageView *imgView = [UIImageView new];
+ imgView.frame = CGRectMake((window.frame.size.width - 80) * 0.5, (window.frame.size.height - 80) * 0.5,80,80);
+ imgView.layer.masksToBounds = YES;
+ imgView.layer.cornerRadius = 40;
+ [window addSubview:imgView];
+ imgView.image = [UIImage imageNamed:bgImgName];
+ imgView.contentMode = UIViewContentModeScaleAspectFit;
+ if (bgColor) {
+ imgView.backgroundColor = bgColor;
+ }
+ else {
+ imgView.backgroundColor = [UIColor colorWithRed:197.0/255.0 green:197.0/255.0 blue:197.0/255.0 alpha:1];
+ }
+
+ _processView = [UIProgressView new];
+ _processView.frame = CGRectMake(80-1,window.frame.size.height - 60-1,window.frame.size.width - 160-1,20-1);
+ _processView.tintColor = [UIColor systemPinkColor];
+ [vc.view addSubview:_processView];
+
+ [vc.view addSubview:imgView];
+ vc.view.backgroundColor = imgView.backgroundColor;
+}
+
+#pragma mark -----展示其他插页广告
+//根据指定的在_adItemsArr中的index展示ad
+- (void)showADWithIndex:(NSInteger)index callback:(LuxADManagerCallback)callback {
+ self.callback = callback;
+ if (index < _adItemsArr.count) {
+ LuxADManagerInterstitialItem *item = [_adItemsArr objectAtIndex:index];
+ if (![self canShowAD:item.lastShowADDate] || ![item.adItem isReady]) { //如果未满足30秒的展示时间或没有准备好展示,则返回
+ self.callback(1);
+ }
+ else { //展示
+ [item.adItem showAd];
+ }
+
+ }
+ else {
+ NSLog(@"超出所初始化的广告数量边界....");
+ }
+}
+
+//随机展示_adItemsArr中的插屏ad
+- (void)showADByRandomModeWithCallback:(LuxADManagerCallback)callback {
+ if (_adItemsArr.count) {
+ int rv = arc4random() % _adItemsArr.count;
+ LuxADManagerInterstitialItem *item = _adItemsArr[rv];
+
+ if (![self canShowAD:item.lastShowADDate] || ![item.adItem isReady]) { //如果未满足30秒的展示时间或没有准备好展示,则返回
+ self.callback(1);
+ }
+ else { //展示
+ [item.adItem showAd];
+ }
+ }
+ else {
+ callback(1);
+ }
+
+}
+
+
+
+#pragma mark ----所有广告的通用处理
+//能否展示广告
+- (BOOL)canShowAD:(NSDate *)adDate {
+ if(!adDate) {
+ return YES;
+ }
+ else {
+ NSDate *ndate = [NSDate date];
+ if ([ndate timeIntervalSinceDate:adDate] >= kADShowTimePer) {
+ return YES;
+ }
+ else {
+ return NO;
+ }
+ }
+}
+
+
+
+
+//在收到ad 代理回调时,如果需要重新loadAD则调用此方法
+- (void)loadAD:(MAAd *)ad{
+ LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:ad.adUnitIdentifier];
+ if (item) {
+ [item.adItem loadAd];
+ NSLog(@"已经重新加载loadAD:%@",ad.adUnitIdentifier);
+ }
+}
+
+//根据指定maad返回LuxADManagerInterstitialItem对象
+- (LuxADManagerInterstitialItem *)getLuxADInterstitialItemWith:(NSString *)adUnitIdentifier {
+ NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.adItem.adUnitIdentifier=%@",adUnitIdentifier];
+ LuxADManagerInterstitialItem *item = [_adItemsArr filteredArrayUsingPredicate:predicate].firstObject;
+ return item;
+}
+
+//重置所有ad中的重试次数
+- (void)resetRetryAttemptCount:(MAAd *)ad {
+ LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:ad.adUnitIdentifier];
+ item.retryAttemptCount = 0;
+}
+
+
+- (void)storeADInfoAnUploadWith:(MAAd *)ad {
+ [[NSUserDefaults standardUserDefaults] setObject:ALSdk.shared.configuration.countryCode forKey:@"countryCode"];
+ NSTimeInterval interval = ad.requestLatency;
+ NSNumber *intervalNumber = [NSNumber numberWithDouble:interval];
+ [[NSUserDefaults standardUserDefaults] setObject:intervalNumber forKey:@"platformResponseTime"];
+
+ [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dsp"];
+
+ double revenue = ad.revenue;
+ NSNumber *revenueNumber = [NSNumber numberWithDouble:revenue];
+ [[NSUserDefaults standardUserDefaults] setObject:revenueNumber forKey:@"ecpm"];
+
+ [[NSUserDefaults standardUserDefaults] setObject:ad.networkName forKey:@"network"];
+
+ [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"];
+ [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"];
+
+ NSLog(@"-----%@",ad.adUnitIdentifier);
+ NSLog(@"self.openAD.adUnitIdentifier-----%@",[self openAd].adItem.adUnitIdentifier);
+
+
+}
+
+
+//判断当前是否为广告不量模式
+- (BOOL)isADSSMode{
+ return NO;
+}
+
+
+#pragma mark - MAAdDelegate 广告的代理
+
+- (void)didLoadAd:(MAAd *)ad {
+ NSLog(@"ad didLoadAD.....");
+ [self resetRetryAttemptCount:ad];
+ [self storeADInfoAnUploadWith:ad];
+ [LuxNetManager uploadAD_Load];
+}
+
+- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error {
+ NSLog(@"加载广告失败.... :%@ err:%@",adUnitIdentifier,error);
+ LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:adUnitIdentifier];
+ item.retryAttemptCount++;
+ NSInteger delaySec = pow(2, MIN(6, item.retryAttemptCount));
+
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [item.adItem loadAd];
+ });
+}
+
+
+
+
+- (void)didDisplayAd:(MAAd *)ad {
+ NSLog(@"成功展示了ad....");
+ [self storeADInfoAnUploadWith:ad];
+
+ LuxADManagerInterstitialItem *item = [self getLuxADInterstitialItemWith:ad.adUnitIdentifier];
+ if (item == [self openAd]) {//判定为开屏广告
+ [LuxNetManager uploadAD_Start];
+ }
+ else {//其他插页广告
+ [LuxNetManager uploadAD_Show];
+ }
+ item.lastShowADDate = [NSDate date];
+ //此处目前没有处理back类型的广告的时间被忽略计时的情况
+ //.....
+}
+
+- (void)didClickAd:(MAAd *)ad {
+
+ NSLog(@"点击了广告.....");
+}
+
+- (void)didHideAd:(MAAd *)ad{
+ NSLog(@"隐藏了ad....");
+ if (self.callback) {
+ self.callback(1);
+ }
+
+
+ if (![self isADSSMode]) {//补量模式时,隐藏ad之后,不再主动loadAD,等通知是否隐藏
+ [self loadAD:ad];
+ }
+}
+
+- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error{
+ NSLog(@"展示广告失败....");
+ [self loadAD:ad];
+}
+@end
+
+
+
+
+
+
+
+
+
+
diff --git a/HDwallpaper/LuxADManager/LuxADSSModeVC.h b/HDwallpaper/LuxADManager/LuxADSSModeVC.h
new file mode 100644
index 0000000..5a9e6dd
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxADSSModeVC.h
@@ -0,0 +1,16 @@
+//
+// LuxADSSModeVC.h
+// TallPaper
+//
+// Created by aaa on 2024/7/26.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface LuxADSSModeVC : UIViewController
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HDwallpaper/LuxADManager/LuxADSSModeVC.m b/HDwallpaper/LuxADManager/LuxADSSModeVC.m
new file mode 100644
index 0000000..17b3697
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxADSSModeVC.m
@@ -0,0 +1,55 @@
+//
+// LuxADSSModeVC.m
+// TallPaper
+//
+// Created by aaa on 2024/7/26.
+//
+
+#import "LuxADSSModeVC.h"
+#import "LuxNetManager.h"
+#import "LuxADManager.h"
+
+@interface LuxADSSButton : UIButton
+@property (nonatomic,weak) LuxADManagerInterstitialItem *item;
+@end
+
+@implementation LuxADSSButton
+
+@end
+
+@interface LuxADSSModeVC ()
+
+@end
+
+@implementation LuxADSSModeVC
+
+
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ __block CGFloat currY = 80.0;
+ CGFloat cellHeight = 50;
+ CGFloat cellPadding = 20;
+ CGFloat screenW = [UIScreen mainScreen].bounds.size.width;
+ CGFloat cellWidth = (screenW - cellPadding*2);
+
+ [[[LuxADManager shareInstance] allInterstitialAds] enumerateObjectsUsingBlock:^(LuxADManagerInterstitialItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+ CGRect rect = CGRectMake(cellPadding, currY, cellWidth, cellHeight);
+ LuxADSSButton *button = [LuxADSSButton new];
+ button.item = obj;
+ button.frame = rect;
+ [button addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside];
+ [button setTitle:[NSString stringWithFormat:@"ID: %@",obj.adItem.adUnitIdentifier] forState:UIControlStateNormal];
+ [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
+ button.titleLabel.font = [UIFont systemFontOfSize:18];
+ button.backgroundColor = [UIColor orangeColor];
+
+ [self.view addSubview:button];
+ currY += cellPadding + cellHeight;
+ }];
+}
+
+- (void)clickAction:(LuxADSSButton *)sender {
+ sender.item.actionBlock(self);
+}
+@end
diff --git a/HDwallpaper/LuxADManager/LuxADSuperVC.h b/HDwallpaper/LuxADManager/LuxADSuperVC.h
new file mode 100644
index 0000000..0bc1cdc
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxADSuperVC.h
@@ -0,0 +1,17 @@
+//
+// LuxADSuperVC.h
+// TallPaper
+//
+// Created by aaa on 2024/7/26.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface LuxADSuperVC : UIViewController
+@property (nonatomic) NSInteger adIndex;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/HDwallpaper/LuxADManager/LuxADSuperVC.m b/HDwallpaper/LuxADManager/LuxADSuperVC.m
new file mode 100644
index 0000000..45194f0
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxADSuperVC.m
@@ -0,0 +1,35 @@
+//
+// LuxADSuperVC.m
+// TallPaper
+//
+// Created by aaa on 2024/7/26.
+//
+
+#import "LuxADSuperVC.h"
+#import "LuxADManager.h"
+@interface LuxADSuperVC ()
+
+@end
+
+@implementation LuxADSuperVC
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+ [super viewDidAppear:animated];
+ if (_adIndex > 0) {
+ __weak typeof(self)weakSelf = self;
+ [[LuxADManager shareInstance] showADWithIndex:_adIndex callback:^(NSInteger actionType) {//关闭ad
+ //...
+ [weakSelf.navigationController popViewControllerAnimated:NO];
+ }];
+ }
+}
+
+- (void)viewWillDisappear:(BOOL)animated {
+ [super viewWillDisappear:animated];
+}
+
+@end
diff --git a/HDwallpaper/LuxADManager/LuxNetManager.h b/HDwallpaper/LuxADManager/LuxNetManager.h
new file mode 100644
index 0000000..11dfa22
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxNetManager.h
@@ -0,0 +1,24 @@
+//
+// LuxNetManager.h
+// TallPaper
+//
+// Created by aaa on 2024/7/26.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+typedef void(^LuxNetManagerCallback)(NSError *err,BOOL state,NSDictionary *result);
+@interface LuxNetManager : NSObject
+//请求远程ip
++ (void)requestRemoteIp ;
+
++ (void)uploadAD_Start;
+
++ (void)uploadAD_Show ;
+
++ (void)uploadAD_Load;
+@end
+NS_ASSUME_NONNULL_END
diff --git a/HDwallpaper/LuxADManager/LuxNetManager.m b/HDwallpaper/LuxADManager/LuxNetManager.m
new file mode 100644
index 0000000..bcfdb41
--- /dev/null
+++ b/HDwallpaper/LuxADManager/LuxNetManager.m
@@ -0,0 +1,263 @@
+//
+// LuxNetManager.m
+// TallPaper
+//
+// Created by aaa on 2024/7/26.
+//
+
+#import "LuxNetManager.h"
+#import
+#include
+#include
+#include
+#include
+#import "ifaddrs.h"
+#import
+#import
+#import
+#define kBaseUrl @"http://111.9.47.226:38080/"
+#define kUrlStr(_path) [kBaseUrl stringByAppendingPathComponent:_path]
+
+#define kURL_AD_Start @"/top_selection/save_app_start_log"
+#define kURL_AD_Load @"/top_selection/save_ad_load_log"
+#define kURL_AD_Show @"/top_selection/save_ad_show_log"
+
+@implementation LuxNetManager
+
++ (void)uploadData:(NSMutableDictionary *)mdic urlPath:(NSString *)urlPath callback:(LuxNetManagerCallback)callback {
+ NSURL *url = [NSURL URLWithString:kUrlStr(urlPath)];
+ if (!url) {
+ NSLog(@"Invalid URL: %@", kUrlStr(urlPath));
+ return;
+ }
+
+ NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
+ request.HTTPMethod = @"POST";
+ [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
+ NSError *jsonError;
+ NSData *data = [NSJSONSerialization dataWithJSONObject:mdic options:kNilOptions error:&jsonError];
+
+ if (jsonError) {
+ NSLog(@"Error serializing JSON: %@", jsonError.localizedDescription);
+ return;
+ }
+
+ [request setHTTPBody:data];
+
+ NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
+ if (error) {
+ NSLog(@"Network error: %@", error.localizedDescription);
+ } else {
+ NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
+ NSLog(@"HTTP Status Code: %ld", (long)httpResponse.statusCode);
+ if (data) {
+ NSError *jsonParseError;
+ NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonParseError];
+ if (jsonParseError) {
+ NSLog(@"Error parsing response JSON: %@", jsonParseError.localizedDescription);
+ } else {
+ NSLog(@"Server response: %@", result);
+ if (callback) {
+ callback(nil, YES, result);
+ }
+ }
+ } else {
+ NSLog(@"No data received");
+ }
+ }
+ }];
+ [task resume];
+}
+
++ (void)uploadAD_Start{
+ NSMutableDictionary *mdic = [NSMutableDictionary dictionary];
+ [mdic setObject:[self getDeviceId] forKey:@"deviceId"];
+ [mdic setObject:[self getGaid] forKey:@"gaid"];
+ [mdic setObject:[self getLocalIp] forKey:@"localIp"];
+ NSString *remoteIp = [[NSUserDefaults standardUserDefaults] stringForKey:@"kIP_key"];
+ if (remoteIp) {
+ [mdic setObject:remoteIp forKey:@"remoteIp"];
+ }else{
+ [mdic setObject:@"" forKey:@"remoteIp"];
+ }
+ [mdic setObject:@"com.trendwallpaper.app" forKey:@"packageName"];
+ [mdic setObject:@"" forKey:@"linkId"];
+ [mdic setObject:@"" forKey:@"dataId"];
+
+ [LuxNetManager uploadData:mdic urlPath:kURL_AD_Start callback:^(NSError * _Nonnull err, BOOL state, NSDictionary * _Nonnull result) {
+
+ }];
+}
+
++ (void)uploadAD_Show {
+ NSMutableDictionary *mdic = [NSMutableDictionary dictionary];
+
+ [mdic setObject:[self getDeviceId] forKey:@"deviceId"];
+ [mdic setObject:[self getGaid] forKey:@"gaid"];
+ [mdic setObject:[self getLocalIp] forKey:@"localIp"];
+
+ NSString *remoteIp = [[NSUserDefaults standardUserDefaults] stringForKey:@"kIP_key"];
+ [mdic setObject:remoteIp ? remoteIp : @"" forKey:@"remoteIp"];
+
+ [mdic setObject:@"com.trendwallpaper.app" forKey:@"packageName"];
+ [mdic setObject:@"MAX" forKey:@"adPlatform"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"countryCode"] forKey:@"countryCode"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"adId"] forKey:@"adId"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"platformResponseTime"] forKey:@"platformResponseTime"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"shelfNumber"] forKey:@"shelfNumber"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"ecpm"] forKey:@"ecpm"];
+ [mdic setObject:@0.0 forKey:@"getIpResponseTime"];
+ [mdic setObject:@"" forKey:@"dsp"];
+ [mdic setObject:@"" forKey:@"dataId"];
+ [mdic setObject:@"" forKey:@"linkId"];
+ [mdic setObject:@0 forKey:@"loadTime"];
+ [mdic setObject:@(YES) forKey:@"succeed"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"network"] forKey:@"network"];
+
+ // Log the JSON data to verify it's correctly formatted
+ NSError *jsonError;
+ NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mdic options:NSJSONWritingPrettyPrinted error:&jsonError];
+ if (jsonError) {
+ NSLog(@"Error serializing JSON: %@", jsonError.localizedDescription);
+ return;
+ }
+ NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
+ NSLog(@"Uploading AD Show with data: %@", jsonString);
+
+ [LuxNetManager uploadData:mdic urlPath:kURL_AD_Show callback:^(NSError * _Nonnull err, BOOL state, NSDictionary * _Nonnull result) {
+ if (err) {
+ NSLog(@"Error uploading AD Show: %@", err.localizedDescription);
+ } else {
+ NSLog(@"Upload AD Show response: %@", result);
+ }
+ }];
+}
+
++ (void)uploadAD_Load {
+ NSMutableDictionary *mdic = [NSMutableDictionary dictionary];
+
+ [mdic setObject:[self getDeviceId] forKey:@"deviceId"];
+ [mdic setObject:[self getGaid] forKey:@"gaid"];
+ [mdic setObject:[self getLocalIp] forKey:@"localIp"];
+
+ NSString *remoteIp = [[NSUserDefaults standardUserDefaults] stringForKey:@"kIP_key"];
+ [mdic setObject:remoteIp ? remoteIp : @"" forKey:@"remoteIp"];
+
+ [mdic setObject:@"com.trendwallpaper.app" forKey:@"packageName"];
+ [mdic setObject:@"MAX" forKey:@"adPlatform"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"countryCode"] forKey:@"countryCode"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"adId"] forKey:@"adId"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"platformResponseTime"] forKey:@"platformResponseTime"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"shelfNumber"] forKey:@"shelfNumber"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] objectForKey:@"ecpm"] forKey:@"ecpm"];
+ [mdic setObject:@0.0 forKey:@"getIpResponseTime"];
+ [mdic setObject:@"" forKey:@"dsp"];
+ [mdic setObject:@"" forKey:@"dataId"];
+ [mdic setObject:@"" forKey:@"linkId"];
+ [mdic setObject:@0 forKey:@"loadTime"];
+ [mdic setObject:@(YES) forKey:@"succeed"];
+ [mdic setObject:[[NSUserDefaults standardUserDefaults] stringForKey:@"network"] forKey:@"network"];
+
+ // Log the JSON data to verify it's correctly formatted
+ NSError *jsonError;
+ NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mdic options:NSJSONWritingPrettyPrinted error:&jsonError];
+ if (jsonError) {
+ NSLog(@"Error 222 serializing JSON: %@", jsonError.localizedDescription);
+ return;
+ }
+ NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
+ NSLog(@"Uploading 22 AD Show with data: %@", jsonString);
+
+ [LuxNetManager uploadData:mdic urlPath:kURL_AD_Load callback:^(NSError * _Nonnull err, BOOL state, NSDictionary * _Nonnull result) {
+ if (err) {
+ NSLog(@"222222222: %@", err.localizedDescription);
+ } else {
+ NSLog(@"222222222222: %@", result);
+ }
+ }];
+}
+
+//请求远程ip
++ (void)requestRemoteIp {
+ NSURL *url = [NSURL URLWithString:@"https://api.ipify.org/?format=json"];
+ NSURLRequest *request = [NSURLRequest requestWithURL:url];
+ NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
+ if(error) {
+ NSLog(@"解析ip失败....");
+ }
+ else {
+ id result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
+ if(result) {
+ NSString *ip = result[@"ip"];
+ if(ip.length) {
+ [[NSUserDefaults standardUserDefaults] setObject:ip forKey:@"kIP_key"];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+
+ }
+ else {
+ NSLog(@"解析ip失败....");
+ }
+ }
+ else {
+ NSLog(@"解析ip失败....");
+ }
+ }
+ }];
+ [task resume];
+}
+
++ (NSString *)getDeviceId {
+ return [UIDevice currentDevice].identifierForVendor.UUIDString;
+}
+
+
++ (NSString *)getLocalIp {
+ NSString *address = @"an error occurred when obtaining ip address";
+ struct ifaddrs *interfaces = NULL;
+ struct ifaddrs *temp_addr = NULL;
+ int success = 0;
+ success = getifaddrs(&interfaces);
+ if (success == 0) { // 0 表示获取成功
+ temp_addr = interfaces;
+ while (temp_addr != NULL) {
+ if( temp_addr->ifa_addr->sa_family == AF_INET) {
+
+NSInteger bravery_T = 6;
+NSInteger awful_q = [[NSUserDefaults standardUserDefaults] integerForKey:@"trademark_e"];
+awful_q *= bravery_T;
+[[NSUserDefaults standardUserDefaults] setInteger:awful_q forKey:@"trademark_e"];
+
+
+ // Check if interface is en0 which is the wifi connection on the iPhone
+ if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {
+
+NSDateFormatter *rebuke_5 = [NSDateFormatter new];
+[rebuke_5 setDateFormat:@"yyyy-MM-dd HH:mm"];
+NSString *apple_5 = [rebuke_5 stringFromDate:[NSDate date]];
+[[NSUserDefaults standardUserDefaults] setObject:apple_5 forKey:@"brutal_f"];
+
+
+ // Get NSString from C String
+ address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
+ }
+ }
+ temp_addr = temp_addr->ifa_next;
+ }
+ }
+ freeifaddrs(interfaces);
+ return address;
+}
+
++ (NSString *)getPackageName {
+ NSString *bid = [[NSBundle mainBundle] bundleIdentifier];
+ return bid;
+}
+
++ (NSString *)getGaid {
+ NSString *idfa = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
+ return idfa;
+}
+
+
+
+@end
diff --git a/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m b/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m
index 18dc762..ee87d09 100644
--- a/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m
+++ b/HDwallpaper/WallPapaerADManager/AWM_WallPapaerADManager.m
@@ -34,10 +34,10 @@
//
#define kAppLovinSDK_Key @"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX"
-#define kWallPaper_OpenAD @"228275830e494edc" //开屏
-#define kInterstitial_BackAD @"43c096614eb15e06"//返回 插页
-#define kInterstitial_SaveAD @"99a545c14fe760b4" //保存 插页
-#define kInterstitial_SearchAD @"fcfba91be4420a25" //搜索 插页
+#define kWallPaper_OpenAD @"748bee67bbad21b9" //开屏
+#define kInterstitial_BackAD @"e5837c56c18ee712"//返回 插页
+#define kInterstitial_SaveAD @"edf0554479388c05" //保存 插页
+#define kInterstitial_SearchAD @"5a3cff8307e36497" //搜索 插页
#define kOpenAdCTimeLength 15.0//最多等待开屏广告加载时常
#define kOpenADPerSec 0.05
@@ -383,20 +383,21 @@ lesion_5 *= villain_5;
self.retryAttempt_searchAD = 0;
[[NSUserDefaults standardUserDefaults] setObject:ALSdk.shared.configuration.countryCode forKey:@"countryCode"];
- NSTimeInterval interval = ad.requestLatency;
- NSNumber *intervalNumber = [NSNumber numberWithDouble:interval];
- [[NSUserDefaults standardUserDefaults] setObject:intervalNumber forKey:@"platformResponseTime"];
+ NSTimeInterval interval = ad.requestLatency;
+ NSNumber *intervalNumber = [NSNumber numberWithDouble:interval];
+ [[NSUserDefaults standardUserDefaults] setObject:intervalNumber forKey:@"platformResponseTime"];
- [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dsp"];
+ [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:@"dsp"];
- double revenue = ad.revenue;
- NSNumber *revenueNumber = [NSNumber numberWithDouble:revenue];
- [[NSUserDefaults standardUserDefaults] setObject:revenueNumber forKey:@"ecpm"];
+ double revenue = ad.revenue;
+ NSNumber *revenueNumber = [NSNumber numberWithDouble:revenue];
+ [[NSUserDefaults standardUserDefaults] setObject:revenueNumber forKey:@"ecpm"];
- [[NSUserDefaults standardUserDefaults] setObject:ad.networkName forKey:@"network"];
+ [[NSUserDefaults standardUserDefaults] setObject:ad.networkName forKey:@"network"];
- [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"];
- [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"];
+ [[NSUserDefaults standardUserDefaults] setObject:ad.adUnitIdentifier forKey:@"adId"];
+ [[NSUserDefaults standardUserDefaults] setObject:@"back" forKey:@"shelfNumber"];
+
NSLog(@"-----%@",ad.adUnitIdentifier);
NSLog(@"self.openAD.adUnitIdentifier-----%@",self.openAD.adUnitIdentifier);
diff --git a/TallPaper.xcodeproj/project.pbxproj b/TallPaper.xcodeproj/project.pbxproj
index 8da28d5..4acf77d 100644
--- a/TallPaper.xcodeproj/project.pbxproj
+++ b/TallPaper.xcodeproj/project.pbxproj
@@ -30,6 +30,10 @@
0004D8972C363D5800B3E467 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0004D8962C363D5800B3E467 /* InfoPlist.strings */; };
0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0004D89B2C36443C00B3E467 /* AWM_NetManager.m */; };
00C5EEC72C52404B000553BF /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C5EEC62C52404B000553BF /* GoogleService-Info.plist */; };
+ 00C5EECD2C527F71000553BF /* LuxADManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EECC2C527F71000553BF /* LuxADManager.m */; };
+ 00C5EED02C5355BE000553BF /* LuxNetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EECF2C5355BE000553BF /* LuxNetManager.m */; };
+ 00C5EED32C537155000553BF /* LuxADSuperVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EED22C537155000553BF /* LuxADSuperVC.m */; };
+ 00C5EED62C537DD7000553BF /* LuxADSSModeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */; };
057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 057AF7942BF1E86F00078C98 /* AppDelegate.m */; };
057AF7A02BF1E87100078C98 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 057AF79F2BF1E87100078C98 /* Assets.xcassets */; };
057AF7A32BF1E87100078C98 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 057AF7A12BF1E87100078C98 /* LaunchScreen.storyboard */; };
@@ -92,6 +96,14 @@
0004D89B2C36443C00B3E467 /* AWM_NetManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AWM_NetManager.m; sourceTree = ""; };
00218D932C4F807A00966466 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; };
00C5EEC62C52404B000553BF /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
+ 00C5EECB2C527F71000553BF /* LuxADManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADManager.h; sourceTree = ""; };
+ 00C5EECC2C527F71000553BF /* LuxADManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADManager.m; sourceTree = ""; };
+ 00C5EECE2C5355BE000553BF /* LuxNetManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxNetManager.h; sourceTree = ""; };
+ 00C5EECF2C5355BE000553BF /* LuxNetManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxNetManager.m; sourceTree = ""; };
+ 00C5EED12C537155000553BF /* LuxADSuperVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADSuperVC.h; sourceTree = ""; };
+ 00C5EED22C537155000553BF /* LuxADSuperVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADSuperVC.m; sourceTree = ""; };
+ 00C5EED42C537DD7000553BF /* LuxADSSModeVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LuxADSSModeVC.h; sourceTree = ""; };
+ 00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LuxADSSModeVC.m; sourceTree = ""; };
041A9EAF08B4BEE8FF03DD23 /* Pods-HD wallpaper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HD wallpaper.debug.xcconfig"; path = "Target Support Files/Pods-HD wallpaper/Pods-HD wallpaper.debug.xcconfig"; sourceTree = ""; };
057AF7902BF1E86F00078C98 /* TallPaper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TallPaper.app; sourceTree = BUILT_PRODUCTS_DIR; };
057AF7932BF1E86F00078C98 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
@@ -188,6 +200,21 @@
path = Net;
sourceTree = "";
};
+ 00C5EECA2C527F59000553BF /* LuxADManager */ = {
+ isa = PBXGroup;
+ children = (
+ 00C5EECB2C527F71000553BF /* LuxADManager.h */,
+ 00C5EECC2C527F71000553BF /* LuxADManager.m */,
+ 00C5EECE2C5355BE000553BF /* LuxNetManager.h */,
+ 00C5EECF2C5355BE000553BF /* LuxNetManager.m */,
+ 00C5EED12C537155000553BF /* LuxADSuperVC.h */,
+ 00C5EED22C537155000553BF /* LuxADSuperVC.m */,
+ 00C5EED42C537DD7000553BF /* LuxADSSModeVC.h */,
+ 00C5EED52C537DD7000553BF /* LuxADSSModeVC.m */,
+ );
+ path = LuxADManager;
+ sourceTree = "";
+ };
057AF7872BF1E86F00078C98 = {
isa = PBXGroup;
children = (
@@ -214,6 +241,7 @@
0004D8992C36442700B3E467 /* Net */,
0004D8822C35349200B3E467 /* WallPapaerADManager */,
0004D85F2C352F3C00B3E467 /* FW */,
+ 00C5EECA2C527F59000553BF /* LuxADManager */,
057AF7932BF1E86F00078C98 /* AppDelegate.h */,
057AF7942BF1E86F00078C98 /* AppDelegate.m */,
057AF7AC2BF1F13400078C98 /* AWM_OnePageViewController.h */,
@@ -428,12 +456,16 @@
057AF7952BF1E86F00078C98 /* AppDelegate.m in Sources */,
0004D89C2C36443C00B3E467 /* AWM_NetManager.m in Sources */,
057AF7C32BF20CF700078C98 /* AWM_DetailViewController.m in Sources */,
+ 00C5EECD2C527F71000553BF /* LuxADManager.m in Sources */,
057AF7B42BF1F14300078C98 /* AWM_ditViewController.m in Sources */,
0004D8852C3534AC00B3E467 /* AWM_WallPapaerADManager.m in Sources */,
+ 00C5EED02C5355BE000553BF /* LuxNetManager.m in Sources */,
75CC6F9D2C4649C20013FB06 /* AWP_Color.m in Sources */,
+ 00C5EED62C537DD7000553BF /* LuxADSSModeVC.m in Sources */,
75CC6FA62C464BB10013FB06 /* CustomButton.m in Sources */,
75CC6FA92C464C110013FB06 /* CustomTableView.m in Sources */,
057AF7C02BF209E100078C98 /* AWM_AllWallpaperViewController.m in Sources */,
+ 00C5EED32C537155000553BF /* LuxADSuperVC.m in Sources */,
057AF7A62BF1E87100078C98 /* main.m in Sources */,
0004D88B2C355DF100B3E467 /* AWM_UserPravcyVC.m in Sources */,
);
diff --git a/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme b/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme
index 1bb87b2..98b5ed4 100644
--- a/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme
+++ b/TallPaper.xcodeproj/xcshareddata/xcschemes/HD wallpaper.xcscheme
@@ -32,8 +32,8 @@