Wallpaper_Home/wallpaper_project/Community/C/WA_AddVC.swift
2024-08-19 14:40:12 +08:00

284 lines
9.9 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// WA_AddVC.swift
// wallpaper_project
import UIKit
import SVProgressHUD
import AppLovinSDK
import FirebaseAnalytics
import FirebaseCore
import FirebaseRemoteConfig
import MTGSDKNewInterstitial
import MTGSDKBidding
import MTGSDK
import AnyThinkInterstitial
class WA_AddVC: WA_RootVC,UITextViewDelegate {
@IBOutlet weak var contentImageV: UIImageView!
@IBOutlet weak var contenttextV: UITextView!
@IBOutlet weak var sureBtn: UIButton!
let placeholderLabel = UILabel()
let activityView = UIActivityIndicatorView()
var interstitialAd: MAInterstitialAd!
var retryAttempt = 0.0
var remoteConfig: RemoteConfig!
var isadshow:Bool = false
var bidToken:String?
var newInterstitialAdManager:MTGNewInterstitialBidAdManager?
override func viewDidLoad() {
super.viewDidLoad()
// Remote Config
remoteConfig = RemoteConfig.remoteConfig()
//
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 0
remoteConfig.configSettings = settings
// Fetch
remoteConfig.setDefaults(fromPlist: "isopen")
// Fetch
// fetchRemoteConfig()
// fetchRemoteConfig()
Analytics.logEvent("in_release", parameters: nil)
contenttextV.layer.cornerRadius = 5
contenttextV.layer.borderColor = UIColor.black.cgColor
contenttextV.layer.borderWidth = 1
contentImageV.layer.cornerRadius = 5
sureBtn.layer.cornerRadius = 5
// textViewframe
contenttextV.delegate = self
// Label
placeholderLabel.text = "Please enter the content..."
placeholderLabel.textColor = UIColor.lightGray
placeholderLabel.frame = CGRect(x: 5, y: 8, width: contenttextV.frame.width - 10, height: 20)
contenttextV.addSubview(placeholderLabel)
activityView.center = CGPoint(x: self.view.center.x, y: self.view.center.y - kSafeArea_Top - 44)
//
activityView.hidesWhenStopped = true
activityView.color = .black
activityView.style = UIActivityIndicatorView.Style.whiteLarge
self.view.addSubview(activityView)
}
func textViewDidChange(_ textView: UITextView) {
placeholderLabel.isHidden = !textView.text.isEmpty
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// self.createInterstitialAd()
loadTopAD()
}
func loadTopAD(){
let extra: [String: Any] = [
kATAdLoadingExtraMediaExtraKey: "custom_values"
]
ATAdManager.shared().loadAD(withPlacementID: "n66bdc1da370ec", extra: extra, delegate: self)
self.fetchRemoteConfig()
}
@IBAction func backBtn(_ sender: Any) {
self.dismiss(animated: true)
}
@IBAction func upBtn(_ sender: Any) {
var imagePicker = UIImagePickerController()
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
imagePicker.delegate = self
// imagePicker.allowsEditing = true
imagePicker.sourceType = .photoLibrary
present(imagePicker, animated: true, completion: nil)
}
}
@IBAction func sureBtn(_ sender: Any) {
if self.contenttextV.text.count <= 0 {
SVProgressHUD.showInfo(withStatus: "Please enter your recommendation reason")
DispatchQueue.global().asyncAfter(deadline: .now() + 1.0) {
SVProgressHUD.dismiss()
}
}else if self.contentImageV.image == nil{
SVProgressHUD.showInfo(withStatus: "Please select the image you recommend")
DispatchQueue.global().asyncAfter(deadline: .now() + 1.0) {
SVProgressHUD.dismiss()
}
}else{
DispatchQueue.main.asyncAfter(deadline: .now()){
self.activityView.startAnimating()
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
DispatchQueue.main.asyncAfter(deadline: .now()){
self.activityView.stopAnimating()
self.dismiss(animated: true)
}
if self.isadshow == true{
if ATAdManager.shared().interstitialReady(forPlacementID: "n66bdc1da370ec"){
ATAdManager.shared().showInterstitial(withPlacementID: "n66bdc1da370ec", in: self, delegate: self)
StartManager.shared.shelfNumber = "发布页面show"
setPostSHOW()
}
}
}
}
let headimage = UIImage(named: "loginhead_s")
let base64imgString = convertImageToString(image: headimage!)
let contnetimg = self.contentImageV.image
let base64String = convertImageToString(image: contnetimg!)
let dataModel1 = WA_RakModel(name: "Saul", content: self.contenttextV.text, head:base64imgString, img: base64String)
PreferencesManager.shared.addRakModel(dataModel1)
}
}
///广
func fetchRemoteConfig() {
let localVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "0.0"
remoteConfig.fetch{ (status, error) -> Void in
if status == .success {
print("Config fetched!")
self.remoteConfig.activate { changed, error in
if error == nil{
let js = self.remoteConfig.configValue(forKey: "isopen").jsonValue as! [String:Any]
let valueopen = js["isadopen"] as! Bool
let valueversion = js["version"] as! String
DispatchQueue.main.async {
if valueversion == localVersion{
self.isadshow = false
}else{
if valueopen {
self.isadshow = true
} else {
self.isadshow = false
}
}
}
}
}
} else {
print("Config not fetched")
if let error = error {
print("Error: \(error.localizedDescription)")
}
}
}
}
// UIImage
func convertImageToString(image: UIImage) -> String? {
if let imageData = image.jpegData(compressionQuality: 1.0) {
// Base64
let base64String = imageData.base64EncodedString()
return base64String
}
return nil
}
}
extension WA_AddVC: UIImagePickerControllerDelegate & UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let selectedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
contentImageV.image = selectedImage
}
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
}
extension WA_AddVC:ATInterstitialDelegate{
// 广
func interstitialDidShow(forPlacementID placementID: String, extra: [AnyHashable : Any]) {
print("----成功")
}
/// 广
func interstitialDidClick(forPlacementID placementID: String, extra: [AnyHashable : Any]) {
print("----点击")
}
// 广
func interstitialDidClose(forPlacementID placementID: String, extra: [AnyHashable : Any]) {
print("----关闭")
// WA_TabbarCommon.TabBarController()
DispatchQueue.global().asyncAfter(deadline: .now() + 1.0) {
SVProgressHUD.dismiss()
}
}
func didFinishLoadingAD(withPlacementID placementID: String!) {
print("ATInterstitialViewController::didFailToLoadADWithPlacementID:\(placementID)")
}
// load
func didFailToLoadAD(withPlacementID placementID: String!, error: (any Error)!) {
print("----load失败")
print("ATInterstitialViewController::didFailToLoadADWithPlacementID:\(String(describing: placementID))---error\(String(describing: error))")
}
// 广
func didFinishLoadingADSource(withPlacementID placementID: String!,extra: [AnyHashable : Any]?) {
let networkID = extra?["network_firm_id"]
let ecpm = extra?["adsource_price"]
let country = extra?["country"]
if let adsourcePriceString = extra?["adsource_price"] as? String,
let adsourcePrice = Double(adsourcePriceString) {
StartManager.shared.ecpm = Float(adsourcePrice) / 1000
print("-----ecpm ID: \(StartManager.shared.ecpm)")
} else {
print("无法获取 adsource_price 或类型不匹配")
}
StartManager.shared.countryCode = country as? String
StartManager.shared.network = network(networkID as! Int)
StartManager.shared.shelfNumber = "发布页面load"
StartManager.shared.adId = "n66bdc1da370ec"
setPostload()
print("ATInterstitialViewController::didFailToLoadADWithPlacementID:\(placementID)")
}
}