13 Commits

Author SHA1 Message Date
liyuhua
d87ac12794 企业包版本修改 此commit置顶 1.3.0 2023-08-31 20:23:25 +08:00
liyuhua
ab9061580a 修复bug 2023-08-31 20:22:18 +08:00
liyuhua
385212a3f5 修复bug 2023-08-31 17:50:20 +08:00
liyuhua
8c21f5117c 相册新增保存gif图片功能 2023-08-29 18:19:57 +08:00
liyuhua
09cbeb72a6 修复bug 2023-08-29 17:54:23 +08:00
liyuhua
a1ff09f33f 修复bug 2023-08-28 18:55:29 +08:00
liyuhua
8b4710fe18 优化点单UI 2023-08-25 15:08:14 +08:00
liyuhua
acf568b8b5 游戏优化 2023-08-25 14:48:58 +08:00
liyuhua
02d145bda7 新功能开发 2023-08-24 17:03:32 +08:00
liyuhua
d9234acb0c 特权卡新增Gig图片支持 2023-08-18 19:39:35 +08:00
liyuhua
ce68453c9c 特友卡改造 2023-08-18 16:09:28 +08:00
liyuhua
ed0c4498f0 特友卡改造 2023-08-18 14:52:57 +08:00
liyuhua
02b66cc73a 修复房间背景 2023-08-18 14:49:16 +08:00
165 changed files with 6459 additions and 968 deletions

View File

@@ -18,6 +18,8 @@ target 'xplan-ios' do
pod 'MJExtension' pod 'MJExtension'
#图片加载 #图片加载
pod 'SDWebImage' pod 'SDWebImage'
pod 'FLAnimatedImage'
pod 'SDWebImageFLPlugin' # 对FLAnimatedImage和SDWebImage的桥接
#输入 #输入
pod 'SZTextView' pod 'SZTextView'
#轮播图 #轮播图

View File

@@ -20,6 +20,7 @@ PODS:
- Bugly (2.5.93) - Bugly (2.5.93)
- CocoaAsyncSocket (7.6.5) - CocoaAsyncSocket (7.6.5)
- FFPopup (1.1.5) - FFPopup (1.1.5)
- FLAnimatedImage (1.0.17)
- HappyDNS (0.3.17) - HappyDNS (0.3.17)
- IAPHelper (1.1) - IAPHelper (1.1)
- IQKeyboardManager (6.5.9) - IQKeyboardManager (6.5.9)
@@ -66,6 +67,9 @@ PODS:
- SDWebImage (5.11.1): - SDWebImage (5.11.1):
- SDWebImage/Core (= 5.11.1) - SDWebImage/Core (= 5.11.1)
- SDWebImage/Core (5.11.1) - SDWebImage/Core (5.11.1)
- SDWebImageFLPlugin (0.6.0):
- FLAnimatedImage (>= 1.0.11)
- SDWebImage/Core (~> 5.10)
- SSKeychain (1.4.1) - SSKeychain (1.4.1)
- SSZipArchive (2.4.2) - SSZipArchive (2.4.2)
- SVGAPlayer (2.5.7): - SVGAPlayer (2.5.7):
@@ -102,6 +106,7 @@ DEPENDENCIES:
- Bugly - Bugly
- CocoaAsyncSocket - CocoaAsyncSocket
- FFPopup - FFPopup
- FLAnimatedImage
- IAPHelper - IAPHelper
- IQKeyboardManager (~> 6.5.5) - IQKeyboardManager (~> 6.5.5)
- JXCategoryView - JXCategoryView
@@ -127,6 +132,7 @@ DEPENDENCIES:
- ReactiveObjC - ReactiveObjC
- SDCycleScrollView - SDCycleScrollView
- SDWebImage - SDWebImage
- SDWebImageFLPlugin
- SSKeychain - SSKeychain
- SVGAPlayer (~> 2.3) - SVGAPlayer (~> 2.3)
- SZTextView - SZTextView
@@ -147,6 +153,7 @@ SPEC REPOS:
- Bugly - Bugly
- CocoaAsyncSocket - CocoaAsyncSocket
- FFPopup - FFPopup
- FLAnimatedImage
- HappyDNS - HappyDNS
- IAPHelper - IAPHelper
- IQKeyboardManager - IQKeyboardManager
@@ -172,6 +179,7 @@ SPEC REPOS:
- ReactiveObjC - ReactiveObjC
- SDCycleScrollView - SDCycleScrollView
- SDWebImage - SDWebImage
- SDWebImageFLPlugin
- SSKeychain - SSKeychain
- SSZipArchive - SSZipArchive
- SVGAPlayer - SVGAPlayer
@@ -194,6 +202,7 @@ SPEC CHECKSUMS:
Bugly: b8715e6ec4004b7f7fbffab0643ba80545aee3da Bugly: b8715e6ec4004b7f7fbffab0643ba80545aee3da
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83 FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
FLAnimatedImage: bbf914596368867157cc71b38a8ec834b3eeb32b
HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea HappyDNS: 848ef73e24f2b0e2752064223ce2dc0dd88900ea
IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4 IAPHelper: fd74f53b0ac142eed085777b88b86a11746a2dd4
IQKeyboardManager: 241cc94ccabc9deb8f8bd7d12f00d73288d13ecc IQKeyboardManager: 241cc94ccabc9deb8f8bd7d12f00d73288d13ecc
@@ -219,6 +228,7 @@ SPEC CHECKSUMS:
ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040 ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageFLPlugin: 72efd2cfbf565bc438421abb426f4bcf7b670754
SSKeychain: 55cc80f66f5c73da827e3077f02e43528897db41 SSKeychain: 55cc80f66f5c73da827e3077f02e43528897db41
SSZipArchive: e7b4f3d9e780c2acc1764cd88fbf2de28f26e5b2 SSZipArchive: e7b4f3d9e780c2acc1764cd88fbf2de28f26e5b2
SVGAPlayer: 318b85a78b61292d6ae9dfcd651f3f0d1cdadd86 SVGAPlayer: 318b85a78b61292d6ae9dfcd651f3f0d1cdadd86
@@ -233,6 +243,6 @@ SPEC CHECKSUMS:
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849 YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
PODFILE CHECKSUM: 80d17907323e578d6ed774b6c6bbdb99cf9cde74 PODFILE CHECKSUM: 10dc54bd2806dc12b35318f86874b0d5a0ac5246
COCOAPODS: 1.11.3 COCOAPODS: 1.12.1

View File

