Commit 4a2a200b authored by Steven杜宇's avatar Steven杜宇

Merge branch 'yinhe-live-1212' of...

Merge branch 'yinhe-live-1212' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into yinhe-live-1212
parents 82a5edb7 874c1f6b
......@@ -31,11 +31,13 @@ platform :ios do
xmas_1130_branch = "qmas-1130"
yinhe_live_1212 = "yinhe-live-1212"
sc_105_branch = "sc-1.0.5"
main_fix = "main-fix"
#打包正使用的分支
myPack_branch = yinhe_live_1212
# 打adhoc包 执行命令 fastlane galaxyTest
lane :galaxyTest do
# add actions here: https://docs.fastlane.tools/actions
......
......@@ -7220,7 +7220,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxyTestEnv.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
......@@ -7246,7 +7246,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.0.0;
MARKETING_VERSION = 2.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -7364,7 +7364,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxy.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
......@@ -7390,7 +7390,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.0.0;
MARKETING_VERSION = 2.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -7571,7 +7571,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxyDebug.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
......@@ -7597,7 +7597,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.0.0;
MARKETING_VERSION = 2.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -7618,7 +7618,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxy.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
......@@ -7644,7 +7644,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.0.0;
MARKETING_VERSION = 2.0.2;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......
......@@ -29,9 +29,9 @@ class YHBaseViewController: UIViewController {
IQKeyboardManager.shared.isEnabled = true
#endif
// navigationController?.interactivePopGestureRecognizer?.delegate = self
let key = getKeys()
if !key.isEmpty {
YHAnalytics.track(getKeys())
if let key = getKeys(),!key.isEmpty {
YHAnalytics.track(key)
}
}
......@@ -51,35 +51,38 @@ class YHBaseViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let key = getKeys()
if !key.isEmpty {
YHAnalytics.timeStrat(getKeys())
if let key = getKeys(),!key.isEmpty {
YHAnalytics.timeStrat(key)
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
let key = getKeys()
if !key.isEmpty {
YHAnalytics.timeEnd(getKeys())
if let key = getKeys(),!key.isEmpty {
YHAnalytics.timeEnd(key)
}
}
func getKeys() -> String {
func getKeys() -> String? {
let key = String(describing: type(of: self))
if YHAnalyticsUnit.events.keys.contains(key) {
guard let event = YHAnalyticsUnit.events[key] else { return ""}
guard let event = YHAnalyticsUnit.events[key] else { return nil}
if key == "YHHomeInfoDetailContainerViewController" || key == "YHH5WebViewVC" {
let subevent = self.title ?? ""
let events = event as? [String: String] ?? [:]
if events.keys.contains(subevent) {
guard let subEvent = events[subevent] else { return ""}
guard let subEvent = events[subevent] else { return nil}
return subEvent
}
}
return key
if let value = event as? String {
return value
}
}
return ""
return nil
}
......
......@@ -199,7 +199,20 @@ class YHAITabViewController: YHBaseViewController {
guard let self = self else { return }
self.mainChatVC.robotId = self.viewModel.listModel.mainBotId
self.listVC.serviceArr.removeAll()
self.listVC.serviceArr.append(contentsOf: self.viewModel.listModel.entranceConfig)
var arrT = self.viewModel.listModel.entranceConfig
if let configModel = YHConfigManager.shared.reqVM.configModel,configModel.is_integral_open {
// arrT = self.viewModel.listModel.entranceConfig.filter {
// !($0.redirectPath == YHAIJumpPageType.galaxySelect.rawValue)
// }
} else {
//
arrT = self.viewModel.listModel.entranceConfig.filter {
!($0.redirectPath == YHAIJumpPageType.galaxySelect.rawValue)
}
}
self.listVC.serviceArr.append(contentsOf: arrT)
self.listVC.collectionView.reloadData()
}
}
......
......@@ -8,7 +8,7 @@
import UIKit
import FSPagerView
import JXPageControl
//import JXPageControl
class YHAIChatBannerItem {
var id: Int = 0
......
......@@ -91,11 +91,12 @@ class YHProductItemView: UIView {
}
@objc func didClickProductItem() {
UIApplication.shared.yhKeyWindow()?.endEditing(true)
YHAIJumpPageTool.jumpPageWithType(mode: productModel.redirectMode, path: productModel.redirectPath) {
dict in
UIApplication.shared.yhKeyWindow()?.endEditing(true)
if let configModel = YHConfigManager.shared.reqVM.configModel,configModel.is_integral_open {
YHAIJumpPageTool.jumpPageWithType(mode: productModel.redirectMode, path: productModel.redirectPath) {
dict in
}
}
}
......
......@@ -111,10 +111,11 @@ class YHProductListMessageCell: UITableViewCell {
@objc func didMoreButtonClicked() {
UIApplication.shared.yhKeyWindow()?.endEditing(true)
YHAIJumpPageTool.jumpPageWithType(mode: listModel.redirectMode, path: listModel.redirectPath) {
dict in
if let configModel = YHConfigManager.shared.reqVM.configModel,configModel.is_integral_open {
YHAIJumpPageTool.jumpPageWithType(mode: listModel.redirectMode, path: listModel.redirectPath) {
dict in
}
}
}
......
......@@ -43,7 +43,7 @@ class YHButlerServiceManager: NSObject {
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(didRevUatParam), name: YhConstant.YhNotification.didRevUatParam, object: nil)
// NotificationCenter.default.addObserver(self, selector: #selector(didRevUatParam), name: YhConstant.YhNotification.didRevUatParam, object: nil)
}
deinit {
......@@ -113,17 +113,16 @@ class YHButlerServiceManager: NSObject {
return
}
gotoSessionVC(groupTmpId) //for test hjl
// getUserInfoViewModel.getUserInfomation(userId) { [weak self] dataString, avatar, groupTmpId, error in
// // 改变头像
// self?.customUIConfig?.customerHeadImageUrl = avatar
// self?.customUIConfig?.showServiceNickName = true
// self?.updateUserInfo(userId: userId, userData: dataString ?? "", completion: { success in
// DispatchQueue.main.async {
// gotoSessionVC(groupTmpId)
// }
// })
// }
getUserInfoViewModel.getUserInfomation(userId) { [weak self] dataString, avatar, groupTmpId, error in
// 改变头像
self?.customUIConfig?.customerHeadImageUrl = avatar
self?.customUIConfig?.showServiceNickName = true
self?.updateUserInfo(userId: userId, userData: dataString ?? "", completion: { success in
DispatchQueue.main.async {
gotoSessionVC(groupTmpId)
}
})
}
}
}
......@@ -298,8 +297,6 @@ extension YHButlerServiceManager {
}
}
//for test hjl
private func setupInfomationForQiYu(completion: @escaping (Bool) -> Void) {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
completion(false)
......@@ -324,21 +321,27 @@ extension YHButlerServiceManager {
return
}
// 如果新旧账号相同,直接设置用户账号信息
guard QYSDK.shared().currentUserID() != userId else {
guard let currentUserID = QYSDK.shared().currentUserID(), currentUserID.count > 0, currentUserID != userId else {
setupInfomationForQiYu(completion: { done in
completion(done)
})
return
}
// 如果新旧账号不相同,先登出SDK,再用新账号信息写入,
logoutCurrentUser { [weak self] success in
if success {
self?.setupInfomationForQiYu(completion: { done in
completion(done)
})
} else {
completion(success)
}
// if success {
// self?.setupInfomationForQiYu(completion: { done in
// completion(done)
// })
// } else {
// completion(success)
// }
self?.setupInfomationForQiYu(completion: { done in
completion(done)
})
}
}
......
......@@ -102,11 +102,13 @@ class YHHomeHoldViewPageViewController: YHBaseViewController, WKUIDelegate, WKNa
for item in dataSource {
tempTitle.append(item.name)
if item.id == 1 {
//推荐
let vc = homePageVC
vc.configModel = self.viewModel.homeInfoModel
arrItemVCs.append(vc)
}
if item.id == 2 {
//
let vc = YHHomeIdentityViewController()
arrItemVCs.append(vc)
}
......@@ -116,15 +118,18 @@ class YHHomeHoldViewPageViewController: YHBaseViewController, WKUIDelegate, WKNa
arrItemVCs.append(vc)
}
if item.id == 4 {
//相关资讯
let vc = YHHomeInformationViewController()
arrItemVCs.append(vc)
}
if item.id == 5 {
//银河甄选
let vc = YHSelectViewController()
vc.hideFlag = true
arrItemVCs.append(vc)
}
if item.id == 6 {
//直播
let vc = YHLifeViewController()
vc.hideFlag = true
arrItemVCs.append(vc)
......@@ -146,7 +151,7 @@ class YHHomeHoldViewPageViewController: YHBaseViewController, WKUIDelegate, WKNa
segmentedView.reloadData()
} else {
arrItemVCs.removeAll()
var tempTitle: [String] = ["推荐", "身份", "生活", "咨询攻略"]
let tempTitle: [String] = ["推荐", "身份", "生活", "咨询攻略"]
let dataSource = self.viewModel.homeInfoModel?.tab_list ?? []
for item in 0..<4 {
if item == 0{
......
......@@ -30,7 +30,7 @@ class YHLifeViewController: YHBaseViewController {
let collectinoView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectinoView.backgroundColor = .white
collectinoView.contentInset = UIEdgeInsets(top: 16, left: 20, bottom: 0, right: 20)
// collectinoView.contentInset = UIEdgeInsets(top: 16, left: 20, bottom: 0, right: 20)
collectinoView.register(YHLookCollectionViewCell.self, forCellWithReuseIdentifier:YHLookCollectionViewCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
......@@ -189,7 +189,10 @@ extension YHLifeViewController {
view.addSubview(myCollectView)
myCollectView.snp.makeConstraints { make in
make.top.bottom.left.right.equalToSuperview()
make.top.equalToSuperview().offset(10)
make.bottom.equalToSuperview()
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
}
view.addSubview(noDataView)
......
......@@ -21,7 +21,7 @@ class YHConfigModel : SmartCodable {
var suggest_updating: Bool = false
var suggest_updating_msg: String = ""
var is_integral_open : Bool = false //条件控制哈 PingGuoShenHe
var is_integral_open : Bool = false //条件控制哈 PingGuoShenHe true - 展示 false - hidden
// var is_recharge_order_open : Bool = false //双十一banner开关 //`is_recharge_order_open` int NOT NULL DEFAULT '0' COMMENT '1 开启 0关闭',
required init() {
......
......@@ -57,17 +57,10 @@ class YHPreviewInfoNameAndSubNameItemView: UIView {
make.right.equalToSuperview()
make.left.equalTo(nameLable.snp.right).offset(10)
make.height.greaterThanOrEqualTo(20)
// make.bottom.equalToSuperview()
make.bottom.lessThanOrEqualToSuperview()
}
nameLable.setContentCompressionResistancePriority(.required, for: .horizontal)
subtitleLable.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
// nameLable.backgroundColor = .red //for test hjl
// subtitleLable.backgroundColor = .yellow //for test hjl
}
}
......
......@@ -73,8 +73,6 @@ extension YHPreviewInfoNameAndSubNameItemsView {
make.right.equalToSuperview().offset(-kMargin)
make.left.equalToSuperview().offset(kMargin)
make.bottom.equalToSuperview().offset(-21)
// cellView.backgroundColor = UIColor.purple//for test hjl
} else {
make.top.equalTo(tmp!.snp.bottom)
make.right.equalToSuperview().offset(-kMargin)
......@@ -89,9 +87,6 @@ extension YHPreviewInfoNameAndSubNameItemsView {
make.top.equalToSuperview()
make.right.equalToSuperview().offset(-kMargin)
make.left.equalToSuperview().offset(kMargin)
// cellView.backgroundColor = UIColor.purple//for test hjl
} else {
make.top.equalTo(tmp!.snp.bottom)
make.right.equalToSuperview().offset(-kMargin)
......
......@@ -37,16 +37,10 @@ class YHBasePlayerViewController: YHBaseViewController {
return view
}()
// 控制状态
private var isControlsVisible = true
private var controlsAutoHideTimer: Timer?
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
//setupGestures()
//setupNotifications()
}
override func viewWillAppear(_ animated: Bool) {
......@@ -62,8 +56,6 @@ class YHBasePlayerViewController: YHBaseViewController {
gk_navBarAlpha = 1
gk_navigationBar.isHidden = false
view.backgroundColor = .black
// controlsAutoHideTimer?.invalidate()
// controlsAutoHideTimer = nil
UIApplication.shared.isIdleTimerDisabled = false
}
......@@ -96,111 +88,6 @@ class YHBasePlayerViewController: YHBaseViewController {
make.height.equalTo(k_Height_NavigationtBarAndStatuBar)
}
}
// private func setupGestures() {
// let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap))
// containerView.addGestureRecognizer(tap)
// }
//
// // MARK: - Controls Visibility
// @objc private func handleTap() {
// toggleControls()
// }
//
// private func toggleControls() {
// isControlsVisible.toggle()
// //controlView.showControls(isControlsVisible)
// resetControlsAutoHideTimer()
// }
//
// private func resetControlsAutoHideTimer() {
// controlsAutoHideTimer?.invalidate()
// if isControlsVisible {
// controlsAutoHideTimer = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: false) { [weak self] _ in
// self?.hideControls()
// }
// }
// }
//
// private func hideControls() {
// isControlsVisible = false
// //controlView.showControls(false)
// }
}
// MARK: - Notifications
extension YHBasePlayerViewController {
private func setupNotifications() {
NotificationCenter.default.addObserver(
self,
selector: #selector(handleAppDidEnterBackground),
name: UIApplication.didEnterBackgroundNotification,
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(handleAppWillEnterForeground),
name: UIApplication.willEnterForegroundNotification,
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(handleAudioSessionInterruption),
name: AVAudioSession.interruptionNotification,
object: nil
)
}
@objc private func handleAppDidEnterBackground() {
YHPlayerManager.shared.pause()
}
@objc private func handleAppWillEnterForeground() {
YHPlayerManager.shared.resume()
}
@objc private func handleAudioSessionInterruption(_ notification: Notification) {
guard let userInfo = notification.userInfo,
let typeValue = userInfo[AVAudioSessionInterruptionTypeKey] as? UInt,
let type = AVAudioSession.InterruptionType(rawValue: typeValue) else {
return
}
switch type {
case .began:
YHPlayerManager.shared.pause()
case .ended:
if let optionsValue = userInfo[AVAudioSessionInterruptionOptionKey] as? UInt {
let options = AVAudioSession.InterruptionOptions(rawValue: optionsValue)
if options.contains(.shouldResume) {
YHPlayerManager.shared.resume()
}
}
@unknown default:
break
}
}
}
// MARK: - Helper Methods
extension YHBasePlayerViewController {
func formatTime(_ timeInMilliseconds: Int) -> String {
let totalSeconds = timeInMilliseconds / 1000
let minutes = totalSeconds / 60
let seconds = totalSeconds % 60
return String(format: "%02d:%02d", minutes, seconds)
}
func showAlert(message: String) {
let alert = UIAlertController(title: "提示",
message: message,
preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "确定", style: .default))
present(alert, animated: true)
}
}
// MARK: - Orientation Support
......
......@@ -8,6 +8,7 @@
import AgoraRtcKit
import HyphenateChat
//import AVKit
import UIKit
class YHLivePlayerViewController: YHBasePlayerViewController {
......@@ -59,7 +60,7 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
}
vc.closeEvent = { [weak self] in
self?.leaveLiveRoom()
//self?.leaveLiveRoom()
self?.closeLive()
}
......@@ -86,12 +87,6 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
let imageView = UIImageView(image: UIImage(named: "live_player_bg"))
return imageView
}()
// private lazy var blurredView: YHBlurredAvatarView = {
// let view = YHBlurredAvatarView()
// view.isHidden = true
// return view
// }()
// MARK: - Initialization
......@@ -123,6 +118,7 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
joinLiveRoom(id: liveId, callback: { _, _ in })
}
setupTimer()
setupLifeCycleNotifications()
}
override func viewWillAppear(_ animated: Bool) {
......@@ -695,7 +691,8 @@ extension YHLivePlayerViewController: YHPlayerDelegate {
// 直播开始时的特殊处理
break
case .failed:
self.showAlert(message: "播放失败,错误原因:\(reason.rawValue)")
break
//self.showAlert(message: "播放失败,错误原因:\(reason.rawValue)")
default:
break
}
......@@ -717,3 +714,67 @@ extension YHLivePlayerViewController: YHPlayerDelegate {
#endif
}
}
// MARK: - Notifications
extension YHLivePlayerViewController {
private func setupLifeCycleNotifications() {
NotificationCenter.default.addObserver(
self,
selector: #selector(handleAppDidEnterBackground),
name: UIApplication.didEnterBackgroundNotification,
object: nil
)
NotificationCenter.default.addObserver(
self,
selector: #selector(handleAppWillEnterForeground),
name: UIApplication.willEnterForegroundNotification,
object: nil
)
/*
NotificationCenter.default.addObserver(
self,
selector: #selector(handleAudioSessionInterruption),
name: AVAudioSession.interruptionNotification,
object: nil
)
*/
}
@objc private func handleAppDidEnterBackground() {
leaveLiveRoom()
}
@objc private func handleAppWillEnterForeground() {
if YHLoginManager.shared.isLogin() {
joinLiveRoom(id: liveId, callback: { _, _ in })
}
}
/*
@objc private func handleAudioSessionInterruption(_ notification: Notification) {
guard let userInfo = notification.userInfo,
let typeValue = userInfo[AVAudioSessionInterruptionTypeKey] as? UInt,
let type = AVAudioSession.InterruptionType(rawValue: typeValue) else {
return
}
switch type {
case .began:
if let player = player {
YHPlayerManager.shared.leaveChannel(for: player)
}
case .ended:
if let optionsValue = userInfo[AVAudioSessionInterruptionOptionKey] as? UInt {
let options = AVAudioSession.InterruptionOptions(rawValue: optionsValue)
if options.contains(.shouldResume) {
if let liveDetail = viewModel.liveDetailModel, !liveDetail.rtmp_channel.isEmpty, !liveDetail.token.isEmpty, let uid = playbackInfo?.uid, let player = player {
YHPlayerManager.shared.joinChannel(for: player, token: liveDetail.token, channelId: liveDetail.rtmp_channel, uid: uid, view: playerView, defaultMuted: false)
}
}
}
@unknown default:
break
}
}
*/
}
......@@ -56,7 +56,6 @@ private extension YHIMTestViewController {
make.width.equalTo(300)
make.height.equalTo(44)
}
addBtn.backgroundColor = UIColor.red//for test hjl
addBtn.addTarget(self, action: #selector(userLoginOp), for: .touchUpInside)
tagView = addBtn
}
......
......@@ -443,9 +443,6 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
vc.isSupportWebviewInterBackFlag = true
UIViewController.current?.navigationController?.pushViewController(vc)
}
// case .liveEntryTest:
// let vc = YHSimpleAudienceVC()
// self.navigationController?.pushViewController(vc) //for test hjl
case .mycart:
// 我的订单
if let token = YHLoginManager.shared.userModel?.token,token.count > 5 {
......
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