Commit 89b2d797 by ludi

1.加上取消注销的逻辑。

2.禁止截图逻辑。
parent 3fbef179
Showing with 426 additions and 42 deletions
......@@ -77,12 +77,12 @@ static const NSString *FUSCidUDKey = @"FUSCidUDKey";
/// App Version
- (NSString *)appVersion {
return @"7740";
return @"7742";
}
/// App Dot Version
- (NSString *)appDotVersion {
return @"7.7.4.0";
return @"7.7.4.2";
}
/// App Id
......
......@@ -914,7 +914,68 @@ NSString * const kEVENT_RECHARGE_FIRST_RECHARGE_WINDOW_RECEIVE_OFFICIAL_RECAHARG
}
break;
}
/// 调起第三方平台验证
case FUSJsWebCidTypeSocialPlatformVerify: {
NSInteger type = [dataDict[@"type"] integerValue];
FUSSocializedPlatform platform;
switch (type) {
case 1:
break;
case 2:
platform = FUSSocializedPlatformWeChat;
break;
case 3:
break;
case 4:
platform = FUSSocializedPlatformGoogle;
break;
case 5:
platform = FUSSocializedPlatformTwitter;
break;
case 6:
platform = FUSSocializedPlatformFacebook;
break;
case 7:
break;
case 8:
platform = FUSSocializedPlatformLine;
break;
case 9:
platform = FUSSocializedPlatformApple;
break;
default:
break;
}
if (platform == nil) {
[NSString fus_localString:@"当前版本不支援此社交平台"];
return;
}
UIViewController *showViewController = [UINavigationController fus_topViewController];
__weak typeof(self) weakSelf = self;
[FUSLoadingView fus_showProgressViewWithContentMessage:nil withView:showViewController.view];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[FUSLoadingView fus_dismissProgressViewWithView:showViewController.view];
});
[[FUSThirdAccountLoginHelper sharedInstanse] fus_loginWithPlatform:platform facebookFromWeb:NO viewController:showViewController loadingFinish:^{
[FUSLoadingView fus_dismissProgressViewWithView:showViewController.view];
} success:^(NSDictionary *infoDict) {
NSString *openId = [infoDict objectForKey:FUSSocializedFetchOpenIdKey];
NSString *appCallback = [dataDict[@"callBackName"] description];
// [webView.wkWebView evaluateJavaScript:[NSString stringWithFormat:@"appCallback(%@)",[webDict converToString]]
[webView.wkWebView evaluateJavaScript:[NSString stringWithFormat:@"%@(\"%@\")",appCallback, openId] completionHandler:nil];
} failure:^(NSError *error) {
}];
break;
}
/// 接收到网页客服的信息
case FUSJsWebCidTypeReceiveWebServiceChatMessage: {
......
......@@ -136,6 +136,9 @@
/// 用户是否显示快捷发言
@property (nonatomic, assign) BOOL quickChatShowState;
/// 用户禁止截屏,这个只是自己的状态,也就是用于显示自己的设置,其他主播房间状态在房间模型那
@property (nonatomic, assign) BOOL userBanScreenShot;
#pragma mark -- 相关方法
// 是否已经加载
......
......@@ -90,6 +90,8 @@
#define ROOM_CID_receiveAnchorRewardChanged 11200 // fusi直播奖励数据变化
/// 用户回归礼包socket通知
#define ROOM_CID_recallRewardPacket 11034
/// 用户截图开关变化通知
#define ROOM_CID_RECEIVE_SCREENSHOT_STATE 11035
// 更新直播间互动游戏开关状态socket
#define ROOM_CID_liveInteractionGameStateDidChanged 20204
......
......@@ -15,6 +15,9 @@
/// 互动直播游戏开关(0:关闭、1:开启)
@property (nonatomic, assign) BOOL liveGameState;
/// 禁止截屏(0:关闭、1:开启)
@property (nonatomic, assign) BOOL screenshotState;
@end
@interface FUSRoomEncryptionData : FUSBaseModel
......
......@@ -3204,4 +3204,17 @@
"请联系您的邀请人获取邀请码" = "请联系您的邀请人获取邀请码";
"%zd 人" = "%zd 人";
"%zd 人" = "%zd";
"此直播间禁止录屏" = "此直播间禁止录屏";
"此直播间禁止截图" = "此直播间禁止截图";
"禁止截图" = "禁止截图";
"开启后,此直播间用户无法截图" = "开启后,此直播间用户无法截图";
"放弃注销" = "放弃註销";
"当前版本不支援此社交平台" = "当前版本不支援此社交平台";
......@@ -3206,3 +3206,15 @@
"%zd 人" = "%zd 人";
"此直播间禁止录屏" = "此直播間禁止錄屏";
"此直播间禁止截图" = "此直播間禁止截圖";
"禁止截图" = "禁止截圖";
"开启后,此直播间用户无法截图" = "開啓後,此直播間用戶無法截圖";
"放弃注销" = "放棄註銷";
"当前版本不支援此社交平台" = "當前版本不支援此社交平臺";
......@@ -488,7 +488,7 @@
"恭喜你中大奖啦,%@倍露水" = "Congratulations,Winning %@ times DEWs";
"未激活" = "Not activated";
"未激活" = "unactivated";
"如何增加通话收入" = "How to increase revenue";
......@@ -810,7 +810,7 @@
"美颜开启" = "Beauty opening";
"结束中" = "Closing···";
"结束中" = "Closing";
"优惠储值" = "Recharge sales";
......@@ -1456,7 +1456,7 @@
"小时" = "hour";
"惩罚中" = "Punishment···";
"惩罚中" = "Punish";
"拒绝" = "Reject";
......@@ -3186,7 +3186,7 @@
"快点去关注自己喜欢的主播吧~" = "Hurry up and follow your favorite broadcasters~";
"绑定邀请码" = "Bind invitation code";
"绑定邀请码" = "Bind Emissary Code";
"邀请码QRCode保存失败" = "Failed to save invitation code QRCode";
......@@ -3204,4 +3204,17 @@
"请联系您的邀请人获取邀请码" = "Please contact your inviter to obtain the invitation code";
"%zd 人" = "%zd Players";
"%zd 人" = "%zd";
"此直播间禁止录屏" = "Recording is prohibited in this live stream.";
"此直播间禁止截图" = "Screenshotting is prohibited in this live stream.";
"禁止截图" = "Screenshots are prohibited";
"开启后,此直播间用户无法截图" = "Once enabled, users in this live stream will not be able to take screenshots.";
"放弃注销" = "Give up cancellation";
"当前版本不支援此社交平台" = "This social platform is not supported in the current version";
......@@ -802,7 +802,7 @@
"美颜开启" = "ビューティーオープニング";
"结束中" = "終わり";
"结束中" = "終わり";
"优惠储值" = "トップアップ販売";
......@@ -1442,7 +1442,7 @@
"小时" = "時間";
"惩罚中" = "ペナルティ";
"惩罚中" = "ペナルティ";
"拒绝" = "拒否";
......@@ -3164,7 +3164,7 @@
"快点去关注自己喜欢的主播吧~" = "急いでお気に入りの配信者をフォローしましょう〜";
"绑定邀请码" = "招待コードをバインドする";
"绑定邀请码" = "使者コードをバインド";
"邀请码QRCode保存失败" = "招待コードQRコードの保存に失敗しました";
......@@ -3182,4 +3182,17 @@
"请联系您的邀请人获取邀请码" = "招待コードを取得するには、招待者に連絡してください。";
"%zd 人" = "%zd Players";
"%zd 人" = "%zd";
"此直播间禁止录屏" = "このライブストリームでは録画は禁止されています。";
"此直播间禁止截图" = "このライブストリームではスクリーンショットは禁止されています。";
"禁止截图" = "スクリーンショットは禁止されています";
"开启后,此直播间用户无法截图" = "有効にすると、このライブ ストリームのユーザーはスクリーンショットを撮ることができなくなります。";
"放弃注销" = "諦める キャンセル";
"当前版本不支援此社交平台" = "このソーシャル プラットフォームは現在のバージョンではサポートされていません";
......@@ -800,7 +800,7 @@
"美颜开启" = "ความงาม กำลังเปิด";
"结束中" = "กำลังปิด...";
"结束中" = "กำลังปิด";
"优惠储值" = "การขายการเติมเงิน";
......@@ -1440,7 +1440,7 @@
"小时" = "ชั่วโมง";
"惩罚中" = "การลงโทษ...";
"惩罚中" = "การลงโทษ";
"拒绝" = "ปฏิเสธ";
......@@ -3158,7 +3158,7 @@
"快点去关注自己喜欢的主播吧~" = "เร็วเข้าและติดตามผู้ถ่ายทอดสดคนโปรดของคุณ~";
"绑定邀请码" = "โค้ดเชิญผูกมัด";
"绑定邀请码" = "ผูกรหัส Emissary";
"邀请码QRCode保存失败" = "ไม่สามารถบันทึกรหัสคำเชิญ QRCode ได้";
......@@ -3176,4 +3176,17 @@
"请联系您的邀请人获取邀请码" = "กรุณาติดต่อผู้เชิญของคุณเพื่อรับรหัสเชิญ";
"%zd 人" = "%zd Players";
"%zd 人" = "%zd";
"此直播间禁止录屏" = "ห้ามบันทึกภาพในระหว่างการถ่ายทอดสดนี้";
"此直播间禁止截图" = "ห้ามแคปหน้าจอในระหว่างการถ่ายทอดสดนี้";
"禁止截图" = "ห้ามแคปหน้าจอ";
"开启后,此直播间用户无法截图" = "เมื่อเปิดใช้งานแล้ว ผู้ใช้ในสตรีมสดนี้จะไม่สามารถถ่ายภาพหน้าจอได้";
"放弃注销" = "ยกเลิกการยกเลิก";
"当前版本不支援此社交平台" = "แพลตฟอร์มโซเชียลนี้ไม่รองรับในเวอร์ชันปัจจุบัน";
......@@ -802,7 +802,7 @@
"美颜开启" = "Mở làm đẹp";
"结束中" = "Đang đóng";
"结束中" = "Đang đóng";
"优惠储值" = "Nạp tiền bán hàng";
......@@ -1442,7 +1442,7 @@
"小时" = "giờ";
"惩罚中" = "Hình phạt";
"惩罚中" = "Hình phạt";
"拒绝" = "Từ chối";
......@@ -3164,7 +3164,7 @@
"快点去关注自己喜欢的主播吧~" = "Hãy nhanh tay theo dõi những người phát sóng yêu thích của bạn~";
"绑定邀请码" = "Mã mời liên kết";
"绑定邀请码" = "Liên kết Mã Emissary";
"邀请码QRCode保存失败" = "Không lưu được mã mời QRCode";
......@@ -3182,4 +3182,17 @@
"请联系您的邀请人获取邀请码" = "Vui lòng liên hệ với người mời để lấy mã mời";
"%zd 人" = "%zd Players";
"%zd 人" = "%zd";
"此直播间禁止录屏" = "Việc ghi hình bị cấm trong buổi phát trực tiếp này.";
"此直播间禁止截图" = "Việc chụp ảnh màn hình bị nghiêm cấm trong buổi phát trực tiếp này.";
"禁止截图" = "Ảnh chụp màn hình bị cấm";
"开启后,此直播间用户无法截图" = "Sau khi kích hoạt, người dùng trong luồng phát trực tiếp này sẽ không thể chụp ảnh màn hình.";
"放弃注销" = "Từ bỏ việc hủy bỏ";
"当前版本不支援此社交平台" = "Nền tảng xã hội này không được hỗ trợ trong phiên bản hiện tại";
......@@ -17,6 +17,12 @@ public class ScreenShieldView: UIView {
return ScreenShieldView(frame: frame)
}
@objc public var protect: Bool = false {
didSet {
self.field.isSecureTextEntry = protect
}
}
private override init(frame: CGRect) {
super.init(frame: frame)
safeZone = makeSecureView() ?? UIView()
......@@ -122,13 +128,14 @@ public class ScreenShieldView: UIView {
safe.sendSubviewToBack(view)
}
let field = UITextField()
private func makeSecureView() -> UIView? {
guard isOSVersionSafe else {
return nil
}
let field = UITextField()
field.isSecureTextEntry = true
// let field = UITextField()
field.isSecureTextEntry = false
let fv = field.subviews.first
fv?.subviews.forEach { $0.removeFromSuperview() }
fv?.isUserInteractionEnabled = true
......
......@@ -415,10 +415,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FuSiLive/Pods-FuSiLive-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FuSiLive/Pods-FuSiLive-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FuSiLive/Pods-FuSiLive-frameworks.sh\"\n";
......@@ -432,10 +436,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FuSiLive/Pods-FuSiLive-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FuSiLive/Pods-FuSiLive-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FuSiLive/Pods-FuSiLive-resources.sh\"\n";
......@@ -664,7 +672,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 202506260026;
CURRENT_PROJECT_VERSION = 202506260027;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC;
ENABLE_ON_DEMAND_RESOURCES = NO;
......@@ -699,7 +707,7 @@
"$(PROJECT_DIR)/FuSiLive/Classes/FUSModules/FUSLiveModule/NewLive/Main/View/StreamView/Beauty/ByteDanceBeauty",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = NO;
MARKETING_VERSION = 1.4;
MARKETING_VERSION = 1.8;
OTHER_CFLAGS = (
"$(inherited)",
"-isystem",
......@@ -928,7 +936,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 202506260026;
CURRENT_PROJECT_VERSION = 202506260027;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC;
ENABLE_ON_DEMAND_RESOURCES = NO;
......@@ -963,7 +971,7 @@
"$(PROJECT_DIR)/FuSiLive/Classes/FUSModules/FUSLiveModule/NewLive/Main/View/StreamView/Beauty/ByteDanceBeauty",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = NO;
MARKETING_VERSION = 1.4;
MARKETING_VERSION = 1.8;
OTHER_CFLAGS = (
"$(inherited)",
"-isystem",
......
......@@ -12,7 +12,7 @@
<key>NotificationService.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>86</integer>
<integer>81</integer>
</dict>
</dict>
</dict>
......
......@@ -7,12 +7,12 @@
<key>FUSChatCenterBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>84</integer>
<integer>89</integer>
</dict>
<key>FUSChatCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>83</integer>
<integer>86</integer>
</dict>
</dict>
</dict>
......
......@@ -6570,10 +6570,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FUSShowRoomModule/Pods-FUSShowRoomModule-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-FUSShowRoomModule/Pods-FUSShowRoomModule-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FUSShowRoomModule/Pods-FUSShowRoomModule-resources.sh\"\n";
......
......@@ -7,7 +7,7 @@
<key>FUSShowRoomBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>88</integer>
<integer>87</integer>
</dict>
<key>FUSShowRoomModule.xcscheme_^#shared#^_</key>
<dict>
......
......@@ -143,6 +143,10 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
@implementation FUSLiveMainViewController
- (void)loadView {
self.view = [ScreenShieldView createWithFrame:UIScreen.mainScreen.bounds];
}
#pragma mark - Life Cycle
- (void)viewDidLoad {
[super viewDidLoad];
......@@ -627,6 +631,9 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
// [self initWaterMark];
[FUSLiveHelper shareInstance].roomInfoModel.channelId = [dict[@"channelId"] description];
[FUSLiveHelper shareInstance].roomInfoModel.stateSwitch = [FUSLiveRoomStateSwitchModel modelWithDictionary:dict[@"stateSwitch"]];
[FUSCacheDataShare shareStore].userBanScreenShot = [FUSLiveHelper shareInstance].roomInfoModel.stateSwitch.screenshotState;
if (FUSConfig.sharedInstanced.devConfigs.enableTestCode) {
[FUSDialogView fus_showDialog:[NSString stringWithFormat:@"测试:%@",[FUSLiveHelper shareInstance].roomInfoModel.channelId]];
}
......@@ -1201,6 +1208,9 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recieveScreenShotNotification:) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
// 视讯结束
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fus_recieveStopIMVideoChat:) name:kFUSConfigImChatStopNotificationName object:nil];
// 检测录屏
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recieveScreenCaptureNotification:) name:UIScreenCapturedDidChangeNotification object:nil];
}
......@@ -1369,11 +1379,37 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[FUSLiveHelper fus_quitLiveWithCompletion:nil];
}
-(void)recieveScreenCaptureNotification:(NSNotification *)notification {
if ([FUSConfig sharedInstanced].devConfigs.appStatus == NO) {
if ([UIScreen mainScreen].isCaptured) {
if ([FUSLiveHelper shareInstance].liveType != FUSLiveTypeAnchor) {
if ([FUSLiveHelper shareInstance].roomInfoModel.stateSwitch.screenshotState == 1) {
[FUSDialogView fus_showDialog:[NSString fus_localString:@"此直播间禁止录屏"]];
return;
}
}
}
}
}
/**
执行截屏分享
*/
- (void)recieveScreenShotNotification:(NSNotification *)notification
{
if ([FUSConfig sharedInstanced].devConfigs.appStatus == NO) {
if ([FUSLiveHelper shareInstance].liveType != FUSLiveTypeAnchor) {
if ([FUSLiveHelper shareInstance].roomInfoModel.stateSwitch.screenshotState == 1) {
[FUSDialogView fus_showDialog:[NSString fus_localString:@"此直播间禁止截图"]];
return;
}
}
}
// 如果在结束界面,就不进行截图分享了
if (self.endView.superview ||
self.endedView.superview ||
......
......@@ -109,6 +109,8 @@
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveLiveScopeDidChangedNotification:) name:STR(ROOM_CID_LIVE_SCOPE_DID_CHANGED) object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNetwortReportNotification:) name:STR(CID_LIVE_ROOM_NETWORK_REPORT) object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveScreenShotStateNotification:) name:STR(ROOM_CID_RECEIVE_SCREENSHOT_STATE) object:nil];
}
/**
......@@ -184,8 +186,55 @@
}
}
-(void)receiveScreenShotStateNotification:(NSNotification *)notification {
FUSSocketMessageModel *messageModel = notification.object;
NSDictionary *dict = [messageModel fus_getJsonDict];
if (self.liveType == FUSLiveTypeNone) {
return;
}
NSString *roomId = [dict[@"roomId"] description];
if ([roomId isEqualToString:[FUSLiveHelper shareInstance].roomInfoModel.roomId]) {
[FUSLiveHelper shareInstance].roomInfoModel.stateSwitch.screenshotState = [dict[@"screenshotState"] integerValue] == 1;
[self fus_roomScreenshotDidChange];
if ([roomId isEqualToString:[FUSCacheDataShare shareStore].userDetailInfo.uid]) {
// 设置一下自己的状态
[FUSCacheDataShare shareStore].userBanScreenShot = [dict[@"screenshotState"] integerValue] == 1;
}
}
}
#pragma mark - Method
/// 房间已经切换成功,数据都加载完了
-(void)fus_roomDidSwitch{
[self fus_roomScreenshotDidChange];
}
/// 截图状态改变
-(void)fus_roomScreenshotDidChange{
BOOL checkVersionStatus = [FUSConfig sharedInstanced].devConfigs.appStatus;
if ([FUSLiveHelper shareInstance].liveType == FUSLiveTypeAnchor || checkVersionStatus == YES) {
if ([self.liveVC.view isKindOfClass:[ScreenShieldView class]]) {
ScreenShieldView *ssView = (ScreenShieldView *)self.liveVC.view;
ssView.protect = NO;
}
}
else {
BOOL screenshotState = [FUSLiveHelper shareInstance].roomInfoModel.stateSwitch.screenshotState;
if ([self.liveVC.view isKindOfClass:[ScreenShieldView class]]) {
ScreenShieldView *ssView = (ScreenShieldView *)self.liveVC.view;
ssView.protect = screenshotState;
}
}
}
/**
开启直播
*/
......@@ -1369,6 +1418,7 @@
}
}
[weakSelf fus_roomDidSwitch];
if(weakSelf.enterRoomSuccessBlock){
weakSelf.enterRoomSuccessBlock();
}
......
......@@ -1003,6 +1003,14 @@ NS_ASSUME_NONNULL_BEGIN
succeed:(void (^)(NSDictionary *dataDict, int code))succeed
failure:(void (^)(NSString *, NSInteger))failure;
/// 设置直播间禁止截图
/// @param switchState 开关
/// @param succeed 1
/// @param failure 0
+(void)fus_requestPersonalScreenshotStateSwitchSet:(BOOL)switchState
succeed:(void (^)(void))succeed
failure:(void (^)(NSString *, NSInteger))failure;
@end
NS_ASSUME_NONNULL_END
......@@ -210,10 +210,16 @@
roomInfoModel.bonds = [roomDict[@"liveBonds"] description];
roomInfoModel.num = [roomDict[@"lookSum"] description];
roomInfoModel.nickName = roomDict[@"nickName"];
roomInfoModel.stateSwitch = [FUSLiveRoomStateSwitchModel modelWithDictionary:dataDict[@"stateSwitch"]];
if (roomDict[@"rich"]) {
[FUSLiveHelper shareInstance].richValue = roomDict[@"rich"];
}
if ([roomId isEqualToString:[FUSCacheDataShare shareStore].userDetailInfo.uid]) {
// 设置一下自己的状态
[FUSCacheDataShare shareStore].userBanScreenShot = roomInfoModel.stateSwitch.screenshotState;
}
// NSDictionary *roomInfoDict = dataDict[@"room"];
//
// FUSRoomInfoModel *model = [FUSRoomInfoModel fus_modelWithDict:roomInfoDict];
......@@ -494,6 +500,12 @@
NSString *streamUrl = dataDict[@"pullFlowUrl"];
roomInfoModel.publishUrl = streamUrl;
NSString *pkInfo = [dataDict[@"pkinfo"] description];
if ([roomId isEqualToString:[FUSCacheDataShare shareStore].userDetailInfo.uid]) {
// 设置一下自己的状态
[FUSCacheDataShare shareStore].userBanScreenShot = roomInfoModel.stateSwitch.screenshotState;
}
if (success) {
success(roomInfoModel, micMode, streamUrl, pkInfo);
}
......@@ -2804,5 +2816,24 @@
}];
}
/// 设置直播间禁止截图
/// @param switchState 开关
/// @param succeed 1
/// @param failure 0
+(void)fus_requestPersonalScreenshotStateSwitchSet:(BOOL)switchState
succeed:(void (^)(void))succeed
failure:(void (^)(NSString *, NSInteger))failure {
NSDictionary *parm = @{@"switchState": switchState == YES ? [NSNumber numberWithInt:1] :[NSNumber numberWithInt:0]};
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_ROOM_personalScreenshotStateSwitchSet params:parm success:^(NSDictionary * _Nullable dataDict, int code) {
if (succeed) {
succeed();
}
} failure:^(NSDictionary * _Nullable dataDict, int code) {
if (failure) failure(dataDict[@"msg"],code);
}];
}
@end
......@@ -188,6 +188,29 @@
[self.models addObject:quickChatItem];
}
BOOL checkVersionStatus = [FUSConfig sharedInstanced].devConfigs.appStatus;
if (self.isAnchor && checkVersionStatus == NO) {
FUSLiveAnchorSettingModel *banScreenshotItem = [[FUSLiveAnchorSettingModel alloc] init];
banScreenshotItem.title = [NSString fus_localString:@"禁止截图"];
banScreenshotItem.subtitle = [NSString fus_localString:@"开启后,此直播间用户无法截屏"];
banScreenshotItem.switchState = [FUSCacheDataShare shareStore].userBanScreenShot;
__weak typeof(banScreenshotItem) weakBanScreenshotItem = banScreenshotItem;
banScreenshotItem.switchStateHandler = ^(BOOL switchState) {
[FUSLiveHttpHelper fus_requestPersonalScreenshotStateSwitchSet:switchState succeed:^{
[FUSCacheDataShare shareStore].userBanScreenShot = switchState;
} failure:^(NSString * _Nonnull msg, NSInteger code) {
weakBanScreenshotItem.switchState = !switchState;
[FUSDialogView fus_showDialog:msg];
[weakSelf.tableView reloadData];
}];
};
[self.models addObject:banScreenshotItem];
}
}
......
......@@ -191,7 +191,7 @@
NSInteger allTotal = [dataDict[@"allTotal"] integerValue];
self.totalUserLabel.text = [NSString stringWithFormat:@"%zd 人",allTotal];
self.totalUserLabel.text = [NSString stringWithFormat:[NSString fus_localString:@"%zd 人"],allTotal];
[self.totalUserLabel sizeToFit];
self.totalUserLabel.centerY = self.totalUserIconImageView.centerY;
......
......@@ -438,6 +438,10 @@ NS_ASSUME_NONNULL_BEGIN
/// 获取用户直播评分历史列表
+ (NSString *)fus_URL_userliveAssessHistoryGetList;
/// 设置禁止截图开关
+ (NSString *)fus_URL_ROOM_personalScreenshotStateSwitchSet;
@end
......
......@@ -40,6 +40,11 @@
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/data/live/mute/close"];
}
/// 设置禁止截图开关
+ (NSString *)fus_URL_ROOM_personalScreenshotStateSwitchSet{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/personal/screenshotState/switch/set"];
}
#pragma mark -- 包房相关
// 结束直播间推荐热门列表
......
......@@ -12,7 +12,7 @@
<key>FUSUserCenterModuleBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>89</integer>
<integer>91</integer>
</dict>
</dict>
</dict>
......
......@@ -211,11 +211,11 @@
// 设置导航栏
self.titleLabel.text = [NSString fus_localString:@"登录"];
// _phoneTextField.placeholder = [NSString fus_localString:@"请输入手机号"];
// _phoneTextField.placeholder = [NSString fus_localString:@"请输入手机号"];
_phoneTextField.attributedPlaceholder = [NSAttributedString sj_UIKitText:^(id<SJUIKitTextMakerProtocol> _Nonnull make) {
make.append([NSString fus_localString:@"请输入手机号"]).textColor([UIColor fus_textColorMedium]);
}];
// _passwordTextField.placeholder = [NSString fus_localString:@"请输入密码"];
// _passwordTextField.placeholder = [NSString fus_localString:@"请输入密码"];
_passwordTextField.attributedPlaceholder = [NSAttributedString sj_UIKitText:^(id<SJUIKitTextMakerProtocol> _Nonnull make) {
make.append([NSString fus_localString:@"请输入密码"]).textColor([UIColor fus_textColorMedium]);
}];
......@@ -287,10 +287,15 @@
NSString *countryCode = [self.countryInfoDict objectForKey:FUSCountryCodeKey];
NSString *countryName = [self.countryInfoDict objectForKey:FUSCountryEnglishNameKey];
[self fus_loginPhoneWithPhone:phone countryCode:countryCode countryName:countryName password:pwd cancel:0 sender:sender];
}
-(void)fus_loginPhoneWithPhone:(NSString *)phone countryCode:(NSString *)countryCode countryName:(NSString *)countryName password:(NSString *)password cancel:(NSInteger)cancel sender:(UIButton *)sender{
sender.userInteractionEnabled = NO;
[FUSLoadingView fus_showProgressViewWithContentMessage:nil withView:self.view];
[[FUSLoginHelper sharedInstance] fus_loginWithPhoneNumber:phone countryCode:countryCode countryName:countryName password:pwd success:^(int code) {
[[FUSLoginHelper sharedInstance] fus_loginWithPhoneNumber:phone countryCode:countryCode countryName:countryName password:password cancel:cancel success:^(int code) {
// 初始化 Main Controller, 转跳到主界面
[FUSMainViewControllerHelper fus_createMainViewController];
......@@ -333,6 +338,17 @@
[FUSDialogView fus_showDialog:msg];
}
break;
case -208:{
[FUSAlertView showAlertWithTitle:[NSString fus_localString:@"账号安全"] message:msg cancelButtonTitle:[NSString fus_localString:@"取消"] otherButtonTitles:@[[NSString fus_localString:@"放弃注销"]] clickBlock:^(NSInteger buttonIndex) {
if (buttonIndex == 1) {
// 放弃注销
[self fus_loginPhoneWithPhone:phone countryCode:countryCode countryName:countryName password:password cancel:1 sender:sender];
}
}];
}
break;
default:
{
// 显示错误消息
......@@ -345,7 +361,6 @@
}
#pragma mark - TextField
// 忘记密码按钮点击事件
- (IBAction)onForgetButtonAction:(UIButton *)sender
......
......@@ -45,6 +45,7 @@ typedef void(^loginCompletion)(int code, NSString *msg);
countryCode:(NSString *)countryCode
countryName:(NSString *)countryName
password:(NSString *)pwd
cancel:(NSInteger)cancel
success:(void(^)(int code))success
failure:(void(^)(NSString *msg, int code))failure;
......
......@@ -159,6 +159,7 @@
countryCode:(NSString *)countryCode
countryName:(NSString *)countryName
password:(NSString *)pwd
cancel:(NSInteger)cancel
success:(void(^)(int code))success
failure:(void(^)(NSString *msg, int code))failure
{
......@@ -178,7 +179,7 @@
}
// 执行登录请求
[FUSLoginHttpHelper fus_loginWithAcount:phoneNum countryCode:countryCode countryName:countryName password:pwd success:^(NSDictionary *dataDict, int code) {
[FUSLoginHttpHelper fus_loginWithAcount:phoneNum countryCode:countryCode countryName:countryName password:pwd cancel:cancel success:^(NSDictionary *dataDict, int code) {
//talkingData行为埋点
[FUSTalkingData fus_trackEvent:FUSUserEventTrackParams.fus_EVENT_LOGIN label:@"" parameters:@{@"login_name":@"phone"}];
......
......@@ -38,6 +38,7 @@ typedef NS_ENUM(NSInteger, Platform) {
countryCode:(NSString *)countryCode
countryName:(NSString *)countryName
password:(NSString *)pwd
cancel:(NSInteger)cancel
success:(void (^)(NSDictionary *dataDict, int code))success
failure:(void (^)(NSString *msg, int code))failure;
......
......@@ -24,6 +24,7 @@
countryCode:(NSString *)countryCode
countryName:(NSString *)countryName
password:(NSString *)pwd
cancel:(NSInteger)cancel
success:(void (^)(NSDictionary *dataDict, int code))success
failure:(void (^)(NSString *msg, int code))failure
{
......@@ -38,6 +39,7 @@
NSDictionary *params = @{@"phone":acount,
@"countrycode":countryCode,
@"pwd":pwd,
@"cancel": @(cancel),
@"plat":@"12",
@"imsi":[FUSDeviceHelper fus_getAppDeviceID]};
......@@ -557,6 +559,7 @@
skip:0
origin:[FUSCacheDataShare shareStore].origin
originType:[FUSCacheDataShare shareStore].originType
cancel:0
success:success
failure:failure
getReferralCode:getReferralCode];
......@@ -575,6 +578,7 @@
skip:(NSInteger)skip
origin:(NSString *)origin
originType:(NSString *)originType
cancel:(NSInteger)cancel
success:(void(^)(NSDictionary *))success
failure:(void(^)(NSString *msg, int code))failure
getReferralCode:(void(^)(void(^getReferralCodeHandler)(NSString *)))getReferralCode{
......@@ -612,6 +616,8 @@
params[@"originType"] = originType;
}
params[@"cancel"] = @(cancel);
[FUSHttpHelper postRequestBinaryWithUrl:FUSUserCenterURLs.fus_FUS_URL_SOCIAL_LOG_IN params:params success:^(NSDictionary *dataDict, int code) {
// 注册完成后,使者类型的全清除掉
......@@ -662,7 +668,7 @@
[FUSLoadingView fus_showProgressViewWithMessage:nil canTouchBottomView:YES];
// 再次进行原路信息注册
[FUSLoginHttpHelper fus_handleSocialPlatformLoginWithPlatform:platform openid:openid authToken:authToken authSecret:authSecret facepath:facepath sex:sex nickname:nickname agentCode:verifyModel.info.uid bindType:@"" referralCode:referralCode skip:0 origin:verifyModel.origin originType:@"2" success:^(NSDictionary *dataDict2) {
[FUSLoginHttpHelper fus_handleSocialPlatformLoginWithPlatform:platform openid:openid authToken:authToken authSecret:authSecret facepath:facepath sex:sex nickname:nickname agentCode:verifyModel.info.uid bindType:@"" referralCode:referralCode skip:0 origin:verifyModel.origin originType:@"2" cancel:cancel success:^(NSDictionary *dataDict2) {
[FUSLoadingView fus_dismissProgressView];
errorHandle(@"",0);
success(dataDict2);
......@@ -676,7 +682,7 @@
} skip:^(void (^ _Nonnull dismissHandle)(void)) {
// 跳过的逻辑,跳过是没有来源类型的
[FUSLoadingView fus_showProgressViewWithMessage:nil canTouchBottomView:YES];
[FUSLoginHttpHelper fus_handleSocialPlatformLoginWithPlatform:platform openid:openid authToken:authToken authSecret:authSecret facepath:facepath sex:sex nickname:nickname agentCode:agentCode bindType:bindType referralCode:referralCode skip:1 origin:origin originType:originType success:^(NSDictionary *dataDict2) {
[FUSLoginHttpHelper fus_handleSocialPlatformLoginWithPlatform:platform openid:openid authToken:authToken authSecret:authSecret facepath:facepath sex:sex nickname:nickname agentCode:agentCode bindType:bindType referralCode:referralCode skip:1 origin:origin originType:originType cancel:cancel success:^(NSDictionary *dataDict2) {
[FUSLoadingView fus_dismissProgressView];
success(dataDict2);
} failure:^(NSString *msg2, int code2) {
......@@ -690,7 +696,30 @@
failure(backErrorMsg, backErrorCode);
}];
});
}else {
}
else if (errorCode == -208) {
// -208:已申请销号,警告信息
[FUSAlertView showAlertWithTitle:[NSString fus_localString:@"账号安全"] message:FAILURE_MESSAGE cancelButtonTitle:[NSString fus_localString:@"取消"] otherButtonTitles:@[[NSString fus_localString:@"放弃注销"]] clickBlock:^(NSInteger buttonIndex) {
if (buttonIndex == 1) {
// 放弃注销
[FUSLoadingView fus_showProgressViewWithMessage:@"" canTouchBottomView:NO];
[FUSLoginHttpHelper fus_handleSocialPlatformLoginWithPlatform:platform openid:openid authToken:authToken authSecret:authSecret facepath:facepath sex:sex nickname:nickname agentCode:agentCode bindType:bindType referralCode:referralCode skip:skip origin:origin originType:originType cancel:1 success:^(NSDictionary *dataDict2) {
[FUSLoadingView fus_dismissProgressView];
success(dataDict2);
} failure:^(NSString *msg2, int code2) {
[FUSLoadingView fus_dismissProgressView];
failure(msg2, code2);
} getReferralCode:getReferralCode];
}
else {
if (failure) failure(FAILURE_MESSAGE, errorCode);
}
}];
}
else {
if (failure) failure(FAILURE_MESSAGE, errorCode);
}
......
......@@ -262,6 +262,9 @@
FUSSettingDataModel *model = [FUSSettingDataModel fus_modelWithDict:dataDict];
[FUSSwiftCacheDataShare share].oc_settingData = model;
BOOL screenshotState = [dataDict[@"screenshotState"] integerValue] == 1;
[FUSCacheDataShare shareStore].userBanScreenShot = screenshotState;
// 是否发布过视频动态(0:否、1:是)
self.hasPublishVideo = [dataDict[@"publishVideoTotal"] boolValue];
// 是否已发布过免费的视频动态(0:否、1:是)
......
......@@ -272,6 +272,7 @@
BOOL hasOpenedLocat = ![dataDict[@"locatState"] boolValue];
BOOL hasOpenedStranger = ![dataDict[@"strangerState"] boolValue];
BOOL hasOpenHiddingInRoom = [dataDict[@"hideStatus"] integerValue] == 2;
BOOL screenshotState = [dataDict[@"screenshotState"] integerValue] == 1;
BOOL minimizeState = [dataDict[@"minimizeState"] boolValue];
......@@ -279,6 +280,7 @@
NSInteger liveState = [dataDict[@"liveState"] integerValue];
[FUSCacheDataShare shareStore].userBanScreenShot = screenshotState;
[[NSUserDefaults standardUserDefaults] setObject:@(hasOpenedVirtual) forKey:FUSUserUDKeys.fus_UD_KEY_OPEN_VIRTUAL_CHAT];
[[NSUserDefaults standardUserDefaults] setObject:@(hasOpenedStranger) forKey:FUSUserUDKeys.fus_UD_KEY_OPEN_STRANGER_MESSAGE];
[NSUserDefaults fus_setCurrentUserObjectKey:FUSUserUDKeys.fus_UD_KEY_OPEN_ROOM_MINIMIZE value:@(minimizeState)] ;
......
......@@ -119,7 +119,7 @@
<key>FUSBDAlphaPlayer-BDAlphaPlayer.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>87</integer>
<integer>84</integer>
</dict>
<key>FUSBDAlphaPlayer.xcscheme</key>
<dict>
......@@ -131,7 +131,7 @@
<key>FUSBDAlphaPlayer.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>81</integer>
<integer>83</integer>
</dict>
<key>FUSCommon-FUSCommonBundle.xcscheme</key>
<dict>
......@@ -161,6 +161,11 @@
<key>orderHint</key>
<integer>22</integer>
</dict>
<key>Firebase.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>90</integer>
</dict>
<key>FirebaseAnalytics.xcscheme</key>
<dict>
<key>isShown</key>
......@@ -182,6 +187,11 @@
<key>orderHint</key>
<integer>17</integer>
</dict>
<key>FirebaseCrashlytics.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>88</integer>
</dict>
<key>FirebaseInstallations.xcscheme</key>
<dict>
<key>isShown</key>
......
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 sign in to comment