Commit 8c1d49c2 authored by CZ1004's avatar CZ1004

Merge branch 'dev_main' into dev_zhaoqian

* dev_main:
  1
  广告收入上报
  ui 调整
  ui 调整
parents 5976d431 9779b105
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 042EF7452DD4A3F90028DE2C /* Kingfisher */; }; 042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 042EF7452DD4A3F90028DE2C /* Kingfisher */; };
046463832DDF5A48008C852D /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 046463822DDF5A48008C852D /* FirebaseAnalytics */; };
046463852DDF5A48008C852D /* FirebaseCore in Frameworks */ = {isa = PBXBuildFile; productRef = 046463842DDF5A48008C852D /* FirebaseCore */; };
0496DEF32D9E3F58005B2834 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915D2D9D68AD00055CEB /* WidgetKit.framework */; }; 0496DEF32D9E3F58005B2834 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915D2D9D68AD00055CEB /* WidgetKit.framework */; };
0496DEF42D9E3F58005B2834 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915F2D9D68AD00055CEB /* SwiftUI.framework */; }; 0496DEF42D9E3F58005B2834 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04BD915F2D9D68AD00055CEB /* SwiftUI.framework */; };
0496DEFF2D9E3F59005B2834 /* widgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0496DEF22D9E3F57005B2834 /* widgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 0496DEFF2D9E3F59005B2834 /* widgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0496DEF22D9E3F57005B2834 /* widgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
...@@ -210,8 +212,10 @@ ...@@ -210,8 +212,10 @@
04C299E22DDE02530054D76C /* AdSupport.framework in Frameworks */, 04C299E22DDE02530054D76C /* AdSupport.framework in Frameworks */,
042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */, 042EF7462DD4A3F90028DE2C /* Kingfisher in Frameworks */,
3A00E856852A8783E544CD7D /* Pods_PhoneManager.framework in Frameworks */, 3A00E856852A8783E544CD7D /* Pods_PhoneManager.framework in Frameworks */,
046463852DDF5A48008C852D /* FirebaseCore in Frameworks */,
04CA06622DDDB40E009A15E3 /* KeychainSwift in Frameworks */, 04CA06622DDDB40E009A15E3 /* KeychainSwift in Frameworks */,
04EC294B2DD33B480049739A /* GoogleSignIn in Frameworks */, 04EC294B2DD33B480049739A /* GoogleSignIn in Frameworks */,
046463832DDF5A48008C852D /* FirebaseAnalytics in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -402,6 +406,7 @@ ...@@ -402,6 +406,7 @@
04EC26182DD33B070049739A /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */, 04EC26182DD33B070049739A /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */,
042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */, 042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */,
04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */, 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */,
046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
); );
preferredProjectObjectVersion = 77; preferredProjectObjectVersion = 77;
productRefGroup = EB388E5C2D8A61A800629B0D /* Products */; productRefGroup = EB388E5C2D8A61A800629B0D /* Products */;
...@@ -1027,6 +1032,14 @@ ...@@ -1027,6 +1032,14 @@
minimumVersion = 8.3.2; minimumVersion = 8.3.2;
}; };
}; };
046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/firebase/firebase-ios-sdk";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 11.13.0;
};
};
04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */ = { 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/evgenyneu/keychain-swift.git"; repositoryURL = "https://github.com/evgenyneu/keychain-swift.git";
...@@ -1051,6 +1064,16 @@ ...@@ -1051,6 +1064,16 @@
package = 042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */; package = 042EF7442DD4A3780028DE2C /* XCRemoteSwiftPackageReference "Kingfisher" */;
productName = Kingfisher; productName = Kingfisher;
}; };
046463822DDF5A48008C852D /* FirebaseAnalytics */ = {
isa = XCSwiftPackageProductDependency;
package = 046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseAnalytics;
};
046463842DDF5A48008C852D /* FirebaseCore */ = {
isa = XCSwiftPackageProductDependency;
package = 046463812DDF5A1F008C852D /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseCore;
};
04CA06612DDDB40E009A15E3 /* KeychainSwift */ = { 04CA06612DDDB40E009A15E3 /* KeychainSwift */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */; package = 04CA06602DDDB3F8009A15E3 /* XCRemoteSwiftPackageReference "keychain-swift" */;
......
{ {
"originHash" : "de1a4dc6f64c5ce471b3f7c477ef76458170ad953fc5100955926b1f2889707a", "originHash" : "adb191961c40e5f91d7183a69d699ffc93b7484a9bff6bcd805acc4dafe394ba",
"pins" : [ "pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5",
"version" : "1.2024072200.0"
}
},
{ {
"identity" : "app-check", "identity" : "app-check",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -19,6 +28,33 @@ ...@@ -19,6 +28,33 @@
"version" : "1.7.6" "version" : "1.7.6"
} }
}, },
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "3663b1aa6c7a1bed67ee80fd09dc6d0f9c3bb660",
"version" : "11.13.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "543071966b3fb6613a2fc5c6e7112d1e998184a7",
"version" : "11.13.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "617af071af9aa1d6a091d59a202910ac482128f9",
"version" : "10.1.0"
}
},
{ {
"identity" : "googlesignin-ios", "identity" : "googlesignin-ios",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -37,6 +73,15 @@ ...@@ -37,6 +73,15 @@
"version" : "8.1.0" "version" : "8.1.0"
} }
}, },
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "cc0001a0cf963aa40501d9c2b181e7fc9fd8ec71",
"version" : "1.69.0"
}
},
{ {
"identity" : "gtm-session-fetcher", "identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -55,6 +100,15 @@ ...@@ -55,6 +100,15 @@
"version" : "4.1.1" "version" : "4.1.1"
} }
}, },
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe",
"version" : "101.0.0"
}
},
{ {
"identity" : "keychain-swift", "identity" : "keychain-swift",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -73,6 +127,24 @@ ...@@ -73,6 +127,24 @@
"version" : "8.3.2" "version" : "8.3.2"
} }
}, },
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
"version" : "1.22.5"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
"version" : "2.30910.0"
}
},
{ {
"identity" : "promises", "identity" : "promises",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
...@@ -81,6 +153,15 @@ ...@@ -81,6 +153,15 @@
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
"version" : "2.4.0" "version" : "2.4.0"
} }
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "d72aed98f8253ec1aa9ea1141e28150f408cf17f",
"version" : "1.29.0"
}
} }
], ],
"version" : 3 "version" : 3
......
...@@ -12,7 +12,7 @@ import GoogleMobileAds ...@@ -12,7 +12,7 @@ import GoogleMobileAds
import UserMessagingPlatform import UserMessagingPlatform
import GoogleSignIn import GoogleSignIn
import AdjustSdk import AdjustSdk
import FirebaseCore
@main @main
class AppDelegate: UIResponder, UIApplicationDelegate { class AppDelegate: UIResponder, UIApplicationDelegate {
...@@ -40,6 +40,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -40,6 +40,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
widgetAppgourp.share.PushWidgetData(battery: Int(battery), storage: Int(storage)) widgetAppgourp.share.PushWidgetData(battery: Int(battery), storage: Int(storage))
//初始化adjust //初始化adjust
let yourAppToken = "6mouvwgw7ksg" let yourAppToken = "6mouvwgw7ksg"
...@@ -68,6 +69,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -68,6 +69,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// 初始化广告SDK // 初始化广告SDK
AdvManager.shared.initAdertisementSDK() AdvManager.shared.initAdertisementSDK()
FirebaseApp.configure()
PMEmailManager.shareManager.restore() PMEmailManager.shareManager.restore()
SettingConfiguration.share.initData() SettingConfiguration.share.initData()
HapticManager.share.setupHapticEngine() HapticManager.share.setupHapticEngine()
...@@ -79,26 +81,26 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -79,26 +81,26 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
Adjust.attribution { attribution in Adjust.attribution { attribution in
// Print("获取归因数据11",attribution?.jsonResponse) Print("获取当前归因信息",attribution as Any)
// if let dic = attribution?.jsonResponse{
// let pram = self.convertToSwiftDictionary(dic as NSDictionary)
// APIReportManager.shared.startReport(type: .source_atrribute,ext: pram)
// }
// let pram = [ // let pram = [
// "trackerToken":attribution?.trackerToken ?? "", // "tracker_token":attribution?.trackerToken ?? "",
// "trackerName":attribution?.trackerName ?? "", // "tracker_name":attribution?.trackerName ?? "",
// "network":attribution?.network ?? "", // "network":attribution?.network ?? "",
// "campaign":attribution?.campaign ?? "", // "campaign":attribution?.campaign ?? "",
// "adgroup":attribution?.adgroup ?? "", // "adgroup":attribution?.adgroup ?? "",
// "creative":attribution?.creative ?? "", // "creative":attribution?.creative ?? "",
// "clickLabel":attribution?.clickLabel ?? "", // "click_label":attribution?.clickLabel ?? "",
// "costType":attribution?.costType ?? "", // "cost_type":attribution?.costType ?? "",
// "costAmount":attribution?.costAmount ?? "", // "cost_amount":attribution?.costAmount ?? "",
// "costCurrency":attribution?.costCurrency ?? "", // "cost_currency":attribution?.costCurrency ?? "0"
// ] // ]
// let dic = attribution.jso
Print("获取当前归因信息",attribution?.jsonResponse as Any)
//APIReportManager.shared.startReport(type: .source_atrribute,ext: pram)
// Print("归因字典",pram)
// Print("归因json",attribution?.jsonResponse)
} }
PMLoadingHUD.share.config() PMLoadingHUD.share.config()
...@@ -225,5 +227,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -225,5 +227,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
return GIDSignIn.sharedInstance.handle(url) return GIDSignIn.sharedInstance.handle(url)
} }
func convertToSwiftDictionary(_ nsDict: NSDictionary) -> [String: Any] {
return nsDict as? [String: Any] ?? [:]
}
} }
...@@ -62,8 +62,11 @@ extension AppDelegate:AdjustDelegate{ ...@@ -62,8 +62,11 @@ extension AppDelegate:AdjustDelegate{
func adjustAttributionChanged(_ attribution: ADJAttribution?) { func adjustAttributionChanged(_ attribution: ADJAttribution?) {
guard let attribution = attribution else { return } guard let attribution = attribution else { return }
// 可以将这些数据上报给自己的服务器或者做其他处理
print("归因变化数据:", attribution.jsonResponse)
Print("归因变化数据",attribution.jsonResponse as Any)
if let dic = attribution.jsonResponse{
let pram = self.convertToSwiftDictionary(dic as NSDictionary)
APIReportManager.shared.startReport(type: .source_atrribute,ext: pram)
}
} }
} }
{ {
"images" : [ "images" : [
{ {
"filename" : "Frame.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "1x" "scale" : "1x"
}, },
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "pm-home-Frame-del@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "pm-home-Frame-del@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{ {
"images" : [ "images" : [
{ {
"filename" : "重复项说明-icon-未选中.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "重复项说明-icon-未选中@2x.png", "filename" : "Frame@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "重复项说明-icon-未选中@3x.png", "filename" : "Frame@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -114,11 +114,7 @@ class IAPManager: NSObject { ...@@ -114,11 +114,7 @@ class IAPManager: NSObject {
// 是否热启动 // 是否热启动
var isHotLaunch:Bool = false var isHotLaunch:Bool = false
// 订阅状态 // 订阅状态
var subscriptionType:SubscriptionType = .none{ var subscriptionType:SubscriptionType = .none
didSet{
isSubscribed = subscriptionType != .none
}
}
func config(){} func config(){}
......
...@@ -10,6 +10,7 @@ import GoogleMobileAds ...@@ -10,6 +10,7 @@ import GoogleMobileAds
import UserMessagingPlatform import UserMessagingPlatform
import AppTrackingTransparency import AppTrackingTransparency
import AdSupport import AdSupport
import AppLovinSDK
enum AdvertisementType { enum AdvertisementType {
case rewardedInterstitialType case rewardedInterstitialType
...@@ -20,8 +21,8 @@ enum AdvertisementType { ...@@ -20,8 +21,8 @@ enum AdvertisementType {
class AdvManager : NSObject, FullScreenContentDelegate { class AdvManager : NSObject, FullScreenContentDelegate {
// fixme:上线前更改 // fixme:上线前更改
// private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/4276457203" // private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/4276457203"
// private static let INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/5836950888" // private static let INTERSTITIALAD_KEY : String = "ca-app-pub-3480207748580737/5836950888"
// info.plist: ca-app-pub-3480207748580737~4236262472 // info.plist: ca-app-pub-3480207748580737~4236262472
private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3940256099942544/6978759866" private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3940256099942544/6978759866"
...@@ -94,14 +95,26 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -94,14 +95,26 @@ class AdvManager : NSObject, FullScreenContentDelegate {
/// 初始化SDK /// 初始化SDK
func initAdertisementSDK() { func initAdertisementSDK() {
// Initialize the Google Mobile Ads SDK. ALPrivacySettings.setDoNotSell(true)
MobileAds.shared.start()
// Request an ad. MobileAds.shared.start { status in
let adapterStatuses = status.adapterStatusesByClassName
for adapter in adapterStatuses {
let adapterStatus = adapter.value
NSLog("Adapter Name: %@, Description: %@, Latency: %f", adapter.key,
adapterStatus.description, adapterStatus.latency)
}
Task { Task {
// 同时load两个广告内容 // 同时load两个广告内容
await self.loadInterstitial() await self.loadInterstitial()
await self.loadRewardedInterstitialAd() await self.loadRewardedInterstitialAd()
} }
// 隐私设置
ALPrivacySettings.setHasUserConsent(true)
}
} }
/// 获取激励插页广告 /// 获取激励插页广告
...@@ -112,6 +125,26 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -112,6 +125,26 @@ class AdvManager : NSObject, FullScreenContentDelegate {
rewardedInterstitialAd = try await RewardedInterstitialAd.load( rewardedInterstitialAd = try await RewardedInterstitialAd.load(
with: AdvManager.REWARDED_INTERSTITIALAD_KEY, request: Request()) with: AdvManager.REWARDED_INTERSTITIALAD_KEY, request: Request())
rewardedInterstitialAd?.fullScreenContentDelegate = self rewardedInterstitialAd?.fullScreenContentDelegate = self
rewardedInterstitialAd?.paidEventHandler = {[weak self] value in
guard let weakSelf = self else { return }
print("激励广告价值回调",value)
let valueMicros = value.value
let currencyCode = value.currencyCode
let precision = value.precision
// 获取基础广告信息
var pram = weakSelf.loadedAdNetworkResponseInfo(ad: weakSelf.rewardedInterstitialAd)
// // 添加价值相关信息到 pram 字典中
pram["valueMicros"] = "\(valueMicros)"
pram["currencyCode"] = currencyCode
pram["precision"] = "\(precision.rawValue)"
print("广告价值和来源", pram)
// 使用 APIReportManager 上报广告价值
APIReportManager().startReport(type: .ad_price, ext: pram)
}
APIReportManager.shared.startReport( APIReportManager.shared.startReport(
type: .ad_pull, type: .ad_pull,
ext: ["ad_type":"rewardAd", ext: ["ad_type":"rewardAd",
...@@ -140,6 +173,26 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -140,6 +173,26 @@ class AdvManager : NSObject, FullScreenContentDelegate {
interstitial = try await InterstitialAd.load( interstitial = try await InterstitialAd.load(
with: AdvManager.INTERSTITIALAD_KEY, request: Request()) with: AdvManager.INTERSTITIALAD_KEY, request: Request())
interstitial?.fullScreenContentDelegate = self interstitial?.fullScreenContentDelegate = self
interstitial?.paidEventHandler = {[weak self] value in
guard let weakSelf = self else { return }
print("插屏广告价值回调",value)
let valueMicros = value.value
let currencyCode = value.currencyCode
let precision = value.precision
// 获取基础广告信息
var pram = weakSelf.loadedAdNetworkResponseInfo(ad: weakSelf.interstitial)
// // 添加价值相关信息到 pram 字典中
pram["valueMicros"] = "\(valueMicros)"
pram["currencyCode"] = currencyCode
pram["precision"] = "\(precision.rawValue)"
print("广告价值和来源", pram)
// 使用 APIReportManager 上报广告价值
APIReportManager().startReport(type: .ad_price, ext: pram)
}
APIReportManager.shared.startReport( APIReportManager.shared.startReport(
type: .ad_pull, type: .ad_pull,
ext: ["ad_type":"interAd", ext: ["ad_type":"interAd",
...@@ -296,7 +349,7 @@ class AdvManager : NSObject, FullScreenContentDelegate { ...@@ -296,7 +349,7 @@ class AdvManager : NSObject, FullScreenContentDelegate {
extension AdvManager{ extension AdvManager{
func loadedAdNetworkResponseInfo(ad: FullScreenPresentingAd) ->[String:String]{ func loadedAdNetworkResponseInfo(ad: FullScreenPresentingAd?) ->[String:String]{
var adNetworkName = "" var adNetworkName = ""
var adSourceName = "" var adSourceName = ""
...@@ -314,6 +367,7 @@ extension AdvManager{ ...@@ -314,6 +367,7 @@ extension AdvManager{
adSourceInstanceID = rewardedAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown" adSourceInstanceID = rewardedAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown"
} else if let interstitialAd = ad as? InterstitialAd { } else if let interstitialAd = ad as? InterstitialAd {
adNetworkName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adNetworkClassName ?? "unknown" adNetworkName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adNetworkClassName ?? "unknown"
adSourceName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceName ?? "unknown" adSourceName = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceName ?? "unknown"
adSourceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceID ?? "unknown" adSourceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceID ?? "unknown"
...@@ -322,22 +376,24 @@ extension AdvManager{ ...@@ -322,22 +376,24 @@ extension AdvManager{
adSourceInstanceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown" adSourceInstanceID = interstitialAd.responseInfo.loadedAdNetworkResponseInfo?.adSourceInstanceID ?? "unknown"
} }
var ad_type = "interAd" var pram = [
if let _ = ad as? RewardedInterstitialAd{
ad_type = "rewardAd"
}
let pram = [
"ad_type": ad_type,
"from":currentVCName, "from":currentVCName,
"networkname":adNetworkName, "networkname":adNetworkName,
"source":adSourceName, "adSourceName":adSourceName,
"adSourceInstanceName":adSourceInstanceName, "adSourceInstanceName":adSourceInstanceName,
"adSourceID":adSourceID, "adSourceId":adSourceID,
"adNetworkClassName":adNetworkClassName, "adNetworkClassName":adNetworkClassName,
"adSourceInstanceID":adSourceInstanceID "adSourceInstanceId":adSourceInstanceID,
] ]
if let rewardAd = ad as? RewardedInterstitialAd{
pram["ad_type"] = "rewardAd"
pram["adUnitId"] = rewardAd.adUnitID
}else if let interstitial = ad as? InterstitialAd{
pram["ad_type"] = "interAd"
pram["adUnitId"] = interstitial.adUnitID
}
return pram return pram
} }
} }
......
...@@ -41,7 +41,7 @@ class CompressCustomHeaderView: UICollectionReusableView{ ...@@ -41,7 +41,7 @@ class CompressCustomHeaderView: UICollectionReusableView{
lazy var filterButton : UIButton = { lazy var filterButton : UIButton = {
let button = UIButton(type: .custom) let button = UIButton(type: .custom)
button.setImage(UIImage(named: "Frame 1"), for: .normal) button.setImage(UIImage(named: "Frame 1"), for: .normal)
button.setTitle("The largest", for: .normal) button.setTitle("largest", for: .normal)
button.layer.cornerRadius = 14 button.layer.cornerRadius = 14
button.clipsToBounds = true button.clipsToBounds = true
button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000) button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
......
...@@ -126,7 +126,7 @@ class HomePhotosDetailViewController : BaseViewController { ...@@ -126,7 +126,7 @@ class HomePhotosDetailViewController : BaseViewController {
lazy var trashSubView : TrashSubView = { lazy var trashSubView : TrashSubView = {
let view = TrashSubView() let view = TrashSubView()
view.backgroundColor = .white view.backgroundColor = UIColor.colorWithHex(hexStr: "#F2F6FC")
view.isHidden = true view.isHidden = true
return view return view
}() }()
......
...@@ -101,7 +101,7 @@ class HomeVideoDetailController :BaseViewController { ...@@ -101,7 +101,7 @@ class HomeVideoDetailController :BaseViewController {
lazy var trashSubView : TrashSubView = { lazy var trashSubView : TrashSubView = {
let view = TrashSubView() let view = TrashSubView()
view.backgroundColor = .white view.backgroundColor = UIColor.colorWithHex(hexStr: "#F2F6FC")
view.tipLabel.text = "The video in the trash can" view.tipLabel.text = "The video in the trash can"
view.isHidden = true view.isHidden = true
return view return view
......
...@@ -251,7 +251,7 @@ class HomeViewController:BaseViewController { ...@@ -251,7 +251,7 @@ class HomeViewController:BaseViewController {
DispatchQueue.main.async { DispatchQueue.main.async {
if !IAPManager.share.showYearPage{ if !IAPManager.share.showYearPage{
HomePayViewController.show { HomePayViewController.show {
NotificationManager().configNotifications() // NotificationManager().configNotifications()
} }
} }
} }
...@@ -291,7 +291,7 @@ class HomeViewController:BaseViewController { ...@@ -291,7 +291,7 @@ class HomeViewController:BaseViewController {
Singleton.shared.startCountdown {} Singleton.shared.startCountdown {}
if !isShowCharge { if !isShowCharge {
NotificationManager().configNotifications() // NotificationManager().configNotifications()
return return
} }
......
...@@ -78,7 +78,7 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -78,7 +78,7 @@ class PhotoRemoveViewController: BaseViewController {
lazy var trashSubView : TrashSubView = { lazy var trashSubView : TrashSubView = {
let view = TrashSubView() let view = TrashSubView()
view.backgroundColor = .white view.backgroundColor = UIColor.colorWithHex(hexStr: "#F2F6FC")
view.isHidden = true view.isHidden = true
return view return view
}() }()
...@@ -163,7 +163,7 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -163,7 +163,7 @@ class PhotoRemoveViewController: BaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1) self.view.backgroundColor = .white//UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1)
formatter.dateStyle = .medium formatter.dateStyle = .medium
formatter.timeStyle = .none formatter.timeStyle = .none
......
...@@ -62,7 +62,7 @@ class HomeInfoView :UIView { ...@@ -62,7 +62,7 @@ class HomeInfoView :UIView {
lazy var deleteView:HomeInfoDeleteView = { lazy var deleteView:HomeInfoDeleteView = {
let cH:CGFloat = 48 + 2 * marginLR + safeHeight let cH:CGFloat = 45 + 2 * marginLR + safeHeight
let sview:HomeInfoDeleteView = HomeInfoDeleteView(frame: CGRect(x: 0, y: height - cH, width: width, height: cH)) let sview:HomeInfoDeleteView = HomeInfoDeleteView(frame: CGRect(x: 0, y: height - cH, width: width, height: cH))
...@@ -438,7 +438,7 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate { ...@@ -438,7 +438,7 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
let models = ids?[indexPath.row] let models = ids?[indexPath.row]
return ((models?.count ?? 0) > 2 ? 190 : 214) + 8 return ((models?.count ?? 0) > 2 ? 205 : 229) + 8
} }
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
...@@ -519,7 +519,7 @@ class HomeInfoTitleView:UIView { ...@@ -519,7 +519,7 @@ class HomeInfoTitleView:UIView {
let sview:UILabel = UILabel() let sview:UILabel = UILabel()
sview.font = .systemFont(ofSize: 20, weight: .bold) sview.font = .systemFont(ofSize: 22, weight: .bold)
sview.textColor = UIColor.colorWithHex(hexStr: black3Color) sview.textColor = UIColor.colorWithHex(hexStr: black3Color)
sview.x = 15 sview.x = 15
sview.y = 14 sview.y = 14
...@@ -545,7 +545,7 @@ class HomeInfoTitleView:UIView { ...@@ -545,7 +545,7 @@ class HomeInfoTitleView:UIView {
lazy var filterButton : UIButton = { lazy var filterButton : UIButton = {
let button = UIButton(type: .custom) let button = UIButton(type: .custom)
button.setImage(UIImage(named: "Frame 1"), for: .normal) button.setImage(UIImage(named: "Frame 1"), for: .normal)
button.setTitle("The largest", for: .normal) button.setTitle("largest", for: .normal)
button.layer.cornerRadius = 14 button.layer.cornerRadius = 14
button.clipsToBounds = true button.clipsToBounds = true
button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000) button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
...@@ -601,7 +601,7 @@ class HomeInfoTitleView:UIView { ...@@ -601,7 +601,7 @@ class HomeInfoTitleView:UIView {
let attributedString2 = NSMutableAttributedString(string: fullText, attributes: [ let attributedString2 = NSMutableAttributedString(string: fullText, attributes: [
.font: UIFont.systemFont(ofSize: 14), .font: UIFont.systemFont(ofSize: 14,weight: .semibold),
.foregroundColor: UIColor.colorWithHex(hexStr: "#666666") .foregroundColor: UIColor.colorWithHex(hexStr: "#666666")
]) ])
...@@ -649,15 +649,16 @@ class HomeInfoDeleteView:UIView { ...@@ -649,15 +649,16 @@ class HomeInfoDeleteView:UIView {
let sview:UIButton = UIButton() let sview:UIButton = UIButton()
sview.titleLabel?.font = .systemFont(ofSize: 16, weight: .bold) sview.titleLabel?.font = .systemFont(ofSize: 16, weight: .semibold)
sview.addTarget(self, action: #selector(deleteBtnClick), for: .touchUpInside) sview.addTarget(self, action: #selector(deleteBtnClick), for: .touchUpInside)
sview.backgroundColor = UIColor.colorWithHex(hexStr: mColor) sview.backgroundColor = UIColor.colorWithHex(hexStr: mColor)
sview.setImage(UIImage(named: "pm-home-Frame-del"), for: .normal)
sview.width = width - 2 * marginLR sview.width = width - 2 * 39
sview.height = 48 sview.height = 45
sview.titleEdgeInsets = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 0)
sview.centerX = width / 2 sview.centerX = width / 2
sview.y = marginLR sview.y = marginLR
sview.layer.cornerRadius = sview.height / 2 sview.layer.cornerRadius = 12
sview.layer.masksToBounds = true sview.layer.masksToBounds = true
return sview return sview
...@@ -665,7 +666,7 @@ class HomeInfoDeleteView:UIView { ...@@ -665,7 +666,7 @@ class HomeInfoDeleteView:UIView {
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
self.backgroundColor = .clear
setupUI() setupUI()
} }
...@@ -675,9 +676,9 @@ class HomeInfoDeleteView:UIView { ...@@ -675,9 +676,9 @@ class HomeInfoDeleteView:UIView {
func setupUI() { func setupUI() {
self.setShadow() // self.setShadow()
backgroundColor = .white backgroundColor = .clear
addSubview(deleteBtn) addSubview(deleteBtn)
} }
......
...@@ -26,7 +26,7 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView { ...@@ -26,7 +26,7 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
lazy var filterButton : UIButton = { lazy var filterButton : UIButton = {
let button = UIButton(type: .custom) let button = UIButton(type: .custom)
button.setImage(UIImage(named: "Frame 1"), for: .normal) button.setImage(UIImage(named: "Frame 1"), for: .normal)
button.setTitle("The largest", for: .normal) button.setTitle("largest", for: .normal)
button.layer.cornerRadius = 14 button.layer.cornerRadius = 14
button.clipsToBounds = true button.clipsToBounds = true
button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000) button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
......
...@@ -24,7 +24,7 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView { ...@@ -24,7 +24,7 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
lazy var filterButton : UIButton = { lazy var filterButton : UIButton = {
let button = UIButton(type: .custom) let button = UIButton(type: .custom)
button.setImage(UIImage(named: "Frame 1"), for: .normal) button.setImage(UIImage(named: "Frame 1"), for: .normal)
button.setTitle("The largest", for: .normal) button.setTitle("largest", for: .normal)
button.layer.cornerRadius = 14 button.layer.cornerRadius = 14
button.clipsToBounds = true button.clipsToBounds = true
button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000) button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
......
...@@ -82,17 +82,17 @@ class HomeView:UIView { ...@@ -82,17 +82,17 @@ class HomeView:UIView {
viewModel.homeDataChanged = {[weak self] section,row in viewModel.homeDataChanged = {[weak self] section,row in
guard let weakSelf = self else { return } guard let weakSelf = self else { return }
DispatchQueue.main.async { DispatchQueue.main.async {
if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeTitleCollectionCell { // if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeTitleCollectionCell {
// 只更新需要改变的内容 // // 只更新需要改变的内容
let model = weakSelf.viewModel.headerGroup[row] // let model = weakSelf.viewModel.headerGroup[row]
cell.reloadUIWithModel(model: model) // cell.reloadUIWithModel(model: model)
} // }
if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeOtherCollectionCell { // if let cell = weakSelf.collectionView.cellForItem(at: IndexPath(row: row, section: section)) as? HomeOtherCollectionCell {
// 只更新需要改变的内容 // // 只更新需要改变的内容
let model = weakSelf.viewModel.cardGroup[row] // let model = weakSelf.viewModel.cardGroup[row]
cell.reloadUIWithModel(model: model) // cell.reloadUIWithModel(model: model)
} // }
// weakSelf.collectionView.reloadData() weakSelf.collectionView.reloadData()
weakSelf.homeHeader?.progressBar.chaoticProgress = CGFloat(weakSelf.viewModel.totalSize) weakSelf.homeHeader?.progressBar.chaoticProgress = CGFloat(weakSelf.viewModel.totalSize)
weakSelf.reloadHeadSize() weakSelf.reloadHeadSize()
} }
......
...@@ -10,10 +10,10 @@ import Foundation ...@@ -10,10 +10,10 @@ import Foundation
import SnapKit import SnapKit
enum ResouceSortType : String{ enum ResouceSortType : String{
case largest = "The largest" case largest = "largest"
case smallest = "The smallest" case smallest = "smallest"
case latest = "The latest" case latest = "latest"
case oldest = "The oldest" case oldest = "oldest"
} }
struct ResourceFilterBoxModel { struct ResourceFilterBoxModel {
...@@ -36,7 +36,7 @@ class ResourceFilterBoxView : UIView { ...@@ -36,7 +36,7 @@ class ResourceFilterBoxView : UIView {
var endDate : Date? var endDate : Date?
var currentSortType: ResouceSortType = .largest var currentSortType: ResouceSortType = .largest
let tableData: [String] = ["The largest", "The smallest", "The latest", "The oldest"] let tableData: [String] = ["largest", "smallest", "latest", "oldest"]
var callBack : callBack<Any> = {sortType in} var callBack : callBack<Any> = {sortType in}
var datePicker : YearMonthPickerView? var datePicker : YearMonthPickerView?
......
...@@ -32,21 +32,27 @@ class TrashSubView: UIView { ...@@ -32,21 +32,27 @@ class TrashSubView: UIView {
lazy var emptyButton: UIButton = { lazy var emptyButton: UIButton = {
let button = UIButton(type: .custom) let button = UIButton(type: .custom)
button.setImage(UIImage(named: "ic_delete_duplicates"), for: .normal) button.setImage(UIImage(named: "pm-home-Frame-del"), for: .normal)
button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 1) button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 1)
button.setTitle("Empty Trash", for: .normal) button.setTitle("Empty Trash", for: .normal)
button.setTitleColor(.white, for: .normal) button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold) button.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold)
button.layer.cornerRadius = 19 button.layer.cornerRadius = 19
button.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
button.clipsToBounds = true button.clipsToBounds = true
button.addTarget(self, action: #selector(emptyButtonAction), for: .touchUpInside) button.addTarget(self, action: #selector(emptyButtonAction), for: .touchUpInside)
return button return button
}() }()
override func layoutSubviews() {
super.layoutSubviews()
self.setShadow(cornerRadius: 0, sColor: UIColor.colorWithHex(hexStr: "#1475B9"), offset: CGSizeMake(3, -1),opacity: 0.15)
}
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
self.addTopShadow() // self.addTopShadow()
// 给当前视图添加手势 // 给当前视图添加手势
addTapGestureToSelf() addTapGestureToSelf()
...@@ -71,7 +77,8 @@ class TrashSubView: UIView { ...@@ -71,7 +77,8 @@ class TrashSubView: UIView {
make.top.equalToSuperview().offset(17) make.top.equalToSuperview().offset(17)
make.bottom.equalToSuperview().offset(-17 - safeHeight) make.bottom.equalToSuperview().offset(-17 - safeHeight)
make.left.equalTo(self.resourceCountlabel.snp.right).offset(11) make.left.equalTo(self.resourceCountlabel.snp.right).offset(11)
make.width.equalTo(100) // make.width.equalTo(200)
make.right.equalTo(emptyButton.snp.left).offset(-5)
} }
self.emptyButton.snp.makeConstraints { make in self.emptyButton.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-9) make.right.equalToSuperview().offset(-9)
......
...@@ -52,11 +52,11 @@ class HomeInfoTableViewCell:UITableViewCell { ...@@ -52,11 +52,11 @@ class HomeInfoTableViewCell:UITableViewCell {
backView?.isUserInteractionEnabled = true backView?.isUserInteractionEnabled = true
numberLabel = UILabel() numberLabel = UILabel()
numberLabel?.textColor = UIColor.colorWithHex(hexStr: black3Color) numberLabel?.textColor = UIColor.colorWithHex(hexStr: "#111111")
numberLabel?.font = UIFont.systemFont(ofSize: 16, weight: .bold) numberLabel?.font = UIFont.systemFont(ofSize: 16, weight: .semibold)
seletedAllBtn = UIButton() seletedAllBtn = UIButton()
seletedAllBtn?.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .bold) seletedAllBtn?.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .semibold)
seletedAllBtn?.setTitle("Select All", for: .normal) seletedAllBtn?.setTitle("Select All", for: .normal)
seletedAllBtn?.setTitle("Unselect all", for: .selected) seletedAllBtn?.setTitle("Unselect all", for: .selected)
...@@ -66,7 +66,7 @@ class HomeInfoTableViewCell:UITableViewCell { ...@@ -66,7 +66,7 @@ class HomeInfoTableViewCell:UITableViewCell {
let flowlayout:UICollectionViewFlowLayout = UICollectionViewFlowLayout() let flowlayout:UICollectionViewFlowLayout = UICollectionViewFlowLayout()
flowlayout.scrollDirection = .horizontal flowlayout.scrollDirection = .horizontal
flowlayout.minimumLineSpacing = 10 flowlayout.minimumLineSpacing = 6
collectionView = UICollectionView.init(frame: CGRectMake(0, 0 , ScreenW , ScreenH), collectionViewLayout: flowlayout) collectionView = UICollectionView.init(frame: CGRectMake(0, 0 , ScreenW , ScreenH), collectionViewLayout: flowlayout)
collectionView?.backgroundColor = .clear collectionView?.backgroundColor = .clear
...@@ -95,26 +95,26 @@ class HomeInfoTableViewCell:UITableViewCell { ...@@ -95,26 +95,26 @@ class HomeInfoTableViewCell:UITableViewCell {
guard let model else {return} guard let model else {return}
let cH = ((model.smodels?.count ?? 0) > 2 ? 190 : 214) + 8 let cH = ((model.smodels?.count ?? 0) > 2 ? 205 : 229) + 8
backView?.height = CGFloat(cH - 8) backView?.height = CGFloat(cH - 8)
backView?.width = ScreenW - 16 * 2 backView?.width = ScreenW - 8 * 2
backView?.centerY = CGFloat(cH / 2) backView?.centerY = CGFloat(cH / 2)
backView?.centerX = ScreenW / 2 backView?.centerX = ScreenW / 2
numberLabel?.text = "\(model.smodels?.count ?? 0) \(String(model.titleText!))" numberLabel?.text = "\(model.smodels?.count ?? 0) \(String(model.titleText!))"
numberLabel?.sizeToFit() numberLabel?.sizeToFit()
numberLabel?.x = (backView?.x ?? 0) + marginLR numberLabel?.x = (backView?.x ?? 0) + 8
numberLabel?.y = (backView?.y ?? 0) + marginLR numberLabel?.y = (backView?.y ?? 0) + 8
seletedAllBtn?.centerY = numberLabel?.centerY ?? 0 seletedAllBtn?.centerY = numberLabel?.centerY ?? 0
seletedAllBtn?.x = (backView?.x ?? 0) + (backView?.width ?? 0) - 12 - (seletedAllBtn?.width ?? 0) seletedAllBtn?.x = (backView?.x ?? 0) + (backView?.width ?? 0) - 12 - (seletedAllBtn?.width ?? 0)
checkSeletedAll() checkSeletedAll()
collectionView?.height = CGFloat(cH - 64) collectionView?.height = CGFloat(cH - Int(CGRectGetMaxY(numberLabel?.frame ?? CGRect())) - 16)
collectionView?.width = (backView?.width ?? 0) - marginLR collectionView?.width = (backView?.width ?? 0) - 16
collectionView?.x = (backView?.x ?? 0) + marginLR collectionView?.x = (backView?.x ?? 0) + 8
collectionView?.y = (backView?.y ?? 0) + (backView?.height ?? 0) - (collectionView?.height ?? 0) - 16 collectionView?.y = (backView?.y ?? 0) + (backView?.height ?? 0) - (collectionView?.height ?? 0) - 8
self.collectionView?.reloadData() self.collectionView?.reloadData()
......
...@@ -140,7 +140,7 @@ class HomePhotosDetailCollectionCell : UICollectionViewCell { ...@@ -140,7 +140,7 @@ class HomePhotosDetailCollectionCell : UICollectionViewCell {
self.selectImageView.snp.makeConstraints { make in self.selectImageView.snp.makeConstraints { make in
make.bottom.right.equalToSuperview().offset(-6) make.bottom.right.equalToSuperview().offset(-6)
make.height.width.equalTo(18) make.height.width.equalTo(18.38)
} }
self.saveSizeView.snp.makeConstraints { make in self.saveSizeView.snp.makeConstraints { make in
......
...@@ -196,7 +196,7 @@ class HomeVideoDetailCell : UICollectionViewCell { ...@@ -196,7 +196,7 @@ class HomeVideoDetailCell : UICollectionViewCell {
} }
self.playImageView.snp.makeConstraints { make in self.playImageView.snp.makeConstraints { make in
make.center.equalToSuperview() make.center.equalToSuperview()
make.width.height.equalTo(18.38) make.width.height.equalTo(26.RW())
} }
self.saveSizeView.snp.makeConstraints { make in self.saveSizeView.snp.makeConstraints { make in
make.left.top.equalToSuperview().offset(6) make.left.top.equalToSuperview().offset(6)
......
...@@ -213,7 +213,7 @@ class ImageSeletedCollectionCell:UICollectionViewCell { ...@@ -213,7 +213,7 @@ class ImageSeletedCollectionCell:UICollectionViewCell {
seletedBtn?.snp.makeConstraints({ make in seletedBtn?.snp.makeConstraints({ make in
make.width.height.equalTo(12) make.width.height.equalTo(18.38.RW())
make.bottom.equalToSuperview().offset(-6) make.bottom.equalToSuperview().offset(-6)
make.right.equalToSuperview().offset(-6) make.right.equalToSuperview().offset(-6)
}) })
......
...@@ -63,7 +63,7 @@ class PMShowImgVideoController: BaseViewController { ...@@ -63,7 +63,7 @@ class PMShowImgVideoController: BaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1) self.view.backgroundColor = .white//UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1)
self.view.addSubview(self.navView) self.view.addSubview(self.navView)
self.navView.showType = .dateAndSizeNav self.navView.showType = .dateAndSizeNav
...@@ -102,6 +102,7 @@ class PMShowImgVideoController: BaseViewController { ...@@ -102,6 +102,7 @@ class PMShowImgVideoController: BaseViewController {
self.MaxCollection.scrollToItem(at: IndexPath(row: currentIdx, section: 0), at: .centeredHorizontally, animated: false) self.MaxCollection.scrollToItem(at: IndexPath(row: currentIdx, section: 0), at: .centeredHorizontally, animated: false)
changeNavInfo() changeNavInfo()
backView.setShadow(cornerRadius: 0, sColor: UIColor.colorWithHex(hexStr: "#1475B9"), offset: CGSizeMake(3, -1),opacity: 0.15)
} }
private func changeNavInfo(){ private func changeNavInfo(){
...@@ -161,7 +162,7 @@ class PMShowImgVideoController: BaseViewController { ...@@ -161,7 +162,7 @@ class PMShowImgVideoController: BaseViewController {
let col = UICollectionView(frame: CGRect(), collectionViewLayout: flowlayout) let col = UICollectionView(frame: CGRect(), collectionViewLayout: flowlayout)
col.delegate = self; col.delegate = self;
col.dataSource = self; col.dataSource = self;
col.backgroundColor = .clear
col.register(PMShowItemCell.self, forCellWithReuseIdentifier: PMShowItemCellID) col.register(PMShowItemCell.self, forCellWithReuseIdentifier: PMShowItemCellID)
col.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "UICollectionViewCell") col.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "UICollectionViewCell")
col.showsHorizontalScrollIndicator = false col.showsHorizontalScrollIndicator = false
...@@ -230,7 +231,7 @@ class PMShowImgVideoController: BaseViewController { ...@@ -230,7 +231,7 @@ class PMShowImgVideoController: BaseViewController {
private lazy var backView: UIView = { private lazy var backView: UIView = {
let v = UIView() let v = UIView()
v.backgroundColor = .white v.backgroundColor = UIColor.colorWithHex(hexStr: "#F2F6FC")
view.addSubview(v) view.addSubview(v)
return v return v
}() }()
......
...@@ -36,11 +36,12 @@ class SecretBottomView: UIView { ...@@ -36,11 +36,12 @@ class SecretBottomView: UIView {
layer.shadowOffset = CGSize(width: 0, height: -2) layer.shadowOffset = CGSize(width: 0, height: -2)
layer.shadowOpacity = 1 layer.shadowOpacity = 1
layer.shadowRadius = 10 layer.shadowRadius = 10
self.backgroundColor = .clear
} }
private lazy var clayer: CALayer = { private lazy var clayer: CALayer = {
let l = CALayer() let l = CALayer()
l.backgroundColor = UIColor.white.cgColor l.backgroundColor = UIColor.clear.cgColor
return l return l
}() }()
......
...@@ -20,7 +20,9 @@ class TrashViewController: BaseViewController { ...@@ -20,7 +20,9 @@ class TrashViewController: BaseViewController {
button.setTitle("Delete", for: .normal) button.setTitle("Delete", for: .normal)
button.setTitleColor(.white, for: .normal) button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .semibold) button.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .semibold)
button.setImage(UIImage(named: "pm-home-Frame-del"), for: .normal)
button.backgroundColor = UIColor.colorWithHex(hexStr: "#0082FF") button.backgroundColor = UIColor.colorWithHex(hexStr: "#0082FF")
button.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
button.layer.cornerRadius = 20 button.layer.cornerRadius = 20
button.addTarget(self, action: #selector(delBtnAction), for: .touchUpInside) button.addTarget(self, action: #selector(delBtnAction), for: .touchUpInside)
return button return button
...@@ -124,18 +126,36 @@ class TrashViewController: BaseViewController { ...@@ -124,18 +126,36 @@ class TrashViewController: BaseViewController {
lazy var videoView:TrashContenView = { lazy var videoView:TrashContenView = {
let videoView = TrashContenView() let videoView = TrashContenView()
videoView.trashType = .video videoView.trashType = .video
videoView.callback = { idx in
UIView.animate(withDuration: 0.2) {
self.contentScrollView.contentOffset = CGPoint(x: Int(self.view.width) * idx, y: 0)
self.currentPage = idx + 1
}
}
return videoView return videoView
}() }()
lazy var otherView:TrashContenView = { lazy var otherView:TrashContenView = {
let otherView = TrashContenView() let otherView = TrashContenView()
otherView.trashType = .other otherView.trashType = .other
otherView.callback = { idx in
UIView.animate(withDuration: 0.2) {
self.contentScrollView.contentOffset = CGPoint(x: Int(self.view.width) * idx, y: 0)
self.currentPage = idx + 1
}
}
return otherView return otherView
}() }()
lazy var shotView:TrashContenView = { lazy var shotView:TrashContenView = {
let shotView = TrashContenView() let shotView = TrashContenView()
shotView.trashType = .shot shotView.trashType = .shot
shotView.callback = { idx in
UIView.animate(withDuration: 0.2) {
self.contentScrollView.contentOffset = CGPoint(x: Int(self.view.width) * idx, y: 0)
self.currentPage = idx + 1
}
}
return shotView return shotView
}() }()
...@@ -216,6 +236,7 @@ extension TrashViewController:UIScrollViewDelegate{ ...@@ -216,6 +236,7 @@ extension TrashViewController:UIScrollViewDelegate{
if self.delBtn == nil{ if self.delBtn == nil{
return return
} }
self.delBtn.isHidden = data.count <= 0
if data.count <= 0{ if data.count <= 0{
self.delBtn.setTitle("Delete", for: .normal) self.delBtn.setTitle("Delete", for: .normal)
self.delBtn.backgroundColor = UIColor(red: 0.6, green: 0.6, blue: 0.6, alpha: 1) self.delBtn.backgroundColor = UIColor(red: 0.6, green: 0.6, blue: 0.6, alpha: 1)
......
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
<color key="backgroundColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</imageView> </imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="u7L-fz-1My"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="u7L-fz-1My">
<rect key="frame" x="110" y="0.0" width="28" height="34"/> <rect key="frame" x="104" y="0.0" width="34" height="34"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="28" id="8iF-C1-mzq"/> <constraint firstAttribute="width" constant="34" id="8iF-C1-mzq"/>
<constraint firstAttribute="height" constant="34" id="Yde-4P-yCb"/> <constraint firstAttribute="height" constant="34" id="Yde-4P-yCb"/>
</constraints> </constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/> <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
...@@ -52,6 +52,6 @@ ...@@ -52,6 +52,6 @@
</collectionViewCell> </collectionViewCell>
</objects> </objects>
<resources> <resources>
<image name="icon_trash_remove" width="16" height="16"/> <image name="icon_trash_remove" width="20" height="20"/>
</resources> </resources>
</document> </document>
...@@ -43,7 +43,7 @@ class TrashDefaultView: UIView { ...@@ -43,7 +43,7 @@ class TrashDefaultView: UIView {
lazy var startButton : UIButton = { lazy var startButton : UIButton = {
let view = UIButton() let view = UIButton()
view.setTitle("Start cleaning", for: UIControl.State.normal) view.setTitle("Clean Now", for: UIControl.State.normal)
view.setTitleColor(UIColor(red: 1, green: 1, blue: 1, alpha: 1), for: .normal) view.setTitleColor(UIColor(red: 1, green: 1, blue: 1, alpha: 1), for: .normal)
view.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold) view.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold)
view.clipsToBounds = true view.clipsToBounds = true
......
...@@ -49,13 +49,13 @@ class PMScaleImageView: UIView , UIScrollViewDelegate { ...@@ -49,13 +49,13 @@ class PMScaleImageView: UIView , UIScrollViewDelegate {
} }
self.showImg.snp.remakeConstraints({ make in self.showImg.snp.remakeConstraints({ make in
make.left.equalToSuperview().offset((self.width - size.width)/2.0 ) make.left.equalToSuperview().offset((self.width - size.width)/2.0 )
if size.height < self.height / 2.0 { // if size.height < self.height / 2.0 {
make.top.equalToSuperview().offset((self.height - size.height)/2.0 - 20 ) // make.top.equalToSuperview().offset((self.height - size.height)/2.0 - 20 )
}else if self.height - size.height > 20 { // }else if self.height - size.height > 20 {
make.top.equalToSuperview().offset(10) // make.top.equalToSuperview().offset(10)
}else{ // }else{
make.top.equalToSuperview().offset((self.height - size.height)/2.0 ) make.top.equalToSuperview().offset((self.height - size.height)/2.0 )
} // }
make.size.equalTo(size) make.size.equalTo(size)
}) })
}) })
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>AIzaSyDsq1YCrNyDHATVaIk8MkM1zFZNRMERF1E</string>
<key>GCM_SENDER_ID</key>
<string>671559026879</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.app.phonemanager</string>
<key>PROJECT_ID</key>
<string>ai-phone-manager</string>
<key>STORAGE_BUCKET</key>
<string>ai-phone-manager.firebasestorage.app</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:671559026879:ios:3e9d1cac64859ed57d5e0a</string>
</dict>
</plist>
\ No newline at end of file
This diff is collapsed.
...@@ -20,6 +20,9 @@ target 'PhoneManager' do ...@@ -20,6 +20,9 @@ target 'PhoneManager' do
pod 'GoogleAPIClientForREST/Gmail' pod 'GoogleAPIClientForREST/Gmail'
pod 'Adjust', '~> 5.4.0' pod 'Adjust', '~> 5.4.0'
#广告适配器
pod 'GoogleMobileAdsMediationAppLovin'
# pod 'GoogleMobileAdsMediationFacebook'
post_install do |installer| post_install do |installer|
installer.pods_project.targets.each do |target| installer.pods_project.targets.each do |target|
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment