Browse Source

移除融云相关

Steven 1 year ago
parent
commit
431a2c7c57
100 changed files with 4403 additions and 11340 deletions
  1. 12 284
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. 1 1
      KulexiuForStudent/KulexiuForStudent.xcodeproj/xcshareddata/xcschemes/KulexiuForStudent.xcscheme
  3. 0 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseWKWebViewController.m
  4. 0 2
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m
  5. 0 26
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSRCIMDataSource.h
  6. 0 140
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSRCIMDataSource.m
  7. 0 28
      KulexiuForStudent/KulexiuForStudent/Common/Base/RCConnectionManager.h
  8. 0 73
      KulexiuForStudent/KulexiuForStudent/Common/Base/RCConnectionManager.m
  9. 0 21
      KulexiuForStudent/KulexiuForStudent/Common/Tools/Extension/KSUtilities.h
  10. 0 134
      KulexiuForStudent/KulexiuForStudent/Common/Tools/Extension/KSUtilities.m
  11. 0 12
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/GroupMemberViewController.m
  12. 0 23
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/KSSelectConversationViewController.h
  13. 0 189
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/KSSelectConversationViewController.m
  14. 1 40
      KulexiuForStudent/KulexiuForStudent/Module/Chat/GroupNotice/Controller/GroupNoticeEditController.m
  15. 0 25
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatLiveMessage.h
  16. 0 70
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatLiveMessage.m
  17. 0 31
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatMusicMessage.h
  18. 0 90
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatMusicMessage.m
  19. 0 16
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListCell.h
  20. 0 23
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListCell.m
  21. 0 17
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatLiveShareCell.h
  22. 0 90
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatLiveShareCell.m
  23. 0 16
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatMusicShareCell.h
  24. 0 74
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatMusicShareCell.m
  25. 0 20
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareLiveCellContentView.h
  26. 0 53
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareLiveCellContentView.m
  27. 0 210
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareLiveCellContentView.xib
  28. 0 20
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareMusicCellContentView.h
  29. 0 113
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareMusicCellContentView.m
  30. 0 165
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareMusicCellContentView.xib
  31. 0 63
      KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.h
  32. 0 2491
      KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m
  33. 0 68
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.h
  34. 0 83
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.m
  35. 0 17
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSDownSeatAllMessage.h
  36. 0 43
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSDownSeatAllMessage.m
  37. 0 20
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveBlockUser.h
  38. 0 43
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveBlockUser.m
  39. 0 16
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomClose.h
  40. 0 31
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomClose.m
  41. 0 22
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.h
  42. 0 54
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.m
  43. 0 26
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.h
  44. 0 53
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.m
  45. 0 36
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.h
  46. 0 65
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.m
  47. 0 25
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.h
  48. 0 53
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.m
  49. 0 19
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLike.h
  50. 0 56
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLike.m
  51. 0 21
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.h
  52. 0 43
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.m
  53. 0 20
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.h
  54. 0 43
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.m
  55. 0 40
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.h
  56. 0 85
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.m
  57. 0 39
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.h
  58. 0 69
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.m
  59. 0 27
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.h
  60. 0 54
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.m
  61. 0 24
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomWelcome.h
  62. 0 74
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomWelcome.m
  63. 0 20
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveUnBlockUser.h
  64. 0 44
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveUnBlockUser.m
  65. 0 80
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCMessageModel.h
  66. 0 31
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCMessageModel.m
  67. 0 17
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.h
  68. 0 42
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.m
  69. 0 27
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCShopRushMessage.h
  70. 0 54
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCShopRushMessage.m
  71. 0 17
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRejectAllSeatMessage.h
  72. 0 43
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRejectAllSeatMessage.m
  73. 0 22
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomLikeCount.h
  74. 0 44
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomLikeCount.m
  75. 0 33
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.h
  76. 0 55
      KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.m
  77. 0 42
      KulexiuForStudent/KulexiuForStudent/Module/Live/Model/KSLiveStreamVideo.h
  78. 0 44
      KulexiuForStudent/KulexiuForStudent/Module/Live/Model/KSLiveStreamVideo.m
  79. 0 36
      KulexiuForStudent/KulexiuForStudent/Module/Live/View/KSChatroomTextCell.h
  80. 0 316
      KulexiuForStudent/KulexiuForStudent/Module/Live/View/KSChatroomTextCell.m
  81. 1 2
      KulexiuForStudent/KulexiuForStudent/Module/Live/View/SeatContentView.m
  82. 0 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/ModifyPhoneChangeController.m
  83. 0 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/SettingViewController.m
  84. 0 1
      KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/Controller/AccountDeleteViewController.m
  85. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Controller/KSLiveWebViewController.h
  86. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Controller/KSLiveWebViewController.m
  87. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/KSEnterLiveroomManager.h
  88. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/KSEnterLiveroomManager.m
  89. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveCard.bundle/cardAnimation.json
  90. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveModuleService.h
  91. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveModuleService.m
  92. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveSeatMember.h
  93. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveSeatMember.m
  94. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveroomTimeManager.h
  95. 0 0
      KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveroomTimeManager.m
  96. 1 4
      KulexiuForStudent/Podfile
  97. 1 33
      KulexiuForStudent/Podfile.lock
  98. 1 33
      KulexiuForStudent/Pods/Manifest.lock
  99. 4384 4466
      KulexiuForStudent/Pods/Pods.xcodeproj/project.pbxproj
  100. 1 1
      KulexiuForStudent/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/AFNetworking.xcscheme

+ 12 - 284
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -38,7 +38,6 @@
 		2723B62527F157D500E0B90B /* GroupNoticeCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2723B5F227F157D400E0B90B /* GroupNoticeCell.xib */; };
 		2723B62627F157D500E0B90B /* GroupApplyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2723B5F527F157D500E0B90B /* GroupApplyViewController.m */; };
 		2723B62727F157D500E0B90B /* GroupMemberViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2723B5F627F157D500E0B90B /* GroupMemberViewController.m */; };
-		2723B62827F157D500E0B90B /* KSSelectConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2723B5F727F157D500E0B90B /* KSSelectConversationViewController.m */; };
 		2723B62927F157D500E0B90B /* KSChatComplainController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2723B5F927F157D500E0B90B /* KSChatComplainController.m */; };
 		2723B62A27F157D500E0B90B /* GroupSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2723B5FC27F157D500E0B90B /* GroupSettingViewController.m */; };
 		2723B62B27F157D500E0B90B /* ApplyMemberModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2723B60027F157D500E0B90B /* ApplyMemberModel.m */; };
@@ -98,7 +97,6 @@
 		275FA1DC27E7351900CFEA2E /* KSAQRecordManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1B127E7351400CFEA2E /* KSAQRecordManager.m */; };
 		275FA1DD27E7351900CFEA2E /* KSBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1B727E7351500CFEA2E /* KSBaseModel.m */; };
 		275FA1DE27E7351900CFEA2E /* KSLocalWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1B927E7351500CFEA2E /* KSLocalWebViewController.m */; };
-		275FA1DF27E7351900CFEA2E /* RCConnectionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1BA27E7351500CFEA2E /* RCConnectionManager.m */; };
 		275FA1E027E7351900CFEA2E /* RecordCheckManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1BB27E7351500CFEA2E /* RecordCheckManager.m */; };
 		275FA1E127E7351900CFEA2E /* KSTabBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1BD27E7351500CFEA2E /* KSTabBarViewController.m */; };
 		275FA1E227E7351900CFEA2E /* KSWebBackButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1BF27E7351600CFEA2E /* KSWebBackButton.m */; };
@@ -109,7 +107,6 @@
 		275FA1E727E7351900CFEA2E /* KSWebSocketManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1C727E7351700CFEA2E /* KSWebSocketManager.m */; };
 		275FA1E827E7351900CFEA2E /* CustomNavViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1C827E7351700CFEA2E /* CustomNavViewController.m */; };
 		275FA1E927E7351900CFEA2E /* KSNetTypeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1C927E7351700CFEA2E /* KSNetTypeManager.m */; };
-		275FA1EA27E7351900CFEA2E /* KSRCIMDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1CD27E7351700CFEA2E /* KSRCIMDataSource.m */; };
 		275FA1EB27E7351900CFEA2E /* KSBaseWKWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1CE27E7351700CFEA2E /* KSBaseWKWebViewController.m */; };
 		275FA1EC27E7351900CFEA2E /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1CF27E7351800CFEA2E /* BaseViewController.m */; };
 		275FA1ED27E7351900CFEA2E /* KSUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275FA1D027E7351800CFEA2E /* KSUpdateManager.m */; };
@@ -154,7 +151,6 @@
 		2779352127E324A60010E277 /* NSMutableAttributedString+CZHExtention.m in Sources */ = {isa = PBXBuildFile; fileRef = 2779338227E3249D0010E277 /* NSMutableAttributedString+CZHExtention.m */; };
 		2779352227E324A60010E277 /* UITextView+ZWLimitCounter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2779338427E3249D0010E277 /* UITextView+ZWLimitCounter.m */; };
 		2779352327E324A60010E277 /* UILabel+Extension.m in Sources */ = {isa = PBXBuildFile; fileRef = 2779338527E3249D0010E277 /* UILabel+Extension.m */; };
-		2779352427E324A60010E277 /* KSUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 2779338727E3249D0010E277 /* KSUtilities.m */; };
 		2779352527E324A60010E277 /* pinyin.c in Sources */ = {isa = PBXBuildFile; fileRef = 2779338A27E3249D0010E277 /* pinyin.c */; };
 		2779352627E324A60010E277 /* UIAlertController+Extend.m in Sources */ = {isa = PBXBuildFile; fileRef = 2779338E27E3249D0010E277 /* UIAlertController+Extend.m */; };
 		2779352727E324A60010E277 /* NSArray+zh_SafeAccess.m in Sources */ = {isa = PBXBuildFile; fileRef = 2779339127E3249D0010E277 /* NSArray+zh_SafeAccess.m */; };
@@ -356,12 +352,6 @@
 		BC02381428685064005560CA /* KSLiveEndView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02381028685063005560CA /* KSLiveEndView.m */; };
 		BC02381528685064005560CA /* KSLiveBadNetView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02381228685064005560CA /* KSLiveBadNetView.m */; };
 		BC02381928685087005560CA /* LiveAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02381728685087005560CA /* LiveAnimationView.m */; };
-		BC02381F28685D6D005560CA /* RCChatroomLikeCount.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02381E28685D6D005560CA /* RCChatroomLikeCount.m */; };
-		BC02382228685F4B005560CA /* KSRCPauseLiveMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02382028685F4B005560CA /* KSRCPauseLiveMessage.m */; };
-		BC02382528685F87005560CA /* KSRCShopRushMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02382428685F87005560CA /* KSRCShopRushMessage.m */; };
-		BC02382828685FC0005560CA /* RCChatroomSeatsControl.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02382628685FC0005560CA /* RCChatroomSeatsControl.m */; };
-		BC0A2265284471300065C1AB /* KSLiveBlockUser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0A2264284471300065C1AB /* KSLiveBlockUser.m */; };
-		BC0A2268284471460065C1AB /* KSLiveUnBlockUser.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0A2267284471460065C1AB /* KSLiveUnBlockUser.m */; };
 		BC0D1F6D281013DF00C5D9E5 /* MyVideoCourseBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0D1F6C281013DF00C5D9E5 /* MyVideoCourseBodyView.m */; };
 		BC0D1F71281015B000C5D9E5 /* VideoCourseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0D1F6E281015AF00C5D9E5 /* VideoCourseCell.m */; };
 		BC0D1F72281015B000C5D9E5 /* VideoCourseCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC0D1F6F281015AF00C5D9E5 /* VideoCourseCell.xib */; };
@@ -548,7 +538,6 @@
 		BC4CF28E28D072C000961C61 /* WidgetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC4CF28D28D072C000961C61 /* WidgetViewController.m */; };
 		BC50171527FC0D8300F8BCBC /* SubjectChooseBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC50171427FC0D8300F8BCBC /* SubjectChooseBodyView.m */; };
 		BC50171727FC0D8E00F8BCBC /* SubjectChooseBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC50171627FC0D8D00F8BCBC /* SubjectChooseBodyView.xib */; };
-		BC5082B4283345A10031DD0A /* KSChatListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5082B3283345A10031DD0A /* KSChatListCell.m */; };
 		BC5367C2283F6D4D008428E8 /* HomeLiveCourseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5367C1283F6D4C008428E8 /* HomeLiveCourseView.m */; };
 		BC5367C4283F6D58008428E8 /* HomeLiveCourseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC5367C3283F6D58008428E8 /* HomeLiveCourseView.xib */; };
 		BC5367C7283F6D6B008428E8 /* HomeVideoCourseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5367C6283F6D6B008428E8 /* HomeVideoCourseView.m */; };
@@ -791,8 +780,6 @@
 		BC9AA0E62ABC5F5200CD954D /* SmallPickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9AA0E12ABC5F5100CD954D /* SmallPickerCell.m */; };
 		BC9AA0E72ABC5F5200CD954D /* KSSmallChoosePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9AA0E42ABC5F5200CD954D /* KSSmallChoosePicker.m */; };
 		BC9AA0E82ABC5F5200CD954D /* SmallPickerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC9AA0E52ABC5F5200CD954D /* SmallPickerCell.xib */; };
-		BC9BA9A828B352B30031ECD2 /* KSRejectAllSeatMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9BA9A528B352B30031ECD2 /* KSRejectAllSeatMessage.m */; };
-		BC9BA9A928B352B30031ECD2 /* KSDownSeatAllMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9BA9A628B352B30031ECD2 /* KSDownSeatAllMessage.m */; };
 		BCA1135D28A3A2BB007FAFB9 /* bass.txt in Resources */ = {isa = PBXBuildFile; fileRef = BCA1135A28A3A2BB007FAFB9 /* bass.txt */; };
 		BCA1135E28A3A2BB007FAFB9 /* bass.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA1135B28A3A2BB007FAFB9 /* bass.xcframework */; };
 		BCA1136228A3A2D0007FAFB9 /* bassmidi.txt in Resources */ = {isa = PBXBuildFile; fileRef = BCA1136028A3A2D0007FAFB9 /* bassmidi.txt */; };
@@ -812,22 +799,7 @@
 		BCB5B30B2ABC1347005BF25D /* KSImageDisplayView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB5B30A2ABC1347005BF25D /* KSImageDisplayView.xib */; };
 		BCB5B30E2ABC1711005BF25D /* KSPhotoChooseView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB5B30D2ABC1711005BF25D /* KSPhotoChooseView.m */; };
 		BCB5B3102ABC1717005BF25D /* KSPhotoChooseView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB5B30F2ABC1717005BF25D /* KSPhotoChooseView.xib */; };
-		BCB6345D27F6D29600ACFDCF /* KSLiveChatroomWelcome.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6340D27F6D29500ACFDCF /* KSLiveChatroomWelcome.m */; };
-		BCB6345E27F6D29600ACFDCF /* KSLiveChatroomLeave.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6340E27F6D29500ACFDCF /* KSLiveChatroomLeave.m */; };
-		BCB6345F27F6D29600ACFDCF /* KSLiveChatroomEnter.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6340F27F6D29500ACFDCF /* KSLiveChatroomEnter.m */; };
-		BCB6346027F6D29600ACFDCF /* KSLiveChatroomKickOut.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341227F6D29500ACFDCF /* KSLiveChatroomKickOut.m */; };
-		BCB6346127F6D29600ACFDCF /* KSChatroomMessageCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341527F6D29500ACFDCF /* KSChatroomMessageCenter.m */; };
-		BCB6346227F6D29600ACFDCF /* KSLiveChatroomDownSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341727F6D29500ACFDCF /* KSLiveChatroomDownSeat.m */; };
-		BCB6346327F6D29600ACFDCF /* KSRCMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341A27F6D29500ACFDCF /* KSRCMessageModel.m */; };
-		BCB6346427F6D29600ACFDCF /* KSLiveChatroomSeatApply.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341C27F6D29500ACFDCF /* KSLiveChatroomSeatApply.m */; };
-		BCB6346527F6D29600ACFDCF /* KSLiveChatroomLike.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341D27F6D29500ACFDCF /* KSLiveChatroomLike.m */; };
-		BCB6346627F6D29600ACFDCF /* KSLiveChatroomUserQuit.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6341E27F6D29500ACFDCF /* KSLiveChatroomUserQuit.m */; };
-		BCB6346727F6D29600ACFDCF /* KSLiveChatroomMemberCount.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6342027F6D29500ACFDCF /* KSLiveChatroomMemberCount.m */; };
-		BCB6346827F6D29600ACFDCF /* KSLiveChatroomClose.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6342227F6D29500ACFDCF /* KSLiveChatroomClose.m */; };
-		BCB6346927F6D29600ACFDCF /* KSLiveChatroomSeatResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6342427F6D29500ACFDCF /* KSLiveChatroomSeatResponse.m */; };
-		BCB6346A27F6D29600ACFDCF /* LiveVideoRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6342727F6D29500ACFDCF /* LiveVideoRoomViewController.m */; };
 		BCB6346D27F6D29600ACFDCF /* KSEnterLiveroomManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6343227F6D29500ACFDCF /* KSEnterLiveroomManager.m */; };
-		BCB6346E27F6D29600ACFDCF /* KSLiveStreamVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6343327F6D29500ACFDCF /* KSLiveStreamVideo.m */; };
 		BCB6346F27F6D29600ACFDCF /* LiveroomTimeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6343427F6D29500ACFDCF /* LiveroomTimeManager.m */; };
 		BCB6347027F6D29600ACFDCF /* LiveSeatMember.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6343527F6D29500ACFDCF /* LiveSeatMember.m */; };
 		BCB6347127F6D29600ACFDCF /* KSChatEmojiBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6343827F6D29500ACFDCF /* KSChatEmojiBoardView.m */; };
@@ -840,18 +812,9 @@
 		BCB6348127F6D29600ACFDCF /* LiveSeatApplyCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB6345427F6D29600ACFDCF /* LiveSeatApplyCell.xib */; };
 		BCB6348227F6D29600ACFDCF /* SeatContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6345627F6D29600ACFDCF /* SeatContentView.m */; };
 		BCB6348327F6D29600ACFDCF /* LiveSeatApplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB6345827F6D29600ACFDCF /* LiveSeatApplyView.xib */; };
-		BCB6348427F6D29600ACFDCF /* KSChatroomTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6345927F6D29600ACFDCF /* KSChatroomTextCell.m */; };
 		BCB6348627F6D29600ACFDCF /* LiveSeatApplyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6345C27F6D29600ACFDCF /* LiveSeatApplyCell.m */; };
 		BCB635A627F6D90600ACFDCF /* KSLiveEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB635A427F6D90600ACFDCF /* KSLiveEmptyView.m */; };
 		BCB635A927F6D93300ACFDCF /* KSChatVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB635A727F6D93300ACFDCF /* KSChatVideoView.m */; };
-		BCB908E22850B07300F5FF69 /* KSChatMusicMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908DE2850B07300F5FF69 /* KSChatMusicMessage.m */; };
-		BCB908E32850B07300F5FF69 /* KSChatLiveMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908DF2850B07300F5FF69 /* KSChatLiveMessage.m */; };
-		BCB908EE2850B08D00F5FF69 /* ShareLiveCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908E42850B08C00F5FF69 /* ShareLiveCellContentView.m */; };
-		BCB908EF2850B08D00F5FF69 /* ShareMusicCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908E82850B08C00F5FF69 /* ShareMusicCellContentView.m */; };
-		BCB908F02850B08D00F5FF69 /* KSChatLiveShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908EA2850B08D00F5FF69 /* KSChatLiveShareCell.m */; };
-		BCB908F12850B08D00F5FF69 /* KSChatMusicShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908EB2850B08D00F5FF69 /* KSChatMusicShareCell.m */; };
-		BCB908F22850B08D00F5FF69 /* ShareMusicCellContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB908EC2850B08D00F5FF69 /* ShareMusicCellContentView.xib */; };
-		BCB908F32850B08D00F5FF69 /* ShareLiveCellContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB908ED2850B08D00F5FF69 /* ShareLiveCellContentView.xib */; };
 		BCB9090B2852EE9600F5FF69 /* KSLiveWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB9090A2852EE9600F5FF69 /* KSLiveWebViewController.m */; };
 		BCB9090D2852EEBE00F5FF69 /* LiveCard.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BCB9090C2852EEBE00F5FF69 /* LiveCard.bundle */; };
 		BCB909132852EF0000F5FF69 /* KSDragWindowManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB909112852EF0000F5FF69 /* KSDragWindowManager.m */; };
@@ -1039,7 +1002,6 @@
 		BCD959CC28DB0BAB00B70314 /* KSImageShareViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD959CB28DB0BAB00B70314 /* KSImageShareViewController.m */; };
 		BCDE35882897B40000A9A560 /* shareImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = BCDE35872897B40000A9A560 /* shareImage@2x.png */; };
 		BCDE358E289A7D8700A9A560 /* KSGroupTagImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDE358D289A7D8700A9A560 /* KSGroupTagImageView.m */; };
-		BCEBB8E82840B87100A76BE8 /* KSLiveChatroomMemberUp.m in Sources */ = {isa = PBXBuildFile; fileRef = BCEBB8E72840B87100A76BE8 /* KSLiveChatroomMemberUp.m */; };
 		BCED1596293D941200266AEB /* banzou.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = BCED1595293D941100266AEB /* banzou.mp3 */; };
 		BCED5CA7284F55A0009A42DE /* FriendListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CA6284F55A0009A42DE /* FriendListModel.m */; };
 		BCF425DD2AB8665200BCD942 /* TenantHomeBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF425DC2AB8665200BCD942 /* TenantHomeBannerView.m */; };
@@ -1190,13 +1152,11 @@
 		2723B5F227F157D400E0B90B /* GroupNoticeCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupNoticeCell.xib; sourceTree = "<group>"; };
 		2723B5F527F157D500E0B90B /* GroupApplyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupApplyViewController.m; sourceTree = "<group>"; };
 		2723B5F627F157D500E0B90B /* GroupMemberViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupMemberViewController.m; sourceTree = "<group>"; };
-		2723B5F727F157D500E0B90B /* KSSelectConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSSelectConversationViewController.m; sourceTree = "<group>"; };
 		2723B5F827F157D500E0B90B /* GroupSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupSettingViewController.h; sourceTree = "<group>"; };
 		2723B5F927F157D500E0B90B /* KSChatComplainController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatComplainController.m; sourceTree = "<group>"; };
 		2723B5FA27F157D500E0B90B /* GroupMemberViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupMemberViewController.h; sourceTree = "<group>"; };
 		2723B5FB27F157D500E0B90B /* GroupApplyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupApplyViewController.h; sourceTree = "<group>"; };
 		2723B5FC27F157D500E0B90B /* GroupSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupSettingViewController.m; sourceTree = "<group>"; };
-		2723B5FD27F157D500E0B90B /* KSSelectConversationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSSelectConversationViewController.h; sourceTree = "<group>"; };
 		2723B5FE27F157D500E0B90B /* KSChatComplainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatComplainController.h; sourceTree = "<group>"; };
 		2723B60027F157D500E0B90B /* ApplyMemberModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ApplyMemberModel.m; sourceTree = "<group>"; };
 		2723B60127F157D500E0B90B /* ApplyMemberModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApplyMemberModel.h; sourceTree = "<group>"; };
@@ -1290,12 +1250,10 @@
 		275FA1B227E7351400CFEA2E /* KSUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSUpdateManager.h; sourceTree = "<group>"; };
 		275FA1B327E7351400CFEA2E /* KSBaseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSBaseModel.h; sourceTree = "<group>"; };
 		275FA1B427E7351400CFEA2E /* UINavigationController+KSNavigationBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UINavigationController+KSNavigationBar.h"; sourceTree = "<group>"; };
-		275FA1B527E7351400CFEA2E /* KSRCIMDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCIMDataSource.h; sourceTree = "<group>"; };
 		275FA1B627E7351500CFEA2E /* KSAQRecordManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSAQRecordManager.h; sourceTree = "<group>"; };
 		275FA1B727E7351500CFEA2E /* KSBaseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSBaseModel.m; sourceTree = "<group>"; };
 		275FA1B827E7351500CFEA2E /* KSWebNavView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSWebNavView.h; sourceTree = "<group>"; };
 		275FA1B927E7351500CFEA2E /* KSLocalWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLocalWebViewController.m; sourceTree = "<group>"; };
-		275FA1BA27E7351500CFEA2E /* RCConnectionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCConnectionManager.m; sourceTree = "<group>"; };
 		275FA1BB27E7351500CFEA2E /* RecordCheckManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordCheckManager.m; sourceTree = "<group>"; };
 		275FA1BC27E7351500CFEA2E /* CustomNavViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomNavViewController.h; sourceTree = "<group>"; };
 		275FA1BD27E7351500CFEA2E /* KSTabBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSTabBarViewController.m; sourceTree = "<group>"; };
@@ -1314,13 +1272,11 @@
 		275FA1CA27E7351700CFEA2E /* KSNetTypeManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSNetTypeManager.h; sourceTree = "<group>"; };
 		275FA1CB27E7351700CFEA2E /* KSUpdateAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSUpdateAlert.h; sourceTree = "<group>"; };
 		275FA1CC27E7351700CFEA2E /* WeakWebViewScriptMessageDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakWebViewScriptMessageDelegate.h; sourceTree = "<group>"; };
-		275FA1CD27E7351700CFEA2E /* KSRCIMDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCIMDataSource.m; sourceTree = "<group>"; };
 		275FA1CE27E7351700CFEA2E /* KSBaseWKWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSBaseWKWebViewController.m; sourceTree = "<group>"; };
 		275FA1CF27E7351800CFEA2E /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
 		275FA1D027E7351800CFEA2E /* KSUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSUpdateManager.m; sourceTree = "<group>"; };
 		275FA1D127E7351800CFEA2E /* KSWebBackButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSWebBackButton.h; sourceTree = "<group>"; };
 		275FA1D227E7351800CFEA2E /* KSWebSocketManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSWebSocketManager.h; sourceTree = "<group>"; };
-		275FA1D327E7351800CFEA2E /* RCConnectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCConnectionManager.h; sourceTree = "<group>"; };
 		275FA1D427E7351800CFEA2E /* KSNetworkingManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSNetworkingManager.h; sourceTree = "<group>"; };
 		275FA1D527E7351800CFEA2E /* KSBaseWKWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSBaseWKWebViewController.h; sourceTree = "<group>"; };
 		275FA1D627E7351800CFEA2E /* KSBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSBaseViewController.m; sourceTree = "<group>"; };
@@ -1397,7 +1353,6 @@
 		2779338427E3249D0010E277 /* UITextView+ZWLimitCounter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextView+ZWLimitCounter.m"; sourceTree = "<group>"; };
 		2779338527E3249D0010E277 /* UILabel+Extension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Extension.m"; sourceTree = "<group>"; };
 		2779338627E3249D0010E277 /* NSDate+Extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Extension.h"; sourceTree = "<group>"; };
-		2779338727E3249D0010E277 /* KSUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSUtilities.m; sourceTree = "<group>"; };
 		2779338927E3249D0010E277 /* pinyin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pinyin.h; sourceTree = "<group>"; };
 		2779338A27E3249D0010E277 /* pinyin.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = pinyin.c; sourceTree = "<group>"; };
 		2779338B27E3249D0010E277 /* UIImage+Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Color.h"; sourceTree = "<group>"; };
@@ -1422,7 +1377,6 @@
 		2779339E27E3249D0010E277 /* UIControl+ButtonAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIControl+ButtonAction.h"; sourceTree = "<group>"; };
 		2779339F27E3249D0010E277 /* UIView+Hints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Hints.m"; sourceTree = "<group>"; };
 		277933A027E3249D0010E277 /* NSObject+AssociatedObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+AssociatedObject.h"; sourceTree = "<group>"; };
-		277933A127E3249D0010E277 /* KSUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSUtilities.h; sourceTree = "<group>"; };
 		277933A227E3249D0010E277 /* UILabel+Extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Extension.h"; sourceTree = "<group>"; };
 		277933A327E3249D0010E277 /* NSDate+Extension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Extension.m"; sourceTree = "<group>"; };
 		277933A427E3249D0010E277 /* UITextView+ZWLimitCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextView+ZWLimitCounter.h"; sourceTree = "<group>"; };
@@ -1798,18 +1752,6 @@
 		BC02381328685064005560CA /* KSLiveBadNetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveBadNetView.h; sourceTree = "<group>"; };
 		BC02381728685087005560CA /* LiveAnimationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveAnimationView.m; sourceTree = "<group>"; };
 		BC02381828685087005560CA /* LiveAnimationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveAnimationView.h; sourceTree = "<group>"; };
-		BC02381D28685D6D005560CA /* RCChatroomLikeCount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCChatroomLikeCount.h; sourceTree = "<group>"; };
-		BC02381E28685D6D005560CA /* RCChatroomLikeCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCChatroomLikeCount.m; sourceTree = "<group>"; };
-		BC02382028685F4B005560CA /* KSRCPauseLiveMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCPauseLiveMessage.m; sourceTree = "<group>"; };
-		BC02382128685F4B005560CA /* KSRCPauseLiveMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCPauseLiveMessage.h; sourceTree = "<group>"; };
-		BC02382328685F87005560CA /* KSRCShopRushMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCShopRushMessage.h; sourceTree = "<group>"; };
-		BC02382428685F87005560CA /* KSRCShopRushMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCShopRushMessage.m; sourceTree = "<group>"; };
-		BC02382628685FC0005560CA /* RCChatroomSeatsControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCChatroomSeatsControl.m; sourceTree = "<group>"; };
-		BC02382728685FC0005560CA /* RCChatroomSeatsControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCChatroomSeatsControl.h; sourceTree = "<group>"; };
-		BC0A2263284471300065C1AB /* KSLiveBlockUser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveBlockUser.h; sourceTree = "<group>"; };
-		BC0A2264284471300065C1AB /* KSLiveBlockUser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveBlockUser.m; sourceTree = "<group>"; };
-		BC0A2266284471460065C1AB /* KSLiveUnBlockUser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveUnBlockUser.h; sourceTree = "<group>"; };
-		BC0A2267284471460065C1AB /* KSLiveUnBlockUser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveUnBlockUser.m; sourceTree = "<group>"; };
 		BC0D1F6B281013DF00C5D9E5 /* MyVideoCourseBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyVideoCourseBodyView.h; sourceTree = "<group>"; };
 		BC0D1F6C281013DF00C5D9E5 /* MyVideoCourseBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyVideoCourseBodyView.m; sourceTree = "<group>"; };
 		BC0D1F6E281015AF00C5D9E5 /* VideoCourseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoCourseCell.m; sourceTree = "<group>"; };
@@ -2139,8 +2081,6 @@
 		BC50171327FC0D8300F8BCBC /* SubjectChooseBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SubjectChooseBodyView.h; sourceTree = "<group>"; };
 		BC50171427FC0D8300F8BCBC /* SubjectChooseBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SubjectChooseBodyView.m; sourceTree = "<group>"; };
 		BC50171627FC0D8D00F8BCBC /* SubjectChooseBodyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SubjectChooseBodyView.xib; sourceTree = "<group>"; };
-		BC5082B2283345A10031DD0A /* KSChatListCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSChatListCell.h; sourceTree = "<group>"; };
-		BC5082B3283345A10031DD0A /* KSChatListCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSChatListCell.m; sourceTree = "<group>"; };
 		BC5367C0283F6D4C008428E8 /* HomeLiveCourseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeLiveCourseView.h; sourceTree = "<group>"; };
 		BC5367C1283F6D4C008428E8 /* HomeLiveCourseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeLiveCourseView.m; sourceTree = "<group>"; };
 		BC5367C3283F6D58008428E8 /* HomeLiveCourseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeLiveCourseView.xib; sourceTree = "<group>"; };
@@ -2487,10 +2427,6 @@
 		BC9AA0E32ABC5F5100CD954D /* KSSmallChoosePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSSmallChoosePicker.h; sourceTree = "<group>"; };
 		BC9AA0E42ABC5F5200CD954D /* KSSmallChoosePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSSmallChoosePicker.m; sourceTree = "<group>"; };
 		BC9AA0E52ABC5F5200CD954D /* SmallPickerCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SmallPickerCell.xib; sourceTree = "<group>"; };
-		BC9BA9A428B352B30031ECD2 /* KSRejectAllSeatMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRejectAllSeatMessage.h; sourceTree = "<group>"; };
-		BC9BA9A528B352B30031ECD2 /* KSRejectAllSeatMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRejectAllSeatMessage.m; sourceTree = "<group>"; };
-		BC9BA9A628B352B30031ECD2 /* KSDownSeatAllMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSDownSeatAllMessage.m; sourceTree = "<group>"; };
-		BC9BA9A728B352B30031ECD2 /* KSDownSeatAllMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSDownSeatAllMessage.h; sourceTree = "<group>"; };
 		BCA1135A28A3A2BB007FAFB9 /* bass.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bass.txt; sourceTree = "<group>"; };
 		BCA1135B28A3A2BB007FAFB9 /* bass.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = bass.xcframework; sourceTree = "<group>"; };
 		BCA1135C28A3A2BB007FAFB9 /* bass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bass.h; sourceTree = "<group>"; };
@@ -2520,40 +2456,10 @@
 		BCB5B30C2ABC1711005BF25D /* KSPhotoChooseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSPhotoChooseView.h; sourceTree = "<group>"; };
 		BCB5B30D2ABC1711005BF25D /* KSPhotoChooseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSPhotoChooseView.m; sourceTree = "<group>"; };
 		BCB5B30F2ABC1717005BF25D /* KSPhotoChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KSPhotoChooseView.xib; sourceTree = "<group>"; };
-		BCB6340C27F6D29500ACFDCF /* KSRCMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCMessageModel.h; sourceTree = "<group>"; };
-		BCB6340D27F6D29500ACFDCF /* KSLiveChatroomWelcome.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomWelcome.m; sourceTree = "<group>"; };
-		BCB6340E27F6D29500ACFDCF /* KSLiveChatroomLeave.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomLeave.m; sourceTree = "<group>"; };
-		BCB6340F27F6D29500ACFDCF /* KSLiveChatroomEnter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomEnter.m; sourceTree = "<group>"; };
-		BCB6341027F6D29500ACFDCF /* KSLiveChatroomMemberCount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomMemberCount.h; sourceTree = "<group>"; };
-		BCB6341127F6D29500ACFDCF /* KSLiveChatroomUserQuit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomUserQuit.h; sourceTree = "<group>"; };
-		BCB6341227F6D29500ACFDCF /* KSLiveChatroomKickOut.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomKickOut.m; sourceTree = "<group>"; };
-		BCB6341327F6D29500ACFDCF /* KSLiveChatroomLike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomLike.h; sourceTree = "<group>"; };
-		BCB6341427F6D29500ACFDCF /* KSLiveChatroomSeatApply.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomSeatApply.h; sourceTree = "<group>"; };
-		BCB6341527F6D29500ACFDCF /* KSChatroomMessageCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatroomMessageCenter.m; sourceTree = "<group>"; };
-		BCB6341627F6D29500ACFDCF /* KSLiveChatroomSeatResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomSeatResponse.h; sourceTree = "<group>"; };
-		BCB6341727F6D29500ACFDCF /* KSLiveChatroomDownSeat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomDownSeat.m; sourceTree = "<group>"; };
-		BCB6341827F6D29500ACFDCF /* KSLiveChatroomClose.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomClose.h; sourceTree = "<group>"; };
-		BCB6341927F6D29500ACFDCF /* KSLiveChatroomWelcome.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomWelcome.h; sourceTree = "<group>"; };
-		BCB6341A27F6D29500ACFDCF /* KSRCMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCMessageModel.m; sourceTree = "<group>"; };
-		BCB6341B27F6D29500ACFDCF /* KSLiveChatroomLeave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomLeave.h; sourceTree = "<group>"; };
-		BCB6341C27F6D29500ACFDCF /* KSLiveChatroomSeatApply.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomSeatApply.m; sourceTree = "<group>"; };
-		BCB6341D27F6D29500ACFDCF /* KSLiveChatroomLike.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomLike.m; sourceTree = "<group>"; };
-		BCB6341E27F6D29500ACFDCF /* KSLiveChatroomUserQuit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomUserQuit.m; sourceTree = "<group>"; };
-		BCB6341F27F6D29500ACFDCF /* KSLiveChatroomKickOut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomKickOut.h; sourceTree = "<group>"; };
-		BCB6342027F6D29500ACFDCF /* KSLiveChatroomMemberCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomMemberCount.m; sourceTree = "<group>"; };
-		BCB6342127F6D29500ACFDCF /* KSLiveChatroomEnter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomEnter.h; sourceTree = "<group>"; };
-		BCB6342227F6D29500ACFDCF /* KSLiveChatroomClose.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomClose.m; sourceTree = "<group>"; };
-		BCB6342327F6D29500ACFDCF /* KSLiveChatroomDownSeat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomDownSeat.h; sourceTree = "<group>"; };
-		BCB6342427F6D29500ACFDCF /* KSLiveChatroomSeatResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomSeatResponse.m; sourceTree = "<group>"; };
-		BCB6342527F6D29500ACFDCF /* KSChatroomMessageCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatroomMessageCenter.h; sourceTree = "<group>"; };
-		BCB6342727F6D29500ACFDCF /* LiveVideoRoomViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveVideoRoomViewController.m; sourceTree = "<group>"; };
-		BCB6342A27F6D29500ACFDCF /* LiveVideoRoomViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveVideoRoomViewController.h; sourceTree = "<group>"; };
 		BCB6342E27F6D29500ACFDCF /* KSEnterLiveroomManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSEnterLiveroomManager.h; sourceTree = "<group>"; };
-		BCB6342F27F6D29500ACFDCF /* KSLiveStreamVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveStreamVideo.h; sourceTree = "<group>"; };
 		BCB6343027F6D29500ACFDCF /* LiveroomTimeManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveroomTimeManager.h; sourceTree = "<group>"; };
 		BCB6343127F6D29500ACFDCF /* LiveSeatMember.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveSeatMember.h; sourceTree = "<group>"; };
 		BCB6343227F6D29500ACFDCF /* KSEnterLiveroomManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSEnterLiveroomManager.m; sourceTree = "<group>"; };
-		BCB6343327F6D29500ACFDCF /* KSLiveStreamVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveStreamVideo.m; sourceTree = "<group>"; };
 		BCB6343427F6D29500ACFDCF /* LiveroomTimeManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveroomTimeManager.m; sourceTree = "<group>"; };
 		BCB6343527F6D29500ACFDCF /* LiveSeatMember.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveSeatMember.m; sourceTree = "<group>"; };
 		BCB6343827F6D29500ACFDCF /* KSChatEmojiBoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatEmojiBoardView.m; sourceTree = "<group>"; };
@@ -2569,32 +2475,16 @@
 		BCB6344627F6D29500ACFDCF /* SeatContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SeatContentView.h; sourceTree = "<group>"; };
 		BCB6344927F6D29500ACFDCF /* LiveSeatApplyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveSeatApplyView.h; sourceTree = "<group>"; };
 		BCB6344A27F6D29500ACFDCF /* LiveSeatApplyCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveSeatApplyCell.h; sourceTree = "<group>"; };
-		BCB6344D27F6D29500ACFDCF /* KSChatroomTextCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatroomTextCell.h; sourceTree = "<group>"; };
 		BCB6345227F6D29500ACFDCF /* LiveRoomLikeLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomLikeLayer.h; sourceTree = "<group>"; };
 		BCB6345327F6D29600ACFDCF /* LiveSeatApplyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveSeatApplyView.m; sourceTree = "<group>"; };
 		BCB6345427F6D29600ACFDCF /* LiveSeatApplyCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LiveSeatApplyCell.xib; sourceTree = "<group>"; };
 		BCB6345627F6D29600ACFDCF /* SeatContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SeatContentView.m; sourceTree = "<group>"; };
 		BCB6345827F6D29600ACFDCF /* LiveSeatApplyView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LiveSeatApplyView.xib; sourceTree = "<group>"; };
-		BCB6345927F6D29600ACFDCF /* KSChatroomTextCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatroomTextCell.m; sourceTree = "<group>"; };
 		BCB6345C27F6D29600ACFDCF /* LiveSeatApplyCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveSeatApplyCell.m; sourceTree = "<group>"; };
 		BCB635A427F6D90600ACFDCF /* KSLiveEmptyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveEmptyView.m; sourceTree = "<group>"; };
 		BCB635A527F6D90600ACFDCF /* KSLiveEmptyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveEmptyView.h; sourceTree = "<group>"; };
 		BCB635A727F6D93300ACFDCF /* KSChatVideoView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatVideoView.m; sourceTree = "<group>"; };
 		BCB635A827F6D93300ACFDCF /* KSChatVideoView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatVideoView.h; sourceTree = "<group>"; };
-		BCB908DE2850B07300F5FF69 /* KSChatMusicMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatMusicMessage.m; sourceTree = "<group>"; };
-		BCB908DF2850B07300F5FF69 /* KSChatLiveMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatLiveMessage.m; sourceTree = "<group>"; };
-		BCB908E02850B07300F5FF69 /* KSChatMusicMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatMusicMessage.h; sourceTree = "<group>"; };
-		BCB908E12850B07300F5FF69 /* KSChatLiveMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatLiveMessage.h; sourceTree = "<group>"; };
-		BCB908E42850B08C00F5FF69 /* ShareLiveCellContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShareLiveCellContentView.m; sourceTree = "<group>"; };
-		BCB908E52850B08C00F5FF69 /* ShareMusicCellContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShareMusicCellContentView.h; sourceTree = "<group>"; };
-		BCB908E62850B08C00F5FF69 /* ShareLiveCellContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShareLiveCellContentView.h; sourceTree = "<group>"; };
-		BCB908E72850B08C00F5FF69 /* KSChatLiveShareCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatLiveShareCell.h; sourceTree = "<group>"; };
-		BCB908E82850B08C00F5FF69 /* ShareMusicCellContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShareMusicCellContentView.m; sourceTree = "<group>"; };
-		BCB908E92850B08C00F5FF69 /* KSChatMusicShareCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatMusicShareCell.h; sourceTree = "<group>"; };
-		BCB908EA2850B08D00F5FF69 /* KSChatLiveShareCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatLiveShareCell.m; sourceTree = "<group>"; };
-		BCB908EB2850B08D00F5FF69 /* KSChatMusicShareCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatMusicShareCell.m; sourceTree = "<group>"; };
-		BCB908EC2850B08D00F5FF69 /* ShareMusicCellContentView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShareMusicCellContentView.xib; sourceTree = "<group>"; };
-		BCB908ED2850B08D00F5FF69 /* ShareLiveCellContentView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShareLiveCellContentView.xib; sourceTree = "<group>"; };
 		BCB909092852EE9600F5FF69 /* KSLiveWebViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveWebViewController.h; sourceTree = "<group>"; };
 		BCB9090A2852EE9600F5FF69 /* KSLiveWebViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveWebViewController.m; sourceTree = "<group>"; };
 		BCB9090C2852EEBE00F5FF69 /* LiveCard.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = LiveCard.bundle; sourceTree = "<group>"; };
@@ -2892,8 +2782,6 @@
 		BCDE35872897B40000A9A560 /* shareImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "shareImage@2x.png"; sourceTree = "<group>"; };
 		BCDE358C289A7D8700A9A560 /* KSGroupTagImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSGroupTagImageView.h; sourceTree = "<group>"; };
 		BCDE358D289A7D8700A9A560 /* KSGroupTagImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSGroupTagImageView.m; sourceTree = "<group>"; };
-		BCEBB8E62840B87100A76BE8 /* KSLiveChatroomMemberUp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomMemberUp.h; sourceTree = "<group>"; };
-		BCEBB8E72840B87100A76BE8 /* KSLiveChatroomMemberUp.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomMemberUp.m; sourceTree = "<group>"; };
 		BCED1595293D941100266AEB /* banzou.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = banzou.mp3; sourceTree = "<group>"; };
 		BCED5CA5284F55A0009A42DE /* FriendListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FriendListModel.h; sourceTree = "<group>"; };
 		BCED5CA6284F55A0009A42DE /* FriendListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FriendListModel.m; sourceTree = "<group>"; };
@@ -3166,8 +3054,6 @@
 				2723B5FC27F157D500E0B90B /* GroupSettingViewController.m */,
 				2723B5FE27F157D500E0B90B /* KSChatComplainController.h */,
 				2723B5F927F157D500E0B90B /* KSChatComplainController.m */,