@@ -159,6 +159,23 @@
230497452A727844006D1F0C /* launch_screen_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497442A727844006D1F0C /* launch_screen_logo.png */; }; 230497452A727844006D1F0C /* launch_screen_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497442A727844006D1F0C /* launch_screen_logo.png */; };
230497472A727855006D1F0C /* launch_screen_title.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497462A727855006D1F0C /* launch_screen_title.png */; }; 230497472A727855006D1F0C /* launch_screen_title.png in Resources */ = {isa = PBXBuildFile; fileRef = 230497462A727855006D1F0C /* launch_screen_title.png */; };
2304974D2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */; }; 2304974D2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */; };
237B89DC2A931479005DB380 /* XPMineUserGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89DB2A931479005DB380 /* XPMineUserGameVC.m */; };
237B89DF2A933F52005DB380 /* XPMineUserGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89DE2A933F52005DB380 /* XPMineUserGameCell.m */; };
237B89E22A935701005DB380 /* XPMinePlaceOrderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89E12A935701005DB380 /* XPMinePlaceOrderView.m */; };
237B89E82A93574C005DB380 /* XPMinePlaceOrderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89E72A93574C005DB380 /* XPMinePlaceOrderCell.m */; };
237B89EE2A945F81005DB380 /* XPMineUserGameTypeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89ED2A945F81005DB380 /* XPMineUserGameTypeCell.m */; };
237B89F12A948E60005DB380 /* XPRoomGameInviteBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89F02A948E60005DB380 /* XPRoomGameInviteBannerView.m */; };
237B89F72A949BDC005DB380 /* XPSessionMessageGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89F62A949BDC005DB380 /* XPSessionMessageGameCell.m */; };
237B89FA2A94A7B6005DB380 /* XPSessionMessageGamePageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89F92A94A7B6005DB380 /* XPSessionMessageGamePageControl.m */; };
237B89FD2A94C062005DB380 /* MessageContentGameView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B89FC2A94C062005DB380 /* MessageContentGameView.m */; };
237B8A062A94CA11005DB380 /* XPMineGameOrderVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A052A94CA11005DB380 /* XPMineGameOrderVC.m */; };
237B8A092A95A52B005DB380 /* XPMineGameOrderItemVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A082A95A52B005DB380 /* XPMineGameOrderItemVC.m */; };
237B8A0D2A95A5E8005DB380 /* XPMineGameOrderItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A0C2A95A5E8005DB380 /* XPMineGameOrderItemCell.m */; };
237B8A102A95ACAA005DB380 /* XPMineGameOrderDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A0F2A95ACAA005DB380 /* XPMineGameOrderDetailsView.m */; };
237B8A132A95DCBC005DB380 /* UserGameInfoVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A122A95DCBC005DB380 /* UserGameInfoVo.m */; };
237B8A162A973B7E005DB380 /* XPMineGameOrderItemPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */; };
237B8A1A2A973C54005DB380 /* Api+GameOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B8A192A973C54005DB380 /* Api+GameOrder.m */; };
237B94C32A98B46E007853E3 /* XPSessionMessageGameInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */; };
23F8BFF82A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */; }; 23F8BFF82A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */; };
73FFADDC93E195344047A2EC /* Pods_xplan_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_xplan_ios.framework */; }; 73FFADDC93E195344047A2EC /* Pods_xplan_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_xplan_ios.framework */; };
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; }; 9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; };
@@ -1641,6 +1658,41 @@
230497462A727855006D1F0C /* launch_screen_title.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_screen_title.png; sourceTree = "<group>"; }; 230497462A727855006D1F0C /* launch_screen_title.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_screen_title.png; sourceTree = "<group>"; };
2304974B2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordModel.h; sourceTree = "<group>"; }; 2304974B2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildPersonalBillRecordModel.h; sourceTree = "<group>"; };
2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordModel.m; sourceTree = "<group>"; }; 2304974C2A739ECD006D1F0C /* XPMineGuildPersonalBillRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildPersonalBillRecordModel.m; sourceTree = "<group>"; };
237B89DA2A931479005DB380 /* XPMineUserGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserGameVC.h; sourceTree = "<group>"; };
237B89DB2A931479005DB380 /* XPMineUserGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserGameVC.m; sourceTree = "<group>"; };
237B89DD2A933F52005DB380 /* XPMineUserGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserGameCell.h; sourceTree = "<group>"; };
237B89DE2A933F52005DB380 /* XPMineUserGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserGameCell.m; sourceTree = "<group>"; };
237B89E02A935701005DB380 /* XPMinePlaceOrderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMinePlaceOrderView.h; sourceTree = "<group>"; };
237B89E12A935701005DB380 /* XPMinePlaceOrderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMinePlaceOrderView.m; sourceTree = "<group>"; };
237B89E62A93574C005DB380 /* XPMinePlaceOrderCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMinePlaceOrderCell.h; sourceTree = "<group>"; };
237B89E72A93574C005DB380 /* XPMinePlaceOrderCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMinePlaceOrderCell.m; sourceTree = "<group>"; };
237B89EC2A945F81005DB380 /* XPMineUserGameTypeCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserGameTypeCell.h; sourceTree = "<group>"; };
237B89ED2A945F81005DB380 /* XPMineUserGameTypeCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserGameTypeCell.m; sourceTree = "<group>"; };
237B89EF2A948E60005DB380 /* XPRoomGameInviteBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomGameInviteBannerView.h; sourceTree = "<group>"; };
237B89F02A948E60005DB380 /* XPRoomGameInviteBannerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomGameInviteBannerView.m; sourceTree = "<group>"; };
237B89F52A949BDC005DB380 /* XPSessionMessageGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGameCell.h; sourceTree = "<group>"; };
237B89F62A949BDC005DB380 /* XPSessionMessageGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGameCell.m; sourceTree = "<group>"; };
237B89F82A94A7B6005DB380 /* XPSessionMessageGamePageControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGamePageControl.h; sourceTree = "<group>"; };
237B89F92A94A7B6005DB380 /* XPSessionMessageGamePageControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGamePageControl.m; sourceTree = "<group>"; };
237B89FB2A94C062005DB380 /* MessageContentGameView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageContentGameView.h; sourceTree = "<group>"; };
237B89FC2A94C062005DB380 /* MessageContentGameView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageContentGameView.m; sourceTree = "<group>"; };
237B8A042A94CA11005DB380 /* XPMineGameOrderVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderVC.h; sourceTree = "<group>"; };
237B8A052A94CA11005DB380 /* XPMineGameOrderVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderVC.m; sourceTree = "<group>"; };
237B8A072A95A52B005DB380 /* XPMineGameOrderItemVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemVC.h; sourceTree = "<group>"; };
237B8A082A95A52B005DB380 /* XPMineGameOrderItemVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderItemVC.m; sourceTree = "<group>"; };
237B8A0B2A95A5E8005DB380 /* XPMineGameOrderItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemCell.h; sourceTree = "<group>"; };
237B8A0C2A95A5E8005DB380 /* XPMineGameOrderItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderItemCell.m; sourceTree = "<group>"; };
237B8A0E2A95ACAA005DB380 /* XPMineGameOrderDetailsView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderDetailsView.h; sourceTree = "<group>"; };
237B8A0F2A95ACAA005DB380 /* XPMineGameOrderDetailsView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderDetailsView.m; sourceTree = "<group>"; };
237B8A112A95DCBC005DB380 /* UserGameInfoVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserGameInfoVo.h; sourceTree = "<group>"; };
237B8A122A95DCBC005DB380 /* UserGameInfoVo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserGameInfoVo.m; sourceTree = "<group>"; };
237B8A142A973B7E005DB380 /* XPMineGameOrderItemPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemPresenter.h; sourceTree = "<group>"; };
237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGameOrderItemPresenter.m; sourceTree = "<group>"; };
237B8A172A973BB7005DB380 /* XPMineGameOrderItemProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameOrderItemProtocol.h; sourceTree = "<group>"; };
237B8A182A973C54005DB380 /* Api+GameOrder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+GameOrder.h"; sourceTree = "<group>"; };
237B8A192A973C54005DB380 /* Api+GameOrder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+GameOrder.m"; sourceTree = "<group>"; };
237B94C12A98B46E007853E3 /* XPSessionMessageGameInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSessionMessageGameInfoView.h; sourceTree = "<group>"; };
237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSessionMessageGameInfoView.m; sourceTree = "<group>"; };
23F8BFF62A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessagePrivilegeCardCell.h; sourceTree = "<group>"; }; 23F8BFF62A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessagePrivilegeCardCell.h; sourceTree = "<group>"; };
23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessagePrivilegeCardCell.m; sourceTree = "<group>"; }; 23F8BFF72A7A392000A36763 /* XPRoomMessagePrivilegeCardCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessagePrivilegeCardCell.m; sourceTree = "<group>"; };
7DB00EC07F1D0ADFF900B38D /* Pods-xplan-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.debug.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.debug.xcconfig"; sourceTree = "<group>"; }; 7DB00EC07F1D0ADFF900B38D /* Pods-xplan-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.debug.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.debug.xcconfig"; sourceTree = "<group>"; };
@@ -3954,13 +4006,13 @@
186A532B26FC6ED900D67B2C /* TTPopup */ = { 186A532B26FC6ED900D67B2C /* TTPopup */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
186A532C26FC6ED900D67B2C /* TTPopup.m */,
186A532D26FC6ED900D67B2C /* Config */, 186A532D26FC6ED900D67B2C /* Config */,
186A533626FC6ED900D67B2C /* Manager */,
186A533A26FC6ED900D67B2C /* TTPopup.h */,
186A533B26FC6ED900D67B2C /* View */,
186A534026FC6ED900D67B2C /* Service */,
186A534426FC6ED900D67B2C /* Header */, 186A534426FC6ED900D67B2C /* Header */,
186A533626FC6ED900D67B2C /* Manager */,
186A534026FC6ED900D67B2C /* Service */,
186A533A26FC6ED900D67B2C /* TTPopup.h */,
186A532C26FC6ED900D67B2C /* TTPopup.m */,
186A533B26FC6ED900D67B2C /* View */,
); );
path = TTPopup; path = TTPopup;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -4163,6 +4215,8 @@
E8EEB8F626FC2673007C6EBA /* UserPhoto.m */, E8EEB8F626FC2673007C6EBA /* UserPhoto.m */,
9B2A12DC2783FEDD00CED41B /* UserVipInfoVo.h */, 9B2A12DC2783FEDD00CED41B /* UserVipInfoVo.h */,
9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */, 9B2A12DD2783FEDD00CED41B /* UserVipInfoVo.m */,
237B8A112A95DCBC005DB380 /* UserGameInfoVo.h */,
237B8A122A95DCBC005DB380 /* UserGameInfoVo.m */,
); );
path = Model; path = Model;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -4458,6 +4512,8 @@
E873EB0B2809850D0071030D /* MessageContentCustomView.m */, E873EB0B2809850D0071030D /* MessageContentCustomView.m */,
E873EB0D28098D500071030D /* MessageContentGiftView.h */, E873EB0D28098D500071030D /* MessageContentGiftView.h */,
E873EB0E28098D500071030D /* MessageContentGiftView.m */, E873EB0E28098D500071030D /* MessageContentGiftView.m */,
237B89FB2A94C062005DB380 /* MessageContentGameView.h */,
237B89FC2A94C062005DB380 /* MessageContentGameView.m */,
18AAF3EE279EA59300CD7DAD /* MessageContentTextClickable.h */, 18AAF3EE279EA59300CD7DAD /* MessageContentTextClickable.h */,
18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */, 18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */,
E80B0732280D740600A79F63 /* MessageContentGuildView.h */, E80B0732280D740600A79F63 /* MessageContentGuildView.h */,
@@ -4633,6 +4689,74 @@
path = Api; path = Api;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
237B89FE2A94C9EE005DB380 /* GameOrder */ = {
isa = PBXGroup;
children = (
237B89FF2A94C9EE005DB380 /* Presenter */,
237B8A002A94C9EE005DB380 /* Protocol */,
237B8A012A94C9EE005DB380 /* Model */,
237B8A022A94C9EE005DB380 /* View */,
237B8A032A94C9EE005DB380 /* Api */,
);
path = GameOrder;
sourceTree = "<group>";
};
237B89FF2A94C9EE005DB380 /* Presenter */ = {
isa = PBXGroup;
children = (
237B8A142A973B7E005DB380 /* XPMineGameOrderItemPresenter.h */,
237B8A152A973B7E005DB380 /* XPMineGameOrderItemPresenter.m */,
);
path = Presenter;
sourceTree = "<group>";
};
237B8A002A94C9EE005DB380 /* Protocol */ = {
isa = PBXGroup;
children = (
237B8A172A973BB7005DB380 /* XPMineGameOrderItemProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
};
237B8A012A94C9EE005DB380 /* Model */ = {
isa = PBXGroup;
children = (
);
path = Model;
sourceTree = "<group>";
};
237B8A022A94C9EE005DB380 /* View */ = {
isa = PBXGroup;
children = (
237B8A0A2A95A5D3005DB380 /* SubViews */,
237B8A042A94CA11005DB380 /* XPMineGameOrderVC.h */,
237B8A052A94CA11005DB380 /* XPMineGameOrderVC.m */,
237B8A072A95A52B005DB380 /* XPMineGameOrderItemVC.h */,
237B8A082A95A52B005DB380 /* XPMineGameOrderItemVC.m */,
);
path = View;
sourceTree = "<group>";
};
237B8A032A94C9EE005DB380 /* Api */ = {
isa = PBXGroup;
children = (
237B8A182A973C54005DB380 /* Api+GameOrder.h */,
237B8A192A973C54005DB380 /* Api+GameOrder.m */,
);
path = Api;
sourceTree = "<group>";
};
237B8A0A2A95A5D3005DB380 /* SubViews */ = {
isa = PBXGroup;
children = (
237B8A0B2A95A5E8005DB380 /* XPMineGameOrderItemCell.h */,
237B8A0C2A95A5E8005DB380 /* XPMineGameOrderItemCell.m */,
237B8A0E2A95ACAA005DB380 /* XPMineGameOrderDetailsView.h */,
237B8A0F2A95ACAA005DB380 /* XPMineGameOrderDetailsView.m */,
);
path = SubViews;
sourceTree = "<group>";
};
9B0086C727BA4F4A0032BD2B /* Anchor */ = { 9B0086C727BA4F4A0032BD2B /* Anchor */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -4914,6 +5038,12 @@
E8E20BDA281645300033B688 /* SessionInfoViewController.m */, E8E20BDA281645300033B688 /* SessionInfoViewController.m */,
9B9DFD9827DB2194000F95B3 /* XPSessionMessageHeadView.h */, 9B9DFD9827DB2194000F95B3 /* XPSessionMessageHeadView.h */,
9B9DFD9927DB2194000F95B3 /* XPSessionMessageHeadView.m */, 9B9DFD9927DB2194000F95B3 /* XPSessionMessageHeadView.m */,
237B89F52A949BDC005DB380 /* XPSessionMessageGameCell.h */,
237B89F62A949BDC005DB380 /* XPSessionMessageGameCell.m */,
237B94C12A98B46E007853E3 /* XPSessionMessageGameInfoView.h */,
237B94C22A98B46E007853E3 /* XPSessionMessageGameInfoView.m */,
237B89F82A94A7B6005DB380 /* XPSessionMessageGamePageControl.h */,
237B89F92A94A7B6005DB380 /* XPSessionMessageGamePageControl.m */,
E86B911828102AF90007DEE7 /* SessionToolbarView.h */, E86B911828102AF90007DEE7 /* SessionToolbarView.h */,
E86B911928102AF90007DEE7 /* SessionToolbarView.m */, E86B911928102AF90007DEE7 /* SessionToolbarView.m */,
18F404B5276095D700A6C548 /* SessionChatLimitView.h */, 18F404B5276095D700A6C548 /* SessionChatLimitView.h */,
@@ -6660,6 +6790,8 @@
E83DB47C2746372300D8CBD1 /* XPRoomGiftBannerView.m */, E83DB47C2746372300D8CBD1 /* XPRoomGiftBannerView.m */,
E83DB4822746661800D8CBD1 /* XPRoomGiftBroadcastView.h */, E83DB4822746661800D8CBD1 /* XPRoomGiftBroadcastView.h */,
E83DB4832746661800D8CBD1 /* XPRoomGiftBroadcastView.m */, E83DB4832746661800D8CBD1 /* XPRoomGiftBroadcastView.m */,
237B89EF2A948E60005DB380 /* XPRoomGameInviteBannerView.h */,
237B89F02A948E60005DB380 /* XPRoomGameInviteBannerView.m */,
E8A03DFD27635F960098D9EA /* XPRoomCandyGiftView.h */, E8A03DFD27635F960098D9EA /* XPRoomCandyGiftView.h */,
E8A03DFE27635F960098D9EA /* XPRoomCandyGiftView.m */, E8A03DFE27635F960098D9EA /* XPRoomCandyGiftView.m */,
E8899C832785CC69007944BE /* XPRoomDatingAnimationView.h */, E8899C832785CC69007944BE /* XPRoomDatingAnimationView.h */,
@@ -7656,6 +7788,8 @@
E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */, E88B5CC026FB407B00DA9178 /* XPMineUserInfoViewController.m */,
E8D34D4528080295009C4835 /* XPMineUserDataViewController.h */, E8D34D4528080295009C4835 /* XPMineUserDataViewController.h */,
E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */, E8D34D4628080295009C4835 /* XPMineUserDataViewController.m */,
237B89DA2A931479005DB380 /* XPMineUserGameVC.h */,
237B89DB2A931479005DB380 /* XPMineUserGameVC.m */,
E8EEB90426FC5772007C6EBA /* XPMineUserInfoEditViewController.h */, E8EEB90426FC5772007C6EBA /* XPMineUserInfoEditViewController.h */,
E8EEB90526FC5772007C6EBA /* XPMineUserInfoEditViewController.m */, E8EEB90526FC5772007C6EBA /* XPMineUserInfoEditViewController.m */,
E8EEB91226FC7786007C6EBA /* XPMineUserInfoNickViewController.h */, E8EEB91226FC7786007C6EBA /* XPMineUserInfoNickViewController.h */,
@@ -7679,12 +7813,20 @@
E8EEB8FD26FC2DF8007C6EBA /* XPMineUserInfoCustomNavView.m */, E8EEB8FD26FC2DF8007C6EBA /* XPMineUserInfoCustomNavView.m */,
E88B5CC326FB42B000DA9178 /* XPMineUserInfoHeaderView.h */, E88B5CC326FB42B000DA9178 /* XPMineUserInfoHeaderView.h */,
E88B5CC426FB42B000DA9178 /* XPMineUserInfoHeaderView.m */, E88B5CC426FB42B000DA9178 /* XPMineUserInfoHeaderView.m */,
237B89E02A935701005DB380 /* XPMinePlaceOrderView.h */,
237B89E12A935701005DB380 /* XPMinePlaceOrderView.m */,
237B89E62A93574C005DB380 /* XPMinePlaceOrderCell.h */,
237B89E72A93574C005DB380 /* XPMinePlaceOrderCell.m */,
E8EEB91B26FC9D58007C6EBA /* XPMineUserInfoDateView.h */, E8EEB91B26FC9D58007C6EBA /* XPMineUserInfoDateView.h */,
E8EEB91C26FC9D58007C6EBA /* XPMineUserInfoDateView.m */, E8EEB91C26FC9D58007C6EBA /* XPMineUserInfoDateView.m */,
E873EB07280960990071030D /* XPMineUserInfoVoiceCardView.h */, E873EB07280960990071030D /* XPMineUserInfoVoiceCardView.h */,
E873EB08280960990071030D /* XPMineUserInfoVoiceCardView.m */, E873EB08280960990071030D /* XPMineUserInfoVoiceCardView.m */,
E8998D832859B4FA00C68558 /* XPMineUserInfoGiftView.h */, E8998D832859B4FA00C68558 /* XPMineUserInfoGiftView.h */,
E8998D842859B4FA00C68558 /* XPMineUserInfoGiftView.m */, E8998D842859B4FA00C68558 /* XPMineUserInfoGiftView.m */,
237B89DD2A933F52005DB380 /* XPMineUserGameCell.h */,
237B89DE2A933F52005DB380 /* XPMineUserGameCell.m */,
237B89EC2A945F81005DB380 /* XPMineUserGameTypeCell.h */,
237B89ED2A945F81005DB380 /* XPMineUserGameTypeCell.m */,
); );
path = MineInfo; path = MineInfo;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -9225,6 +9367,7 @@
E8E70D7126F2EB4900F03460 /* View */ = { E8E70D7126F2EB4900F03460 /* View */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
237B89FE2A94C9EE005DB380 /* GameOrder */,
9BCB999D28F5716E00466D64 /* CollectRoom */, 9BCB999D28F5716E00466D64 /* CollectRoom */,
E83A2A2F282F4E06002AD58F /* EnterpriseRecharge */, E83A2A2F282F4E06002AD58F /* EnterpriseRecharge */,
E8E20BDF281695430033B688 /* Setting */, E8E20BDF281695430033B688 /* Setting */,
@@ -9575,13 +9718,13 @@
E8EEB8EA26FC2050007C6EBA /* SDPhotoBrowser */ = { E8EEB8EA26FC2050007C6EBA /* SDPhotoBrowser */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
E8EEB8EB26FC2050007C6EBA /* SDPhotoBrowserConfig.h */,
E8EEB8EC26FC2050007C6EBA /* SDPhotoBrowser.m */,
E8EEB8ED26FC2050007C6EBA /* SDWaitingView.m */,
E8EEB8EE26FC2050007C6EBA /* SDBrowserImageView.m */,
E8EEB8EF26FC2050007C6EBA /* SDWaitingView.h */,
E8EEB8F026FC2050007C6EBA /* SDPhotoBrowser.h */,
E8EEB8F126FC2050007C6EBA /* SDBrowserImageView.h */, E8EEB8F126FC2050007C6EBA /* SDBrowserImageView.h */,
E8EEB8EE26FC2050007C6EBA /* SDBrowserImageView.m */,
E8EEB8F026FC2050007C6EBA /* SDPhotoBrowser.h */,
E8EEB8EC26FC2050007C6EBA /* SDPhotoBrowser.m */,
E8EEB8EB26FC2050007C6EBA /* SDPhotoBrowserConfig.h */,
E8EEB8EF26FC2050007C6EBA /* SDWaitingView.h */,
E8EEB8ED26FC2050007C6EBA /* SDWaitingView.m */,
); );
path = SDPhotoBrowser; path = SDPhotoBrowser;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -10011,6 +10154,7 @@
9B2A12E427846D7100CED41B /* NobleRechargeModel.m in Sources */, 9B2A12E427846D7100CED41B /* NobleRechargeModel.m in Sources */,
E88B5CBA26FB329C00DA9178 /* XPMineTeenagerPwdProtocol.h in Sources */, E88B5CBA26FB329C00DA9178 /* XPMineTeenagerPwdProtocol.h in Sources */,
E87C54BE2823CC5B0051AA11 /* XPMineResetLoginPwdPresenter.m in Sources */, E87C54BE2823CC5B0051AA11 /* XPMineResetLoginPwdPresenter.m in Sources */,
237B89DC2A931479005DB380 /* XPMineUserGameVC.m in Sources */,
E83953222769F33B00CF2F24 /* XPRoomFunctionContainerView.m in Sources */, E83953222769F33B00CF2F24 /* XPRoomFunctionContainerView.m in Sources */,
E8D34D4A28080335009C4835 /* XPMineDataSkillCardTableViewCell.m in Sources */, E8D34D4A28080335009C4835 /* XPMineDataSkillCardTableViewCell.m in Sources */,
E87C0AA027D9DE6400CB2241 /* RoomFaceSendInfoModel.m in Sources */, E87C0AA027D9DE6400CB2241 /* RoomFaceSendInfoModel.m in Sources */,
@@ -10112,6 +10256,7 @@
E80E2372299A1C380013FD40 /* XPStarredKitchenModel.m in Sources */, E80E2372299A1C380013FD40 /* XPStarredKitchenModel.m in Sources */,
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */, E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
14A0CF4D29C0511200B2375A /* XPMineRechargeFooterReusableView.m in Sources */, 14A0CF4D29C0511200B2375A /* XPMineRechargeFooterReusableView.m in Sources */,
237B89E22A935701005DB380 /* XPMinePlaceOrderView.m in Sources */,
E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */, E800806B27FD42B00055A8AB /* XPClanRoomCollectionViewCell.m in Sources */,
E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */, E8A88D2D27E81E8700CA8837 /* RoomPKChooseUserModel.m in Sources */,
9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */, 9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */,
@@ -10158,6 +10303,7 @@
9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */, 9B86D88328192DC000494FCD /* XPRoomRankEntranceView.m in Sources */,
18F404B7276095D700A6C548 /* SessionChatLimitView.m in Sources */, 18F404B7276095D700A6C548 /* SessionChatLimitView.m in Sources */,
E8788942273A55AD00BF1D57 /* XPGiftUsersView.m in Sources */, E8788942273A55AD00BF1D57 /* XPGiftUsersView.m in Sources */,
237B94C32A98B46E007853E3 /* XPSessionMessageGameInfoView.m in Sources */,
9B8585D3278837CE00D7D5C6 /* NobleLevelUpModel.m in Sources */, 9B8585D3278837CE00D7D5C6 /* NobleLevelUpModel.m in Sources */,
9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */, 9BD9A17927A0EC57004186FE /* XPMineVisitorPresenter.m in Sources */,
E8BD0F8828A9E9E400DE050D /* RoomSailingPrizeModel.m in Sources */, E8BD0F8828A9E9E400DE050D /* RoomSailingPrizeModel.m in Sources */,
@@ -10281,6 +10427,7 @@
E8C1672D2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.m in Sources */, E8C1672D2806BD8B00ECB15C /* XPGuildSuperAdminRoomCollectionViewCell.m in Sources */,
230496F02A6E1F1F006D1F0C /* XPPrivilegeCardPresenter.m in Sources */, 230496F02A6E1F1F006D1F0C /* XPPrivilegeCardPresenter.m in Sources */,
E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */, E8EEB8F226FC2050007C6EBA /* SDPhotoBrowser.m in Sources */,
237B89EE2A945F81005DB380 /* XPMineUserGameTypeCell.m in Sources */,
E81C27AB26EF2D920031E639 /* ThirdUserInfo.m in Sources */, E81C27AB26EF2D920031E639 /* ThirdUserInfo.m in Sources */,
E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */, E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */,
E81C279D26EEEC620031E639 /* XPConstant.m in Sources */, E81C279D26EEEC620031E639 /* XPConstant.m in Sources */,
@@ -10346,6 +10493,7 @@
E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */, E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */,
E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */, E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */,
E8E859C728264C2300EE4857 /* HTTPRedirectResponse.m in Sources */, E8E859C728264C2300EE4857 /* HTTPRedirectResponse.m in Sources */,
237B8A1A2A973C54005DB380 /* Api+GameOrder.m in Sources */,
E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */, E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */,
E80EC81128ACD84000D133C5 /* QEmotionHelper.m in Sources */, E80EC81128ACD84000D133C5 /* QEmotionHelper.m in Sources */,
E8B825D026EA3825009E8E9F /* LoginPasswordViewController.m in Sources */, E8B825D026EA3825009E8E9F /* LoginPasswordViewController.m in Sources */,
@@ -10355,6 +10503,7 @@
E83ABEF6280E9AD800322EE4 /* MessageContentUnSupportView.m in Sources */, E83ABEF6280E9AD800322EE4 /* MessageContentUnSupportView.m in Sources */,
E8AC721326F46ADD007D6E91 /* XPMineSettingViewController.m in Sources */, E8AC721326F46ADD007D6E91 /* XPMineSettingViewController.m in Sources */,
18E7B32126F098650064BC9B /* UserInfoSkillVo.m in Sources */, 18E7B32126F098650064BC9B /* UserInfoSkillVo.m in Sources */,
237B8A062A94CA11005DB380 /* XPMineGameOrderVC.m in Sources */,
14F9797429B75C5F004BBFEB /* XPCycleView.m in Sources */, 14F9797429B75C5F004BBFEB /* XPCycleView.m in Sources */,
E8AC722726F482A4007D6E91 /* XPMineFeedbackPresenter.m in Sources */, E8AC722726F482A4007D6E91 /* XPMineFeedbackPresenter.m in Sources */,
E86B911A28102AF90007DEE7 /* SessionToolbarView.m in Sources */, E86B911A28102AF90007DEE7 /* SessionToolbarView.m in Sources */,
@@ -10378,6 +10527,7 @@
E8950180282CAC49007E459A /* XPMonentsUserInfoView.m in Sources */, E8950180282CAC49007E459A /* XPMonentsUserInfoView.m in Sources */,
9B92C02227E0BD040044C5EA /* XPNobleTrumpetModel.m in Sources */, 9B92C02227E0BD040044C5EA /* XPNobleTrumpetModel.m in Sources */,
230497012A6E5A60006D1F0C /* XPPrivilegeCardProduceView.m in Sources */, 230497012A6E5A60006D1F0C /* XPPrivilegeCardProduceView.m in Sources */,
237B8A162A973B7E005DB380 /* XPMineGameOrderItemPresenter.m in Sources */,
14F9797129B75B8C004BBFEB /* XPCycleVerticalView.m in Sources */, 14F9797129B75B8C004BBFEB /* XPCycleVerticalView.m in Sources */,
18F404C927609A4300A6C548 /* MessagePresenter.m in Sources */, 18F404C927609A4300A6C548 /* MessagePresenter.m in Sources */,
9BC9DAEF27E33B3F009EE409 /* XPRoomGiftAnimationParser.m in Sources */, 9BC9DAEF27E33B3F009EE409 /* XPRoomGiftAnimationParser.m in Sources */,
@@ -10413,6 +10563,7 @@
E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */, E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */,
E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */, E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */,
E8A1F794290642500099C952 /* XPRoomMorePlayViewController.m in Sources */, E8A1F794290642500099C952 /* XPRoomMorePlayViewController.m in Sources */,
237B8A132A95DCBC005DB380 /* UserGameInfoVo.m in Sources */,
E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */, E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */,
E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */, E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */,
E8E859C428264C2300EE4857 /* HTTPDynamicFileResponse.m in Sources */, E8E859C428264C2300EE4857 /* HTTPDynamicFileResponse.m in Sources */,
@@ -10430,6 +10581,7 @@
E8B846C226FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m in Sources */, E8B846C226FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m in Sources */,
E816C11527608A7500C84014 /* XPRoomMiniManager.m in Sources */, E816C11527608A7500C84014 /* XPRoomMiniManager.m in Sources */,
E8EEB91726FC7B35007C6EBA /* XPMineUserInfoDesViewController.m in Sources */, E8EEB91726FC7B35007C6EBA /* XPMineUserInfoDesViewController.m in Sources */,
237B89F72A949BDC005DB380 /* XPSessionMessageGameCell.m in Sources */,
9B1B72AC280031DB003FACE9 /* XPAnchorPKViewController.m in Sources */, 9B1B72AC280031DB003FACE9 /* XPAnchorPKViewController.m in Sources */,
E80CBDED27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m in Sources */, E80CBDED27D0D899001E1EC2 /* XPHomeLikeEmptyTableViewCell.m in Sources */,
9BEBBF4329384BB20024E0B4 /* HomeSearchHijackBaseModel.m in Sources */, 9BEBBF4329384BB20024E0B4 /* HomeSearchHijackBaseModel.m in Sources */,
@@ -10473,6 +10625,7 @@
E8A03DF0276303D40098D9EA /* XPCandyTreeRankTableViewCell.m in Sources */, E8A03DF0276303D40098D9EA /* XPCandyTreeRankTableViewCell.m in Sources */,
14A0CF5029C0542D00B2375A /* XPMinePayHeaderReusableView.m in Sources */, 14A0CF5029C0542D00B2375A /* XPMinePayHeaderReusableView.m in Sources */,
E801274E27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m in Sources */, E801274E27E3280000BAC3F2 /* XPRoomPKVoteTableViewCell.m in Sources */,
237B89E82A93574C005DB380 /* XPMinePlaceOrderCell.m in Sources */,
9BCF58532798FDA1008401A4 /* XPSkillCardModel.m in Sources */, 9BCF58532798FDA1008401A4 /* XPSkillCardModel.m in Sources */,
18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */, 18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */,
E8B846D326FDDBE600A777FE /* XPMineRechargeTableViewCell.m in Sources */, E8B846D326FDDBE600A777FE /* XPMineRechargeTableViewCell.m in Sources */,
@@ -10520,6 +10673,7 @@
186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */, 186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */,
14566F2629BACBC500C73AE5 /* XPNewHomeFilterView.m in Sources */, 14566F2629BACBC500C73AE5 /* XPNewHomeFilterView.m in Sources */,
18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */, 18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */,
237B89DF2A933F52005DB380 /* XPMineUserGameCell.m in Sources */,
18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */, 18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */,
E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */, E8DBB70127B6501200AA285D /* XPLittleGameMiniStageView.m in Sources */,
E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */, E851E46227FF1314002F3ACB /* XPMineGuildEmptyTableViewCell.m in Sources */,
@@ -10753,6 +10907,7 @@
9B9DFD9A27DB2194000F95B3 /* XPSessionMessageHeadView.m in Sources */, 9B9DFD9A27DB2194000F95B3 /* XPSessionMessageHeadView.m in Sources */,
E8901CF628B38D89001E9A92 /* XPGraffitiGiftView.m in Sources */, E8901CF628B38D89001E9A92 /* XPGraffitiGiftView.m in Sources */,
E81A6546283519CA00F55894 /* MonentsTopicModel.m in Sources */, E81A6546283519CA00F55894 /* MonentsTopicModel.m in Sources */,
237B89FA2A94A7B6005DB380 /* XPSessionMessageGamePageControl.m in Sources */,
E8C1672A2806B1E500ECB15C /* XPGuildSuperAdminSetTableViewCell.m in Sources */, E8C1672A2806B1E500ECB15C /* XPGuildSuperAdminSetTableViewCell.m in Sources */,
14973CAE29C1BD9E008E93E0 /* XPRoomRankListModel.m in Sources */, 14973CAE29C1BD9E008E93E0 /* XPRoomRankListModel.m in Sources */,
E8834E4528003A8F0029CCC1 /* XPMineMangerListViewController.m in Sources */, E8834E4528003A8F0029CCC1 /* XPMineMangerListViewController.m in Sources */,
@@ -10842,9 +10997,12 @@
E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */, E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */,
18EE3FEE2750CE6D00A452BF /* NIMMessageUtils.m in Sources */, 18EE3FEE2750CE6D00A452BF /* NIMMessageUtils.m in Sources */,
E81A65372834E5D200F55894 /* XPMonentsAttentionPresenter.m in Sources */, E81A65372834E5D200F55894 /* XPMonentsAttentionPresenter.m in Sources */,
237B89FD2A94C062005DB380 /* MessageContentGameView.m in Sources */,
E8DEC9AC2764A6CD0078CB70 /* XPRoomMoreMenuCollectionViewCell.m in Sources */, E8DEC9AC2764A6CD0078CB70 /* XPRoomMoreMenuCollectionViewCell.m in Sources */,
E81DCCD0282B63FD0039E5C5 /* XPMonentsRecommendViewController.m in Sources */, E81DCCD0282B63FD0039E5C5 /* XPMonentsRecommendViewController.m in Sources */,
9B7D804A2753783D003DAC0C /* SessionViewController.m in Sources */, 9B7D804A2753783D003DAC0C /* SessionViewController.m in Sources */,
237B8A0D2A95A5E8005DB380 /* XPMineGameOrderItemCell.m in Sources */,
237B8A092A95A52B005DB380 /* XPMineGameOrderItemVC.m in Sources */,
E839533F276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m in Sources */, E839533F276A0CDB00CF2F24 /* XPMineNameplateTableViewCell.m in Sources */,
9B73CD11279AE99B006AF255 /* XPSkillCardListCell.m in Sources */, 9B73CD11279AE99B006AF255 /* XPSkillCardListCell.m in Sources */,
E8B846BC26FD7C1200A777FE /* UploadImage.m in Sources */, E8B846BC26FD7C1200A777FE /* UploadImage.m in Sources */,
@@ -10991,12 +11149,14 @@
E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */, E88B5CB826FB325200DA9178 /* XPMineTeenagerPwdPresenter.m in Sources */,
9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */, 9B92A3472797EECD00AD168F /* XPMatchManageViewController.m in Sources */,
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */, E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */,
237B8A102A95ACAA005DB380 /* XPMineGameOrderDetailsView.m in Sources */,
E838D9A0275E1BF60079E0B5 /* XPRoomAnimationView.m in Sources */, E838D9A0275E1BF60079E0B5 /* XPRoomAnimationView.m in Sources */,
9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */, 9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */,
9BCD02C72796C02800F396AA /* MicroNobleWaveView.m in Sources */, 9BCD02C72796C02800F396AA /* MicroNobleWaveView.m in Sources */,
E887532329BB29BA0017A41A /* XPCandyTreeRuleView.m in Sources */, E887532329BB29BA0017A41A /* XPCandyTreeRuleView.m in Sources */,
9B73CD09279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m in Sources */, 9B73CD09279A9AA2006AF255 /* XPSkillCardUpdatePropModel.m in Sources */,
E874B88827215D39003954B9 /* MicroStateModel.m in Sources */, E874B88827215D39003954B9 /* MicroStateModel.m in Sources */,
237B89F12A948E60005DB380 /* XPRoomGameInviteBannerView.m in Sources */,
E877A7F427842EF800EFACED /* XPRoomDatingVipUpMicView.m in Sources */, E877A7F427842EF800EFACED /* XPRoomDatingVipUpMicView.m in Sources */,
14E9019B29CC546000B57C22 /* XPRoomWelcomeModel.m in Sources */, 14E9019B29CC546000B57C22 /* XPRoomWelcomeModel.m in Sources */,
E896EF9F2771AE7B00AD2CC1 /* XPMineAttentionViewController.m in Sources */, E896EF9F2771AE7B00AD2CC1 /* XPMineAttentionViewController.m in Sources */,
@@ -11197,7 +11357,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.2.1; MARKETING_VERSION = 1.3.0;
PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice; PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -11230,7 +11390,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.2.1; MARKETING_VERSION = 1.3.0;
PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice; PRODUCT_BUNDLE_IDENTIFIER = cn.nnbc123.voice;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "message_session_nav_like@2x.png", "filename" : "王者@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "message_session_nav_like@3x.png", "filename" : "王者@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "home_gamge_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "home_gamge_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_game_copy@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_game_copy@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_game_diamond@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_game_diamond@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_game_new_diamond@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_game_new_diamond@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_green_protection_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_green_protection_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_user_game_cell_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_user_game_cell_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_user_game_cell_pay_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_user_game_cell_pay_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_user_info_bottom_ban_normal@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_user_info_bottom_ban_normal@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_user_info_bottom_new_attention_select@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_user_info_bottom_new_attention_select@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_game_invite_banner_back@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_game_invite_banner_back@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_game_invite_banner_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_game_invite_banner_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_game_invite_banner_inspectView@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_game_invite_banner_inspectView@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "room_game_invite_banner_top@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "room_game_invite_banner_top@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Session_Message_Game_InfoView_arrow@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Session_Message_Game_InfoView_arrow@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "message_session_game_Invite_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "message_session_game_Invite_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 263 B

View File

@@ -0,0 +1,53 @@
//
// UserGameInfoVo.h
// xplan-ios
//
// Created by duoban on 2023/8/23.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class UserGameTagInfo;
@interface UserGameInfoVo : NSObject
@property(nonatomic,copy) NSString *firstGameName;
@property(nonatomic,copy) NSString *firstLogo;
@property(nonatomic,copy) NSString *secondGameName;
@property(nonatomic,copy) NSArray<UserGameTagInfo *> *tags;
@property(nonatomic,copy) NSString *finishNum;
@property(nonatomic,copy) NSString *gameId;
@property(nonatomic,copy) NSString *gameName;
@property(nonatomic,copy) NSString *logo;
@property(nonatomic,copy) NSString *gameLogo;
@property(nonatomic,copy) NSString *price;
@property(nonatomic,copy) NSString *seq;
@property(nonatomic,copy) NSString *uid;
@property(nonatomic,copy) NSString *background;
@property(nonatomic,copy) NSString *tier;
@property(nonatomic,copy) NSString *amount;
@property(nonatomic,copy) NSString *orderNo;
@property(nonatomic,copy) NSString *inning;
@property(nonatomic,copy) NSString *toErBanNo;
@property(nonatomic,copy) NSString *toNick;
@property(nonatomic,copy) NSString *toAvatar;
@property(nonatomic,copy) NSString *fromNick;
@property(nonatomic,copy) NSString *fromAvatar;
@property(nonatomic,copy) NSString *createTime;
@property(nonatomic,copy) NSString *orderTime;
@property(nonatomic,copy) NSString *toUid;
@property(nonatomic,copy) NSString *fromUid;
@property(nonatomic,copy) NSString *tagRgb;
@property(nonatomic,copy) NSString *tagBg;
@property(nonatomic,copy) NSString *btnRgb;
@property(nonatomic,copy) NSString *btnBg;
@end
@interface UserGameTagInfo : NSObject
@property(nonatomic,copy) NSString *seq;
@property(nonatomic,copy) NSString *tagName;
@property(nonatomic,copy) NSString *tagVal;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,24 @@
//
// UserGameInfoVo.m
// xplan-ios
//
// Created by duoban on 2023/8/23.
//
#import "UserGameInfoVo.h"
@implementation UserGameInfoVo
+ (NSDictionary *)objectClassInArray {
return @{
@"tags":UserGameTagInfo.class,
};
}
@end
@implementation UserGameTagInfo
@end

View File

@@ -14,6 +14,7 @@
#import "UserGiftWallInfoModel.h" #import "UserGiftWallInfoModel.h"
#import "XPEnum.h" #import "XPEnum.h"
#import "MonentsInfoModel.h" #import "MonentsInfoModel.h"
#import "UserGameInfoVo.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@@ -137,8 +138,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,assign) BOOL banAccount; @property (nonatomic,assign) BOOL banAccount;
///用户的动态 ///用户的动态
@property (nonatomic,strong) NSArray<MonentsInfoModel *> *dynamicInfo; @property (nonatomic,strong) NSArray<MonentsInfoModel *> *dynamicInfo;
///首页点单游戏信息
@property(nonatomic,strong) UserGameInfoVo *userGamePartnerVo;
///个人详情资料的点单游戏信息
@property(nonatomic,strong) NSArray<UserGameInfoVo *> *userGamePartner;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -14,7 +14,8 @@
@"privatePhoto":UserPhoto.class, @"privatePhoto":UserPhoto.class,
@"userGiftWall":UserGiftWallInfoModel.class, @"userGiftWall":UserGiftWallInfoModel.class,
@"userLuckyBagGiftWall":UserGiftWallInfoModel.class, @"userLuckyBagGiftWall":UserGiftWallInfoModel.class,
@"dynamicInfo":MonentsInfoModel.class @"dynamicInfo":MonentsInfoModel.class,
@"userGamePartner":UserGameInfoVo.class
}; };
} }

View File

@@ -8,9 +8,9 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import "SDWaitingView.h" #import "SDWaitingView.h"
#import <SDWebImageFLPlugin/SDWebImageFLPlugin.h>
@interface SDBrowserImageView : FLAnimatedImageView <UIGestureRecognizerDelegate>
@interface SDBrowserImageView : UIImageView <UIGestureRecognizerDelegate>
@property (nonatomic, assign) CGFloat progress; @property (nonatomic, assign) CGFloat progress;
@property (nonatomic, assign, readonly) BOOL isScaled; @property (nonatomic, assign, readonly) BOOL isScaled;

View File

@@ -9,11 +9,12 @@
#import "SDPhotoBrowser.h" #import "SDPhotoBrowser.h"
#import "UIImageView+WebCache.h" #import "UIImageView+WebCache.h"
#import "SDBrowserImageView.h" #import "SDBrowserImageView.h"
#import <AssetsLibrary/AssetsLibrary.h>
#import <Photos/Photos.h>
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) //iPhoneX #define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) //iPhoneX
#define iPhoneX_NavSafeArea ([[UIScreen mainScreen] bounds].size.height >= 812.0 ? 24 : 0) // iphoneX 24 #define iPhoneX_NavSafeArea ([[UIScreen mainScreen] bounds].size.height >= 812.0 ? 24 : 0) // iphoneX 24
// ============便=========== // ============便===========
// || // ||
@@ -95,10 +96,22 @@
- (void)saveImage - (void)saveImage
{ {
int index = _scrollView.contentOffset.x / _scrollView.bounds.size.width; int index = _scrollView.contentOffset.x / _scrollView.bounds.size.width;
UIImageView *currentImageView = _scrollView.subviews[index]; SDBrowserImageView *currentImageView = _scrollView.subviews[index];
NSData *imageData = currentImageView.animatedImage.data;
UIImageWriteToSavedPhotosAlbum(currentImageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
if(imageData != nil){
[PHAssetCreationRequest.creationRequestForAsset addResourceWithType:PHAssetResourceTypePhoto data:imageData options:nil];
}else{
[PHAssetCreationRequest creationRequestForAssetFromImage:currentImageView.image];
}
} completionHandler:^(BOOL success, NSError * _Nullable error) {
//
dispatch_async(dispatch_get_main_queue(), ^{
// 线
[self saveImageFinishWithError:error];
});
}];
if (_indicatorView == nil) { if (_indicatorView == nil) {
_indicatorView = [[UIActivityIndicatorView alloc] init]; _indicatorView = [[UIActivityIndicatorView alloc] init];
_indicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge; _indicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
@@ -108,9 +121,7 @@
[_indicatorView startAnimating]; [_indicatorView startAnimating];
} }
-(void)saveImageFinishWithError:(NSError *)error{
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;
{
[_indicatorView stopAnimating]; [_indicatorView stopAnimating];
UILabel *label = [[UILabel alloc] init]; UILabel *label = [[UILabel alloc] init];
@@ -132,6 +143,7 @@
[label performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0]; [label performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0];
} }
- (void)setupScrollView - (void)setupScrollView
{ {
_scrollView = [[UIScrollView alloc] init]; _scrollView = [[UIScrollView alloc] init];
@@ -144,7 +156,7 @@
for (int i = 0; i < self.imageCount; i++) { for (int i = 0; i < self.imageCount; i++) {
SDBrowserImageView *imageView = [[SDBrowserImageView alloc] init]; SDBrowserImageView *imageView = [[SDBrowserImageView alloc] init];
imageView.tag = i; imageView.tag = i;
// //
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(photoClick:)]; UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(photoClick:)];
@@ -199,7 +211,7 @@
} }
} }
CGRect targetTemp = (!CGRectEqualToRect(self.sourceImagesFrame, CGRectZero)) ? self.sourceImagesFrame : [self.sourceImagesContainerView convertRect:sourceView.frame toView:self]; CGRect targetTemp = (!CGRectEqualToRect(self.sourceImagesFrame, CGRectZero)) ? self.sourceImagesFrame : [self.sourceImagesContainerView convertRect:sourceView.frame toView:self];
UIImageView *tempView = [[UIImageView alloc] init]; UIImageView *tempView = [[UIImageView alloc] init];
tempView.contentMode = sourceView.contentMode; tempView.contentMode = sourceView.contentMode;
tempView.clipsToBounds = YES; tempView.clipsToBounds = YES;
@@ -214,7 +226,7 @@
tempView.center = self.center; tempView.center = self.center;
[self addSubview:tempView]; [self addSubview:tempView];
_saveButton.hidden = YES; _saveButton.hidden = YES;
[UIView animateWithDuration:SDPhotoBrowserHideImageAnimationDuration animations:^{ [UIView animateWithDuration:SDPhotoBrowserHideImageAnimationDuration animations:^{
@@ -237,7 +249,7 @@
} }
SDBrowserImageView *view = (SDBrowserImageView *)recognizer.view; SDBrowserImageView *view = (SDBrowserImageView *)recognizer.view;
[view doubleTapToZommWithScale:scale]; [view doubleTapToZommWithScale:scale];
} }
@@ -305,7 +317,7 @@
sourceView = [view cellForItemAtIndexPath:path]; sourceView = [view cellForItemAtIndexPath:path];
} else { } else {
NSIndexPath *path = [NSIndexPath indexPathForItem:self.currentImageIndex inSection:0]; NSIndexPath *path = [NSIndexPath indexPathForItem:self.currentImageIndex inSection:0];
sourceView = [view cellForItemAtIndexPath:path]; sourceView = [view cellForItemAtIndexPath:path];
} }
}else { }else {
if (self.currentImageIndex<self.sourceImagesContainerView.subviews.count) { if (self.currentImageIndex<self.sourceImagesContainerView.subviews.count) {

View File

@@ -21,6 +21,17 @@ NS_ASSUME_NONNULL_BEGIN
token:(NSString *)token token:(NSString *)token
success:(void (^)(NSString *key, NSDictionary *resp))success success:(void (^)(NSString *key, NSDictionary *resp))success
failure:(void (^)(NSNumber *resCode, NSString *message))failure; failure:(void (^)(NSNumber *resCode, NSString *message))failure;
/// 上传一个gif图片
/// @param data 图片
/// @param imageName 图片的名字
/// @param token token
/// @param success 成功
/// @param failure 失败
+ (void)uploadGifImageData:(NSData *)data
named:(NSString *)imageName
token:(NSString *)token
success:(void (^)(NSString *key, NSDictionary *resp))success
failure:(void (^)(NSNumber *resCode, NSString *message))failure;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -35,4 +35,29 @@
} }
} option:nil]; } option:nil];
} }
/// gif
/// @param data
/// @param imageName
/// @param token token
/// @param success
/// @param failure
+ (void)uploadGifImageData:(NSData *)data
named:(NSString *)imageName
token:(NSString *)token
success:(void (^)(NSString *key, NSDictionary *resp))success
failure:(void (^)(NSNumber *resCode, NSString *message))failure{
QNConfiguration *config = [QNConfiguration build:^(QNConfigurationBuilder *builder) {
builder.zone = [QNFixedZone zone2];
}];
QNUploadManager *upManager = [[QNUploadManager alloc] initWithConfiguration:config];
[upManager putData:data key:imageName token:token complete:^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
if (resp) {
success(key,resp);
}else{
failure(@(info.statusCode),info.error.localizedDescription);
}
} option:nil];
}
@end @end

View File

@@ -9,6 +9,7 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@interface UIButton (EnlargeTouchArea) @interface UIButton (EnlargeTouchArea)
@property (nonatomic, assign) NSTimeInterval yn_acceptEventInterval; // 重复点击的间隔
//图片frmae //图片frmae
@property (strong, nonatomic) NSValue *imageFrame; @property (strong, nonatomic) NSValue *imageFrame;
@@ -33,4 +34,7 @@
*/ */
- (void)enlargeTouchArea:(UIEdgeInsets)insets; - (void)enlargeTouchArea:(UIEdgeInsets)insets;
+(UIButton *)buttonInitWithText:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor image:(UIImage *)image bgImage:(UIImage *)bgImage;
@end @end

View File

@@ -9,8 +9,18 @@
#import "UIButton+EnlargeTouchArea.h" #import "UIButton+EnlargeTouchArea.h"
#import <objc/runtime.h> #import <objc/runtime.h>
#define defaultInterval 0.0003 //,
@interface UIButton ()
/**
* bool YES NO
*/
@property (nonatomic, assign) BOOL isIgnoreEvent;
@end
@implementation UIButton (EnlargeTouchArea) @implementation UIButton (EnlargeTouchArea)
static const char *UIControl_acceptEventInterval = "UIControl_acceptEventInterval";
static const char *UIControl_enventIsIgnoreEvent = "UIControl_enventIsIgnoreEvent";
// C // C
static const char *imageFrameStr = "imageFrame"; static const char *imageFrameStr = "imageFrame";
@@ -26,9 +36,54 @@ static const char *titleFrameStr = "titleFrame";
Method newTitleMethod = class_getInstanceMethod(self, @selector(new_titleRectForContentRect:)); Method newTitleMethod = class_getInstanceMethod(self, @selector(new_titleRectForContentRect:));
Method oldTitleMethod = class_getInstanceMethod(self, @selector(titleRectForContentRect:)); Method oldTitleMethod = class_getInstanceMethod(self, @selector(titleRectForContentRect:));
method_exchangeImplementations(newTitleMethod, oldTitleMethod); method_exchangeImplementations(newTitleMethod, oldTitleMethod);
//selectorMethod
SEL selA = @selector(sendAction:to:forEvent:);
SEL selB = @selector(new_sendAction:to:forEvent:);
Method methodA = class_getInstanceMethod(self,selA);
Method methodB = class_getInstanceMethod(self, selB);
//
BOOL isAdd = class_addMethod(self, selA, method_getImplementation(methodB), method_getTypeEncoding(methodB));
if (isAdd) {//->
class_replaceMethod(self, selB, method_getImplementation(methodA), method_getTypeEncoding(methodA));
}else{//->
// methodBmethodAmethodBIMP
method_exchangeImplementations(methodA, methodB);
}
}); });
} }
- (void)new_sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event {
self.yn_acceptEventInterval = self.yn_acceptEventInterval == 0 ? defaultInterval : self.yn_acceptEventInterval;
if (self.isIgnoreEvent){//
return;
}
if (self.yn_acceptEventInterval > 0){//eventTimeInterval
[self performSelector:@selector(setNoIgnoreEvent) withObject:nil afterDelay:self.yn_acceptEventInterval];
}
self.isIgnoreEvent = YES;//
[self new_sendAction:action to:target forEvent:event];
}
// runtime
- (BOOL)isIgnoreEvent{
return [objc_getAssociatedObject(self, UIControl_enventIsIgnoreEvent) boolValue];
}
-(void)setNoIgnoreEvent{
self.isIgnoreEvent = NO;
}
- (void)setIsIgnoreEvent:(BOOL)isIgnoreEvent {
objc_setAssociatedObject(self, UIControl_enventIsIgnoreEvent, @(isIgnoreEvent), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(void)setYn_acceptEventInterval:(NSTimeInterval)yn_acceptEventInterval{
objc_setAssociatedObject(self, UIControl_acceptEventInterval, @(yn_acceptEventInterval), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(NSTimeInterval)yn_acceptEventInterval{
return [objc_getAssociatedObject(self, UIControl_acceptEventInterval) doubleValue];
}
- (void)setImageFrame:(NSValue *)imageFrame{ - (void)setImageFrame:(NSValue *)imageFrame{
objc_setAssociatedObject(self, imageFrameStr, imageFrame, OBJC_ASSOCIATION_RETAIN); objc_setAssociatedObject(self, imageFrameStr, imageFrame, OBJC_ASSOCIATION_RETAIN);
} }
@@ -111,5 +166,27 @@ static char leftNameKey;
} }
return CGRectContainsPoint(rect, point) ? self : nil; return CGRectContainsPoint(rect, point) ? self : nil;
} }
+(UIButton *)buttonInitWithText:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor image:(UIImage *)image bgImage:(UIImage *)bgImage{
UIButton *button = [[UIButton alloc]initWithFrame:CGRectZero];
if(text.length > 0){
[button setTitle:text forState:UIControlStateNormal];
}
if(font != nil){
button.titleLabel.font = font;
}
if(textColor != nil){
[button setTitleColor:textColor forState:UIControlStateNormal];
}
if (image != nil){
[button setImage:image forState:UIControlStateNormal];
}
if(bgImage != nil){
[button setBackgroundImage:bgImage forState:UIControlStateNormal];
}
return button;
}
@end @end

View File

@@ -48,4 +48,6 @@ typedef NS_ENUM(NSUInteger, GradientType) {
///裁剪图片 ///裁剪图片
- (UIImage *)cutImage:(CGSize)newSize; - (UIImage *)cutImage:(CGSize)newSize;
///判断是否为gif图片
+ (BOOL)isGifWithImageData: (NSData *)data;
@end @end

View File

@@ -377,5 +377,59 @@
return scaledImage; return scaledImage;
} }
+ (BOOL)isGifWithImageData: (NSData *)data {
if ([[self contentTypeWithImageData:data] isEqualToString:@"gif"]) {
return YES;
}
return NO;
}
+ (NSString *)contentTypeWithImageData: (NSData *)data {
uint8_t c;
[data getBytes:&c length:1];
switch (c) {
case 0xFF:
return @"jpeg";
case 0x89:
return @"png";
case 0x47:
return @"gif";
case 0x49:
case 0x4D:
return @"tiff";
case 0x52:
if ([data length] < 12) {
return nil;
}
NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
return @"webp";
}
return nil;
}
return nil;
}
@end @end

View File

@@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
@end @end
@interface XPHomePartyNavView : UIView @interface XPHomePartyNavView : UIView
@property(nonatomic,copy) NSString *title;
@property (nonatomic, weak) id<XPHomePartyNavViewDelegate> delegate; @property (nonatomic, weak) id<XPHomePartyNavViewDelegate> delegate;
@end @end

View File

@@ -55,7 +55,10 @@
[self.delegate xPHomePartyNavViewDidClickBack]; [self.delegate xPHomePartyNavViewDidClickBack];
} }
} }
-(void)setTitle:(NSString *)title{
_title = title;
_titleLabel.text = _title;
}
#pragma mark - Getters And Setters #pragma mark - Getters And Setters
- (UILabel *)titleLabel { - (UILabel *)titleLabel {
if(!_titleLabel) { if(!_titleLabel) {
@@ -72,6 +75,7 @@
_backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; _backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[_backBtn setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal]; [_backBtn setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
[_backBtn addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_backBtn addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_backBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
} }
return _backBtn; return _backBtn;
} }

View File

@@ -43,6 +43,15 @@
@property (nonatomic, strong) UILabel *statusLabel; @property (nonatomic, strong) UILabel *statusLabel;
@property (nonatomic, strong) UIStackView *statusStackView; @property (nonatomic, strong) UIStackView *statusStackView;
///
@property(nonatomic,strong) UIImageView *gameIconView;
///
@property(nonatomic,strong) UIView *gameBgView;
///
@property(nonatomic,strong) UILabel *gameView;
///
@property(nonatomic,strong) NetImageView *gameImageView;
@end @end
@@ -84,6 +93,7 @@
- (void)initSubViews { - (void)initSubViews {
[self.contentView addSubview:self.bgView]; [self.contentView addSubview:self.bgView];
[self.bgView addSubview:self.avatarImageView]; [self.bgView addSubview:self.avatarImageView];
[self.bgView addSubview:self.gameIconView];
[self.bgView addSubview:self.onlineImageView]; [self.bgView addSubview:self.onlineImageView];
[self.bgView addSubview:self.nameStackView]; [self.bgView addSubview:self.nameStackView];
[self.bgView addSubview:self.constellationStackView]; [self.bgView addSubview:self.constellationStackView];
@@ -91,6 +101,10 @@
[self.bgView addSubview:self.livingView]; [self.bgView addSubview:self.livingView];
[self.bgView addSubview:self.chatImageView]; [self.bgView addSubview:self.chatImageView];
[self.bgView addSubview:self.statusLabel]; [self.bgView addSubview:self.statusLabel];
[self.bgView addSubview:self.gameBgView];
[self.gameBgView addSubview:self.gameImageView];
[self.gameBgView addSubview:self.gameView];
[self.nameStackView addArrangedSubview:self.nobleImageView]; [self.nameStackView addArrangedSubview:self.nobleImageView];
[self.nameStackView addArrangedSubview:self.nickLabel]; [self.nameStackView addArrangedSubview:self.nickLabel];
@@ -102,28 +116,53 @@
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) { [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(25); make.left.mas_equalTo(22);
make.right.mas_equalTo(-15); make.right.mas_equalTo(-14);
make.top.mas_equalTo(6); make.top.mas_equalTo(0);
make.bottom.mas_equalTo(-6); make.bottom.mas_equalTo(-10);
}]; }];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(-10); make.left.mas_equalTo(-8);
make.centerY.mas_equalTo(self.bgView); make.centerY.mas_equalTo(self.bgView);
make.size.mas_equalTo(CGSizeMake(72, 72)); make.size.mas_equalTo(CGSizeMake(64, 64));
}]; }];
[self.gameIconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(48);
make.height.mas_equalTo(16);
make.centerX.equalTo(self.avatarImageView);
make.centerY.equalTo(self.avatarImageView.mas_bottom);
}];
[self.onlineImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.onlineImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self.avatarImageView.mas_right).offset(-3); make.right.mas_equalTo(self.avatarImageView.mas_right).offset(-6);
make.bottom.mas_equalTo(self.avatarImageView.mas_bottom).offset(-6); make.top.mas_equalTo(self.avatarImageView.mas_top).offset(2);
make.size.mas_equalTo(CGSizeMake(12, 12)); make.size.mas_equalTo(CGSizeMake(11, 11));
}];
[self.gameBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-10);
make.top.mas_equalTo(self.avatarImageView.mas_top).offset(5);
make.height.mas_equalTo(20);
make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(10));
}];
[self.gameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-8);
make.left.mas_equalTo(26);
make.centerY.equalTo(self.gameBgView);
}];
[self.gameImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(14);
make.centerY.equalTo(self.gameBgView);
make.left.mas_equalTo(10);
}]; }];
[self.nameStackView mas_makeConstraints:^(MASConstraintMaker *make) { [self.nameStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.avatarImageView.mas_right).offset(12); make.left.mas_equalTo(self.avatarImageView.mas_right).offset(12);
make.top.mas_equalTo(self.avatarImageView.mas_top).offset(4); make.top.mas_equalTo(self.avatarImageView.mas_top).offset(4);
make.right.mas_lessThanOrEqualTo(self.livingView.mas_left).offset(-10); make.right.mas_lessThanOrEqualTo(self.gameBgView.mas_left).offset(-2);
make.height.mas_equalTo(21); make.height.mas_equalTo(21);
}]; }];
@@ -132,7 +171,7 @@
}]; }];
[self.constellationStackView mas_makeConstraints:^(MASConstraintMaker *make) { [self.constellationStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.avatarImageView); make.centerY.mas_equalTo(self.avatarImageView).mas_offset(5);
make.left.mas_equalTo(self.nameStackView); make.left.mas_equalTo(self.nameStackView);
}]; }];
@@ -148,13 +187,13 @@
[self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) { [self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.nameStackView); make.left.mas_equalTo(self.nameStackView);
make.bottom.mas_equalTo(self.avatarImageView.mas_bottom).offset(-4); make.top.equalTo(self.constellationStackView.mas_bottom).mas_offset(10);
make.right.mas_equalTo(self.livingView.mas_left).offset(-10); make.right.mas_equalTo(self.livingView.mas_left).offset(-10);
}]; }];
[self.livingView mas_makeConstraints:^(MASConstraintMaker *make) { [self.livingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15); make.right.mas_equalTo(-15);
make.centerY.mas_equalTo(self.bgView).mas_offset(-8); make.top.equalTo(self.gameBgView.mas_bottom).mas_offset(12);
make.size.mas_equalTo(CGSizeMake(20, 20)); make.size.mas_equalTo(CGSizeMake(20, 20));
}]; }];
@@ -251,7 +290,11 @@
- (void)setRoomInfo:(UserInfoModel *)roomInfo { - (void)setRoomInfo:(UserInfoModel *)roomInfo {
_roomInfo = roomInfo; _roomInfo = roomInfo;
self.avatarImageView.imageUrl = roomInfo.avatar; self.avatarImageView.imageUrl = roomInfo.avatar;
self.nickLabel.text = roomInfo.nick; NSString *nick = roomInfo.nick;
if(nick.length > 7){
nick = [NSString stringWithFormat:@"%@...",[nick substringToIndex:7]];
}
self.nickLabel.text = nick;
if (roomInfo.gender == GenderType_Female) { if (roomInfo.gender == GenderType_Female) {
[self.sexBtn setImage:[UIImage imageNamed:@"home_sex_female"] forState:UIControlStateNormal]; [self.sexBtn setImage:[UIImage imageNamed:@"home_sex_female"] forState:UIControlStateNormal];
self.sexBtn.backgroundColor = [ThemeColor colorWithHexString:@"#FF9CCE"]; self.sexBtn.backgroundColor = [ThemeColor colorWithHexString:@"#FF9CCE"];
@@ -288,6 +331,22 @@
self.nobleImageView.hidden = YES; self.nobleImageView.hidden = YES;
self.nickLabel.textColor = [ThemeColor mainTextColor]; self.nickLabel.textColor = [ThemeColor mainTextColor];
} }
_gameIconView.hidden = YES;
_gameBgView.hidden = YES;
if(_roomInfo.userGamePartnerVo){
_gameIconView.hidden = NO;
_gameBgView.hidden = NO;
_gameImageView.imageUrl = _roomInfo.userGamePartnerVo.firstLogo;
NSString *gameName = @"";
if(_roomInfo.userGamePartnerVo.firstGameName.length > 0 && _roomInfo.userGamePartnerVo.secondGameName.length > 0){
gameName = [NSString stringWithFormat:@"%@%@",_roomInfo.userGamePartnerVo.firstGameName,_roomInfo.userGamePartnerVo.secondGameName];
}else if(_roomInfo.userGamePartnerVo.firstGameName.length > 0){
gameName = _roomInfo.userGamePartnerVo.firstGameName;
}else if(_roomInfo.userGamePartnerVo.secondGameName.length > 0){
gameName = _roomInfo.userGamePartnerVo.secondGameName;
}
_gameView.text = gameName;
}
} }
- (UIView *)bgView { - (UIView *)bgView {
@@ -307,7 +366,7 @@
_avatarImageView = [[NetImageView alloc] initWithConfig:config]; _avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.userInteractionEnabled = YES; _avatarImageView.userInteractionEnabled = YES;
_avatarImageView.layer.masksToBounds = YES; _avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 36; _avatarImageView.layer.cornerRadius = 32;
_avatarImageView.contentMode = UIViewContentModeScaleAspectFill; _avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAvatarGuest)]; UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAvatarGuest)];
[_avatarImageView addGestureRecognizer:tap]; [_avatarImageView addGestureRecognizer:tap];
@@ -319,7 +378,7 @@
if (!_onlineImageView) { if (!_onlineImageView) {
_onlineImageView = [[UIImageView alloc] init]; _onlineImageView = [[UIImageView alloc] init];
_onlineImageView.backgroundColor = [ThemeColor colorWithHexString:@"#6CE19A"]; _onlineImageView.backgroundColor = [ThemeColor colorWithHexString:@"#6CE19A"];
_onlineImageView.layer.cornerRadius = 6; _onlineImageView.layer.cornerRadius = 5.5;
_onlineImageView.layer.borderWidth = 2; _onlineImageView.layer.borderWidth = 2;
_onlineImageView.layer.borderColor = UIColor.whiteColor.CGColor; _onlineImageView.layer.borderColor = UIColor.whiteColor.CGColor;
_onlineImageView.clipsToBounds = YES; _onlineImageView.clipsToBounds = YES;
@@ -439,5 +498,41 @@
} }
return _statusStackView; return _statusStackView;
} }
-(UIImageView *)gameIconView{
if(!_gameIconView){
_gameIconView = [UIImageView new];
_gameIconView.image = kImage(@"home_gamge_icon");
_gameIconView.hidden = YES;
}
return _gameIconView;
}
- (UIView *)gameBgView{
if(!_gameBgView){
_gameBgView = [UIView new];
_gameBgView.backgroundColor = UIColorFromRGB(0xF8F8FA);
_gameBgView.layer.cornerRadius = kGetScaleWidth(10);
_gameBgView.layer.masksToBounds = YES;
_gameBgView.hidden = YES;
}
return _gameBgView;
}
- (UILabel *)gameView{
if(!_gameView){
_gameView = [UILabel new];
_gameView.font = [UIFont systemFontOfSize:10 weight:UIFontWeightRegular];
_gameView.text = @"";
_gameView.textColor = UIColorFromRGB(0x696D7A);
}
return _gameView;
}
- (NetImageView *)gameImageView{
if(!_gameImageView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
_gameImageView = [[NetImageView alloc]initWithConfig:config];
_gameImageView.layer.cornerRadius = 7;
_gameImageView.layer.masksToBounds = YES;
}
return _gameImageView;
}
@end @end

View File

@@ -130,9 +130,12 @@
for (HomePlayRoomModel *model in array) { for (HomePlayRoomModel *model in array) {
if (model.isBanner) { if (model.isBanner) {
self.headerView.bannerList = model.bannerVoList; self.headerView.bannerList = model.bannerVoList;
break; break;
} }
} }
[self hideHUD];
[self.pagingView reloadData];
}else{ }else{
} }
@@ -202,10 +205,12 @@
#pragma mark - JXCategoryViewDelegate #pragma mark - JXCategoryViewDelegate
- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView { - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
if(self.headerView.bannerList.count == 0)return 0;
return [XPPartyHeaderView getPartyHeaderViewHeight]; return [XPPartyHeaderView getPartyHeaderViewHeight];
} }
- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView { - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
return self.headerView; return self.headerView;
} }

View File

@@ -104,6 +104,8 @@ typedef NS_ENUM(NSUInteger, CustomMessageType) {
CustomMessageType_Starred_Kitchen = 96, CustomMessageType_Starred_Kitchen = 96,
///特权卡 ///特权卡
CustomMessageType_Privilege_Card = 102, CustomMessageType_Privilege_Card = 102,
///发起邀请
CustomMessageType_Initiat_Invitation = 103,
}; };
@@ -546,7 +548,14 @@ typedef NS_ENUM(NSInteger, CustomMessageStarredKitchen) {
///星级厨房礼物房间飘屏通知动态) ///星级厨房礼物房间飘屏通知动态)
Custom_Message_Sub_Starred_Kitchen_Banner_Dynamic = 961 , Custom_Message_Sub_Starred_Kitchen_Banner_Dynamic = 961 ,
}; };
///发起邀请 CustomMessageType_Initiat_Invitation
typedef NS_ENUM(NSInteger, CustomMessageTypeInitiatInvitation) {
///发起用户或接单用户
Custom_Message_Sub_Initiat_Invitation_Initiating_User = 1030,
};
@interface AttachmentModel : NSObject<NIMCustomAttachment> @interface AttachmentModel : NSObject<NIMCustomAttachment>
@property (nonatomic,assign) int first; @property (nonatomic,assign) int first;
@property (nonatomic,assign) int second; @property (nonatomic,assign) int second;

View File

@@ -10,7 +10,7 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface ChatLimitModel : NSObject @interface ChatLimitModel : NSObject
@property(nonatomic,assign) int model;
@property (nonatomic, assign) BOOL chat; @property (nonatomic, assign) BOOL chat;
@property (nonatomic, copy) NSString * message; @property (nonatomic, copy) NSString * message;
@property (nonatomic, copy) NSString * wealthLevel; @property (nonatomic, copy) NSString * wealthLevel;

View File

@@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN
/// 关注用户 /// 关注用户
/// @param targetUid 目标用户的uid /// @param targetUid 目标用户的uid
- (void)attentionUser:(NSString *)targetUid; - (void)attentionUser:(NSString *)targetUid;
///用户的游戏配置信息
-(void)getGamePartnerInfoListWithUid:(NSString *)uid;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -12,6 +12,7 @@
#import "Api+Mine.h" #import "Api+Mine.h"
#import "UserInfoModel.h" #import "UserInfoModel.h"
#import "AccountInfoStorage.h" #import "AccountInfoStorage.h"
#import "UserGameInfoVo.h"
@implementation MessagePresenter @implementation MessagePresenter
@@ -28,6 +29,8 @@
[Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api userDetailInfoCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data]; UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
[[self getView] onGetSessionUserInfoSuccess:infoModel]; [[self getView] onGetSessionUserInfoSuccess:infoModel];
}fail:^(NSInteger code, NSString * _Nullable msg) {
[[self getView]onGetSessionUserInfoFail];
}] uid:uid page:@"1" pageSize:@"20"]; }] uid:uid page:@"1" pageSize:@"20"];
} }
@@ -48,7 +51,17 @@
NSString * type = @"1"; NSString * type = @"1";
[Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [Api attentionCompletion:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] attentionUserSuccess:targetUid]; [[self getView] attentionUserSuccess:targetUid];
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAttentionUserNotification" object:nil];
} showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type]; } showLoading:YES] uid:uid likedUid:targetUid ticket:ticket type:type];
} }
///
-(void)getGamePartnerInfoListWithUid:(NSString *)uid{
if(uid.length == 0)return;
[Api requestGamePartnerInfoList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *list = [UserGameInfoVo modelsWithArray:data.data];
[[self getView]getGamePartnerInfoList:list];
} fail:^(NSInteger code, NSString * _Nullable msg) {
}] uid:uid];
}
@end @end

View File

@@ -17,10 +17,14 @@ NS_ASSUME_NONNULL_BEGIN
///获取用户信息成功 ///获取用户信息成功
- (void)onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo; - (void)onGetSessionUserInfoSuccess:(UserInfoModel *)userInfo;
///获取用户信息失败
- (void)onGetSessionUserInfoFail;
///获取粉丝喜欢成功 ///获取粉丝喜欢成功
- (void)getFansLikeSuccess:(BOOL)isLike; - (void)getFansLikeSuccess:(BOOL)isLike;
///关注成功 ///关注成功
- (void)attentionUserSuccess:(NSString *)uid; - (void)attentionUserSuccess:(NSString *)uid;
///获取用户的游戏配置信息
-(void)getGamePartnerInfoList:(NSArray *)list;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -7,6 +7,7 @@
#import "NIMMessageUtils.h" #import "NIMMessageUtils.h"
#import "AttachmentModel.h" #import "AttachmentModel.h"
#import "UserGameInfoVo.h"
@implementation NIMMessageUtils @implementation NIMMessageUtils
@@ -66,6 +67,9 @@
return @"[分享了一条动态]"; return @"[分享了一条动态]";
} else if(attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) { } else if(attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
return @"[你收到一个全服红包]"; return @"[你收到一个全服红包]";
}else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User) {
UserGameInfoVo *gameInfo = [UserGameInfoVo modelWithDictionary:attachment.data];
return [gameInfo.fromUid isEqualToString:[AccountInfoStorage instance].getUid] ? @"你发送一条开黑邀请":@"你收到一条开黑邀请";
} else { } else {
text = @"[消息]"; text = @"[消息]";
} }

View File

@@ -14,7 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
@protocol MessageContentCustomViewDelegate <NSObject> @protocol MessageContentCustomViewDelegate <NSObject>
- (void)updateMessageSuccess:(NIMMessage *)message; - (void)updateMessageSuccess:(NIMMessage *)message;
///查看点单信息
- (void)checkGameListInfo:(NIMMessage *)message;
@end @end
@interface MessageContentCustomView : UIView <MessageContentProtocol> @interface MessageContentCustomView : UIView <MessageContentProtocol>

View File

@@ -0,0 +1,16 @@
//
// MessageContentGameView.h
// xplan-ios
//
// Created by duoban on 2023/8/22.
//
#import "MessageContentCustomView.h"
NS_ASSUME_NONNULL_BEGIN
@interface MessageContentGameView : MessageContentCustomView
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,160 @@
//
// MessageContentGameView.m
// xplan-ios
//
// Created by duoban on 2023/8/22.
//
#import "MessageContentGameView.h"
#import "UserGameInfoVo.h"
@interface MessageContentGameView()
///
@property(nonatomic,strong) NetImageView *bgImageView;
///
@property(nonatomic,strong) UILabel *titleView;
///
@property(nonatomic,strong) UILabel *subTitleView;
///
@property(nonatomic,strong) UIView *gameBgView;
///logo
@property(nonatomic,strong) NetImageView *gameIcomView;
///
@property(nonatomic,strong) UILabel *gameNameView;
///
@property(nonatomic,strong) UILabel *gameNumView;
@property(nonatomic,strong) NIMMessage *msg;
@end
@implementation MessageContentGameView
+ (CGFloat)measureHeight:(NIMMessage *)message {
return (CONTENT_PADDING_V_TOTAL + kGetScaleWidth(136));
}
- (void)initSubViews {
[super initSubViews];
[self addSubview:self.backView];
[self.backView addSubview:self.bgImageView];
[self.bgImageView addSubview:self.titleView];
[self.bgImageView addSubview:self.subTitleView];
[self.bgImageView addSubview:self.gameBgView];
[self.gameBgView addSubview:self.gameIcomView];
[self.gameBgView addSubview:self.gameNameView];
[self.gameBgView addSubview:self.gameNumView];
}
- (void)initSubViewConstraints {
[super initSubViewConstraints];
[self.backView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(239), kGetScaleWidth(136)));
}];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(239));
make.height.mas_equalTo(kGetScaleWidth(136));
make.top.leading.mas_equalTo(self.backView);
}];
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(16));
make.top.mas_equalTo(kGetScaleWidth(12));
make.height.mas_equalTo(kGetScaleWidth(22));
}];
[self.subTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(16));
make.top.equalTo(self.titleView.mas_bottom).mas_offset(kGetScaleWidth(1));
make.height.mas_equalTo(kGetScaleWidth(17));
}];
[self.gameBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(10));
make.top.equalTo(self.subTitleView.mas_bottom).mas_offset(kGetScaleWidth(6));
make.width.mas_equalTo(kGetScaleWidth(219));
make.height.mas_equalTo(kGetScaleWidth(68));
}];
[self.gameIcomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.width.mas_equalTo(kGetScaleWidth(44));
make.leading.mas_equalTo(kGetScaleWidth(16));
make.top.mas_equalTo(kGetScaleWidth(12));
}];
[self.gameNameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(12));
make.leading.mas_equalTo(kGetScaleWidth(70));
make.height.mas_equalTo(kGetScaleWidth(22));
}];
[self.gameNumView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.gameNameView.mas_bottom).mas_offset(kGetScaleWidth(2));
make.leading.mas_equalTo(kGetScaleWidth(70));
make.height.mas_equalTo(kGetScaleWidth(20));
}];
}
- (void)render:(NIMMessage *)message {
self.msg = message;
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
AttachmentModel * attach = obj.attachment;
UserGameInfoVo *gameInfo = [UserGameInfoVo modelWithDictionary:attach.data];
_gameIcomView.imageUrl = gameInfo.gameLogo;
_gameNameView.text = gameInfo.gameName;
_gameNumView.text = [NSString stringWithFormat:@"%@ 局",gameInfo.inning];
}
-(void)checkGameAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(checkGameListInfo:)]){
[self.delegate checkGameListInfo:self.msg];
}
}
- (NetImageView *)bgImageView{
if(!_bgImageView){
_bgImageView = [NetImageView new];
_bgImageView.image = kImage(@"message_session_game_Invite_bg");
_bgImageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(checkGameAction)];
[_bgImageView addGestureRecognizer:tap];
}
return _bgImageView;
}
- (UILabel *)titleView{
if(!_titleView){
_titleView = [UILabel labelInitWithText:@"开黑邀请" font:kFontMedium(16) textColor:[UIColor whiteColor]];
}
return _titleView;
}
-(UILabel *)subTitleView{
if(!_subTitleView){
_subTitleView = [UILabel labelInitWithText:@"和我一起玩游戏吧~" font:kFontRegular(12) textColor:UIColorFromRGB(0xCED1DB)];
}
return _subTitleView;
}
- (UIView *)gameBgView{
if(!_gameBgView){
_gameBgView = [UIView new];
_gameBgView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1];
_gameBgView.layer.cornerRadius = kGetScaleWidth(6);
_gameBgView.layer.masksToBounds = YES;
}
return _gameBgView;
}
- (NetImageView *)gameIcomView{
if(!_gameIcomView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
_gameIcomView = [[NetImageView alloc]initWithConfig:config];
_gameIcomView.userInteractionEnabled = YES;
}
return _gameIcomView;
}
- (UILabel *)gameNameView{
if(!_gameNameView){
_gameNameView = [UILabel labelInitWithText:@"" font:kFontMedium(16) textColor:[UIColor whiteColor]];
}
return _gameNameView;
}
- (UILabel *)gameNumView{
if(!_gameNumView){
_gameNumView = [UILabel labelInitWithText:@"" font:kFontRegular(14) textColor:[UIColor colorWithWhite:1 alpha:0.8]];
}
return _gameNumView;
}
@end

View File

@@ -18,7 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)didTapAvatar:(NSString *)uid; - (void)didTapAvatar:(NSString *)uid;
///发送失败点击了重试 ///发送失败点击了重试
- (void)didFailRetry:(NIMMessage *)message; - (void)didFailRetry:(NIMMessage *)message;
///查看点单信息
- (void)checkGameListInfo:(NIMMessage *)message;
@end @end
@interface MessageCell : UITableViewCell @interface MessageCell : UITableViewCell

View File

@@ -25,6 +25,7 @@
#import "MessageContentMonentsView.h" #import "MessageContentMonentsView.h"
#import "MessageContentMonentsAutoView.h" #import "MessageContentMonentsAutoView.h"
#import "MessageContentRedPacketView.h" #import "MessageContentRedPacketView.h"
#import "MessageContentGameView.h"
#import "AttachmentModel.h" #import "AttachmentModel.h"
#import "NetImageView.h" #import "NetImageView.h"
@@ -267,7 +268,9 @@
return @"MessageContentMonentsAutoView"; return @"MessageContentMonentsAutoView";
} else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) { } else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
return @"MessageContentRedPacketView"; return @"MessageContentRedPacketView";
} else { }else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User){
return @"MessageContentGameView";
}else {
return @"MessageContentUnSupportView"; return @"MessageContentUnSupportView";
} }
} else { } else {
@@ -318,6 +321,8 @@
return [MessageContentMonentsAutoView measureHeight:message]; return [MessageContentMonentsAutoView measureHeight:message];
} else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket){ } else if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket){
return [MessageContentRedPacketView measureHeight:message]; return [MessageContentRedPacketView measureHeight:message];
}else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User){
return [MessageContentGameView measureHeight:message];
} else { } else {
return [MessageContentUnSupportView measureHeight:message]; return [MessageContentUnSupportView measureHeight:message];
} }
@@ -399,7 +404,14 @@
return self.messageContent; return self.messageContent;
} }
return [[MessageContentRedPacketView alloc] init]; return [[MessageContentRedPacketView alloc] init];
} else { } else if(attachment.first == CustomMessageType_Initiat_Invitation && attachment.second == Custom_Message_Sub_Initiat_Invitation_Initiating_User){
if ([self.messageContent isKindOfClass:[MessageContentGameView class]]) {
return self.messageContent;
}
MessageContentGameView*gameView = [[MessageContentGameView alloc] init];
gameView.delegate = self;
return gameView;
}else {
if ([self.messageContent isKindOfClass:[MessageContentUnSupportView class]]) { if ([self.messageContent isKindOfClass:[MessageContentUnSupportView class]]) {
return self.messageContent; return self.messageContent;
} }
@@ -413,7 +425,11 @@
[self.delegate updateMessageSuccess:message]; [self.delegate updateMessageSuccess:message];
} }
} }
- (void)checkGameListInfo:(NIMMessage *)message{
if(self.delegate && [self.delegate respondsToSelector:@selector(checkGameListInfo:)]){
[self.delegate checkGameListInfo:message];
}
}
#pragma mark - Event Response #pragma mark - Event Response
- (void)rightAvatarTapRecognizer { - (void)rightAvatarTapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) { if (self.delegate && [self.delegate respondsToSelector:@selector(didTapAvatar:)]) {

View File

@@ -36,12 +36,17 @@
make.top.left.right.bottom.mas_equalTo(self.bgView).insets(UIEdgeInsetsMake(10, 10, 10, 10)); make.top.left.right.bottom.mas_equalTo(self.bgView).insets(UIEdgeInsetsMake(10, 10, 10, 10));
}]; }];
[self initLabel:chatLimit.charmLevel.integerValue wealthLevel:chatLimit.wealthLevel.integerValue]; [self initLabel:chatLimit.charmLevel.integerValue wealthLevel:chatLimit.wealthLevel.integerValue model:chatLimit.model];
} }
return self; return self;
} }
- (void)initLabel:(NSInteger)charmLevel wealthLevel:(NSInteger)wealthLevel { - (void)initLabel:(NSInteger)charmLevel wealthLevel:(NSInteger)wealthLevel model:(int)model{
if(model == 2){
NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:@"互相关注成为好友可发起聊天" attributes:@{NSFontAttributeName: [UIFont systemFontOfSize: 12],NSForegroundColorAttributeName: ThemeColor.mainTextColor}];
self.textLabel.attributedText = attStr;
return;
}
NSInteger charm = charmLevel > 0 ? charmLevel : 3; NSInteger charm = charmLevel > 0 ? charmLevel : 3;
NSInteger wealth = wealthLevel > 0 ? wealthLevel : 3; NSInteger wealth = wealthLevel > 0 ? wealthLevel : 3;
UIColor *highlightColor = ThemeColor.appMainColor; UIColor *highlightColor = ThemeColor.appMainColor;

View File

@@ -16,6 +16,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)sessionNavView:(SessionNavView *)view didClickLike:(UIButton *)sender; - (void)sessionNavView:(SessionNavView *)view didClickLike:(UIButton *)sender;
///点击了返回 ///点击了返回
- (void)sessionNavView:(SessionNavView *)view didClickBack:(UIButton *)sender; - (void)sessionNavView:(SessionNavView *)view didClickBack:(UIButton *)sender;
///跟随房间
- (void)sessionNavView:(SessionNavView *)view didClickToRoom:(UIButton *)sender;
@end @end
@interface SessionNavView : UIView @interface SessionNavView : UIView
@@ -28,6 +30,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic,weak) id<SessionNavViewDelegate> delegate; @property (nonatomic,weak) id<SessionNavViewDelegate> delegate;
///是否在房间中 ///是否在房间中
@property (nonatomic,assign) BOOL isInRoom; @property (nonatomic,assign) BOOL isInRoom;
///是否显示直播中
@property(nonatomic,assign) BOOL isShowLive;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@@ -7,6 +7,7 @@
#import "SessionNavView.h" #import "SessionNavView.h"
///Third ///Third
#import <SVGA.h>
#import <Masonry/Masonry.h> #import <Masonry/Masonry.h>
#import <NIMSDK/NIMSDK.h> #import <NIMSDK/NIMSDK.h>
///Tool ///Tool
@@ -21,8 +22,7 @@
@property (nonatomic,strong) UIButton *backButton; @property (nonatomic,strong) UIButton *backButton;
/// ///
@property (nonatomic,strong) UIStackView *infoStackView; @property (nonatomic,strong) UIStackView *infoStackView;
///
@property (nonatomic,strong) UIStackView *nickStackView;
/// ///
@property (nonatomic,strong) UILabel *nickLabel; @property (nonatomic,strong) UILabel *nickLabel;
/// ///
@@ -31,7 +31,10 @@
@property (nonatomic,strong) UILabel *subTitleLabel; @property (nonatomic,strong) UILabel *subTitleLabel;
/// ///
@property (nonatomic,strong) UIButton *reportButton; @property (nonatomic,strong) UIButton *reportButton;
///
@property (nonatomic, strong) SVGAPlayer *livingView;
@property(nonatomic,strong) UILabel *livingTitleView;
@property(nonatomic,strong) UIButton *livingBtn;
@end @end
@implementation SessionNavView @implementation SessionNavView
@@ -40,6 +43,13 @@
if (self) { if (self) {
[self initSubViews]; [self initSubViews];
[self initSubViewConstraints]; [self initSubViewConstraints];
SVGAParser *parser = [[SVGAParser alloc] init];
[parser parseWithNamed:@"home_living" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
if (videoItem != nil) {
self.livingView.videoItem = videoItem;
[self.livingView startAnimation];
}
} failureBlock:nil];
} }
return self; return self;
} }
@@ -50,12 +60,16 @@
[self addSubview:self.backButton]; [self addSubview:self.backButton];
[self addSubview:self.infoStackView]; [self addSubview:self.infoStackView];
[self addSubview:self.reportButton]; [self addSubview:self.reportButton];
[self addSubview:self.likeButton];
[self.infoStackView addArrangedSubview:self.nickStackView]; [self addSubview:self.nickLabel];
[self.infoStackView addArrangedSubview:self.livingView];
[self.infoStackView addArrangedSubview:self.livingTitleView];
[self.infoStackView addArrangedSubview:self.subTitleLabel]; [self.infoStackView addArrangedSubview:self.subTitleLabel];
[self addSubview:self.livingBtn];
[self.nickStackView addArrangedSubview:self.nickLabel];
[self.nickStackView addArrangedSubview:self.likeButton];
} }
- (void)initSubViewConstraints { - (void)initSubViewConstraints {
@@ -65,20 +79,36 @@
make.top.mas_equalTo(statusbarHeight + 14); make.top.mas_equalTo(statusbarHeight + 14);
}]; }];
[self.infoStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.centerY.mas_equalTo(self.backButton);
}];
[self.likeButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(22, 22));
}];
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.top.mas_equalTo(statusbarHeight + 4);
make.height.mas_equalTo(22);
}];
[self.infoStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.top.equalTo(self.nickLabel.mas_bottom).mas_offset(3);
}];
[self.reportButton mas_makeConstraints:^(MASConstraintMaker *make) { [self.reportButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(30, 30 )); make.size.mas_equalTo(CGSizeMake(30, 30 ));
make.right.mas_equalTo(self).offset(-15); make.right.mas_equalTo(self).offset(-15);
make.centerY.mas_equalTo(self.backButton); make.centerY.mas_equalTo(self.backButton);
}]; }];
[self.likeButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(48);
make.height.mas_equalTo(21);
make.centerY.equalTo(self.reportButton);
make.right.equalTo(self.reportButton.mas_left).mas_offset(-14);
}];
[self.livingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(13);
make.height.mas_equalTo(9);
}];
[self.livingBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.bottom.equalTo(self.infoStackView);
make.width.mas_equalTo(57);
}];
} }
- (BOOL)isSystemAccount { - (BOOL)isSystemAccount {
@@ -117,7 +147,11 @@
self.reportButton.hidden = [self isSystemAccount] || self.isInRoom; self.reportButton.hidden = [self isSystemAccount] || self.isInRoom;
} }
} }
-(void)livingBtnAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(sessionNavView:didClickToRoom:)]){
[self.delegate sessionNavView:self didClickToRoom:self.livingBtn];
}
}
- (void)setTitle:(NSString *)title { - (void)setTitle:(NSString *)title {
_title = title; _title = title;
if (_title) { if (_title) {
@@ -141,15 +175,24 @@
[self.backButton mas_updateConstraints:^(MASConstraintMaker *make) { [self.backButton mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self).offset(11); make.top.mas_equalTo(self).offset(11);
}]; }];
} }
} }
-(void)setIsShowLive:(BOOL)isShowLive{
_isShowLive = isShowLive;
if(_isShowLive){
self.livingView.hidden = NO;
self.livingBtn.hidden = NO;
self.livingTitleView.hidden = NO;
}
}
- (UIButton *)backButton { - (UIButton *)backButton {
if (!_backButton) { if (!_backButton) {
_backButton = [UIButton buttonWithType:UIButtonTypeCustom]; _backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal]; [_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateNormal];
[_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateSelected]; [_backButton setImage:[UIImage imageNamed:@"common_nav_back"] forState:UIControlStateSelected];
[_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_backButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
} }
return _backButton; return _backButton;
} }
@@ -157,29 +200,20 @@
- (UIStackView *)infoStackView { - (UIStackView *)infoStackView {
if (!_infoStackView) { if (!_infoStackView) {
_infoStackView = [[UIStackView alloc] init]; _infoStackView = [[UIStackView alloc] init];
_infoStackView.axis = UILayoutConstraintAxisVertical; _infoStackView.axis = UILayoutConstraintAxisHorizontal;
_infoStackView.distribution = UIStackViewDistributionFill; _infoStackView.distribution = UIStackViewDistributionFill;
_infoStackView.alignment = UIStackViewAlignmentFill; _infoStackView.alignment = UIStackViewAlignmentFill;
_infoStackView.spacing = 3; _infoStackView.spacing = 4;
} }
return _infoStackView; return _infoStackView;
} }
- (UIStackView *)nickStackView {
if (!_nickStackView) {
_nickStackView = [[UIStackView alloc] init];
_nickStackView.axis = UILayoutConstraintAxisHorizontal;
_nickStackView.distribution = UIStackViewDistributionFill;
_nickStackView.alignment = UIStackViewAlignmentFill;
_nickStackView.spacing = 3;
}
return _nickStackView;
}
- (UILabel *)nickLabel { - (UILabel *)nickLabel {
if (!_nickLabel) { if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init]; _nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; _nickLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
_nickLabel.textColor = [ThemeColor mainTextColor]; _nickLabel.textColor = [ThemeColor mainTextColor];
_nickLabel.textAlignment = NSTextAlignmentCenter; _nickLabel.textAlignment = NSTextAlignmentCenter;
} }
@@ -189,8 +223,13 @@
- (UIButton *)likeButton { - (UIButton *)likeButton {
if (!_likeButton) { if (!_likeButton) {
_likeButton = [UIButton buttonWithType:UIButtonTypeCustom]; _likeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_likeButton setImage:[UIImage imageNamed:@"message_session_nav_like"] forState:UIControlStateNormal]; [_likeButton setTitle:@"关注" forState:UIControlStateNormal];
[_likeButton setImage:[UIImage imageNamed:@"message_session_nav_like"] forState:UIControlStateSelected]; _likeButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_likeButton.layer.cornerRadius = 21/2;
_likeButton.layer.masksToBounds = YES;
[_likeButton setTitleColor:UIColorFromRGB(0xFFDA24) forState:UIControlStateNormal];
_likeButton.layer.borderWidth = 0.5;
_likeButton.layer.borderColor = UIColorFromRGB(0xFFDA24).CGColor;
[_likeButton addTarget:self action:@selector(likeButtonAction:) forControlEvents:UIControlEventTouchUpInside]; [_likeButton addTarget:self action:@selector(likeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
_likeButton.hidden = NO; _likeButton.hidden = NO;
} }
@@ -218,6 +257,25 @@
} }
return _reportButton; return _reportButton;
} }
- (SVGAPlayer *)livingView {
if (!_livingView) {
_livingView = [[SVGAPlayer alloc] init];
_livingView.hidden = YES;
}
return _livingView;
}
- (UILabel *)livingTitleView{
if(!_livingTitleView){
_livingTitleView = [UILabel labelInitWithText:@"直播中 >" font:[UIFont systemFontOfSize:10 weight:UIFontWeightRegular] textColor:UIColorFromRGB(0xA2A7B8)];
_livingTitleView.hidden = YES;
}
return _livingTitleView;
}
-(UIButton *)livingBtn{
if(!_livingBtn){
_livingBtn = [UIButton new];
[_livingBtn addTarget:self action:@selector(livingBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _livingBtn;
}
@end @end

View File

@@ -20,6 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface SessionToolbarView : UIView @interface SessionToolbarView : UIView
///代理 ///代理
@property (nonatomic,weak) id<SessionToolbarViewDelegate> delegate; @property (nonatomic,weak) id<SessionToolbarViewDelegate> delegate;
@property(nonatomic,assign) int model;
@property (nonatomic, assign, getter=isSendDisabled) BOOL sendDisabled; @property (nonatomic, assign, getter=isSendDisabled) BOOL sendDisabled;
///折叠 菜单view ///折叠 菜单view
- (void)foldMenuView; - (void)foldMenuView;

View File

@@ -331,7 +331,7 @@
self.userInteractionEnabled = !sendDisabled; self.userInteractionEnabled = !sendDisabled;
if (sendDisabled) { if (sendDisabled) {
self.inputView.text = @""; self.inputView.text = @"";
NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"暂时无法私聊" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}]; NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:_model == 2 ? @"互相关注成为好友可发起聊天" : @"暂时无法私聊" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}];
self.inputView.attributedPlaceholder = attribute; self.inputView.attributedPlaceholder = attribute;
} else { } else {
NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"请输入消息" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}]; NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"请输入消息" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [ThemeColor secondTextColor]}];

View File

@@ -12,9 +12,10 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface SessionViewController : MvpViewController @interface SessionViewController : MvpViewController
@property (nonatomic, strong,readonly) NIMSession * session;
- (instancetype)initWithSession:(NIMSession *)session; @property(nonatomic,assign) BOOL isFormGame;
@property (nonatomic, assign) SessionListOpenType openType; @property (nonatomic, assign) SessionListOpenType openType;
- (instancetype)initWithSession:(NIMSession *)session;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
//
// XPSessionMessageGameCell.h
// xplan-ios
//
// Created by duoban on 2023/8/22.
//
#import <UIKit/UIKit.h>
#import "UserGameInfoVo.h"
#import "UserInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@class XPSessionMessageGameCell;
@protocol XPSessionMessageGameCellDelegate <NSObject>
///点击头像
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell onAvatarClick:(NSInteger)uid;
///跟随房间
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell onFollowInRoom:(NSString *)roomUid;
///下单
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell onPlaceOrder:(NSString *)uid;
///跳到游戏下单
- (void)xpSessionMessageGameCell:(XPSessionMessageGameCell *)cell chooseGame:(NSString *)uid;
@end
@interface XPSessionMessageGameCell : UICollectionViewCell
@property(nonatomic,weak) id<XPSessionMessageGameCellDelegate>delegate;
@property(nonatomic,strong) UserInfoModel *userInfo;
@property(nonatomic,strong) UserGameInfoVo *gameInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,306 @@
//
// XPSessionMessageGameCell.m
// xplan-ios
//
// Created by duoban on 2023/8/22.
//
#import "XPSessionMessageGameCell.h"
#import "XPSessionMessageHeadView.h"
@interface XPSessionMessageGameCell ()<XPSessionMessageHeadViewDelegate>
///
@property(nonatomic,strong) NetImageView *bgImageView;
///logo
@property(nonatomic,strong) NetImageView *iconView;
///
@property(nonatomic,strong) UILabel *titleView;
///
@property(nonatomic,strong) UIView *tierBgView;
///
@property(nonatomic,strong) UILabel *tierView;
///
@property(nonatomic,strong) UILabel *numView;
///
@property(nonatomic,strong) UILabel *priceView;
///
@property(nonatomic,strong) NetImageView *payBtn;
@property(nonatomic,strong) UIButton *payTitleBnt;
///
@property (nonatomic, strong) XPSessionMessageHeadView *followInRoomView;
@end
@implementation XPSessionMessageGameCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
self.backgroundColor = [UIColor clearColor];
self.contentView.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.bgImageView];
[self.contentView addSubview:self.followInRoomView];
[self.bgImageView addSubview:self.iconView];
[self.bgImageView addSubview:self.titleView];
[self.bgImageView addSubview:self.tierBgView];
[self.tierBgView addSubview:self.tierView];
[self.bgImageView addSubview:self.numView];
[self.bgImageView addSubview:self.priceView];
[self.bgImageView addSubview:self.payBtn];
[self.bgImageView addSubview:self.payTitleBnt];
}
-(void)installConstraints{
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(0));
make.bottom.mas_equalTo(-kGetScaleWidth(0));
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(16));
}];
[self.followInRoomView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView);
make.top.mas_equalTo(0);
make.bottom.mas_equalTo(0);
}];
[self.iconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(48));
make.top.mas_equalTo(kGetScaleWidth(14));
make.leading.mas_equalTo(kGetScaleWidth(18));
}];
[self.priceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(18));
make.height.mas_equalTo(kGetScaleWidth(21));
make.width.mas_greaterThanOrEqualTo(10);
make.top.mas_equalTo(kGetScaleWidth(11));
}];
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.equalTo(self.iconView.mas_trailing).mas_offset(kGetScaleWidth(10));
make.top.mas_equalTo(kGetScaleWidth(15));
make.height.mas_equalTo(kGetScaleWidth(22));
}];
[self.tierBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(16));
make.width.mas_equalTo(kGetScaleWidth(52));
make.centerY.equalTo(self.titleView);
make.leading.equalTo(self.titleView.mas_trailing).mas_offset(kGetScaleWidth(4));
make.trailing.equalTo(self.priceView.mas_leading).mas_offset(-kGetScaleWidth(2));
}];
[self.tierView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self.tierBgView).inset(kGetScaleWidth(6));
make.centerY.equalTo(self.tierBgView);
}];
[self.numView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleView.mas_bottom).mas_offset(kGetScaleWidth(3));
make.height.mas_equalTo(kGetScaleWidth(21));
make.leading.equalTo(self.iconView.mas_trailing).mas_offset(kGetScaleWidth(10));
}];
[self.payBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(72));
make.height.mas_equalTo(kGetScaleWidth(28));
make.trailing.mas_equalTo(-kGetScaleWidth(18));
make.top.mas_equalTo(kGetScaleWidth(36));
}];
[self.payTitleBnt mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(72));
make.height.mas_equalTo(kGetScaleWidth(28));
make.trailing.mas_equalTo(-kGetScaleWidth(18));
make.top.mas_equalTo(kGetScaleWidth(36));
}];
}
#pragma mark - XPSessionMessageHeadViewDelegate
- (void)onAvatarClick:(NSInteger)uid{
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:onAvatarClick:)]){
[self.delegate xpSessionMessageGameCell:self onAvatarClick:uid];
}
}
- (void)onFollowInRoom:(NSString *)roomUid{
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:onFollowInRoom:)]){
[self.delegate xpSessionMessageGameCell:self onFollowInRoom:roomUid];
}
}
-(void)payAtion{
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:onPlaceOrder:)]){
[self.delegate xpSessionMessageGameCell:self onPlaceOrder:@""];
}
}
-(void)setUserInfo:(UserInfoModel *)userInfo{
_userInfo = userInfo;
self.followInRoomView.userInfo = _userInfo;
self.followInRoomView.hidden = NO;
self.bgImageView.hidden = YES;
}
- (void)setGameInfo:(UserGameInfoVo *)gameInfo{
_gameInfo = gameInfo;
self.followInRoomView.hidden = YES;
self.bgImageView.hidden = NO;
_iconView.imageUrl = _gameInfo.logo;
_payBtn.imageUrl = _gameInfo.btnBg;
[_payTitleBnt setTitleColor:UIColorFromRGB(0xBBBCBD) forState:UIControlStateNormal];
self.tierView.textColor = UIColorFromRGB(0xBBBCBD);
self.tierBgView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6];;
[_bgImageView loadImageWithUrl:_gameInfo.background completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
self.tierView.textColor = [ThemeColor colorWithHexString:gameInfo.tagRgb];
self.tierBgView.backgroundColor = [ThemeColor colorWithHexString:gameInfo.tagBg];
self.bgImageView.image = image;
[self.payTitleBnt setTitleColor:[ThemeColor colorWithHexString:gameInfo.btnRgb] forState:UIControlStateNormal];
}];
_tierView.text = _gameInfo.tier;
CGFloat width = [UILabel getWidthWithText:_gameInfo.tier height:kGetScaleWidth(16) font:_tierView.font]+kGetScaleWidth(14);
if(width > kGetScaleWidth(72)){
width = kGetScaleWidth(72);
}
[_tierBgView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(16));
make.width.mas_equalTo(width);
make.centerY.equalTo(self.titleView);
make.leading.equalTo(self.titleView.mas_trailing).mas_offset(kGetScaleWidth(4));
}];
_tierBgView.hidden = _gameInfo.tier.length == 0;
if(_gameInfo.gameName.length > 6){
_gameInfo.gameName = [NSString stringWithFormat:@"%@...",[_gameInfo.gameName substringToIndex:6]];
}
_titleView.text = _gameInfo.gameName;
NSMutableAttributedString *gameNameAtt = [[NSMutableAttributedString alloc]initWithString:_gameInfo.gameName attributes:@{NSFontAttributeName:kFontMedium(16),NSForegroundColorAttributeName:[UIColor whiteColor]}];
NSString *gameName = @"";
if(_gameInfo.gameName.length > 5 ){
gameName = [_gameInfo.gameName substringWithRange:NSMakeRange(4, _gameInfo.gameName.length-4)];
[gameNameAtt addAttributes:@{NSFontAttributeName:kFontMedium(12),NSForegroundColorAttributeName:[UIColor whiteColor]} range:[_gameInfo.gameName rangeOfString:gameName]];
_titleView.attributedText = gameNameAtt;
}else{
_titleView.attributedText = gameNameAtt;
}
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@ 钻/局",_gameInfo.price] attributes:@{NSFontAttributeName:kFontMedium(16),NSForegroundColorAttributeName:[UIColor whiteColor]}];
[textAtt addAttributes:@{NSFontAttributeName:kFontRegular(10),NSForegroundColorAttributeName:[UIColor colorWithWhite:1 alpha:0.8]} range:[textAtt.string rangeOfString:@"钻/局"]];
UIImage *iconImage = kImage(@"mine_game_diamond");
NSTextAttachment * attachment = [[NSTextAttachment alloc] init];
attachment.bounds = CGRectMake(0, roundf(_priceView.font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height);;
attachment.image = iconImage;
[textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0];
_priceView.textAlignment = NSTextAlignmentRight;
_priceView.attributedText = textAtt;
_gameInfo.finishNum = _gameInfo.finishNum ?: @"0";
NSMutableAttributedString *numAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"接单 %@ 次>",_gameInfo.finishNum] attributes:@{NSFontAttributeName:kFontRegular(12),NSForegroundColorAttributeName:[UIColor whiteColor]}];
[numAtt addAttributes:@{NSFontAttributeName:kFontMedium(16),NSForegroundColorAttributeName:UIColorFromRGB(0xFFDA24)} range:[numAtt.string rangeOfString:_gameInfo.finishNum]];
_numView.attributedText = numAtt;
}
-(void)jumToChooseGameVC{
if(self.delegate && [self.delegate respondsToSelector:@selector(xpSessionMessageGameCell:chooseGame:)]){
[self.delegate xpSessionMessageGameCell:self chooseGame:@""];
}
}
#pragma mark -
- (NetImageView *)bgImageView{
if(!_bgImageView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = kImage(@"mine_user_game_cell_bg");
_bgImageView = [[NetImageView alloc]initWithConfig:config];
_bgImageView.layer.cornerRadius = kGetScaleWidth(12);
_bgImageView.layer.masksToBounds = YES;
_bgImageView.userInteractionEnabled = YES;
}
return _bgImageView;
}
-(NetImageView *)iconView{
if(!_iconView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
_iconView = [[NetImageView alloc]initWithConfig:config];
}
return _iconView;
}
- (UILabel *)titleView{
if(!_titleView){
_titleView = [UILabel labelInitWithText:@"" font:kFontMedium(16) textColor:[UIColor whiteColor]];
}
return _titleView;
}
- (UIView *)tierBgView{
if(!_tierBgView){
_tierBgView = [UIView new];
_tierBgView.backgroundColor = UIColorFromRGB(0xFFF8ED);
_tierBgView.layer.cornerRadius = kGetScaleWidth(16)/2;
_tierBgView.layer.masksToBounds = YES;
}
return _tierBgView;
}
- (UILabel *)tierView{
if(!_tierView){
_tierView = [UILabel labelInitWithText:@"" font:kFontRegular(10) textColor:UIColorFromRGB(0x764108)];
_tierView.textAlignment = NSTextAlignmentCenter;
}
return _tierView;
}
- (UILabel *)priceView{
if(!_priceView){
_priceView = [UILabel new];
}
return _priceView;
}
- (NetImageView *)payBtn{
if(!_payBtn){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = kImage(@"mine_user_game_cell_pay_bg");
_payBtn = [[NetImageView alloc]initWithConfig:config];
_payBtn.userInteractionEnabled = YES;
}
return _payBtn;
}
- (UIButton *)payTitleBnt{
if(!_payTitleBnt){
UIButton *payTitleBnt = [[UIButton alloc]init];
[payTitleBnt setTitleColor:UIColorFromRGB(0xBBBCBD) forState:UIControlStateNormal];
[payTitleBnt setTitle:@"下单" forState:UIControlStateNormal];
payTitleBnt.titleLabel.font = kFontMedium(12);
[payTitleBnt addTarget:self action:@selector(payAtion) forControlEvents:UIControlEventTouchUpInside];
_payTitleBnt = payTitleBnt;
}
return _payTitleBnt;
}
- (UILabel *)numView{
if(!_numView){
_numView = [UILabel new];
_numView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(jumToChooseGameVC)];
[_numView addGestureRecognizer:tap];
}
return _numView;
}
- (XPSessionMessageHeadView *)followInRoomView {
if (!_followInRoomView) {
_followInRoomView = [[XPSessionMessageHeadView alloc] init];
_followInRoomView.delegate = self;
_followInRoomView.hidden = YES;
}
return _followInRoomView;
}
@end