-				2723B5FD27F157D500E0B90B /* KSSelectConversationViewController.h */,
-				2723B5F727F157D500E0B90B /* KSSelectConversationViewController.m */,
 			);
 			path = Controller;
 			sourceTree = "<group>";
@@ -3530,10 +3416,6 @@
 				2723B5CC27F157BE00E0B90B /* GroupMemberModel.m */,
 				2723B5C727F157B800E0B90B /* KSRCloudMediaManager.h */,
 				2723B5CA27F157BB00E0B90B /* KSRCloudMediaManager.m */,
-				BCB908E12850B07300F5FF69 /* KSChatLiveMessage.h */,
-				BCB908DF2850B07300F5FF69 /* KSChatLiveMessage.m */,
-				BCB908E02850B07300F5FF69 /* KSChatMusicMessage.h */,
-				BCB908DE2850B07300F5FF69 /* KSChatMusicMessage.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -3562,18 +3444,6 @@
 				2723B5AC27F157A600E0B90B /* KSChatListSearchView.h */,
 				2723B5A927F157A400E0B90B /* KSChatListSearchView.m */,
 				2723B5B427F157AE00E0B90B /* KSChatListSearchView.xib */,
-				BC5082B2283345A10031DD0A /* KSChatListCell.h */,
-				BC5082B3283345A10031DD0A /* KSChatListCell.m */,
-				BCB908E72850B08C00F5FF69 /* KSChatLiveShareCell.h */,
-				BCB908EA2850B08D00F5FF69 /* KSChatLiveShareCell.m */,
-				BCB908E92850B08C00F5FF69 /* KSChatMusicShareCell.h */,
-				BCB908EB2850B08D00F5FF69 /* KSChatMusicShareCell.m */,
-				BCB908E62850B08C00F5FF69 /* ShareLiveCellContentView.h */,
-				BCB908E42850B08C00F5FF69 /* ShareLiveCellContentView.m */,
-				BCB908ED2850B08D00F5FF69 /* ShareLiveCellContentView.xib */,
-				BCB908E52850B08C00F5FF69 /* ShareMusicCellContentView.h */,
-				BCB908E82850B08C00F5FF69 /* ShareMusicCellContentView.m */,
-				BCB908EC2850B08D00F5FF69 /* ShareMusicCellContentView.xib */,
 				BCDE358C289A7D8700A9A560 /* KSGroupTagImageView.h */,
 				BCDE358D289A7D8700A9A560 /* KSGroupTagImageView.m */,
 				BC756CB428FE4E5D00AA9ECB /* KSChatTagView.h */,
@@ -3834,8 +3704,6 @@
 				2779338027E3249D0010E277 /* CALayer+Color.m */,
 				2779338C27E3249D0010E277 /* CALayer+Layout.h */,
 				277933AD27E3249E0010E277 /* CALayer+Layout.m */,
-				277933A127E3249D0010E277 /* KSUtilities.h */,
-				2779338727E3249D0010E277 /* KSUtilities.m */,
 				277933B527E3249E0010E277 /* NSArray+zh_SafeAccess.h */,
 				2779339127E3249D0010E277 /* NSArray+zh_SafeAccess.m */,
 				2779338627E3249D0010E277 /* NSDate+Extension.h */,
@@ -4483,8 +4351,6 @@
 				275FA1B927E7351500CFEA2E /* KSLocalWebViewController.m */,
 				275FA1CA27E7351700CFEA2E /* KSNetTypeManager.h */,
 				275FA1C927E7351700CFEA2E /* KSNetTypeManager.m */,
-				275FA1B527E7351400CFEA2E /* KSRCIMDataSource.h */,
-				275FA1CD27E7351700CFEA2E /* KSRCIMDataSource.m */,
 				BCCC36222AAF3F93000D60CA /* CustomTabBarController.h */,
 				BCCC36232AAF3F93000D60CA /* CustomTabBarController.m */,
 				275FA1D727E7351900CFEA2E /* KSTabBarViewController.h */,
@@ -4500,8 +4366,6 @@
 				275FA1C227E7351600CFEA2E /* KSWebNavView.m */,
 				275FA1D227E7351800CFEA2E /* KSWebSocketManager.h */,
 				275FA1C727E7351700CFEA2E /* KSWebSocketManager.m */,
-				275FA1D327E7351800CFEA2E /* RCConnectionManager.h */,
-				275FA1BA27E7351500CFEA2E /* RCConnectionManager.m */,
 				275FA1D827E7351900CFEA2E /* RecordCheckManager.h */,
 				275FA1BB27E7351500CFEA2E /* RecordCheckManager.m */,
 				275FA1B427E7351400CFEA2E /* UINavigationController+KSNavigationBar.h */,
@@ -4755,6 +4619,15 @@
 		BC106BC02A9336B0000759A9 /* Model */ = {
 			isa = PBXGroup;
 			children = (
+				BCB6342E27F6D29500ACFDCF /* KSEnterLiveroomManager.h */,
+				BCB6343227F6D29500ACFDCF /* KSEnterLiveroomManager.m */,
+				BC106C4E2A9351DA000759A9 /* LiveModuleService.h */,
+				BC106C4F2A9351DA000759A9 /* LiveModuleService.m */,
+				BCB6343027F6D29500ACFDCF /* LiveroomTimeManager.h */,
+				BCB6343427F6D29500ACFDCF /* LiveroomTimeManager.m */,
+				BCB6343127F6D29500ACFDCF /* LiveSeatMember.h */,
+				BCB6343527F6D29500ACFDCF /* LiveSeatMember.m */,
+				BCB9090C2852EEBE00F5FF69 /* LiveCard.bundle */,
 				BC106C1D2A933868000759A9 /* TXLiveMessageCenter.h */,
 				BC106C1C2A933867000759A9 /* TXLiveMessageCenter.m */,
 				BC106C202A933868000759A9 /* TXLiveMessageModel.h */,
@@ -4772,6 +4645,8 @@
 			children = (
 				BC106BC32A9336F8000759A9 /* TXLiveRoomViewController.h */,
 				BC106BC42A9336F8000759A9 /* TXLiveRoomViewController.m */,
+				BCB909092852EE9600F5FF69 /* KSLiveWebViewController.h */,
+				BCB9090A2852EE9600F5FF69 /* KSLiveWebViewController.m */,
 			);
 			path = Controller;
 			sourceTree = "<group>";
@@ -6162,7 +6037,6 @@
 		BCB6340A27F6D29500ACFDCF /* Live */ = {
 			isa = PBXGroup;
 			children = (
-				BCB6340B27F6D29500ACFDCF /* LiveRoomMessage */,
 				BCB6342627F6D29500ACFDCF /* Controller */,
 				BCB6342D27F6D29500ACFDCF /* Model */,
 				BCB6343627F6D29500ACFDCF /* View */,
@@ -6170,64 +6044,9 @@
 			path = Live;
 			sourceTree = "<group>";
 		};
-		BCB6340B27F6D29500ACFDCF /* LiveRoomMessage */ = {
-			isa = PBXGroup;
-			children = (
-				BC02382728685FC0005560CA /* RCChatroomSeatsControl.h */,
-				BC02382628685FC0005560CA /* RCChatroomSeatsControl.m */,
-				BC02382128685F4B005560CA /* KSRCPauseLiveMessage.h */,
-				BC02382028685F4B005560CA /* KSRCPauseLiveMessage.m */,
-				BC02382328685F87005560CA /* KSRCShopRushMessage.h */,
-				BC02382428685F87005560CA /* KSRCShopRushMessage.m */,
-				BC02381D28685D6D005560CA /* RCChatroomLikeCount.h */,
-				BC02381E28685D6D005560CA /* RCChatroomLikeCount.m */,
-				BCB6342527F6D29500ACFDCF /* KSChatroomMessageCenter.h */,
-				BCB6341527F6D29500ACFDCF /* KSChatroomMessageCenter.m */,
-				BCB6341827F6D29500ACFDCF /* KSLiveChatroomClose.h */,
-				BCB6342227F6D29500ACFDCF /* KSLiveChatroomClose.m */,
-				BCB6342327F6D29500ACFDCF /* KSLiveChatroomDownSeat.h */,
-				BCB6341727F6D29500ACFDCF /* KSLiveChatroomDownSeat.m */,
-				BCB6342127F6D29500ACFDCF /* KSLiveChatroomEnter.h */,
-				BCB6340F27F6D29500ACFDCF /* KSLiveChatroomEnter.m */,
-				BCB6341F27F6D29500ACFDCF /* KSLiveChatroomKickOut.h */,
-				BCB6341227F6D29500ACFDCF /* KSLiveChatroomKickOut.m */,
-				BCB6341B27F6D29500ACFDCF /* KSLiveChatroomLeave.h */,
-				BCB6340E27F6D29500ACFDCF /* KSLiveChatroomLeave.m */,
-				BCB6341327F6D29500ACFDCF /* KSLiveChatroomLike.h */,
-				BCB6341D27F6D29500ACFDCF /* KSLiveChatroomLike.m */,
-				BCB6341027F6D29500ACFDCF /* KSLiveChatroomMemberCount.h */,
-				BCB6342027F6D29500ACFDCF /* KSLiveChatroomMemberCount.m */,
-				BCEBB8E62840B87100A76BE8 /* KSLiveChatroomMemberUp.h */,
-				BCEBB8E72840B87100A76BE8 /* KSLiveChatroomMemberUp.m */,
-				BCB6341427F6D29500ACFDCF /* KSLiveChatroomSeatApply.h */,
-				BCB6341C27F6D29500ACFDCF /* KSLiveChatroomSeatApply.m */,
-				BCB6341627F6D29500ACFDCF /* KSLiveChatroomSeatResponse.h */,
-				BCB6342427F6D29500ACFDCF /* KSLiveChatroomSeatResponse.m */,
-				BCB6341127F6D29500ACFDCF /* KSLiveChatroomUserQuit.h */,
-				BCB6341E27F6D29500ACFDCF /* KSLiveChatroomUserQuit.m */,
-				BCB6341927F6D29500ACFDCF /* KSLiveChatroomWelcome.h */,
-				BCB6340D27F6D29500ACFDCF /* KSLiveChatroomWelcome.m */,
-				BCB6340C27F6D29500ACFDCF /* KSRCMessageModel.h */,
-				BCB6341A27F6D29500ACFDCF /* KSRCMessageModel.m */,
-				BC0A2263284471300065C1AB /* KSLiveBlockUser.h */,
-				BC0A2264284471300065C1AB /* KSLiveBlockUser.m */,
-				BC0A2266284471460065C1AB /* KSLiveUnBlockUser.h */,
-				BC0A2267284471460065C1AB /* KSLiveUnBlockUser.m */,
-				BC9BA9A728B352B30031ECD2 /* KSDownSeatAllMessage.h */,
-				BC9BA9A628B352B30031ECD2 /* KSDownSeatAllMessage.m */,
-				BC9BA9A428B352B30031ECD2 /* KSRejectAllSeatMessage.h */,
-				BC9BA9A528B352B30031ECD2 /* KSRejectAllSeatMessage.m */,
-			);
-			path = LiveRoomMessage;
-			sourceTree = "<group>";
-		};
 		BCB6342627F6D29500ACFDCF /* Controller */ = {
 			isa = PBXGroup;
 			children = (
-				BCB6342A27F6D29500ACFDCF /* LiveVideoRoomViewController.h */,
-				BCB6342727F6D29500ACFDCF /* LiveVideoRoomViewController.m */,
-				BCB909092852EE9600F5FF69 /* KSLiveWebViewController.h */,
-				BCB9090A2852EE9600F5FF69 /* KSLiveWebViewController.m */,
 			);
 			path = Controller;
 			sourceTree = "<group>";
@@ -6235,17 +6054,6 @@
 		BCB6342D27F6D29500ACFDCF /* Model */ = {
 			isa = PBXGroup;
 			children = (
-				BCB6342E27F6D29500ACFDCF /* KSEnterLiveroomManager.h */,
-				BCB6343227F6D29500ACFDCF /* KSEnterLiveroomManager.m */,
-				BC106C4E2A9351DA000759A9 /* LiveModuleService.h */,
-				BC106C4F2A9351DA000759A9 /* LiveModuleService.m */,
-				BCB6342F27F6D29500ACFDCF /* KSLiveStreamVideo.h */,
-				BCB6343327F6D29500ACFDCF /* KSLiveStreamVideo.m */,
-				BCB6343027F6D29500ACFDCF /* LiveroomTimeManager.h */,
-				BCB6343427F6D29500ACFDCF /* LiveroomTimeManager.m */,
-				BCB6343127F6D29500ACFDCF /* LiveSeatMember.h */,
-				BCB6343527F6D29500ACFDCF /* LiveSeatMember.m */,
-				BCB9090C2852EEBE00F5FF69 /* LiveCard.bundle */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -6265,8 +6073,6 @@
 				BC02381128685063005560CA /* KSLiveEndView.h */,
 				BC02381028685063005560CA /* KSLiveEndView.m */,
 				BCB6343727F6D29500ACFDCF /* InputBar */,
-				BCB6344D27F6D29500ACFDCF /* KSChatroomTextCell.h */,
-				BCB6345927F6D29600ACFDCF /* KSChatroomTextCell.m */,
 				BCB6345227F6D29500ACFDCF /* LiveRoomLikeLayer.h */,
 				BCB6344427F6D29500ACFDCF /* LiveRoomLikeLayer.m */,
 				BCB6344A27F6D29500ACFDCF /* LiveSeatApplyCell.h */,
@@ -7104,7 +6910,7 @@
 			isa = PBXProject;
 			attributes = {
 				BuildIndependentTargetsInParallel = 1;
-				LastUpgradeCheck = 1430;
+				LastUpgradeCheck = 1500;
 				TargetAttributes = {
 					275E8AA427E18F8800DD3F6E = {
 						CreatedOnToolsVersion = 13.2.1;
@@ -7260,7 +7066,6 @@
 				275FA23D27E7356B00CFEA2E /* PasswordBodyView.xib in Resources */,
 				2723B66227F15CFC00E0B90B /* FeedbackBodyView.xib in Resources */,
 				BC5367C4283F6D58008428E8 /* HomeLiveCourseView.xib in Resources */,
-				BCB908F32850B08D00F5FF69 /* ShareLiveCellContentView.xib in Resources */,
 				BC2DFF5D28C097DC0056105A /* styleAnimation.json in Resources */,
 				BC71D266288804CD0010F14B /* img_43.png in Resources */,
 				BC71D257288804CD0010F14B /* img_28.png in Resources */,
@@ -7305,7 +7110,6 @@
 				BC7663162827E49900C91A1D /* NotiferHeadView.xib in Resources */,
 				BC802D9928BC4FE90079E350 /* HomeHotMusicView.xib in Resources */,
 				BC106C4C2A933E75000759A9 /* LiveRoomHeadView.xib in Resources */,
-				BCB908F22850B08D00F5FF69 /* ShareMusicCellContentView.xib in Resources */,
 				BCC583CF28A9EC6400BAB4CF /* cloud_animation_1.png in Resources */,
 				2723B5C427F157B100E0B90B /* KSChatListSearchView.xib in Resources */,
 				BC8A459A283DC33400094BBB /* SubjectFinger.plist in Resources */,
@@ -7670,17 +7474,14 @@
 				2779357B27E324A70010E277 /* ShopButton.m in Sources */,
 				2723B61E27F157D500E0B90B /* GroupNoticeEditController.m in Sources */,
 				BCFDA63728BCA1C60022B497 /* HomeRecentCourseView.m in Sources */,
-				BCB6346427F6D29600ACFDCF /* KSLiveChatroomSeatApply.m in Sources */,
 				BC0212FE27FC66AA0040569F /* InstrumentMessageModel.m in Sources */,
 				BC0D1F752810165500C5D9E5 /* VideoCourseModel.m in Sources */,
 				BC802D9D28BC546B0079E350 /* HomeHotMusicCollectionCell.m in Sources */,
 				BC119276280FB01100A716F7 /* AccompanyHomeworkCell.m in Sources */,
 				277935AC27E324A80010E277 /* MSSBrowseBaseViewController.m in Sources */,
-				2779352427E324A60010E277 /* KSUtilities.m in Sources */,
 				2779359627E324A80010E277 /* TZVideoCropController.m in Sources */,
 				277935AB27E324A80010E277 /* UIImage+MSSScale.m in Sources */,
 				BC106C192A933829000759A9 /* TXLiveMessageDownSeat.m in Sources */,
-				BCB908E32850B07300F5FF69 /* KSChatLiveMessage.m in Sources */,
 				BC106C122A933829000759A9 /* TXLiveMessagePauseLive.m in Sources */,
 				BCC0F65A2A8CD8F500C4EFA4 /* TxClassroomChatMineCell.m in Sources */,
 				2779353427E324A60010E277 /* UIImageView+CornerRadius.m in Sources */,
@@ -7708,12 +7509,10 @@
 				BCA3DBBD29014B9800AE1C49 /* TunerForkManager.swift in Sources */,
 				2779351227E324A50010E277 /* KSNetworkAccessibleManager.m in Sources */,
 				BCCE95CC2AB03BE200AB6385 /* TenantDragView.m in Sources */,
-				BCB6346827F6D29600ACFDCF /* KSLiveChatroomClose.m in Sources */,
 				2779357227E324A70010E277 /* SearchView.m in Sources */,
 				BC8A459C283DC33400094BBB /* KSXMLInfoParse.m in Sources */,
 				BC106C392A9338A7000759A9 /* TXLiveVideoView.m in Sources */,
 				2723B64927F15BDC00E0B90B /* KSJXBodyView.m in Sources */,
-				BC02382228685F4B005560CA /* KSRCPauseLiveMessage.m in Sources */,
 				2779356527E324A70010E277 /* KSMediaManager.m in Sources */,
 				BCC0F6AD2A8CDD4000C4EFA4 /* KSNormalAlertView.m in Sources */,
 				2779355C27E324A70010E277 /* KSChoosePicker.m in Sources */,
@@ -7722,7 +7521,6 @@
 				2779353227E324A60010E277 /* NSDate+Transform.m in Sources */,
 				2779356827E324A70010E277 /* shopview.m in Sources */,
 				2723B64527F15B5900E0B90B /* SCIndexView.m in Sources */,
-				BCB6346A27F6D29600ACFDCF /* LiveVideoRoomViewController.m in Sources */,
 				BCF472EA2AB01AEB0032BE16 /* TenantMoreViewController.m in Sources */,
 				2779359727E324A80010E277 /* TZVideoPlayerController.m in Sources */,
 				BC802DBD28BC8E2C0079E350 /* HomeHotLiveCourseView.m in Sources */,
@@ -7732,7 +7530,6 @@
 				BC8A4597283DC33400094BBB /* CAudioUnit.m in Sources */,
 				BCF425E22AB8793400BCD942 /* NSDate+DateDetail.m in Sources */,
 				2779354627E324A60010E277 /* UIView+Animation.m in Sources */,
-				BCB908EF2850B08D00F5FF69 /* ShareMusicCellContentView.m in Sources */,
 				2723B68327F15D3D00E0B90B /* ModifyViewController.m in Sources */,
 				2779356327E324A70010E277 /* HomeButton.m in Sources */,
 				2779358227E324A80010E277 /* NSDate+KSBaseDatePicker.m in Sources */,
@@ -7744,12 +7541,10 @@
 				275FA1DA27E7351900CFEA2E /* KSNetworkingManager.m in Sources */,
 				BC8A45B0283DC33400094BBB /* CloudHelpView.m in Sources */,
 				2779358A27E324A80010E277 /* ArchiveTools.m in Sources */,
-				BC0A2268284471460065C1AB /* KSLiveUnBlockUser.m in Sources */,
 				BCC0F6B62A8CDD4000C4EFA4 /* LocalRenderManager.m in Sources */,
 				BC106C042A933829000759A9 /* TXLiveMessageMemberUp.m in Sources */,
 				BCC0F6A92A8CDD4000C4EFA4 /* UIView+MBProgressHUD.m in Sources */,
 				BCC0F6542A8CD8F500C4EFA4 /* TXChatBottomView.m in Sources */,
-				BCB908F12850B08D00F5FF69 /* KSChatMusicShareCell.m in Sources */,
 				BC02381928685087005560CA /* LiveAnimationView.m in Sources */,
 				BC0D95112AC26E4000E54D3F /* UIImageView+DisplayImage.m in Sources */,
 				BCC0F6122A8CD89400C4EFA4 /* TXClassroomViewController.m in Sources */,
@@ -7810,7 +7605,6 @@
 				BC119247280EDA5800A716F7 /* kSJXCollectionView.m in Sources */,
 				2779358927E324A80010E277 /* CoinModel.m in Sources */,
 				BCB9091728530E9C00F5FF69 /* KSShopCardView.m in Sources */,
-				275FA1EA27E7351900CFEA2E /* KSRCIMDataSource.m in Sources */,
 				BCCDB4332AB1C03A003C8E5F /* TenantTicketAlert.m in Sources */,
 				BC27A071280FF56C00F91E27 /* AccompanyEvaluateCell.m in Sources */,
 				BC119241280ED9E000A716F7 /* AccompanyDetailViewController.m in Sources */,
@@ -7826,7 +7620,6 @@
 				2779353727E324A60010E277 /* UIImage+Color.m in Sources */,
 				2779353127E324A60010E277 /* NSString+Extension.m in Sources */,
 				2779353F27E324A60010E277 /* UIView+KSLayer.m in Sources */,
-				BCB6346227F6D29600ACFDCF /* KSLiveChatroomDownSeat.m in Sources */,
 				275E8AB027E18F8800DD3F6E /* ViewController.m in Sources */,
 				277935B627E324A90010E277 /* FSCalendarCell.m in Sources */,
 				BC89AC0E2AB0842B00B077AF /* TenantNewMusicView.m in Sources */,
@@ -7898,7 +7691,6 @@
 				2779353A27E324A60010E277 /* UILabel+QWTopLeftLabel.m in Sources */,
 				BC542E5D2840A60100633781 /* UserSettingViewController.m in Sources */,
 				BC119213280ED6A900A716F7 /* MyLessonBodyView.m in Sources */,
-				BC02381F28685D6D005560CA /* RCChatroomLikeCount.m in Sources */,
 				BCCE95F32AB05F3D00AB6385 /* TenantHotAlbumCell.m in Sources */,
 				BCB9FA35286D7C2F005D766B /* GuideListView.m in Sources */,
 				BCC0F60E2A8CD86C00C4EFA4 /* TXSongSyncMessage.m in Sources */,
@@ -7907,14 +7699,12 @@
 				2779355E27E324A70010E277 /* KSAudioRecordFileManager.m in Sources */,
 				2779357A27E324A70010E277 /* PIckView.m in Sources */,
 				BC119234280ED97C00A716F7 /* CourseForLiveCell.m in Sources */,
-				BCB6346027F6D29600ACFDCF /* KSLiveChatroomKickOut.m in Sources */,
 				BC106C382A9338A7000759A9 /* LiveRoomConfirmAlert.m in Sources */,
 				2779354127E324A60010E277 /* UIView+ShowProgress.m in Sources */,
 				BCFE53E72812765600AD6786 /* HomeHotAlbumCell.m in Sources */,
 				BC89AC092AB0840E00B077AF /* TenantRecommendMusicView.m in Sources */,
 				BC8A459B283DC33400094BBB /* CloudSongMessageModel.m in Sources */,
 				BC8A45B7283DC33500094BBB /* NoWiredTipsAlert.m in Sources */,
-				BCB6346627F6D29600ACFDCF /* KSLiveChatroomUserQuit.m in Sources */,
 				BCC0F6722A8CD8F500C4EFA4 /* MainToolButton.m in Sources */,
 				BCFDA61B28BC90310022B497 /* HomePageHeaderView.m in Sources */,
 				277935B427E324A90010E277 /* FSCalendarDelegationProxy.m in Sources */,
@@ -7942,7 +7732,6 @@
 				2779357627E324A70010E277 /* ShoppCatView.m in Sources */,
 				BC11927F280FB10900A716F7 /* AccompanyRemarkCell.m in Sources */,
 				2779357127E324A70010E277 /* SkipTextView.m in Sources */,
-				BCB6345F27F6D29600ACFDCF /* KSLiveChatroomEnter.m in Sources */,
 				BCC0F6AE2A8CDD4000C4EFA4 /* NormalAlertView.m in Sources */,
 				2723B61D27F157D500E0B90B /* GroupNoticeViewController.m in Sources */,
 				BC0212F727FC4A080040569F /* SubjectImageCell.m in Sources */,
@@ -7957,7 +7746,6 @@
 				2779357327E324A70010E277 /* prodectButton.m in Sources */,
 				BCC0F6692A8CD8F500C4EFA4 /* KSDanInputView.m in Sources */,
 				2723B5BD27F157B100E0B90B /* KSChatListSearchView.m in Sources */,
-				BCB6346E27F6D29600ACFDCF /* KSLiveStreamVideo.m in Sources */,
 				2779359327E324A80010E277 /* TZImageCropManager.m in Sources */,
 				BCCC361A2AAF0D77000D60CA /* INSSettingBodyView.m in Sources */,
 				2723B66727F15CFC00E0B90B /* ModifyBodyView.m in Sources */,
@@ -7968,7 +7756,6 @@
 				BC11924E280EDD5500A716F7 /* HomeworkListViewController.m in Sources */,
 				2779351927E324A60010E277 /* NSMutableString+KSSafe.m in Sources */,
 				2723B5BC27F157B100E0B90B /* GroupCreateView.m in Sources */,
-				BCB6346927F6D29600ACFDCF /* KSLiveChatroomSeatResponse.m in Sources */,
 				BC0D95192AC280CB00E54D3F /* KSWebLoadRefreshView.m in Sources */,
 				2723B64627F15B5900E0B90B /* UITableView+SCIndexView.m in Sources */,
 				BC3A4EB128DAE074001C4428 /* KSQRCreateManager.m in Sources */,
@@ -8047,9 +7834,7 @@
 				2779359F27E324A80010E277 /* TZPhotoPreviewCell.m in Sources */,
 				BC11928D280FB44300A716F7 /* HomeworkVideoView.m in Sources */,
 				277935A227E324A80010E277 /* TZLocationManager.m in Sources */,
-				2723B62827F157D500E0B90B /* KSSelectConversationViewController.m in Sources */,
 				BCD9295228F90202006793E4 /* ToneTuningBodyView.m in Sources */,
-				BC0A2265284471300065C1AB /* KSLiveBlockUser.m in Sources */,
 				BCCE95ED2AB05ECB00AB6385 /* TenantHotAlbumView.m in Sources */,
 				275FA1E827E7351900CFEA2E /* CustomNavViewController.m in Sources */,
 				BCCE95C72AB0362A00AB6385 /* TenantDarkSearhView.m in Sources */,
@@ -8061,7 +7846,6 @@
 				BCFEED7C28F810D70078A2B7 /* Tuner.swift in Sources */,
 				BC27A06F280FF56C00F91E27 /* AccompanyStudentEvaCell.m in Sources */,
 				BC0212FB27FC61D30040569F /* KSSegmentControl.m in Sources */,
-				BCB908E22850B07300F5FF69 /* KSChatMusicMessage.m in Sources */,
 				BC119223280ED6F500A716F7 /* AccompanyLessonModel.m in Sources */,
 				277935B227E324A90010E277 /* UIView+MSSLayout.m in Sources */,
 				BCCC36272AAF4346000D60CA /* KSTenantHomeViewController.m in Sources */,
@@ -8072,7 +7856,6 @@
 				BC43CACA2A88C9570011EB5D /* KSTXC2CChatViewController.m in Sources */,
 				2779356D27E324A70010E277 /* StoreShopCaterview.m in Sources */,
 				BC119267280FA92700A716F7 /* HomeworkDetailViewController.m in Sources */,
-				BCB6346127F6D29600ACFDCF /* KSChatroomMessageCenter.m in Sources */,
 				BC60E3CC287D552800B05441 /* AccountDeleteViewController.m in Sources */,
 				BC106BFE2A933829000759A9 /* TXMicStatusSync.m in Sources */,
 				BC11925B280FA85300A716F7 /* HomeworkSortView.m in Sources */,
@@ -8086,7 +7869,6 @@
 				2779356727E324A70010E277 /* UIColor+Hex.m in Sources */,
 				BC9AA0E72ABC5F5200CD954D /* KSSmallChoosePicker.m in Sources */,
 				BC802DA728BC62390079E350 /* HomeHotMusicModel.m in Sources */,
-				BCB6345E27F6D29600ACFDCF /* KSLiveChatroomLeave.m in Sources */,
 				BC11929B280FD2E800A716F7 /* HomeworkBottomView.m in Sources */,
 				BC494A77286952B500CCD343 /* MusicRoomDetailViewController.m in Sources */,
 				BC106C0E2A933829000759A9 /* TXLiveMessageChatBan.m in Sources */,
@@ -8103,7 +7885,6 @@
 				2779355927E324A70010E277 /* GRCreateManager.m in Sources */,
 				BC106C052A933829000759A9 /* TXLiveMessageKickOut.m in Sources */,
 				277935A727E324A80010E277 /* MSSBrowseCollectionViewCell.m in Sources */,
-				BCB6346727F6D29600ACFDCF /* KSLiveChatroomMemberCount.m in Sources */,
 				277935AD27E324A80010E277 /* MSSBrowseZoomScrollView.m in Sources */,
 				BCB6348227F6D29600ACFDCF /* SeatContentView.m in Sources */,
 				BCC0F6A32A8CDD3F00C4EFA4 /* ClassroomTimerManager.m in Sources */,
@@ -8130,9 +7911,7 @@
 				2723B63827F157D500E0B90B /* GroupApplyChooseCell.m in Sources */,
 				BC8B6DC62856CAF600866917 /* KSDocumentViewController.m in Sources */,
 				2723B66827F15CFC00E0B90B /* FeedbackBodyView.m in Sources */,
-				BC02382828685FC0005560CA /* RCChatroomSeatsControl.m in Sources */,
 				2779354927E324A60010E277 /* MBProgressHUD+KSShow.m in Sources */,
-				BCB6346327F6D29600ACFDCF /* KSRCMessageModel.m in Sources */,
 				277935A427E324A80010E277 /* TZImageRequestOperation.m in Sources */,
 				275FA23627E7356B00CFEA2E /* LoginBodyView.m in Sources */,
 				BC106C152A933829000759A9 /* TXLiveMessageWelcome.m in Sources */,
@@ -8149,7 +7928,6 @@
 				277935BB27E324A90010E277 /* FSCalendarSeparatorDecorationView.m in Sources */,
 				BC756CC628FE866100AA9ECB /* UserDetailBottomView.m in Sources */,
 				BC8A45A9283DC33400094BBB /* KSCloudBeatView.m in Sources */,
-				275FA1DF27E7351900CFEA2E /* RCConnectionManager.m in Sources */,
 				BCD9295D28F9447B006793E4 /* WMGaugeViewStyleFlatThin.m in Sources */,
 				275FA22B27E7356B00CFEA2E /* HomeViewController.m in Sources */,
 				BC106C362A9338A7000759A9 /* TXLiveLoadingView.m in Sources */,
@@ -8157,7 +7935,6 @@
 				BCFE53F12812898700AD6786 /* HomeVideoCourseCell.m in Sources */,
 				BCC0F6B52A8CDD4000C4EFA4 /* OnlineClassManager.m in Sources */,
 				BC28887D2A8102890064B773 /* KSGroupConversationController.m in Sources */,
-				BCB908F02850B08D00F5FF69 /* KSChatLiveShareCell.m in Sources */,
 				277935C027E324A90010E277 /* FSCalendarTransitionCoordinator.m in Sources */,
 				BC802DA328BC5F8D0079E350 /* HomeHotMusicCellView.m in Sources */,
 				BC494A8028696BC300CCD343 /* MusicRoomListModel.m in Sources */,
@@ -8171,11 +7948,9 @@
 				2779352D27E324A60010E277 /* NSString+CZHSizeExtension.m in Sources */,
 				BCC0F6612A8CD8F500C4EFA4 /* TXMainEmtpyView.m in Sources */,
 				BC8C2C7E28265D8E00FBA5D5 /* KSNewsAlert.m in Sources */,
-				BC02382528685F87005560CA /* KSRCShopRushMessage.m in Sources */,
 				BCC0F6642A8CD8F500C4EFA4 /* TXDanBottomView.m in Sources */,
 				BC119259280FA85300A716F7 /* HomeworkListCell.m in Sources */,
 				BCA1136628A3A2EA007FAFB9 /* BassMidiEngine.m in Sources */,
-				BC9BA9A828B352B30031ECD2 /* KSRejectAllSeatMessage.m in Sources */,
 				2779353827E324A60010E277 /* UIView+KSExtension.m in Sources */,
 				BCC0F6592A8CD8F500C4EFA4 /* TXChatAreaView.m in Sources */,
 				2723B5CD27F157BE00E0B90B /* GroupListModel.m in Sources */,
@@ -8210,7 +7985,6 @@
 				BCB9090B2852EE9600F5FF69 /* KSLiveWebViewController.m in Sources */,
 				277935C527E324A90010E277 /* UIView+SDExtension.m in Sources */,
 				2779356E27E324A70010E277 /* UITextField_Toolbar.m in Sources */,
-				BCEBB8E82840B87100A76BE8 /* KSLiveChatroomMemberUp.m in Sources */,
 				277935B027E324A90010E277 /* MSSBrowseActionSheetCell.m in Sources */,
 				BC2932F82AAEC46B0024D98E /* InstitutionMineBodyView.m in Sources */,
 				BCC0F6AA2A8CDD4000C4EFA4 /* RolePortraitView.m in Sources */,
@@ -8258,7 +8032,6 @@
 				2723B62027F157D500E0B90B /* GroupNoticeCell.m in Sources */,
 				277935A627E324A80010E277 /* MSSBrowseLocalViewController.m in Sources */,
 				BC2932EE2AAEC3AA0024D98E /* InstitutionNomalNavView.m in Sources */,
-				BCB6348427F6D29600ACFDCF /* KSChatroomTextCell.m in Sources */,
 				BCB6347527F6D29600ACFDCF /* KSChatInputBarControl.m in Sources */,
 				277935D227E324A90010E277 /* ALCalendarHelper.m in Sources */,
 				2779353D27E324A60010E277 /* UIScrollView+KSTouch.m in Sources */,
@@ -8270,7 +8043,6 @@
 				BC8A45A7283DC33400094BBB /* CloudControlButton.m in Sources */,
 				BCC0F6C32A8CDDEB00C4EFA4 /* RoomMember.m in Sources */,
 				BC60E3D3287D592800B05441 /* KSPublicAlertView.m in Sources */,
-				BCB6346527F6D29600ACFDCF /* KSLiveChatroomLike.m in Sources */,
 				277935CA27E324A90010E277 /* TAAnimatedDotView.m in Sources */,
 				BC8A4598283DC33400094BBB /* KYSourceParseManager.m in Sources */,
 				2779353527E324A60010E277 /* NSObject+ReadDocument.m in Sources */,
@@ -8280,8 +8052,6 @@
 				2723B63427F157D500E0B90B /* GroupApplyMemberCell.m in Sources */,
 				BC106C0F2A933829000759A9 /* TXLiveMessageSeatApply.m in Sources */,
 				BCC0F6082A8CD86C00C4EFA4 /* TXClassroomTextMsg.m in Sources */,
-				BC5082B4283345A10031DD0A /* KSChatListCell.m in Sources */,
-				BCB6345D27F6D29600ACFDCF /* KSLiveChatroomWelcome.m in Sources */,
 				BCFEED6A28F7E4F40078A2B7 /* SmallToolBodyView.m in Sources */,
 				2779352927E324A60010E277 /* zhPopupController.m in Sources */,
 				BC12636728FEA01F00509E90 /* RecentPracticeModel.m in Sources */,
@@ -8311,7 +8081,6 @@
 				BC119264280FA90100A716F7 /* HomeworkListModel.m in Sources */,
 				2779354A27E324A60010E277 /* UIImage+Resize.m in Sources */,
 				2723B5A327F1578300E0B90B /* KSChatListViewController.m in Sources */,
-				BC9BA9A928B352B30031ECD2 /* KSDownSeatAllMessage.m in Sources */,
 				BC8A45A1283DC33400094BBB /* KSCloudSettingView.m in Sources */,
 				BC119271280FAF7D00A716F7 /* AccompanyCourseInfoCell.m in Sources */,
 				BC2DFF5728BE143A0056105A /* HomeTempLiveCell.m in Sources */,
@@ -8324,7 +8093,6 @@
 				BC40BA1828124D3D00DEC0D1 /* NotiferMessageViewController.m in Sources */,
 				275FA22D27E7356B00CFEA2E /* ChatViewController.m in Sources */,
 				BCC0F6E22A8CE24400C4EFA4 /* KSWhiteboardRefreshView.m in Sources */,
-				BCB908EE2850B08D00F5FF69 /* ShareLiveCellContentView.m in Sources */,
 				BC802DB828BC8C780079E350 /* HomeHotVideoCourseView.m in Sources */,
 				BC8A45A2283DC33400094BBB /* SettingPageView.m in Sources */,
 				2723B62627F157D500E0B90B /* GroupApplyViewController.m in Sources */,
@@ -8712,26 +8480,6 @@
 					"-framework",
 					"\"ReplayKit\"",
 					"-framework",
-					"\"RongChatRoom\"",
-					"-framework",
-					"\"RongCustomerService\"",
-					"-framework",
-					"\"RongDiscussion\"",
-					"-framework",
-					"\"RongIMKit\"",
-					"-framework",
-					"\"RongIMLib\"",
-					"-framework",
-					"\"RongIMLibCore\"",
-					"-framework",
-					"\"RongLocation\"",
-					"-framework",
-					"\"RongPublicService\"",
-					"-framework",
-					"\"RongRTCLib\"",
-					"-framework",
-					"\"RongSight\"",
-					"-framework",
 					"\"Security\"",
 					"-framework",
 					"\"StoreKit\"",
@@ -8918,26 +8666,6 @@
 					"-framework",
 					"\"ReplayKit\"",
 					"-framework",
-					"\"RongChatRoom\"",
-					"-framework",
-					"\"RongCustomerService\"",
-					"-framework",
-					"\"RongDiscussion\"",
-					"-framework",
-					"\"RongIMKit\"",
-					"-framework",
-					"\"RongIMLib\"",
-					"-framework",
-					"\"RongIMLibCore\"",
-					"-framework",
-					"\"RongLocation\"",
-					"-framework",
-					"\"RongPublicService\"",
-					"-framework",
-					"\"RongRTCLib\"",
-					"-framework",
-					"\"RongSight\"",
-					"-framework",
 					"\"Security\"",
 					"-framework",
 					"\"StoreKit\"",

+ 1 - 1
KulexiuForStudent/KulexiuForStudent.xcodeproj/xcshareddata/xcschemes/KulexiuForStudent.xcscheme

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "1430"
+   LastUpgradeVersion = "1500"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"

+ 0 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/KSBaseWKWebViewController.m

@@ -10,12 +10,10 @@
 #import "LoginViewController.h"
 #import "AppDelegate.h"
 #import "CustomNavViewController.h"
-#import <RongIMKit/RongIMKit.h>
 #import "UIDevice+TFDevice.h"
 #import "KSPremissionAlert.h"
 #import "RecordCheckManager.h"
 #import "KSLocalWebViewController.h"
-#import "RCConnectionManager.h"
 #import "KSAccompanyWebViewController.h"
 #import "KSChatConversationViewController.h"
 #import "KSGroupConversationController.h"

+ 0 - 2
KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m

@@ -9,9 +9,7 @@
 #import "KeyChainTools.h"
 #import "LoginViewController.h"
 #import "AppDelegate.h"
-#import <RongIMKit/RongIMKit.h>
 #import "JPUSHService.h"
-#import "RCConnectionManager.h"
 #import "UserInfoManager.h"
 
 @implementation KSNetworkingManager

+ 0 - 26
KulexiuForStudent/KulexiuForStudent/Common/Base/KSRCIMDataSource.h

@@ -1,26 +0,0 @@
-//
-//  KSRCIMDataSource.h
-//  StudentDaya
-//
-//  Created by Kyle on 2019/8/12.
-//  Copyright © 2019 DayaMusic. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <RongIMKit/RongIMKit.h>
-#define KSRMDataSource [KSRCIMDataSource shareInstance]
-
-NS_ASSUME_NONNULL_BEGIN
-
-
-@interface KSRCIMDataSource : NSObject <RCIMUserInfoDataSource,RCIMGroupInfoDataSource,RCIMGroupMemberDataSource,RCIMGroupUserInfoDataSource>
-
-+ (KSRCIMDataSource *)shareInstance;
-
-- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion;
-
-- (void)getUserInfoWithUserId:(NSString *)userId inGroup:(NSString *)groupId completion:(void (^)(RCUserInfo *))completion;
-- (void)getAllMembersOfGroup:(NSString *)groupId result:(void (^)(NSArray<NSString *> *))resultBlock;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 140
KulexiuForStudent/KulexiuForStudent/Common/Base/KSRCIMDataSource.m

@@ -1,140 +0,0 @@
-//
-//  KSRCIMDataSource.m
-//  StudentDaya
-//
-//  Created by Kyle on 2019/8/12.
-//  Copyright © 2019 DayaMusic. All rights reserved.
-//
-
-#import "KSRCIMDataSource.h"
-
-
-
-@implementation KSRCIMDataSource
-
-+ (KSRCIMDataSource *)shareInstance {
-    static KSRCIMDataSource *manager = nil;
-    static dispatch_once_t onceToken;
-    dispatch_once(&onceToken, ^{
-        manager = [[[self class] alloc] init];
-    });
-    return manager;
-}
-
-#pragma mark --- groupInfo
-
-- (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(RCGroup *))completion {
-    if ([NSString isEmptyString:groupId]) {
-        completion(nil);
-    }
-    [KSNetworkingManager queryGroupDetail:KS_POST groupId:groupId success:^(NSDictionary * _Nonnull dic) {
-        if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-            NSDictionary *result = [dic ks_dictionaryValueForKey:@"data"];
-            RCGroup *groupInfo = [[RCGroup alloc] initWithGroupId:groupId groupName:[result ks_stringValueForKey:@"name"] portraitUri:[result ks_stringValueForKey:@"img"]];
-            completion(groupInfo);
-        }
-        else {
-            RCGroup *groupInfo = [[RCGroup alloc] initWithGroupId:groupId groupName:@"" portraitUri:@""];
-            completion(groupInfo);
-        }
-    } faliure:^(NSError * _Nonnull error) {
-        RCGroup *groupInfo = [[RCGroup alloc] initWithGroupId:groupId groupName:@"" portraitUri:@""];
-        completion(groupInfo);
-    }];
-}
-
-// 获取群组中所有的用户uid
-- (void)getAllMembersOfGroup:(NSString *)groupId result:(void (^)(NSArray<NSString *> *))resultBlock {
-    if ([NSString isEmptyString:groupId]) {
-        resultBlock(nil);
-        return;
-    }
-    [KSNetworkingManager imGroupMemberAllRequest:KS_POST groupId:groupId success:^(NSDictionary * _Nonnull dic) {
-        if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-            NSArray *sourceArray = [dic ks_arrayValueForKey:@"data"];
-            NSMutableArray *ret = [[NSMutableArray alloc] init];
-            for (NSDictionary *parm in sourceArray) {
-                [ret addObject:[parm ks_stringValueForKey:@"userId"]];
-            }
-            resultBlock(ret);
-        }
-        else {
-            resultBlock(nil);
-        }
-    } faliure:^(NSError * _Nonnull error) {
-        resultBlock(nil);
-    }];
-}
-
-#pragma mark -- userInfo
-- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion {
-    RCUserInfo *user = [RCUserInfo new];
-    if (userId == nil || [userId length] == 0) {
-        user.userId = userId;
-        user.portraitUri = @"";
-        user.name = @"";
-        completion(user);
-        return;
-    }
-    if (![userId isEqualToString:[RCIM sharedRCIM].currentUserInfo.userId]) {
-        [KSNetworkingManager imUserFriendQueryDetail:KS_POST userId:userId success:^(NSDictionary * _Nonnull dic) {
-            if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-                
-                NSDictionary *userDic = [dic ks_dictionaryValueForKey:@"data"];
-                RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:userId name:[userDic ks_stringValueForKey:@"friendNickname"] portrait:[userDic ks_stringValueForKey:@"friendAvatar"]];
-                // 附加字段
-                NSMutableDictionary *extraDic = [NSMutableDictionary dictionary];
-                [extraDic setValue:[userDic ks_stringValueForKey:@"roleType"] forKey:@"role"];
-                user.extra = [extraDic mj_JSONString];
-                completion(user);
-            }
-            else {
-                RCUserInfo *user = [RCUserInfo new];
-                completion(user);
-            }
-        } faliure:^(NSError * _Nonnull error) {
-            RCUserInfo *user = [RCUserInfo new];
-            completion(user);
-        }];
-    }
-    else {
-        RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:UserDefault(IM_USERID) name:UserDefault(NicknameKey) portrait:UserDefault(AvatarUrlKey)];
-        return completion(user);
-    }
-}
-
-#pragma mark --- group userInfo
-- (void)getUserInfoWithUserId:(NSString *)userId inGroup:(NSString *)groupId completion:(void (^)(RCUserInfo *))completion {
-    RCUserInfo *user = [RCUserInfo new];
-    if (userId == nil || [userId length] == 0) {
-        user.userId = userId;
-        user.portraitUri = @"";
-        user.name = @"";
-        completion(user);
-        return;
-    }
-    [KSNetworkingManager imGroupMemberQueryUser:KS_POST groupId:groupId userId:userId success:^(NSDictionary * _Nonnull dic) {
-        if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-            NSDictionary *result = [dic ks_dictionaryValueForKey:@"data"];
-            NSString *name = [result ks_stringValueForKey:@"nickname"];
-            RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:userId name:name portrait:[result ks_stringValueForKey:@"avatar"]];
-            // 附加字段
-            NSMutableDictionary *extraDic = [NSMutableDictionary dictionary];
-            if ([result ks_boolValueForKey:@"isAdmin"]) {
-                [extraDic setValue:@"owner" forKey:@"groupOwner"];
-            }
-            [extraDic setValue:[result ks_stringValueForKey:@"roleType"] forKey:@"role"];
-            user.extra = [extraDic mj_JSONString];
-            completion(user);
-        }
-        else {
-            RCUserInfo *user = [RCUserInfo new];
-            completion(user);
-        }
-    } faliure:^(NSError * _Nonnull error) {
-        RCUserInfo *user = [RCUserInfo new];
-        completion(user);
-    }];
-}
-
-@end

+ 0 - 28
KulexiuForStudent/KulexiuForStudent/Common/Base/RCConnectionManager.h

@@ -1,28 +0,0 @@
-//
-//  RCConnectionManager.h
-//  StudentDaya
-//
-//  Created by Kyle on 2019/9/10.
-//  Copyright © 2019 DayaMusic. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <RongIMKit/RongIMKit.h>
-NS_ASSUME_NONNULL_BEGIN
-
-#define KSRMLINK [RCConnectionManager shareManager]
-
-
-@interface RCConnectionManager : NSObject <RCIMConnectionStatusDelegate>
-
-@property (nonatomic, assign) BOOL isConnected; // 是否连接上融云
-
-@property (nonatomic, assign) BOOL isNeedJoin;  // 是否需要加入房间
-
-@property (nonatomic, assign) BOOL isNeedShowMessage; // 是否提示信息
-
-+ (instancetype)shareManager;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 73
KulexiuForStudent/KulexiuForStudent/Common/Base/RCConnectionManager.m

@@ -1,73 +0,0 @@
-//
-//  RCConnectionManager.m
-//  StudentDaya
-//
-//  Created by Kyle on 2019/9/10.
-//  Copyright © 2019 DayaMusic. All rights reserved.
-//
-
-#import "RCConnectionManager.h"
-#import "LoginHelper.h"
-#import "ClassroomService.h"
-
-@interface RCConnectionManager ()
-
-
-
-@end
-
-@implementation RCConnectionManager
-
-+ (instancetype)shareManager {
-    static RCConnectionManager *manager = nil;
-    static dispatch_once_t onceToken;
-    dispatch_once(&onceToken, ^{
-        manager = [[RCConnectionManager alloc] init];
-    });
-    return manager;
-}
-
-- (void)setIsNeedJoin:(BOOL)isNeedJoin {
-    _isNeedJoin = isNeedJoin;
-    if (self.isConnected && isNeedJoin) {
-        dispatch_main_async_safe(^{
-        });
-    }
-    else if (isNeedJoin && !self.isConnected) {
-        
-    }
-}
-
-
-// 极端情况 IM稍后连上的 还没有进入房间
-- (void)setIsConnected:(BOOL)isConnected {
-    _isConnected = isConnected;
-    if (self.isNeedJoin && isConnected) {
-        
-    }
-}
-
-
-- (void)onRCIMConnectionStatusChanged:(RCConnectionStatus)status {
-    if (status == ConnectionStatus_Connected) { // RTC会自动断线重连 此处多余
-        self.isConnected = YES;
-        NSLog(@"connect im success");
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"RongIMConnected" object:nil];
-    }
-    else if (status == ConnectionStatus_KICKED_OFFLINE_BY_OTHER_CLIENT) { // 账号被挤掉
-        
-        self.isNeedJoin = NO;
-        self.isNeedShowMessage = NO;
-        [[RCIM sharedRCIM] logout];
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"otherLogin" object:nil];
-    }
-    else if (status == ConnectionStatus_Unconnected) {
-        if (_isNeedShowMessage) {
-        
-        }
-    }
-}
-
-
-
-@end

+ 0 - 21
KulexiuForStudent/KulexiuForStudent/Common/Tools/Extension/KSUtilities.h

@@ -1,21 +0,0 @@
-//
-//  KSUtilities.h
-//  StudentDaya
-//
-//  Created by Kyle on 2020/10/27.
-//  Copyright © 2020 DayaMusic. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSUtilities : NSObject
-
-+ (NSMutableDictionary *_Nullable)sortedArrayWithPinYinDic:(NSArray *)userList;
-+ (NSString *)hanZiToPinYinWithString:(NSString *)hanZi;
-+ (NSString *)getFirstUpperLetter:(NSString *)hanzi;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 134
KulexiuForStudent/KulexiuForStudent/Common/Tools/Extension/KSUtilities.m

@@ -1,134 +0,0 @@
-//
-//  KSUtilities.m
-//  StudentDaya
-//
-//  Created by Kyle on 2020/10/27.
-//  Copyright © 2020 DayaMusic. All rights reserved.
-//
-
-#import "KSUtilities.h"
-#import "pinyin.h"
-#import <RongIMKit/RongIMKit.h>
-
-@implementation KSUtilities
-
-+ (NSMutableDictionary *_Nullable)sortedArrayWithPinYinDic:(NSArray *)userList {
-    NSArray *users = [userList mutableCopy];
-    if (!users)
-        return nil;
-    NSArray *_keys = @[
-        @"A",
-        @"B",
-        @"C",
-        @"D",
-        @"E",
-        @"F",
-        @"G",
-        @"H",
-        @"I",
-        @"J",
-        @"K",
-        @"L",
-        @"M",
-        @"N",
-        @"O",
-        @"P",
-        @"Q",
-        @"R",
-        @"S",
-        @"T",
-        @"U",
-        @"V",
-        @"W",
-        @"X",
-        @"Y",
-        @"Z",
-        @"#"
-    ];
-    
-    NSMutableDictionary *infoDic = [NSMutableDictionary new];
-    NSMutableArray *_tempOtherArr = [NSMutableArray new];
-    BOOL isReturn = NO;
-    
-    for (NSString *key in _keys) {
-        
-        if ([_tempOtherArr count]) {
-            isReturn = YES;
-        }
-        NSMutableArray *tempArr = [NSMutableArray new];
-        for (id user in users) {
-            NSString *firstLetter;
-            if ([user isMemberOfClass:[RCUserInfo class]]) {
-                RCUserInfo *userInfo = (RCUserInfo *)user;
-                firstLetter = [self getFirstUpperLetter:userInfo.name];
-            }
-            
-            if ([firstLetter isEqualToString:key]) {
-                [tempArr addObject:user];
-            }
-            
-            if (isReturn)
-                continue;
-            char c = [firstLetter characterAtIndex:0];
-            if (isalpha(c) == 0) {
-                [_tempOtherArr addObject:user];
-            }
-        }
-        if (![tempArr count])
-            continue;
-        [infoDic setObject:tempArr forKey:key];
-    }
-    if ([_tempOtherArr count])
-        [infoDic setObject:_tempOtherArr forKey:@"#"];
-    
-    NSArray *keys = [[infoDic allKeys] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
-        
-        return [obj1 compare:obj2 options:NSNumericSearch];
-    }];
-    NSMutableArray *allKeys = [[NSMutableArray alloc] initWithArray:keys];
-    
-    NSMutableDictionary *resultDic = [NSMutableDictionary new];
-    [resultDic setObject:infoDic forKey:@"infoDic"];
-    [resultDic setObject:allKeys forKey:@"allKeys"];
-    return resultDic;
-}
-+ (NSString *)hanZiToPinYinWithString:(NSString *)hanZi {
-    if (!hanZi) {
-        return nil;
-    }
-    NSString *pinYinResult = [NSString string];
-    for (int j = 0; j < hanZi.length; j++) {
-        NSString *singlePinyinLetter = nil;
-        if ([self isChinese:[hanZi substringWithRange:NSMakeRange(j, 1)]]) {
-            singlePinyinLetter =
-            [[NSString stringWithFormat:@"%c", pinyinFirstLetter([hanZi characterAtIndex:j])] uppercaseString];
-        } else {
-            singlePinyinLetter = [hanZi substringWithRange:NSMakeRange(j, 1)];
-        }
-
-        pinYinResult = [pinYinResult stringByAppendingString:singlePinyinLetter];
-    }
-    return pinYinResult;
-}
-
-+ (BOOL)isChinese:(NSString *)text {
-    NSString *match = @"(^[\u4e00-\u9fa5]+$)";
-    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF matches %@", match];
-    return [predicate evaluateWithObject:text];
-}
-
-+ (NSString *)getFirstUpperLetter:(NSString *)hanzi {
-    NSString *pinyin = [self hanZiToPinYinWithString:hanzi];
-    if ([NSString isEmptyString:pinyin]) {
-        return @"#";
-    }
-    NSString *firstUpperLetter = [[pinyin substringToIndex:1] uppercaseString];
-    if ([firstUpperLetter compare:@"A"] != NSOrderedAscending &&
-        [firstUpperLetter compare:@"Z"] != NSOrderedDescending) {
-        return firstUpperLetter;
-    } else {
-        return @"#";
-    }
-}
-
-@end

+ 0 - 12
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/GroupMemberViewController.m

@@ -10,7 +10,6 @@
 #import "UITableView+SCIndexView.h"
 #import "GroupMemberListCell.h"
 #import "GroupMemberModel.h"
-#import <RongIMKit/RongIMKit.h>
 #import "KSChatConversationViewController.h"
 
 @interface GroupMemberViewController ()<UITableViewDelegate,UITableViewDataSource>
@@ -53,17 +52,6 @@
                 }
                 GroupMemberModel *model = [[GroupMemberModel alloc] initWithDictionary:parm];
                 [self.sourceArray addObject:model];
-                
-                // 刷新缓存
-                RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:model.imUserId name:model.nickname portrait:model.avatar];
-                // 附加字段
-                NSMutableDictionary *extraDic = [NSMutableDictionary dictionary];
-                if (model.isAdmin) {
-                    [extraDic setValue:@"owner" forKey:@"groupOwner"];
-                }
-                [extraDic setValue:model.roleType forKey:@"role"];
-                user.extra = [extraDic mj_JSONString];
-                [[RCIM sharedRCIM] refreshGroupUserInfoCache:user withUserId:model.imUserId withGroupId:self.groupId];
             }
             [self evaluateMessge];
         }

+ 0 - 23
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/KSSelectConversationViewController.h

@@ -1,23 +0,0 @@
-//
-//  KSSelectConversationViewController.h
-//  StudentDaya
-//
-//  Created by Kyle on 2021/8/5.
-//  Copyright © 2021 DayaMusic. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-#import <RongIMLib/RongIMLib.h>
-#import <RongIMKit/RCBaseViewController.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSSelectConversationViewController : RCBaseViewController
-
-- (instancetype)initSelectConversationViewControllerCompleted:
-    (void (^)(NSArray<RCConversation *> *conversationList))completedBlock;
-
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 189
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/KSSelectConversationViewController.m

@@ -1,189 +0,0 @@
-//
-//  KSSelectConversationViewController.m
-//  StudentDaya
-//
-//  Created by Kyle on 2021/8/5.
-//  Copyright © 2021 DayaMusic. All rights reserved.
-//
-
-#import "KSSelectConversationViewController.h"
-#import <RongIMKit/RCKitUtility.h>
-#import <RongIMKit/RCKitCommonDefine.h>
-#import <RongIMKit/RCKitConfig.h>
-#import <RongIMKit/RCIM.h>
-
-@interface RCSelectConversationCell : UITableViewCell
-
-- (void)setConversation:(RCConversation *)conversation ifSelected:(BOOL)ifSelected;
-
-@end
-
-typedef void (^CompleteBlock)(NSArray *conversationList);
-
-@interface KSSelectConversationViewController ()<UITableViewDataSource, UITableViewDelegate>
-
-@property (nonatomic, strong) NSMutableArray *selectedConversationArray;
-
-@property (nonatomic, strong) UITableView *conversationTableView;
-
-@property (nonatomic, strong) UIBarButtonItem *rightBarButtonItem;
-
-@property (nonatomic, strong) NSArray *listingConversationArray;
-
-@property (nonatomic, strong) CompleteBlock completeBlock;
-
-@end
-
-@implementation KSSelectConversationViewController
-
-- (instancetype)initSelectConversationViewControllerCompleted:
-    (void (^)(NSArray<RCConversation *> *conversationList))completedBlock {
-    if (self = [super init]) {
-        self.completeBlock = completedBlock;
-    }
-    return self;
-}
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    [self setupNavi];
-    self.view.backgroundColor = RCDYCOLOR(0xf0f0f6, 0x000000);
-    [self.view addSubview:self.conversationTableView];
-    self.selectedConversationArray = [[NSMutableArray alloc] init];
-    NSMutableArray *listArray = [NSMutableArray array];
-    NSArray *conversationArray = [[RCIMClient sharedRCIMClient] getConversationList:@[ @(ConversationType_PRIVATE), @(ConversationType_GROUP)]];
-    for (RCConversation *conversation in conversationArray) {
-        if (conversation.conversationType == ConversationType_GROUP && ![conversation.targetId containsString:@"FAN"] && ![conversation.targetId containsString:@"COURSE"]) { // 视频聊天群不添加
-            
-        }
-        else {
-            [listArray addObject:conversation];
-        }
-    }
-    self.listingConversationArray = [NSArray arrayWithArray:listArray];
-//    self.listingConversationArray =
-//        [[RCIMClient sharedRCIMClient] getConversationList:@[ @(ConversationType_PRIVATE), @(ConversationType_GROUP) ]];
-//    NSLog(@"--");
-    
-}
-
-#pragma mark - UITableViewDataSource
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    if (!self.listingConversationArray) {
-        return 0;
-    } else {
-        return self.listingConversationArray.count;
-    }
-}
-
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
-    if (self.listingConversationArray.count <= indexPath.row) {
-        return nil;
-    }
-
-    static NSString *reusableID = @"RCSelectConversationCell";
-    RCSelectConversationCell *cell = [tableView dequeueReusableCellWithIdentifier:reusableID];
-    if (!cell) {
-        cell = [[RCSelectConversationCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reusableID];
-    }
-
-    RCConversation *conversation = self.listingConversationArray[indexPath.row];
-    BOOL ifSelected = [self.selectedConversationArray containsObject:conversation];
-    [cell setConversation:conversation ifSelected:ifSelected];
-
-    return cell;
-}
-
-- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
-    return 70;
-}
-
-- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
-    if (indexPath.row >= self.listingConversationArray.count) {
-        return;
-    }
-    NSString *userId = self.listingConversationArray[indexPath.row];
-    if ([self.selectedConversationArray containsObject:userId]) {
-        [self.selectedConversationArray removeObject:userId];
-    } else if (userId) {
-        [self.selectedConversationArray addObject:userId];
-    }
-    [self updateRightButton];
-    [UIView performWithoutAnimation:^{
-        [self.conversationTableView reloadRowsAtIndexPaths:@[ indexPath ] withRowAnimation:UITableViewRowAnimationNone];
-    }];
-}
-
-
-#pragma mark - Target Action
-
-- (void)onLeftButtonClick:(id)sender {
-    [self.navigationController popViewControllerAnimated:NO];
-}
-
-- (void)onRightButtonClick:(id)sender {
-    if (!self.selectedConversationArray) {
-        return;
-    }
-    if (self.completeBlock) {
-        self.completeBlock(self.selectedConversationArray);
-    }
-    [self.navigationController popViewControllerAnimated:NO];
-}
-
-#pragma mark - Private Methods
-- (void)setupNavi {
-    self.title = RCLocalizedString(@"SelectContact");
-    UIBarButtonItem *leftBarItem =
-        [[UIBarButtonItem alloc] initWithTitle:RCLocalizedString(@"Cancel")
-                                         style:UIBarButtonItemStylePlain
-                                        target:self
-                                        action:@selector(onLeftButtonClick:)];
-    leftBarItem.tintColor = RCKitConfigCenter.ui.globalNavigationBarTintColor;
-    self.navigationItem.leftBarButtonItem = leftBarItem;
-
-    self.rightBarButtonItem =
-        [[UIBarButtonItem alloc] initWithTitle:RCLocalizedString(@"OK")
-                                         style:UIBarButtonItemStylePlain
-                                        target:self
-                                        action:@selector(onRightButtonClick:)];
-    self.rightBarButtonItem.tintColor = RCKitConfigCenter.ui.globalNavigationBarTintColor;
-    self.navigationItem.rightBarButtonItem = self.rightBarButtonItem;
-
-    [self updateRightButton];
-}
-
-- (void)updateRightButton {
-    [self.rightBarButtonItem setEnabled:self.selectedConversationArray.count > 0];
-}
-
-#pragma mark - Getters and Setters
-
-- (UITableView *)conversationTableView {
-    if (!_conversationTableView) {
-        _conversationTableView = [[UITableView alloc] init];
-        CGFloat navBarHeight = 64;
-        CGFloat homeBarHeight = [RCKitUtility getWindowSafeAreaInsets].bottom;
-        if (homeBarHeight > 0) {
-            navBarHeight = 88;
-        }
-        _conversationTableView.frame =
-            CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - navBarHeight - homeBarHeight);
-        _conversationTableView.dataSource = self;
-        _conversationTableView.delegate = self;
-        _conversationTableView.backgroundColor = [UIColor clearColor];
-        _conversationTableView.tableFooterView = [[UIView alloc] init];
-    }
-    return _conversationTableView;
-}
-
-/*
-#pragma mark - Navigation
-
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
-    // Get the new view controller using [segue destinationViewController].
-    // Pass the selected object to the new view controller.
-}
-*/
-
-@end

+ 1 - 40
KulexiuForStudent/KulexiuForStudent/Module/Chat/GroupNotice/Controller/GroupNoticeEditController.m

@@ -7,7 +7,6 @@
 
 #import "GroupNoticeEditController.h"
 #import "NoticeEditBodyView.h"
-#import <RongIMKit/RongIMKit.h>
 
 @interface GroupNoticeEditController ()
 
@@ -49,45 +48,7 @@
 }
 
 - (void)submitAction {
-//    if (_isModify) {
-//        NSString *title = self.bodyView.titleView.text;
-//        NSString *content = self.bodyView.contentArea.text;
-//        [LOADING_MANAGER showHUD];
-//        [KSNetworkingManager imGroupNoticeUpdateRequest:KS_POST groupId:self.groupId title:title content:content isTop:[NSString stringWithFormat:@"%d",self.bodyView.isOn] noticeID:self.noticeID success:^(NSDictionary * _Nonnull dic) {
-//            [LOADING_MANAGER removeHUD];
-//            if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-//                MJWeakSelf;
-//                [self KSShowMsg:@"修改成功" promptCompletion:^{
-//                    [weakSelf.navigationController popViewControllerAnimated:YES];
-//                }];
-//            }
-//            else {
-//                [LOADING_MANAGER MBShowAUTOHidingInWindow:MESSAGEKEY];
-//            }
-//        } faliure:^(NSError * _Nonnull error) {
-//            [LOADING_MANAGER removeHUD];
-//        }];
-//    }
-//    else {
-//        NSString *title = self.bodyView.titleView.text;
-//        NSString *content = self.bodyView.contentArea.text;
-//        [LOADING_MANAGER showHUD];
-//        [KSNetworkingManager imGroupNoticeCreateRequest:KS_POST groupId:self.groupId title:title content:content isTop:[NSString stringWithFormat:@"%d",self.bodyView.isOn] success:^(NSDictionary * _Nonnull dic) {
-//            [LOADING_MANAGER removeHUD];
-//            if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-//                MJWeakSelf;
-//                [self KSShowMsg:@"设置成功" promptCompletion:^{
-//                    [weakSelf.navigationController popViewControllerAnimated:YES];
-//                }];
-//            }
-//            else {
-//                [LOADING_MANAGER MBShowAUTOHidingInWindow:MESSAGEKEY];
-//            }
-//        } faliure:^(NSError * _Nonnull error) {
-//            [LOADING_MANAGER removeHUD];
-//        }];
-//        
-//    }
+    
 }
 /*
 #pragma mark - Navigation

+ 0 - 25
KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatLiveMessage.h

@@ -1,25 +0,0 @@
-//
-//  KSChatLiveMessage.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/// 分享的直播间消息
-@interface KSChatLiveMessage : RCMessageContent
-
-@property (nonatomic, strong) NSString *roomUID;
-
-@property (nonatomic, strong) NSString *teacherAvatar;
-
-@property (nonatomic, strong) NSString *teacherName;
-
-@property (nonatomic, strong) NSString *liveDescMessage;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 70
KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatLiveMessage.m

@@ -1,70 +0,0 @@
-//
-//  KSChatLiveMessage.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import "KSChatLiveMessage.h"
-
-@implementation KSChatLiveMessage
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.roomUID) {
-        [multableDict setObject:self.roomUID forKey:@"roomUID"];
-    } else {
-        [multableDict setObject:@"" forKey:@"roomUID"];
-    }
-    
-    if (self.teacherAvatar) {
-        [multableDict setObject:self.teacherAvatar forKey:@"teacherAvatar"];
-    } else {
-        [multableDict setObject:@"" forKey:@"teacherAvatar"];
-    }
-    
-    if (self.teacherName) {
-        [multableDict setObject:self.teacherName forKey:@"teacherName"];
-    } else {
-        [multableDict setObject:@"" forKey:@"teacherName"];
-    }
-    
-    if (self.liveDescMessage) {
-        [multableDict setObject:self.liveDescMessage forKey:@"liveDescMessage"];
-    } else {
-        [multableDict setObject:@"" forKey:@"liveDescMessage"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    
-    self.roomUID = [json ks_stringValueForKey:@"roomUID"];
-    self.teacherAvatar = [json ks_stringValueForKey:@"teacherAvatar"];
-    self.teacherName = [json ks_stringValueForKey:@"teacherName"];
-    self.liveDescMessage = [json ks_stringValueForKey:@"liveDescMessage"];
-    
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:CHATSHARE:LIVE";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-    return @[@"直播分享"];
-}
-
-- (NSString *)conversationDigest {
-    return @"[直播分享]";
-}
-
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_ISCOUNTED;
-}
-
-@end

+ 0 - 31
KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatMusicMessage.h

@@ -1,31 +0,0 @@
-//
-//  KSChatMusicMessage.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/// 分享的曲谱消息
-@interface KSChatMusicMessage : RCMessageContent
-
-@property (nonatomic, strong) NSString *songName;
-
-@property (nonatomic, strong) NSString *chargeType;
-
-@property (nonatomic, strong) NSString *songAuth;
-
-@property (nonatomic, strong) NSString *teacherAvatar;
-
-@property (nonatomic, strong) NSString *teacherName;
-
-@property (nonatomic, strong) NSString *musicTagNames;
-
-@property (nonatomic, strong) NSString *songId;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 90
KulexiuForStudent/KulexiuForStudent/Module/Chat/Model/KSChatMusicMessage.m

@@ -1,90 +0,0 @@
-//
-//  KSChatMusicMessage.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import "KSChatMusicMessage.h"
-
-@implementation KSChatMusicMessage
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.songName) {
-        [multableDict setObject:self.songName forKey:@"songName"];
-    } else {
-        [multableDict setObject:@"" forKey:@"songName"];
-    }
-    
-    if (self.chargeType) {
-        [multableDict setObject:self.chargeType forKey:@"chargeType"];
-    } else {
-        [multableDict setObject:@"" forKey:@"chargeType"];
-    }
-    
-    if (self.songAuth) {
-        [multableDict setObject:self.songAuth forKey:@"songAuth"];
-    } else {
-        [multableDict setObject:@"" forKey:@"songAuth"];
-    }
-    
-    if (self.teacherAvatar) {
-        [multableDict setObject:self.teacherAvatar forKey:@"teacherAvatar"];
-    } else {
-        [multableDict setObject:@"" forKey:@"teacherAvatar"];
-    }
-    if (self.teacherName) {
-        [multableDict setObject:self.teacherName forKey:@"teacherName"];
-    } else {
-        [multableDict setObject:@"" forKey:@"teacherName"];
-    }
-    
-    if (self.musicTagNames) {
-        [multableDict setObject:self.musicTagNames forKey:@"musicTagNames"];
-    } else {
-        [multableDict setObject:@"" forKey:@"musicTagNames"];
-    }
-    
-    if (self.songId) {
-        [multableDict setObject:self.songId forKey:@"songId"];
-    } else {
-        [multableDict setObject:@"" forKey:@"songId"];
-    }
-    
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    
-    self.songName = [json ks_stringValueForKey:@"songName"];
-    self.teacherAvatar = [json ks_stringValueForKey:@"teacherAvatar"];
-    self.teacherName = [json ks_stringValueForKey:@"teacherName"];
-    self.chargeType = [json ks_stringValueForKey:@"chargeType"];
-    self.songAuth = [json ks_stringValueForKey:@"songAuth"];
-    self.musicTagNames = [json ks_stringValueForKey:@"musicTagNames"];
-    self.songId = [json ks_stringValueForKey:@"songId"];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:CHATSHARE:MUSIC";
-}
-
-
-- (NSArray<NSString *> *)getSearchableWords {
-    return @[@"曲谱分享"];
-}
-
-- (NSString *)conversationDigest {
-    return @"[曲谱分享]";
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_ISCOUNTED;
-}
-
-@end

+ 0 - 16
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListCell.h

@@ -1,16 +0,0 @@
-//
-//  KSChatListCell.h
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/17.
-//
-
-#import <RongIMKit/RongIMKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSChatListCell : RCConversationBaseCell
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 23
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListCell.m

@@ -1,23 +0,0 @@
-//
-//  KSChatListCell.m
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/17.
-//
-
-#import "KSChatListCell.h"
-
-@implementation KSChatListCell
-
-- (void)awakeFromNib {
-    [super awakeFromNib];
-    // Initialization code
-}
-
-- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
-    [super setSelected:selected animated:animated];
-
-    // Configure the view for the selected state
-}
-
-@end

+ 0 - 17
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatLiveShareCell.h

@@ -1,17 +0,0 @@
-//
-//  KSChatLiveShareCell.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import <RongIMKit/RongIMKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-
-@interface KSChatLiveShareCell : RCMessageBaseCell
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 90
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatLiveShareCell.m

@@ -1,90 +0,0 @@
-//
-//  KSChatLiveShareCell.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import "KSChatLiveShareCell.h"
-#import "KSChatLiveMessage.h"
-#import "ShareLiveCellContentView.h"
-
-#define SHARELIVEWIDTH (260)
-@interface KSChatLiveShareCell ()
-
-@property (nonatomic, strong) ShareLiveCellContentView *liveContentView;
-
-@end
-
-
-@implementation KSChatLiveShareCell
-
-+ (CGSize)sizeForMessageModel:(RCMessageModel *)model withCollectionViewWidth:(CGFloat)collectionViewWidth referenceExtraHeight:(CGFloat)extraHeight {
-
-    if ([model.content isKindOfClass:[KSChatLiveMessage class]]) {
-        KSChatLiveMessage *liveShareMsg = (KSChatLiveMessage *)model.content;
-
-        if (![NSString isEmptyString:liveShareMsg.liveDescMessage]) {
-            NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
-            [paragraphStyle setLineSpacing:4];//调整行间距
-            
-            CGFloat height = [liveShareMsg.liveDescMessage boundingRectWithSize:CGSizeMake(SHARELIVEWIDTH, CGFLOAT_MAX) options:(NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:14.0f],NSForegroundColorAttributeName:HexRGB(0x666666)} context:nil].size.height + 6;
-            CGFloat contentHeight = height + 123 + 20;
-            return CGSizeMake(collectionViewWidth, contentHeight + extraHeight);
-        }
-        else {
-            return CGSizeMake(collectionViewWidth, 123 + 20 + extraHeight);
-        }
-        
-    }
-    
-    return CGSizeZero;
-}
-
-- (instancetype)initWithFrame:(CGRect)frame {
-    self = [super initWithFrame:frame];
-    if (self) {
-        [self configUI];
-    }
-    return self;
-}
-
-- (void)configUI {
-    [self.baseContentView addSubview:self.liveContentView];
-    [self.liveContentView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(self.baseContentView.mas_left);
-        make.top.mas_equalTo(self.baseContentView.mas_top).offset(10);
-        make.width.mas_equalTo(KPortraitWidth);
-        make.bottom.mas_equalTo(self.baseContentView.mas_bottom).offset(-10);
-    }];
-}
-
-- (ShareLiveCellContentView *)liveContentView {
-    if (!_liveContentView) {
-        _liveContentView = [ShareLiveCellContentView shareIntance];
-        UITapGestureRecognizer *tap =
-            [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapMessageContentView)];
-        tap.numberOfTapsRequired = 1;
-        tap.numberOfTouchesRequired = 1;
-        [_liveContentView addGestureRecognizer:tap];
-        _liveContentView.userInteractionEnabled = YES;
-    }
-    return _liveContentView;
-}
-
-- (void)didTapMessageContentView{
-    if (self.delegate && [self.delegate respondsToSelector:@selector(didTapMessageCell:)]) {
-        [self.delegate didTapMessageCell:self.model];
-    }
-}
-
-- (void)setDataModel:(RCMessageModel *)model {
-    [super setDataModel:model];
-    if ([model.content isKindOfClass:[KSChatLiveMessage class]]) {
-        KSChatLiveMessage *liveShareMsg = (KSChatLiveMessage *)model.content;
-        [self.liveContentView configCellWithShareAvatar:liveShareMsg.teacherAvatar teacherName:liveShareMsg.teacherName liveDesc:liveShareMsg.liveDescMessage];
-    }
-}
-
-
-@end

+ 0 - 16
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatMusicShareCell.h

@@ -1,16 +0,0 @@
-//
-//  KSChatMusicShareCell.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import <RongIMKit/RongIMKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSChatMusicShareCell : RCMessageBaseCell
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 74
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatMusicShareCell.m

@@ -1,74 +0,0 @@
-//
-//  KSChatMusicShareCell.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import "KSChatMusicShareCell.h"
-#import "ShareMusicCellContentView.h"
-#import "KSChatMusicMessage.h"
-
-#define SHAREMUDICWIDTH (260)
-
-@interface KSChatMusicShareCell ()
-
-@property (nonatomic, strong) ShareMusicCellContentView *musicContentView;
-
-@end
-
-@implementation KSChatMusicShareCell
-
-+ (CGSize)sizeForMessageModel:(RCMessageModel *)model withCollectionViewWidth:(CGFloat)collectionViewWidth referenceExtraHeight:(CGFloat)extraHeight {
-    if ([model.content isKindOfClass:[KSChatMusicMessage class]]) {
-        return CGSizeMake(collectionViewWidth, 100 + 20 + extraHeight);
-    }
-    return CGSizeZero;
-}
-
-- (instancetype)initWithFrame:(CGRect)frame {
-    self = [super initWithFrame:frame];
-    if (self) {
-        [self configUI];
-    }
-    return self;
-}
-
-- (void)configUI {
-    [self.baseContentView addSubview:self.musicContentView];
-    [self.musicContentView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(self.baseContentView.mas_left);
-        make.top.mas_equalTo(self.baseContentView.mas_top).offset(10);
-        make.width.mas_equalTo(KPortraitWidth);
-        make.bottom.mas_equalTo(self.baseContentView.mas_bottom).offset(-10);
-    }];
-}
-
-- (ShareMusicCellContentView *)musicContentView {
-    if (!_musicContentView) {
-        _musicContentView = [ShareMusicCellContentView shareInstance];
-        UITapGestureRecognizer *tap =
-            [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapMessageContentView)];
-        tap.numberOfTapsRequired = 1;
-        tap.numberOfTouchesRequired = 1;
-        [_musicContentView addGestureRecognizer:tap];
-        _musicContentView.userInteractionEnabled = YES;
-    }
-    return _musicContentView;
-}
-
-- (void)didTapMessageContentView{
-    if (self.delegate && [self.delegate respondsToSelector:@selector(didTapMessageCell:)]) {
-        [self.delegate didTapMessageCell:self.model];
-    }
-}
-
-- (void)setDataModel:(RCMessageModel *)model {
-    [super setDataModel:model];
-    if ([model.content isKindOfClass:[KSChatMusicMessage class]]) {
-        KSChatMusicMessage *musicShareMsg = (KSChatMusicMessage *)model.content;
-        [self.musicContentView configWithSongName:musicShareMsg.songName type:musicShareMsg.chargeType authName:musicShareMsg.songAuth sendAvatar:musicShareMsg.teacherAvatar sendName:musicShareMsg.teacherName userId:model.senderUserId tags:musicShareMsg.musicTagNames];
-    }
-}
-
-@end

+ 0 - 20
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareLiveCellContentView.h

@@ -1,20 +0,0 @@
-//
-//  ShareLiveCellContentView.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ShareLiveCellContentView : UIView
-
-+ (instancetype)shareIntance;
-
-- (void)configCellWithShareAvatar:(NSString *)avatar teacherName:(NSString *)teacherName liveDesc:(NSString *)desc;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 53
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareLiveCellContentView.m

@@ -1,53 +0,0 @@
-//
-//  ShareLiveCellContentView.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import "ShareLiveCellContentView.h"
-
-@interface ShareLiveCellContentView ()
-
-@property (weak, nonatomic) IBOutlet UIImageView *teacherAvatar;
-
-@property (weak, nonatomic) IBOutlet UILabel *descLabel;
-
-@property (weak, nonatomic) IBOutlet UILabel *waitDesc;
-
-@property (weak, nonatomic) IBOutlet UIImageView *teacher_info;
-
-@end
-
-@implementation ShareLiveCellContentView
-
-
-+ (instancetype)shareIntance {
-    ShareLiveCellContentView *view = [[[NSBundle mainBundle] loadNibNamed:@"ShareLiveCellContentView" owner:nil options:nil] firstObject];
-    return view;
-}
-
-- (void)configCellWithShareAvatar:(NSString *)avatar teacherName:(NSString *)teacherName liveDesc:(NSString *)desc {
-    [self.teacherAvatar sd_setImageWithURL:[NSURL URLWithString:[avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-    self.waitDesc.text = [NSString stringWithFormat:@"%@在直播间等你哦~",[NSString returnNoNullStringWithString:teacherName]];
-    if (![NSString isEmptyString:desc]) {
-        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
-        [paragraphStyle setLineSpacing:4];//调整行间距
-        NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:desc attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:14.0f],NSForegroundColorAttributeName:HexRGB(0x666666)}];
-        self.descLabel.attributedText = attr;
-    }
-    else {
-        self.descLabel.text = @"";
-    }
-    [self.teacher_info sd_setImageWithURL:[NSURL URLWithString:[avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"user_avatarRectangle"]];
-}
-
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 0 - 210
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareLiveCellContentView.xib

@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
-    <device id="retina6_1" orientation="portrait" appearance="light"/>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
-        <capability name="System colors in document resources" minToolsVersion="11.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="ShareLiveCellContentView">
-            <rect key="frame" x="0.0" y="0.0" width="441" height="161"/>
-            <autoresizingMask key="autoresizingMask"/>
-            <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yd2-ur-hRq">
-                    <rect key="frame" x="84" y="0.0" width="260" height="161"/>
-                    <subviews>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i7L-q9-DkS">
-                            <rect key="frame" x="14" y="11" width="44" height="44"/>
-                            <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="SJI-XW-kBi">
-                                    <rect key="frame" x="1" y="1" width="42" height="42"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="42" id="hzs-OV-n8V"/>
-                                        <constraint firstAttribute="width" constant="42" id="mnP-CZ-GcR"/>
-                                    </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                            <real key="value" value="21"/>
-                                        </userDefinedRuntimeAttribute>
-                                    </userDefinedRuntimeAttributes>
-                                </imageView>
-                            </subviews>
-                            <color key="backgroundColor" red="1" green="0.2627450980392157" blue="0.27843137254901962" alpha="1" colorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="44" id="as0-3u-z2A"/>
-                                <constraint firstAttribute="height" constant="44" id="dt3-Pn-jn6"/>
-                                <constraint firstItem="SJI-XW-kBi" firstAttribute="centerY" secondItem="i7L-q9-DkS" secondAttribute="centerY" id="rfK-n7-KD4"/>
-                                <constraint firstItem="SJI-XW-kBi" firstAttribute="centerX" secondItem="i7L-q9-DkS" secondAttribute="centerX" id="x8L-Z1-Ecw"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="22"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nVS-My-ja2">
-                            <rect key="frame" x="19" y="47" width="34" height="16"/>
-                            <subviews>
-                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i9b-Bo-Mcm">
-                                    <rect key="frame" x="2" y="2" width="30" height="12"/>
-                                    <subviews>
-                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="smH-qK-pMg">
-                                            <rect key="frame" x="3" y="1" width="25" height="10"/>
-                                            <fontDescription key="fontDescription" type="system" pointSize="8"/>
-                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                            <nil key="highlightedColor"/>
-                                        </label>
-                                    </subviews>
-                                    <color key="backgroundColor" red="1" green="0.2627450980392157" blue="0.27843137254901962" alpha="1" colorSpace="calibratedRGB"/>
-                                    <constraints>
-                                        <constraint firstItem="smH-qK-pMg" firstAttribute="top" secondItem="i9b-Bo-Mcm" secondAttribute="top" constant="1" id="0yR-Bx-m8w"/>
-                                        <constraint firstAttribute="bottom" secondItem="smH-qK-pMg" secondAttribute="bottom" constant="1" id="8nd-6V-YQ0"/>
-                                        <constraint firstAttribute="trailing" secondItem="smH-qK-pMg" secondAttribute="trailing" constant="2" id="dUf-8K-nG7"/>
-                                        <constraint firstItem="smH-qK-pMg" firstAttribute="leading" secondItem="i9b-Bo-Mcm" secondAttribute="leading" constant="3" id="dZo-Fp-1MT"/>
-                                    </constraints>
-                                    <userDefinedRuntimeAttributes>
-                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                            <real key="value" value="6"/>
-                                        </userDefinedRuntimeAttribute>
-                                    </userDefinedRuntimeAttributes>
-                                </view>
-                            </subviews>
-                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
-                            <constraints>
-                                <constraint firstAttribute="trailing" secondItem="i9b-Bo-Mcm" secondAttribute="trailing" constant="2" id="Nd4-fl-dDI"/>
-                                <constraint firstAttribute="bottom" secondItem="i9b-Bo-Mcm" secondAttribute="bottom" constant="2" id="YzH-rB-oco"/>
-                                <constraint firstItem="i9b-Bo-Mcm" firstAttribute="leading" secondItem="nVS-My-ja2" secondAttribute="leading" constant="2" id="vTf-0X-25S"/>
-                                <constraint firstItem="i9b-Bo-Mcm" firstAttribute="top" secondItem="nVS-My-ja2" secondAttribute="top" constant="2" id="wU8-ms-ndC"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="8"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uCK-Sj-epF">
-                            <rect key="frame" x="0.0" y="110.5" width="260" height="1"/>
-                            <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="1" id="FCb-FT-oRr"/>
-                            </constraints>
-                        </view>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="「正在直播」" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lRu-JH-qsz">
-                            <rect key="frame" x="65" y="13" width="86" height="20"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="20" id="MJo-99-Md0"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mG8-MH-eZ7">
-                            <rect key="frame" x="12" y="63" width="236" height="37.5"/>
-                            <attributedString key="attributedText">
-                                <fragment content="李老师带您0基础学习竖笛,通过4节课的学习掌握竖笛演奏方法">
-                                    <attributes>
-                                        <color key="NSColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
-                                        <font key="NSFont" metaFont="system" size="14"/>
-                                        <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" lineSpacing="4" tighteningFactorForTruncation="0.0"/>
-                                    </attributes>
-                                </fragment>
-                            </attributedString>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="进入直播间" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zel-fE-reB">
-                            <rect key="frame" x="91.5" y="126.5" width="77" height="21"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="21" id="fw0-Ob-WCC"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
-                            <color key="textColor" red="1" green="0.26274509800000001" blue="0.2784313725" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="李老师在直播间等你哦~" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="q2Q-aP-HCM">
-                            <rect key="frame" x="65" y="34" width="183" height="20"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="20" id="4zg-Ey-6Dc"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
-                            <color key="textColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                    </subviews>
-                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    <constraints>
-                        <constraint firstItem="q2Q-aP-HCM" firstAttribute="top" secondItem="lRu-JH-qsz" secondAttribute="bottom" constant="1" id="1ji-F3-28U"/>
-                        <constraint firstItem="mG8-MH-eZ7" firstAttribute="top" secondItem="i7L-q9-DkS" secondAttribute="bottom" constant="8" id="5iK-WB-dYf"/>
-                        <constraint firstItem="zel-fE-reB" firstAttribute="centerX" secondItem="yd2-ur-hRq" secondAttribute="centerX" id="9qH-U8-bM3"/>
-                        <constraint firstAttribute="trailing" secondItem="q2Q-aP-HCM" secondAttribute="trailing" constant="12" id="AGB-7W-6s4"/>
-                        <constraint firstAttribute="trailing" secondItem="uCK-Sj-epF" secondAttribute="trailing" id="AtA-p0-sJ1"/>
-                        <constraint firstAttribute="width" constant="260" id="DcA-h7-TGL"/>
-                        <constraint firstAttribute="trailing" secondItem="mG8-MH-eZ7" secondAttribute="trailing" constant="12" id="KHL-Xm-Tlh"/>
-                        <constraint firstItem="uCK-Sj-epF" firstAttribute="top" secondItem="mG8-MH-eZ7" secondAttribute="bottom" constant="10" id="M2i-uI-GPi"/>
-                        <constraint firstItem="zel-fE-reB" firstAttribute="top" secondItem="uCK-Sj-epF" secondAttribute="bottom" constant="15" id="NeP-Gr-HjR"/>
-                        <constraint firstItem="i7L-q9-DkS" firstAttribute="leading" secondItem="yd2-ur-hRq" secondAttribute="leading" constant="14" id="Otc-aM-Gy0"/>
-                        <constraint firstItem="nVS-My-ja2" firstAttribute="centerY" secondItem="i7L-q9-DkS" secondAttribute="bottom" id="OwT-5v-Cex"/>
-                        <constraint firstItem="q2Q-aP-HCM" firstAttribute="leading" secondItem="lRu-JH-qsz" secondAttribute="leading" id="QD0-ob-6k3"/>
-                        <constraint firstItem="lRu-JH-qsz" firstAttribute="leading" secondItem="i7L-q9-DkS" secondAttribute="trailing" constant="7" id="ULA-Rm-7MU"/>
-                        <constraint firstItem="i7L-q9-DkS" firstAttribute="top" secondItem="yd2-ur-hRq" secondAttribute="top" constant="11" id="a5i-8B-yKv"/>
-                        <constraint firstItem="mG8-MH-eZ7" firstAttribute="leading" secondItem="yd2-ur-hRq" secondAttribute="leading" constant="12" id="alk-FH-P8t"/>
-                        <constraint firstItem="nVS-My-ja2" firstAttribute="centerX" secondItem="i7L-q9-DkS" secondAttribute="centerX" id="iE1-cj-GX9"/>
-                        <constraint firstItem="lRu-JH-qsz" firstAttribute="top" secondItem="i7L-q9-DkS" secondAttribute="top" constant="2" id="taa-i9-ai0"/>
-                        <constraint firstItem="uCK-Sj-epF" firstAttribute="leading" secondItem="yd2-ur-hRq" secondAttribute="leading" id="u3b-aH-cbd"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="10"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </view>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_avatarRectangle" translatesAutoresizingMaskIntoConstraints="NO" id="gSu-yX-K9X">
-                    <rect key="frame" x="14" y="0.0" width="40" height="40"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="40" id="0EV-n1-hvY"/>
-                        <constraint firstAttribute="height" constant="40" id="T7L-RF-8bB"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="4"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </imageView>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chat_talentTag" translatesAutoresizingMaskIntoConstraints="NO" id="VIe-sF-XAw">
-                    <rect key="frame" x="14" y="27" width="40" height="13"/>
-                </imageView>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-            <constraints>
-                <constraint firstItem="gSu-yX-K9X" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="7t6-aT-d6Z"/>
-                <constraint firstItem="yd2-ur-hRq" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="K8Q-lg-bH5"/>
-                <constraint firstItem="VIe-sF-XAw" firstAttribute="bottom" secondItem="gSu-yX-K9X" secondAttribute="bottom" id="ZDk-tE-Bn1"/>
-                <constraint firstItem="yd2-ur-hRq" firstAttribute="leading" secondItem="gSu-yX-K9X" secondAttribute="trailing" constant="30" id="jfK-m2-EUj"/>
-                <constraint firstItem="gSu-yX-K9X" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="mo9-mn-GBo"/>
-                <constraint firstAttribute="bottom" secondItem="yd2-ur-hRq" secondAttribute="bottom" id="uhj-Y8-HNb"/>
-                <constraint firstItem="VIe-sF-XAw" firstAttribute="centerX" secondItem="gSu-yX-K9X" secondAttribute="centerX" id="xMw-6H-OQN"/>
-            </constraints>
-            <nil key="simulatedTopBarMetrics"/>
-            <nil key="simulatedBottomBarMetrics"/>
-            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-            <connections>
-                <outlet property="descLabel" destination="mG8-MH-eZ7" id="wsa-O9-VBC"/>
-                <outlet property="teacherAvatar" destination="SJI-XW-kBi" id="KNc-50-GWC"/>
-                <outlet property="teacher_info" destination="gSu-yX-K9X" id="G0M-44-is1"/>
-                <outlet property="waitDesc" destination="q2Q-aP-HCM" id="VLq-wX-8Sa"/>
-            </connections>
-            <point key="canvasLocation" x="132.60869565217394" y="-180.46875"/>
-        </view>
-    </objects>
-    <resources>
-        <image name="chat_talentTag" width="40" height="13"/>
-        <image name="user_avatarRectangle" width="44" height="44"/>
-        <image name="user_default_avatal" width="52" height="52"/>
-        <systemColor name="systemBackgroundColor">
-            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-        </systemColor>
-    </resources>
-</document>

+ 0 - 20
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareMusicCellContentView.h

@@ -1,20 +0,0 @@
-//
-//  ShareMusicCellContentView.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ShareMusicCellContentView : UIView
-
-+ (instancetype)shareInstance;
-
-- (void)configWithSongName:(NSString *)songName type:(NSString *)type authName:(NSString *)authName sendAvatar:(NSString *)sendAvatar sendName:(NSString *)sendName userId:(NSString *)userId tags:(NSString *)tags;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 113
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareMusicCellContentView.m

@@ -1,113 +0,0 @@
-//
-//  ShareMusicCellContentView.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/8.
-//
-
-#import "ShareMusicCellContentView.h"
-
-@interface ShareMusicCellContentView ()
-
-@property (weak, nonatomic) IBOutlet UILabel *songName;
-@property (weak, nonatomic) IBOutlet UILabel *songAuth;
-
-@property (weak, nonatomic) IBOutlet UIImageView *uploaderLogo;
-@property (weak, nonatomic) IBOutlet UILabel *uploaderName;
-@property (weak, nonatomic) IBOutlet UIImageView *typeImage;
-@property (weak, nonatomic) IBOutlet UIView *tagView;
-
-@property (weak, nonatomic) IBOutlet UIImageView *teacher_info;
-
-@end
-
-@implementation ShareMusicCellContentView
-
-+ (instancetype)shareInstance {
-    ShareMusicCellContentView *view = [[[NSBundle mainBundle] loadNibNamed:@"ShareMusicCellContentView" owner:nil options:nil] firstObject];
-    return view;
-}
-
-- (void)configWithSongName:(NSString *)songName type:(NSString *)type authName:(NSString *)authName sendAvatar:(NSString *)sendAvatar sendName:(NSString *)sendName userId:(NSString *)userId tags:(NSString *)tags {
-    self.songName.text = [NSString returnNoNullStringWithString:songName];
-    self.songAuth.text = [NSString returnNoNullStringWithString:authName];
-    NSArray *tagArray = [tags componentsSeparatedByString:@","];
-    NSString *owner = @"";
-    if ([NSString isEmptyString:sendName]) {
-        owner = [NSString stringWithFormat:@"游客%@",userId];
-    }
-    else {
-        owner = sendName;
-    }
-    CGFloat maxWidth = [self getTagViewMaxWidth:owner];
-    [self configTagViewWithTagArray:tagArray maxWidth:maxWidth];
-    NSString *typeImgName = @"";
-    if ([type isEqualToString:@"VIP"]) {
-        typeImgName = @"music_vip";
-    }
-    else if ([type isEqualToString:@"CHARGE"]) {
-        typeImgName = @"music_order";
-    }
-    else {
-        typeImgName = @"music_free";
-    }
-    [self.typeImage setImage:[UIImage imageNamed:typeImgName]];
-    
-    self.uploaderName.text = [NSString returnNoNullStringWithString:owner];
-    [self.uploaderLogo sd_setImageWithURL:[NSURL URLWithString:[sendAvatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-}
-
-- (CGFloat)getTagViewMaxWidth:(NSString *)teacherName {
-    CGFloat width = [self getStringWidthInLabel:teacherName font:[UIFont systemFontOfSize:12.0f]];
-    return 260 - 45  - 10 - 14 - width - 8;
-}
-
-- (void)configTagViewWithTagArray:(NSArray *)tagArray maxWidth:(CGFloat)maxWidth {
-    [self.tagView removeAllSubViews];
-    CGFloat width = maxWidth;
-    CGFloat xSpace = 0.0f;
-    for (NSInteger i = 0; i < tagArray.count; i++) {
-        NSString *tagString = tagArray[i];
-        CGFloat labelWidth = [self getStringWidthInLabel:tagString font:[UIFont systemFontOfSize:11.0f]];
-        CGFloat viewWidth = labelWidth + 8;
-        if (xSpace + viewWidth > width) {
-            return;
-        }
-        CGRect frame = CGRectMake(xSpace, 0, viewWidth, 16.0f);
-        [self createTagLabelViewWithName:tagString frame:frame];
-        xSpace += (viewWidth + 6);
-    }
-}
-
-- (CGFloat)getStringWidthInLabel:(NSString *)tagString font:(UIFont *)font {
-    CGFloat width = [tagString boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, 16.0f) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size.width+1;
-    return width;
-}
-
-- (void)createTagLabelViewWithName:(NSString *)name frame:(CGRect)frame {
-    UIView *bgView = [[UIView alloc] initWithFrame:frame];
-    bgView.backgroundColor = HexRGB(0xfff1de);
-    bgView.layer.cornerRadius = 4.0f;
-    [self.tagView addSubview:bgView];
-    
-    UILabel *tagLabel = [[UILabel alloc] init];
-    tagLabel.text = name;
-    tagLabel.textColor = HexRGB(0xff8c00);
-    tagLabel.font = [UIFont systemFontOfSize:11.0f];
-    tagLabel.textAlignment = NSTextAlignmentCenter;
-    [bgView addSubview:tagLabel];
-    [tagLabel mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(bgView.mas_left).offset(4);
-        make.right.mas_equalTo(bgView.mas_right).offset(-4);
-        make.top.bottom.mas_equalTo(bgView);
-    }];
-}
-/*
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect {
-    // Drawing code
-}
-*/
-
-@end

+ 0 - 165
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ShareMusicCellContentView.xib

@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
-    <device id="retina6_1" orientation="portrait" appearance="light"/>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
-        <capability name="System colors in document resources" minToolsVersion="11.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="ShareMusicCellContentView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
-            <autoresizingMask key="autoresizingMask"/>
-            <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UDH-9B-8f6">
-                    <rect key="frame" x="84" y="0.0" width="260" height="100"/>
-                    <subviews>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="music_logo" translatesAutoresizingMaskIntoConstraints="NO" id="TNu-dS-bgv">
-                            <rect key="frame" x="11" y="10" width="41" height="40"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="41" id="9rc-yn-MaD"/>
-                                <constraint firstAttribute="height" constant="40" id="vif-5F-f05"/>
-                            </constraints>
-                        </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="野蜂飞舞" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qBn-Vj-IOu">
-                            <rect key="frame" x="58" y="10" width="57.5" height="20"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="20" id="wxA-Zh-cwI"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="14"/>
-                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="尼古拉·里姆斯基-科萨科夫" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g3o-nG-BQH">
-                            <rect key="frame" x="58" y="33" width="192" height="17"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="17" id="nt0-PF-oRj"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                            <color key="textColor" red="0.41568627450000001" green="0.41568627450000001" blue="0.41568627450000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aOo-WP-h3g">
-                            <rect key="frame" x="10" y="60" width="240" height="1"/>
-                            <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="1" id="EyP-io-cfT"/>
-                            </constraints>
-                        </view>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="usw-H3-UWY">
-                            <rect key="frame" x="18" y="69" width="20" height="20"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="20" id="5H6-zu-zp2"/>
-                                <constraint firstAttribute="width" constant="20" id="JKy-Fk-af3"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="10"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZFp-lo-yiU">
-                            <rect key="frame" x="45" y="71.5" width="37" height="15"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gWr-Wd-yEt">
-                            <rect key="frame" x="90" y="71" width="160" height="16"/>
-                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="16" id="8gf-Gn-22x"/>
-                            </constraints>
-                        </view>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="music_free" translatesAutoresizingMaskIntoConstraints="NO" id="4bk-5v-taM">
-                            <rect key="frame" x="119.5" y="9" width="55" height="22"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="22" id="Fyr-Ql-elB"/>
-                                <constraint firstAttribute="width" constant="55" id="W3M-P5-WO2"/>
-                            </constraints>
-                        </imageView>
-                    </subviews>
-                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    <constraints>
-                        <constraint firstItem="qBn-Vj-IOu" firstAttribute="top" secondItem="TNu-dS-bgv" secondAttribute="top" id="7cN-lD-IHi"/>
-                        <constraint firstAttribute="trailing" secondItem="aOo-WP-h3g" secondAttribute="trailing" constant="10" id="AeQ-pR-oLQ"/>
-                        <constraint firstItem="ZFp-lo-yiU" firstAttribute="centerY" secondItem="usw-H3-UWY" secondAttribute="centerY" id="DHU-OS-wY6"/>
-                        <constraint firstItem="TNu-dS-bgv" firstAttribute="top" secondItem="UDH-9B-8f6" secondAttribute="top" constant="10" id="LrD-NH-ECR"/>
-                        <constraint firstItem="4bk-5v-taM" firstAttribute="leading" secondItem="qBn-Vj-IOu" secondAttribute="trailing" constant="4" id="QGx-Jg-p2z"/>
-                        <constraint firstItem="aOo-WP-h3g" firstAttribute="leading" secondItem="UDH-9B-8f6" secondAttribute="leading" constant="10" id="QZX-qF-NSc"/>
-                        <constraint firstItem="usw-H3-UWY" firstAttribute="leading" secondItem="UDH-9B-8f6" secondAttribute="leading" constant="18" id="TIC-gZ-eds"/>
-                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="4bk-5v-taM" secondAttribute="trailing" constant="12" id="X8y-kD-r5h"/>
-                        <constraint firstAttribute="trailing" secondItem="gWr-Wd-yEt" secondAttribute="trailing" constant="10" id="ZAs-ed-MNp"/>
-                        <constraint firstItem="qBn-Vj-IOu" firstAttribute="leading" secondItem="TNu-dS-bgv" secondAttribute="trailing" constant="6" id="bPY-jM-HQ6"/>
-                        <constraint firstItem="gWr-Wd-yEt" firstAttribute="centerY" secondItem="ZFp-lo-yiU" secondAttribute="centerY" id="bgp-xc-7EQ"/>
-                        <constraint firstItem="TNu-dS-bgv" firstAttribute="leading" secondItem="UDH-9B-8f6" secondAttribute="leading" constant="11" id="cbA-O2-L9m"/>
-                        <constraint firstItem="gWr-Wd-yEt" firstAttribute="leading" secondItem="ZFp-lo-yiU" secondAttribute="trailing" constant="8" id="hdG-8S-k9I"/>
-                        <constraint firstItem="ZFp-lo-yiU" firstAttribute="leading" secondItem="usw-H3-UWY" secondAttribute="trailing" constant="7" id="k7W-aq-6G1"/>
-                        <constraint firstItem="g3o-nG-BQH" firstAttribute="leading" secondItem="qBn-Vj-IOu" secondAttribute="leading" id="lQ1-Hy-nCw"/>
-                        <constraint firstAttribute="trailing" secondItem="g3o-nG-BQH" secondAttribute="trailing" constant="10" id="viZ-YE-U3R"/>
-                        <constraint firstItem="g3o-nG-BQH" firstAttribute="top" secondItem="4bk-5v-taM" secondAttribute="bottom" constant="2" id="wxh-yd-weN"/>
-                        <constraint firstAttribute="width" constant="260" id="xRn-Do-4Vz"/>
-                        <constraint firstItem="usw-H3-UWY" firstAttribute="top" secondItem="aOo-WP-h3g" secondAttribute="bottom" constant="8" id="xpY-T2-5ut"/>
-                        <constraint firstItem="aOo-WP-h3g" firstAttribute="top" secondItem="TNu-dS-bgv" secondAttribute="bottom" constant="10" id="yji-eH-XQ7"/>
-                        <constraint firstItem="4bk-5v-taM" firstAttribute="centerY" secondItem="qBn-Vj-IOu" secondAttribute="centerY" id="yju-uN-yua"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="10"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </view>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_avatarRectangle" translatesAutoresizingMaskIntoConstraints="NO" id="P84-NW-Sav">
-                    <rect key="frame" x="14" y="0.0" width="40" height="40"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="40" id="XPk-Kv-NCK"/>
-                        <constraint firstAttribute="height" constant="40" id="vqV-sI-xZc"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="4"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </imageView>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="chat_talentTag" translatesAutoresizingMaskIntoConstraints="NO" id="X63-Z5-XIk">
-                    <rect key="frame" x="14" y="27" width="40" height="13"/>
-                </imageView>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-            <constraints>
-                <constraint firstItem="UDH-9B-8f6" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="OJt-lz-uN2"/>
-                <constraint firstItem="X63-Z5-XIk" firstAttribute="centerX" secondItem="P84-NW-Sav" secondAttribute="centerX" id="Sf3-UM-fib"/>
-                <constraint firstItem="P84-NW-Sav" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="YBF-NS-EjE"/>
-                <constraint firstAttribute="bottom" secondItem="UDH-9B-8f6" secondAttribute="bottom" id="iQY-mQ-cgC"/>
-                <constraint firstItem="UDH-9B-8f6" firstAttribute="leading" secondItem="P84-NW-Sav" secondAttribute="trailing" constant="30" id="jlg-BL-151"/>
-                <constraint firstItem="X63-Z5-XIk" firstAttribute="bottom" secondItem="P84-NW-Sav" secondAttribute="bottom" id="k5a-5q-tQM"/>
-                <constraint firstItem="P84-NW-Sav" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="xEF-rR-LNy"/>
-            </constraints>
-            <nil key="simulatedTopBarMetrics"/>
-            <nil key="simulatedBottomBarMetrics"/>
-            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-            <connections>
-                <outlet property="songAuth" destination="g3o-nG-BQH" id="0Yd-tt-hJi"/>
-                <outlet property="songName" destination="qBn-Vj-IOu" id="qwd-BR-Kwu"/>
-                <outlet property="tagView" destination="gWr-Wd-yEt" id="w3M-M0-9yI"/>
-                <outlet property="typeImage" destination="4bk-5v-taM" id="SNc-tt-EW2"/>
-                <outlet property="uploaderLogo" destination="usw-H3-UWY" id="ntN-vb-oOT"/>
-                <outlet property="uploaderName" destination="ZFp-lo-yiU" id="3gE-Pd-5Ia"/>
-            </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="-176.11607142857142"/>
-        </view>
-    </objects>
-    <resources>
-        <image name="chat_talentTag" width="40" height="13"/>
-        <image name="music_free" width="55" height="22"/>
-        <image name="music_logo" width="41" height="40"/>
-        <image name="user_avatarRectangle" width="44" height="44"/>
-        <image name="user_default_avatal" width="52" height="52"/>
-        <systemColor name="systemBackgroundColor">
-            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-        </systemColor>
-    </resources>
-</document>

+ 0 - 63
KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.h

@@ -1,63 +0,0 @@
-//
-//  LiveVideoRoomViewController.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "BaseViewController.h"
-#import <RongRTCLib/RongRTCLib.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface LiveVideoRoomViewController : BaseViewController
-
-/*!
- 加入的房间 ID
- */
-@property (nonatomic, strong) NSString *roomId;
-
-/*!
- 身份状态 老师/观众
- */
-@property (nonatomic, assign) RCRTCLiveRoleType liveRoleType;
-
-/// 老师id
-@property (nonatomic, strong) NSString *createrId;
-/// 老师名称
-@property (nonatomic, strong) NSString *createrName;
-/// 老师头像
-@property (nonatomic, strong) NSString *createrAvatal;
-
-@property (nonatomic, assign) NSInteger likeCount;
-
-/// 房间人数
-@property (nonatomic, assign) NSInteger totalCount;
-
-/// 是否临时房间
-@property (nonatomic, assign) BOOL isTempRoom;
-
-/// 直播课结束时间
-@property (nonatomic, strong) NSString *liveEndTime;
-
-/// 直播间自动关闭时间
-@property (nonatomic, assign) NSInteger expiredMinute;
-
-/// 是否在黑名单中
-@property (nonatomic, assign) BOOL blacklistFlag;
-
-@property (nonatomic, assign) BOOL hideCartButton;
-
-// 是否禁止连麦
-@property (nonatomic, assign) BOOL enableSeat;
-// 是否禁止聊天
-@property (nonatomic, assign) BOOL enableChat;
-// 是否允许点赞
-@property (nonatomic, assign) BOOL enableLike;
-
-
-- (void)quitAction;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 2491
KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m

@@ -1,2491 +0,0 @@
-//
-//  LiveVideoRoomViewController.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "LiveVideoRoomViewController.h"
-#import "KSChatInputBarControl.h"
-#import "LiveRoomHeadView.h"
-#import "LiveRoomBottomView.h"
-#import "KSRCMessageModel.h"
-#import "UserInfoManager.h"
-#import "KSChatroomMessageCenter.h"
-#import <RongIMKit/RongIMKit.h>
-#import "KSChatroomTextCell.h"
-
-#import "KSLiveStreamVideo.h"
-#import "SeatContentView.h"
-#import "LiveroomTimeManager.h"
-#import "KSLiveEmptyView.h"
-#import "KSChatVideoView.h"
-#import "LiveRoomLikeLayer.h"
-#import "KSDragWindowManager.h"
-
-#import "KSLiveBadNetView.h"
-#import <Lottie/Lottie.h>
-#import "KSShopCardView.h"
-#import "KSLiveWebViewController.h"
-
-#import "KSLiveEndView.h"
-#import "LiveAnimationView.h"
-
-#import "LiveRoomAlertView.h"
-#import "LiveApplyView.h"
-#import "LiveApplyingView.h"
-#import "ShareLiveDisplayView.h"
-
-
-#import "UIImage+KSScreenShot.h"
-#import "TZImageManager.h"
-#import "RecordCheckManager.h"
-#import "KSPremissionAlert.h"
-#import "KSUMShareManager.h"
-
-#define AUTOHIDE_TIME (10.0f)
-
-#define PACKAGE_LOST (0.30f)
-typedef NS_ENUM(NSInteger, MICSTATUS) {
-    MICSTATUS_NOMAL,      // 正常状态
-    MICSTATUS_WAITING,    // 申请中
-    MICSTATUS_CONNECTING, // 连麦中
-};
-
-@interface LiveVideoRoomViewController ()<RCRTCEngineEventDelegate,RCRTCRoomEventDelegate,RCRTCStatusReportDelegate,UIGestureRecognizerDelegate,KSChatInputBarControlDelegate,UITableViewDataSource,UITableViewDelegate,LiveroomTimeManagerDelegate>
-
-@property (nonatomic, strong) LiveroomTimeManager *timeManager;
-// 音频配置
-@property(strong, nonatomic) RCRTCEngine *engine;
-
-@property (nonatomic, strong) RCRTCRoom *room;
-
-@property (nonatomic, strong) KSLiveStreamVideo *localVideo;
-
-@property (nonatomic) NSMutableArray <KSLiveStreamVideo *>*streamVideos;
-
-// 视频主窗口容器
-@property (nonatomic, strong) UIView *videoContainerView;
-
-@property (nonatomic, strong) KSChatVideoView *videoView;
-
-@property (nonatomic, strong) LiveRoomHeadView *headView;
-
-@property (nonatomic, copy) LiveRoomBottomView *bottomView;
-/**
- 上次点赞按钮点击时间
- */
-@property(nonatomic, assign) NSTimeInterval lastClickPraiseTime;
-// 连麦状态
-@property (nonatomic, assign) MICSTATUS micStatus;
-/// 提示窗
-@property (nonatomic, strong) LiveRoomAlertView *alertView;
-/// 连麦的视图
-@property (nonatomic, strong) SeatContentView *seatContainer;
-// 聊天UI
-/*!
- 消息列表CollectionView和输入框都在这个view里
- */
-@property(nonatomic, strong) UIView *messageContentView;
-
-/*!
- 会话页面的TableView
- */
-@property (nonatomic, strong) UITableView *conversationMessageTableView;
-
-/**
- 输入工具栏
- */
-@property(nonatomic,strong) KSChatInputBarControl *inputBar;
-/**
- *  是否需要滚动到底部
- */
-@property(nonatomic, assign) BOOL isNeedScrollToButtom;
-
-/*!
- 聊天内容的消息Cell数据模型的数据源
- 
- @discussion 数据源中存放的元素为消息Cell的数据模型,即RCDLiveMessageModel对象。
- */
-@property(nonatomic, strong) NSMutableArray<KSRCMessageModel *> *conversationDataRepository;
-
-@property (nonatomic, assign) BOOL isImConnected;
-
-/// 老师是否在房间
-@property (nonatomic, assign) BOOL isCreaterInRoom;
-
-@property (nonatomic, assign) BOOL isCreaterVideoEnable;
-
-@property (nonatomic, assign) BOOL isCreaterAudioEnable;
-
-@property (nonatomic, strong) KSLiveEmptyView *emptyView;
-
-/// 是否在切换身份
-@property (nonatomic, assign) BOOL isTransferRole;
-
-@property (nonatomic, assign) BOOL hasSendWelcomeMessage;
-
-@property (nonatomic, assign) BOOL hasShowSuspendView;
-
-@property (nonatomic, assign) BOOL isPackageLostTips;
-
-@property (nonatomic, assign) NSTimeInterval lostStartTime; // 开始丢包事件
-
-@property (nonatomic, assign) NSTimeInterval bitErrorTime; // video bit zero start
-
-@property (nonatomic, strong) KSLiveBadNetView *netBadView;
-
-@property (nonatomic, assign) BOOL isLostPackage; // 严重丢包
-
-@property (nonatomic, assign) BOOL isBitError;  // bit error
-
-@property (nonatomic, strong) LOTAnimationView *animationView;
-
-@property (nonatomic, assign) BOOL isCloseRoom; // 是否直播结束
-
-@property (nonatomic, strong) KSLiveEndView *endView; // 直播结束显示的画面
-
-@property (nonatomic, strong) KSShopCardView *cardView;
-
-@property (nonatomic, strong) LiveAnimationView *enterAnimationView;
-
-@property (nonatomic, assign) NSTimeInterval lastSendMsgTime;
-
-@property (nonatomic, assign) BOOL isOtherLogin;  // 是否被顶掉
-
-@property (nonatomic, strong) LiveApplyView *applyView; // 未申请
- 
-@property (nonatomic, strong) LiveApplyingView *applyingView; // 申请中
-
-@property (nonatomic, assign) BOOL isPauseLive;
-
-@property (nonatomic, strong) ShareLiveDisplayView *shareView;
-
-@end
-
-//  用于记录点赞消息连续点击的次数
-static int clickPraiseBtnTimes  = 0;
-
-@implementation LiveVideoRoomViewController
-
-- (instancetype)init {
-    self = [super init];
-    if (self) {
-        [self defaultConfig];
-    }
-    return self;
-}
-
-- (void)defaultConfig {
-    self.enableChat = YES;
-    self.enableSeat = YES;
-    self.enableLike = YES;
-    self.micStatus = MICSTATUS_NOMAL;
-    self.isCreaterInRoom = NO; // 默认老师不在房间
-    self.isImConnected = [USER_MANAGER checkIMConnected];
-    self.isCloseRoom = NO;
-    self.isOtherLogin = NO;
-}
-
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    // Do any additional setup after loading the view.
-    self.ks_prefersNavigationBarHidden = YES;
-    [self registerNotification];
-    [self setupUI];
-    if (self.isImConnected) {
-        [self connectService];
-    }
-    else {
-        MJWeakSelf;
-        [USER_MANAGER connectionIMCallback:^(BOOL isSuccess) {
-            dispatch_main_async_safe(^{
-                [weakSelf connectService];
-            });
-        }];
-    }
-    [self countUMEvent];
-    [self judgeAutoClose];
-}
-
-- (void)countUMEvent {
-    [USER_MANAGER sendUMEvent:@"klx_live"];
-}
-
-- (void)muteAllAudio {
-    if (self.room) {
-        [self.room muteAllRemoteAudio:YES];
-    }
-}
-
-- (void)IMConnetedCallback {
-    dispatch_main_async_safe(^{
-        // IM 连接成功回调
-        if (self.hasSendWelcomeMessage) { // 如果已经发送了进入消息
-            // 查询是否直播间开启
-            [KSNetworkingManager liveRoomJoinRoomRequest:KS_GET roomUid:self.roomId success:^(NSDictionary * _Nonnull dic) {
-                if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-                    // 回调信息
-                    MJWeakSelf;
-                    [self notiferJoinSuccessToServiceCallback:^{
-                        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"IM连接成功"];
-                        [weakSelf sendWelcomeMessage];
-                    }];
-                }
-                else {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:MESSAGEKEY];
-                    [self quitRoom];
-                }
-            } faliure:^(NSError * _Nonnull error) {
-                
-            }];
-        }
-    });
-}
-
-
-- (void)sendWelcomeMessage {
-    [[RCIMClient sharedRCIMClient] joinExistChatRoom:self.roomId messageCount:-1 success:^{
-        KSLiveChatroomWelcome *joinChatroomMessage = [[KSLiveChatroomWelcome alloc] init];
-        [joinChatroomMessage setMsgId:[RCIM sharedRCIM].currentUserInfo.userId];
-        MJWeakSelf;
-        [self sendMessage:joinChatroomMessage displayMessage:NO callback:^(BOOL success) {
-            [weakSelf showEnterMessageAndJoinRTCRoom];
-        }];
-    } error:^(RCErrorCode status) {
-        NSLog(@"error code %zd" ,status);
-    }];
-}
-
-- (void)showEnterMessageAndJoinRTCRoom {
-    
-    NSString *contentString = [NSString stringWithFormat:@"%@ 进入直播间",UserDefault(NicknameKey)];
-    [self showAnimationView:YES showMessag:contentString];
-    [self joinRTCRoom];
-}
-
-- (void)leaveRTCRoomCallback:(void(^)(BOOL success))callback {
-    [[RCRTCEngine sharedInstance] leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        callback(isSuccess);
-    }];
-}
-
-- (void)joinRTCRoom {
-    
-    // 如果当前加入了房间 只刷新或者退出
-    if (self.room && self.liveRoleType == RCRTCLiveRoleTypeBroadcaster) {
-        [self connectHostWithStatus:NO];
-    }
-    else {
-        [self setRoleType];
-    }
-}
-
-- (void)judgeAutoClose {
-    if (self.isTempRoom == NO) {
-        self.timeManager.autoCloseNetworkRoomTime = [self getCloseTime];
-    }
-}
-
-- (void)liveroomLogOut {
-    if (self.isOtherLogin) {
-        return;
-    }
-    self.isOtherLogin = YES;
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"该账号在其他设备上登录"];
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        [self quitRoom];
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"liveroomBackRefresh" object:nil];
-    });
-}
-
-- (void)liveroomQuit {
-    if (self.isOtherLogin) {
-        return;
-    }
-    self.isOtherLogin = YES;
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        [self quitRoom];
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"liveroomBackRefresh" object:nil];
-    });
-}
-
-- (void)registerNotification {
-    [KSChatroomMessageCenter registerMessageTypes];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMessageNotification:) name:OnReceiveChatroomMessageNotification object:nil];
-    
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(liveroomLogOut) name:@"liveroomLogout" object:nil];
-    
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(liveroomQuit) name:@"liveroomQuit" object:nil];
-    
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(IMConnetedCallback) name:@"RongIMConnected" object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(muteAllAudio) name:@"muteLiveAudio" object:nil];
-}
-
-- (void)setupUI {
-    CGSize size = self.view.bounds.size;
-    self.view.backgroundColor = HexRGB(0x25292e);
-    
-    [self.view addSubview:self.emptyView];
-
-    [self.view addSubview:self.endView];
-    
-    // 视图主容器
-    [self.view addSubview:self.videoContainerView];
-    [self.videoContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.top.bottom.right.mas_equalTo(self.view);
-    }];
-    
-    [self.videoContainerView addSubview:self.videoView];
-    
-    [self.videoContainerView addSubview:self.netBadView];
-
-    [self.videoView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.top.bottom.right.mas_equalTo(self.view);
-    }];
-    
-    [self.emptyView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(self.videoView);
-    }];
-    self.emptyView.hidden = YES;
-    // 直播结束的画面
-    [self.endView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(self.videoView);
-    }];
-    self.endView.hidden = YES;
-    
-    [self.netBadView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(self.videoView);
-    }];
-    self.netBadView.hidden = YES;
-    
-    [self.view addSubview:self.headView];
-    self.headView.boardcastName.text = [NSString returnNoNullStringWithString:self.createrName];
-    if (![NSString isEmptyString:self.createrAvatal]) {
-        [self.headView.boardcastAvatal sd_setImageWithURL:[NSURL URLWithString:[self.createrAvatal getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"teacher_logo"]];
-    }
-    [self countLikeMessageCount];
-    [self countMemberCount];
-    [self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.view);
-        make.height.mas_equalTo(80);
-        if (@available(iOS 11.0, *)) {
-            make.top.mas_equalTo(self.view.mas_safeAreaLayoutGuideTop).offset(0);
-        } else {
-            // Fallback on earlier versions
-            make.top.mas_equalTo(self.view.mas_top).offset(0);
-        }
-    }];
-    [self.view addSubview:self.messageContentView];
-    
-    if (self.hideCartButton == NO) {
-        [self.videoContainerView addSubview:self.animationView];
-        [self.animationView mas_makeConstraints:^(MASConstraintMaker *make) {
-            if (@available(iOS 11.0, *)) {
-                make.bottom.mas_equalTo(self.videoContainerView.mas_safeAreaLayoutGuideBottom).offset(-14);
-            } else {
-                // Fallback on earlier versions
-                make.bottom.mas_equalTo(self.videoContainerView.mas_bottom).offset(-14);
-            }
-            make.centerX.mas_equalTo(self.videoContainerView.mas_right).offset(-84);
-            make.width.mas_equalTo(48);
-            make.height.mas_equalTo(56);
-        }];
-        [self.animationView play];
-    }
-    [self.view addSubview:self.bottomView];
-    self.bottomView.hideCartVButton = self.hideCartButton;
-    [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.view);
-        if (@available(iOS 11.0, *)) {
-            make.bottom.mas_equalTo(self.view.mas_safeAreaLayoutGuideBottom).offset(-10);
-        } else {
-            // Fallback on earlier versions
-            make.bottom.mas_equalTo(self.view.mas_bottom).offset(-10);
-        }
-        make.height.mas_equalTo(44);
-    }];
-    
-    [self.messageContentView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(self.view.mas_left);
-        make.right.mas_equalTo(self.view.mas_right);
-        make.bottom.mas_equalTo(self.bottomView.mas_top).offset(-10);
-        make.height.mas_equalTo(180);
-    }];
-    [self.view addSubview:self.inputBar];
-    [_inputBar setBackgroundColor: [UIColor whiteColor]];
-    
-    [_inputBar setFrame:CGRectMake(0, kScreenHeight, size.width , 50)];
-    [_inputBar setHidden:YES];
-    
-    [self.messageContentView addSubview:self.conversationMessageTableView];
-    [self.conversationMessageTableView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.top.mas_equalTo(self.messageContentView);
-        make.width.mas_equalTo(KPortraitWidth);
-        make.bottom.mas_equalTo(self.messageContentView.mas_bottom);
-    }];
-    
-    UITapGestureRecognizer *resetBottomTapGesture =[[UITapGestureRecognizer alloc]
-                                                    initWithTarget:self
-                                                    action:@selector(resetBottomGesture:)];
-    resetBottomTapGesture.delegate = self;
-    [self.view addGestureRecognizer:resetBottomTapGesture];
-    
-//    if (self.isTempRoom) {
-//        self.bottomView.hideShareButton = NO;
-//    }
-//    else {
-//        self.bottomView.hideShareButton = YES;
-//    }
-}
-
-- (void)connectService {
-    [self setRoleType];
-    [self joinChatRoom];
-}
-
-- (void)joinChatRoom {
-    [[RCIMClient sharedRCIMClient] joinChatRoom:self.roomId messageCount:-1 success:^{
-        dispatch_async(dispatch_get_main_queue(), ^{
-            [self addConstMessage];
-        });
-        KSLiveChatroomWelcome *joinChatroomMessage = [[KSLiveChatroomWelcome alloc] init];
-        [joinChatroomMessage setMsgId:[RCIM sharedRCIM].currentUserInfo.userId];
-        MJWeakSelf;
-        [self sendMessage:joinChatroomMessage displayMessage:NO callback:^(BOOL success) {
-            weakSelf.hasSendWelcomeMessage = YES;
-            NSString *contentString = [NSString stringWithFormat:@"%@ 进入直播间",UserDefault(NicknameKey)];;
-            [weakSelf showAnimationView:YES showMessag:contentString];
-        }];
-        // 加入成功发送消息
-    } error:^(RCErrorCode status) {
-        if (status == RC_CHATROOM_NOT_EXIST || status == KICKED_FROM_CHATROOM || status == RC_PARAMETER_INVALID_CHATROOM) {
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"加入聊天室失败"];
-            });
-        }
-    }];
-}
-
-- (void)viewWillAppear:(BOOL)animated {
-    [super viewWillAppear:animated];
-    [UIApplication sharedApplication].idleTimerDisabled = YES;
-    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;
-    [IQKeyboardManager sharedManager].enable = NO;
-    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
-    // 重新渲染view
-    KSDragWindowManager *manager = [KSDragWindowManager sharedManager];
-    if (manager.hasShowWindow) {
-        [manager resignDragWindow];
-    }
-    if (self.hasShowSuspendView) {
-        KSLiveStreamVideo *mainVideo = nil;
-        if (self.videoView.streamId) {
-            NSMutableArray *steamArray = [self.streamVideos mutableCopy];
-            for (KSLiveStreamVideo *streamVideo in steamArray) {
-                if ([streamVideo.streamId isEqualToString:self.videoView.streamId]) {
-                    mainVideo = streamVideo;
-                    break;
-                }
-            }
-        }
-        if (mainVideo) {
-            [self.videoView addSubview:mainVideo.canvesView];
-            [mainVideo.canvesView mas_updateConstraints:^(MASConstraintMaker *make) {
-                make.left.right.bottom.top.mas_equalTo(self.videoView);
-            }];
-        }
-        _hasShowSuspendView = NO;
-    }
-    if (self.room) {
-        [self.room muteAllRemoteAudio:NO];
-    }
-}
-
-- (void)viewWillDisappear:(BOOL)animated {
-    [super viewWillDisappear:animated];
-    [UIApplication sharedApplication].idleTimerDisabled = NO;
-    [IQKeyboardManager sharedManager].enableAutoToolbar = YES;
-    [IQKeyboardManager sharedManager].enable = YES;
-    if (@available(iOS 13.0, *)) {
-        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent;
-    } else {
-        // Fallback on earlier versions
-        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
-    }
-    
-    // 退出房间才停止定时器
-    if (_timeManager) {
-        [_timeManager stopDurationTimer];
-    }
-}
-
-// 刷新seatView
-- (void)renderSeatView {
-    
-    NSMutableArray *seatArray = [NSMutableArray array];
-    NSArray *remoteUserArray = [self.room.remoteUsers mutableCopy];
-    for (RCRTCRemoteUser *user in remoteUserArray) {
-        if (![user.userId isEqualToString:self.videoView.streamUserId] && ![user.userId isEqualToString:self.createrId] && ![user.userId containsString:@"rc_mc_"]) {
-            [seatArray addObject:user.userId];
-        }
-    }
-    if (self.micStatus == MICSTATUS_CONNECTING && ![seatArray containsObject:UserDefault(IM_USERID)]) {
-        [seatArray addObject:UserDefault(IM_USERID)];
-    }
-    
-    if (seatArray.count) {
-        if (![self.videoContainerView.subviews containsObject:self.seatContainer]) {
-            [self.videoContainerView addSubview:self.seatContainer];
-        }
-        [self updateSeatContainerConstraint];
-        
-        self.seatContainer.seatMemberArray = [NSMutableArray arrayWithArray:seatArray];
-        [self.seatContainer refreshSeatUI];
-    }
-    else {
-        [self removeSeatContainer];
-    }
-}
-
-- (void)updateSeatContainerConstraint {
-    [self.seatContainer mas_remakeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.videoContainerView);
-        make.top.mas_equalTo(self.headView.mas_bottom).offset(0);
-        make.height.mas_equalTo(70);
-    }];
-}
-
-// 移除连麦视图
-- (void)removeSeatContainer {
-    if ([self.videoContainerView.subviews containsObject:self.seatContainer]) {
-        [self.seatContainer removeFromSuperview];
-    }
-}
-
-- (void)countLikeMessageCount {
-    NSInteger count = self.likeCount;
-    NSString *desc = @"";
-    if (count > 10000) {
-        count = count / 10000;
-        desc = [NSString stringWithFormat:@"本场点赞%zd万+",count];
-    }
-    else {
-        desc = [NSString stringWithFormat:@"本场点赞%zd",count];
-    }
-    self.headView.likeCount.text = desc;
-}
-
-- (void)setRoleType {
-    self.micStatus = MICSTATUS_NOMAL;
-    [self hideApplyingView];
-    // 1.设置切换听筒为扬声器
-    [self.engine setDefaultAudioRouteToSpeaker:YES];
-    // 2.加入RTC房间
-    [self joinLiveRoom];
-}
-
-// 观众上下麦
-- (void)connectHostWithStatus:(BOOL)isConnect {
-
-    //  转换中,不再处理转换身份
-    if (self.isTransferRole) {
-        return;
-    }
-    // 如果需要切换的身份和当前身份相同 拦截
-    if (isConnect && self.liveRoleType == RCRTCLiveRoleTypeBroadcaster) {
-        return;
-    }
-    else if (isConnect == NO && self.liveRoleType == RCRTCLiveRoleTypeAudience) {
-        return;
-    }
-    self.isTransferRole = YES;
-    // 清理当前视图
-    [self removeSeatContainer];
-    [self clearVideoViewSource];
-    if (isConnect) {
-        // 开启麦克风采集
-        [self.engine.defaultAudioStream setMicrophoneDisable:NO];
-        NSArray *streams = @[self.engine.defaultAudioStream];
-        MJWeakSelf;
-        [self.room.localUser switchToBroadcaster:streams onSucceed:^(RCRTCLiveInfo * _Nonnull liveInfo) {
-            weakSelf.isTransferRole = NO;
-            dispatch_main_async_safe(^{
-                __strong typeof(weakSelf) strongSelf = weakSelf;
-
-                //3.切换成功, 订阅远端用户流
-                strongSelf.liveRoleType = RCRTCLiveRoleTypeBroadcaster;
-                NSMutableArray *streamArray = [NSMutableArray array];
-                NSArray *remoteUserArray = [strongSelf.room.remoteUsers mutableCopy];
-                for (RCRTCRemoteUser *user in remoteUserArray) {
-                    if (remoteUserArray.count) {
-                        [streamArray addObjectsFromArray:user.remoteStreams];
-                    }
-                }
-                if (streamArray.count) {
-                    [strongSelf subscribeRemoteResource:streamArray];
-                }
-                else {
-                    [strongSelf updateVideoViewContainer];
-                }
-                
-                strongSelf.micStatus = MICSTATUS_CONNECTING;
-                // 刷新麦位状态
-            });
-            
-        } onFailed:^(RCRTCCode code) {
-            
-            NSLog(@"------- up error code %ld", code);
-            weakSelf.isTransferRole = NO;
-            dispatch_main_async_safe(^{
-                if (code == RCRTCCodeSwitchRoleSameRoleError) {
-                    weakSelf.liveRoleType = RCRTCLiveRoleTypeBroadcaster;
-                    // 失败
-                    weakSelf.micStatus = MICSTATUS_CONNECTING;
-                    // 刷新麦位状态
-                    [weakSelf renderSeatView];
-                }
-                else {
-                    // 失败
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"上麦失败"];
-                    weakSelf.micStatus = MICSTATUS_NOMAL;
-                    [weakSelf renderSeatView];
-                }
-            });
-            
-        } onKicked:^{
-            weakSelf.isTransferRole = NO;
-            dispatch_main_async_safe(^{
-                // 被踢出
-                [weakSelf kickOutLiveRoom];
-            });
-            
-        }];
-    }
-    else { // 观众下麦
-        MJWeakSelf;
-        [self.room.localUser switchToAudienceOnSucceed:^{
-            weakSelf.isTransferRole = NO;
-            dispatch_main_async_safe(^{
-                __strong typeof(weakSelf) strongSelf = weakSelf;
-                strongSelf.liveRoleType = RCRTCLiveRoleTypeAudience;
-                [strongSelf.engine.defaultAudioStream setMicrophoneDisable:YES];
-                
-                NSMutableArray *streamArray = [NSMutableArray array];
-                NSArray *remoteUserArray = [strongSelf.room.remoteUsers mutableCopy];
-
-                for (RCRTCRemoteUser *user in remoteUserArray) {
-                    if (user.remoteStreams.count) {
-                        [streamArray addObjectsFromArray:user.remoteStreams];
-                    }
-                }
-                strongSelf.micStatus = MICSTATUS_NOMAL;
-
-                if (streamArray.count) {
-                    [strongSelf subscribeRemoteResource:streamArray];
-                }
-                else {
-                    [strongSelf updateVideoViewContainer];
-                }
-                
-                
-                // 刷新麦位状态
-                // 发送下麦消息
-                [weakSelf sendDownSeatMessage];
-            });
-            
-        } onFailed:^(RCRTCCode code) {
-            weakSelf.isTransferRole = NO;
-            NSLog(@"------- down error code %ld", code);
-            dispatch_main_async_safe(^{
-                if (code == RCRTCCodeSwitchRoleSameRoleError) {
-                    weakSelf.liveRoleType = RCRTCLiveRoleTypeAudience;
-                    weakSelf.micStatus = MICSTATUS_NOMAL;
-                }
-                else {
-                    // 失败
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"下麦失败"];
-                    weakSelf.micStatus = MICSTATUS_CONNECTING;
-                }
-                // 刷新麦位状态
-                [weakSelf renderSeatView];
-            });
-            
-        } onKicked:^{
-            weakSelf.isTransferRole = NO;
-            dispatch_main_async_safe(^{
-                // 被踢出
-                [weakSelf kickOutLiveRoom];
-            });
-        }];
-    }
-}
-
-- (void)kickOutLiveRoom {
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"您已被踢出直播间"];
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        [self quitRoom];
-    });
-    
-}
-
-- (void)countMemberCount {
-    NSInteger count = self.totalCount;
-    NSString *desc = @"";
-    if (count > 10000) {
-        count = count / 10000;
-        desc = [NSString stringWithFormat:@"%zd万+人",count];
-    }
-    else {
-        desc = [NSString stringWithFormat:@"%zd人",count];
-    }
-    self.headView.roomMemberCount.text = desc;
-}
-
-- (void)clearVideoViewSource {
-    self.videoView.streamUserId = @"";
-    self.videoView.streamTag = @"";
-    self.videoView.streamId = @"";
-}
-
-// 清空视图
-- (void)clearRemoteContainer {
-    [self.streamVideos removeAllObjects];
-    [self.videoView removeAllSubViews];
-    [self clearVideoViewSource];
-    [self removeSeatContainer];
-}
-
-// 更新视图
-- (void)updateVideoViewContainer {
-    NSMutableArray *steamArray = [self.streamVideos mutableCopy];
-
-    if (steamArray.count > 0) {
-
-        // 渲染主播的流 优先显示主播的共享流
-        KSLiveStreamVideo *mainVideo = nil;
-        for (KSLiveStreamVideo *videoSource in steamArray) {
-            if ([videoSource.userId isEqualToString:self.createrId]) { // 主屏只渲染老师
-                if ([videoSource.streamTag isEqualToString:@"screenshare"]) { // 如果是共享流
-                    if (![self.videoView.streamId isEqualToString:videoSource.streamId]) { // 主屏渲染不同 则重新渲染
-                        mainVideo = videoSource;
-                    }
-                    break;
-                }
-                else if ([videoSource.streamTag isEqualToString:@"RongCloudRTC"]) { // 默认流
-                    if (![self.videoView.streamId isEqualToString:videoSource.streamId]) { // 主屏渲染不同 则重新渲染
-                        mainVideo = videoSource;
-                    }
-                }
-                else { // 其他流
-                    if (mainVideo == nil) { // 如果暂未遍历出其他视频流 先取一个作为主屏展示流
-                        if (![self.videoView.streamId isEqualToString:videoSource.streamId]) { // 主屏渲染不同 则重新渲染
-                            mainVideo = videoSource;
-                        }
-                    }
-                }
-            }
-        }
-        // 如果需要渲染主屏
-        if (mainVideo) {
-            [self.videoView removeAllSubViews];
-            self.videoView.streamUserId = mainVideo.userId;
-            self.videoView.streamId = mainVideo.streamId;
-            self.videoView.streamTag = mainVideo.streamTag;
-            mainVideo.canvesView.tag = 10000;
-            [self.videoView addSubview:mainVideo.canvesView];
-            [mainVideo.canvesView mas_makeConstraints:^(MASConstraintMaker *make) {
-                make.left.right.bottom.top.mas_equalTo(self.videoView);
-            }];
-        }
-    }
-    
-    [self changeEmptyStatusView];
-    // 刷新 seatView
-    [self renderSeatView];
-}
-
-- (void)removeViewSubViews:(UIView *)container {
-    while (container.subviews.count) {
-        [container.subviews.lastObject removeFromSuperview];
-    }
-}
-
-- (void)changeEmptyStatusView {
-    if (self.isCreaterInRoom) {
-        if (self.isCreaterVideoEnable) {
-            self.emptyView.hidden = YES;
-        }
-        else if (self.isCreaterVideoEnable == NO && self.isCreaterAudioEnable == YES) {
-            // 主播关闭了摄像头
-            [self showEmptyViewDisplay:YES];
-        }
-        else { // 休息一下
-            [self showEmptyViewDisplay:NO];
-        }
-    }
-    else  {
-        // 无主播
-        [self.videoView removeAllSubViews];
-        [self showEmptyViewDisplay:NO];
-    }
-
-}
-
-#pragma mark ---- RCRTCRoomEventDelegate
-// 远端发布流
-- (void)didPublishStreams:(NSArray<RCRTCInputStream *> *)streams {
-    [self subscribeRemoteResource:streams];
-    NSLog(@"didPublishStreams --------");
-}
-
-// 订阅远端流
-- (void)subscribeRemoteResource:(NSArray<RCRTCInputStream *> *)streams {
-    [self subscribeRemoteResource:streams isTiny:NO];
-}
-
-- (void)subscribeRemoteResource:(NSArray<RCRTCInputStream *> *)streams isTiny:(BOOL)isTiny {
-    // 订阅房间中远端用户音视频流资源
-    NSArray *tinyStream = isTiny ? streams : @[];
-    NSArray *ordinaryStream = isTiny ? @[] : streams;
-    [self.room.localUser subscribeStream:ordinaryStream
-                             tinyStreams:tinyStream
-                              completion:^(BOOL isSuccess, RCRTCCode desc) {
-        if (desc != RCRTCCodeSuccess) {
-            NSString *errorStr = [NSString stringWithFormat:@"订阅远端流失败:%ld", (long) desc];
-            [LOADING_MANAGER MBShowAUTOHidingInWindow:errorStr];
-            return;
-        }
-        
-        
-        // 创建并设置远端视频预览视图
-        for (RCRTCInputStream *stream in streams) {
-            if ([stream.userId isEqualToString:self.createrId]) {
-                self.isPauseLive = NO;
-            }
-            if (stream.mediaType == RTCMediaTypeVideo) {
-                if ([stream.userId isEqualToString:self.createrId]) { // 只渲染老师的流
-                    self.isCreaterVideoEnable = YES;
-                    [self setupRemoteViewWithStream:stream];
-                }
-            }
-            if (stream.mediaType == RTCMediaTypeAudio && [stream.userId isEqualToString:self.createrId]) {
-                self.isCreaterAudioEnable = YES;
-            }
-        }
-        
-        [self updateVideoViewContainer];
-    }];
-}
-
-// 创建并设置远端视频预览视图
-- (KSLiveStreamVideo *)setupRemoteViewWithStream:(RCRTCInputStream *)stream {
-    
-    KSLiveStreamVideo *sVideo = [self creatStreamVideoWithStreamId:stream.streamId userId:stream.userId tag:stream.tag];
-    sVideo.userId = stream.userId;
-    RCRTCVideoView *remoteView = (RCRTCVideoView *) sVideo.canvesView;
-
-    //设置视频流的渲染视图
-    [(RCRTCVideoInputStream *) stream setVideoView:remoteView];
-    return sVideo;
-}
-
-//  远端用户取消发布资源
-- (void)didUnpublishStreams:(NSArray<RCRTCInputStream *> *)streams {
-    [self unsubscribeRemoteResource:streams orStreamId:nil];
-}
-
-- (void)stream:(RCRTCInputStream *)stream didVideoEnable:(BOOL)enable {
-    NSLog(@"----- video --- staus %d", enable);
-}
-
-- (void)stream:(RCRTCInputStream *)stream didAudioMute:(BOOL)mute {
-    NSLog(@"----- audio --- staus %d", mute);
-    if ([stream.userId isEqualToString:self.createrId]) {
-        if (mute) {
-            self.isCreaterAudioEnable = NO;
-        }
-        else {
-            self.isCreaterAudioEnable = YES;
-        }
-        [self changeEmptyStatusView];
-    }
-}
-
-- (void)didOfflineUser:(RCRTCRemoteUser *)user {
-    [self removeRemoteVideoWithUserId:user.userId];
-    [self renderSeatView];
-}
-
-// 判断是否已有预览视图
-- (KSLiveStreamVideo *)creatStreamVideoWithStreamId:(NSString *)streamId userId:(NSString *)userId tag:(NSString *)streamTag  {
-    KSLiveStreamVideo *sVideo = [self fetchStreamVideoWithStreamId:streamId];
-    if (!sVideo) {
-        sVideo = [[KSLiveStreamVideo alloc] initWithStreamId:streamId streamUserId:userId streamTag:streamTag];
-        [self.streamVideos insertObject:sVideo atIndex:0];
-    }
-    return sVideo;
-}
-
-// 根据 streamId 确认唯一的音视频流
-- (KSLiveStreamVideo *)fetchStreamVideoWithStreamId:(NSString *)streamId {
-    NSMutableArray *streamArray = [self.streamVideos mutableCopy];
-    for (KSLiveStreamVideo *sVideo in streamArray) {
-        if ([streamId isEqualToString:sVideo.streamId]) {
-            return sVideo;
-        }
-    }
-    return nil;
-}
-
-// 远端掉线/离开回掉调用,删除远端用户的所有音视频流
-- (void)fetchStreamVideoOffLineWithStreamId:(NSString *)streamId {
-    
-    NSArray *arr = [NSArray arrayWithArray:self.streamVideos];
-    for (KSLiveStreamVideo *sVideo in arr) {
-        if ([streamId isEqualToString:sVideo.streamId]) {
-            if (sVideo) {
-                [sVideo.canvesView removeFromSuperview];
-                [self.streamVideos removeObject:sVideo];
-            }
-        }
-    }
-    [self updateVideoViewContainer];
-}
-// 远端用户切换身份(主播接收)
-- (void)didSwitchRoleWithUser:(RCRTCRemoteUser *)user roleType:(RCRTCLiveRoleType)roleType {
-    if (roleType == RCRTCLiveRoleTypeAudience) {
-        [self renderSeatView];
-    }
-    
-    NSLog(@"didSwitchRoleWithUser --------");
-}
-
-- (void)judgeRefreshSeatView:(NSString *)userId {
-    BOOL needRefresh = NO;
-    if (_seatContainer) {
-        if (self.seatContainer.seatMemberArray.count && [self.videoContainerView.subviews containsObject:self.seatContainer]) {
-            NSMutableArray *memerArray = [self.seatContainer.seatMemberArray mutableCopy];
-            for (NSString *memberId in memerArray) {
-                if ([userId isEqualToString:memberId]) {
-                    needRefresh = YES;
-                    break;
-                }
-            }
-        }
-    }
-    if (needRefresh) {
-        [self renderSeatView];
-    }
-}
-
-// 主播加入房间 (观众接收)
-- (void)didJoinUser:(RCRTCRemoteUser *)user {
-    if ([user.userId isEqualToString:self.createrId]) { // 当主播重新进入房间需要重置连麦状态
-        self.isCreaterInRoom = YES;
-        // 重置连麦状态
-//        [self resetMicWaitToNomal];
-        // 刷新顶部视图
-    }
-    else {
-//        [self renderSeatView];
-    }
-    NSLog(@"didJoinUser --------");
-}
-
-// 主播离开房间 (观众接收)
-- (void)didLeaveUser:(RCRTCRemoteUser *)user {
-    [self removeRemoteVideoWithUserId:user.userId]; // 移除对应的视频
-    if ([user.userId isEqualToString:self.createrId]) { // 如果是老师
-        
-        self.isCreaterInRoom = NO;
-        [self resetMicWaitToNomal];
-        [self tipsTeacherLeaveRoom];
-        [self clearVideoView];
-        [self hideTipsView];
-        [self showEmptyViewDisplay:NO];
-    }
-    else {
-        [self renderSeatView];
-    }
-}
-
-- (void)removeRemoteVideoWithUserId:(NSString *)userId {
-    NSArray *arr = [NSArray arrayWithArray:self.streamVideos];
-    for (KSLiveStreamVideo *sVideo in arr) {
-        if ([userId isEqualToString:sVideo.userId]) {
-            if (sVideo) {
-                [sVideo.canvesView removeFromSuperview];
-                [self.streamVideos removeObject:sVideo];
-            }
-        }
-    }
-}
-
-- (void)clearVideoView {
-    [self clearVideoViewSource];
-    [self.videoView removeAllSubViews];
-}
-
-- (void)resetConnectionStatus {
-    if (self.micStatus == MICSTATUS_CONNECTING) {
-
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-            [self connectHostWithStatus:NO];
-        });
-    }
-    else {
-        [self removeSeatContainer];
-    }
-    self.micStatus = MICSTATUS_NOMAL;
-}
-
-- (void)resetMicWaitToNomal {
-    if (self.micStatus == MICSTATUS_WAITING) {
-        self.micStatus = MICSTATUS_NOMAL;
-    }
-}
-
-- (void)tipsTeacherLeaveRoom {
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师已离开房间"];
-}
-
-
-#pragma mark - KSChatInputBarControlDelegate
-//  根据inputBar 回调来修改页面布局
-- (void)onInputBarControlContentSizeChanged:(CGRect)frame withAnimationDuration:(CGFloat)duration andAnimationCurve:(UIViewAnimationCurve)curve {
-    CGRect originFrame = _inputBar.frame;
-    __weak __typeof(&*self)weakSelf = self;
-    //  目前只使用y值即可 -- 只修改messageContentView高度,让展示消息view和输入框随之移动
-    [UIView animateWithDuration:duration animations:^{
-        [UIView setAnimationCurve:curve];
-        [weakSelf.inputBar setFrame:CGRectMake(0, frame.origin.y - originFrame.size.height, originFrame.size.width, originFrame.size.height)];
-        [UIView commitAnimations];
-    }];
-}
-
-//  发送消息
-- (void)onTouchSendButton:(NSString *)text {
-    if (self.blacklistFlag == YES) {
-        [self setDefaultBottomViewStatus];
-        return;
-    }
-    NSDate *date = [NSDate date];
-    NSTimeInterval currentInterval = [date timeIntervalSince1970];
-    if (currentInterval - self.lastSendMsgTime < 3) {
-        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"您说话太快啦"];
-        return;
-    }
-    
-    if (self.lastSendMsgTime == 0) {
-        self.lastSendMsgTime = currentInterval;
-    }
-    
-    if (text.length > 40) {
-        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"聊天消息需在40个字以内哦"];
-        return;
-    }
-    self.lastSendMsgTime = currentInterval;
-    [self touristSendMessage:text];
-    
-}
-
-- (void)touristSendMessage:(NSString *)text {
-    
-    RCTextMessage *rcTextMessage = [RCTextMessage messageWithContent:text];
-    MJWeakSelf;
-    [self sendMessage:rcTextMessage displayMessage:YES callback:^(BOOL success) {
-        [weakSelf setDefaultBottomViewStatus];
-    }];
-}
-
-#pragma mark ---- RTC
-- (void)joinLiveRoom {
-
-    // 1.配置房间
-    RCRTCRoomConfig *config = [[RCRTCRoomConfig alloc] init];
-    config.roomType = RCRTCRoomTypeLive;
-    config.liveType = RCRTCLiveTypeAudioVideo;
-    config.roleType = RCRTCLiveRoleTypeAudience;
-    __weak typeof(self) weakSelf = self;
-    [self.engine joinRoom:self.roomId config:config completion:^(RCRTCRoom * _Nullable room, RCRTCCode code) {
-        dispatch_main_async_safe(^{
-            __strong typeof(weakSelf) strongSelf = weakSelf;
-            if (code == RCRTCCodeSignalServerNotConnect || code == RCRTCCodeParameterError || code == RCRTCCodeNotInRTCRoom || code == RCRTCCodeRTCTokenIsNull || code == RCRTCCodeHttpTimeoutError || code == RCRTCCodeHttpError || code == RCRTCCodeVoIPNotAvailable) {
-                NSLog(@"%@",[NSString stringWithFormat:@"加入失败 code %ld",code]);
-            }
-            else { // 加入直播间成功
-                [strongSelf notiferJoinSuccessToServiceCallback:^{
-                                    
-                }];
-                if (room) {
-                    strongSelf.room = room;
-                    strongSelf.room.delegate = self;
-                }
-                
-                [strongSelf countMemberCount];
-                
-                
-                if (room.remoteUsers.count) {
-                    NSMutableArray *streamArray = [NSMutableArray array];
-                    NSMutableArray *remoteUserArray = [room.remoteUsers mutableCopy];
-                    for (RCRTCRemoteUser *user in remoteUserArray) {
-                        if ([user.userId isEqualToString:strongSelf.createrId]) {
-                            strongSelf.isCreaterInRoom = YES;
-                        }
-                        if (user.remoteStreams.count) {
-                            [streamArray addObjectsFromArray:user.remoteStreams];
-                            [strongSelf subscribeRemoteResource:streamArray];
-                        }
-                    }
-                }
-                [self changeEmptyStatusView];
-            }
-        });
-    }];
-}
-
-- (void)closeAlertView {
-    if (self.alertView && self.alertView.isShow) {
-        [self.alertView removeFromSuperview];
-        self.alertView = nil;
-    }
-}
-
-- (void)displayCloseView {
-    self.isCloseRoom = YES;
-    [self hideTipsView];
-    // 移除连麦视图
-    [self clearRemoteContainer];
-    if (self.micStatus != MICSTATUS_NOMAL) {
-        self.micStatus = MICSTATUS_NOMAL;
-        self.liveRoleType = RCRTCLiveRoleTypeAudience;
-        [self.engine.defaultAudioStream setMicrophoneDisable:YES];
-    }
-    [self.engine leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        if (code != RCRTCCodeSuccess) {
-            // 退出失败
-        }
-    }];
-    self.endView.hidden = NO;
-    [self setDefaultBottomViewStatus];
-    
-    [[NSNotificationCenter defaultCenter] postNotificationName:@"LiveroomClose" object:nil];
-   
-}
-
-
-- (void)insertMessage:(RCMessage *)rcMessage userInfo:(NSDictionary *)userInfo {
-    // left
-    NSDictionary *leftDic = userInfo;
-    if (leftDic && [leftDic[@"left"] isEqual:@(0)]) {
-        self.isNeedScrollToButtom = YES;
-    }
-    [self appendAndDisplayMessage:rcMessage];
-}
-
-- (void)kickSeatWithMessage:(NSString *)message {
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:message];
-    self.micStatus = MICSTATUS_NOMAL;
-    [self connectHostWithStatus:NO];
-}
-
-
-- (void)showInviteAlertMessage:(NSString *)tipsMessage {
-    if (self.alertView && self.alertView.isShow) {
-        [self.alertView removeFromSuperview];
-        self.alertView = nil;
-    }
-    MJWeakSelf;
-    self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:tipsMessage leftButtonTitle:@"取消" rightTitle:@"确定" inView:self.view cancel:^{
-        weakSelf.micStatus = MICSTATUS_NOMAL;
-        [weakSelf sendSeatResponseMessage:NO];
-    } confirm:^{
-        [weakSelf sendSeatResponseMessage:YES];
-    }];
-}
-
-- (void)sendSeatResponseMessage:(BOOL)isApprove {
-    SEATRESPONSE type = isApprove ? SEATRESPONSE_AUDIENCEAPPROVE : SEATRESPONSE_AUDIENCEREJECT;
-    KSLiveChatroomSeatResponse *responseMessage = [[KSLiveChatroomSeatResponse alloc] init];
-    responseMessage.type = type;
-    responseMessage.audienceId = UserDefault(IM_USERID);
-    responseMessage.audienceName = UserDefault(NicknameKey);
-    MJWeakSelf;
-    [self sendMessage:responseMessage displayMessage:YES callback:^(BOOL success) {
-        if (success) {
-            if (isApprove) {
-                [weakSelf connectHostWithStatus:YES];
-            }
-        }
-    }];
-}
-
-- (void)showEmptyViewDisplay:(BOOL)isPublish {
-    NSString *imageName = @"";
-    NSString *descMessage = @"";
-    if (isPublish) {
-        imageName = @"liveVideo_close";
-        descMessage = @"老师已关闭画面!";
-    }
-    else {
-        imageName = @"liveroom_empty";
-        descMessage = @"休息一下,马上回来!";
-    }
-    [self.emptyView configViewWithImageName:imageName desc:descMessage];
-    self.emptyView.hidden = NO;
-}
-
-- (void)exitRoom {
-    [self.engine.defaultAudioStream setMicrophoneDisable:YES];
-    __weak typeof(self) weakSelf = self;
-    [self.engine leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        dispatch_main_async_safe(^{
-            __strong typeof(weakSelf) strongSelf = weakSelf;
-            [strongSelf sendLeaveMessageCallback:^(BOOL success) {
-                // quit 接口
-                [weakSelf quitNotiferService];
-                [weakSelf quitChatRoom];
-            }];
-        });
-    }];
-}
-
-// 取消订阅流 Id 所对应的 View
-- (void)unsubscribeRemoteResource:(NSArray<RCRTCInputStream *> *)streams orStreamId:(NSString *)streamId {
-    
-    for (RCRTCInputStream *stream in streams) {
-        if (stream.mediaType == RTCMediaTypeVideo) {
-            streamId = stream.streamId;
-            if ([stream.userId isEqualToString:self.createrId]) {
-                [self clearVideoViewSource];
-                self.isCreaterVideoEnable = NO;
-                // 主讲老师停止发布视频流
-                NSLog(@"----- 停止发布视频流");
-            }
-            [self fetchStreamVideoOffLineWithStreamId:streamId];
-        }
-        else if (stream.mediaType == RTCMediaTypeAudio && [stream.userId isEqualToString:self.createrId]) {
-            // 主讲老师停止发布音频流
-            NSLog(@"----- 停止发布音频流");
-            self.isCreaterAudioEnable = NO;
-        }
-    }
-}
-
-#pragma mark -- 加入直播间和退出直播间回到服务
-- (void)notiferJoinSuccessToServiceCallback:(void(^)(void))callback {
-    callback();
-    [KSNetworkingManager liveRoomJoinRoomRequest:KS_GET roomUid:self.roomId success:^(NSDictionary * _Nonnull dic) {
-        callback();
-    } faliure:^(NSError * _Nonnull error) {
-        callback();
-    }];
-}
-
-#pragma mark -- 退出直播间回掉服务
-- (void)quitNotiferService {
-
-    [KSNetworkingManager LiveroomQuit:KS_POST success:^(NSDictionary * _Nonnull dic) {
-        if ([dic ks_integerValueForKey:@"errCode"] == 0) {
-            NSLog(@"success");
-        }
-        else {
-            NSLog(@"----- error %@", [dic ks_stringValueForKey:@"errMsg"]);
-        }
-    } faliure:^(NSError * _Nonnull error) {
-        
-    }];
-}
-
-- (void)sendLeaveMessageCallback:(void(^)(BOOL success))callback {
-    
-    RCUserInfo *currentUserInfo = [RCIM sharedRCIM].currentUserInfo;
-    KSLiveChatroomLeave *leaveMessage = [[KSLiveChatroomLeave alloc] init];
-    leaveMessage.userId = currentUserInfo.userId;
-    leaveMessage.userName = currentUserInfo.name;
-    [self sendMessage:leaveMessage displayMessage:NO callback:^(BOOL success) {
-        callback(success);
-    }];
-}
-
-- (void)quitChatRoom {
-    [[RCIMClient sharedRCIMClient] quitChatRoom:self.roomId success:^{
-        NSLog(@"sucess log out--");
-    } error:^(RCErrorCode status) {
-        NSLog(@"RCErrorCode------%ld ", (long)status);
-    }];
-}
-
-- (void)addConstMessage { // 固定欢迎词语
-    RCTextMessage *statement = [RCTextMessage messageWithContent:@"欢迎进入直播课堂,请遵守相关法规,禁止传播低俗、暴力等不良信息。为孩子创造健康绿色的学习环境。"];
-    statement.extra = @"statement";
-    RCMessage *constMessage = [[RCMessage alloc] initWithType:ConversationType_CHATROOM targetId:self.roomId direction:MessageDirection_SEND content:statement];
-    constMessage.content.senderUserInfo = [RCIM sharedRCIM].currentUserInfo;
-    [self appendAndDisplayMessage:constMessage];
-}
-#pragma mark - views init
-/**
- *  接收到消息的回调
- */
-- (void)didReceiveMessageNotification:(NSNotification *)notification {
-    NSDictionary *dic = notification.object;
-    __block RCMessage *rcMessage = dic[@"message"];
-    KSRCMessageModel *model = [[KSRCMessageModel alloc] initWithMessage:rcMessage];
-    model.userInfo = rcMessage.content.senderUserInfo;
-    if (model.conversationType == ConversationType_CHATROOM && [model.targetId isEqualToString:self.roomId]) {
-        __weak typeof(&*self) __blockSelf = self;
-        dispatch_main_async_safe((^{
-            // 对赞消息拦截 ,展示动画,不插入数据源 ,对于seat消息 和踢出消息,弹出alert
-            if (rcMessage) {
-                // 👍🏻消息
-                if ([rcMessage.content isMemberOfClass:[KSLiveChatroomLike class]]) {
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[RCChatroomLikeCount class]]) {
-                    RCChatroomLikeCount *likeCountMessage = (RCChatroomLikeCount *)rcMessage.content;
-                    __blockSelf.likeCount = likeCountMessage.count;
-                    [__blockSelf countLikeMessageCount];
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomWelcome class]]) {
-                    //  过滤自己发送的欢迎消息
-                    if ([rcMessage.senderUserId isEqualToString:UserDefault(IM_USERID)]) {
-                        return;
-                    }
-//                    if ([rcMessage.senderUserId isEqual:self.createrId]) { // 如果是老师 重置连麦申请状态
-//                        [__blockSelf resetMicWaitToNomal];
-//                    }
-                    
-                    RCUserInfo *userInfo = rcMessage.content.senderUserInfo;
-                    NSString *userName = [userInfo.name stringByAppendingString:@""];
-                    NSString *contentMsg = [NSString stringWithFormat:@"%@ 进入直播间",userName];
-                    [__blockSelf showAnimationView:YES showMessag:contentMsg];
-                }
-                // 用户退出消息
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomLeave class]]) {
-                    return;
-                }
-                // 用户退出消息
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomUserQuit class]]) {
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomKickOut class]]) {
-                    KSLiveChatroomKickOut *kickMessage = (KSLiveChatroomKickOut *)rcMessage.content;
-                    NSString *currentUserId = UserDefault(IM_USERID);
-                    if ([kickMessage.targetId isEqualToString:currentUserId]) {
-                        __blockSelf.micStatus = MICSTATUS_NOMAL;
-                        [__blockSelf kickOutLiveRoom];
-                    }
-                    return;
-                }
-                // 人数同步
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomMemberUp class]]) {
-                    KSLiveChatroomMemberUp *member = (KSLiveChatroomMemberUp *)rcMessage.content;
-                    __blockSelf.totalCount = member.count;
-                    [__blockSelf countMemberCount];
-                    return;
-                }
-                // 连麦控制消息
-                else if ([rcMessage.content isMemberOfClass:[RCChatroomSeatsControl class]]) {
-                    RCChatroomSeatsControl *seatControlMessage = (RCChatroomSeatsControl *)rcMessage.content;
-                    if (seatControlMessage.seatBan) { // 禁止连麦
-                        __blockSelf.enableSeat = NO;
-                        
-                        // 未连麦情况下才重置
-                        if (__blockSelf.micStatus != MICSTATUS_CONNECTING) {
-                            __blockSelf.micStatus = MICSTATUS_NOMAL;
-                        }
-                        
-                        [__blockSelf hideApplyView];
-                        [__blockSelf hideApplyingView];
-                    }
-                    else { // 开启连麦
-                        __blockSelf.enableSeat = YES;
-                    }
-                    [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                }
-                // 连麦申请消息
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomSeatApply class]]) {
-                    KSLiveChatroomSeatApply *seatApplyMessage = (KSLiveChatroomSeatApply *)rcMessage.content;
-                    // 只处理和自己相关的消息
-                    if (![seatApplyMessage.audienceId isEqualToString:UserDefault(IM_USERID)]) {
-                        // 刷新麦序
-                        return;
-                    }
-                    if (seatApplyMessage.type == SEATHANDLE_INVITE) { // 老师发起申请
-                        NSString *titles = [NSString stringWithFormat:@"%@邀请您连麦",[NSString returnNoNullStringWithString:seatApplyMessage.teacherName]];
-                        [__blockSelf showInviteAlertMessage:titles];
-                    }
-                    else if (seatApplyMessage.type == SEATHANDLE_DISINVITE) { // 老师撤回邀请
-                        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师撤回了连麦邀请"];
-                        if (__blockSelf.alertView && __blockSelf.alertView.isShow) {
-                            [__blockSelf.alertView dismissAlertView];
-                        }
-                    }
-                    else if (seatApplyMessage.type == SEATHANDLE_KICKSEAT) { // 老师将麦上观众抱下麦
-                        [__blockSelf kickSeatWithMessage:@"您已被抱下麦"];
-                    }
-                    [__blockSelf hideApplyingView];
-                    [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                }
-                // 连麦回复消息(暂不处理)
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomSeatResponse class]]) {
-                    KSLiveChatroomSeatResponse *seatResponseMessage = (KSLiveChatroomSeatResponse *)rcMessage.content;
-                    if (![seatResponseMessage.audienceId isEqualToString:UserDefault(IM_USERID)]) { // 只处理和自己相关的消息
-                        return;
-                    }
-                    if (seatResponseMessage.type == SEATRESPONSE_TEACHERAPPROVE && __blockSelf.micStatus == MICSTATUS_WAITING) { //
-                        [__blockSelf hideApplyingView];
-                        [__blockSelf connectHostWithStatus:YES];
-                        [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                    }
-                    else if (seatResponseMessage.type == SEATRESPONSE_TEACHERREJECT) {
-                        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师拒绝了您的连麦申请"];
-                        __blockSelf.micStatus = MICSTATUS_NOMAL;
-                        [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                    }
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomDownSeat class]]) { // 成员下麦消息
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomDownSeat class]]) {  // 成员主动下麦消息
-                    
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomClose class]]) { // 直播间已关闭
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"直播已结束"];
-                    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                        // 显示直播间关闭状态
-                        [__blockSelf closeAlertView];
-                        [__blockSelf displayCloseView];
-                        [__blockSelf hideApplyingView];
-                    });
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[RCTextMessage class]]) {
-                    [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSRCPauseLiveMessage class]]) { // 老师暂停直播
-                    __blockSelf.isPauseLive = YES;
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师已暂停直播"];
-                    if (__blockSelf.micStatus == MICSTATUS_WAITING) {
-                        [__blockSelf sendSeatMessageApply:NO];
-                    }
-                    [__blockSelf resetConnectionStatus];
-                    [__blockSelf resetNetTips];
-                    [__blockSelf closeAlertView];
-                    [__blockSelf hideApplyingView];
-                    return;
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSRCShopRushMessage class]]) { //
-                    
-                    KSRCShopRushMessage *rushMsg = (KSRCShopRushMessage *)rcMessage.content;
-                    
-                    NSString *contentMsg = [NSString stringWithFormat:@"%@ 正在抢购",[NSString returnNoNullStringWithString:rushMsg.userName]];
-                    [__blockSelf showAnimationView:NO showMessag:contentMsg];
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveBlockUser class]]) { // 黑名单
-                    KSLiveBlockUser *blockMessage = (KSLiveBlockUser *)rcMessage.content;
-                    if ([blockMessage.userId isEqualToString:UserDefault(IM_USERID)]) {
-                        __blockSelf.blacklistFlag = YES;
-                        [__blockSelf resetConnectionStatus];
-                    }
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveUnBlockUser class]]) {
-                    KSLiveUnBlockUser *unBlockMessage = (KSLiveUnBlockUser *)rcMessage.content;
-                    if ([unBlockMessage.userId isEqualToString:UserDefault(IM_USERID)]) {
-                        __blockSelf.blacklistFlag = NO;
-                    }
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSDownSeatAllMessage class]]) { // 所有麦上用户下麦
-                    if (__blockSelf.micStatus == MICSTATUS_CONNECTING) {
-                        [__blockSelf kickSeatWithMessage:@"您已被抱下麦"];
-                        [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                    }
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSRejectAllSeatMessage class]]) { // 拒绝所有连麦申请
-                    if (__blockSelf.micStatus == MICSTATUS_WAITING) {
-                        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师拒绝了您的连麦申请"];
-                        // 处理连麦状态
-                        __blockSelf.micStatus = MICSTATUS_NOMAL;
-                        [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                        [__blockSelf hideApplyingView];
-                    }
-                }
-            }
-        }));
-    }
-}
-
-- (void)hideApplyView {
-    if (self.applyView.isShow) {
-        [self.applyView hideView];
-    }
-}
-
-- (void)hideApplyingView {
-    if (self.applyingView.isShow) {
-        [self.applyingView hideView];
-    }
-}
-
-// 发送人数同步消息
-- (void)sendMemberCountMessage {
-    KSLiveChatroomMemberCount *syncMessage = [[KSLiveChatroomMemberCount alloc] init];
-    syncMessage.count = self.totalCount;
-    
-    [self sendMessage:syncMessage displayMessage:NO callback:^(BOOL success) {
-            
-    }];
-}
-
-#pragma mark ----- time manager delegate
-- (void)quitClassroomNotifer {
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"直播课已结束!"];
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        [self quitAction];
-    });
-}
-
-#pragma mark - gesture and button action
-- (void)resetBottomGesture:(UIGestureRecognizer *)gestureRecognizer {
-    if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
-        [self setDefaultBottomViewStatus];
-    }
-}
-- (void)setDefaultBottomViewStatus {
-    [self.inputBar setInputBarStatus:KSBottomBarStatusDefault];
-    [self.inputBar setHidden:YES];
-}
-
-
-#pragma mark ---- sendMessage/showMessage
-- (void)sendMessage:(RCMessageContent *)messageContent displayMessage:(BOOL)displayMessage callback:(void(^)(BOOL success))callback {
-    if (_roomId == nil) {
-        return;
-    }
-    messageContent.senderUserInfo = [RCIM sharedRCIM].currentUserInfo;
-    if (messageContent == nil) {
-        return;
-    }
-    __weak typeof(&*self) __weakself = self;
-    [KSChatroomMessageCenter sendChatMessage:self.roomId content:messageContent success:^(long messageId) {
-        dispatch_async(dispatch_get_main_queue(), ^{
-            RCMessage *message = [[RCMessage alloc] initWithType:ConversationType_CHATROOM targetId:__weakself.roomId direction:MessageDirection_SEND content:messageContent];
-            message.content.senderUserInfo = [RCIM sharedRCIM].currentUserInfo;
-            
-            message.senderUserId = UserDefault(IM_USERID);
-            if (displayMessage) {
-                [__weakself appendAndDisplayMessage:message];
-            }
-            [__weakself.inputBar clearInputView];
-            callback(YES);
-        });
-        
-    } error:^(RCErrorCode errorCode, long messageId) {
-        if (errorCode == RC_CHATROOM_NOT_EXIST) {
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"聊天已被解散,请退出后重进。"];
-            });
-        }
-        dispatch_async(dispatch_get_main_queue(), ^{
-            [__weakself.inputBar clearInputView];
-            NSLog(@"发送失败,errorcode is: %ld",(long)errorCode);
-            callback(NO);
-        });
-    }];
-}
-
-/**
- *  将消息加入本地数组
- */
-- (void)appendAndDisplayMessage:(RCMessage *)rcMessage {
-    if (!rcMessage) {
-        return;
-    }
-    
-    KSRCMessageModel *model = [[KSRCMessageModel alloc] initWithMessage:rcMessage];
-    model.userInfo = rcMessage.content.senderUserInfo;
-    if (!model.userInfo) {
-        model.userInfo = [RCIMClient sharedRCIMClient].currentUserInfo;
-    }
-    
-    if ([self appendMessageModel:model]) {
-        NSIndexPath *indexPath =
-        [NSIndexPath indexPathForItem:self.conversationDataRepository.count - 1
-                            inSection:0];
-        if ([self.conversationMessageTableView numberOfRowsInSection:0] !=
-            self.conversationDataRepository.count - 1) {
-            return;
-        }
-        //  view刷新
-        [self.conversationMessageTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
-        if ([self isAtTheBottomOfTableView] || self.isNeedScrollToButtom) {
-            [self scrollToBottomAnimated:YES];
-            self.isNeedScrollToButtom=NO;
-        }
-    }
-    return;
-}
-
-/**
- *  如果当前会话没有这个消息id,把消息加入本地数组
- */
-- (BOOL)appendMessageModel:(KSRCMessageModel *)model {
-    
-    if (!model.content) {
-        return NO;
-    }
-    //这里可以根据消息类型来决定是否显示,如果不希望显示直接return NO
-    
-    //数量不可能无限制的大,这里限制收到消息过多时,就对显示消息数量进行限制。
-    //用户可以手动下拉更多消息,查看更多历史消息。
-    if (self.conversationDataRepository.count>500) {
-        //                NSRange range = NSMakeRange(0, 1);
-        KSRCMessageModel *message = self.conversationDataRepository[0];
-        [[RCIMClient sharedRCIMClient]deleteMessages:@[@(message.messageId)]];
-        [self.conversationDataRepository removeObjectAtIndex:0];
-        [self.conversationMessageTableView reloadData];
-    }
-    
-    [self.conversationDataRepository addObject:model];
-    return YES;
-}
-
-/**
- *  判断消息是否在collectionView的底部
- *
- *  @return 是否在底部
- */
-- (BOOL)isAtTheBottomOfTableView {
-    if (self.conversationMessageTableView.contentSize.height <= self.conversationMessageTableView.frame.size.height) {
-        return YES;
-    }
-    if(self.conversationMessageTableView.contentOffset.y +200 >= (self.conversationMessageTableView.contentSize.height - self.conversationMessageTableView.frame.size.height)) {
-        return YES;
-    }else{
-        return NO;
-    }
-}
-
-/**
- *  消息滚动到底部
- *
- *  @param animated 是否开启动画效果
- */
-- (void)scrollToBottomAnimated:(BOOL)animated {
-    if ([self.conversationMessageTableView numberOfSections] == 0) {
-        return;
-    }
-    NSUInteger finalRow = MAX(0, [self.conversationMessageTableView numberOfRowsInSection:0] - 1);
-    if (0 == finalRow) {
-        return;
-    }
-    NSIndexPath *finalIndexPath =
-    [NSIndexPath indexPathForItem:finalRow inSection:0];
-    [self.conversationMessageTableView scrollToRowAtIndexPath:finalIndexPath atScrollPosition:UITableViewScrollPositionTop animated:animated];
-}
-/*
-#pragma mark - Navigation
-
-// In a storyboard-based application, you will often want to do a little preparation before navigation
-- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
-    // Get the new view controller using [segue destinationViewController].
-    // Pass the selected object to the new view controller.
-}
-*/
-
-#pragma mark ----- table data source
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return self.conversationDataRepository.count;
-}
-
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
-    KSRCMessageModel *model = [self.conversationDataRepository objectAtIndex:indexPath.row];
-    RCMessageContent *messageContent = model.content;
-    KSChatroomTextCell *cell = [tableView dequeueReusableCellWithIdentifier:@"KSChatroomTextCell"];
-    if(!cell){
-        cell = [[KSChatroomTextCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"KSChatroomTextCell"];
-    }
-    if ([messageContent isMemberOfClass:[RCTextMessage class]] || [messageContent isMemberOfClass:[KSLiveChatroomWelcome class]] || [messageContent isMemberOfClass:[KSLiveChatroomLike class]] || [messageContent isMemberOfClass:[KSLiveChatroomSeatApply class]] || [messageContent isMemberOfClass:[KSLiveChatroomSeatResponse class]] || [messageContent isMemberOfClass:[KSDownSeatAllMessage class]] || [messageContent isMemberOfClass:[KSRejectAllSeatMessage class]] || [messageContent isMemberOfClass:[RCChatroomSeatsControl class]]){
-        [cell setDataModel:model createrId:self.createrId];
-    }
-    return cell;
-}
-
-
-- (void)sendSeatMessageApply:(BOOL)isApply {
-    if (self.micStatus == MICSTATUS_CONNECTING) {
-        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"您已上麦"];
-        return;
-    }
-    SEATHANDLE type = isApply ? SEATHANDLE_APPLY : SEATHANDLE_CANCELAPPLY;
-    KSLiveChatroomSeatApply *applyMessage = [[KSLiveChatroomSeatApply alloc] init];
-    applyMessage.type = type;
-    applyMessage.audienceId = UserDefault(IM_USERID);
-    applyMessage.audienceName = UserDefault(NicknameKey);
-    applyMessage.audienceAvatar = UserDefault(AvatarUrlKey);
-    applyMessage.teacherId = self.createrId;
-    applyMessage.teacherName = self.createrName;
-    MJWeakSelf;
-    [self sendMessage:applyMessage displayMessage:YES callback:^(BOOL success) {
-        if (success) {
-            weakSelf.micStatus = isApply ? MICSTATUS_WAITING : MICSTATUS_NOMAL;
-        }
-    }];
-}
-
-/**
- 点赞
- */
-- (void)praiseBtnPressed {
-    NSTimeInterval currentTime =  [[NSDate date] timeIntervalSince1970];
-    __weak __typeof(&*self)weakSelf = self;
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.21 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        if ([[NSDate date] timeIntervalSince1970] - self.lastClickPraiseTime >= 0.2) {
-            
-            KSLiveChatroomLike *praiseSendMessage = [[KSLiveChatroomLike alloc] init];
-            praiseSendMessage.counts = clickPraiseBtnTimes;
-            [weakSelf sendMessage:praiseSendMessage displayMessage:NO callback:^(BOOL success) {
-                
-            }];
-            clickPraiseBtnTimes = 0;
-            
-//            self.likeCount += praiseSendMessage.counts;
-//            [self countLikeMessageCount];
-        }
-    });
-    KSLiveChatroomLike *praiseMessage = [[KSLiveChatroomLike alloc] init];
-    clickPraiseBtnTimes++;
-    self.lastClickPraiseTime = currentTime;
-    [self presentLikeMessageAnimation:praiseMessage];
-    
-}
-
-/**
- 赞动画
- 
- @param likeMessage 赞消息
- */
-- (void)presentLikeMessageAnimation:(KSLiveChatroomLike *)likeMessage {
-    LiveRoomLikeLayer *layer = [[LiveRoomLikeLayer alloc] initWithName:@"Like"];
-    [self.view.layer addSublayer:layer];
-    CGRect tempFrame = [self.view convertRect:self.bottomView.likeButton.frame fromView:self.bottomView];
-    CGFloat width = tempFrame.size.width;
-    CGFloat height = tempFrame.size.height;
-
-    CGFloat dx = CGRectGetMidX(tempFrame) - width *0.5;
-    CGFloat dy = CGRectGetMidY(tempFrame) - 8 - height;
-    layer.frame = CGRectMake(dx, dy, width, height);
-    [layer startAnimation];
-}
-
-
-#pragma mark - setter & getter
-- (void)setMicStatus:(MICSTATUS)micStatus {
-    _micStatus = micStatus;
-    if (self.bottomView) {
-        switch (micStatus) {
-            case MICSTATUS_NOMAL:
-            {
-                [self.bottomView.seatButton setImage:[UIImage imageNamed:@"seat_nomal"] forState:UIControlStateNormal];
-            }
-                break;
-            case MICSTATUS_WAITING:
-            {
-                [self.bottomView.seatButton setImage:[UIImage imageNamed:@"seating_image"] forState:UIControlStateNormal];
-            }
-                break;
-            case MICSTATUS_CONNECTING:
-            {
-                [self.bottomView.seatButton setImage:[UIImage imageNamed:@"seat_image"] forState:UIControlStateNormal];
-            }
-                break;
-            default:
-                break;
-        }
-    }
-}
-
-#pragma mark ----- RCRTCEngineEventDelegate
-- (void)didRTCConnectionStateChanged:(RCRTCConnectionState)state {
-    if (state == RCRTCConnectionStateConnecting) {
-        NSLog(@"--------RCRTCConnectionStateConnecting");
-    }
-    else if (state == RCRTCConnectionStateConnected) {
-        NSLog(@"--------RCRTCConnectionStateConnected");
-    }
-}
-
-#pragma mark ----- RCRTCStatusReportDelegate
-- (void)didReportStatusForm:(RCRTCStatusForm *)form {
-    // 获取丢包率
-    
-    for (RCRTCStreamStat *stat in form.recvStats) {
-        
-        if ([stat.mediaType isEqualToString:@"video"]) { // 接收视频会出现视频黑的情况 bitRate = 0
-            if (stat.packetLoss >= PACKAGE_LOST) { // 丢包
-                if (self.lostStartTime == 0) { // 如果之前没有丢包
-                    self.lostStartTime = [[NSDate date] timeIntervalSince1970];
-                }
-                else {
-                    NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
-                    if (currentTime - self.lostStartTime >= 8) {
-                        self.isLostPackage = YES;
-                        [self showBadNetTips];
-                    }
-                }
-            }
-            else {
-                self.lostStartTime = 0;
-                self.isLostPackage = NO;
-                [self hideTipsView];
-            }
-            
-            if (stat.bitRate == 0) {
-                if (self.bitErrorTime == 0) {
-                    self.bitErrorTime = [[NSDate date] timeIntervalSince1970];
-                }
-                else {
-                    NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
-                    if (currentTime - self.bitErrorTime >= 5) {
-                        self.isBitError = YES;
-                        [self showBadNetTips];
-                    }
-                }
-            }
-            else {
-                self.isBitError = NO;
-                self.bitErrorTime = 0;
-                [self hideTipsView];
-            }
-        }
-    }
-
-//    NSLog(@"%@",form.description);
-}
-
-- (void)showBadNetTips {
-    dispatch_main_async_safe(^{
-        if (self.isCloseRoom == NO) {
-            if (self.netBadView.hidden == YES) {
-                self.netBadView.hidden = NO;
-                self.videoView.hidden = YES;
-            }
-        }
-    });
-}
-
-- (void)hideTipsView {
-    dispatch_main_async_safe(^{
-        if (self.netBadView.hidden == NO) {
-            if (self.isBitError == NO && self.isLostPackage == NO) {
-                self.netBadView.hidden = YES;
-                self.videoView.hidden = NO;
-            }
-        }
-        
-    })
-    
-}
-#pragma mark --- lazying
-
-- (KSChatVideoView *)videoView {
-    if (!_videoView) {
-        _videoView = [[KSChatVideoView alloc] initWithFrame:self.view.bounds];
-        _videoView.backgroundColor = [UIColor clearColor];
-    }
-    return _videoView;
-}
-
-- (UIView *)videoContainerView {
-    if (!_videoContainerView) {
-        _videoContainerView = [[UIView alloc] initWithFrame:CGRectZero];
-        _videoContainerView.backgroundColor = [UIColor clearColor];
-    }
-    return _videoContainerView;
-}
-
-- (LiveRoomHeadView *)headView {
-    if (!_headView) {
-        _headView = [LiveRoomHeadView shareInstance];
-        MJWeakSelf;
-        [_headView quitAction:^{
-            [weakSelf showQuitAlert];
-
-        }];
-//        [_headView quitAction:^(BOOL isQuit) {
-//            if (isQuit) {
-//                [weakSelf showQuitAlert];
-//            }
-//            else {
-//                [weakSelf displayTeacherInfo:CART_TYPE_NONE];
-//            }
-//        }];
-
-    }
-    return _headView;
-}
-
-- (void)showTeacherCenter {
-    
-}
-- (void)showQuitAlert {
-    if (self.isCloseRoom) { // 如果直播结束 直接点击退出房间
-        [self quitRoom];
-    }
-    else if (self.micStatus == MICSTATUS_CONNECTING) {
-        [self quitAction];
-    }
-    else {
-        MJWeakSelf;
-        self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"是否退出直播间" leftButtonTitle:@"取消" rightTitle:@"退出" inView:self.view cancel:^{
-            
-        } confirm:^{
-            [weakSelf quitAction];
-        }];
-    }
-}
-
-
-- (LiveRoomBottomView *)bottomView {
-    if (!_bottomView) {
-        _bottomView = [LiveRoomBottomView shareInstance];
-        MJWeakSelf;
-        [_bottomView bottomClickAction:^(LIVEROOMACTION action) {
-            [weakSelf bottomViewAction:action];
-        }];
-    }
-    return _bottomView;
-}
-
-- (void)bottomViewAction:(LIVEROOMACTION)action {
-    if (self.isCloseRoom) {
-        [LOADING_MANAGER MBShowAUTOHidingInWindow:@"直播已结束"];
-        return;
-    }
-    switch (action) {
-        case LIVEROOMACTION_CHAT: // 聊天
-        {
-            if (self.blacklistFlag == YES) {
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"您已被老师禁言"];
-                return;
-            }
-            
-            [_inputBar setHidden:NO];
-            [_inputBar setInputBarStatus:KSBottomBarStatusKeyboard];
-            
-        }
-            break;
-        case LIVEROOMACTION_SEAT: // // 连麦按钮
-        { // 连麦按钮
-            // 判断是否是连麦状态
-            if (self.micStatus == MICSTATUS_CONNECTING) { // 连麦中
-                // 是否取消连麦
-                MJWeakSelf;
-                self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"连麦中,确认取消连麦吗?" leftButtonTitle:@"取消" rightTitle:@"确定" inView:self.view cancel:^{
-                    
-                } confirm:^{
-                    [weakSelf connectHostWithStatus:NO];
-                }];
-                
-            }
-            else if (self.micStatus == MICSTATUS_WAITING) { // 连麦申请中
-                // 弹窗取消申请
-                [self displayApplyingView];
-            }
-            else {
-                 if (self.blacklistFlag == YES) {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"您已被老师禁言"];
-                     return;
-                }
-                if (self.isCreaterInRoom == NO) {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师不在直播间"];
-                    return;
-                }
-                if (self.isPauseLive == YES) {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师暂停中,暂时无法接受邀请"];
-                    return;
-                }
-                if (self.enableSeat) {
-                    // 显示弹窗
-                    [self displaySeatApplyView];
-                }
-                else {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师关闭连麦申请"];
-                }
-            }
-        }
-            break;
-        case LIVEROOMACTION_SHOP:
-        {
-            [self showCartAlert];
-        }
-            break;
-        case LIVEROOMACTION_LIKE:
-        {
-            if (self.isCreaterInRoom) {
-                [self praiseBtnPressed];
-            }
-            else {
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"老师不在直播间"];
-            }
-        }
-            break;
-//        case LIVEROOMACTION_SHARE:
-//        {
-//            [self showShareAlert];
-//        }
-//            break;
-        default:
-            break;
-    }
-}
-
-- (void)showShareAlert {
-    NSString *qrUrl = [NSString stringWithFormat:@"%@%@?id=%@&userId=%@",WEBHOST,@"/#/shareLiveRoom",self.roomId,UserDefault(UIDKey)];
-    self.shareView = [ShareLiveDisplayView shareInstance];
-    [self.shareView configWithTeacherAvatar:self.createrAvatal teacherName:self.createrName qrUrl:qrUrl];
-    MJWeakSelf;
-    [self.shareView shareActionCallback:^(SHARETYPE type) {
-        UIImage *image = [UIImage getCurrentViewShot:weakSelf.shareView.containerView];
-        if (type == SHARETYPE_SAVE) {
-            [weakSelf savePicWithImage:image];
-        }
-        else {
-            [weakSelf showShareUI:image];
-        }
-    }];
-    [self.shareView showShareViewInView:self.view];
-}
-
-- (void)displaySeatApplyView {
-    [self.applyView showInView:self.view];
-}
-
-- (void)displayApplyingView {
-    [self.applyingView showInView:self.view];
-}
-
-- (void)showCartAlert {
-    [self.cardView showViewInView:self.view];
-}
-
-- (void)quitAction {
-    if (self.micStatus == MICSTATUS_CONNECTING) {
-        MJWeakSelf;
-        self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"连麦中,是否退出房间?" leftButtonTitle:@"取消" rightTitle:@"确定" inView:self.view cancel:^{
-            
-        } confirm:^{
-            [weakSelf quitRoom];
-        }];
-    }
-    else {
-        [self quitRoom];
-    }
-}
-
-- (void)quitRoom {
-    KSDragWindowManager *manager = [KSDragWindowManager sharedManager];
-    if (manager.hasShowWindow) {
-        [manager resignDragWindow];
-    }
-    // 清理视图
-    [self clearRemoteContainer];
-    // 退出房间
-    [self exitRoom];
-    [self.navigationController dismissViewControllerAnimated:YES completion:nil];
-}
-
-- (RCRTCEngine *)engine {
-    if (!_engine) {
-        _engine = [RCRTCEngine sharedInstance];
-        [_engine setStatusReportDelegate:self];
-        [_engine setDelegate:self];
-    }
-    return _engine;
-}
-
-- (NSMutableArray<KSLiveStreamVideo *> *)streamVideos {
-    if (!_streamVideos) {
-        _streamVideos = [NSMutableArray array];
-    }
-    return _streamVideos;
-}
-
-- (KSLiveStreamVideo *)localVideo {
-    if (!_localVideo) {
-        _localVideo = [KSLiveStreamVideo LocalStreamVideo];
-    }
-    return _localVideo;
-}
-
-
-- (UIView *)messageContentView {
-    if (!_messageContentView) {
-        _messageContentView = [[UIView alloc] init];
-        [_messageContentView setBackgroundColor: [UIColor clearColor]];
-    }
-    return _messageContentView;
-}
-
-- (NSMutableArray<KSRCMessageModel *> *)conversationDataRepository {
-    if (!_conversationDataRepository) {
-        _conversationDataRepository = [NSMutableArray array];
-    }
-    return _conversationDataRepository;
-}
-- (KSChatInputBarControl *)inputBar {
-    if (!_inputBar) {
-        _inputBar = [[KSChatInputBarControl alloc] initWithStatus:KSBottomBarStatusDefault];
-        [_inputBar setDelegate:self];
-    }
-    return _inputBar;
-}
-
-- (UITableView *)conversationMessageTableView {
-    if (!_conversationMessageTableView) {
-        _conversationMessageTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
-        _conversationMessageTableView.backgroundColor = [UIColor clearColor];
-        _conversationMessageTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
-        _conversationMessageTableView.dataSource = self;
-        _conversationMessageTableView.delegate = self;
-        _conversationMessageTableView.rowHeight = UITableViewAutomaticDimension;
-        _conversationMessageTableView.estimatedRowHeight = 40.0f;
-        _conversationMessageTableView.showsVerticalScrollIndicator = NO;
-        [_conversationMessageTableView registerClass:[KSChatroomTextCell class] forCellReuseIdentifier:@"KSChatroomTextCell"];
-    }
-    return _conversationMessageTableView;
-}
-
-- (SeatContentView *)seatContainer {
-    if (!_seatContainer) {
-        _seatContainer = [[SeatContentView alloc] init];
-    }
-    return _seatContainer;
-}
-
-- (KSLiveEmptyView *)emptyView {
-    if (!_emptyView) {
-        _emptyView = [[KSLiveEmptyView alloc] init];
-        _emptyView.backgroundColor = [UIColor clearColor];
-        BOOL isPhoneLive = YES;
-        [_emptyView dispPlayViewIsPhoneLive:isPhoneLive];
-    }
-    return _emptyView;
-}
-
-- (KSLiveEndView *)endView {
-    if (!_endView) {
-        _endView = [[KSLiveEndView alloc] init];
-        _endView.backgroundColor = HexRGB(0x25292e);
-        BOOL isPhoneLive = YES;
-        [_endView dispPlayViewIsPhoneLive:isPhoneLive];
-    }
-    return _endView;
-}
-
-- (KSLiveBadNetView *)netBadView {
-    if (!_netBadView) {
-        _netBadView = [[KSLiveBadNetView alloc] init];
-        BOOL isPhoneLive = YES;
-        [_netBadView dispPlayViewIsPhoneLive:isPhoneLive];
-        MJWeakSelf;
-        [_netBadView configViewWithImageName:@"liveVideo_close" desc:@"当前网络状态不佳" callback:^{
-            [weakSelf resetAllConnection];
-        }];
-    }
-    return _netBadView;
-}
-
-- (LOTAnimationView *)animationView {
-    if (!_animationView) {
-        _animationView = [LOTAnimationView animationWithFilePath:[[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"LiveCard" ofType:@"bundle"]] pathForResource:@"cardAnimation" ofType:@"json"]];
-        _animationView.loopAnimation = YES;
-    }
-    return _animationView;
-}
-
-- (void)resetNetTips {
-    self.lostStartTime = 0;
-    self.isBitError = NO;
-    self.bitErrorTime = 0;
-    self.isLostPackage = NO;
-    [self hideTipsView];
-}
-
-// 黑名单
-- (void)setBlacklistFlag:(BOOL)blacklistFlag {
-    _blacklistFlag = blacklistFlag;
-    [self refreshBottomChatStatus];
-}
-
-- (void)refreshBottomChatStatus {
-    if (self.bottomView) {
-        NSString *tipsTitle = self.blacklistFlag ? @"您已被老师禁言" : @"快来互动吧!";
-        self.bottomView.tipsLabel.text = tipsTitle;
-    }
-}
-
-
-- (void)resetAllConnection {
-    [self resetNetTips];
-    // 清理视图
-    [self.streamVideos removeAllObjects];
-    [self clearVideoViewSource];
-    [self removeSeatContainer];
-    
-    // 立刻房间后重新加入房间
-    
-    // 退出房间
-    [self.engine.defaultAudioStream setMicrophoneDisable:YES];
-    __weak typeof(self) weakSelf = self;
-    
-    [self.engine leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        __strong typeof(weakSelf) strongSelf = weakSelf;
-        if (code != RCRTCCodeSuccess) {
-            // 退出失败
-        }
-        // 3.加入RTC房间
-        [strongSelf joinLiveRoom];
-    }];
-    
-}
-
-- (void)sendDownSeatMessage {
-    KSLiveChatroomDownSeat *downSeatMessage = [[KSLiveChatroomDownSeat alloc] init];
-    downSeatMessage.audienceId = UserDefault(IM_USERID);
-    downSeatMessage.audienceName = UserDefault(NicknameKey);
-    MJWeakSelf;
-    [self sendMessage:downSeatMessage displayMessage:NO callback:^(BOOL success) {
-        weakSelf.micStatus = MICSTATUS_NOMAL;
-    }];
-}
-
-
-- (LiveroomTimeManager *)timeManager {
-    if (!_timeManager) {
-        _timeManager = [[LiveroomTimeManager alloc] initWithDelegate:self];
-    }
-    return _timeManager;
-}
-
-- (NSInteger)getCloseTime {
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
-    formatter.timeZone = [NSTimeZone systemTimeZone];
-    NSDate *currentDate = [NSDate date];
-    NSDate *expireDate = [formatter dateFromString:self.liveEndTime];
-    NSTimeInterval timeInterval = [expireDate timeIntervalSinceDate:currentDate];
-    return self.expiredMinute * 60 + timeInterval;
-}
-
-- (KSShopCardView *)cardView {
-    if (!_cardView) {
-        _cardView = [KSShopCardView shareInstance];
-        MJWeakSelf;
-        [_cardView clickAction:^(CART_TYPE type) {
-            [weakSelf displayTeacherInfo:type];
-        }];
-    }
-    return _cardView;
-}
-// tabs=  practice | 陪练课 live | 直播课 video | 视频课 music | 乐谱 跳转到对应tab页
-
-- (void)displayTeacherInfo:(CART_TYPE)type {
-    [self sendRushMessage];
-    RCRTCVideoView *videoView = nil;
-    for (UIView *view in self.videoView.subviews) {
-        if ([view isKindOfClass:[RCRTCVideoView class]]) {
-            videoView = (RCRTCVideoView *)view;
-        }
-    }
-    if (videoView) {
-        _hasShowSuspendView = YES;
-        KSDragWindowManager *manager = [KSDragWindowManager sharedManager];
-        [manager initDragWindowWithPhoneLive:YES];
-        manager.rootVC = (CustomNavViewController *)self.navigationController;
-        
-        [videoView removeFromSuperview];
-        [manager.dragWindow.containerView addSubview:videoView];
-        [videoView mas_updateConstraints:^(MASConstraintMaker *make) {
-            make.left.right.top.bottom.mas_equalTo(manager.dragWindow.containerView);
-        }];
-        [manager.dragWindow bringSubviewToFront:manager.dragWindow.cancelButton];
-    }
-    
-    NSString *tabs = @"";
-    switch (type) {
-        case CART_TYPE_NONE:
-        {
-            tabs = @"";
-        }
-            break;
-        case CART_TYPE_ACCOMPANY:
-        {
-            tabs = @"practice";
-        }
-            break;
-        case CART_TYPE_LIVE:
-        {
-            tabs = @"live";
-        }
-            break;
-        case CART_TYPE_VIDEO:
-        {
-            tabs = @"video";
-        }
-            break;
-        case CART_TYPE_MUSIC:
-        {
-            tabs = @"music";
-        }
-            break;
-        default:
-            break;
-    }
-    NSString *url = @"";
-    if ([NSString isEmptyString:tabs]) {
-        url = [NSString stringWithFormat:@"%@%@%@", WEBHOST,@"/#/teacherHome?teacherId=",self.createrId];
-    }
-    else {
-        url = [NSString stringWithFormat:@"%@%@%@&tabs=%@", WEBHOST,@"/#/teacherHome?teacherId=",self.createrId,tabs];
-    }
-    KSLiveWebViewController *ctrl = [[KSLiveWebViewController alloc] init];
-    ctrl.url = url;
-    [self.navigationController pushViewController:ctrl animated:YES];
-}
-
-- (void)sendRushMessage {
-//    KSRCShopRushMessage *rushMessage = [[KSRCShopRushMessage alloc] init];
-//    rushMessage.userId = UserDefault(UIDKey);
-//    rushMessage.userName = UserDefault(NicknameKey);
-//    [self sendMessage:rushMessage displayMessage:NO callback:^(BOOL success) {
-//
-//    }];
-}
-- (void)showAnimationView:(BOOL)isJoinRoom showMessag:(NSString *)message {
-
-    if (self.enterAnimationView && self.enterAnimationView.isShow) {
-        return;
-    }
-    else {
-        ANIMATIONTYPE type = isJoinRoom ? ANIMATIONTYPE_JOIN : ANIMATIONTYPE_RUSH;
-        self.enterAnimationView = [[LiveAnimationView alloc] initWithTitle:message animationType:type];
-        [self.view addSubview:self.enterAnimationView];
-        [self.enterAnimationView mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.left.right.mas_equalTo(self.view);
-            make.width.mas_equalTo(KPortraitWidth);
-            make.height.mas_equalTo(24.0f);
-            make.bottom.mas_equalTo(self.messageContentView.mas_top).offset(-6);
-        }];
-        [self.view bringSubviewToFront:self.enterAnimationView];
-        
-        MJWeakSelf;
-        [self.enterAnimationView startAnimationEndCallback:^{
-            
-            weakSelf.enterAnimationView.isShow = NO;
-            weakSelf.enterAnimationView = nil;
-        }];
-    }
-}
-
-- (void)dealloc {
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-}
-
-- (LiveApplyView *)applyView {
-    if (!_applyView) {
-        _applyView = [LiveApplyView shareInstance];
-        MJWeakSelf;
-        [_applyView applySeatCallback:^{
-            [weakSelf applySeatAction];
-        }];
-    }
-    return _applyView;
-}
-
-- (void)applySeatAction {
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"已发起连麦申请"];
-    [self sendSeatMessageApply:YES];
-}
-
-- (LiveApplyingView *)applyingView {
-    if (!_applyingView) {
-        _applyingView = [LiveApplyingView shareInstance];
-        NSString *avatar = UserDefaultObjectForKey(AvatarUrlKey);
-        [_applyingView.myAvatal sd_setImageWithURL:[NSURL URLWithString:[avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-        [_applyingView.teacherAvatal sd_setImageWithURL:[NSURL URLWithString:[self.createrAvatal getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
-        MJWeakSelf;
-        [_applyingView cancleApplyCallback:^{
-            [weakSelf cancleApplyAction];
-        }];
-    }
-    return _applyingView;
-}
-
-- (void)cancleApplyAction {
-    MJWeakSelf;
-    self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"连麦申请中,确认取消连麦申请吗?" leftButtonTitle:@"取消" rightTitle:@"确定" inView:self.view cancel:^{
-        
-    } confirm:^{
-        [weakSelf.applyingView hideView];
-        [weakSelf sendSeatMessageApply:NO];
-    }];
-}
-
-
-- (void)showShareUI:(UIImage *)image {
-    [KSUMShareManager shareInstanceWithImage:image url:@"" shareTitle:@"" descMessage:@"" shareType:KSSHARETYPE_IMAGE showInView:self callback:^(BOOL isSuccess, NSString * _Nonnull descMessage) {
-        if (isSuccess) {
-            [self.shareView hideView];
-        }
-        else {
-
-        }
-        [LOADING_MANAGER MBShowAUTOHidingInWindow:descMessage];
-    }];
-}
-
-- (void)savePicWithImage:(UIImage *)image {
-
-    // 判断相册权限
-    PREMISSIONTYPE albumEnable = [RecordCheckManager checkPhotoLibraryPremissionAvaiable:NO showInView:nil];
-    if (albumEnable == PREMISSIONTYPE_YES) { // 如果有权限
-        
-        [[TZImageManager manager] savePhotoWithImage:image completion:^(PHAsset *asset, NSError *error) {
-            if (!error) {
-                [self .shareView hideView];
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"保存成功"];
-            }
-            else {
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"保存图片失败"];
-            }
-        }];
-    }
-    else {
-        if (albumEnable == PREMISSIONTYPE_NO) {
-            [self showAlertWithMessage:@"请开启相册访问权限" type:CHECKDEVICETYPE_CAMREA];
-        }
-    }
-}
-
-- (void)showAlertWithMessage:(NSString *)message type:(CHECKDEVICETYPE)deviceType {
-    [KSPremissionAlert shareInstanceDisplayImage:deviceType message:message showInView:self.view cancel:^{
-        
-    } confirm:^{
-        [self openSettingView];
-    }];
-    
-}
-
-- (void)openSettingView {
-    if (@available(iOS 10, *)) {
-        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
-    } else {
-        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
-    }
-}
-
-@end

+ 0 - 68
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.h

@@ -1,68 +0,0 @@
-//
-//  KSChatroomMessageCenter.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <Foundation/Foundation.h>
-#import <RongIMLibCore/RongIMLibCore.h>
-#import "KSLiveChatroomLike.h"
-#import "KSLiveChatroomDownSeat.h"
-#import "KSLiveChatroomEnter.h"
-#import "KSLiveChatroomLeave.h"
-#import "KSLiveChatroomUserQuit.h"
-#import "KSLiveChatroomWelcome.h"
-#import "KSLiveChatroomSeatApply.h"
-#import "KSLiveChatroomSeatResponse.h"
-#import "KSLiveChatroomMemberCount.h"
-#import "KSLiveChatroomMemberUp.h"
-
-#import "KSLiveChatroomClose.h"
-#import "KSLiveChatroomKickOut.h"
-#import "KSLiveBlockUser.h"
-#import "KSLiveUnBlockUser.h"
-#import "RCChatroomLikeCount.h"
-#import "KSRCPauseLiveMessage.h"
-#import "KSRCShopRushMessage.h"
-#import "RCChatroomSeatsControl.h"
-#import "KSDownSeatAllMessage.h"
-#import "KSRejectAllSeatMessage.h"
-
-typedef void(^RCChatroomMessageSuccess)(long messageId);
-typedef void(^RCChatroomMessageError)(RCErrorCode errorCode, long messageId);
-
-NS_ASSUME_NONNULL_BEGIN
-
-@protocol RCChatroomLocalMessageDelegate <NSObject>
-
-- (void)didReceiveLocalChatroomMessage:(RCMessageContent *)content;
-
-@end
-
-@interface KSChatroomMessageCenter : NSObject
-
-///注册消息类
-+ (void)registerMessageTypes;
-
-///发送消息
-///@param roomId 房间id
-///@param content 消息,对应自定义消息类型
-+ (void)sendChatMessage:(NSString *)roomId
-                content:(RCMessageContent *)content
-                success:(RCChatroomMessageSuccess)success
-                  error:(RCChatroomMessageError)error;
-
-///发送消息
-///@param roomId 房间id
-///@param content 消息,对应自定义消息类型
-///@param queue 回调线程
-+ (void)sendChatMessage:(NSString *)roomId
-                content:(RCMessageContent *)content
-                  queue:(dispatch_queue_t)queue
-                success:(RCChatroomMessageSuccess)success
-                  error:(RCChatroomMessageError)error;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 83
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.m

@@ -1,83 +0,0 @@
-//
-//  KSChatroomMessageCenter.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSChatroomMessageCenter.h"
-
-#ifdef __has_include
-#if __has_include(<RongIMKit/RongIMKit.h>)
-#import <RongIMKit/RongIMKit.h>
-#define CMPTIMKit YES
-#endif
-#endif
-
-#ifdef CMPTIMKit
-#define RCIMReceiveMessageDelegate RCIMReceiveMessageDelegate
-#define RCClient [RCIM sharedRCIM]
-#else
-#define RCIMReceiveMessageDelegate RCIMClientReceiveMessageDelegate
-#define RCClient [RCCoreClient sharedCoreClient]
-#endif
-
-
-@implementation KSChatroomMessageCenter
-
-+ (void)registerMessageTypes {
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomLike class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomDownSeat class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomEnter class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomLeave class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomUserQuit class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomWelcome class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomSeatApply class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomSeatResponse class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomClose class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomKickOut class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomMemberCount class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomMemberUp class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveBlockUser class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveUnBlockUser class]];
-    [[RCIM sharedRCIM] registerMessageType:[RCChatroomLikeCount class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSRCPauseLiveMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSRCShopRushMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[RCChatroomSeatsControl class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSDownSeatAllMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSRejectAllSeatMessage class]];
-}
-
-+ (void)sendChatMessage:(NSString *)roomId content:(RCMessageContent *)content
-                success:(RCChatroomMessageSuccess)success
-                  error:(RCChatroomMessageError)error {
-    [KSChatroomMessageCenter sendChatMessage:roomId
-                                     content:content
-                                       queue:dispatch_get_main_queue()
-                                     success:success
-                                       error:error];
-}
-
-+ (void)sendChatMessage:(NSString *)roomId
-                content:(RCMessageContent *)content
-                  queue:(dispatch_queue_t)queue
-                success:(RCChatroomMessageSuccess)success
-                  error:(RCChatroomMessageError)error {
-    [[RCIM sharedRCIM] sendMessage:ConversationType_CHATROOM
-                 targetId:roomId
-                  content:content
-              pushContent:nil
-                 pushData:nil
-                  success:^(long messageId) {
-        dispatch_async(queue, ^{
-            success(messageId);
-        });
-    }
-                    error:^(RCErrorCode nErrorCode, long messageId) {
-        dispatch_async(queue, ^{
-            error(nErrorCode, messageId);
-        });
-    }];
-}
-
-@end

+ 0 - 17
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSDownSeatAllMessage.h

@@ -1,17 +0,0 @@
-//
-//  KSDownSeatAllMessage.h
-//  TeacherDaya
-//
-//  Created by 王智 on 2022/7/18.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSDownSeatAllMessage : RCMessageContent
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 43
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSDownSeatAllMessage.m

@@ -1,43 +0,0 @@
-//
-//  KSDownSeatAllMessage.m
-//  TeacherDaya
-//
-//  Created by 王智 on 2022/7/18.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "KSDownSeatAllMessage.h"
-
-@implementation KSDownSeatAllMessage
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.senderUserInfo) {
-        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:DownSeatAll";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 20
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveBlockUser.h

@@ -1,20 +0,0 @@
-//
-//  KSLiveBlockUser.h
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveBlockUser : RCMessageContent
-/**
- 用户 Id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 43
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveBlockUser.m

@@ -1,43 +0,0 @@
-//
-//  KSLiveBlockUser.m
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/30.
-//
-
-#import "KSLiveBlockUser.h"
-
-@implementation KSLiveBlockUser
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setObject:self.userId forKey:@"userId"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [[json ks_dictionaryValueForKey:@"content"] ks_stringValueForKey:@"userId"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:BLOCK_BLACK_USER";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 16
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomClose.h

@@ -1,16 +0,0 @@
-//
-//  KSLiveChatroomClose.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveChatroomClose : RCMessageContent
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 31
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomClose.m

@@ -1,31 +0,0 @@
-//
-//  KSLiveChatroomClose.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomClose.h"
-
-@implementation KSLiveChatroomClose
-
-- (NSData *)encode {
-    return [NSJSONSerialization dataWithJSONObject:@{} options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:ForcedOffline";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 22
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.h

@@ -1,22 +0,0 @@
-//
-//  KSLiveChatroomDownSeat.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/// 观众下麦通知
-@interface KSLiveChatroomDownSeat : RCMessageContent
-
-// 观众名称
-@property (nonatomic, strong) NSString *audienceName;
-// 观众id
-@property (nonatomic, strong) NSString *audienceId;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 54
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.m

@@ -1,54 +0,0 @@
-//
-//  KSLiveChatroomDownSeat.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomDownSeat.h"
-
-@implementation KSLiveChatroomDownSeat
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    
-    // 观众
-    if (self.audienceName) {
-        [mutableDict setObject:self.audienceName forKey:@"audienceName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"audienceName"];
-    }
-    if (self.audienceId) {
-        [mutableDict setObject:self.audienceId forKey:@"audienceId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"audienceId"];
-    }
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    
-    self.audienceName = [json ks_stringValueForKey:@"audienceName"];
-    self.audienceId = [json ks_stringValueForKey:@"audienceId"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:downSeat";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-@end

+ 0 - 26
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.h

@@ -1,26 +0,0 @@
-//
-//  KSLiveChatroomEnter.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveChatroomEnter : RCMessageContent
-
-/**
- 用户 Id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-/**
- 用户名称
-*/
-@property(nonatomic, copy, nonnull) NSString *userName;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 53
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.m

@@ -1,53 +0,0 @@
-//
-//  KSLiveChatroomEnter.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomEnter.h"
-
-@implementation KSLiveChatroomEnter
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.userId) {
-        [multableDict setObject:self.userId forKey:@"userId"];
-    } else {
-        [multableDict setObject:@"" forKey:@"userId"];
-    }
-    if (self.userName) {
-        [multableDict setObject:self.userName forKey:@"userName"];
-    } else {
-        [multableDict setObject:@"" forKey:@"userName"];
-    }
-    if (self.senderUserInfo) {
-        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [json ks_stringValueForKey:@"userId"];
-    self.userName = [json ks_stringValueForKey:@"userName"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:Enter";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 36
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.h

@@ -1,36 +0,0 @@
-//
-//  KSLiveChatroomKickOut.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveChatroomKickOut : RCMessageContent
-
-/**
- 操作用户 Id
-*/
-@property(nonatomic, copy) NSString *userId;
-
-/**
- 操作用户 名称
-*/
-@property(nonatomic, copy) NSString *userName;
-
-/**
- 被踢出用户 Id
-*/
-@property(nonatomic, copy) NSString *targetId;
-
-/**
- 被踢出用户 名称
-*/
-@property(nonatomic, copy) NSString *targetName;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 65
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.m

@@ -1,65 +0,0 @@
-//
-//  KSLiveChatroomKickOut.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomKickOut.h"
-
-@implementation KSLiveChatroomKickOut
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    if (self.userId) {
-        [mutableDict setObject:self.userId forKey:@"userId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"userId"];
-    }
-    if (self.userName) {
-        [mutableDict setObject:self.userName forKey:@"userName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"userName"];
-    }
-    if (self.targetId) {
-        [mutableDict setObject:self.targetId forKey:@"targetId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"targetId"];
-    }
-    if (self.targetName) {
-        [mutableDict setObject:self.targetName forKey:@"targetName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"targetName"];
-    }
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [json ks_stringValueForKey:@"userId"];
-    self.userName = [json ks_stringValueForKey:@"userName"];
-    self.targetId = [json ks_stringValueForKey:@"targetId"];
-    self.targetName = [json ks_stringValueForKey:@"targetName"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:KickOut";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 25
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.h

@@ -1,25 +0,0 @@
-//
-//  KSLiveChatroomLeave.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/// 用户主动退出发送消息
-@interface KSLiveChatroomLeave : RCMessageContent
-/**
- 用户 Id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-/**
- 用户名称
-*/
-@property(nonatomic, copy, nonnull) NSString *userName;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 53
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.m

@@ -1,53 +0,0 @@
-//
-//  KSLiveChatroomLeave.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomLeave.h"
-
-@implementation KSLiveChatroomLeave
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.userId) {
-        [multableDict setObject:self.userId forKey:@"userId"];
-    } else {
-        [multableDict setObject:@"" forKey:@"userId"];
-    }
-    if (self.userName) {
-        [multableDict setObject:self.userName forKey:@"userName"];
-    } else {
-        [multableDict setObject:@"" forKey:@"userName"];
-    }
-    if (self.senderUserInfo) {
-        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [json ks_stringValueForKey:@"userId"];
-    self.userName = [json ks_stringValueForKey:@"userName"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:Leave";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 19
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLike.h

@@ -1,19 +0,0 @@
-//
-//  KSLiveChatroomLike.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/// 点赞消息
-@interface KSLiveChatroomLike : RCMessageContent
-
-@property(nonatomic, assign) int counts;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 56
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomLike.m

@@ -1,56 +0,0 @@
-//
-//  KSLiveChatroomLike.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomLike.h"
-
-@implementation KSLiveChatroomLike
-
-- (NSData *)encode {
-    NSMutableDictionary *dataDict = [NSMutableDictionary dictionary];
-    if (self.counts) {
-        [dataDict setObject:@(self.counts) forKey:@"counts"];
-    }
-    if (self.extra) {
-        [dataDict setObject:self.extra forKey:@"extra"];
-    } else {
-        [dataDict setObject:@"" forKey:@"extra"];
-    }
-    if (self.senderUserInfo) {
-        [dataDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    
-    return [NSJSONSerialization dataWithJSONObject:dataDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) {
-        return;
-    }
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json) {
-        self.counts = [[json ks_stringValueForKey:@"counts"] intValue];
-        self.extra = [json ks_stringValueForKey:@"extra"];
-        
-        NSDictionary *userinfoDic = dictionary[@"user"];
-        [self decodeUserInfo:userinfoDic];
-    }
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:Like";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 21
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.h

@@ -1,21 +0,0 @@
-//
-//  KSLiveChatroomMemberCount.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/3/31.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveChatroomMemberCount : RCMessageContent
-
-/**
-    当前观众数量
-*/
-@property(nonatomic, assign) NSInteger count;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 43
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.m

@@ -1,43 +0,0 @@
-//
-//  KSLiveChatroomMemberCount.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/3/31.
-//
-
-#import "KSLiveChatroomMemberCount.h"
-
-@implementation KSLiveChatroomMemberCount
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setObject:@(self.count) forKey:@"count"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.count = [[json ks_stringValueForKey:@"count"] intValue];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:MemberCount";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-    return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-    return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 20
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.h

@@ -1,20 +0,0 @@
-//
-//  KSLiveChatroomMemberUp.h
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/27.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveChatroomMemberUp : RCMessageContent
-/**
-    当前观众数量
-*/
-@property(nonatomic, assign) NSInteger count;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 43
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.m

@@ -1,43 +0,0 @@
-//
-//  KSLiveChatroomMemberUp.m
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/27.
-//
-
-#import "KSLiveChatroomMemberUp.h"
-
-@implementation KSLiveChatroomMemberUp
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setObject:@(self.count) forKey:@"count"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.count = [[json ks_dictionaryValueForKey:@"content"] ks_integerValueForKey:@"count"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:MemberCountUp";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-    return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-    return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 40
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.h

@@ -1,40 +0,0 @@
-//
-//  KSLiveChatroomSeatApply.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef NS_ENUM(NSInteger, SEATHANDLE) {
-    SEATHANDLE_INVITE = 1,     // 老师邀请连麦
-    SEATHANDLE_DISINVITE = 2,  // 老师取消邀请
-    SEATHANDLE_APPLY = 3,      // 观众申请连麦
-    SEATHANDLE_CANCELAPPLY = 4,// 观众取消申请
-    SEATHANDLE_KICKSEAT = 5,   // 老师将连麦人抱下麦
-};
-
-/// 连麦邀请或申请操作
-@interface KSLiveChatroomSeatApply : RCMessageContent
-/**
- 操作类型 1 老师邀请 2 老师取消邀请 3 观众申请 4 观众取消申请
- */
-@property (nonatomic, assign) SEATHANDLE type;
-// 老师名称
-@property (nonatomic, strong) NSString *teacherName;
-// 老师id
-@property (nonatomic, strong) NSString *teacherId;
-// 观众名称
-@property (nonatomic, strong) NSString *audienceName;
-// 观众id
-@property (nonatomic, strong) NSString *audienceId;
-/// 观众头像
-@property (nonatomic, strong) NSString *audienceAvatar;
-// 观众学习声部
-@property (nonatomic, strong) NSString *audienceSubjectName;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 85
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.m

@@ -1,85 +0,0 @@
-//
-//  KSLiveChatroomSeatApply.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomSeatApply.h"
-
-@implementation KSLiveChatroomSeatApply
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    // 老师
-    if (![NSString isEmptyString:self.teacherName]) {
-        [mutableDict setObject:self.teacherName forKey:@"teacherName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"teacherName"];
-    }
-    if (![NSString isEmptyString:self.teacherId]) {
-        [mutableDict setObject:self.teacherId forKey:@"teacherId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"teacherId"];
-    }
-    // 观众
-    if (![NSString isEmptyString:self.audienceName]) {
-        [mutableDict setObject:self.audienceName forKey:@"audienceName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"audienceName"];
-    }
-    if (![NSString isEmptyString:self.audienceId]) {
-        [mutableDict setObject:self.audienceId forKey:@"audienceId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"audienceId"];
-    }
-    
-    if (![NSString isEmptyString:self.audienceAvatar]) {
-        [mutableDict setObject:self.audienceAvatar forKey:@"audienceAvatar"];
-    }
-    else {
-        [mutableDict setObject:@"" forKey:@"audienceAvatar"];
-    }
-    if (![NSString isEmptyString:self.audienceSubjectName]) {
-        [mutableDict setObject:self.audienceSubjectName forKey:@"audienceSubjectName"];
-    }
-    else {
-        [mutableDict setObject:@"" forKey:@"audienceSubjectName"];
-    }
-    
-    [mutableDict setObject:@(self.type) forKey:@"type"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.teacherName = [json ks_stringValueForKey:@"teacherName"];
-    self.teacherId = [json ks_stringValueForKey:@"teacherId"];
-    self.audienceName = [json ks_stringValueForKey:@"audienceName"];
-    self.audienceId = [json ks_stringValueForKey:@"audienceId"];
-    self.type = [json ks_integerValueForKey:@"type"];
-    self.audienceAvatar = [json ks_stringValueForKey:@"audienceAvatar"];
-    self.audienceSubjectName = [json ks_stringValueForKey:@"audienceSubjectName"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:SeatApply";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 39
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.h

@@ -1,39 +0,0 @@
-//
-//  KSLiveChatroomSeatResponse.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef NS_ENUM(NSInteger, SEATRESPONSE) {
-    SEATRESPONSE_TEACHERAPPROVE = 1,       // 老师同意连麦
-    SEATRESPONSE_TEACHERREJECT = 2,        // 老师拒绝连麦
-    SEATRESPONSE_AUDIENCEAPPROVE = 3,      // 观众同意连麦
-    SEATRESPONSE_AUDIENCEREJECT = 4,       // 观众拒绝连麦
-};
-
-/// 连麦回复
-@interface KSLiveChatroomSeatResponse : RCMessageContent
-
-/**
- 操作类型 1 老师同意 2 老师拒绝 3 观众同意 4 观众拒绝
- */
-@property (nonatomic, assign) SEATRESPONSE type;
-// 老师名称
-@property (nonatomic, strong) NSString *teacherName;
-// 老师id
-@property (nonatomic, strong) NSString *teacherId;
-// 观众名称
-@property (nonatomic, strong) NSString *audienceName;
-// 观众id
-@property (nonatomic, strong) NSString *audienceId;
-
-
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 69
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.m

@@ -1,69 +0,0 @@
-//
-//  KSLiveChatroomSeatResponse.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomSeatResponse.h"
-
-@implementation KSLiveChatroomSeatResponse
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    // 老师
-    if (self.teacherName) {
-        [mutableDict setObject:self.teacherName forKey:@"teacherName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"teacherName"];
-    }
-    if (self.teacherId) {
-        [mutableDict setObject:self.teacherId forKey:@"teacherId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"teacherId"];
-    }
-    // 观众
-    if (self.audienceName) {
-        [mutableDict setObject:self.audienceName forKey:@"audienceName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"audienceName"];
-    }
-    if (self.audienceId) {
-        [mutableDict setObject:self.audienceId forKey:@"audienceId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"audienceId"];
-    }
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    [mutableDict setObject:@(self.type) forKey:@"type"];
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.teacherName = [json ks_stringValueForKey:@"teacherName"];
-    self.teacherId = [json ks_stringValueForKey:@"teacherId"];
-    self.audienceName = [json ks_stringValueForKey:@"audienceName"];
-    self.audienceId = [json ks_stringValueForKey:@"audienceId"];
-    self.type = [json ks_integerValueForKey:@"type"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:SeatResponse";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 27
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.h

@@ -1,27 +0,0 @@
-//
-//  KSLiveChatroomUserQuit.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/// 观众未调用leave退出房间
-@interface KSLiveChatroomUserQuit : RCMessageContent
-
-/**
- 用户 Id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-/**
- 用户名称
-*/
-@property(nonatomic, copy, nonnull) NSString *userName;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 54
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.m

@@ -1,54 +0,0 @@
-//
-//  KSLiveChatroomUserQuit.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomUserQuit.h"
-
-@implementation KSLiveChatroomUserQuit
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.userId) {
-        [multableDict setObject:self.userId forKey:@"userId"];
-    } else {
-        [multableDict setObject:@"" forKey:@"userId"];
-    }
-    if (self.userName) {
-        [multableDict setObject:self.userName forKey:@"userName"];
-    } else {
-        [multableDict setObject:@"" forKey:@"userName"];
-    }
-    if (self.senderUserInfo) {
-        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [json ks_stringValueForKey:@"userId"];
-    self.userName = [json ks_stringValueForKey:@"userName"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:LookerLoginOut";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-
-@end

+ 0 - 24
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomWelcome.h

@@ -1,24 +0,0 @@
-//
-//  KSLiveChatroomWelcome.h
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveChatroomWelcome : RCMessageContent
-
-@property(nonatomic, copy) NSString *msgId;
-
-@property(nonatomic, assign) int counts;
-
-@property(nonatomic, assign) int rank;
-
-@property(nonatomic, assign) int level;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 74
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveChatroomWelcome.m

@@ -1,74 +0,0 @@
-//
-//  KSLiveChatroomWelcome.m
-//  KulexiuForTeacher
-//
-//  Created by Kyle on 2022/3/30.
-//
-
-#import "KSLiveChatroomWelcome.h"
-
-@implementation KSLiveChatroomWelcome
-
-- (NSData *)encode {
-    NSMutableDictionary *dataDict = [NSMutableDictionary dictionary];
-    if (self.msgId) {
-        [dataDict setObject:self.msgId forKey:@"msgId"];
-    } else {
-        [dataDict setObject:@"" forKey:@"msgId"];
-    }
-    if (self.counts) {
-        
-        [dataDict setObject:@(self.counts) forKey:@"counts"];
-    }
-    if (self.rank) {
-        [dataDict setObject:@(self.rank) forKey:@"rank"];
-    }
-    if (self.level) {
-        
-        [dataDict setObject:@(self.level) forKey:@"level"];
-    }
-    if (self.extra) {
-        [dataDict setObject:self.extra forKey:@"extra"];
-    } else {
-        [dataDict setObject:@"" forKey:@"extra"];
-    }
-    
-    
-    if (self.senderUserInfo) {
-        [dataDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    
-    NSData *data = [NSJSONSerialization dataWithJSONObject:dataDict options:kNilOptions error:nil];
-    return data;
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) {
-        return;
-    }
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json) {
-        self.msgId = [json ks_stringValueForKey:@"msgId"];
-        self.counts = [[json ks_stringValueForKey:@"counts"] intValue];
-        self.rank = [[json ks_stringValueForKey:@"rank"] intValue];
-        self.level = [[json ks_stringValueForKey:@"level"] intValue];
-        
-        self.extra = [json ks_stringValueForKey:@"extra"];
-        NSDictionary *userinfoDic = dictionary[@"user"];
-        [self decodeUserInfo:userinfoDic];
-    }
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:Welcome";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-    return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-    return MessagePersistent_NONE;
-}
-@end

+ 0 - 20
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveUnBlockUser.h

@@ -1,20 +0,0 @@
-//
-//  KSLiveUnBlockUser.h
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/30.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveUnBlockUser : RCMessageContent
-/**
- 用户 Id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 44
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSLiveUnBlockUser.m

@@ -1,44 +0,0 @@
-//
-//  KSLiveUnBlockUser.m
-//  KulexiuForStudent
-//
-//  Created by 王智 on 2022/5/30.
-//
-
-#import "KSLiveUnBlockUser.h"
-
-@implementation KSLiveUnBlockUser
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setObject:self.userId forKey:@"userId"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [[json ks_dictionaryValueForKey:@"content"] ks_stringValueForKey:@"userId"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:UNBLOCK_BLACK_USER";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-
-@end

+ 0 - 80
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCMessageModel.h

@@ -1,80 +0,0 @@
-//
-//  KSRCMessageModel.h
-//  LiveStreamDemo
-//
-//  Created by Kyle on 2021/10/21.
-//
-
-#import <Foundation/Foundation.h>
-#import <RongIMLib/RongIMLib.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSRCMessageModel : NSObject
-
-/**
- 用户信息
- */
-@property(nonatomic, strong) RCUserInfo *userInfo;
-
-/**
- 会话类型
- */
-@property(nonatomic, assign) RCConversationType conversationType;
-
-/**
- 目标会话ID
- */
-@property(nonatomic, strong) NSString *targetId;
-
-/**
- 消息ID
- */
-@property(nonatomic, assign) long messageId;
-
-/**
- 消息方向
- */
-@property(nonatomic, assign) RCMessageDirection messageDirection;
-
-/**
- 发送者的用户ID
- */
-@property(nonatomic, strong) NSString *senderUserId;
-
-/**
- 消息的接收时间(Unix时间戳、毫秒)
- */
-@property(nonatomic, assign) long long receivedTime;
-
-/**
- 消息的发送时间(Unix时间戳、毫秒)
- */
-@property(nonatomic, assign) long long sentTime;
-
-/**
- 消息的类型名
- */
-@property(nonatomic, strong) NSString *objectName;
-
-/**
- 消息的内容
- */
-@property(nonatomic, strong) RCMessageContent *content;
-
-/**
- 消息的附加字段
- */
-@property(nonatomic, strong) NSString *extra;
-
-/**
- 初始化消息Cell的数据模型
- 
- @param rcMessage   消息实体
- @return            消息Cell的数据模型对象
- */
-- (instancetype)initWithMessage:(RCMessage *)rcMessage;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 31
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCMessageModel.m

@@ -1,31 +0,0 @@
-//
-//  KSRCMessageModel.m
-//  LiveStreamDemo
-//
-//  Created by Kyle on 2021/10/21.
-//
-
-#import "KSRCMessageModel.h"
-
-@implementation KSRCMessageModel
-
-- (instancetype)initWithMessage:(RCMessage *)rcMessage {
-    self = [super init];
-    if (self) {
-        self.conversationType = rcMessage.conversationType;
-        self.targetId = rcMessage.targetId;
-        self.messageId = rcMessage.messageId;
-        self.messageDirection = rcMessage.messageDirection;
-        self.senderUserId = rcMessage.senderUserId;
-        self.sentTime = rcMessage.sentTime;
-        self.objectName = rcMessage.objectName;
-        self.content = rcMessage.content;
-        self.userInfo = nil;
-        self.receivedTime = rcMessage.receivedTime;
-        self.extra = rcMessage.extra;
-    }
-    
-    return self;
-}
-
-@end

+ 0 - 17
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.h

@@ -1,17 +0,0 @@
-//
-//  KSRCPauseLiveMessage.h
-//  StudentDaya
-//
-//  Created by 王智 on 2022/5/23.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSRCPauseLiveMessage : RCMessageContent
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 42
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.m

@@ -1,42 +0,0 @@
-//
-//  KSRCPauseLiveMessage.m
-//  StudentDaya
-//
-//  Created by 王智 on 2022/5/23.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "KSRCPauseLiveMessage.h"
-
-@implementation KSRCPauseLiveMessage
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.senderUserInfo) {
-        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:PauseLive";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 27
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCShopRushMessage.h

@@ -1,27 +0,0 @@
-//
-//  KSRCShopRushMessage.h
-//  StudentDaya
-//
-//  Created by 王智 on 2022/5/24.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSRCShopRushMessage : RCMessageContent
-
-/**
- 用户id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-/**
- 用户名称
-*/
-@property(nonatomic, copy, nonnull) NSString *userName;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 54
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRCShopRushMessage.m

@@ -1,54 +0,0 @@
-//
-//  KSRCShopRushMessage.m
-//  StudentDaya
-//
-//  Created by 王智 on 2022/5/24.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "KSRCShopRushMessage.h"
-
-@implementation KSRCShopRushMessage
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    if (self.userId) {
-        [mutableDict setObject:self.userId forKey:@"userId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"userId"];
-    }
-    if (self.userName) {
-        [mutableDict setObject:self.userName forKey:@"userName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"userName"];
-    }
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [json ks_stringValueForKey:@"userId"];
-    self.userName = [json ks_stringValueForKey:@"userName"];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:SnapUp";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 17
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRejectAllSeatMessage.h

@@ -1,17 +0,0 @@
-//
-//  KSRejectAllSeatMessage.h
-//  TeacherDaya
-//
-//  Created by 王智 on 2022/7/18.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSRejectAllSeatMessage : RCMessageContent
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 43
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/KSRejectAllSeatMessage.m

@@ -1,43 +0,0 @@
-//
-//  KSRejectAllSeatMessage.m
-//  TeacherDaya
-//
-//  Created by 王智 on 2022/7/18.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "KSRejectAllSeatMessage.h"
-
-@implementation KSRejectAllSeatMessage
-
-- (NSData *)encode {
-    NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    if (self.senderUserInfo) {
-        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-
-+ (NSString *)getObjectName {
-  return @"RC:Chatroom:RejectSeatAll";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 22
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomLikeCount.h

@@ -1,22 +0,0 @@
-//
-//  RCChatroomLikeCount.h
-//  StudentDaya
-//
-//  Created by 王智 on 2022/4/14.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RCChatroomLikeCount : RCMessageContent
-
-/**
-    当前点赞数量
-*/
-@property(nonatomic, assign) NSInteger count;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 44
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomLikeCount.m

@@ -1,44 +0,0 @@
-//
-//  RCChatroomLikeCount.m
-//  StudentDaya
-//
-//  Created by 王智 on 2022/4/14.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "RCChatroomLikeCount.h"
-
-@implementation RCChatroomLikeCount
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    [mutableDict setObject:@(self.count) forKey:@"count"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.count = [[json ks_stringValueForKey:@"count"] intValue];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:LikeCount";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-    return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-    return MessagePersistent_NONE;
-}
-
-@end

+ 0 - 33
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.h

@@ -1,33 +0,0 @@
-//
-//  RCChatroomSeatsControl.h
-//  StudentDaya
-//
-//  Created by Kyle on 2022/2/21.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RCChatroomSeatsControl : RCMessageContent
-
-/**
- 用户id
-*/
-@property(nonatomic, copy, nonnull) NSString *userId;
-
-/**
- 用户名称
-*/
-@property(nonatomic, copy, nonnull) NSString *userName;
-
-/**
- 是否禁止连麦 YES 禁止 NO 开启
- */
-@property(nonatomic, assign) BOOL seatBan;
-
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 55
KulexiuForStudent/KulexiuForStudent/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.m

@@ -1,55 +0,0 @@
-//
-//  RCChatroomSeatsControl.m
-//  StudentDaya
-//
-//  Created by Kyle on 2022/2/21.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "RCChatroomSeatsControl.h"
-
-@implementation RCChatroomSeatsControl
-
-- (NSData *)encode {
-    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
-    if (self.userId) {
-        [mutableDict setObject:self.userId forKey:@"userId"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"userId"];
-    }
-    if (self.userName) {
-        [mutableDict setObject:self.userName forKey:@"userName"];
-    } else {
-        [mutableDict setObject:@"" forKey:@"userName"];
-    }
-    [mutableDict setObject:@(self.seatBan) forKey:@"seatBan"];
-    if (self.senderUserInfo) {
-        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
-    }
-    return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
-}
-
-- (void)decodeWithData:(NSData *)data {
-    if (data == nil) return;
-    NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
-    NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
-    if (json == nil) return;
-    self.userId = [json ks_stringValueForKey:@"userId"];
-    self.userName = [json ks_stringValueForKey:@"userName"];
-    self.seatBan = [[json ks_stringValueForKey:@"seatBan"] boolValue];
-    NSDictionary *userinfoDic = dictionary[@"user"];
-    [self decodeUserInfo:userinfoDic];
-}
-
-+ (NSString *)getObjectName {
-    return @"RC:Chatroom:SeatsCtrl";
-}
-
-- (NSArray<NSString *> *)getSearchableWords {
-  return nil;
-}
-
-+ (RCMessagePersistent)persistentFlag {
-  return MessagePersistent_NONE;
-}
-@end

+ 0 - 42
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/KSLiveStreamVideo.h

@@ -1,42 +0,0 @@
-//
-//  KSLiveStreamVideo.h
-//  LiveStreamDemo
-//
-//  Created by Kyle on 2021/10/21.
-//
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-#import <RongRTCLib/RongRTCLib.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSLiveStreamVideo : NSObject
-
-@property (nonatomic, strong) NSString *userId;
-
-@property (nonatomic, copy) NSString *streamId;
-
-@property (nonatomic, strong) NSString *streamTag;
-
-/*!
- 包含子类的 RCRTCLocalVideoView 和 RCRTCRemoteVideoView
- */
-@property(nonatomic, strong) RCRTCVideoView *canvesView;
-
-/*!
- RCRTCRemoteVideoView 初始化
- @param streamId  音视频流 Id
- @param userId 流所属用户
- @param tag 流类型标识
- */
-- (instancetype)initWithStreamId:(NSString *)streamId streamUserId:(NSString *)userId streamTag:(NSString *)tag;
-
-/*!
- 本地 RCRTCLocalVideoView 初始化
- */
-+ (instancetype)LocalStreamVideo;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 44
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/KSLiveStreamVideo.m

@@ -1,44 +0,0 @@
-//
-//  KSLiveStreamVideo.m
-//  LiveStreamDemo
-//
-//  Created by Kyle on 2021/10/21.
-//
-
-#import "KSLiveStreamVideo.h"
-static NSString *zero = @"0";
-
-@implementation KSLiveStreamVideo
-
-// 根据 streamId 创建并设置远端视频预览视图
-/*!
- RCRTCRemoteVideoView 初始化
- @param streamId  音视频流 Id
- @param userId 流所属用户
- @param tag 流类型标识
- */
-- (instancetype)initWithStreamId:(NSString *)streamId streamUserId:(NSString *)userId streamTag:(NSString *)tag {
-    if (self = [super init]) {
-        self.streamId = streamId;
-        self.userId = userId;
-        self.streamTag = tag;
-        self.canvesView = [[RCRTCVideoView alloc] init];
-        self.canvesView.frameAnimated = NO;
-        self.canvesView.translatesAutoresizingMaskIntoConstraints = NO;
-        self.canvesView.fillMode = RCRTCVideoFillModeAspectFill;
-    }
-    return self;
-}
-
-+ (instancetype)LocalStreamVideo {
-    KSLiveStreamVideo *localStreamVideo = [[KSLiveStreamVideo alloc] init];
-    // 初始化 这里的 streamId 推荐 0
-    localStreamVideo.streamId = zero;
-    localStreamVideo.canvesView = [[RCRTCVideoView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
-    localStreamVideo.canvesView.frameAnimated = NO;
-    localStreamVideo.canvesView.translatesAutoresizingMaskIntoConstraints = NO;
-    localStreamVideo.canvesView.fillMode = RCRTCVideoFillModeAspectFill;
-    return localStreamVideo;
-}
-
-@end

+ 0 - 36
KulexiuForStudent/KulexiuForStudent/Module/Live/View/KSChatroomTextCell.h

@@ -1,36 +0,0 @@
-//
-//  KSChatroomTextCell.h
-//  StudentDaya
-//
-//  Created by Kyle on 2022/2/23.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-#import "KSRCMessageModel.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface KSChatroomTextCell : UITableViewCell
-
-/**
- 消息Cell的数据模型
- */
-@property(strong, nonatomic) KSRCMessageModel *model;
-
-/*!
- 显示消息内容的Label
- */
-@property (nonatomic, strong) UILabel *contentLabel;
-
-@property (nonatomic, strong) UIView *containerView;
-
-/**
- 设置当前消息Cell的数据模型
- 
- @param model 消息Cell的数据模型
- */
-- (void)setDataModel:(KSRCMessageModel *)model createrId:(NSString *)createrId;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 316
KulexiuForStudent/KulexiuForStudent/Module/Live/View/KSChatroomTextCell.m

@@ -1,316 +0,0 @@
-//
-//  KSChatroomTextCell.m
-//  StudentDaya
-//
-//  Created by Kyle on 2022/2/23.
-//  Copyright © 2022 DayaMusic. All rights reserved.
-//
-
-#import "KSChatroomTextCell.h"
-#import <RongIMLib/RongIMLib.h>
-#import "KSChatroomMessageCenter.h"
-
-@interface KSChatroomTextCell ()
-
-@property (nonatomic, strong) CAShapeLayer *bubbleLayer;
-
-@property (nonatomic, strong) NSString *creatorId;
-
-@end
-
-@implementation KSChatroomTextCell
-
-- (void)awakeFromNib {
-    [super awakeFromNib];
-    // Initialization code
-    
-}
-
-- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
-    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
-    if (self) {
-        self.selectionStyle = UITableViewCellSelectionStyleNone;
-        self.backgroundColor = [UIColor clearColor];
-        self.contentView.backgroundColor = [UIColor clearColor];
-        [self initializedSubViews];
-    }
-    return self;
-}
-
-- (void)initializedSubViews {
-    [self.contentView addSubview:self.containerView];
-    [self.containerView.layer addSublayer:self.bubbleLayer];
-    [self.containerView addSubview:self.contentLabel];
-    [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(self.contentView.mas_left).offset(8);
-        make.right.lessThanOrEqualTo(self.contentView.mas_right).offset(-(KPortraitWidth / 3));
-        make.top.mas_equalTo(self.contentView.mas_top).offset(3);
-        make.bottom.mas_equalTo(self.contentView.mas_bottom).offset(-3);
-    }];
-    
-    [self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(self.containerView.mas_left).offset(8);
-        make.right.mas_equalTo(self.containerView.mas_right).offset(-8);
-        make.top.mas_equalTo(self.containerView.mas_top).offset(5);
-        make.bottom.mas_equalTo(self.containerView.mas_bottom).offset(-5);
-    }];
-}
-
-- (void)setDataModel:(KSRCMessageModel *)model createrId:(NSString *)createrId {
-    self.model = model;
-    self.creatorId = createrId;
-    [self updateUI:model];
-}
-
-- (void)updateUI:(KSRCMessageModel *)model {
-    BOOL isCreator = NO;
-    NSString *creatorImg = @"chatroom_speaker";
-    NSString *headString = @"";
-    if ([model.senderUserId isEqualToString:self.creatorId]) {
-        isCreator = YES;
-        headString = @" ";
-    }
-    
-    if ([model.content isMemberOfClass:[KSLiveChatroomWelcome class]]) {
-        RCUserInfo *userInfo = model.userInfo;
-        NSString *userName = [userInfo.name stringByAppendingString:@""];
-        NSString *localizedMessage = @"进入直播间";
-        NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        
-        NSAttributedString *localizedStr = [[NSAttributedString alloc] initWithString:localizedMessage attributes:@{NSForegroundColorAttributeName:HexRGB(0xffffff)}];
-        [attributedString appendAttributedString:localizedStr];
-        if (isCreator) {
-            [self addAttachmentImg:attributedString imgName:creatorImg];
-        }
-        [self.contentLabel setAttributedText:attributedString.copy];
-        return;
-    }
-    else if ([model.content isMemberOfClass:[KSLiveChatroomSeatApply class]]) {
-        KSLiveChatroomSeatApply *seatApply = (KSLiveChatroomSeatApply *)model.content;
-        NSString *userName = @"";
-        NSString *localizedMessage = @"";
-        if (seatApply.type == SEATHANDLE_INVITE) {
-            userName = seatApply.teacherName;
-            localizedMessage = @"发起了连麦邀请";
-        }
-        else if (seatApply.type == SEATHANDLE_DISINVITE) {
-            userName = seatApply.teacherName;
-            localizedMessage = @"取消了连麦邀请";
-        }
-        else if (seatApply.type == SEATHANDLE_KICKSEAT) {
-            userName = seatApply.teacherName;
-            localizedMessage = @"将你抱下麦";
-        }
-        else if (seatApply.type == SEATHANDLE_APPLY) {
-            userName = seatApply.audienceName;
-            localizedMessage = @"发起了连麦申请";
-        }
-        else if (seatApply.type == SEATHANDLE_CANCELAPPLY) {
-            userName = seatApply.audienceName;
-            localizedMessage = @"取消了连麦申请";
-        }
-        
-        NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        NSAttributedString *localizedStr = [[NSAttributedString alloc] initWithString:localizedMessage attributes:@{NSForegroundColorAttributeName:HexRGB(0xffffff)}];
-        [attributedString appendAttributedString:localizedStr];
-        
-        if (isCreator) {
-            [self addAttachmentImg:attributedString imgName:creatorImg];
-        }
-        [self.contentLabel setAttributedText:attributedString.copy];
-    }
-    else if ([model.content isMemberOfClass:[KSLiveChatroomSeatResponse class]]) {
-        KSLiveChatroomSeatResponse *seatResponse = (KSLiveChatroomSeatResponse *)model.content;
-        NSString *userName = @"";
-        NSString *localizedMessage = @"";
-        if (seatResponse.type == SEATRESPONSE_TEACHERAPPROVE) {
-            userName = seatResponse.teacherName;
-            localizedMessage = @"同意了连麦申请";
-        }
-        else if (seatResponse.type == SEATRESPONSE_TEACHERREJECT) {
-            userName = seatResponse.teacherName;
-            localizedMessage = @"拒绝了连麦申请";
-        }
-        else if (seatResponse.type == SEATRESPONSE_AUDIENCEAPPROVE) {
-            userName = seatResponse.audienceName;
-            localizedMessage = @"同意了连麦邀请";
-        }
-        else if (seatResponse.type == SEATRESPONSE_AUDIENCEREJECT) {
-            userName = seatResponse.audienceName;
-            localizedMessage = @"拒绝了连麦邀请";
-        }
-        NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        NSAttributedString *localizedStr = [[NSAttributedString alloc] initWithString:localizedMessage attributes:@{NSForegroundColorAttributeName:HexRGB(0xffffff)}];
-        [attributedString appendAttributedString:localizedStr];
-        if (isCreator) {
-            [self addAttachmentImg:attributedString imgName:creatorImg];
-        }
-        [self.contentLabel setAttributedText:attributedString.copy];
-    }
-    else if ([model.content isMemberOfClass:[KSLiveChatroomLike class]]) {
-        KSLiveChatroomLike *likeMessage = (KSLiveChatroomLike *)model.content;
-        RCUserInfo *userInfo = model.userInfo;
-        NSString *userName = [userInfo.name stringByAppendingString:@""];
-        NSString *localizedMessage = [NSString stringWithFormat:@"给老师点了%d个赞",likeMessage.counts];
-        NSString *str =[NSString stringWithFormat:@"%@",userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        NSAttributedString *localizedStr = [[NSAttributedString alloc] initWithString:localizedMessage attributes:@{NSForegroundColorAttributeName:HexRGB(0xffffff)}];
-        [attributedString appendAttributedString:localizedStr];
-        [self.contentLabel setAttributedText:attributedString.copy];
-        return;
-    }
-    else if ([model.content isMemberOfClass:[RCChatroomSeatsControl class]]) {
-        RCChatroomSeatsControl *seatControlMessage = (RCChatroomSeatsControl *)model.content;
-        NSString *userName = [seatControlMessage.userName stringByAppendingString:@""];
-        
-        NSString *localizedMessage = seatControlMessage.seatBan ? @"关闭连麦" : @"开启连麦";
-        NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        
-        NSMutableAttributedString *descString = [[NSMutableAttributedString alloc] initWithString:localizedMessage];
-        [descString addAttribute:NSForegroundColorAttributeName value:(HexRGB(0xffffff)) range:[localizedMessage rangeOfString:localizedMessage]];
-        [attributedString appendAttributedString:descString];
-        
-        if (isCreator) {
-            [self addAttachmentImg:attributedString imgName:creatorImg];
-        }
-        [self.contentLabel setAttributedText:attributedString.copy];
-    }
-    else if ([model.content isMemberOfClass:[KSDownSeatAllMessage class]]) { // 所有麦上用户下麦
-        RCUserInfo *userInfo = model.userInfo;
-        NSString *userName = userInfo.name;
-        NSString *localizedMessage = @"";
-        localizedMessage = @"将你抱下麦";
-        NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        
-        NSMutableAttributedString *descString = [[NSMutableAttributedString alloc] initWithString:localizedMessage];
-        [descString addAttribute:NSForegroundColorAttributeName value:(HexRGB(0xffffff)) range:[localizedMessage rangeOfString:localizedMessage]];
-        [attributedString appendAttributedString:descString];
-        [self addAttachmentImg:attributedString imgName:creatorImg];
-        [self.contentLabel setAttributedText:attributedString.copy];
-    }
-    else if ([model.content isMemberOfClass:[KSRejectAllSeatMessage class]]) { // 拒绝所有连麦申请
-        RCUserInfo *userInfo = model.userInfo;
-        NSString *userName = userInfo.name;
-        NSString *localizedMessage = @"";
-        localizedMessage = @"拒绝了连麦申请";
-        NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-        [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-        
-        NSMutableAttributedString *descString = [[NSMutableAttributedString alloc] initWithString:localizedMessage];
-        [descString addAttribute:NSForegroundColorAttributeName value:(HexRGB(0xffffff)) range:[localizedMessage rangeOfString:localizedMessage]];
-        [attributedString appendAttributedString:descString];
-        [self addAttachmentImg:attributedString imgName:creatorImg];
-        [self.contentLabel setAttributedText:attributedString.copy];
-    }
-    else if ([model.content isMemberOfClass:[RCTextMessage class]]) {
-        
-        RCTextMessage *textMessage = (RCTextMessage *)self.model.content;
-        if ([textMessage.extra isEqualToString:@"statement"]) {
-            NSString *str = textMessage.content;
-            NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-            [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:NSMakeRange(0, str.length)];
-            [self.contentLabel setAttributedText:attributedString.copy];
-        }
-        else if (self.model.senderUserId) {
-            NSString *localizedMessage = textMessage.content;
-            RCUserInfo *userInfo = model.userInfo;
-            NSString *userName = [userInfo.name stringByAppendingString:@":"];
-            NSString *str =[NSString stringWithFormat:@"%@%@",headString,userName];
-            NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:str];
-            [attributedString addAttribute:NSForegroundColorAttributeName value:(THEMECOLOR) range:[str rangeOfString:userName]];
-            NSAttributedString *localizedStr = [[NSAttributedString alloc] initWithString:localizedMessage attributes:@{NSForegroundColorAttributeName:HexRGB(0xffffff)}];
-            [attributedString appendAttributedString:localizedStr];
-            if (isCreator) {
-                [self addAttachmentImg:attributedString imgName:creatorImg];
-            }
-            [self.contentLabel setAttributedText:attributedString.copy];
-        }
-    }
-    else {
-        NSLog(@"----");
-    }
-}
-
-- (void)addAttachmentImg:(NSMutableAttributedString *)attrStr imgName:(NSString *)imgName {
-    NSTextAttachment *typeAttachment = [[NSTextAttachment alloc] init];
-    typeAttachment.bounds = CGRectMake(0, -3, 38, 15);
-    typeAttachment.image = [UIImage imageNamed:imgName];
-    NSAttributedString *typeAttr = [NSAttributedString attributedStringWithAttachment:typeAttachment];
-    [attrStr insertAttributedString:typeAttr atIndex:0];
-}
-
-- (void)layoutSubviews {
-    [super layoutSubviews];
-    dispatch_async(dispatch_get_main_queue(), ^{
-        [self updateLayer:self.bubbleLayer withFrame:self.containerView.bounds corner:10.0f];
-    });
-}
-
-- (void)updateLayer:(CAShapeLayer *)layer withFrame:(CGRect)frame corner:(CGFloat)corner {
-    layer.frame = frame;
-    UIBezierPath *cornerPath = [UIBezierPath bezierPathWithRoundedRect:layer.bounds cornerRadius:corner];
-    layer.path = cornerPath.CGPath;
-}
-
-- (UIView *)containerView {
-    if (_containerView == nil) {
-        _containerView = [[UIView alloc] init];
-        _containerView.backgroundColor = [UIColor clearColor];
-    }
-    return _containerView;
-}
-
-- (CAShapeLayer *)bubbleLayer {
-    if (_bubbleLayer == nil) {
-        _bubbleLayer = [CAShapeLayer layer];
-        _bubbleLayer.fillColor = HexRGBAlpha(0x333333, 0.25).CGColor;
-    }
-    return _bubbleLayer;
-}
-
-- (UILabel *)contentLabel {
-    if (!_contentLabel) {
-        _contentLabel = [[UILabel alloc] init];
-        [_contentLabel setTextAlignment: NSTextAlignmentLeft];
-        _contentLabel.font = [UIFont systemFontOfSize:13.0f weight:UIFontWeightMedium];
-        [_contentLabel setTintColor:[UIColor whiteColor]];
-        [_contentLabel setNumberOfLines:0];
-    }
-    return _contentLabel;
-}
-
-
-- (NSString *)timeWithTimeInterval:(long)timeInterval {
-    // 格式化时间
-    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
-    formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"];
-    [formatter setDateStyle:NSDateFormatterMediumStyle];
-    [formatter setTimeStyle:NSDateFormatterShortStyle];
-    [formatter setDateFormat:@"yyyy年MM月dd日 HH:mm"];
-    
-    // 毫秒值转化为秒
-    NSDate* date = [NSDate dateWithTimeIntervalSince1970:timeInterval/ 1000.0];
-    NSString* dateString = [formatter stringFromDate:date];
-    return dateString;
-}
-
-- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
-    [super setSelected:selected animated:animated];
-
-    // Configure the view for the selected state
-}
-
-@end

+ 1 - 2
KulexiuForStudent/KulexiuForStudent/Module/Live/View/SeatContentView.m

@@ -7,7 +7,6 @@
 //
 
 #import "SeatContentView.h"
-#import <RongIMKit/RongIMKit.h>
 
 @interface SeatMemberView : UIView
 
@@ -68,7 +67,7 @@
         }];
         
         self.nameLabel.font = [UIFont systemFontOfSize:9.0f weight:UIFontWeightMedium];
-        self.nameLabel.text = [NSString returnNoNullStringWithString:[RCIMClient sharedRCIMClient].currentUserInfo.name];
+        self.nameLabel.text = [NSString returnNoNullStringWithString:UserDefault(NicknameKey)];
     }
     else { // 其他人
         [self.userAvatar setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];

+ 0 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/ModifyPhoneChangeController.m

@@ -12,7 +12,6 @@
 #import "AppDelegate.h"
 #import "CustomNavViewController.h"
 #import "JPUSHService.h"
-#import "RCConnectionManager.h"
 #import "NSString+phone.h"
 #import "UserInfoManager.h"
 

+ 0 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/Controller/SettingViewController.m

@@ -11,7 +11,6 @@
 #import "FeedbackViewController.h"
 #import "AboutUsViewController.h"
 #import "AddressListViewController.h"
-#import "RCConnectionManager.h"
 #import "LoginViewController.h"
 #import "AppDelegate.h"
 #import "CustomNavViewController.h"

+ 0 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/DeleteAccount/Controller/AccountDeleteViewController.m

@@ -12,7 +12,6 @@
 #import "AppDelegate.h"
 #import "CustomNavViewController.h"
 #import "JPUSHService.h"
-#import "RCConnectionManager.h"
 #import "NSString+phone.h"
 #import "UserInfoManager.h"
 #import "GroupQuitAlert.h"

+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/KSLiveWebViewController.h → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Controller/KSLiveWebViewController.h


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/KSLiveWebViewController.m → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Controller/KSLiveWebViewController.m


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/KSEnterLiveroomManager.h → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/KSEnterLiveroomManager.h


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/KSEnterLiveroomManager.m → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/KSEnterLiveroomManager.m


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveCard.bundle/cardAnimation.json → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveCard.bundle/cardAnimation.json


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveModuleService.h → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveModuleService.h


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveModuleService.m → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveModuleService.m


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveSeatMember.h → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveSeatMember.h


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveSeatMember.m → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveSeatMember.m


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveroomTimeManager.h → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveroomTimeManager.h


+ 0 - 0
KulexiuForStudent/KulexiuForStudent/Module/Live/Model/LiveroomTimeManager.m → KulexiuForStudent/KulexiuForStudent/Module/TXLive/Model/LiveroomTimeManager.m


+ 1 - 4
KulexiuForStudent/Podfile

@@ -42,10 +42,7 @@ target 'KulexiuForStudent' do
   
   pod 'SSZipArchive'
   pod 'SocketRocket'
-  pod 'RongCloudIM/IMLib',  '~> 5.3.1'
-  pod 'RongCloudIM/IMKit',  '~> 5.3.1'
-  pod 'RongCloudIM/Sight',  '~> 5.3.1'
-  pod 'RongCloudRTC/RongRTCLib','~> 5.3.1.2'
+
 
   pod "iOS-KS3SDK", "~>1.0.5"
 #  pod "WechatOpenSDK"

+ 1 - 33
KulexiuForStudent/Podfile.lock

@@ -51,30 +51,6 @@ PODS:
     - QCloudCore/WithoutMTA (= 6.2.8)
   - Reachability (3.2)
   - ReactiveObjC (3.1.1)
-  - RongCloudIM/ChatRoom (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/CustomerService (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Discussion (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/IMKit (5.3.7):
-    - RongCloudIM/IMLib
-  - RongCloudIM/IMLib (5.3.7):
-    - RongCloudIM/ChatRoom
-    - RongCloudIM/CustomerService
-    - RongCloudIM/Discussion
-    - RongCloudIM/IMLibCore
-    - RongCloudIM/Location
-    - RongCloudIM/PublicService
-  - RongCloudIM/IMLibCore (5.3.7)
-  - RongCloudIM/Location (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/PublicService (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Sight (5.3.7):
-    - RongCloudIM/IMKit
-  - RongCloudRTC/RongRTCLib (5.3.1.6):
-    - RongCloudIM/IMLibCore (>= 5.3.1)
   - RSKImageCropper (4.0.0)
   - SDWebImage (5.16.0):
     - SDWebImage/Core (= 5.16.0)
@@ -308,10 +284,6 @@ DEPENDENCIES:
   - MJRefresh (~> 3.1.12)
   - QCloudCOSXML/Transfer
   - Reachability (~> 3.2)
-  - RongCloudIM/IMKit (~> 5.3.1)
-  - RongCloudIM/IMLib (~> 5.3.1)
-  - RongCloudIM/Sight (~> 5.3.1)
-  - RongCloudRTC/RongRTCLib (~> 5.3.1.2)
   - RSKImageCropper
   - SDWebImage (~> 5.16.0)
   - SocketRocket
@@ -346,8 +318,6 @@ SPEC REPOS:
     - QCloudCOSXML
     - Reachability
     - ReactiveObjC
-    - RongCloudIM
-    - RongCloudRTC
     - RSKImageCropper
     - SDWebImage
     - SocketRocket
@@ -385,8 +355,6 @@ SPEC CHECKSUMS:
   QCloudCOSXML: d7c1f08486ae540ef7a07153528946321e44993b
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
-  RongCloudIM: d158e2940f39659b1c3f232a756ce76d00111d88
-  RongCloudRTC: 3d6556f8ed1cb1cf594305615c9f1409351da266
   RSKImageCropper: 90dfe482402fb8a40cabd5fea65186d9102cc425
   SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6
   SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
@@ -403,6 +371,6 @@ SPEC CHECKSUMS:
   Whiteboard: 9d5a68d3738bd0ba8cd98820c506d13108976696
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: 7cfd1a25181db1b7588df2f2a97042d51d3a4375
+PODFILE CHECKSUM: a6b56d2f9c27d292ee98ee6665dbe2d88bb905a6
 
 COCOAPODS: 1.12.1

+ 1 - 33
KulexiuForStudent/Pods/Manifest.lock

@@ -51,30 +51,6 @@ PODS:
     - QCloudCore/WithoutMTA (= 6.2.8)
   - Reachability (3.2)
   - ReactiveObjC (3.1.1)
-  - RongCloudIM/ChatRoom (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/CustomerService (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Discussion (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/IMKit (5.3.7):
-    - RongCloudIM/IMLib
-  - RongCloudIM/IMLib (5.3.7):
-    - RongCloudIM/ChatRoom
-    - RongCloudIM/CustomerService
-    - RongCloudIM/Discussion
-    - RongCloudIM/IMLibCore
-    - RongCloudIM/Location
-    - RongCloudIM/PublicService
-  - RongCloudIM/IMLibCore (5.3.7)
-  - RongCloudIM/Location (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/PublicService (5.3.7):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Sight (5.3.7):
-    - RongCloudIM/IMKit
-  - RongCloudRTC/RongRTCLib (5.3.1.6):
-    - RongCloudIM/IMLibCore (>= 5.3.1)
   - RSKImageCropper (4.0.0)
   - SDWebImage (5.16.0):
     - SDWebImage/Core (= 5.16.0)
@@ -308,10 +284,6 @@ DEPENDENCIES:
   - MJRefresh (~> 3.1.12)
   - QCloudCOSXML/Transfer
   - Reachability (~> 3.2)
-  - RongCloudIM/IMKit (~> 5.3.1)
-  - RongCloudIM/IMLib (~> 5.3.1)
-  - RongCloudIM/Sight (~> 5.3.1)
-  - RongCloudRTC/RongRTCLib (~> 5.3.1.2)
   - RSKImageCropper
   - SDWebImage (~> 5.16.0)
   - SocketRocket
@@ -346,8 +318,6 @@ SPEC REPOS:
     - QCloudCOSXML
     - Reachability
     - ReactiveObjC
-    - RongCloudIM
-    - RongCloudRTC
     - RSKImageCropper
     - SDWebImage
     - SocketRocket
@@ -385,8 +355,6 @@ SPEC CHECKSUMS:
   QCloudCOSXML: d7c1f08486ae540ef7a07153528946321e44993b
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
-  RongCloudIM: d158e2940f39659b1c3f232a756ce76d00111d88
-  RongCloudRTC: 3d6556f8ed1cb1cf594305615c9f1409351da266
   RSKImageCropper: 90dfe482402fb8a40cabd5fea65186d9102cc425
   SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6
   SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
@@ -403,6 +371,6 @@ SPEC CHECKSUMS:
   Whiteboard: 9d5a68d3738bd0ba8cd98820c506d13108976696
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: 7cfd1a25181db1b7588df2f2a97042d51d3a4375
+PODFILE CHECKSUM: a6b56d2f9c27d292ee98ee6665dbe2d88bb905a6
 
 COCOAPODS: 1.12.1

File diff suppressed because it is too large
+ 4384 - 4466
KulexiuForStudent/Pods/Pods.xcodeproj/project.pbxproj


+ 1 - 1
KulexiuForStudent/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/AFNetworking.xcscheme

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "1300"
+   LastUpgradeVersion = "1500"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"

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