View File

@@ -0,0 +1,23 @@
//
// XPSessionMessageGameInfoView.h
// xplan-ios
//
// Created by duoban on 2023/8/25.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol XPSessionMessageGameInfoViewDelegate <NSObject>
-(void)clicTokMineUserInfo;
@end
@interface XPSessionMessageGameInfoView : UICollectionReusableView
@property(nonatomic,copy) NSString *headUrl;
@property(nonatomic,weak) id<XPSessionMessageGameInfoViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,106 @@
//
// XPSessionMessageGameInfoView.m
// xplan-ios
//
// Created by duoban on 2023/8/25.
//
#import "XPSessionMessageGameInfoView.h"
@interface XPSessionMessageGameInfoView()
@property(nonatomic,strong) UIButton *tapBtn;
@property(nonatomic,strong) UIView *bgView;
@property(nonatomic,strong) NetImageView *headView;
@property(nonatomic,strong) UILabel *nameView;
@property(nonatomic,strong) UIImageView *arrowView;
@end
@implementation XPSessionMessageGameInfoView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.bgView];
[self.bgView addSubview:self.headView];
[self.bgView addSubview:self.nameView];
[self.bgView addSubview:self.arrowView];
[self.bgView addSubview:self.tapBtn];
}
-(void)installConstraints{
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(88));
make.height.mas_equalTo(kGetScaleWidth(76));
make.top.leading.equalTo(self);
}];
[self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(11));
make.width.height.mas_equalTo(kGetScaleWidth(34));
make.centerX.equalTo(self.bgView);
}];
[self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(-kGetScaleWidth(5));
make.top.equalTo(self.headView.mas_bottom).mas_offset(kGetScaleWidth(9));
make.width.height.mas_equalTo(kGetScaleWidth(10));
}];
[self.nameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.arrowView);
make.trailing.equalTo(self.arrowView.mas_leading).mas_offset(-kGetScaleWidth(0));
}];
[self.tapBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgView);
}];
}
-(void)setHeadUrl:(NSString *)headUrl{
_headUrl = headUrl;
_headView.imageUrl = _headUrl;
}
-(void)tapAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(clicTokMineUserInfo)]){
[self.delegate clicTokMineUserInfo];
}
}
#pragma mark -
- (UIView *)bgView{
if(!_bgView){
_bgView = [UIView new];
_bgView.backgroundColor = [UIColor whiteColor];
_bgView.layer.cornerRadius = kGetScaleWidth(10);
_bgView.layer.masksToBounds = YES;
}
return _bgView;
}
-(NetImageView *)headView{
if(!_headView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_headView = [[NetImageView alloc]initWithConfig:config];
_headView.layer.cornerRadius = kGetScaleWidth(34)/2;
_headView.layer.masksToBounds = YES;
}
return _headView;
}
-(UILabel *)nameView{
if(!_nameView){
_nameView = [UILabel labelInitWithText:@"去TA的主页" font:kFontRegular(12) textColor:UIColorFromRGB(0x2B2D33)];
}
return _nameView;
}
-(UIImageView *)arrowView{
if(!_arrowView){
_arrowView = [UIImageView new];
_arrowView.image = kImage(@"Session_Message_Game_InfoView_arrow");
}
return _arrowView;
}
- (UIButton *)tapBtn{
if(!_tapBtn){
_tapBtn = [UIButton new];
[_tapBtn addTarget:self action:@selector(tapAction) forControlEvents:UIControlEventTouchUpInside];
}
return _tapBtn;
}
@end

View File

@@ -0,0 +1,17 @@
//
// XPSessionMessageGamePageControl.h
// xplan-ios
//
// Created by duoban on 2023/8/22.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface XPSessionMessageGamePageControl : UIView
@property(nonatomic,assign) NSInteger curPage;
@property(nonatomic,copy) NSArray *pageList;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,78 @@
//
// XPSessionMessageGamePageControl.m
// xplan-ios
//
// Created by duoban on 2023/8/22.
//
#import "XPSessionMessageGamePageControl.h"
@interface XPSessionMessageGamePageControl()
@property(nonatomic,strong) UIStackView *stackView;
@end
@implementation XPSessionMessageGamePageControl
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self addSubview:self.stackView];
}
-(void)installConstraints{
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.centerX.height.equalTo(self);
}];
}
- (void)setCurPage:(NSInteger)curPage{
_curPage = curPage;
if(self.pageList.count < 2)return;
[self setItemUI];
}
-(void)setItemUI{
NSMutableArray *viewList = [NSMutableArray array];
NSInteger count = self.pageList.count - self.stackView.subviews.count;
if(self.pageList.count == 0)return;
for (int i = 0; i < self.pageList.count; i ++) {
UIView *view;
if(i < count){
view = [UIView new];
view.tag = 100 + i;
[viewList addObject:view];
}
view.layer.cornerRadius = kGetScaleWidth(4)/2;
view.layer.masksToBounds = YES;
}
[viewList addObjectsFromArray:self.stackView.subviews];
for (int i = 0; i < viewList.count; i++) {
UIView *view = viewList[i];
if(view.superview){
[view removeFromSuperview];
}
view.backgroundColor = self.curPage == i ? UIColorFromRGB(0xFFDA24):UIColorFromRGB(0xCED1DB);
CGFloat width = self.curPage == i ? kGetScaleWidth(8):kGetScaleWidth(4);
[self.stackView addArrangedSubview:view];
[view mas_remakeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(width);
make.height.mas_equalTo(kGetScaleWidth(4));
}];
}
}
#pragma mark -
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = kGetScaleWidth(4);
}
return _stackView;
}
@end

View File

@@ -46,7 +46,7 @@
- (void)initContraints { - (void)initContraints {
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self).inset(15); make.left.right.mas_equalTo(self).inset(15);
make.top.mas_equalTo(8); make.top.mas_equalTo(0);
make.bottom.mas_equalTo(0); make.bottom.mas_equalTo(0);
}]; }];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {

View File

@@ -11,7 +11,7 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface SessionListCell : UITableViewCell @interface SessionListCell : UITableViewCell
@property(nonatomic,strong) NIMRecentSession *session;
- (void)renderWithSession:(NIMRecentSession*)recent; - (void)renderWithSession:(NIMRecentSession*)recent;
@end @end

View File

@@ -49,6 +49,7 @@
} }
- (void)renderWithSession:(NIMRecentSession *)recent { - (void)renderWithSession:(NIMRecentSession *)recent {
_session = recent;
NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:recent.session.sessionId]; NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:recent.session.sessionId];
NSString *avatarUrl = user.userInfo.avatarUrl; NSString *avatarUrl = user.userInfo.avatarUrl;
self.avatarImageView.imageUrl = avatarUrl; self.avatarImageView.imageUrl = avatarUrl;

View File

@@ -220,21 +220,6 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
return 75.f; return 75.f;
} }
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"置顶" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
NIMRecentSession * session = [self.recentSessions safeObjectAtIndex1:indexPath.row];
NIMDeleteMessagesOption * opt = [[NIMDeleteMessagesOption alloc] init];
opt.removeSession = YES;
[[NIMSDK sharedSDK].conversationManager deleteAllmessagesInSession:session.session option:opt];
}];
deleteAction.title = @"删除";
deleteAction.backgroundColor = [UIColor redColor];
return @[deleteAction];
}
#pragma mark - UITableViewDataSource #pragma mark - UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
@@ -246,10 +231,38 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId]; SessionListCell * cell = [tableView dequeueReusableCellWithIdentifier:cellId];
if (!cell) { if (!cell) {
cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId]; cell = [[SessionListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
UILongPressGestureRecognizer *longPressPR = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];
longPressPR.minimumPressDuration = 1;
cell.tag = indexPath.row;
[cell addGestureRecognizer:longPressPR];
} }
NIMRecentSession *recent = [self.recentSessions safeObjectAtIndex1:indexPath.row]; NIMRecentSession *recent = [self.recentSessions safeObjectAtIndex1:indexPath.row];
[cell renderWithSession:recent]; [cell renderWithSession:recent];
return cell; return cell;
}
//
- (void)longPressAction:(UILongPressGestureRecognizer *)sender{
if(sender.state == UIGestureRecognizerStateBegan){
TTAlertConfig *config = [[TTAlertConfig alloc] init];
config.title = @"提示";
config.message = @"确定删除该聊天吗?";
[TTPopup alertWithConfig:config confirmHandler:^{
SessionListCell * cell = (SessionListCell *)sender.view;
NIMRecentSession * session = cell.session;
NIMSessionDeleteAllRemoteMessagesOptions *option = [[NIMSessionDeleteAllRemoteMessagesOptions alloc]init];
[[NIMSDK sharedSDK].conversationManager deleteAllRemoteMessagesInSession:session.session options:option completion:^(NSError * _Nullable error) {
[[NIMSDK sharedSDK].conversationManager deleteRecentSession:session];
}];
} cancelHandler:^{
}];
}
} }
#pragma mark - NIMConversationManagerDelegate #pragma mark - NIMConversationManagerDelegate
- (void)didLoadAllRecentSessionCompletion { - (void)didLoadAllRecentSessionCompletion {
@@ -434,6 +447,7 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
_sessionListView.delegate = self; _sessionListView.delegate = self;
_sessionListView.dataSource = self; _sessionListView.dataSource = self;
_sessionListView.showsVerticalScrollIndicator = NO; _sessionListView.showsVerticalScrollIndicator = NO;
} }
return _sessionListView; return _sessionListView;
} }

View File

@@ -284,7 +284,21 @@ NS_ASSUME_NONNULL_BEGIN
/// @param completion 完成 /// @param completion 完成
+ (void)requestAnchorGradeInfo:(HttpRequestHelperCompletion)completion; + (void)requestAnchorGradeInfo:(HttpRequestHelperCompletion)completion;
/// 发送邀请
/// @param gameId 游戏ID
/// @param gameUid 陪玩师UID
/// @param inning 局数
/// @param uid 用户UID
+(void)sendInitiateInvitationGame:(HttpRequestHelperCompletion)completion gameId:(NSString *)gameId gameUid:(NSString *)gameUid inning:(NSString *)inning uid:(NSString *)uid;
/// 咨询下单
/// @param gameId 游戏ID
/// @param gameUid 陪玩师UID
+(void)requestConsultingOrder:(HttpRequestHelperCompletion)completion gameId:(NSString *)gameId gameUid:(NSString *)gameUid uid:(NSString *)uid;
/// 用户的游戏配置信息
/// @param completion 完成
/// @param uid 用户id
+(void)requestGamePartnerInfoList:(HttpRequestHelperCompletion)completion uid:(NSString *)uid;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

Some files were not shown because too many files have changed in this diff Show More