Browse Source

移除融云所有依赖

Steven 1 year ago
parent
commit
6134a44b5e
100 changed files with 4311 additions and 12607 deletions
  1. 0 256
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. 0 21
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Extension/KSUtilities.h
  3. 0 134
      KulexiuForTeacher/KulexiuForTeacher/Common/Tools/Extension/KSUtilities.m
  4. 0 25
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Model/KSChatLiveMessage.h
  5. 0 70
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Model/KSChatLiveMessage.m
  6. 0 31
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Model/KSChatMusicMessage.h
  7. 0 90
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Model/KSChatMusicMessage.m
  8. 0 16
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatLiveShareCell.h
  9. 0 78
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatLiveShareCell.m
  10. 0 16
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatMusicShareCell.h
  11. 0 62
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatMusicShareCell.m
  12. 0 20
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareLiveCellContentView.h
  13. 0 53
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareLiveCellContentView.m
  14. 0 204
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareLiveCellContentView.xib
  15. 0 20
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareMusicCellContentView.h
  16. 0 113
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareMusicCellContentView.m
  17. 0 160
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareMusicCellContentView.xib
  18. 0 29
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.h
  19. 0 2201
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m
  20. 0 67
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.h
  21. 0 81
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.m
  22. 0 17
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSDownSeatAllMessage.h
  23. 0 43
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSDownSeatAllMessage.m
  24. 0 16
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomClose.h
  25. 0 31
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomClose.m
  26. 0 22
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.h
  27. 0 54
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.m
  28. 0 26
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.h
  29. 0 53
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.m
  30. 0 36
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.h
  31. 0 65
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.m
  32. 0 25
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.h
  33. 0 53
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.m
  34. 0 19
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLike.h
  35. 0 55
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLike.m
  36. 0 21
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.h
  37. 0 43
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.m
  38. 0 20
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.h
  39. 0 45
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.m
  40. 0 40
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.h
  41. 0 84
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.m
  42. 0 39
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.h
  43. 0 69
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.m
  44. 0 27
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.h
  45. 0 54
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.m
  46. 0 24
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomWelcome.h
  47. 0 74
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomWelcome.m
  48. 0 80
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCMessageModel.h
  49. 0 31
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCMessageModel.m
  50. 0 17
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.h
  51. 0 42
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.m
  52. 0 27
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCShopRushMessage.h
  53. 0 55
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCShopRushMessage.m
  54. 0 17
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRejectAllSeatMessage.h
  55. 0 43
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRejectAllSeatMessage.m
  56. 0 22
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomLikeCount.h
  57. 0 44
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomLikeCount.m
  58. 0 33
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.h
  59. 0 55
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.m
  60. 0 38
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Model/KSLiveStreamVideo.h
  61. 0 36
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Model/KSLiveStreamVideo.m
  62. 0 36
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/KSChatroomTextCell.h
  63. 0 267
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/KSChatroomTextCell.m
  64. 0 6
      KulexiuForTeacher/Podfile
  65. 1 36
      KulexiuForTeacher/Podfile.lock
  66. 1 36
      KulexiuForTeacher/Pods/Manifest.lock
  67. 4309 4409
      KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj
  68. 0 88
      KulexiuForTeacher/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist
  69. 0 136
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/Emoji.plist
  70. 0 39
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RCColor.plist
  71. 0 59
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RCConfig.plist
  72. 0 41
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/Info.plist
  73. 0 395
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient.h
  74. 0 80
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h
  75. 0 41
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomInfo.h
  76. 0 37
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h
  77. 0 26
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h
  78. 0 134
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomProtocol.h
  79. 0 74
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h
  80. 0 26
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RongChatRoom.h
  81. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Info.plist
  82. 0 6
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Modules/module.modulemap
  83. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/RongChatRoom
  84. 0 237
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/_CodeSignature/CodeResources
  85. 0 395
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient.h
  86. 0 80
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h
  87. 0 41
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomInfo.h
  88. 0 37
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h
  89. 0 26
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h
  90. 0 134
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomProtocol.h
  91. 0 74
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h
  92. 0 26
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RongChatRoom.h
  93. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Info.plist
  94. 0 6
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Modules/module.modulemap
  95. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/RongChatRoom
  96. 0 237
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/_CodeSignature/CodeResources
  97. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/Comment.png
  98. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/ExcelFile.png
  99. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/ExcelFile@2x.png
  100. BIN
      KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/ExcelFile@3x.png

+ 0 - 256
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -50,18 +50,6 @@
 		275B172F27EB27860081FDEF /* GroupCreateView.m in Sources */ = {isa = PBXBuildFile; fileRef = 275B172E27EB27860081FDEF /* GroupCreateView.m */; };
 		275B173127EB27960081FDEF /* GroupCreateView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 275B173027EB27960081FDEF /* GroupCreateView.xib */; };
 		275E3DA327F441EC0010EC30 /* KSEnterLiveroomManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DA227F441EC0010EC30 /* KSEnterLiveroomManager.m */; };
-		275E3DA927F45A8A0010EC30 /* KSLiveStreamVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DA827F45A8A0010EC30 /* KSLiveStreamVideo.m */; };
-		275E3DAD27F45BE90010EC30 /* KSChatroomMessageCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DAC27F45BE90010EC30 /* KSChatroomMessageCenter.m */; };
-		275E3DB027F45CA60010EC30 /* KSLiveChatroomLike.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DAF27F45CA60010EC30 /* KSLiveChatroomLike.m */; };
-		275E3DB327F45D380010EC30 /* KSLiveChatroomDownSeat.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DB227F45D380010EC30 /* KSLiveChatroomDownSeat.m */; };
-		275E3DB627F45DA60010EC30 /* KSLiveChatroomEnter.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DB527F45DA60010EC30 /* KSLiveChatroomEnter.m */; };
-		275E3DBC27F45E750010EC30 /* KSLiveChatroomLeave.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DBB27F45E750010EC30 /* KSLiveChatroomLeave.m */; };
-		275E3DBF27F45EB90010EC30 /* KSLiveChatroomUserQuit.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DBE27F45EB90010EC30 /* KSLiveChatroomUserQuit.m */; };
-		275E3DC227F45F3F0010EC30 /* KSLiveChatroomWelcome.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DC127F45F3F0010EC30 /* KSLiveChatroomWelcome.m */; };
-		275E3DC527F460030010EC30 /* KSLiveChatroomClose.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DC427F460030010EC30 /* KSLiveChatroomClose.m */; };
-		275E3DC827F460720010EC30 /* KSLiveChatroomKickOut.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DC727F460720010EC30 /* KSLiveChatroomKickOut.m */; };
-		275E3DD127F463140010EC30 /* KSLiveChatroomSeatApply.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DD027F463140010EC30 /* KSLiveChatroomSeatApply.m */; };
-		275E3DD427F463580010EC30 /* KSLiveChatroomSeatResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DD327F463580010EC30 /* KSLiveChatroomSeatResponse.m */; };
 		275E3DE027F467410010EC30 /* KSChatEmojiBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DD627F467410010EC30 /* KSChatEmojiBoardView.m */; };
 		275E3DE127F467410010EC30 /* KSChatInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DD827F467410010EC30 /* KSChatInputView.m */; };
 		275E3DE227F467410010EC30 /* KSChatEmojiCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DDB27F467410010EC30 /* KSChatEmojiCollectionCell.m */; };
@@ -72,7 +60,6 @@
 		275E3DEC27F467B20010EC30 /* LiveRoomBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DEB27F467B20010EC30 /* LiveRoomBottomView.m */; };
 		275E3DEE27F467BF0010EC30 /* LiveRoomBottomView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 275E3DED27F467BF0010EC30 /* LiveRoomBottomView.xib */; };
 		275E3DF127F467D80010EC30 /* SeatContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DF027F467D70010EC30 /* SeatContentView.m */; };
-		275E3DF627F467ED0010EC30 /* KSChatroomTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DF427F467ED0010EC30 /* KSChatroomTextCell.m */; };
 		275E3DF727F467ED0010EC30 /* LiveRoomLikeLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DF527F467ED0010EC30 /* LiveRoomLikeLayer.m */; };
 		275E3DFA27F46B340010EC30 /* KSBeautySettingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 275E3DF927F46B340010EC30 /* KSBeautySettingView.m */; };
 		275E3DFC27F46B440010EC30 /* KSBeautySettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 275E3DFB27F46B440010EC30 /* KSBeautySettingView.xib */; };
@@ -141,7 +128,6 @@
 		277931E527E30FC20010E277 /* NSMutableAttributedString+CZHExtention.m in Sources */ = {isa = PBXBuildFile; fileRef = 277930F027E30FBE0010E277 /* NSMutableAttributedString+CZHExtention.m */; };
 		277931E627E30FC20010E277 /* UITextView+ZWLimitCounter.m in Sources */ = {isa = PBXBuildFile; fileRef = 277930F227E30FBE0010E277 /* UITextView+ZWLimitCounter.m */; };
 		277931E727E30FC20010E277 /* UILabel+Extension.m in Sources */ = {isa = PBXBuildFile; fileRef = 277930F327E30FBE0010E277 /* UILabel+Extension.m */; };
-		277931E827E30FC20010E277 /* KSUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 277930F527E30FBE0010E277 /* KSUtilities.m */; };
 		277931E927E30FC20010E277 /* pinyin.c in Sources */ = {isa = PBXBuildFile; fileRef = 277930F827E30FBE0010E277 /* pinyin.c */; };
 		277931EA27E30FC20010E277 /* UIAlertController+Extend.m in Sources */ = {isa = PBXBuildFile; fileRef = 277930FC27E30FBE0010E277 /* UIAlertController+Extend.m */; };
 		277931EB27E30FC20010E277 /* NSArray+zh_SafeAccess.m in Sources */ = {isa = PBXBuildFile; fileRef = 277930FF27E30FBE0010E277 /* NSArray+zh_SafeAccess.m */; };
@@ -404,9 +390,6 @@
 		BC0167A627FC06D600AE66A1 /* MyCourseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0167A527FC06D600AE66A1 /* MyCourseViewController.m */; };
 		BC023802286594EA005560CA /* KSTipsAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC0237FF286594EA005560CA /* KSTipsAlert.xib */; };
 		BC023803286594EA005560CA /* KSTipsAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = BC023800286594EA005560CA /* KSTipsAlert.m */; };
-		BC0238062865C4F6005560CA /* KSLiveChatroomMemberUp.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0238052865C4F6005560CA /* KSLiveChatroomMemberUp.m */; };
-		BC0238092865C601005560CA /* KSRCShopRushMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0238082865C601005560CA /* KSRCShopRushMessage.m */; };
-		BC02380F2865C6F9005560CA /* RCChatroomLikeCount.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02380D2865C6F9005560CA /* RCChatroomLikeCount.m */; };
 		BC02BCDA28B3243F005CB483 /* LiveSeatActionView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCD928B3243F005CB483 /* LiveSeatActionView.m */; };
 		BC02BCDD28B324A5005CB483 /* SeatBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCDC28B324A5005CB483 /* SeatBodyView.m */; };
 		BC02BCE428B324C9005CB483 /* LiveApplyControlView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCDE28B324C8005CB483 /* LiveApplyControlView.m */; };
@@ -415,9 +398,6 @@
 		BC02BCE728B324C9005CB483 /* LiveDownSeatView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC02BCE328B324C9005CB483 /* LiveDownSeatView.xib */; };
 		BC02BCEB28B324FE005CB483 /* LiveMemberSeatCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCE928B324FD005CB483 /* LiveMemberSeatCell.m */; };
 		BC02BCEC28B324FE005CB483 /* LiveMemberSeatCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC02BCEA28B324FD005CB483 /* LiveMemberSeatCell.xib */; };
-		BC02BCF128B32771005CB483 /* KSDownSeatAllMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCEF28B32770005CB483 /* KSDownSeatAllMessage.m */; };
-		BC02BCF228B32771005CB483 /* KSRejectAllSeatMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCF028B32771005CB483 /* KSRejectAllSeatMessage.m */; };
-		BC02BCF528B328AA005CB483 /* RCChatroomSeatsControl.m in Sources */ = {isa = PBXBuildFile; fileRef = BC02BCF328B328A9005CB483 /* RCChatroomSeatsControl.m */; };
 		BC063D842823CEFE000EB350 /* AddressListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC063D822823CEFD000EB350 /* AddressListModel.m */; };
 		BC0A22A3284751F80065C1AB /* AccompanyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0A228F284751F80065C1AB /* AccompanyView.m */; };
 		BC0A22A4284751F80065C1AB /* AccompanySongCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC0A2292284751F80065C1AB /* AccompanySongCell.m */; };
@@ -484,8 +464,6 @@
 		BC106BAD2A8F45AA000759A9 /* TXLiveRoomHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC106BA12A8F45AA000759A9 /* TXLiveRoomHeadView.m */; };
 		BC106BB02A8F46C0000759A9 /* LiveRoomConfirmAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = BC106BAF2A8F46C0000759A9 /* LiveRoomConfirmAlert.m */; };
 		BC106BB42A8F4BC9000759A9 /* LiveModuleService.m in Sources */ = {isa = PBXBuildFile; fileRef = BC106BB32A8F4BC9000759A9 /* LiveModuleService.m */; };
-		BC106BB62A8F6E94000759A9 /* ShareMusicCellContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC106BB52A8F6E93000759A9 /* ShareMusicCellContentView.xib */; };
-		BC106BB82A8F6EAB000759A9 /* ShareLiveCellContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC106BB72A8F6EAB000759A9 /* ShareLiveCellContentView.xib */; };
 		BC106C542A9365DE000759A9 /* ClassMemberEmptyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC106C512A9365DC000759A9 /* ClassMemberEmptyView.xib */; };
 		BC106C552A9365DE000759A9 /* ClassMemberEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC106C522A9365DD000759A9 /* ClassMemberEmptyView.m */; };
 		BC1191ED280E55CB00A716F7 /* EvaluateDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1191EB280E55CA00A716F7 /* EvaluateDetailModel.m */; };
@@ -761,7 +739,6 @@
 		BC6BEAA4288A4C2A00022109 /* KSHomeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6BEAA2288A4C2A00022109 /* KSHomeButton.m */; };
 		BC6BEAAA288E3D7400022109 /* HomeNewHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6BEAA9288E3D7300022109 /* HomeNewHeadView.m */; };
 		BC6BEAAC288E3D7B00022109 /* HomeNewHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC6BEAAB288E3D7B00022109 /* HomeNewHeadView.xib */; };
-		BC6C303A27F586A60044BC0F /* KSRCMessageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BC6C303927F586A60044BC0F /* KSRCMessageModel.m */; };
 		BC71D1332887ADDA0010F14B /* teacher_refresh.json in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1322887ADDA0010F14B /* teacher_refresh.json */; };
 		BC71D1A62887FDAC0010F14B /* LaunchAnimationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */; };
 		BC71D1EA2887FDD40010F14B /* img_10.png in Resources */ = {isa = PBXBuildFile; fileRef = BC71D1C92887FDD40010F14B /* img_10.png */; };
@@ -1034,7 +1011,6 @@
 		BCB635B927F722E800ACFDCF /* KSDocumentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB635B827F722E800ACFDCF /* KSDocumentViewController.m */; };
 		BCB635BE27F7256B00ACFDCF /* KSICloudManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB635BA27F7256B00ACFDCF /* KSICloudManager.m */; };
 		BCB635BF27F7256B00ACFDCF /* KSDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB635BD27F7256B00ACFDCF /* KSDocument.m */; };
-		BCB908DB2850A71100F5FF69 /* ShareMusicCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908DA2850A71100F5FF69 /* ShareMusicCellContentView.m */; };
 		BCB908F72850C6EF00F5FF69 /* MusicChooseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908F52850C6EF00F5FF69 /* MusicChooseCell.m */; };
 		BCB908F82850C6EF00F5FF69 /* MusicChooseCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB908F62850C6EF00F5FF69 /* MusicChooseCell.xib */; };
 		BCB908FB2850C9C300F5FF69 /* MusicChooseSearchView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB908FA2850C9C300F5FF69 /* MusicChooseSearchView.m */; };
@@ -1149,7 +1125,6 @@
 		BCD457B62865651A0010B493 /* LiveMoreDisplayView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCD457B42865651A0010B493 /* LiveMoreDisplayView.xib */; };
 		BCD457B72865651A0010B493 /* LiveMoreDisplayView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD457B52865651A0010B493 /* LiveMoreDisplayView.m */; };
 		BCD457BB2865652C0010B493 /* LiveAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD457B92865652C0010B493 /* LiveAnimationView.m */; };
-		BCD457BE2865694B0010B493 /* KSRCPauseLiveMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD457BD2865694A0010B493 /* KSRCPauseLiveMessage.m */; };
 		BCD6D15C281950E9009A773E /* WithdrawModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD6D15B281950E9009A773E /* WithdrawModel.m */; };
 		BCD6D15F281950F2009A773E /* UserBankCard.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD6D15E281950F2009A773E /* UserBankCard.m */; };
 		BCD6D16228195A17009A773E /* WithdrawApplyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD6D16128195A17009A773E /* WithdrawApplyViewController.m */; };
@@ -1164,7 +1139,6 @@
 		BCDB093E2805C0EF00D0BDAD /* NewClassPopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB093A2805C0ED00D0BDAD /* NewClassPopCell.m */; };
 		BCDB093F2805C0EF00D0BDAD /* NewClassPopCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCDB093B2805C0EE00D0BDAD /* NewClassPopCell.xib */; };
 		BCDB09402805C0EF00D0BDAD /* NewClassPopView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDB093D2805C0EF00D0BDAD /* NewClassPopView.m */; };
-		BCDBC59D286156E700647197 /* LiveRoomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDBC59C286156E700647197 /* LiveRoomViewController.m */; };
 		BCDE358A2897B48E00A9A560 /* shareImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = BCDE35892897B48E00A9A560 /* shareImage@2x.png */; };
 		BCDE3591289A7E4900A9A560 /* KSGroupTagImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDE358F289A7E4900A9A560 /* KSGroupTagImageView.m */; };
 		BCDE3594289B960100A9A560 /* HomeAlbumView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDE3593289B960100A9A560 /* HomeAlbumView.m */; };
@@ -1238,13 +1212,7 @@
 		BCECE2242B3D648700C0D555 /* CourseFileDisplayView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCECE2222B3D648700C0D555 /* CourseFileDisplayView.xib */; };
 		BCECE2252B3D648700C0D555 /* CourseFileDisplayView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCECE2232B3D648700C0D555 /* CourseFileDisplayView.m */; };
 		BCED5CAA284F5D8D009A42DE /* FriendListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CA9284F5D8D009A42DE /* FriendListModel.m */; };
-		BCED5CAE28507E5F009A42DE /* KSChatLiveMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CAD28507E5F009A42DE /* KSChatLiveMessage.m */; };
-		BCED5CB128507E85009A42DE /* KSChatMusicMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CB028507E85009A42DE /* KSChatMusicMessage.m */; };
 		BCED5CB4285083AC009A42DE /* ShareMusicViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CB3285083AC009A42DE /* ShareMusicViewController.m */; };
-		BCED5CBB28508823009A42DE /* KSChatLiveShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CBA28508823009A42DE /* KSChatLiveShareCell.m */; };
-		BCED5CBE28508831009A42DE /* KSChatMusicShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CBD28508831009A42DE /* KSChatMusicShareCell.m */; };
-		BCED5CC128508F21009A42DE /* ShareLiveCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CC028508F21009A42DE /* ShareLiveCellContentView.m */; };
-		BCF1BA5127F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF1BA5027F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m */; };
 		BCF1BA5427F5CB5800FA36C4 /* LiveSeatApplyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF1BA5327F5CB5800FA36C4 /* LiveSeatApplyView.m */; };
 		BCF1BA5627F5CBA100FA36C4 /* LiveSeatApplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCF1BA5527F5CBA100FA36C4 /* LiveSeatApplyView.xib */; };
 		BCF1BA5A27F5CF3C00FA36C4 /* LiveSeatApplyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF1BA5827F5CF3C00FA36C4 /* LiveSeatApplyCell.m */; };
@@ -1361,30 +1329,6 @@
 		275B173027EB27960081FDEF /* GroupCreateView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GroupCreateView.xib; sourceTree = "<group>"; };
 		275E3DA127F441EC0010EC30 /* KSEnterLiveroomManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSEnterLiveroomManager.h; sourceTree = "<group>"; };
 		275E3DA227F441EC0010EC30 /* KSEnterLiveroomManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSEnterLiveroomManager.m; sourceTree = "<group>"; };
-		275E3DA727F45A8A0010EC30 /* KSLiveStreamVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSLiveStreamVideo.h; sourceTree = "<group>"; };
-		275E3DA827F45A8A0010EC30 /* KSLiveStreamVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveStreamVideo.m; sourceTree = "<group>"; };
-		275E3DAB27F45BE90010EC30 /* KSChatroomMessageCenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSChatroomMessageCenter.h; sourceTree = "<group>"; };
-		275E3DAC27F45BE90010EC30 /* KSChatroomMessageCenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSChatroomMessageCenter.m; sourceTree = "<group>"; };
-		275E3DAE27F45CA60010EC30 /* KSLiveChatroomLike.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomLike.h; sourceTree = "<group>"; };
-		275E3DAF27F45CA60010EC30 /* KSLiveChatroomLike.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomLike.m; sourceTree = "<group>"; };
-		275E3DB127F45D380010EC30 /* KSLiveChatroomDownSeat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomDownSeat.h; sourceTree = "<group>"; };
-		275E3DB227F45D380010EC30 /* KSLiveChatroomDownSeat.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomDownSeat.m; sourceTree = "<group>"; };
-		275E3DB427F45DA60010EC30 /* KSLiveChatroomEnter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomEnter.h; sourceTree = "<group>"; };
-		275E3DB527F45DA60010EC30 /* KSLiveChatroomEnter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomEnter.m; sourceTree = "<group>"; };
-		275E3DBA27F45E750010EC30 /* KSLiveChatroomLeave.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomLeave.h; sourceTree = "<group>"; };
-		275E3DBB27F45E750010EC30 /* KSLiveChatroomLeave.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomLeave.m; sourceTree = "<group>"; };
-		275E3DBD27F45EB90010EC30 /* KSLiveChatroomUserQuit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomUserQuit.h; sourceTree = "<group>"; };
-		275E3DBE27F45EB90010EC30 /* KSLiveChatroomUserQuit.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomUserQuit.m; sourceTree = "<group>"; };
-		275E3DC027F45F3F0010EC30 /* KSLiveChatroomWelcome.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomWelcome.h; sourceTree = "<group>"; };
-		275E3DC127F45F3F0010EC30 /* KSLiveChatroomWelcome.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomWelcome.m; sourceTree = "<group>"; };
-		275E3DC327F460030010EC30 /* KSLiveChatroomClose.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomClose.h; sourceTree = "<group>"; };
-		275E3DC427F460030010EC30 /* KSLiveChatroomClose.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomClose.m; sourceTree = "<group>"; };
-		275E3DC627F460720010EC30 /* KSLiveChatroomKickOut.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomKickOut.h; sourceTree = "<group>"; };
-		275E3DC727F460720010EC30 /* KSLiveChatroomKickOut.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomKickOut.m; sourceTree = "<group>"; };
-		275E3DCF27F463140010EC30 /* KSLiveChatroomSeatApply.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomSeatApply.h; sourceTree = "<group>"; };
-		275E3DD027F463140010EC30 /* KSLiveChatroomSeatApply.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomSeatApply.m; sourceTree = "<group>"; };
-		275E3DD227F463580010EC30 /* KSLiveChatroomSeatResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomSeatResponse.h; sourceTree = "<group>"; };
-		275E3DD327F463580010EC30 /* KSLiveChatroomSeatResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomSeatResponse.m; sourceTree = "<group>"; };
 		275E3DD627F467410010EC30 /* KSChatEmojiBoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatEmojiBoardView.m; sourceTree = "<group>"; };
 		275E3DD727F467410010EC30 /* KSChatInputBarControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatInputBarControl.h; sourceTree = "<group>"; };
 		275E3DD827F467410010EC30 /* KSChatInputView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatInputView.m; sourceTree = "<group>"; };
@@ -1402,9 +1346,7 @@
 		275E3DED27F467BF0010EC30 /* LiveRoomBottomView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LiveRoomBottomView.xib; sourceTree = "<group>"; };
 		275E3DEF27F467D70010EC30 /* SeatContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SeatContentView.h; sourceTree = "<group>"; };
 		275E3DF027F467D70010EC30 /* SeatContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SeatContentView.m; sourceTree = "<group>"; };
-		275E3DF227F467EC0010EC30 /* KSChatroomTextCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSChatroomTextCell.h; sourceTree = "<group>"; };
 		275E3DF327F467EC0010EC30 /* LiveRoomLikeLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomLikeLayer.h; sourceTree = "<group>"; };
-		275E3DF427F467ED0010EC30 /* KSChatroomTextCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSChatroomTextCell.m; sourceTree = "<group>"; };
 		275E3DF527F467ED0010EC30 /* LiveRoomLikeLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomLikeLayer.m; sourceTree = "<group>"; };
 		275E3DF827F46B340010EC30 /* KSBeautySettingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSBeautySettingView.h; sourceTree = "<group>"; };
 		275E3DF927F46B340010EC30 /* KSBeautySettingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSBeautySettingView.m; sourceTree = "<group>"; };
@@ -1531,7 +1473,6 @@
 		277930F227E30FBE0010E277 /* UITextView+ZWLimitCounter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextView+ZWLimitCounter.m"; sourceTree = "<group>"; };
 		277930F327E30FBE0010E277 /* UILabel+Extension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Extension.m"; sourceTree = "<group>"; };
 		277930F427E30FBE0010E277 /* NSDate+Extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Extension.h"; sourceTree = "<group>"; };
-		277930F527E30FBE0010E277 /* KSUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSUtilities.m; sourceTree = "<group>"; };
 		277930F727E30FBE0010E277 /* pinyin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pinyin.h; sourceTree = "<group>"; };
 		277930F827E30FBE0010E277 /* pinyin.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = pinyin.c; sourceTree = "<group>"; };
 		277930F927E30FBE0010E277 /* UIImage+Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Color.h"; sourceTree = "<group>"; };
@@ -1554,7 +1495,6 @@
 		2779310B27E30FBE0010E277 /* UIControl+ButtonAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIControl+ButtonAction.h"; sourceTree = "<group>"; };
 		2779310C27E30FBE0010E277 /* UIView+Hints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Hints.m"; sourceTree = "<group>"; };
 		2779310D27E30FBE0010E277 /* NSObject+AssociatedObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+AssociatedObject.h"; sourceTree = "<group>"; };
-		2779310E27E30FBE0010E277 /* KSUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSUtilities.h; sourceTree = "<group>"; };
 		2779310F27E30FBE0010E277 /* UILabel+Extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Extension.h"; sourceTree = "<group>"; };
 		2779311027E30FBE0010E277 /* NSDate+Extension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Extension.m"; sourceTree = "<group>"; };
 		2779311127E30FBE0010E277 /* UITextView+ZWLimitCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextView+ZWLimitCounter.h"; sourceTree = "<group>"; };
@@ -2021,12 +1961,6 @@
 		BC0237FF286594EA005560CA /* KSTipsAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSTipsAlert.xib; sourceTree = "<group>"; };
 		BC023800286594EA005560CA /* KSTipsAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSTipsAlert.m; sourceTree = "<group>"; };
 		BC023801286594EA005560CA /* KSTipsAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSTipsAlert.h; sourceTree = "<group>"; };
-		BC0238042865C4F6005560CA /* KSLiveChatroomMemberUp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomMemberUp.h; sourceTree = "<group>"; };
-		BC0238052865C4F6005560CA /* KSLiveChatroomMemberUp.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomMemberUp.m; sourceTree = "<group>"; };
-		BC0238072865C600005560CA /* KSRCShopRushMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCShopRushMessage.h; sourceTree = "<group>"; };
-		BC0238082865C601005560CA /* KSRCShopRushMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCShopRushMessage.m; sourceTree = "<group>"; };
-		BC02380D2865C6F9005560CA /* RCChatroomLikeCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCChatroomLikeCount.m; sourceTree = "<group>"; };
-		BC02380E2865C6F9005560CA /* RCChatroomLikeCount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCChatroomLikeCount.h; sourceTree = "<group>"; };
 		BC02BCD828B3243F005CB483 /* LiveSeatActionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveSeatActionView.h; sourceTree = "<group>"; };
 		BC02BCD928B3243F005CB483 /* LiveSeatActionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveSeatActionView.m; sourceTree = "<group>"; };
 		BC02BCDB28B324A5005CB483 /* SeatBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeatBodyView.h; sourceTree = "<group>"; };
@@ -2040,12 +1974,6 @@
 		BC02BCE828B324FD005CB483 /* LiveMemberSeatCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveMemberSeatCell.h; sourceTree = "<group>"; };
 		BC02BCE928B324FD005CB483 /* LiveMemberSeatCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveMemberSeatCell.m; sourceTree = "<group>"; };
 		BC02BCEA28B324FD005CB483 /* LiveMemberSeatCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LiveMemberSeatCell.xib; sourceTree = "<group>"; };
-		BC02BCED28B32770005CB483 /* KSRejectAllSeatMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRejectAllSeatMessage.h; sourceTree = "<group>"; };
-		BC02BCEE28B32770005CB483 /* KSDownSeatAllMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSDownSeatAllMessage.h; sourceTree = "<group>"; };
-		BC02BCEF28B32770005CB483 /* KSDownSeatAllMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSDownSeatAllMessage.m; sourceTree = "<group>"; };
-		BC02BCF028B32771005CB483 /* KSRejectAllSeatMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRejectAllSeatMessage.m; sourceTree = "<group>"; };
-		BC02BCF328B328A9005CB483 /* RCChatroomSeatsControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCChatroomSeatsControl.m; sourceTree = "<group>"; };
-		BC02BCF428B328A9005CB483 /* RCChatroomSeatsControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCChatroomSeatsControl.h; sourceTree = "<group>"; };
 		BC063D822823CEFD000EB350 /* AddressListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddressListModel.m; sourceTree = "<group>"; };
 		BC063D832823CEFE000EB350 /* AddressListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddressListModel.h; sourceTree = "<group>"; };
 		BC0A228F284751F80065C1AB /* AccompanyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccompanyView.m; sourceTree = "<group>"; };
@@ -2171,8 +2099,6 @@
 		BC106BAF2A8F46C0000759A9 /* LiveRoomConfirmAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomConfirmAlert.m; sourceTree = "<group>"; };
 		BC106BB22A8F4BC9000759A9 /* LiveModuleService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveModuleService.h; sourceTree = "<group>"; };
 		BC106BB32A8F4BC9000759A9 /* LiveModuleService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveModuleService.m; sourceTree = "<group>"; };
-		BC106BB52A8F6E93000759A9 /* ShareMusicCellContentView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShareMusicCellContentView.xib; sourceTree = "<group>"; };
-		BC106BB72A8F6EAB000759A9 /* ShareLiveCellContentView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShareLiveCellContentView.xib; sourceTree = "<group>"; };
 		BC106C512A9365DC000759A9 /* ClassMemberEmptyView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ClassMemberEmptyView.xib; sourceTree = "<group>"; };
 		BC106C522A9365DD000759A9 /* ClassMemberEmptyView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ClassMemberEmptyView.m; sourceTree = "<group>"; };
 		BC106C532A9365DE000759A9 /* ClassMemberEmptyView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassMemberEmptyView.h; sourceTree = "<group>"; };
@@ -2621,8 +2547,6 @@
 		BC6BEAA8288E3D7300022109 /* HomeNewHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeNewHeadView.h; sourceTree = "<group>"; };
 		BC6BEAA9288E3D7300022109 /* HomeNewHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeNewHeadView.m; sourceTree = "<group>"; };
 		BC6BEAAB288E3D7B00022109 /* HomeNewHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeNewHeadView.xib; sourceTree = "<group>"; };
-		BC6C303827F586A60044BC0F /* KSRCMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCMessageModel.h; sourceTree = "<group>"; };
-		BC6C303927F586A60044BC0F /* KSRCMessageModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCMessageModel.m; sourceTree = "<group>"; };
 		BC71D1322887ADDA0010F14B /* teacher_refresh.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = teacher_refresh.json; sourceTree = "<group>"; };
 		BC71D1802887FDAB0010F14B /* LaunchAnimationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchAnimationViewController.m; sourceTree = "<group>"; };
 		BC71D1812887FDAB0010F14B /* LaunchAnimationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchAnimationViewController.h; sourceTree = "<group>"; };
@@ -3046,8 +2970,6 @@
 		BCB635BB27F7256B00ACFDCF /* KSICloudManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSICloudManager.h; sourceTree = "<group>"; };
 		BCB635BC27F7256B00ACFDCF /* KSDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSDocument.h; sourceTree = "<group>"; };
 		BCB635BD27F7256B00ACFDCF /* KSDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSDocument.m; sourceTree = "<group>"; };
-		BCB908D92850A71100F5FF69 /* ShareMusicCellContentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareMusicCellContentView.h; sourceTree = "<group>"; };
-		BCB908DA2850A71100F5FF69 /* ShareMusicCellContentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShareMusicCellContentView.m; sourceTree = "<group>"; };
 		BCB908F42850C6EF00F5FF69 /* MusicChooseCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MusicChooseCell.h; sourceTree = "<group>"; };
 		BCB908F52850C6EF00F5FF69 /* MusicChooseCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MusicChooseCell.m; sourceTree = "<group>"; };
 		BCB908F62850C6EF00F5FF69 /* MusicChooseCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MusicChooseCell.xib; sourceTree = "<group>"; };
@@ -3227,8 +3149,6 @@
 		BCD457B52865651A0010B493 /* LiveMoreDisplayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveMoreDisplayView.m; sourceTree = "<group>"; };
 		BCD457B92865652C0010B493 /* LiveAnimationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveAnimationView.m; sourceTree = "<group>"; };
 		BCD457BA2865652C0010B493 /* LiveAnimationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveAnimationView.h; sourceTree = "<group>"; };
-		BCD457BC2865694A0010B493 /* KSRCPauseLiveMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCPauseLiveMessage.h; sourceTree = "<group>"; };
-		BCD457BD2865694A0010B493 /* KSRCPauseLiveMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSRCPauseLiveMessage.m; sourceTree = "<group>"; };
 		BCD6D15A281950E9009A773E /* WithdrawModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WithdrawModel.h; sourceTree = "<group>"; };
 		BCD6D15B281950E9009A773E /* WithdrawModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WithdrawModel.m; sourceTree = "<group>"; };
 		BCD6D15D281950F1009A773E /* UserBankCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserBankCard.h; sourceTree = "<group>"; };
@@ -3254,8 +3174,6 @@
 		BCDB093B2805C0EE00D0BDAD /* NewClassPopCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NewClassPopCell.xib; sourceTree = "<group>"; };
 		BCDB093C2805C0EE00D0BDAD /* NewClassPopCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewClassPopCell.h; sourceTree = "<group>"; };
 		BCDB093D2805C0EF00D0BDAD /* NewClassPopView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewClassPopView.m; sourceTree = "<group>"; };
-		BCDBC59B286156E700647197 /* LiveRoomViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveRoomViewController.h; sourceTree = "<group>"; };
-		BCDBC59C286156E700647197 /* LiveRoomViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveRoomViewController.m; sourceTree = "<group>"; };
 		BCDE35892897B48E00A9A560 /* shareImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "shareImage@2x.png"; sourceTree = "<group>"; };
 		BCDE358F289A7E4900A9A560 /* KSGroupTagImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSGroupTagImageView.m; sourceTree = "<group>"; };
 		BCDE3590289A7E4900A9A560 /* KSGroupTagImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSGroupTagImageView.h; sourceTree = "<group>"; };
@@ -3375,20 +3293,8 @@
 		BCECE2232B3D648700C0D555 /* CourseFileDisplayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CourseFileDisplayView.m; sourceTree = "<group>"; };
 		BCED5CA8284F5D8D009A42DE /* FriendListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FriendListModel.h; sourceTree = "<group>"; };
 		BCED5CA9284F5D8D009A42DE /* FriendListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FriendListModel.m; sourceTree = "<group>"; };
-		BCED5CAC28507E5F009A42DE /* KSChatLiveMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSChatLiveMessage.h; sourceTree = "<group>"; };
-		BCED5CAD28507E5F009A42DE /* KSChatLiveMessage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSChatLiveMessage.m; sourceTree = "<group>"; };
-		BCED5CAF28507E85009A42DE /* KSChatMusicMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSChatMusicMessage.h; sourceTree = "<group>"; };
-		BCED5CB028507E85009A42DE /* KSChatMusicMessage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSChatMusicMessage.m; sourceTree = "<group>"; };
 		BCED5CB2285083AC009A42DE /* ShareMusicViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareMusicViewController.h; sourceTree = "<group>"; };
 		BCED5CB3285083AC009A42DE /* ShareMusicViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShareMusicViewController.m; sourceTree = "<group>"; };
-		BCED5CB928508823009A42DE /* KSChatLiveShareCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSChatLiveShareCell.h; sourceTree = "<group>"; };
-		BCED5CBA28508823009A42DE /* KSChatLiveShareCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSChatLiveShareCell.m; sourceTree = "<group>"; };
-		BCED5CBC28508831009A42DE /* KSChatMusicShareCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSChatMusicShareCell.h; sourceTree = "<group>"; };
-		BCED5CBD28508831009A42DE /* KSChatMusicShareCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSChatMusicShareCell.m; sourceTree = "<group>"; };
-		BCED5CBF28508F21009A42DE /* ShareLiveCellContentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareLiveCellContentView.h; sourceTree = "<group>"; };
-		BCED5CC028508F21009A42DE /* ShareLiveCellContentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShareLiveCellContentView.m; sourceTree = "<group>"; };
-		BCF1BA4F27F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KSLiveChatroomMemberCount.h; sourceTree = "<group>"; };
-		BCF1BA5027F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomMemberCount.m; sourceTree = "<group>"; };
 		BCF1BA5227F5CB5800FA36C4 /* LiveSeatApplyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveSeatApplyView.h; sourceTree = "<group>"; };
 		BCF1BA5327F5CB5800FA36C4 /* LiveSeatApplyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveSeatApplyView.m; sourceTree = "<group>"; };
 		BCF1BA5527F5CBA100FA36C4 /* LiveSeatApplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LiveSeatApplyView.xib; sourceTree = "<group>"; };
@@ -3552,53 +3458,6 @@
 			path = Search;
 			sourceTree = "<group>";
 		};
-		275E3DAA27F45BBB0010EC30 /* LiveRoomMessage */ = {
-			isa = PBXGroup;
-			children = (
-				275E3DAB27F45BE90010EC30 /* KSChatroomMessageCenter.h */,
-				275E3DAC27F45BE90010EC30 /* KSChatroomMessageCenter.m */,
-				275E3DC327F460030010EC30 /* KSLiveChatroomClose.h */,
-				275E3DC427F460030010EC30 /* KSLiveChatroomClose.m */,
-				275E3DB127F45D380010EC30 /* KSLiveChatroomDownSeat.h */,
-				275E3DB227F45D380010EC30 /* KSLiveChatroomDownSeat.m */,
-				275E3DB427F45DA60010EC30 /* KSLiveChatroomEnter.h */,
-				275E3DB527F45DA60010EC30 /* KSLiveChatroomEnter.m */,
-				275E3DC627F460720010EC30 /* KSLiveChatroomKickOut.h */,
-				275E3DC727F460720010EC30 /* KSLiveChatroomKickOut.m */,
-				275E3DBA27F45E750010EC30 /* KSLiveChatroomLeave.h */,
-				275E3DBB27F45E750010EC30 /* KSLiveChatroomLeave.m */,
-				275E3DAE27F45CA60010EC30 /* KSLiveChatroomLike.h */,
-				275E3DAF27F45CA60010EC30 /* KSLiveChatroomLike.m */,
-				BCF1BA4F27F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.h */,
-				BCF1BA5027F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m */,
-				BC0238042865C4F6005560CA /* KSLiveChatroomMemberUp.h */,
-				BC0238052865C4F6005560CA /* KSLiveChatroomMemberUp.m */,
-				275E3DCF27F463140010EC30 /* KSLiveChatroomSeatApply.h */,
-				275E3DD027F463140010EC30 /* KSLiveChatroomSeatApply.m */,
-				275E3DD227F463580010EC30 /* KSLiveChatroomSeatResponse.h */,
-				275E3DD327F463580010EC30 /* KSLiveChatroomSeatResponse.m */,
-				275E3DBD27F45EB90010EC30 /* KSLiveChatroomUserQuit.h */,
-				275E3DBE27F45EB90010EC30 /* KSLiveChatroomUserQuit.m */,
-				275E3DC027F45F3F0010EC30 /* KSLiveChatroomWelcome.h */,
-				275E3DC127F45F3F0010EC30 /* KSLiveChatroomWelcome.m */,
-				BC6C303827F586A60044BC0F /* KSRCMessageModel.h */,
-				BC6C303927F586A60044BC0F /* KSRCMessageModel.m */,
-				BCD457BC2865694A0010B493 /* KSRCPauseLiveMessage.h */,
-				BCD457BD2865694A0010B493 /* KSRCPauseLiveMessage.m */,
-				BC0238072865C600005560CA /* KSRCShopRushMessage.h */,
-				BC0238082865C601005560CA /* KSRCShopRushMessage.m */,
-				BC02380E2865C6F9005560CA /* RCChatroomLikeCount.h */,
-				BC02380D2865C6F9005560CA /* RCChatroomLikeCount.m */,
-				BC02BCF428B328A9005CB483 /* RCChatroomSeatsControl.h */,
-				BC02BCF328B328A9005CB483 /* RCChatroomSeatsControl.m */,
-				BC02BCEE28B32770005CB483 /* KSDownSeatAllMessage.h */,
-				BC02BCEF28B32770005CB483 /* KSDownSeatAllMessage.m */,
-				BC02BCED28B32770005CB483 /* KSRejectAllSeatMessage.h */,
-				BC02BCF028B32771005CB483 /* KSRejectAllSeatMessage.m */,
-			);
-			path = LiveRoomMessage;
-			sourceTree = "<group>";
-		};
 		275E3DD527F467410010EC30 /* InputBar */ = {
 			isa = PBXGroup;
 			children = (
@@ -4082,8 +3941,6 @@
 				277930EE27E30FBE0010E277 /* CALayer+Color.m */,
 				277930FA27E30FBE0010E277 /* CALayer+Layout.h */,
 				2779311A27E30FBE0010E277 /* CALayer+Layout.m */,
-				2779310E27E30FBE0010E277 /* KSUtilities.h */,
-				277930F527E30FBE0010E277 /* KSUtilities.m */,
 				2779312127E30FBE0010E277 /* NSArray+zh_SafeAccess.h */,
 				277930FF27E30FBE0010E277 /* NSArray+zh_SafeAccess.m */,
 				BCF425E32AB8797500BCD942 /* NSDate+DateDetail.h */,
@@ -4860,10 +4717,6 @@
 				27F9CB0F27EC60CE003E0FE4 /* GroupListModel.m */,
 				2755C07227EC905D007D9070 /* GroupMemberModel.h */,
 				2755C07327EC905E007D9070 /* GroupMemberModel.m */,
-				BCED5CAC28507E5F009A42DE /* KSChatLiveMessage.h */,
-				BCED5CAD28507E5F009A42DE /* KSChatLiveMessage.m */,
-				BCED5CAF28507E85009A42DE /* KSChatMusicMessage.h */,
-				BCED5CB028507E85009A42DE /* KSChatMusicMessage.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -4895,20 +4748,10 @@
 				275B170927EB14A00081FDEF /* KSChatListSearchView.h */,
 				275B170A27EB14A00081FDEF /* KSChatListSearchView.m */,
 				275B170C27EB14AC0081FDEF /* KSChatListSearchView.xib */,
-				BCED5CB928508823009A42DE /* KSChatLiveShareCell.h */,
-				BCED5CBA28508823009A42DE /* KSChatLiveShareCell.m */,
-				BCED5CBC28508831009A42DE /* KSChatMusicShareCell.h */,
-				BCED5CBD28508831009A42DE /* KSChatMusicShareCell.m */,
 				BC12638E28FEC8C200509E90 /* KSChatTagView.h */,
 				BC12638F28FEC8C200509E90 /* KSChatTagView.m */,
 				BCDE3590289A7E4900A9A560 /* KSGroupTagImageView.h */,
 				BCDE358F289A7E4900A9A560 /* KSGroupTagImageView.m */,
-				BCED5CBF28508F21009A42DE /* ShareLiveCellContentView.h */,
-				BCED5CC028508F21009A42DE /* ShareLiveCellContentView.m */,
-				BC106BB72A8F6EAB000759A9 /* ShareLiveCellContentView.xib */,
-				BCB908D92850A71100F5FF69 /* ShareMusicCellContentView.h */,
-				BCB908DA2850A71100F5FF69 /* ShareMusicCellContentView.m */,
-				BC106BB52A8F6E93000759A9 /* ShareMusicCellContentView.xib */,
 				BC14E4922AB3101B000C4983 /* TenantGroupCreate */,
 			);
 			path = View;
@@ -4963,7 +4806,6 @@
 		27D83F4327F3EBAA00062476 /* Live */ = {
 			isa = PBXGroup;
 			children = (
-				275E3DAA27F45BBB0010EC30 /* LiveRoomMessage */,
 				27D83F4427F3EBAA00062476 /* Controller */,
 				27D83F4527F3EBAA00062476 /* Model */,
 				27D83F4627F3EBAA00062476 /* View */,
@@ -4976,8 +4818,6 @@
 			children = (
 				27D83F4727F3EBC400062476 /* CreateLiveViewController.h */,
 				27D83F4827F3EBC400062476 /* CreateLiveViewController.m */,
-				BCDBC59B286156E700647197 /* LiveRoomViewController.h */,
-				BCDBC59C286156E700647197 /* LiveRoomViewController.m */,
 			);
 			path = Controller;
 			sourceTree = "<group>";
@@ -4985,8 +4825,6 @@
 		27D83F4527F3EBAA00062476 /* Model */ = {
 			isa = PBXGroup;
 			children = (
-				275E3DA727F45A8A0010EC30 /* KSLiveStreamVideo.h */,
-				275E3DA827F45A8A0010EC30 /* KSLiveStreamVideo.m */,
 				BCC9F35327F5F4FD00647449 /* LiveSeatMember.h */,
 				BCC9F35427F5F4FD00647449 /* LiveSeatMember.m */,
 				BCB6340727F6A35700ACFDCF /* LiveroomTimeManager.h */,
@@ -5017,8 +4855,6 @@
 				275E3DED27F467BF0010EC30 /* LiveRoomBottomView.xib */,
 				275E3DEF27F467D70010EC30 /* SeatContentView.h */,
 				275E3DF027F467D70010EC30 /* SeatContentView.m */,
-				275E3DF227F467EC0010EC30 /* KSChatroomTextCell.h */,
-				275E3DF427F467ED0010EC30 /* KSChatroomTextCell.m */,
 				275E3DF327F467EC0010EC30 /* LiveRoomLikeLayer.h */,
 				275E3DF527F467ED0010EC30 /* LiveRoomLikeLayer.m */,
 				275E3DF827F46B340010EC30 /* KSBeautySettingView.h */,
@@ -6571,7 +6407,6 @@
 			children = (
 				BC71D17F2887FDAB0010F14B /* Controller */,
 				BC71D1822887FDAB0010F14B /* Model */,
-				BC71D1A52887FDAB0010F14B /* View */,
 			);
 			path = AnimationLaunch;
 			sourceTree = "<group>";
@@ -6594,13 +6429,6 @@
 			path = Model;
 			sourceTree = "<group>";
 		};
-		BC71D1A52887FDAB0010F14B /* View */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
 		BC71D1C82887FDD40010F14B /* images */ = {
 			isa = PBXGroup;
 			children = (
@@ -7514,7 +7342,6 @@
 			isa = PBXGroup;
 			children = (
 				BCA9CE2927FD89CE00D558C6 /* Controller */,
-				BCA9CE2A27FD89CE00D558C6 /* Model */,
 				BCA9CE2B27FD89CE00D558C6 /* View */,
 			);
 			path = AccompanyCourse;
@@ -7529,13 +7356,6 @@
 			path = Controller;
 			sourceTree = "<group>";
 		};
-		BCA9CE2A27FD89CE00D558C6 /* Model */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = Model;
-			sourceTree = "<group>";
-		};
 		BCA9CE2B27FD89CE00D558C6 /* View */ = {
 			isa = PBXGroup;
 			children = (
@@ -8476,7 +8296,6 @@
 				BC7B0F5229271B650044CF61 /* CourseWarePreviewView.xib in Resources */,
 				BC71D1EB2887FDD40010F14B /* img_1.png in Resources */,
 				BC71DF262A8A014F003F165E /* KSImageDisplayView.xib in Resources */,
-				BC106BB82A8F6EAB000759A9 /* ShareLiveCellContentView.xib in Resources */,
 				BC161CE92AE0FD630071530A /* TenantGroupSortView.xib in Resources */,
 				BC3673DB28A606A500059721 /* live_animation_1.png in Resources */,
 				BC71DEF92A89F470003F165E /* TxClassroomChatOtherCell.xib in Resources */,
@@ -8512,7 +8331,6 @@
 				BCD457A72863196F0010B493 /* CourseTimeSegView.xib in Resources */,
 				BC9AA0D42ABC430B00CD954D /* KSCustomLoadingView.xib in Resources */,
 				BC9070A428C7159F00237958 /* MyStyleNavView.xib in Resources */,
-				BC106BB62A8F6E94000759A9 /* ShareMusicCellContentView.xib in Resources */,
 				2779362E27E33C360010E277 /* LoginBodyView.xib in Resources */,
 				BC84182D2AC2D82900D8F90E /* ForgetPasswordBodyView.xib in Resources */,
 				BC8B6E6E285836B600866917 /* low_staff.png in Resources */,
@@ -8759,14 +8577,11 @@
 				BC38C42D2AF900E100ABFCC2 /* KSPlayerSliderView.m in Sources */,
 				BC71DE922A89C937003F165E /* TXClassroomTextMsg.m in Sources */,
 				BC38C4232AF900E100ABFCC2 /* UIView+KSCovertImage.m in Sources */,
-				BC0238062865C4F6005560CA /* KSLiveChatroomMemberUp.m in Sources */,
-				277931E827E30FC20010E277 /* KSUtilities.m in Sources */,
 				BC106B332A8F4541000759A9 /* TXLiveMessageCenter.m in Sources */,
 				2779326327E30FD80010E277 /* FSCalendarCollectionView.m in Sources */,
 				BCA1135728A2439D007FAFB9 /* HomeBannerCell.m in Sources */,
 				BC2888522A80DB990064B773 /* AppDelegate+AppService.m in Sources */,
 				BC106B7A2A8F4586000759A9 /* TXLiveMessageLikeCount.m in Sources */,
-				BCED5CB128507E85009A42DE /* KSChatMusicMessage.m in Sources */,
 				BCA9CE3927FD93EB00D558C6 /* AccompanyStudentEvaCell.m in Sources */,
 				2779324027E30FC30010E277 /* VoNetworking+RequestManager.m in Sources */,
 				2723B68C27F1685600E0B90B /* HomeNavView.m in Sources */,
@@ -8776,7 +8591,6 @@
 				2779321927E30FC30010E277 /* UITextView_Toolbar.m in Sources */,
 				BC285833280947BA0024697C /* EvaluateSortView.m in Sources */,
 				BC32E109286AB142001434DD /* BaseAlertView.m in Sources */,
-				275E3DBF27F45EB90010EC30 /* KSLiveChatroomUserQuit.m in Sources */,
 				BCD6D16528195A91009A773E /* WithdrawApplyBodyView.m in Sources */,
 				27A54CE427E9B144007309A3 /* ModifyNameViewController.m in Sources */,
 				BC221FA328C72B9500F99802 /* MyStyleVideoView.m in Sources */,
@@ -8794,7 +8608,6 @@
 				BC106B872A8F4586000759A9 /* TXConstMessage.m in Sources */,
 				2779323927E30FC30010E277 /* LLCollectionViewCell.m in Sources */,
 				2779326A27E30FD80010E277 /* FSCalendarWeekdayView.m in Sources */,
-				BC02BCF228B32771005CB483 /* KSRejectAllSeatMessage.m in Sources */,
 				BC106B302A8F4541000759A9 /* TXLiveRoomTimeManager.m in Sources */,
 				BCDB0931280583C100D0BDAD /* NSObject+KSDateFormatter.m in Sources */,
 				BC4BCE702823A02F00522C8B /* AddressBottomView.m in Sources */,
@@ -8864,7 +8677,6 @@
 				BC15534E2AB325E200C1C347 /* TenantChooseMemberViewController.m in Sources */,
 				277931C627E30FC20010E277 /* NSObject+KSImpChangeTool.m in Sources */,
 				BCECE2132B3D5F0800C0D555 /* FeedbackViewController.m in Sources */,
-				275E3DAD27F45BE90010EC30 /* KSChatroomMessageCenter.m in Sources */,
 				BC14E46E2AB2A16A000C4983 /* HomeTenantPageView.m in Sources */,
 				BC106BAD2A8F45AA000759A9 /* TXLiveRoomHeadView.m in Sources */,
 				BCA353CE2858A86200377661 /* MusicRoomCourseCell.m in Sources */,
@@ -8880,10 +8692,7 @@
 				BC8B6E6828575DD200866917 /* MusicDisplayView.m in Sources */,
 				277931DF27E30FC20010E277 /* UIControl+ButtonAction.m in Sources */,
 				BC31BF802B219C5700F7D538 /* ToneTuningViewController.m in Sources */,
-				275E3DB627F45DA60010EC30 /* KSLiveChatroomEnter.m in Sources */,
-				BCED5CBB28508823009A42DE /* KSChatLiveShareCell.m in Sources */,
 				27BC3B2527F2B76900D81E30 /* MusicMessageCell.m in Sources */,
-				BCED5CC128508F21009A42DE /* ShareLiveCellContentView.m in Sources */,
 				BC71DF062A89F470003F165E /* TXFullVideoView.m in Sources */,
 				BCC9F42E27F69BD200647449 /* RolePortraitView.m in Sources */,
 				277931ED27E30FC20010E277 /* zhPopupController.m in Sources */,
@@ -8924,7 +8733,6 @@
 				BC450D352A86024600992740 /* UIButton+KSDelayAction.m in Sources */,
 				BC106B862A8F4586000759A9 /* TXLiveMessageKickOut.m in Sources */,
 				27F9CAF727EC1A16003E0FE4 /* UITableView+SCIndexView.m in Sources */,
-				275E3DC827F460720010EC30 /* KSLiveChatroomKickOut.m in Sources */,
 				2779361B27E32C3A0010E277 /* MineViewController.m in Sources */,
 				BC2888652A8100EA0064B773 /* KSConversationListController.m in Sources */,
 				BCC03F95280562F700461B7C /* MyLessonBodyView.m in Sources */,
@@ -8955,7 +8763,6 @@
 				BCF1BA5A27F5CF3C00FA36C4 /* LiveSeatApplyCell.m in Sources */,
 				BC14E4732AB2DAFD000C4983 /* StyleVideo.m in Sources */,
 				BC7CFFAF2817E6C900CAEB21 /* IncomeCountBottomView.m in Sources */,
-				275E3DD127F463140010EC30 /* KSLiveChatroomSeatApply.m in Sources */,
 				2779322427E30FC30010E277 /* ShopButton.m in Sources */,
 				BCE6A0A927F852CD00C97704 /* MineFansGroupCell.m in Sources */,
 				BCC03F88280460C000461B7C /* InstrumentHeaderView.m in Sources */,
@@ -8971,7 +8778,6 @@
 				275E3DE227F467410010EC30 /* KSChatEmojiCollectionCell.m in Sources */,
 				BC14E4952AB31059000C4983 /* TenantCreateGroupBodyView.m in Sources */,
 				BCA1134828A22A66007FAFB9 /* HomeHotMusicCollectionCell.m in Sources */,
-				275E3DC227F45F3F0010EC30 /* KSLiveChatroomWelcome.m in Sources */,
 				BCDF820E2A8A2955005F8B82 /* MemberSettingMicAlert.m in Sources */,
 				BC84182F2AC2D82900D8F90E /* ForgetPasswordBodyView.m in Sources */,
 				BC8831002873D26000C702A0 /* LiveVideoModel.m in Sources */,
@@ -9029,7 +8835,6 @@
 				277931FD27E30FC30010E277 /* AnimationContoller.m in Sources */,
 				277931FC27E30FC30010E277 /* KLTNavigationController.m in Sources */,
 				BCDE3591289A7E4900A9A560 /* KSGroupTagImageView.m in Sources */,
-				275E3DBC27F45E750010EC30 /* KSLiveChatroomLeave.m in Sources */,
 				27D83F5127F4036E00062476 /* KSNormalAlertView.m in Sources */,
 				BCED5CB4285083AC009A42DE /* ShareMusicViewController.m in Sources */,
 				BC1365B8280D130C00EB03E2 /* MyVideoCourseBodyView.m in Sources */,
@@ -9059,7 +8864,6 @@
 				27F9030027E864AE00C08A19 /* NetworkBodyView.m in Sources */,
 				BC8B6DBF28532DB800866917 /* MusicSheetVoList.m in Sources */,
 				2755C08D27ED5DB2007D9070 /* GroupApplyChooseCell.m in Sources */,
-				BC02BCF128B32771005CB483 /* KSDownSeatAllMessage.m in Sources */,
 				BCA7C33F284760AB009D20EC /* NSObject+KeyWindow.m in Sources */,
 				2779321A27E30FC30010E277 /* SkipTextView.m in Sources */,
 				BCC0F7042A8CF13D00C4EFA4 /* TXDanChatCell.m in Sources */,
@@ -9216,7 +9020,6 @@
 				2779321127E30FC30010E277 /* YKMultiLevelTableView.m in Sources */,
 				BCC408D82AFCE0D700C60249 /* KSVideoImageSlider.m in Sources */,
 				BC523B1028A09F3000E9D66B /* MineHeadView.m in Sources */,
-				BCF1BA5127F5C4DD00FA36C4 /* KSLiveChatroomMemberCount.m in Sources */,
 				BCDF82292A8A3080005F8B82 /* ZoomControl.m in Sources */,
 				277931CB27E30FC20010E277 /* KSGifRefreshHeader.m in Sources */,
 				2755C07E27EC95CC007D9070 /* GroupNoticeViewController.m in Sources */,
@@ -9238,7 +9041,6 @@
 				BC1365CC280D478F00EB03E2 /* NotiferMessageModel.m in Sources */,
 				2755C07727EC945D007D9070 /* GroupMemberViewController.m in Sources */,
 				2773205227EDB75B008FAECA /* GroupNoticeCell.m in Sources */,
-				BC0238092865C601005560CA /* KSRCShopRushMessage.m in Sources */,
 				BCC0F7072A8CF13D00C4EFA4 /* KSDanInputBarControl.m in Sources */,
 				BC32E10C286AB31C001434DD /* KSPublicAlertView.m in Sources */,
 				BC5EB5B6280402CB00B4A3B0 /* MyStyleInstrumentCell.m in Sources */,
@@ -9249,7 +9051,6 @@
 				BCD457B72865651A0010B493 /* LiveMoreDisplayView.m in Sources */,
 				2779329227E30FEB0010E277 /* MSSBrowseActionSheet.m in Sources */,
 				27F9CB0027EC3D42003E0FE4 /* GroupListViewCell.m in Sources */,
-				BC6C303A27F586A60044BC0F /* KSRCMessageModel.m in Sources */,
 				BC8B6DC028532DB800866917 /* MusicShareModel.m in Sources */,
 				2780C91C27E48A0700A95A4F /* PasswordLoginController.m in Sources */,
 				2779336027E31CB40010E277 /* UIView+KSExtension.m in Sources */,
@@ -9263,7 +9064,6 @@
 				BCA193BE282B9866004A585D /* MinePageGroupModel.m in Sources */,
 				27F9CAEA27EC1780003E0FE4 /* KSJXBodyView.m in Sources */,
 				BCB633F827F6A18200ACFDCF /* KSTipsView.m in Sources */,
-				275E3DF627F467ED0010EC30 /* KSChatroomTextCell.m in Sources */,
 				BC0A22B72847523E0065C1AB /* MemberBottomView.m in Sources */,
 				BC02BCDA28B3243F005CB483 /* LiveSeatActionView.m in Sources */,
 				BCECE21A2B3D5F0800C0D555 /* KSSortButtonView.m in Sources */,
@@ -9283,7 +9083,6 @@
 				BCC9F44527F69BD200647449 /* Whiteboard.m in Sources */,
 				BCAD01C02872F54F0002CC40 /* LiveVideoListView.m in Sources */,
 				2779322327E30FC30010E277 /* PIckView.m in Sources */,
-				BCED5CAE28507E5F009A42DE /* KSChatLiveMessage.m in Sources */,
 				BC14E48C2AB2FBC7000C4983 /* TenantUnbindDetailBodyView.m in Sources */,
 				BC0A22B62847523E0065C1AB /* MemberListBodyView.m in Sources */,
 				275FA55F27F31AAF00EB6240 /* MinePageViewController.m in Sources */,
@@ -9325,7 +9124,6 @@
 				2779321427E30FC30010E277 /* MBProgressHUD+NJ.m in Sources */,
 				BC14E4762AB2E6C2000C4983 /* UnbindTenantViewController.m in Sources */,
 				BC14A61228A0AC820086395C /* MineTeachToolView.m in Sources */,
-				BC02380F2865C6F9005560CA /* RCChatroomLikeCount.m in Sources */,
 				2779321727E30FC30010E277 /* UITextField_Toolbar.m in Sources */,
 				BC106B762A8F4586000759A9 /* TXLiveForceKickMsg.m in Sources */,
 				BC106BA82A8F45AA000759A9 /* TXLiveSeatBodyView.m in Sources */,
@@ -9413,10 +9211,8 @@
 				BCF61BEF28042F9B0000ACFE /* InstrumentChooseBottonView.m in Sources */,
 				2780C91927E4852500A95A4F /* UINavigationController+KSNavigationBar.m in Sources */,
 				277931E327E30FC20010E277 /* UITextView+ZWPlaceHolder.m in Sources */,
-				BCB908DB2850A71100F5FF69 /* ShareMusicCellContentView.m in Sources */,
 				BC71DF1C2A89F470003F165E /* IACircleSliderThumbLayer.m in Sources */,
 				BC31BF912B219C5700F7D538 /* TunerSettingView.m in Sources */,
-				BCDBC59D286156E700647197 /* LiveRoomViewController.m in Sources */,
 				2779320927E30FC30010E277 /* KSRecordPowerAnimationView.m in Sources */,
 				BC106C552A9365DE000759A9 /* ClassMemberEmptyView.m in Sources */,
 				BC02BCE628B324C9005CB483 /* LiveDownSeatView.m in Sources */,
@@ -9439,7 +9235,6 @@
 				2779320F27E30FC30010E277 /* shopview.m in Sources */,
 				BC106B892A8F4586000759A9 /* TXLiveMessageLike.m in Sources */,
 				BC7CFFD02817FF6700CAEB21 /* CardDisplayView.m in Sources */,
-				275E3DC527F460030010EC30 /* KSLiveChatroomClose.m in Sources */,
 				277932B527E30FFE0010E277 /* SDCycleScrollView.m in Sources */,
 				BC063D842823CEFE000EB350 /* AddressListModel.m in Sources */,
 				BCA353DB2858D97C00377661 /* MusicRoomListModel.m in Sources */,
@@ -9464,7 +9259,6 @@
 				BCF1BA5427F5CB5800FA36C4 /* LiveSeatApplyView.m in Sources */,
 				BCE6A0A427F8517900C97704 /* MineVideoCell.m in Sources */,
 				BC0A22C0284752900065C1AB /* WhiteboardListCell.m in Sources */,
-				BCD457BE2865694B0010B493 /* KSRCPauseLiveMessage.m in Sources */,
 				BC106B842A8F4586000759A9 /* TXControlMemberMic.m in Sources */,
 				BC0A22C1284752900065C1AB /* WhiteboardListView.m in Sources */,
 				BC332DB3284866BE005AEF95 /* KSOrderManager.m in Sources */,
@@ -9485,10 +9279,8 @@
 				BC71DF2B2A8A0432003F165E /* KSWhiteboardRefreshView.m in Sources */,
 				2779335827E316DD0010E277 /* FastForwardView.m in Sources */,
 				277935DC27E326650010E277 /* RecordCheckManager.m in Sources */,
-				275E3DB327F45D380010EC30 /* KSLiveChatroomDownSeat.m in Sources */,
 				BCD457B2286564DB0010B493 /* LiveRoomAlertView.m in Sources */,
 				BCB399AC27F946A200AFF376 /* CourseNavView.m in Sources */,
-				BCED5CBE28508831009A42DE /* KSChatMusicShareCell.m in Sources */,
 				BCE06F2B2818146700234817 /* KSConfirmAlertView.m in Sources */,
 				275B16FA27EB08230081FDEF /* CreateFansGroupViewController.m in Sources */,
 				277931CA27E30FC20010E277 /* KSAudioSessionManager.m in Sources */,
@@ -9497,7 +9289,6 @@
 				275B170B27EB14A00081FDEF /* KSChatListSearchView.m in Sources */,
 				BC71DE972A89C937003F165E /* TXDeviceControlNotiferMsg.m in Sources */,
 				2779326D27E30FD80010E277 /* FSCalendarConstants.m in Sources */,
-				275E3DD427F463580010EC30 /* KSLiveChatroomSeatResponse.m in Sources */,
 				BCEA751D2818F6C900886A86 /* MyCardModel.m in Sources */,
 				2779327027E30FD80010E277 /* FSCalendarTransitionCoordinator.m in Sources */,
 				BCC9F42C27F69BD200647449 /* InputTextField.m in Sources */,
@@ -9549,16 +9340,13 @@
 				BCD6D15F281950F2009A773E /* UserBankCard.m in Sources */,
 				BC56C95D2923412800AF301F /* CoursewareViewModel.m in Sources */,
 				BC1191ED280E55CB00A716F7 /* EvaluateDetailModel.m in Sources */,
-				275E3DA927F45A8A0010EC30 /* KSLiveStreamVideo.m in Sources */,
 				BC106B7F2A8F4586000759A9 /* TXLiveMessagePauseLive.m in Sources */,
 				BC60E3BD287D294C00B05441 /* AccountDeleteViewController.m in Sources */,
 				BC56C95829233F1700AF301F /* CoursewareBottomView.m in Sources */,
 				BC6BEAAA288E3D7400022109 /* HomeNewHeadView.m in Sources */,
 				277D431A27E9991200107DB7 /* ModifyViewController.m in Sources */,
-				BC02BCF528B328AA005CB483 /* RCChatroomSeatsControl.m in Sources */,
 				27BC3B1B27F2B37500D81E30 /* MyMusicBodyView.m in Sources */,
 				BC71DF1A2A89F470003F165E /* IACircularSliderTrackLayer.m in Sources */,
-				275E3DB027F45CA60010EC30 /* KSLiveChatroomLike.m in Sources */,
 				2773204727EDB670008FAECA /* GroupNoticeEditController.m in Sources */,
 				277931C427E30FC20010E277 /* NSMutableArray+KSSafe.m in Sources */,
 				BC483231282A646A005F534C /* HomeRecentCourseView.m in Sources */,
@@ -9921,28 +9709,6 @@
 					"-framework",
 					"\"ReplayKit\"",
 					"-framework",
-					"\"RongChatRoom\"",
-					"-framework",
-					"\"RongCustomerService\"",
-					"-framework",
-					"\"RongDiscussion\"",
-					"-framework",
-					"\"RongFaceBeautifier\"",
-					"-framework",
-					"\"RongIMKit\"",
-					"-framework",
-					"\"RongIMLib\"",
-					"-framework",
-					"\"RongIMLibCore\"",
-					"-framework",
-					"\"RongPublicService\"",
-					"-framework",
-					"\"RongRTCLib\"",
-					"-framework",
-					"\"RongRTCPlayer\"",
-					"-framework",
-					"\"RongSight\"",
-					"-framework",
 					"\"Security\"",
 					"-framework",
 					"\"StoreKit\"",
@@ -10122,28 +9888,6 @@
 					"-framework",
 					"\"ReplayKit\"",
 					"-framework",
-					"\"RongChatRoom\"",
-					"-framework",
-					"\"RongCustomerService\"",
-					"-framework",
-					"\"RongDiscussion\"",
-					"-framework",
-					"\"RongFaceBeautifier\"",
-					"-framework",
-					"\"RongIMKit\"",
-					"-framework",
-					"\"RongIMLib\"",
-					"-framework",
-					"\"RongIMLibCore\"",
-					"-framework",
-					"\"RongPublicService\"",
-					"-framework",
-					"\"RongRTCLib\"",
-					"-framework",
-					"\"RongRTCPlayer\"",
-					"-framework",
-					"\"RongSight\"",
-					"-framework",
 					"\"Security\"",
 					"-framework",
 					"\"StoreKit\"",

+ 0 - 21
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 25
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatLiveShareCell.h

@@ -1,16 +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 - 78
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatLiveShareCell.m

@@ -1,78 +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];
-    }
-    return _liveContentView;
-}
-
-- (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
KulexiuForTeacher/KulexiuForTeacher/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 - 62
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/KSChatMusicShareCell.m

@@ -1,62 +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];
-    }
-    return _musicContentView;
-}
-
-- (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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 204
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareLiveCellContentView.xib

@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" 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="20020"/>
-        <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="34" 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="118.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="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="7" 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 firstAttribute="trailing" secondItem="q2Q-aP-HCM" secondAttribute="trailing" constant="12" id="hmj-hC-1j8"/>
-                        <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="7D7-lB-a41">
-                    <rect key="frame" x="383" y="0.0" width="44" height="44"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="44" id="GUW-2H-yUR"/>
-                        <constraint firstAttribute="height" constant="44" id="wEl-ra-JG8"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="6"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </imageView>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-            <constraints>
-                <constraint firstItem="yd2-ur-hRq" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="34" id="63I-gG-Zua"/>
-                <constraint firstItem="yd2-ur-hRq" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="K8Q-lg-bH5"/>
-                <constraint firstAttribute="trailing" secondItem="7D7-lB-a41" secondAttribute="trailing" constant="14" id="qz7-EB-Sd3"/>
-                <constraint firstAttribute="bottom" secondItem="yd2-ur-hRq" secondAttribute="bottom" id="uhj-Y8-HNb"/>
-                <constraint firstItem="7D7-lB-a41" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="vJi-gG-FFc"/>
-            </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="7D7-lB-a41" id="Uuk-qD-juy"/>
-                <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="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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 160
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/ShareMusicCellContentView.xib

@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" 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="20020"/>
-        <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="37" 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" systemColor="systemBackgroundColor"/>
-                    <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="8Ex-jS-f6m">
-                    <rect key="frame" x="356" y="0.0" width="44" height="44"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="44" id="6MA-Gb-oOY"/>
-                        <constraint firstAttribute="width" constant="44" id="Afd-Ym-YsE"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="6"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </imageView>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-            <constraints>
-                <constraint firstItem="8Ex-jS-f6m" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Ecd-iv-QxS"/>
-                <constraint firstItem="UDH-9B-8f6" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="OJt-lz-uN2"/>
-                <constraint firstAttribute="trailing" secondItem="8Ex-jS-f6m" secondAttribute="trailing" constant="14" id="Pu2-cQ-2oW"/>
-                <constraint firstAttribute="bottom" secondItem="UDH-9B-8f6" secondAttribute="bottom" id="iQY-mQ-cgC"/>
-                <constraint firstItem="UDH-9B-8f6" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="37" id="qIO-WV-8Nm"/>
-            </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="teacher_info" destination="8Ex-jS-f6m" id="Dug-sk-Cuc"/>
-                <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="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 - 29
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.h

@@ -1,29 +0,0 @@
-//
-//  LiveRoomViewController.h
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/21.
-//
-
-#import "BaseViewController.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef void(^LiveRoomBackAction)(void);
-
-@interface LiveRoomViewController : BaseViewController
-
-@property (nonatomic, strong) NSString *roomId; // 房间号
-
-@property (nonatomic, assign) BOOL isEnterBackground;
-
-/// 是否临时房间
-@property (nonatomic, assign) BOOL isTempRoom;
-
-@property (nonatomic, strong) NSString *liveContent; // 直播内容
-
-- (void)backRefreshCallback:(LiveRoomBackAction)callback;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 2201
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m

@@ -1,2201 +0,0 @@
-//
-//  LiveRoomViewController.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/21.
-//
-
-#import "LiveRoomViewController.h"
-#import "LivePreviewBodyView.h"
-#import <RongRTCLib/RongRTCLib.h>
-#import <RongIMKit/RongIMKit.h>
-#import <RongFaceBeautifier/RongFaceBeautifier.h>
-#import "KSBeautySettingView.h"
-#import "KSEnterLiveroomManager.h"
-#import "LiveroomTimeManager.h"
-
-#import "UserInfoManager.h"
-#import "KSChatInputBarControl.h"
-#import "LiveRoomHeadView.h"
-#import "LiveRoomBottomView.h"
-#import "SeatContentView.h"
-#import "SeatTipsView.h"
-#import "KSLiveStreamVideo.h"
-#import "KSRCMessageModel.h"
-#import "KSChatroomMessageCenter.h"
-#import "KSChatroomTextCell.h"
-#import "LiveRoomAlertView.h"
-#import "LiveMoreDisplayView.h"
-#import "LiveAnimationView.h"
-#import "KSShareChooseViewController.h"
-#import "KSChatLiveMessage.h"
-
-#import "LiveSeatActionView.h"
-//#import <ImSDK_Plus/V2TIMManager.h>
-
-typedef NS_ENUM(NSInteger, LIVEPAGE) {
-    LIVEPAGE_PREVIEW,
-    LIVEPAGE_LIVE,
-};
-
-@interface LiveRoomViewController ()<RCRTCEngineEventDelegate,RCRTCRoomEventDelegate,RCRTCStatusReportDelegate,UIGestureRecognizerDelegate,KSChatInputBarControlDelegate,UITableViewDataSource,UITableViewDelegate,LiveroomTimeManagerDelegate>
-
-@property (nonatomic, strong) LiveroomTimeManager *timeManager;
-
-@property (nonatomic, assign) LIVEPAGE pageType;
-
-@property (nonatomic, assign) BOOL isPauseLive; // 是否暂停直播
-
-@property (nonatomic, assign) BOOL isOtherLogin;  // 是否被顶掉
-
-@property (nonatomic, strong) LivePreviewBodyView *previewPageView;
-
-@property (nonatomic, strong) RCRTCVideoView *preVideoView;
-
-@property (nonatomic, strong) KSBeautySettingView *settingView;
-
-@property (nonatomic, assign) BOOL isBeautyOn;
-
-@property (nonatomic, assign) int filterLevel;
-
-#pragma mark ------- 直播房间信息
-/*!
- 身份状态 老师/观众
- */
-@property (nonatomic, assign) RCRTCLiveRoleType liveRoleType;
-/// 老师id
-@property (nonatomic, strong) NSString *createrId;
-/// 老师名称
-@property (nonatomic, strong) NSString *createrName;
-/// 老师头像
-@property (nonatomic, strong) NSString *createrAvatal;
-
-// 是否禁止连麦
-@property (nonatomic, assign) BOOL enableSeat;
-// 是否禁止聊天
-@property (nonatomic, assign) BOOL enableChat;
-// 是否允许点赞
-@property (nonatomic, assign) BOOL enableLike;
-
-@property (nonatomic, assign) NSInteger likeCount;
-/// 房间人数
-@property (nonatomic, assign) NSInteger totalCount;
-
-#pragma mark ---- Live page
-
-@property (nonatomic, strong) UIView *livePageView;
-
-@property (nonatomic, strong) RCRTCRoom *room;
-
-@property (nonatomic, assign) BOOL isImConnected;
-
-@property (nonatomic, assign) BOOL hasJoinRoomSuccess;
-
-@property (nonatomic, strong) KSLiveStreamVideo *localVideo;
-
-@property (nonatomic, strong) UIView *liveVideoView;
-
-@property (nonatomic, strong) LiveRoomHeadView *headView;
-
-@property (nonatomic, copy) LiveRoomBottomView *bottomView;
-
-/// 连麦的视图
-@property (nonatomic, strong) SeatContentView *seatContainer;
-// 聊天UI
-/*!
- 消息列表CollectionView和输入框都在这个view里
- */
-@property(nonatomic, strong) UIView *messageContentView;
-
-/*!
- 会话页面的TableView
- */
-@property (nonatomic, strong) UITableView *conversationMessageTableView;
-
-/*!
- 聊天内容的消息Cell数据模型的数据源
- 
- @discussion 数据源中存放的元素为消息Cell的数据模型,即RCDLiveMessageModel对象。
- */
-@property(nonatomic, strong) NSMutableArray<KSRCMessageModel *> *conversationDataRepository;
-/**
- 输入工具栏
- */
-@property(nonatomic,strong) KSChatInputBarControl *inputBar;
-/**
- *  是否需要滚动到底部
- */
-@property(nonatomic, assign) BOOL isNeedScrollToButtom;
-
-@property (nonatomic, strong) UIView *seatCtrlView;
-
-@property (nonatomic, strong) LiveSeatActionView *seatActionView;
-
-@property (nonatomic, strong) NSMutableArray *seatApplyArray;  // 申请连麦数组
-// 远端连麦用户
-@property (nonatomic, strong) NSMutableArray *remoteMemberArray;
-
-/// 连麦申请统计数据
-@property (nonatomic, strong) SeatTipsView *seatApplyTips;
-
-/// 提示窗
-@property (nonatomic, strong) LiveRoomAlertView *alertView;
-
-// 定时器
-@property (nonatomic, strong) dispatch_source_t timer;
-
-@property (nonatomic, strong) LiveMoreDisplayView *moreView;
-
-@property (nonatomic) LiveAnimationView *animationView;
-
-/// 直播课结束时间
-@property (nonatomic, strong) NSString *liveEndTime;
-
-/// 直播间关闭延迟时间
-@property (nonatomic, assign) NSInteger expiredCloseMinute;
-
-@property (nonatomic, copy) LiveRoomBackAction callback;
-
-@property (nonatomic, strong)  UITapGestureRecognizer *gesture;
-
-@property (nonatomic, assign) BOOL needPublishStream;
-
-@property (nonatomic, assign) BOOL micEnable;
-
-@end
-
-
-
-@implementation LiveRoomViewController
-
-- (void)backRefreshCallback:(LiveRoomBackAction)callback {
-    if (callback) {
-        self.callback = callback;
-    }
-}
-
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    // Do any additional setup after loading the view.
-    self.ks_prefersNavigationBarHidden = YES;
-    self.isOtherLogin = NO;
-    [self registerOtherLoginNotice];
-    [self configUI];
-    [self configEngine];
-    self.pageType = LIVEPAGE_PREVIEW;
-    [self countUMEvent];
-}
-
-- (void)countUMEvent {
-    [USER_MANAGER sendUMEvent:@"klx_live"];
-}
-
-- (void)registerOtherLoginNotice {
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(liveroomLogOut) name:@"liveroomLogout" object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(liveroomQuit) name:@"liveroomQuit" object:nil];
-}
-
-- (void)viewWillAppear:(BOOL)animated {
-    [super viewWillAppear:animated];
-    [UIApplication sharedApplication].idleTimerDisabled = YES;
-    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;
-    [IQKeyboardManager sharedManager].enable = NO;
-    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
-}
-
-- (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;
-    }
-}
-
-- (void)configUI {
-    self.previewPageView = [LivePreviewBodyView shareInstance];
-    [self.view addSubview:self.previewPageView];
-    [self.previewPageView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.bottom.top.mas_equalTo(self.view);
-    }];
-    MJWeakSelf;
-    [self.previewPageView previewOperationCallback:^(PREVIEWLIVEACTION action) {
-        [weakSelf previewOperationAction:action];
-    }];
-    [[RCRTCBeautyEngine sharedInstance] reset];
-}
-
-- (void)configEngine {
-    if (!self.preVideoView) {
-        self.preVideoView = [[RCRTCVideoView alloc] init];
-        self.preVideoView.fillMode = RCRTCVideoFillModeAspectFill;
-
-        self.preVideoView.frameAnimated = NO;
-        [self.previewPageView.videoView addSubview:self.preVideoView];
-        [self.preVideoView mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.left.top.bottom.right.mas_equalTo(self.previewPageView.videoView);
-        }];
-    }
-    [[RCRTCEngine sharedInstance].defaultVideoStream setVideoView:self.preVideoView];
-    RCRTCVideoStreamConfig *videoConfig = [RCRTCEngine sharedInstance].defaultVideoStream.videoConfig;
-    videoConfig.videoSizePreset = RCRTCVideoSizePreset1280x720;
-    videoConfig.maxBitrate = 2200;
-    videoConfig.minBitrate = 200;
-    [[RCRTCEngine sharedInstance].defaultVideoStream setVideoConfig:videoConfig];
-    [[RCRTCEngine sharedInstance].defaultVideoStream startCapture];
-    self.filterLevel = 50;
-}
-
-- (void)previewOperationAction:(PREVIEWLIVEACTION)action {
-    switch (action) {
-        case PREVIEWLIVEACTION_BACK: // 返回
-        {
-            if (self.isPauseLive) { // 退出RTC房间
-                [self quitRoomBackPreView:NO];
-            }
-            else {
-                self.room = nil;
-                self.preVideoView = nil;
-                [[RCRTCEngine sharedInstance].defaultVideoStream stopCapture];
-                if (self.callback) {
-                    self.callback();
-                }
-                [self.navigationController dismissViewControllerAnimated:YES completion:nil];
-            }
-        }
-            break;
-        case PREVIEWLIVEACTION_SWITCH: // 切换
-        {
-            [self switchCamera];
-        }
-            break;
-        case PREVIEWLIVEACTION_BEAUTY: // 美颜
-        {
-            [self displayBeautyView];
-        }
-            break;
-        case PREVIEWLIVEACTION_SHARE: // 分享
-        {
-            [self shareLiveRoomMessage];
-        }
-            break;
-        case PREVIEWLIVEACTION_OPEN: // 进入直播间
-        {
-            [self showLiveView];
-        }
-            break;
-        default:
-            break;
-    }
-}
-
-- (void)shareLiveRoomMessage {
-    // 选择群组分享
-    
-    NSMutableDictionary *parm = [NSMutableDictionary dictionary];
-    [parm setValue:@"TC_CHATSHARE_LIVE" forKey:@"businessID"];
-    [parm setValue:@"TXLiveShareCell" forKey:@"TMessageCell_Name"];
-    [parm setValue:@"TXLiveShareMessage" forKey:@"TMessageCell_Name"];
-    
-    NSString *teacherName = UserDefaultObjectForKey(NicknameKey);
-    if ([NSString isEmptyString:teacherName]) {
-        teacherName = [NSString stringWithFormat:@"游客%@",UserDefaultObjectForKey(UIDKey)];
-    }
-    [parm setValue:self.roomId forKey:@"roomUID"];
-    [parm setValue:teacherName forKey:@"teacherName"];
-    [parm setValue:UserDefaultObjectForKey(AvatarUrlKey) forKey:@"teacherAvatar"];
-    [parm setValue:self.liveContent forKey:@"liveContent"];
-    
-    NSData *data = [NSJSONSerialization dataWithJSONObject:parm options:0 error:nil];
-    
-    
-    KSShareChooseViewController *chooseCtrl = [[KSShareChooseViewController alloc] init];
-    chooseCtrl.msgData = data;
-    [self.navigationController pushViewController:chooseCtrl animated:YES];
-}
-
-- (void)displayBeautyView {
-    [self displayBottomView:YES];
-    if (_settingView == nil) {
-        
-        RCRTCBeautyOption *option = [[RCRTCBeautyEngine sharedInstance] getCurrentBeautyOption];
-        RCRTCBeautyFilter filter = [[RCRTCBeautyEngine sharedInstance] getCurrentBeautyFilter];
-        FILTER_TYPE type = [self getFilterType:filter];
-        MJWeakSelf;
-        [self.settingView evaluateMessageWithWhite:option.whitenessLevel smoothLevel:option.smoothLevel ruddyLevel:option.ruddyLevel brightLevel:option.brightLevel filter:type filterLevel:self.filterLevel callback:^(BOOL isOpenBeauty, NSInteger white, NSInteger smoothLevel, NSInteger ruddyLevel, NSInteger brightLevel, FILTER_TYPE type, int filterLevel) {
-            [weakSelf configSettingBeauty:YES white:white smoothLevel:smoothLevel ruddyLevel:ruddyLevel brightLevel:brightLevel filter:[weakSelf getRongBeautyWithType:type] filterLevel:filterLevel];
-        }];
-    }
-    
-    [self.view addSubview:self.settingView];
-    [self.settingView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(self.view);
-    }];
-}
-
-- (FILTER_TYPE)getFilterType:(RCRTCBeautyFilter)filter {
-    switch (filter) {
-        case RCRTCBeautyFilterNone:
-            return FILTER_TYPE_NONE;
-        case RCRTCBeautyFilterFresh:
-            return FILTER_TYPE_QINGXIN;
-        case RCRTCBeautyFilterEsthetic:
-            return FILTER_TYPE_WEIMEI;
-        case RCRTCBeautyFilterRomantic:
-            return FILTER_TYPE_LANGMAN;
-        default:
-            return FILTER_TYPE_NONE;
-            break;
-    }
-}
-
-- (RCRTCBeautyFilter)getRongBeautyWithType:(FILTER_TYPE)type {
-    switch (type) {
-        case FILTER_TYPE_NONE:
-            return RCRTCBeautyFilterNone;
-        case FILTER_TYPE_QINGXIN:
-            return RCRTCBeautyFilterFresh;
-        case FILTER_TYPE_WEIMEI:
-            return RCRTCBeautyFilterEsthetic;
-        case FILTER_TYPE_LANGMAN:
-            return RCRTCBeautyFilterRomantic;
-        default:
-            return RCRTCBeautyFilterNone;
-            break;
-    }
-}
-
-- (void)configSettingBeauty:(BOOL)isOn white:(NSInteger)whitenessLevel smoothLevel:(NSInteger)smoothLevel ruddyLevel:(NSInteger)ruddyLevel brightLevel:(NSInteger)brightLevel filter:(RCRTCBeautyFilter)filter filterLevel:(int)filterLevel {
-    self.isBeautyOn = isOn;
-    if (isOn) {
-        // 获取当前美颜参数
-        RCRTCBeautyOption *option = [[RCRTCBeautyEngine sharedInstance] getCurrentBeautyOption];
-        // 修改参数
-        option.whitenessLevel = whitenessLevel;
-        option.smoothLevel = smoothLevel;
-        option.ruddyLevel = ruddyLevel;
-        option.brightLevel = brightLevel;
-        // 设置美颜
-        [[RCRTCBeautyEngine sharedInstance] setBeautyOption:isOn option:option];
-        // 设置滤镜
-        [[RCRTCBeautyEngine sharedInstance] setBeautyFilter:filter];
-        // 设置滤镜强度
-        [[RCRTCBeautyEngine sharedInstance] setFilterIntensity:filterLevel];
-    }
-    else {
-        [[RCRTCBeautyEngine sharedInstance] reset];
-    }
-}
-
-- (void)showLiveView {
-    
-    if (self.isPauseLive) { // 直接切换页面
-//        self.micEnable = self.micEnable;
-        self.pageType = LIVEPAGE_LIVE;
-        [self.view addSubview:self.livePageView];
-        [self.livePageView mas_makeConstraints:^(MASConstraintMaker *make) {
-            make.left.right.top.bottom.mas_equalTo(self.view);
-        }];
-        // 开启推流
-        [self startPublishStream];
-    }
-    else {
-        [LOADING_MANAGER showHUD];
-        MJWeakSelf;
-        [KSEnterLiveroomManager queryLiveroomConfig:self.roomId callback:^(NSDictionary * _Nullable parm) {
-            [LOADING_MANAGER removeHUD];
-            if (parm != nil) {
-                [weakSelf setupLiveroomConfig:parm];
-                [weakSelf createLivePageViewDisplay];
-            }
-        }];
-    }
-}
-
-- (void)startPublishStream {
-    self.pageType = LIVEPAGE_LIVE;
-    self.isPauseLive = NO;
-    [self publishLocalStream];
-}
-
-- (void)setupLiveroomConfig:(NSDictionary *)source {
-    NSLog(@"room config----- %@",source);
-    self.liveRoleType = RCRTCLiveRoleTypeBroadcaster;
-    self.createrId = [source ks_stringValueForKey:@"speakerId"];
-    self.createrName = [source ks_stringValueForKey:@"speakerName"];
-    self.createrAvatal = [source ks_stringValueForKey:@"speakerPic"];
-    self.likeCount = [source ks_integerValueForKey:@"likeNum"]; // 点赞数
-    NSInteger lookCount = [source ks_integerValueForKey:@"lookNum"];
-    self.totalCount = lookCount; // 观看人数
-    
-    self.enableSeat = ![source ks_boolValueForKey:@"whether_mic"];
-
-    BOOL isTemp = [[source ks_stringValueForKey:@"roomType"] isEqualToString:@"TEMP"];
-    self.isTempRoom = isTemp;
-    if (isTemp == NO) {
-        self.liveEndTime = [source ks_stringValueForKey:@"liveEndTime"];
-        self.expiredCloseMinute = [source ks_integerValueForKey:@"expiredCloseMinute"];
-    }
-    else {
-        self.liveEndTime = [source ks_stringValueForKey:@"liveEndTime"];
-        self.expiredCloseMinute = 0;
-    }
-}
-
-- (void)createLivePageViewDisplay {
-    self.micEnable = YES;
-    self.pageType = LIVEPAGE_LIVE;
-    self.isImConnected = [USER_MANAGER checkIMConnected];
-    [self registerNotification];
-    [self setupUI];
-    [self configIMConnect];
-    [self startTimer];
-}
-
-#pragma mark --- settingView
-- (KSBeautySettingView *)settingView {
-    if (!_settingView) {
-        _settingView = [KSBeautySettingView shareInstance];
-        MJWeakSelf;
-        [_settingView hiddenViewCallback:^{
-            [weakSelf displayBottomView:NO];
-        }];
-        
-    }
-    return _settingView;
-}
-
-- (void)displayBottomView:(BOOL)isHidden {
-    if (isHidden) {
-        self.previewPageView.functionView.hidden = YES;
-    }
-    else {
-        self.previewPageView.functionView.hidden = NO;
-    }
-}
-
-
-#pragma mark ------- Live page
-- (void)startTimer {
-    if (self.timer) {
-        dispatch_resume(self.timer);
-    }
-}
-- (void)registerNotification {
-
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(IMConnetedCallback) name:@"RongIMConnected" object:nil];
-    [KSChatroomMessageCenter registerMessageTypes];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMessageNotification:) name:OnReceiveChatroomMessageNotification object:nil];
-    
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEnterBackground) name:@"appEnterBackground" object:nil];
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appBecomeActive) name:@"appBecomeActive" object:nil];
-    [self configTimerManager];
-}
-
-- (void)configTimerManager {
-    
-    self.timeManager.endClassTime = self.liveEndTime;
-    self.timeManager.autoCloseNetworkRoomTime = [self getCloseTime];
-    self.timeManager.isTempRoom = self.isTempRoom;
-}
-
-#pragma mark ------ enter back ground
-- (void)appEnterBackground {
-    self.isEnterBackground = YES;
-    if (self.isPauseLive == NO) { // 暂停推流
-        [self pauseLiveActionBack:NO];
-    }
-}
-
-- (void)appBecomeActive {
-    if (self.isEnterBackground && self.pageType == LIVEPAGE_LIVE && self.isOtherLogin == NO) {
-        if ([USER_MANAGER checkIMConnected]) {
-            // 开启推流
-            [self startPublishStream];
-        }
-        else {
-            self.needPublishStream = YES;
-        }
-
-    }
-    self.isEnterBackground = NO;
-}
-
-- (void)setupUI {
-    CGSize size = self.view.bounds.size;
-    [self.view addSubview:self.livePageView];
-    [self.livePageView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(self.view);
-    }];
-    
-    [self.livePageView addSubview:self.liveVideoView];
-    [self.liveVideoView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.top.bottom.right.mas_equalTo(self.livePageView);
-    }];
-    
-    [self.livePageView addSubview:self.headView];
-    
-    [self.headView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.livePageView);
-        make.height.mas_equalTo(90);
-        if (@available(iOS 11.0, *)) {
-            make.top.mas_equalTo(self.livePageView.mas_safeAreaLayoutGuideTop).offset(10);
-        } else {
-            // Fallback on earlier versions
-            make.top.mas_equalTo(self.livePageView.mas_top).offset(10);
-        }
-    }];
-    [self.livePageView addSubview:self.messageContentView];
-    [self.livePageView addSubview:self.bottomView];
-    
-    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.headView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.livePageView);
-        make.height.mas_equalTo(90);
-        if (@available(iOS 11.0, *)) {
-            make.top.mas_equalTo(self.livePageView.mas_safeAreaLayoutGuideTop).offset(10);
-        } else {
-            // Fallback on earlier versions
-            make.top.mas_equalTo(self.livePageView.mas_top).offset(10);
-        }
-    }];
-    [self.livePageView addSubview:self.messageContentView];
-    [self.livePageView addSubview:self.bottomView];
-    
-    [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.mas_equalTo(self.livePageView);
-        if (@available(iOS 11.0, *)) {
-            make.bottom.mas_equalTo(self.livePageView.mas_safeAreaLayoutGuideBottom).offset(-5);
-        } else {
-            // Fallback on earlier versions
-            make.bottom.mas_equalTo(self.livePageView.mas_bottom).offset(-5);
-        }
-        make.height.mas_equalTo(44);
-    }];
-    
-    [self.messageContentView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.mas_equalTo(self.livePageView.mas_left);
-        make.right.mas_equalTo(self.livePageView.mas_right);
-        make.bottom.mas_equalTo(self.bottomView.mas_top).offset(-5);
-        make.height.mas_equalTo(180);
-    }];
-    [self.livePageView 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);
-    }];
-    
-    [self.livePageView addSubview:self.seatApplyTips];
-    [self.seatApplyTips hideView];
-    [self.seatApplyTips mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.bottom.mas_equalTo(self.bottomView.mas_top).offset(2);
-        make.height.mas_equalTo(20);
-        make.left.mas_equalTo(self.bottomView.mas_right).offset(-116);
-    }];
-    
-    UITapGestureRecognizer *resetBottomTapGesture =[[UITapGestureRecognizer alloc]
-                                                    initWithTarget:self
-                                                    action:@selector(resetBottomGesture:)];
-    resetBottomTapGesture.delegate = self;
-    [self.livePageView addGestureRecognizer:resetBottomTapGesture];
-}
-
-- (void)joinChatRoom {
-    
-    [[RCIMClient sharedRCIMClient] joinChatRoom:self.roomId messageCount:-1 success:^{
-        dispatch_async(dispatch_get_main_queue(), ^{
-            [self addConstMessage];
-            self.hasJoinRoomSuccess = YES;
-        });
-    } 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)configIMConnect {
-    if (self.isImConnected == YES) {
-        [self connectionService];
-    }
-    else {
-        MJWeakSelf;
-        [USER_MANAGER connectionIMCallback:^(BOOL isSuccess) {
-            dispatch_main_async_safe(^{
-                [weakSelf connectionService];
-            });
-        }];
-    }
-}
-
-- (void)IMConnetedCallback {
-    
-    dispatch_main_async_safe(^{
-        // IM 连接成功回调
-        if (self.hasJoinRoomSuccess) { // 如果已经发送了进入消息
-            // 查询是否直播间开启
-            [KSNetworkingManager speakerCheckRoomInfoRequest: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 joinChatRoomAndLiveRoom];
-                    }];
-                }
-                else {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:MESSAGEKEY];
-                    [self quitRoomBackPreView:NO];
-                }
-            } faliure:^(NSError * _Nonnull error) {
-                
-            }];
-        }
-        if (self.needPublishStream) {
-            [self startPublishStream];
-        }
-    });
-}
-
-- (void)joinChatRoomAndLiveRoom {
-    
-    [[RCIMClient sharedRCIMClient] joinExistChatRoom:self.roomId messageCount:-1 success:^{
-        MJWeakSelf;
-        [self leaveRTCRoomCallback:^(BOOL success) {
-            dispatch_main_async_safe(^{
-                [weakSelf joinRTCRoom];
-            });
-        }];
-        
-    } error:^(RCErrorCode status) {
-        NSLog(@"error code %zd" ,status);
-    }];
-}
-
-- (void)leaveRTCRoomCallback:(void(^)(BOOL success))callback {
-    [[RCRTCEngine sharedInstance] leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        callback(isSuccess);
-    }];
-}
-
-- (void)joinRTCRoom {
-    [self setRoleType];
-}
-
-- (void)liveroomLogOut {
-    if (self.isOtherLogin) {
-        return;
-    }
-    self.isOtherLogin = YES;
-    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"该账号在其他设备上登录"];
-    [self quitRoomBackPreView:NO];
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"liveroomBackRefresh" object:nil];
-    });
-}
-
-- (void)liveroomQuit {
-    if (self.isOtherLogin) {
-        return;
-    }
-    self.isOtherLogin = YES;
-    [self quitRoomBackPreView:NO];
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-        [[NSNotificationCenter defaultCenter] postNotificationName:@"liveroomBackRefresh" object:nil];
-    });
-}
- 
-- (void)connectionService {
-    [self joinChatRoom];
-    [self setRoleType];
-}
-
-- (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)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;
-}
-
-// 刷新seatView
-- (void)renderSeatView {
-    NSMutableArray *seatArray = [NSMutableArray array];
-    NSArray *remoteUserArray = [self.room.remoteUsers mutableCopy];
-    for (RCRTCRemoteUser *user in remoteUserArray) {
-        if (![user.userId containsString:@"rc_mc_"]) {
-            [seatArray addObject:user.userId];
-        }
-    }
-    if (seatArray.count) {
-        if (![self.livePageView.subviews containsObject:self.seatContainer]) {
-            [self.livePageView addSubview:self.seatContainer];
-        }
-        
-        [self.seatContainer mas_remakeConstraints:^(MASConstraintMaker *make) {
-            make.left.right.mas_equalTo(self.livePageView);
-            make.top.mas_equalTo(self.headView.mas_bottom).offset(10);
-            make.height.mas_equalTo(80);
-        }];
-        
-        self.seatContainer.seatMemberArray = [NSMutableArray arrayWithArray:seatArray];
-        [self.seatContainer refreshSeatUI];
-        [self refreshSeatApplyList];
-        
-    }
-    else {
-        [self removeSeatContainer];
-    }
-}
-
-
-- (void)refreshSeatApplyList {
-    // 查询不在列表的成员
-    NSMutableArray *requestArray = [NSMutableArray array];
-    NSMutableArray *memberArray = [self.seatContainer.seatMemberArray mutableCopy];
-    NSMutableArray *seatApplyArray = [self.seatApplyArray mutableCopy];
-    for (NSString *userId in memberArray) {
-        BOOL containUser = NO;
-        for (LiveSeatMember *member in seatApplyArray) {
-            if ([member.userId isEqualToString:userId]) {
-                containUser = YES;
-            }
-        }
-        if (containUser == NO) {
-            LiveSeatMember *member = [[LiveSeatMember alloc] init];
-            member.isConnected = YES;
-            member.userId = userId;
-            [requestArray addObject:member];
-        }
-    }
-    if (requestArray.count) {
-        self.seatApplyArray = [NSMutableArray arrayWithArray:requestArray];
-        [self refreshSeatApplyView];
-    }
-}
-
-- (void)removeSeatContainer {
-    if ([self.livePageView.subviews containsObject:self.seatContainer]) {
-        [self.seatContainer removeFromSuperview];
-    }
-}
-
-- (void)setRoleType {
-    // 1.设置切换听筒为扬声器
-    [[RCRTCEngine sharedInstance] setDefaultAudioRouteToSpeaker:YES];
-    [RCRTCEngine sharedInstance].statusReportDelegate = self;
-    // 2.添加本地采集预览界面
-    [self setupLocalVideoView];
-    // 3.加入RTC房间
-    [self joinRTCLiveRoom];
-}
-
-// 添加本地采集预览页面
-- (void)setupLocalVideoView {
-    [self.liveVideoView addSubview:self.localVideo.canvesView];
-    [self.localVideo.canvesView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.left.right.top.bottom.mas_equalTo(self.liveVideoView);
-    }];
-}
-
-#pragma mark ----- RCRTCStatusReportDelegate
-- (void)didReportStatusForm:(RCRTCStatusForm *)form {
-    BOOL isConnectedFailed = NO;
-    for (RCRTCStreamStat* stat  in form.sendStats) {
-        if (stat.packetLoss == 1.0) {
-            isConnectedFailed = YES;
-            break;
-        }
-    }
-    
-    [self showNetStatus:form.rtt networkLost:isConnectedFailed];
-
-//    NSLog(@"%@",form.description);
-    // 网络状态差提示
-    
-}
-- (void)showNetStatus:(NSInteger)rttValue networkLost:(BOOL)isFailed {
-    dispatch_main_async_safe((^{
-        if (isFailed) {
-            [self.headView.rttImage setImage:[UIImage imageNamed:@"live_networking_bad"]];
-            self.headView.msLabel.text = @"网络已断开";
-        }
-        else {
-            self.headView.msLabel.text = [NSString stringWithFormat:@"%zdms",rttValue];
-            if (rttValue < 100) {
-                [self.headView.rttImage setImage:[UIImage imageNamed:@"live_networking_good"]];
-            }
-            else if (rttValue < 200) {
-                [self.headView.rttImage setImage:[UIImage imageNamed:@"live_networking_nomal"]];
-            }
-            else {
-                [self.headView.rttImage setImage:[UIImage imageNamed:@"live_networking_bad"]];
-            }
-        }
-       
-    }));
-}
-
-#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;
-    MJWeakSelf;
-    [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;
-        }
-    }];
-    [self renderSeatView];
-}
-
-- (void)didUnpublishStreams:(NSArray<RCRTCInputStream *> *)streams {
-    NSLog(@"didUnPublishStreams --------");
-    [self renderSeatView];
-}
-
-- (void)didOfflineUser:(RCRTCRemoteUser *)user {
-    [self renderSeatView];
-}
-- (void)didJoinUser:(RCRTCRemoteUser *)user {
-    NSLog(@"--didJoinUser-");
-//    [self renderSeatView];
-}
-
-// 如果有远端用户离开房间
-- (void)didLeaveUser:(RCRTCRemoteUser *)user {
-    NSLog(@"--didLeaveUser-");
-    // 如果有人离开房间
-    if ([self judgeContainMember:user.userId]) {
-        [self removeMember:user.userId];
-        [self refreshSeatApplyView];
-    }
-    [self renderSeatView];
-}
-
-// 远端用户切换身份
-- (void)didSwitchRoleWithUser:(RCRTCRemoteUser *)user roleType:(RCRTCLiveRoleType)roleType {
-    if (roleType == RCRTCLiveRoleTypeBroadcaster) {
-        if ([self judgeContainUser:user.userId] == NO) {
-            [self.remoteMemberArray addObject:user];
-            // 刷新连麦成员状态数据
-            if ([self judgeContainMember:user.userId]) {
-                // 更新状态
-                [self updateMemberStatusConnecting:user.userId];
-                [self refreshSeatApplyView];
-            }
-        }
-    }
-    else {
-        [self removeMemberUserId:user.userId];
-        // 刷新连麦成员数据
-        if ([self judgeContainMember:user.userId]) {
-            [self removeMember:user.userId];
-            [self refreshSeatApplyView];
-        }
-        [self renderSeatView];
-    }
-    
-    NSLog(@"didSwitchRoleWithUser --------");
-}
-
-- (BOOL)judgeContainUser:(NSString *)userId {
-    BOOL containUser = NO;
-    for (RCRTCRemoteUser *remoteUser in self.remoteMemberArray) {
-        if ([remoteUser.userId isEqualToString:userId]) {
-            containUser = YES;
-        }
-    }
-    return containUser;
-}
-
-- (BOOL)getUserConnectStatus:(NSString *)userId {
-    BOOL isConnected = NO;
-    for (LiveSeatMember *member in self.seatApplyArray) {
-        if ([member.userId isEqualToString:userId]) {
-            return member.isConnected;
-        }
-    }
-    return isConnected;
-}
-
-- (void)removeMemberUserId:(NSString *)userId {
-    for (RCRTCRemoteUser *remoteUser in self.remoteMemberArray) {
-        if ([remoteUser.userId isEqualToString:userId]) {
-            [self.remoteMemberArray removeObject:remoteUser];
-            return;
-        }
-    }
-}
-
-#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 {
-    [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)joinRTCLiveRoom {
-    // 1.配置房间
-    RCRTCRoomConfig *config = [[RCRTCRoomConfig alloc] init];
-    config.roomType = RCRTCRoomTypeLive;
-    config.liveType = RCRTCLiveTypeAudioVideo;
-    config.roleType = RCRTCLiveRoleTypeBroadcaster;
-    __weak typeof(self) weakSelf = self;
-    [[RCRTCEngine sharedInstance] 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]);
-                [LOADING_MANAGER MBShowAUTOHidingInWindow:@"加入直播间失败"];
-            }
-            else {
-                [strongSelf notiferJoinSuccessToServiceCallback:^{
-                    
-                }];
-                if (room) {
-                    strongSelf.room = room;
-                    strongSelf.room.delegate = self;
-                    if (room.remoteUsers.count) {
-                        NSMutableArray *streamArray = [NSMutableArray array];
-                        NSMutableArray *remoteUserArray = [room.remoteUsers mutableCopy];
-                        for (RCRTCRemoteUser *user in remoteUserArray) {
-                            if (user.remoteStreams.count) {
-                                [streamArray addObjectsFromArray:user.remoteStreams];
-                            }
-                        }
-                        // 如果存在远端流 订阅
-                        if (streamArray.count) {
-                            [strongSelf subscribeRemoteResource:streamArray];
-
-                        }
-                    }
-                }
-                
-                // 订阅流数据
-                [strongSelf renderSeatView];
-                
-                [strongSelf countMemberCount];
-                // 发布本地视频流
-                if (strongSelf.isPauseLive == NO && strongSelf.isEnterBackground == NO) {
-                    [strongSelf publishLocalStream];
-                }
-            }
-            
-        });
-    }];
-}
-
-- (void)publishLocalStream {
-    // 1.设置渲染视图渲染视图
-    [[RCRTCEngine sharedInstance].defaultVideoStream setVideoView:self.localVideo.canvesView];
-    // 2.设置视频流参数
-    RCRTCVideoStreamConfig *videoConfig = [RCRTCEngine sharedInstance].defaultVideoStream.videoConfig;
-    videoConfig.videoSizePreset = RCRTCVideoSizePreset1280x720;
-    videoConfig.videoFps = RCRTCVideoFPS30;
-    videoConfig.maxBitrate = 2200;
-    videoConfig.minBitrate = 200;
-    [[RCRTCEngine sharedInstance].defaultVideoStream setVideoConfig:videoConfig];
-    // 3.开始视频采集
-    [[RCRTCEngine sharedInstance].defaultVideoStream startCapture];
-    [RCRTCEngine sharedInstance].defaultVideoStream.enableTinyStream = NO;
-    [[RCRTCEngine sharedInstance].defaultAudioStream setAudioQuality:RCRTCAudioQualityMusicHigh Scenario:RCRTCAudioScenarioMusicChatRoom];
-
-    // 发布本地视频流到房间
-    MJWeakSelf;
-    [self.room.localUser publishDefaultLiveStreams:^(BOOL isSuccess, RCRTCCode code, RCRTCLiveInfo * _Nullable liveInfo) {
-        if (code == RCRTCCodeSuccess) {
-            weakSelf.needPublishStream = NO;
-            [weakSelf renderSeatView];
-        }
-    }];
-}
-
-
-- (void)exitRoomCallback:(void(^)(BOOL success))callback {
-    [[RCRTCEngine sharedInstance].defaultVideoStream stopCapture];
-    _localVideo = nil;
-    _preVideoView = nil;
-    _room = nil;
-    MJWeakSelf;
-    [[RCRTCEngine sharedInstance] leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        NSLog(@"----- leave code -----%zd",code);
-        dispatch_main_async_safe(^{
-            [weakSelf sendLeaveMessageCallback:^(BOOL success) {
-                callback(success);
-            }];
-        });
-    }];
-}
-
-- (void)uninitEngine {
-    [[RCRTCEngine sharedInstance] unInit];
-}
-
-// 销毁房间
-- (void)distoryRoomCallback:(void(^)(BOOL success))callback {
-    [[RCRTCEngine sharedInstance].defaultVideoStream stopCapture];
-    _localVideo = nil;
-    _preVideoView = nil;
-    _room = nil;
-    __weak typeof(self) weakSelf = self;
-    [[RCRTCEngine sharedInstance] leaveRoom:^(BOOL isSuccess, RCRTCCode code) {
-        dispatch_main_async_safe(^{
-            __strong typeof(weakSelf) strongSelf = weakSelf;
-            [strongSelf sendLeaveMessageCallback:^(BOOL success) {
-                callback(success);
-            }];
-        });
-    }];
-}
-
-
-#pragma mark -- 加入直播间和退出直播间回到服务
-- (void)notiferJoinSuccessToServiceCallback:(void(^)(void))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)closeRoomNotiferService {
-    [KSNetworkingManager destroyLiveRoomRequest:KS_GET roomUid:self.roomId 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]]) {
-                    KSLiveChatroomLike *likeMessage = (KSLiveChatroomLike *)rcMessage.content;
-                    // 统计点赞数量
-                    __blockSelf.likeCount += likeMessage.counts;
-                    [__blockSelf countLikeMessageCount];
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomWelcome class]]) {
-                    //  过滤自己发送的欢迎消息
-                    if ([rcMessage.senderUserId isEqualToString:UserDefault(UIDKey)]) {
-                        return;
-                    }
-                    // 弹幕
-                    RCUserInfo *userInfo = rcMessage.content.senderUserInfo;
-                    NSString *userName = [userInfo.name stringByAppendingString:@""];
-                    NSString *contentMsg = [NSString stringWithFormat:@"%@ 进入直播间",userName];
-                    [__blockSelf showAnimationView:YES showMessag:contentMsg];
-                    
-                    if ([__blockSelf judgeContainMember:rcMessage.senderUserId]) {
-                        [__blockSelf removeMember:rcMessage.senderUserId];
-                        [__blockSelf refreshSeatApplyView];
-                        [__blockSelf renderSeatView];
-                    }
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomMemberUp class]]) {
-                    KSLiveChatroomMemberUp *member = (KSLiveChatroomMemberUp *)rcMessage.content;
-                    __blockSelf.totalCount = member.count;
-                    [__blockSelf countMemberCount];
-                }
-                // 用户退出消息
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomLeave class]]) {
-                    KSLiveChatroomLeave *memberLeaveMsg = (KSLiveChatroomLeave *)rcMessage.content;
-                    if ([__blockSelf judgeContainMember:memberLeaveMsg.userId]) {
-                        [__blockSelf removeMember:memberLeaveMsg.userId];
-                        [__blockSelf refreshSeatApplyView];
-                    }
-                    return;
-                }
-                // 连麦申请消息
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomSeatApply class]]) {
-                    KSLiveChatroomSeatApply *seatApplyMessage = (KSLiveChatroomSeatApply *)rcMessage.content;
-                    
-                    if (seatApplyMessage.type == SEATHANDLE_APPLY) { // 观众申请 加入申请中
-                        LiveSeatMember *member = [[LiveSeatMember alloc] init];
-                        member.avatar = seatApplyMessage.audienceAvatar;
-                        member.name = seatApplyMessage.audienceName;
-                        member.userId = seatApplyMessage.audienceId;
-                        member.isConnected = NO;
-                        if (![__blockSelf judgeContainMember:member.userId]) {
-                            [__blockSelf.seatApplyArray addObject:member];
-                            [__blockSelf refreshSeatApplyView];
-                        }
-                    }
-                    else if (seatApplyMessage.type == SEATHANDLE_CANCELAPPLY) { // 观众取消申请 从申请中剔除
-                        if ([__blockSelf judgeContainMember:seatApplyMessage.audienceId]) {
-                            // 如果在申请中的状态
-                            BOOL connectedStatus = [__blockSelf getUserConnectStatus:seatApplyMessage.audienceId];
-                            if (connectedStatus == NO) {
-                                NSLog(@"hahahhahah");
-                                [__blockSelf removeMember:seatApplyMessage.audienceId];
-                                [__blockSelf refreshSeatApplyView];
-                            }
-                            
-                        }
-                    }
-                    return;
-                }
-                // 连麦回复消息(暂不处理)
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomSeatResponse class]]) {
-                    
-                }
-                else if ([rcMessage.content isMemberOfClass:[KSLiveChatroomDownSeat class]]) { // 观众下麦,从列表中移除
-                    KSLiveChatroomDownSeat *downSeatMessage = (KSLiveChatroomDownSeat *)rcMessage.content;
-                    if ([__blockSelf judgeContainMember:downSeatMessage.audienceId]) {
-                        [__blockSelf removeMember:downSeatMessage.audienceId];
-                        [__blockSelf refreshSeatApplyView];
-                    }
-                    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:[RCTextMessage class]]) {
-                    [__blockSelf insertMessage:rcMessage userInfo:notification.userInfo];
-                }
-                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 quitRoomBackPreView:NO];
-                    });
-                    return;
-                }
-            }
-            
-        }));
-    }
-}
-
-- (void)insertMessage:(RCMessage *)rcMessage userInfo:(NSDictionary *)userInfo {
-    // left
-    NSDictionary *leftDic = userInfo;
-    if (leftDic && [leftDic[@"left"] isEqual:@(0)]) {
-        self.isNeedScrollToButtom = YES;
-    }
-    [self appendAndDisplayMessage:rcMessage];
-}
-
-- (BOOL)judgeContainMember:(NSString *)userId {
-    for (LiveSeatMember *obj in self.seatApplyArray) {
-        if ([obj.userId isEqualToString:userId]) {
-            return YES;
-        }
-    }
-    return NO;
-}
-
-- (NSInteger)queryConnectingCount {
-    NSInteger count = 0;
-    for (LiveSeatMember *member in self.seatApplyArray) {
-        if (member.isConnected) {
-            count++;
-        }
-    }
-    return count;
-}
-
-- (void)removeMember:(NSString *)memberId {
-    for (LiveSeatMember *member in self.seatApplyArray) {
-        if ([member.userId isEqualToString:memberId]) {
-            [self.seatApplyArray removeObject:member];
-            return;
-        }
-    }
-}
-
-- (void)updateMemberStatusWaiting:(NSString *)userId {
-    for (LiveSeatMember *obj in self.seatApplyArray) {
-        if ([obj.userId isEqualToString:userId]) {
-            obj.isConnected = NO;
-            return;
-        }
-    }
-}
-
-- (void)updateMemberStatusConnecting:(NSString *)userId {
-    for (LiveSeatMember *obj in self.seatApplyArray) {
-        if ([obj.userId isEqualToString:userId]) {
-            obj.isConnected = YES;
-            return;
-        }
-    }
-}
-
-- (void)refreshSeatApplyView {
-    if (self.seatApplyArray.count) {
-        NSInteger count = 0;
-        for (LiveSeatMember *obj in self.seatApplyArray) {
-            if (obj.isConnected == NO) {
-                count++;
-            }
-        }
-        if (count > 0) {
-            [self showSeatTips:count];
-        }
-        else {
-            [self hideSeatTips];
-        }
-    }
-    else {
-        [self hideSeatTips];
-    }
-    [self.seatActionView refreshSeatApplyTable:self.seatApplyArray];
-}
-
-- (void)showSeatTips:(NSInteger)count {
-    NSString *countDesc = count >= 100 ? @"99+" : [NSString stringWithFormat:@"%zd",count];
-    [self.seatApplyTips configCountMessage:countDesc];
-    [self.seatApplyTips showTipsView];
-}
-
-- (void)hideSeatTips {
-    [self.seatApplyTips 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)formatTime:(NSString *)timeString {
-    self.headView.timeLabel.text = timeString;
-}
-
-- (void)timeLabelAddAnimation:(CABasicAnimation *)animation {
-    self.headView.timeLabel.textColor = HexRGB(0x2DC7AA);
-//    [self.headView.timeLabel.layer addAnimation:animation forKey:nil];
-}
-
-//- (void)quitClassroomNotifer {
-//    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"直播已结束!"];
-//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-//        [self quitRoomBackPreView:NO];
-//    });
-//}
-
-#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(UIDKey);
-            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>100) {
-        //                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]]){
-        [cell setDataModel:model createrId:self.createrId];
-    }
-    return cell;
-}
-
-
-#pragma mark --- lazying
-- (UIView *)livePageView {
-    if (!_livePageView) {
-        _livePageView = [[UIView alloc] init];
-        _livePageView.backgroundColor = HexRGB(0x25292e);
-    }
-    return _livePageView;
-}
-
-- (UIView *)liveVideoView {
-    if (!_liveVideoView) {
-        _liveVideoView = [[UIView alloc] init];
-        _liveVideoView.backgroundColor = [UIColor clearColor];
-    }
-    return _liveVideoView;
-}
-
-
-- (LiveRoomHeadView *)headView {
-    if (!_headView) {
-        _headView = [LiveRoomHeadView shareInstance];
-        MJWeakSelf;
-        [_headView liveHeaderAction:^{
-            [weakSelf switchCamera];
-        }];
-    }
-    return _headView;
-}
-
-- (void)switchCamera {
-    [[RCRTCEngine sharedInstance].defaultVideoStream switchCamera];
-}
-
-- (LiveRoomBottomView *)bottomView {
-    if (!_bottomView) {
-        _bottomView = [LiveRoomBottomView shareInstance];
-        MJWeakSelf;
-        [_bottomView bottomClickAction:^(LIVEROOMACTION action) {
-            [weakSelf bottomViewAction:action];
-        }];
-    }
-    return _bottomView;
-}
-
-- (void)bottomViewAction:(LIVEROOMACTION)action {
-    switch (action) {
-        case LIVEROOMACTION_CHAT: // 聊天
-        {
-            [_inputBar setHidden:NO];
-            [_inputBar setInputBarStatus:KSBottomBarStatusKeyboard];
-        }
-            break;
-        case LIVEROOMACTION_SEAT: // 呼出连麦页面
-        {
-            [self displaySeatView];
-        }
-            break;
-//        case LIVEROOMACTION_QUIT: // 退出
-//        {
-//            [self showMoreView];
-//        }
-            break;
-        case LIVEROOMACTION_MICACTION:
-        {
-            self.micEnable = !self.micEnable;
-            [[RCRTCEngine sharedInstance].defaultAudioStream setMicrophoneDisable:!self.micEnable];
-            NSString *desc = @"";
-            if (self.micEnable) {
-                desc = @"你已开启麦克风";
-            }
-            else {
-                desc = @"你已关闭麦克风";
-            }
-            [LOADING_MANAGER MBShowAUTOHidingInWindow:desc];
-        }
-            break;
-        default:
-            break;
-    }
-}
-
-- (void)setMicEnable:(BOOL)micEnable {
-    _micEnable = micEnable;
-    self.bottomView.isMicOn = micEnable;
-}
-
-- (void)showMoreView {
-    [self.view addSubview:self.moreView];
-}
-
-
-- (SeatTipsView *)seatApplyTips {
-    if (!_seatApplyTips) {
-        _seatApplyTips = [[SeatTipsView alloc] init];
-    }
-    return _seatApplyTips;
-}
-- (void)displaySeatView {
-    [self.view addSubview:self.seatCtrlView];
-    [self refreshSeatApplyView];
-}
-
-- (void)closeRoomAction {
-    MJWeakSelf;
-    self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"结束直播后,不可再次开启" leftButtonTitle:@"取消" rightTitle:@"结束直播" inView:self.view cancel:^{
-        
-    } confirm:^{
-        [weakSelf distoryRoomAction];
-    }];
-}
-
-
-- (void)pauseAction {
-    MJWeakSelf;
-    self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"暂停后观众将无法看到视频画面" leftButtonTitle:@"取消" rightTitle:@"暂停直播" inView:self.view cancel:^{
-        
-    } confirm:^{
-        [weakSelf quitRoomBackPreView:YES];
-    }];
-}
-
-- (void)distoryRoomAction {
-    MJWeakSelf;
-    [self distoryRoomCallback:^(BOOL success) {
-        [weakSelf closeRoomNotiferService];
-        [weakSelf quitChatRoom];
-        weakSelf.room = nil;
-        if (self.callback) {
-            self.callback();
-        }
-        [weakSelf.navigationController dismissViewControllerAnimated:YES completion:nil];
-        
-    }];
-}
-- (void)pauseLiveActionBack:(BOOL)backPreView {
-    self.needPublishStream = NO;
-    KSRCPauseLiveMessage *pauseMsg = [[KSRCPauseLiveMessage alloc] init];
-    MJWeakSelf;
-    [self sendMessage:pauseMsg displayMessage:NO callback:^(BOOL success) {
-        if (backPreView) {
-            [weakSelf.moreView hideView];
-            weakSelf.isPauseLive = YES;
-            weakSelf.pageType = LIVEPAGE_PREVIEW;
-            [weakSelf.livePageView removeFromSuperview];
-            [weakSelf configEngine];
-        }
-    }];
-    
-    [self.room.localUser unpublishDefaultLiveStreams:^(BOOL isSuccess, RCRTCCode code) {
-        if (isSuccess) {
-            
-        }
-    }];
-}
-
-- (void)quitRoomBackPreView:(BOOL)backPreView {
-    
-    if (backPreView) { // 暂停
-        [self pauseLiveActionBack:YES];
-    }
-    else {
-        if (self.pageType == LIVEPAGE_PREVIEW && self.isPauseLive == NO) {
-            self.room = nil;
-            self.preVideoView = nil;
-            [[RCRTCEngine sharedInstance].defaultVideoStream stopCapture];
-            if (self.callback) {
-                self.callback();
-            }
-            [self.navigationController dismissViewControllerAnimated:YES completion:nil];
-            
-        }
-        else {
-            MJWeakSelf;
-            [self exitRoomCallback:^(BOOL success) {
-                // quit 接口
-                [weakSelf quitNotiferService];
-                [weakSelf quitChatRoom];
-                [weakSelf.moreView hideView];
-                if (weakSelf.callback) {
-                    weakSelf.callback();
-                }
-                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                    [weakSelf.navigationController dismissViewControllerAnimated:YES completion:nil];
-                });
-            }];
-        }
-    }
-}
-
-
-
-
-- (KSLiveStreamVideo *)localVideo {
-    if (!_localVideo) {
-        _localVideo = [KSLiveStreamVideo LocalStreamVideo];
-    }
-    return _localVideo;
-}
-
-- (NSMutableArray *)remoteMemberArray {
-    if (!_remoteMemberArray) {
-        _remoteMemberArray = [NSMutableArray array];
-    }
-    return _remoteMemberArray;
-}
-
-- (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;
-}
-
-- (UIView *)seatCtrlView {
-    if (!_seatCtrlView) {
-        _seatCtrlView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KPortraitWidth, KPortraitHeight)];
-        _seatCtrlView.backgroundColor = [UIColor clearColor];
-        self.gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideSeatCtrlView)];
-        self.gesture.delegate = self;
-        [_seatCtrlView addGestureRecognizer:self.gesture];
-        [_seatCtrlView addSubview:self.seatActionView];
-        UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, KPortraitHeight - 300 - iPhoneXSafeBottomMargin - 16, KPortraitWidth, 16)];
-        headView.backgroundColor = [UIColor whiteColor];
-        [_seatCtrlView addSubview:headView];
-        if (@available(iOS 11.0, *)) {
-            headView.layer.cornerRadius = 8;
-            headView.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner; // 左上圆角
-        }
-        else {
-            UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:headView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)];
-            CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
-            maskLayer.frame = headView.bounds;
-            maskLayer.path = path.CGPath;
-            headView.layer.mask = maskLayer;
-        }
-        
-    }
-    return _seatCtrlView;
-}
-
-- (void)hideSeatCtrlView {
-    if (_seatCtrlView) {
-        [_seatCtrlView removeFromSuperview];
-    }
-}
-
-- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
-    if (gestureRecognizer == self.gesture) {
-        if ([touch.view isDescendantOfView:self.seatActionView]) {
-            return NO;
-        }
-    }
-    
-    return YES;
-}
-
-- (LiveSeatActionView *)seatActionView {
-    if (!_seatActionView) {
-        _seatActionView = [[LiveSeatActionView alloc] initWithFrame:CGRectMake(0, kScreenHeight - 300 - iPhoneXSafeBottomMargin, kScreenWidth, 300 + iPhoneXSafeBottomMargin)];
-        MJWeakSelf;
-        [_seatActionView opreationCallback:^(LIVESECONTROL action, LiveSeatMember * _Nonnull member) {
-            [weakSelf opreationSeatApplyAction:action member:member];
-        }];
-        _seatActionView.isForbiddenApply = !self.enableSeat;
-    }
-    return _seatActionView;
-}
-
-- (void)opreationSeatApplyAction:(LIVESECONTROL)control member:(LiveSeatMember *)member {
-    switch (control) {
-        case LIVESECONTROL_ALLOW: // 允许连麦
-        {
-            [self sendMicStatusRequest:0];
-        }
-            break;
-        case LIVESECONTROL_FORBIDDEN: // 禁止连麦
-        {
-            [self sendMicStatusRequest:1];
-        }
-            break;
-        case LIVESECONTROL_APPROVE: // 上麦
-        {
-            if (member) {
-                // 判断连麦人数超过4人 无法点击
-                NSInteger count = [self queryConnectingCount];
-                if (count >= 4) {
-                    [LOADING_MANAGER MBShowAUTOHidingInWindow:@"最多支持4人上麦哦~"];
-                    return;
-                }
-                KSLiveChatroomSeatResponse *responseMessage = [[KSLiveChatroomSeatResponse alloc] init];
-                responseMessage.type = SEATRESPONSE_TEACHERAPPROVE;
-                responseMessage.teacherId = self.createrId;
-                responseMessage.teacherName = self.createrName;
-                responseMessage.audienceId = member.userId;
-                responseMessage.audienceName = member.name;
-                MJWeakSelf;
-                [self sendMessage:responseMessage displayMessage:NO callback:^(BOOL success) {
-                    [weakSelf refreshSeatArrayRemoveMember:NO member:member];
-                }];
-            }
-        }
-            break;
-        case LIVESECONTROL_DOWNSEAT:   // 下麦
-        {
-            if (member) {
-                KSLiveChatroomSeatApply *kickSeatMessage = [[KSLiveChatroomSeatApply alloc] init];
-                kickSeatMessage.type = SEATHANDLE_KICKSEAT;
-                kickSeatMessage.teacherId = self.createrId;
-                kickSeatMessage.teacherName = self.createrName;
-                kickSeatMessage.audienceId = member.userId;
-                kickSeatMessage.audienceName = member.name;
-                
-                MJWeakSelf;
-                [self sendMessage:kickSeatMessage displayMessage:NO callback:^(BOOL success) {
-                    [weakSelf refreshSeatArrayRemoveMember:YES member:member];
-                }];
-            }
-        }
-            break;
-        case LIVESECONTROL_DOWNSEATALL:
-        {
-            MJWeakSelf;
-            self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"确认后所有连麦中学员都将下麦" leftButtonTitle:@"取消" rightTitle:@"确认" inView:self.view cancel:^{
-                
-            } confirm:^{
-                [weakSelf downSeatAll];
-            }];
-            
-        }
-            break;
-        case LIVESECONTROL_REFUSEALL:
-        {
-            MJWeakSelf;
-            self.alertView = [LiveRoomAlertView liveroomAlertWithTitle:@"确认将正在申请连麦的学员清空?" leftButtonTitle:@"取消" rightTitle:@"确认" inView:self.view cancel:^{
-                
-            } confirm:^{
-                [weakSelf refuseAllSeatApply];
-            }];
-            
-        }
-            break;
-            
-        default:
-            break;
-    }
-}
-
-// 是否允许连麦 0:是 1否
-- (void)sendMicStatusRequest:(NSInteger)whetherMic {
-    [LOADING_MANAGER showHUD];
-    [KSNetworkingManager liveRoomSetMicApplyEnable:KS_GET roomUid:self.roomId whetherMic:whetherMic success:^(NSDictionary * _Nonnull dic) {
-        [LOADING_MANAGER removeHUD];
-        if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-            if (whetherMic == 0) {
-                self.seatActionView.isForbiddenApply = NO;
-                [self enableSeatAction];
-            }
-            else {
-                self.seatActionView.isForbiddenApply = YES;
-                [self forceSeatAction];
-            }
-        }
-        else {
-            [LOADING_MANAGER MBShowAUTOHidingInWindow:MESSAGEKEY];
-        }
-    } faliure:^(NSError * _Nonnull error) {
-        [LOADING_MANAGER removeHUD];
-    }];
-}
-
-- (void)enableSeatAction {
-    RCChatroomSeatsControl *message = [[RCChatroomSeatsControl alloc] init];
-    message.userId = self.createrId;
-    message.userName = self.createrName;
-    message.seatBan = NO;
-    [self sendMessage:message displayMessage:NO callback:^(BOOL success) {
-        
-    }];
-}
-
-// 禁止连麦
-- (void)forceSeatAction {
-    RCChatroomSeatsControl *message = [[RCChatroomSeatsControl alloc] init];
-    message.userId = self.createrId;
-    message.userName = self.createrName;
-    message.seatBan = YES;
-    MJWeakSelf;
-    [self sendMessage:message displayMessage:NO callback:^(BOOL success) {
-        [weakSelf removeSeatMember:YES];
-    }];
-}
-// 全员下麦
-- (void)downSeatAll {
-    KSDownSeatAllMessage *message = [[KSDownSeatAllMessage alloc] init];
-    MJWeakSelf;
-    [self sendMessage:message displayMessage:NO callback:^(BOOL success) {
-        [weakSelf removeSeatMember:NO];
-    }];
-}
-
-- (void)refuseAllSeatApply {
-    KSRejectAllSeatMessage *message = [[KSRejectAllSeatMessage alloc] init];
-    MJWeakSelf;
-    [self sendMessage:message displayMessage:NO callback:^(BOOL success) {
-        [weakSelf removeSeatMember:YES];
-    }];
-}
-
-- (void)removeSeatMember:(BOOL)isApply {
-    NSMutableArray *seatArray = [self.seatApplyArray mutableCopy];
-
-    if (isApply) {
-        NSMutableArray *array = [NSMutableArray array];
-        for (LiveSeatMember *member in seatArray) {
-            if (member.isConnected == YES) {
-                [array addObject:member];
-            }
-        }
-        self.seatApplyArray = [NSMutableArray arrayWithArray:array];
-    }
-    else {
-        NSMutableArray *array = [NSMutableArray array];
-        for (LiveSeatMember *member in seatArray) {
-            if (member.isConnected == NO) {
-                [array addObject:member];
-            }
-        }
-        self.seatApplyArray = [NSMutableArray arrayWithArray:array];
-    }
-    [self refreshSeatApplyView];
-}
-
-- (void)refreshSeatArrayRemoveMember:(BOOL)isRemove member:(LiveSeatMember *)member {
-    if (isRemove) {
-        [self.seatApplyArray removeObject:member];
-    }
-    else {
-        member.isConnected = YES;
-        if (![self judgeContainMember:member.userId]) {
-            [self.seatApplyArray addObject:member];
-            NSLog(@"hah--------");
-        }
-    }
-    [self refreshSeatApplyView];
-}
-
-
-- (NSMutableArray *)seatApplyArray {
-    if (!_seatApplyArray) {
-        _seatApplyArray = [NSMutableArray array];
-    }
-    return _seatApplyArray;
-}
-
-
-- (LiveMoreDisplayView *)moreView {
-    if (!_moreView) {
-        _moreView = [LiveMoreDisplayView shareInstance];
-        _moreView.frame = CGRectMake(0, 0, KPortraitWidth, KPortraitHeight);
-        MJWeakSelf;
-        [_moreView operationQuitAction:^(BOOL isCloseRoom) {
-            [weakSelf leaveRoom:isCloseRoom];
-        }];
-    }
-    return _moreView;
-}
-
-- (void)leaveRoom:(BOOL)closeRoom {
-    if (closeRoom) {
-        [self closeRoomAction];
-    }
-    else {
-        [self pauseAction];
-    }
-}
-
-- (LiveroomTimeManager *)timeManager {
-    if (!_timeManager) {
-        _timeManager = [[LiveroomTimeManager alloc] initWithDelegate:self];
-    }
-    return _timeManager;
-}
-
-- (NSInteger)getCloseTime {
-
-    return self.expiredCloseMinute;
-}
-
-- (void)dealloc {
-    NSLog(@"------- dealloc --------");
-    if (_timeManager) {
-        [_timeManager stopDurationTimer];
-    }
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-    if (_timer) {
-        dispatch_source_cancel(_timer);
-        _timer = nil;
-    }
-}
-
-- (dispatch_source_t)timer {
-    if (!_timer) {
-        _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
-        uint64_t interval = (uint64_t)(10 * NSEC_PER_SEC);
-        dispatch_source_set_timer(_timer, DISPATCH_TIME_NOW, interval, 0);
-        MJWeakSelf;
-        dispatch_source_set_event_handler(_timer, ^{
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [weakSelf syncLikeCount];
-            });
-        });
-    }
-    return _timer;
-}
-
-- (void)showAnimationView:(BOOL)isJoinRoom showMessag:(NSString *)message {
-    if (self.animationView && self.animationView.isShow) {
-        return;
-    }
-    else {
-        if (self.pageType == LIVEPAGE_PREVIEW) {
-            return;
-        }
-        ANIMATIONTYPE type = isJoinRoom ? ANIMATIONTYPE_JOIN : ANIMATIONTYPE_RUSH;
-        self.animationView = [[LiveAnimationView alloc] initWithTitle:message animationType:type];
-        [self.view addSubview:self.animationView];
-        [self.animationView 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.animationView];
-        NSLog(@"------- start animation ");
-        MJWeakSelf;
-        [self.animationView startAnimationEndCallback:^{
-            NSLog(@"----- hide ");
-            weakSelf.animationView.isShow = YES;
-            weakSelf.animationView = nil;
-        }];
-    }
-}
-
-#pragma mark ---- 同步点赞数据
-
-- (void)syncLikeCount {
-    if (self.isOtherLogin) {
-        return;
-    }
-    [KSNetworkingManager syncLikeRequest:KS_GET likeNum:self.likeCount roomUid:self.roomId success:^(NSDictionary * _Nonnull dic) {
-        if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-            [self notiferLikeStatusToAudience];
-        }
-    } faliure:^(NSError * _Nonnull error) {
-        
-    }];
-}
-
-- (void)notiferLikeStatusToAudience {
-    RCChatroomLikeCount *likeCountMsg = [[RCChatroomLikeCount alloc] init];
-    likeCountMsg.count = self.likeCount;
-    
-    [self sendMessage:likeCountMsg displayMessage:NO callback:^(BOOL success) {
-
-    }];
-}
-
-
-/*
-#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

+ 0 - 67
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.h

@@ -1,67 +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 "KSLiveChatroomClose.h"
-#import "KSLiveChatroomKickOut.h"
-#import "KSRCPauseLiveMessage.h"
-#import "KSLiveChatroomMemberUp.h"
-#import "KSRCShopRushMessage.h"
-#import "RCChatroomLikeCount.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 - 81
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSChatroomMessageCenter.m

@@ -1,81 +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:[KSRCPauseLiveMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSLiveChatroomMemberUp class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSRCShopRushMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[RCChatroomLikeCount class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSDownSeatAllMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[KSRejectAllSeatMessage class]];
-    [[RCIM sharedRCIM] registerMessageType:[RCChatroomSeatsControl 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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 16
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 55
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLike.m

@@ -1,55 +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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.h

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

+ 0 - 45
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.m

@@ -1,45 +0,0 @@
-//
-//  KSLiveChatroomMemberUp.m
-//  KulexiuForTeacher
-//
-//  Created by 王智 on 2022/6/24.
-//
-
-#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"];
-    NSLog(@"member count-----------%zd",_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
KulexiuForTeacher/KulexiuForTeacher/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 - 84
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.m

@@ -1,84 +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"];
-    }
-    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"];
-    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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 80
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 55
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCShopRushMessage.m

@@ -1,55 +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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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
KulexiuForTeacher/KulexiuForTeacher/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 - 38
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Model/KSLiveStreamVideo.h

@@ -1,38 +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;
-
-/*!
- 包含子类的 RCRTCLocalVideoView 和 RCRTCRemoteVideoView
- */
-@property(nonatomic, strong) RCRTCVideoView *canvesView;
-
-/*!
- RCRTCRemoteVideoView 初始化
- @param streamId  音视频流 Id
- */
-- (instancetype)initWithStreamId:(NSString *)streamId;
-
-/*!
- 本地 RCRTCLocalVideoView 初始化
- */
-+ (instancetype)LocalStreamVideo;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 36
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Model/KSLiveStreamVideo.m

@@ -1,36 +0,0 @@
-//
-//  KSLiveStreamVideo.m
-//  LiveStreamDemo
-//
-//  Created by Kyle on 2021/10/21.
-//
-
-#import "KSLiveStreamVideo.h"
-static NSString *zero = @"0";
-
-@implementation KSLiveStreamVideo
-
-// 根据 streamId 创建并设置远端视频预览视图
-- (instancetype)initWithStreamId:(nonnull NSString *)stream {
-    if (self = [super init]) {
-        self.streamId = stream;
-        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] init];
-    localStreamVideo.canvesView.frameAnimated = NO;
-    localStreamVideo.canvesView.translatesAutoresizingMaskIntoConstraints = NO;
-    localStreamVideo.canvesView.fillMode = RCRTCVideoFillModeAspectFill;
-    return localStreamVideo;
-}
-
-@end

+ 0 - 36
KulexiuForTeacher/KulexiuForTeacher/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 - 267
KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/KSChatroomTextCell.m

@@ -1,267 +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:[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

+ 0 - 6
KulexiuForTeacher/Podfile

@@ -45,12 +45,6 @@ install! 'cocoapods', :disable_input_output_paths => true
     
   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 'RongCloudRTC/RongFaceBeautifier','~> 5.3.1.2'
-  pod 'RongCloudRTC/RongRTCPlayer','~> 5.3.1.2'
   
   pod "iOS-KS3SDK", "~>1.0.5"
 #  pod "WechatOpenSDK"

+ 1 - 36
KulexiuForTeacher/Podfile.lock

@@ -34,31 +34,6 @@ PODS:
     - QCloudCore/WithoutMTA (= 6.2.8)
   - Reachability (3.2)
   - ReactiveObjC (3.1.1)
-  - RongCloudIM/ChatRoom (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/CustomerService (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Discussion (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/IMKit (5.3.1):
-    - RongCloudIM/IMLib
-  - RongCloudIM/IMLib (5.3.1):
-    - RongCloudIM/ChatRoom
-    - RongCloudIM/CustomerService
-    - RongCloudIM/Discussion
-    - RongCloudIM/IMLibCore
-    - RongCloudIM/PublicService
-  - RongCloudIM/IMLibCore (5.3.1)
-  - RongCloudIM/PublicService (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Sight (5.3.1):
-    - RongCloudIM/IMKit
-  - RongCloudRTC/RongFaceBeautifier (5.3.1.2):
-    - RongCloudRTC/RongRTCLib
-  - RongCloudRTC/RongRTCLib (5.3.1.2):
-    - RongCloudIM/IMLibCore (>= 5.3.1)
-  - RongCloudRTC/RongRTCPlayer (5.3.1.2):
-    - RongCloudRTC/RongRTCLib
   - RSKImageCropper (3.0.2)
   - SDWebImage (5.16.0):
     - SDWebImage/Core (= 5.16.0)
@@ -296,12 +271,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/RongFaceBeautifier (~> 5.3.1.2)
-  - RongCloudRTC/RongRTCLib (~> 5.3.1.2)
-  - RongCloudRTC/RongRTCPlayer (~> 5.3.1.2)
   - RSKImageCropper
   - SDWebImage (~> 5.16.0)
   - SocketRocket
@@ -336,8 +305,6 @@ SPEC REPOS:
     - QCloudCOSXML
     - Reachability
     - ReactiveObjC
-    - RongCloudIM
-    - RongCloudRTC
     - RSKImageCropper
     - SDWebImage
     - SocketRocket
@@ -375,8 +342,6 @@ SPEC CHECKSUMS:
   QCloudCOSXML: d7c1f08486ae540ef7a07153528946321e44993b
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
-  RongCloudIM: 869a9411f57b55ae9424b8253e299eff84f4d9bc
-  RongCloudRTC: 3ad2cdafd8168b9cb5d9abec6d84bdeaefd4bff3
   RSKImageCropper: 1ac71e9a82e3f41eea3eedfff8eacb0d3821c9ec
   SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6
   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
@@ -394,6 +359,6 @@ SPEC CHECKSUMS:
   Whiteboard: 4622f3866b7c35a9c757955619ba0a2b26d968f5
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: 71ad01eb2519634508b82886ca8423e090033187
+PODFILE CHECKSUM: 3e4b6ce7c042c7295fa47cbcf0447dcb76f188d4
 
 COCOAPODS: 1.12.1

+ 1 - 36
KulexiuForTeacher/Pods/Manifest.lock

@@ -34,31 +34,6 @@ PODS:
     - QCloudCore/WithoutMTA (= 6.2.8)
   - Reachability (3.2)
   - ReactiveObjC (3.1.1)
-  - RongCloudIM/ChatRoom (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/CustomerService (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Discussion (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/IMKit (5.3.1):
-    - RongCloudIM/IMLib
-  - RongCloudIM/IMLib (5.3.1):
-    - RongCloudIM/ChatRoom
-    - RongCloudIM/CustomerService
-    - RongCloudIM/Discussion
-    - RongCloudIM/IMLibCore
-    - RongCloudIM/PublicService
-  - RongCloudIM/IMLibCore (5.3.1)
-  - RongCloudIM/PublicService (5.3.1):
-    - RongCloudIM/IMLibCore
-  - RongCloudIM/Sight (5.3.1):
-    - RongCloudIM/IMKit
-  - RongCloudRTC/RongFaceBeautifier (5.3.1.2):
-    - RongCloudRTC/RongRTCLib
-  - RongCloudRTC/RongRTCLib (5.3.1.2):
-    - RongCloudIM/IMLibCore (>= 5.3.1)
-  - RongCloudRTC/RongRTCPlayer (5.3.1.2):
-    - RongCloudRTC/RongRTCLib
   - RSKImageCropper (3.0.2)
   - SDWebImage (5.16.0):
     - SDWebImage/Core (= 5.16.0)
@@ -296,12 +271,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/RongFaceBeautifier (~> 5.3.1.2)
-  - RongCloudRTC/RongRTCLib (~> 5.3.1.2)
-  - RongCloudRTC/RongRTCPlayer (~> 5.3.1.2)
   - RSKImageCropper
   - SDWebImage (~> 5.16.0)
   - SocketRocket
@@ -336,8 +305,6 @@ SPEC REPOS:
     - QCloudCOSXML
     - Reachability
     - ReactiveObjC
-    - RongCloudIM
-    - RongCloudRTC
     - RSKImageCropper
     - SDWebImage
     - SocketRocket
@@ -375,8 +342,6 @@ SPEC CHECKSUMS:
   QCloudCOSXML: d7c1f08486ae540ef7a07153528946321e44993b
   Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
   ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
-  RongCloudIM: 869a9411f57b55ae9424b8253e299eff84f4d9bc
-  RongCloudRTC: 3ad2cdafd8168b9cb5d9abec6d84bdeaefd4bff3
   RSKImageCropper: 1ac71e9a82e3f41eea3eedfff8eacb0d3821c9ec
   SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6
   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
@@ -394,6 +359,6 @@ SPEC CHECKSUMS:
   Whiteboard: 4622f3866b7c35a9c757955619ba0a2b26d968f5
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: 71ad01eb2519634508b82886ca8423e090033187
+PODFILE CHECKSUM: 3e4b6ce7c042c7295fa47cbcf0447dcb76f188d4
 
 COCOAPODS: 1.12.1

File diff suppressed because it is too large
+ 4309 - 4409
KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj


+ 0 - 88
KulexiuForTeacher/Pods/Pods.xcodeproj/xcuserdata/wangzhi.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -8,274 +8,186 @@
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>0</integer>
 		</dict>
 		<key>AlipaySDK-iOS.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>1</integer>
 		</dict>
 		<key>Bugly.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>2</integer>
 		</dict>
 		<key>IQKeyboardManager.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>4</integer>
 		</dict>
 		<key>JCore.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>5</integer>
 		</dict>
 		<key>JPush.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>6</integer>
 		</dict>
 		<key>JXCategoryView.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>7</integer>
 		</dict>
 		<key>JXPagingView.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>8</integer>
 		</dict>
 		<key>MBProgressHUD.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>11</integer>
 		</dict>
 		<key>MJExtension.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>12</integer>
 		</dict>
 		<key>MJRefresh.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>13</integer>
 		</dict>
 		<key>Masonry.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>10</integer>
 		</dict>
 		<key>NTLBridge.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>14</integer>
 		</dict>
 		<key>Pods-KulexiuForTeacher.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>15</integer>
 		</dict>
 		<key>QCloudCOSXML.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>17</integer>
 		</dict>
 		<key>QCloudCore.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>16</integer>
 		</dict>
 		<key>RSKImageCropper.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>22</integer>
 		</dict>
 		<key>Reachability.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>18</integer>
 		</dict>
 		<key>ReactiveObjC.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>19</integer>
-		</dict>
-		<key>RongCloudIM.xcscheme</key>
-		<dict>
-			<key>isShown</key>
-			<false/>
-			<key>orderHint</key>
-			<integer>20</integer>
-		</dict>
-		<key>RongCloudRTC.xcscheme</key>
-		<dict>
-			<key>isShown</key>
-			<false/>
-			<key>orderHint</key>
-			<integer>21</integer>
 		</dict>
 		<key>SDWebImage.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>23</integer>
 		</dict>
 		<key>SSZipArchive.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>25</integer>
 		</dict>
 		<key>SocketRocket.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>24</integer>
 		</dict>
 		<key>TIMCommon.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>26</integer>
 		</dict>
 		<key>TUIChat.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>27</integer>
 		</dict>
 		<key>TUIConversation.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>28</integer>
 		</dict>
 		<key>TUICore.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>29</integer>
 		</dict>
 		<key>TUIGroup.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>30</integer>
 		</dict>
 		<key>TUISearch.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>31</integer>
 		</dict>
 		<key>TXIMSDK_Plus_iOS.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>32</integer>
 		</dict>
 		<key>TXLiteAVSDK_Professional.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>33</integer>
 		</dict>
 		<key>TYCyclePagerView.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>34</integer>
 		</dict>
 		<key>TZImagePickerController.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>35</integer>
 		</dict>
 		<key>Whiteboard-Whiteboard.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>37</integer>
 		</dict>
 		<key>Whiteboard.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>36</integer>
 		</dict>
 		<key>YYModel.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>38</integer>
 		</dict>
 		<key>iOS-KS3SDK.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>3</integer>
 		</dict>
 		<key>lottie-ios.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
-			<key>orderHint</key>
-			<integer>9</integer>
 		</dict>
 	</dict>
 	<key>SuppressBuildableAutocreation</key>

+ 0 - 136
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/Emoji.plist

@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<array>
-	<string>😃</string>
-	<string>😀</string>
-	<string>😊</string>
-	<string>☺️</string>
-	<string>😉</string>
-	<string>😍</string>
-	<string>😘</string>
-	<string>😚</string>
-	<string>😜</string>
-	<string>😝</string>
-	<string>😳</string>
-	<string>😁</string>
-	<string>😔</string>
-	<string>😌</string>
-	<string>😒</string>
-	<string>😟</string>
-	<string>😞</string>
-	<string>😣</string>
-	<string>😢</string>
-	<string>😂</string>
-	<string>😭</string>
-	<string>😪</string>
-	<string>😰</string>
-	<string>😅</string>
-	<string>😓</string>
-	<string>😫</string>
-	<string>😩</string>
-	<string>😨</string>
-	<string>😱</string>
-	<string>😡</string>
-	<string>😤</string>
-	<string>😖</string>
-	<string>😆</string>
-	<string>😋</string>
-	<string>😷</string>
-	<string>😎</string>
-	<string>😴</string>
-	<string>😲</string>
-	<string>😵</string>
-	<string>😈</string>
-	<string>👿</string>
-	<string>😯</string>
-	<string>😬</string>
-	<string>😕</string>
-	<string>😶</string>
-	<string>😇</string>
-	<string>😏</string>
-	<string>😑</string>
-	<string>🙈</string>
-	<string>🙉</string>
-	<string>🙊</string>
-	<string>👽</string>
-	<string>💩</string>
-	<string>❤️</string>
-	<string>💔</string>
-	<string>🔥</string>
-	<string>💢</string>
-	<string>💤</string>
-	<string>🚫</string>
-	<string>⭐</string>
-	<string>⚡</string>
-	<string>🌙</string>
-	<string>☀</string>
-	<string>⛅</string>
-	<string>☁</string>
-	<string>❄</string>
-	<string>☔</string>
-	<string>⛄</string>
-	<string>👍</string>
-	<string>👎</string>
-	<string>🤝</string>
-	<string>👌</string>
-	<string>👊</string>
-	<string>✊</string>
-	<string>✌</string>
-	<string>✋</string>
-	<string>🙏</string>
-	<string>☝</string>
-	<string>👏</string>
-	<string>💪</string>
-	<string>👪</string>
-	<string>👫</string>
-	<string>👼</string>
-	<string>🐴</string>
-	<string>🐶</string>
-	<string>🐷</string>
-	<string>👻</string>
-	<string>🌹</string>
-	<string>🌻</string>
-	<string>🌲</string>
-	<string>🎄</string>
-	<string>🎁</string>
-	<string>🎉</string>
-	<string>💰</string>
-	<string>🎂</string>
-	<string>🍖</string>
-	<string>🍚</string>
-	<string>🍦</string>
-	<string>🍫</string>
-	<string>🍉</string>
-	<string>🍷</string>
-	<string>🍻</string>
-	<string>☕</string>
-	<string>🏀</string>
-	<string>⚽</string>
-	<string>🏂</string>
-	<string>🎤</string>
-	<string>🎵</string>
-	<string>🎲</string>
-	<string>🀄</string>
-	<string>👑</string>
-	<string>💄</string>
-	<string>💋</string>
-	<string>💍</string>
-	<string>📚</string>
-	<string>🎓</string>
-	<string>✏</string>
-	<string>🏡</string>
-	<string>🚿</string>
-	<string>💡</string>
-	<string>📞</string>
-	<string>📢</string>
-	<string>🕖</string>
-	<string>⏰</string>
-	<string>⏳</string>
-	<string>💣</string>
-	<string>🔫</string>
-	<string>💊</string>
-	<string>🚀</string>
-	<string>🌏</string>
-</array>
-</plist>

+ 0 - 39
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RCColor.plist

@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>fileSelect</key>
-	<dict>
-		<key>confirm_text</key>
-		<string>0x9fcdfd</string>
-		<key>confirm_text_enable</key>
-		<string>0x0099ff</string>
-	</dict>
-	<key>photoPreview</key>
-	<dict>
-		<key>original_selected_text</key>
-		<string>0xffffff</string>
-		<key>original_normal_text</key>
-		<string>0x999999</string>
-		<key>send_normal</key>
-		<string>0x0099ff</string>
-		<key>send_disable</key>
-		<string>0x959595</string>
-	</dict>
-	<key>photoPicker</key>
-	<dict>
-		<key>send_normal</key>
-		<string>0x0099ff</string>
-		<key>send_disable</key>
-		<string>0x9fcdfd</string>
-		<key>preview_normal</key>
-		<string>0x000000</string>
-		<key>preview_normal_dark</key>
-		<string>0x9f9f9f</string>
-		<key>preview_disable</key>
-		<string>0x959595</string>
-		<key>cancel</key>
-		<string>0x0099ff</string>
-	</dict>
-</dict>
-</plist>

+ 0 - 59
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RCConfig.plist

@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>Location</key>
-	<dict>
-		<key>LocationImageQuality</key>
-		<real>0.7</real>
-		<key>LocationImageWidth</key>
-		<string>480</string>
-		<key>LocationImageHeight</key>
-		<string>240</string>
-	</dict>
-	<key>File</key>
-	<dict>
-		<key>RelativePath</key>
-		<string>Documents/MyFile</string>
-		<key>MaxRangeUnit</key>
-		<real>1048576</real>
-	</dict>
-	<key>Voice</key>
-	<dict>
-		<key>AudioEncodingBitRate</key>
-		<real>7950</real>
-	</dict>
-	<key>Image</key>
-	<dict>
-		<key>ThumbnailQuality</key>
-		<string>0.3</string>
-		<key>ThumbnailMaxSize</key>
-		<string>240</string>
-		<key>ThumbnailMinSize</key>
-		<string>100</string>
-		<key>ImageQuality</key>
-		<real>0.85</real>
-		<key>ImageWidth</key>
-		<integer>1080</integer>
-		<key>ImageHeight</key>
-		<integer>1080</integer>
-	</dict>
-	<key>CustomerService</key>
-	<dict>
-		<key>SuspendWhenLeave</key>
-		<true/>
-	</dict>
-	<key>Download</key>
-	<dict>
-		<key>DownloadSliceSize</key>
-		<real>20971520</real>
-	</dict>
-	<key>Sight</key>
-	<dict>
-		<key>SightCompressWidth</key>
-		<integer>540</integer>
-		<key>SightCompressHeight</key>
-		<integer>960</integer>
-	</dict>
-</dict>
-</plist>

+ 0 - 41
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/Info.plist

@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>AvailableLibraries</key>
-	<array>
-		<dict>
-			<key>LibraryIdentifier</key>
-			<string>ios-arm64_armv7</string>
-			<key>LibraryPath</key>
-			<string>RongChatRoom.framework</string>
-			<key>SupportedArchitectures</key>
-			<array>
-				<string>arm64</string>
-				<string>armv7</string>
-			</array>
-			<key>SupportedPlatform</key>
-			<string>ios</string>
-		</dict>
-		<dict>
-			<key>LibraryIdentifier</key>
-			<string>ios-i386_x86_64-simulator</string>
-			<key>LibraryPath</key>
-			<string>RongChatRoom.framework</string>
-			<key>SupportedArchitectures</key>
-			<array>
-				<string>i386</string>
-				<string>x86_64</string>
-			</array>
-			<key>SupportedPlatform</key>
-			<string>ios</string>
-			<key>SupportedPlatformVariant</key>
-			<string>simulator</string>
-		</dict>
-	</array>
-	<key>CFBundlePackageType</key>
-	<string>XFWK</string>
-	<key>XCFrameworkFormatVersion</key>
-	<string>1.0</string>
-</dict>
-</plist>

+ 0 - 395
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient.h

@@ -1,395 +0,0 @@
-//
-//  RCChatRoomClient.h
-//  RongIMLib
-//
-//  Created by 张改红 on 2020/7/28.
-//  Copyright © 2020 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <RongIMLibCore/RongIMLibCore.h>
-#import "RCChatRoomInfo.h"
-#import "RCChatRoomProtocol.h"
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RCChatRoomClient : NSObject
-
-+ (instancetype)sharedChatRoomClient;
-
-#pragma mark - 聊天室操作
-
-/*!
- 加入聊天室(如果聊天室不存在则会创建)
-
- @param targetId        聊天室 ID
- @param messageCount    进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50
- @param successBlock    加入聊天室成功的回调
- @param errorBlock      加入聊天室失败的回调
- [status: 加入聊天室失败的错误码]
-
- @discussion
- 可以通过传入的 messageCount 设置加入聊天室成功之后需要获取的历史消息数量。
- -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50
- 为具体获取的消息数量,最大值为 50。注:如果是 7.x 系统获取历史消息数量不要大于 30
- 
- 从5.3.1版本开始, 加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。
- 
- @warning 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除
- 
- @remarks 聊天室
- */
-- (void)joinChatRoom:(NSString *)targetId
-        messageCount:(int)messageCount
-             success:(nullable void (^)(void))successBlock
-               error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411)
-
- @param targetId        聊天室 ID
- @param messageCount    进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50
- @param successBlock    加入聊天室成功的回调
- @param errorBlock      加入聊天室失败的回调
- [status: 加入聊天室失败的错误码]
-
- @warning
- 注意:使用 IMKit 库的会话页面,viewDidLoad 会自动调用 joinChatRoom 加入聊天室(聊天室不存在会自动创建)。
- 如果您只想加入已存在的聊天室,需要在 push 到会话页面之前调用这个方法并且 messageCount 传 -1,成功之后 push
- 到会话页面,失败需要您做相应提示处理。
-
- @discussion
- 可以通过传入的 messageCount 设置加入聊天室成功之后,需要获取的历史消息数量。
- -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50
- 为具体获取的消息数量,最大值为 50。
-
- @warning 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除
- 
- @remarks 聊天室
- */
-- (void)joinExistChatRoom:(NSString *)targetId
-             messageCount:(int)messageCount
-                  success:(nullable void (^)(void))successBlock
-                    error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 退出聊天室
-
- @param targetId                聊天室 ID
- @param successBlock            退出聊天室成功的回调
- @param errorBlock              退出聊天室失败的回调
- [status:退出聊天室失败的错误码]
-
- @remarks 聊天室
- */
-- (void)quitChatRoom:(NSString *)targetId
-             success:(nullable void (^)(void))successBlock
-               error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数)
-
- @param targetId     聊天室 ID
- @param count 需要获取的成员信息的数量(目前获取到的聊天室信息中仅包含不多于 20 人的成员信息,即 0 <= count <=
- 20,传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表)
- @param order        需要获取的成员列表的顺序(最早加入或是最晚加入的部分成员)
- @param successBlock 获取成功的回调 [chatRoomInfo:聊天室信息]
- @param errorBlock   获取失败的回调 [status:获取失败的错误码]
-
- @discussion
- 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。
- 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表;
- 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。
- 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。
-
- @remarks 聊天室
- */
-- (void)getChatRoomInfo:(NSString *)targetId
-                  count:(int)count
-                  order:(RCChatRoomMemberOrder)order
-                success:(nullable void (^)(RCChatRoomInfo *chatRoomInfo))successBlock
-                  error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 设置 IMLib 的聊天室状态监听器
-
- @param delegate IMLib 聊天室状态监听器
-
- @remarks 聊天室
- */
-- (void)setChatRoomStatusDelegate:(id<RCChatRoomStatusDelegate>)delegate;
-
-/*!
- 添加 IMLib 的聊天室状态监听器
-
- @param delegate IMLib 聊天室状态监听器
- */
-- (void)addChatRoomStatusDelegate:(id<RCChatRoomStatusDelegate>)delegate;
-
-/*!
- 移除 IMLib 的聊天室状态监听器
-
- @param delegate IMLib 聊天室状态监听器
- */
-- (void)removeChatRoomStatusDelegate:(id<RCChatRoomStatusDelegate>)delegate;
-
-/*!
- 获取 IMLib 的聊天室状态监听器
- 
- @return 所有 IMLib 聊天室状态监听器
- */
-- (NSArray <id<RCChatRoomStatusDelegate>> *)allChatRoomStatusDelegates;
-
-/*!
- 从服务器端获取聊天室的历史消息
- @param targetId            聊天室ID
- @param recordTime          起始的消息发送时间戳,毫秒
- @param count               需要获取的消息数量, 0 < count <= 200
- @param order               拉取顺序,RC_Timestamp_Desc:倒序,RC_Timestamp_ASC:正序
- @param successBlock        获取成功的回调 [messages:获取到的历史消息数组, syncTime:下次拉取消息的时间戳]
- @param errorBlock          获取失败的回调 [status:获取失败的错误码]
-
- @discussion
- 此方法从服务器端获取聊天室的历史消息,但是必须先开通聊天室消息云存储功能。
- 指定开始时间,比如2016年9月1日10点(1472695200000),
- 默认是0(正序:从存储的第一条消息开始拉取,倒序:从存储的最后一条消息开始拉取)
- */
-- (void)getRemoteChatroomHistoryMessages:(NSString *)targetId
-                              recordTime:(long long)recordTime
-                                   count:(int)count
-                                   order:(RCTimestampOrder)order
-                                 success:(nullable void (^)(NSArray<RCMessage *> *messages, long long syncTime))successBlock
-                                   error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-#pragma mark - 聊天室状态存储 (使用前必须先联系商务开通)
-/*!
-设置聊天室 KV 状态变化监听器
-
-@param delegate 聊天室 KV 状态变化的监听器
-
-@discussion 可以设置并实现此 delegate 来进行聊天室状态变化的监听 。SDK 会在回调中通知您聊天室状态的改变。
-
-@remarks 功能设置
-*/
-- (void)setRCChatRoomKVStatusChangeDelegate:(id<RCChatRoomKVStatusChangeDelegate>)delegate;
-
-/*!
- 添加聊天室 KV 状态变化监听
-
- @param delegate 代理
- */
-- (void)addChatRoomKVStatusChangeDelegate:(id<RCChatRoomKVStatusChangeDelegate>)delegate;
-
-/*!
- 移除聊天室 KV 状态变化监听
-
- @param delegate 代理
- */
-- (void)removeChatRoomKVStatusChangeDelegate:(id<RCChatRoomKVStatusChangeDelegate>)delegate;
-
-/*!
- 获取聊天室 KV 状态变化监听
- 
- @return 所有聊天室 KV 状态变化的监听器
- */
-- (NSArray <id<RCChatRoomKVStatusChangeDelegate>> *)allChatRoomKVStatusChangeDelegates;
-
-
-
-/**
- 设置聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param key 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
- @param value 聊天室属性对应的值,最大长度 4096 个字符
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param autoDelete   用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知
- @param notificationExtra   通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key
- 的创建者可以更新属性的值。
-
- @remarks 聊天室
- */
-- (void)setChatRoomEntry:(NSString *)chatroomId
-                     key:(NSString *)key
-                   value:(NSString *)value
-        sendNotification:(BOOL)sendNotification
-              autoDelete:(BOOL)autoDelete
-       notificationExtra:(NSString *)notificationExtra
-                 success:(nullable void (^)(void))successBlock
-                   error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 强制设置聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param key 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
- @param value 聊天室属性对应的值,最大长度 4096 个字符
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param autoDelete   用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知
- @param notificationExtra   通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。
-
- @remarks 聊天室
- */
-- (void)forceSetChatRoomEntry:(NSString *)chatroomId
-                          key:(NSString *)key
-                        value:(NSString *)value
-             sendNotification:(BOOL)sendNotification
-                   autoDelete:(BOOL)autoDelete
-            notificationExtra:(NSString *)notificationExtra
-                      success:(nullable void (^)(void))successBlock
-                        error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 批量设置聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param entries   聊天室属性,key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符,value 聊天室属性对应的值,最大长度 4096 个字符,最多一次设置 10 条
- @param isForce   是否强制覆盖
- @param autoDelete   用户掉线或退出时,是否自动删除该 Key、Value 值
- @param successBlock 成功回调
- @param errorBlock   失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码)
-
- @discussion 必须先开通聊天室状态存储功能
- 
- @remarks 聊天室
- */
-- (void)setChatRoomEntries:(NSString *)chatroomId
-                   entries:(NSDictionary<NSString *, NSString *> *)entries
-                   isForce:(BOOL)isForce
-                autoDelete:(BOOL)autoDelete
-                   success:(nullable void (^)(void))successBlock
-                     error:(nullable void (^)(RCErrorCode nErrorCode, NSDictionary<NSString *,NSNumber *> *failureEntries))errorBlock;
-
-/**
- 获取聊天室单个属性
-
- @param chatroomId 聊天室 ID
- @param key 聊天室属性名称
- @param successBlock 成功回调
- @param errorBlock 失败回调
-
- @discussion 必须先开通聊天室状态存储功能
-
- @remarks 聊天室
- */
-- (void)getChatRoomEntry:(NSString *)chatroomId
-                     key:(NSString *)key
-                 success:(nullable void (^)(NSDictionary<NSString *,NSString *> *entry))successBlock
-                   error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 获取聊天室所有自定义属性
-
- @param chatroomId 聊天室 ID
- @param successBlock 成功回调
- @param errorBlock 失败回调
-
- @discussion 必须先开通聊天室状态存储功能
-
- @remarks 聊天室
- */
-- (void)getAllChatRoomEntries:(NSString *)chatroomId
-                      success:(nullable void (^)(NSDictionary<NSString *, NSString *> *entry))successBlock
-                        error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 删除聊天室自定义属性
-
- @param chatroomId 聊天室 ID
- @param key 聊天室属性名称
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param notificationExtra   通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 删除聊天室自定义属性,只有自己设置的属性可以被删除。
-
- @remarks 聊天室
- */
-- (void)removeChatRoomEntry:(NSString *)chatroomId
-                        key:(NSString *)key
-           sendNotification:(BOOL)sendNotification
-          notificationExtra:(NSString *)notificationExtra
-                    success:(nullable void (^)(void))successBlock
-                      error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 强制删除聊天室自定义属性
-
- @param chatroomId 聊天室 ID
- @param key 聊天室属性名称
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param notificationExtra   通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 强制删除聊天室自定义属性。
-
- @remarks 聊天室
- */
-- (void)forceRemoveChatRoomEntry:(NSString *)chatroomId
-                             key:(NSString *)key
-                sendNotification:(BOOL)sendNotification
-               notificationExtra:(NSString *)notificationExtra
-                         success:(nullable void (^)(void))successBlock
-                           error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 批量删除聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param keys   聊天室属性名称,最多一次删除 10 条
- @param isForce   是否强制覆盖
- @param successBlock 成功回调
- @param errorBlock   失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码)
-
- @discussion 必须先开通聊天室状态存储功能
- 
- @remarks 聊天室
- */
-- (void)removeChatRoomEntries:(NSString *)chatroomId
-                         keys:(NSArray<NSString *> *)keys
-                      isForce:(BOOL)isForce
-                      success:(nullable void (^)(void))successBlock
-                        error:(nullable void (^)(RCErrorCode nErrorCode, NSDictionary<NSString *, NSNumber *> *failureEntries))errorBlock;
-
-#pragma mark - 聊天室成员变化监听器
-
-/*!
- 设置聊天室成员变化的监听器
-
- @discussion 可以设置并实现此拦截器来监听聊天室成员的加入或退出
-
- @remarks 功能设置
- */
-@property (nonatomic, weak, nullable) id<RCChatRoomMemberDelegate> memberDelegate;
-
-
-
-/// 绑定聊天室ID和RTCRoomID
-/// @param chatRoomId 聊天室ID
-/// @param rtcRoomId rtc room ID
-/// @param successBlock 成功回调
-/// @param errorBlock 失败回调
-- (void)bindChatRoom:(NSString *)chatRoomId
-         withRTCRoom:(NSString *)rtcRoomId
-             success:(nullable void(^)(void))successBlock
-               error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 80
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h

@@ -1,80 +0,0 @@
-//
-//  RCChatRoomEnumDefine.h
-//  RongChatRoom
-//
-//  Created by 张改红 on 2020/8/12.
-//  Copyright © 2020 张改红. All rights reserved.
-//
-#import <Foundation/Foundation.h>
-#ifndef RCChatRoomEnumDefine_h
-#define RCChatRoomEnumDefine_h
-
-#pragma mark RCChatRoomStatus - 聊天室状态码
-/*!
- 聊天室状态码
- */
-typedef NS_ENUM(NSInteger, RCChatRoomStatus) {
-    /*!
-     正在加入聊天室中
-     */
-    RCChatRoomStatus_Joining = 1,
-
-    /*!
-     加入聊天室成功
-     */
-    RCChatRoomStatus_Joined = 2,
-    /*!
-     加入聊天室失败
-     */
-    RCChatRoomStatus_JoinFailed = 3,
-
-    /*!
-     退出了聊天室
-     */
-    RCChatRoomStatus_Quited = 4,
-    
-    /*!
-     聊天室被销毁
-     */
-    RCChatRoomStatus_Destroyed = 5,
-    /*!
-     聊天室被重置
-     由于聊天室长时间不活跃,已经被系统回收。聊天室 KV 已经被清空,请开发者刷新界面。
-     */
-    RCChatRoomStatus_Reset = 6,
-    
-};
-
-#pragma mark RCChatRoomMemberOrder - 聊天室成员排列顺序
-/*!
- 聊天室成员的排列顺序
- */
-typedef NS_ENUM(NSUInteger, RCChatRoomMemberOrder) {
-    /*!
-     升序,返回最早加入的成员列表
-     */
-    RC_ChatRoom_Member_Asc = 1,
-
-    /*!
-     降序,返回最晚加入的成员列表
-     */
-    RC_ChatRoom_Member_Desc = 2,
-};
-
-#pragma mark RCChatRoomMemberActionType - 聊天室成员加入或退出
-/*!
- 聊天室成员加入或者退出
- */
-typedef NS_ENUM(NSInteger, RCChatRoomMemberActionType) {
-    /*!
-     聊天室成员退出
-     */
-    RC_ChatRoom_Member_Quit = 0,
-    
-    /*!
-     聊天室成员加入
-     */
-    RC_ChatRoom_Member_Join = 1,
-};
-
-#endif /* RCChatRoomEnumDefine_h */

+ 0 - 41
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomInfo.h

@@ -1,41 +0,0 @@
-//
-//  RCChatRoomInfo.h
-//  RongIMLib
-//
-//  Created by 岑裕 on 16/1/11.
-//  Copyright © 2016年 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import "RCChatRoomMemberInfo.h"
-#import "RCChatRoomEnumDefine.h"
-/*!
- 聊天室信息类
- */
-@interface RCChatRoomInfo : NSObject
-
-/*!
- 聊天室 ID
- */
-@property (nonatomic, copy) NSString *targetId;
-
-/*!
- 包含的成员信息类型
- */
-@property (nonatomic, assign) RCChatRoomMemberOrder memberOrder;
-
-/*!
- 聊天室中的部分成员信息 RCChatRoomMemberInfo 列表
-
- @discussion
- 如果成员类型为RC_ChatRoom_Member_Asc,则为最早加入的成员列表,按成员加入时间升序排列;
- 如果成员类型为RC_ChatRoom_Member_Desc,则为最晚加入的成员列表,按成员加入时间降序排列。
- */
-@property (nonatomic, strong) NSArray <RCChatRoomMemberInfo *> *memberInfoArray;
-
-/*!
- 当前聊天室的成员总数
- */
-@property (nonatomic, assign) int totalMemberCount;
-
-@end

+ 0 - 37
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h

@@ -1,37 +0,0 @@
-//
-//  RCChatRoomMemberAction.h
-//  RongChatRoom
-//
-//  Created by 孙浩 on 2021/7/12.
-//  Copyright © 2021 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import "RCChatRoomEnumDefine.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RCChatRoomMemberAction : NSObject
-
-/*!
- 成员 ID
- */
-@property (nonatomic, copy) NSString *memberId;
-
-/*!
- 成员加入或者退出
- */
-@property (nonatomic, assign) RCChatRoomMemberActionType action;
-
-/*!
- RCChatRoomMemberAction 初始化方法
-
- @param  memberId        成员 ID
- @param  action            成员加入或退出
- */
-- (instancetype)initWithMemberId:(NSString *)memberId
-                          action:(RCChatRoomMemberActionType)action;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 26
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h

@@ -1,26 +0,0 @@
-//
-//  RCChatRoomMemberInfo.h
-//  RongIMLib
-//
-//  Created by 岑裕 on 16/1/10.
-//  Copyright © 2016年 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-/*!
- 聊天室成员信息类
- */
-@interface RCChatRoomMemberInfo : NSObject
-
-/*!
- 用户 ID
- */
-@property (nonatomic, copy) NSString *userId;
-
-/*!
- 用户加入聊天室时间(Unix 时间戳,毫秒)
- */
-@property (nonatomic, assign) long long joinTime;
-
-@end

+ 0 - 134
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomProtocol.h

@@ -1,134 +0,0 @@
-//
-//  RCChatRoomProtocol.h
-//  RongChatRoom
-//
-//  Created by 张改红 on 2020/8/12.
-//  Copyright © 2020 张改红. All rights reserved.
-//
-
-#ifndef RCChatRoomProtocol_h
-#define RCChatRoomProtocol_h
-
-@class RCChatRoomMemberAction;
-
-typedef NS_ENUM(NSUInteger, RCChatRoomDestroyType) {
-    /*!
-     开发者主动销毁
-     */
-    RCChatRoomDestroyTypeManual = 0,
-
-    /*!
-     聊天室长时间不活跃,被系统自动回收
-     */
-    RCChatRoomDestroyTypeAuto = 3
-};
-
-#pragma mark - 聊天室监听器
-
-/*!
- IMLib聊天室状态的的监听器
-
- @discussion
- 设置IMLib的聊天室状态监听器,请参考RCIMClient的setChatRoomStatusDelegate:方法。
- */
-@protocol RCChatRoomStatusDelegate <NSObject>
-
-/*!
- 开始加入聊天室的回调
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomJoining:(NSString *)chatroomId;
-
-/*!
- 加入聊天室成功的回调
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomJoined:(NSString *)chatroomId;
-
-/*!
- 加入聊天室失败的回调
-
- @param chatroomId 聊天室ID
- @param errorCode  加入失败的错误码
-
- @discussion
- 如果错误码是KICKED_FROM_CHATROOM或RC_CHATROOM_NOT_EXIST,则不会自动重新加入聊天室,App需要按照自己的逻辑处理。
- */
-- (void)onChatRoomJoinFailed:(NSString *)chatroomId errorCode:(RCErrorCode)errorCode;
-
-/*!
- 加入聊天室成功,但是聊天室被重置。接收到此回调后,还会收到 onChatRoomJoined:回调。
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomReset:(NSString *)chatroomId;
-
-/*!
- 退出聊天室成功的回调
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomQuited:(NSString *)chatroomId;
-
-/*!
- 聊天室被销毁的回调,用户在线的时候房间被销毁才会收到此回调。
-
- @param chatroomId 聊天室ID
- @param type 聊天室销毁原因
-
- */
-- (void)onChatRoomDestroyed:(NSString *)chatroomId type:(RCChatRoomDestroyType)type;
-
-@end
-
-
-#pragma mark - 聊天室 KV 状态变化
-
-/**
- IMLib 聊天室 KV 状态变化监听器
- @discussion 设置代理请参考 RCIMClient 的 setRCChatRoomKVStatusChangeDelegate: 方法。
- */
-@protocol RCChatRoomKVStatusChangeDelegate <NSObject>
-
-
-/**
- IMLib 刚加入聊天室时 KV 同步完成的回调
- 
- @param roomId 聊天室 Id
- */
-- (void)chatRoomKVDidSync:(NSString *)roomId;
-
-/**
- IMLib 聊天室 KV 变化的回调
- 
- @param roomId 聊天室 Id
- @param entry KV 字典,如果刚进入聊天室时存在  KV,会通过此回调将所有 KV 返回,再次回调时为其他人设置或者修改 KV
- */
-- (void)chatRoomKVDidUpdate:(NSString *)roomId entry:(NSDictionary<NSString *, NSString *> *)entry;
-
-/**
- IMLib 聊天室 KV 被删除的回调
- 
- @param roomId 聊天室 Id
- @param entry KV 字典
- */
-- (void)chatRoomKVDidRemove:(NSString *)roomId entry:(NSDictionary<NSString *, NSString *> *)entry;
-
-@end
-
-
-#pragma mark - 聊天室成员变化监听器
-@protocol RCChatRoomMemberDelegate <NSObject>
-/**
- 有聊天室成员加入或退出的回调
- 
- @param members 相关信息
- @param roomId 聊天室 Id
- */
-- (void)memberDidChange:(NSArray <RCChatRoomMemberAction *> *)members inRoom:(NSString *)roomId;
-
-@end
-
-#endif /* RCChatRoomProtocol_h */

+ 0 - 74
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h

@@ -1,74 +0,0 @@
-//
-//  RCChatroomKVNotificationMessage.h
-//  RongIMLib
-//
-//  Created by 孙浩 on 2019/10/14.
-//  Copyright © 2019 RongCloud. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/*!
- 聊天室自定义属性通知消息的类型名
- */
-#define RCChatroomKVNotificationMessageTypeIdentifier @"RC:chrmKVNotiMsg"
-
-typedef NS_ENUM(NSInteger, RCChatroomKVNotificationType) {
-    /*!
-     设置 KV 的操作
-     */
-    RCChatroomKVNotificationTypeSet = 1,
-    /*!
-     删除 KV 的操作
-     */
-    RCChatroomKVNotificationTypeRemove = 2
-};
-
-/**
-聊天室自定义属性通知消息
-
-@discussion 不要随意构造此类消息发送,调用设置或者删除接口时会自动构建。
-@discussion 此消息不存储不计入未读消息数。
- 
-@remarks 通知类消息
-*/
-@interface RCChatroomKVNotificationMessage : RCMessageContent
-
-/*!
- 聊天室操作的类型
-*/
-@property (nonatomic, assign) RCChatroomKVNotificationType type;
-
-/*!
- 聊天室属性名称
- */
-@property (nonatomic, copy) NSString *key;
-
-/*!
- 聊天室属性对应的值
- */
-@property (nonatomic, copy) NSString *value;
-
-/*!
- 通知消息的自定义字段,最大长度 2 kb
- */
-@property (nonatomic, copy) NSString *extra;
-
-/*!
-初始化聊天室自定义属性通知消息
-
-@param key 聊天室属性名称
-@param value 聊天室属性对应的值(删除 key 时不用传)
-@param extra 通知消息的自定义字段
-@return 聊天室自定义属性通知消息的对象
-*/
-+ (instancetype)notificationWithType:(RCChatroomKVNotificationType)type
-                                 key:(NSString *)key
-                               value:(NSString *_Nullable)value
-                               extra:(NSString *)extra;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 26
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RongChatRoom.h

@@ -1,26 +0,0 @@
-//
-//  RongChatRoom.h
-//  RongChatRoom
-//
-//  Created by 张改红 on 2020/8/12.
-//  Copyright © 2020 张改红. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-//! Project version number for RongChatRoom.
-FOUNDATION_EXPORT double RongChatRoomVersionNumber;
-
-//! Project version string for RongChatRoom.
-FOUNDATION_EXPORT const unsigned char RongChatRoomVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import <RongChatRoom/PublicHeader.h>
-#import <RongChatRoom/RCChatRoomClient.h>
-#import <RongChatRoom/RCChatRoomProtocol.h>
-#import <RongChatRoom/RCChatRoomEnumDefine.h>
-
-#import <RongChatRoom/RCChatRoomInfo.h>
-#import <RongChatRoom/RCChatroomKVNotificationMessage.h>
-#import <RongChatRoom/RCChatRoomMemberInfo.h>
-
-#import <RongChatRoom/RCChatRoomMemberAction.h>

BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Info.plist


+ 0 - 6
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Modules/module.modulemap

@@ -1,6 +0,0 @@
-framework module RongChatRoom {
-  umbrella header "RongChatRoom.h"
-
-  export *
-  module * { export * }
-}

BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/RongChatRoom


+ 0 - 237
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/_CodeSignature/CodeResources

@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>files</key>
-	<dict>
-		<key>Headers/RCChatRoomClient.h</key>
-		<data>
-		EkhXVl7Y0es0O9N6bZ2PA2ZhbZI=
-		</data>
-		<key>Headers/RCChatRoomEnumDefine.h</key>
-		<data>
-		Yjs8pfXQzvOjbRA2fFQ2D0jdGzU=
-		</data>
-		<key>Headers/RCChatRoomInfo.h</key>
-		<data>
-		lgrFIsr+MxhrnrDnf+IAed+duLM=
-		</data>
-		<key>Headers/RCChatRoomMemberAction.h</key>
-		<data>
-		Mk6gmoSSTfdvG+I3tFiPy/+mAQA=
-		</data>
-		<key>Headers/RCChatRoomMemberInfo.h</key>
-		<data>
-		C4yY5FtRTsQqehIunLABQK7IFY0=
-		</data>
-		<key>Headers/RCChatRoomProtocol.h</key>
-		<data>
-		GpiJz1GZ6kAgtfJ/1jxp3+unC4k=
-		</data>
-		<key>Headers/RCChatroomKVNotificationMessage.h</key>
-		<data>
-		6PZAYW6ZqTpTv82zmldJ4XZq8GQ=
-		</data>
-		<key>Headers/RongChatRoom.h</key>
-		<data>
-		4UUKY8coOEsvQfHghs7wIFh3yQ8=
-		</data>
-		<key>Info.plist</key>
-		<data>
-		EZAtAcbLGSiOnc0ogJw9/VnDbIc=
-		</data>
-		<key>Modules/module.modulemap</key>
-		<data>
-		ii0hqjTTGnemjpGIXXGYCaoB99o=
-		</data>
-	</dict>
-	<key>files2</key>
-	<dict>
-		<key>Headers/RCChatRoomClient.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			EkhXVl7Y0es0O9N6bZ2PA2ZhbZI=
-			</data>
-			<key>hash2</key>
-			<data>
-			Op2x+8j1j5gJuDp4CRd2/UvtBUQoXohD4x/NQMPt1os=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomEnumDefine.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			Yjs8pfXQzvOjbRA2fFQ2D0jdGzU=
-			</data>
-			<key>hash2</key>
-			<data>
-			4REqhBkjsPSe7O09bWosFhqN+MHMWg8wkXNEX9uvBoE=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomInfo.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			lgrFIsr+MxhrnrDnf+IAed+duLM=
-			</data>
-			<key>hash2</key>
-			<data>
-			1klb88mZQA2wcalaDMvFtN8kf0QdGGnROIi8ghEgT3Y=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomMemberAction.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			Mk6gmoSSTfdvG+I3tFiPy/+mAQA=
-			</data>
-			<key>hash2</key>
-			<data>
-			4Z+oCjr3QnIgJrkeriks4TyoLh0UJv2NAlJ3QP0bFjk=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomMemberInfo.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			C4yY5FtRTsQqehIunLABQK7IFY0=
-			</data>
-			<key>hash2</key>
-			<data>
-			xiQhdGQCiGKuLBH9Rr44kQLg+5Kt0vptTh4MsddtUcY=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomProtocol.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			GpiJz1GZ6kAgtfJ/1jxp3+unC4k=
-			</data>
-			<key>hash2</key>
-			<data>
-			0tYBgfKkLNcPd+9sjraUISjRhiJupRnDK9V5f6l6EsY=
-			</data>
-		</dict>
-		<key>Headers/RCChatroomKVNotificationMessage.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			6PZAYW6ZqTpTv82zmldJ4XZq8GQ=
-			</data>
-			<key>hash2</key>
-			<data>
-			4ZBY+7B9cz5GNv9UyfkgiyOI8p4G/wAANSlqNyJtHdQ=
-			</data>
-		</dict>
-		<key>Headers/RongChatRoom.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			4UUKY8coOEsvQfHghs7wIFh3yQ8=
-			</data>
-			<key>hash2</key>
-			<data>
-			S5W8zQuRwgeH7231NGOFA9NP0RqDkZk48OhSnRf2GTo=
-			</data>
-		</dict>
-		<key>Modules/module.modulemap</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			ii0hqjTTGnemjpGIXXGYCaoB99o=
-			</data>
-			<key>hash2</key>
-			<data>
-			wJMy+vWcBIzIHUTDDqJsgKqxiJI3RYxErBRoeokdByQ=
-			</data>
-		</dict>
-	</dict>
-	<key>rules</key>
-	<dict>
-		<key>^.*</key>
-		<true/>
-		<key>^.*\.lproj/</key>
-		<dict>
-			<key>optional</key>
-			<true/>
-			<key>weight</key>
-			<real>1000</real>
-		</dict>
-		<key>^.*\.lproj/locversion.plist$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>1100</real>
-		</dict>
-		<key>^Base\.lproj/</key>
-		<dict>
-			<key>weight</key>
-			<real>1010</real>
-		</dict>
-		<key>^version.plist$</key>
-		<true/>
-	</dict>
-	<key>rules2</key>
-	<dict>
-		<key>.*\.dSYM($|/)</key>
-		<dict>
-			<key>weight</key>
-			<real>11</real>
-		</dict>
-		<key>^(.*/)?\.DS_Store$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>2000</real>
-		</dict>
-		<key>^.*</key>
-		<true/>
-		<key>^.*\.lproj/</key>
-		<dict>
-			<key>optional</key>
-			<true/>
-			<key>weight</key>
-			<real>1000</real>
-		</dict>
-		<key>^.*\.lproj/locversion.plist$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>1100</real>
-		</dict>
-		<key>^Base\.lproj/</key>
-		<dict>
-			<key>weight</key>
-			<real>1010</real>
-		</dict>
-		<key>^Info\.plist$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-		<key>^PkgInfo$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-		<key>^embedded\.provisionprofile$</key>
-		<dict>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-		<key>^version\.plist$</key>
-		<dict>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-	</dict>
-</dict>
-</plist>

+ 0 - 395
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient.h

@@ -1,395 +0,0 @@
-//
-//  RCChatRoomClient.h
-//  RongIMLib
-//
-//  Created by 张改红 on 2020/7/28.
-//  Copyright © 2020 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <RongIMLibCore/RongIMLibCore.h>
-#import "RCChatRoomInfo.h"
-#import "RCChatRoomProtocol.h"
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RCChatRoomClient : NSObject
-
-+ (instancetype)sharedChatRoomClient;
-
-#pragma mark - 聊天室操作
-
-/*!
- 加入聊天室(如果聊天室不存在则会创建)
-
- @param targetId        聊天室 ID
- @param messageCount    进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50
- @param successBlock    加入聊天室成功的回调
- @param errorBlock      加入聊天室失败的回调
- [status: 加入聊天室失败的错误码]
-
- @discussion
- 可以通过传入的 messageCount 设置加入聊天室成功之后需要获取的历史消息数量。
- -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50
- 为具体获取的消息数量,最大值为 50。注:如果是 7.x 系统获取历史消息数量不要大于 30
- 
- 从5.3.1版本开始, 加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。
- 
- @warning 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除
- 
- @remarks 聊天室
- */
-- (void)joinChatRoom:(NSString *)targetId
-        messageCount:(int)messageCount
-             success:(nullable void (^)(void))successBlock
-               error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411)
-
- @param targetId        聊天室 ID
- @param messageCount    进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50
- @param successBlock    加入聊天室成功的回调
- @param errorBlock      加入聊天室失败的回调
- [status: 加入聊天室失败的错误码]
-
- @warning
- 注意:使用 IMKit 库的会话页面,viewDidLoad 会自动调用 joinChatRoom 加入聊天室(聊天室不存在会自动创建)。
- 如果您只想加入已存在的聊天室,需要在 push 到会话页面之前调用这个方法并且 messageCount 传 -1,成功之后 push
- 到会话页面,失败需要您做相应提示处理。
-
- @discussion
- 可以通过传入的 messageCount 设置加入聊天室成功之后,需要获取的历史消息数量。
- -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50
- 为具体获取的消息数量,最大值为 50。
-
- @warning 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除
- 
- @remarks 聊天室
- */
-- (void)joinExistChatRoom:(NSString *)targetId
-             messageCount:(int)messageCount
-                  success:(nullable void (^)(void))successBlock
-                    error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 退出聊天室
-
- @param targetId                聊天室 ID
- @param successBlock            退出聊天室成功的回调
- @param errorBlock              退出聊天室失败的回调
- [status:退出聊天室失败的错误码]
-
- @remarks 聊天室
- */
-- (void)quitChatRoom:(NSString *)targetId
-             success:(nullable void (^)(void))successBlock
-               error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数)
-
- @param targetId     聊天室 ID
- @param count 需要获取的成员信息的数量(目前获取到的聊天室信息中仅包含不多于 20 人的成员信息,即 0 <= count <=
- 20,传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表)
- @param order        需要获取的成员列表的顺序(最早加入或是最晚加入的部分成员)
- @param successBlock 获取成功的回调 [chatRoomInfo:聊天室信息]
- @param errorBlock   获取失败的回调 [status:获取失败的错误码]
-
- @discussion
- 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。
- 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表;
- 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。
- 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。
-
- @remarks 聊天室
- */
-- (void)getChatRoomInfo:(NSString *)targetId
-                  count:(int)count
-                  order:(RCChatRoomMemberOrder)order
-                success:(nullable void (^)(RCChatRoomInfo *chatRoomInfo))successBlock
-                  error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-/*!
- 设置 IMLib 的聊天室状态监听器
-
- @param delegate IMLib 聊天室状态监听器
-
- @remarks 聊天室
- */
-- (void)setChatRoomStatusDelegate:(id<RCChatRoomStatusDelegate>)delegate;
-
-/*!
- 添加 IMLib 的聊天室状态监听器
-
- @param delegate IMLib 聊天室状态监听器
- */
-- (void)addChatRoomStatusDelegate:(id<RCChatRoomStatusDelegate>)delegate;
-
-/*!
- 移除 IMLib 的聊天室状态监听器
-
- @param delegate IMLib 聊天室状态监听器
- */
-- (void)removeChatRoomStatusDelegate:(id<RCChatRoomStatusDelegate>)delegate;
-
-/*!
- 获取 IMLib 的聊天室状态监听器
- 
- @return 所有 IMLib 聊天室状态监听器
- */
-- (NSArray <id<RCChatRoomStatusDelegate>> *)allChatRoomStatusDelegates;
-
-/*!
- 从服务器端获取聊天室的历史消息
- @param targetId            聊天室ID
- @param recordTime          起始的消息发送时间戳,毫秒
- @param count               需要获取的消息数量, 0 < count <= 200
- @param order               拉取顺序,RC_Timestamp_Desc:倒序,RC_Timestamp_ASC:正序
- @param successBlock        获取成功的回调 [messages:获取到的历史消息数组, syncTime:下次拉取消息的时间戳]
- @param errorBlock          获取失败的回调 [status:获取失败的错误码]
-
- @discussion
- 此方法从服务器端获取聊天室的历史消息,但是必须先开通聊天室消息云存储功能。
- 指定开始时间,比如2016年9月1日10点(1472695200000),
- 默认是0(正序:从存储的第一条消息开始拉取,倒序:从存储的最后一条消息开始拉取)
- */
-- (void)getRemoteChatroomHistoryMessages:(NSString *)targetId
-                              recordTime:(long long)recordTime
-                                   count:(int)count
-                                   order:(RCTimestampOrder)order
-                                 success:(nullable void (^)(NSArray<RCMessage *> *messages, long long syncTime))successBlock
-                                   error:(nullable void (^)(RCErrorCode status))errorBlock;
-
-#pragma mark - 聊天室状态存储 (使用前必须先联系商务开通)
-/*!
-设置聊天室 KV 状态变化监听器
-
-@param delegate 聊天室 KV 状态变化的监听器
-
-@discussion 可以设置并实现此 delegate 来进行聊天室状态变化的监听 。SDK 会在回调中通知您聊天室状态的改变。
-
-@remarks 功能设置
-*/
-- (void)setRCChatRoomKVStatusChangeDelegate:(id<RCChatRoomKVStatusChangeDelegate>)delegate;
-
-/*!
- 添加聊天室 KV 状态变化监听
-
- @param delegate 代理
- */
-- (void)addChatRoomKVStatusChangeDelegate:(id<RCChatRoomKVStatusChangeDelegate>)delegate;
-
-/*!
- 移除聊天室 KV 状态变化监听
-
- @param delegate 代理
- */
-- (void)removeChatRoomKVStatusChangeDelegate:(id<RCChatRoomKVStatusChangeDelegate>)delegate;
-
-/*!
- 获取聊天室 KV 状态变化监听
- 
- @return 所有聊天室 KV 状态变化的监听器
- */
-- (NSArray <id<RCChatRoomKVStatusChangeDelegate>> *)allChatRoomKVStatusChangeDelegates;
-
-
-
-/**
- 设置聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param key 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
- @param value 聊天室属性对应的值,最大长度 4096 个字符
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param autoDelete   用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知
- @param notificationExtra   通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key
- 的创建者可以更新属性的值。
-
- @remarks 聊天室
- */
-- (void)setChatRoomEntry:(NSString *)chatroomId
-                     key:(NSString *)key
-                   value:(NSString *)value
-        sendNotification:(BOOL)sendNotification
-              autoDelete:(BOOL)autoDelete
-       notificationExtra:(NSString *)notificationExtra
-                 success:(nullable void (^)(void))successBlock
-                   error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 强制设置聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param key 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符
- @param value 聊天室属性对应的值,最大长度 4096 个字符
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param autoDelete   用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知
- @param notificationExtra   通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。
-
- @remarks 聊天室
- */
-- (void)forceSetChatRoomEntry:(NSString *)chatroomId
-                          key:(NSString *)key
-                        value:(NSString *)value
-             sendNotification:(BOOL)sendNotification
-                   autoDelete:(BOOL)autoDelete
-            notificationExtra:(NSString *)notificationExtra
-                      success:(nullable void (^)(void))successBlock
-                        error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 批量设置聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param entries   聊天室属性,key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符,value 聊天室属性对应的值,最大长度 4096 个字符,最多一次设置 10 条
- @param isForce   是否强制覆盖
- @param autoDelete   用户掉线或退出时,是否自动删除该 Key、Value 值
- @param successBlock 成功回调
- @param errorBlock   失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码)
-
- @discussion 必须先开通聊天室状态存储功能
- 
- @remarks 聊天室
- */
-- (void)setChatRoomEntries:(NSString *)chatroomId
-                   entries:(NSDictionary<NSString *, NSString *> *)entries
-                   isForce:(BOOL)isForce
-                autoDelete:(BOOL)autoDelete
-                   success:(nullable void (^)(void))successBlock
-                     error:(nullable void (^)(RCErrorCode nErrorCode, NSDictionary<NSString *,NSNumber *> *failureEntries))errorBlock;
-
-/**
- 获取聊天室单个属性
-
- @param chatroomId 聊天室 ID
- @param key 聊天室属性名称
- @param successBlock 成功回调
- @param errorBlock 失败回调
-
- @discussion 必须先开通聊天室状态存储功能
-
- @remarks 聊天室
- */
-- (void)getChatRoomEntry:(NSString *)chatroomId
-                     key:(NSString *)key
-                 success:(nullable void (^)(NSDictionary<NSString *,NSString *> *entry))successBlock
-                   error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 获取聊天室所有自定义属性
-
- @param chatroomId 聊天室 ID
- @param successBlock 成功回调
- @param errorBlock 失败回调
-
- @discussion 必须先开通聊天室状态存储功能
-
- @remarks 聊天室
- */
-- (void)getAllChatRoomEntries:(NSString *)chatroomId
-                      success:(nullable void (^)(NSDictionary<NSString *, NSString *> *entry))successBlock
-                        error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 删除聊天室自定义属性
-
- @param chatroomId 聊天室 ID
- @param key 聊天室属性名称
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param notificationExtra   通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 删除聊天室自定义属性,只有自己设置的属性可以被删除。
-
- @remarks 聊天室
- */
-- (void)removeChatRoomEntry:(NSString *)chatroomId
-                        key:(NSString *)key
-           sendNotification:(BOOL)sendNotification
-          notificationExtra:(NSString *)notificationExtra
-                    success:(nullable void (^)(void))successBlock
-                      error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 强制删除聊天室自定义属性
-
- @param chatroomId 聊天室 ID
- @param key 聊天室属性名称
- @param sendNotification   是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage
- 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra)
- @param notificationExtra   通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb
- @param  successBlock 成功回调
- @param  errorBlock   失败回调
-
- @discussion 必须先开通聊天室状态存储功能
- 强制删除聊天室自定义属性。
-
- @remarks 聊天室
- */
-- (void)forceRemoveChatRoomEntry:(NSString *)chatroomId
-                             key:(NSString *)key
-                sendNotification:(BOOL)sendNotification
-               notificationExtra:(NSString *)notificationExtra
-                         success:(nullable void (^)(void))successBlock
-                           error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-
-/**
- 批量删除聊天室自定义属性
-
- @param chatroomId   聊天室 ID
- @param keys   聊天室属性名称,最多一次删除 10 条
- @param isForce   是否强制覆盖
- @param successBlock 成功回调
- @param errorBlock   失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码)
-
- @discussion 必须先开通聊天室状态存储功能
- 
- @remarks 聊天室
- */
-- (void)removeChatRoomEntries:(NSString *)chatroomId
-                         keys:(NSArray<NSString *> *)keys
-                      isForce:(BOOL)isForce
-                      success:(nullable void (^)(void))successBlock
-                        error:(nullable void (^)(RCErrorCode nErrorCode, NSDictionary<NSString *, NSNumber *> *failureEntries))errorBlock;
-
-#pragma mark - 聊天室成员变化监听器
-
-/*!
- 设置聊天室成员变化的监听器
-
- @discussion 可以设置并实现此拦截器来监听聊天室成员的加入或退出
-
- @remarks 功能设置
- */
-@property (nonatomic, weak, nullable) id<RCChatRoomMemberDelegate> memberDelegate;
-
-
-
-/// 绑定聊天室ID和RTCRoomID
-/// @param chatRoomId 聊天室ID
-/// @param rtcRoomId rtc room ID
-/// @param successBlock 成功回调
-/// @param errorBlock 失败回调
-- (void)bindChatRoom:(NSString *)chatRoomId
-         withRTCRoom:(NSString *)rtcRoomId
-             success:(nullable void(^)(void))successBlock
-               error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock;
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 80
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h

@@ -1,80 +0,0 @@
-//
-//  RCChatRoomEnumDefine.h
-//  RongChatRoom
-//
-//  Created by 张改红 on 2020/8/12.
-//  Copyright © 2020 张改红. All rights reserved.
-//
-#import <Foundation/Foundation.h>
-#ifndef RCChatRoomEnumDefine_h
-#define RCChatRoomEnumDefine_h
-
-#pragma mark RCChatRoomStatus - 聊天室状态码
-/*!
- 聊天室状态码
- */
-typedef NS_ENUM(NSInteger, RCChatRoomStatus) {
-    /*!
-     正在加入聊天室中
-     */
-    RCChatRoomStatus_Joining = 1,
-
-    /*!
-     加入聊天室成功
-     */
-    RCChatRoomStatus_Joined = 2,
-    /*!
-     加入聊天室失败
-     */
-    RCChatRoomStatus_JoinFailed = 3,
-
-    /*!
-     退出了聊天室
-     */
-    RCChatRoomStatus_Quited = 4,
-    
-    /*!
-     聊天室被销毁
-     */
-    RCChatRoomStatus_Destroyed = 5,
-    /*!
-     聊天室被重置
-     由于聊天室长时间不活跃,已经被系统回收。聊天室 KV 已经被清空,请开发者刷新界面。
-     */
-    RCChatRoomStatus_Reset = 6,
-    
-};
-
-#pragma mark RCChatRoomMemberOrder - 聊天室成员排列顺序
-/*!
- 聊天室成员的排列顺序
- */
-typedef NS_ENUM(NSUInteger, RCChatRoomMemberOrder) {
-    /*!
-     升序,返回最早加入的成员列表
-     */
-    RC_ChatRoom_Member_Asc = 1,
-
-    /*!
-     降序,返回最晚加入的成员列表
-     */
-    RC_ChatRoom_Member_Desc = 2,
-};
-
-#pragma mark RCChatRoomMemberActionType - 聊天室成员加入或退出
-/*!
- 聊天室成员加入或者退出
- */
-typedef NS_ENUM(NSInteger, RCChatRoomMemberActionType) {
-    /*!
-     聊天室成员退出
-     */
-    RC_ChatRoom_Member_Quit = 0,
-    
-    /*!
-     聊天室成员加入
-     */
-    RC_ChatRoom_Member_Join = 1,
-};
-
-#endif /* RCChatRoomEnumDefine_h */

+ 0 - 41
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomInfo.h

@@ -1,41 +0,0 @@
-//
-//  RCChatRoomInfo.h
-//  RongIMLib
-//
-//  Created by 岑裕 on 16/1/11.
-//  Copyright © 2016年 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import "RCChatRoomMemberInfo.h"
-#import "RCChatRoomEnumDefine.h"
-/*!
- 聊天室信息类
- */
-@interface RCChatRoomInfo : NSObject
-
-/*!
- 聊天室 ID
- */
-@property (nonatomic, copy) NSString *targetId;
-
-/*!
- 包含的成员信息类型
- */
-@property (nonatomic, assign) RCChatRoomMemberOrder memberOrder;
-
-/*!
- 聊天室中的部分成员信息 RCChatRoomMemberInfo 列表
-
- @discussion
- 如果成员类型为RC_ChatRoom_Member_Asc,则为最早加入的成员列表,按成员加入时间升序排列;
- 如果成员类型为RC_ChatRoom_Member_Desc,则为最晚加入的成员列表,按成员加入时间降序排列。
- */
-@property (nonatomic, strong) NSArray <RCChatRoomMemberInfo *> *memberInfoArray;
-
-/*!
- 当前聊天室的成员总数
- */
-@property (nonatomic, assign) int totalMemberCount;
-
-@end

+ 0 - 37
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h

@@ -1,37 +0,0 @@
-//
-//  RCChatRoomMemberAction.h
-//  RongChatRoom
-//
-//  Created by 孙浩 on 2021/7/12.
-//  Copyright © 2021 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import "RCChatRoomEnumDefine.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RCChatRoomMemberAction : NSObject
-
-/*!
- 成员 ID
- */
-@property (nonatomic, copy) NSString *memberId;
-
-/*!
- 成员加入或者退出
- */
-@property (nonatomic, assign) RCChatRoomMemberActionType action;
-
-/*!
- RCChatRoomMemberAction 初始化方法
-
- @param  memberId        成员 ID
- @param  action            成员加入或退出
- */
-- (instancetype)initWithMemberId:(NSString *)memberId
-                          action:(RCChatRoomMemberActionType)action;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 26
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h

@@ -1,26 +0,0 @@
-//
-//  RCChatRoomMemberInfo.h
-//  RongIMLib
-//
-//  Created by 岑裕 on 16/1/10.
-//  Copyright © 2016年 RongCloud. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-/*!
- 聊天室成员信息类
- */
-@interface RCChatRoomMemberInfo : NSObject
-
-/*!
- 用户 ID
- */
-@property (nonatomic, copy) NSString *userId;
-
-/*!
- 用户加入聊天室时间(Unix 时间戳,毫秒)
- */
-@property (nonatomic, assign) long long joinTime;
-
-@end

+ 0 - 134
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomProtocol.h

@@ -1,134 +0,0 @@
-//
-//  RCChatRoomProtocol.h
-//  RongChatRoom
-//
-//  Created by 张改红 on 2020/8/12.
-//  Copyright © 2020 张改红. All rights reserved.
-//
-
-#ifndef RCChatRoomProtocol_h
-#define RCChatRoomProtocol_h
-
-@class RCChatRoomMemberAction;
-
-typedef NS_ENUM(NSUInteger, RCChatRoomDestroyType) {
-    /*!
-     开发者主动销毁
-     */
-    RCChatRoomDestroyTypeManual = 0,
-
-    /*!
-     聊天室长时间不活跃,被系统自动回收
-     */
-    RCChatRoomDestroyTypeAuto = 3
-};
-
-#pragma mark - 聊天室监听器
-
-/*!
- IMLib聊天室状态的的监听器
-
- @discussion
- 设置IMLib的聊天室状态监听器,请参考RCIMClient的setChatRoomStatusDelegate:方法。
- */
-@protocol RCChatRoomStatusDelegate <NSObject>
-
-/*!
- 开始加入聊天室的回调
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomJoining:(NSString *)chatroomId;
-
-/*!
- 加入聊天室成功的回调
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomJoined:(NSString *)chatroomId;
-
-/*!
- 加入聊天室失败的回调
-
- @param chatroomId 聊天室ID
- @param errorCode  加入失败的错误码
-
- @discussion
- 如果错误码是KICKED_FROM_CHATROOM或RC_CHATROOM_NOT_EXIST,则不会自动重新加入聊天室,App需要按照自己的逻辑处理。
- */
-- (void)onChatRoomJoinFailed:(NSString *)chatroomId errorCode:(RCErrorCode)errorCode;
-
-/*!
- 加入聊天室成功,但是聊天室被重置。接收到此回调后,还会收到 onChatRoomJoined:回调。
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomReset:(NSString *)chatroomId;
-
-/*!
- 退出聊天室成功的回调
-
- @param chatroomId 聊天室ID
- */
-- (void)onChatRoomQuited:(NSString *)chatroomId;
-
-/*!
- 聊天室被销毁的回调,用户在线的时候房间被销毁才会收到此回调。
-
- @param chatroomId 聊天室ID
- @param type 聊天室销毁原因
-
- */
-- (void)onChatRoomDestroyed:(NSString *)chatroomId type:(RCChatRoomDestroyType)type;
-
-@end
-
-
-#pragma mark - 聊天室 KV 状态变化
-
-/**
- IMLib 聊天室 KV 状态变化监听器
- @discussion 设置代理请参考 RCIMClient 的 setRCChatRoomKVStatusChangeDelegate: 方法。
- */
-@protocol RCChatRoomKVStatusChangeDelegate <NSObject>
-
-
-/**
- IMLib 刚加入聊天室时 KV 同步完成的回调
- 
- @param roomId 聊天室 Id
- */
-- (void)chatRoomKVDidSync:(NSString *)roomId;
-
-/**
- IMLib 聊天室 KV 变化的回调
- 
- @param roomId 聊天室 Id
- @param entry KV 字典,如果刚进入聊天室时存在  KV,会通过此回调将所有 KV 返回,再次回调时为其他人设置或者修改 KV
- */
-- (void)chatRoomKVDidUpdate:(NSString *)roomId entry:(NSDictionary<NSString *, NSString *> *)entry;
-
-/**
- IMLib 聊天室 KV 被删除的回调
- 
- @param roomId 聊天室 Id
- @param entry KV 字典
- */
-- (void)chatRoomKVDidRemove:(NSString *)roomId entry:(NSDictionary<NSString *, NSString *> *)entry;
-
-@end
-
-
-#pragma mark - 聊天室成员变化监听器
-@protocol RCChatRoomMemberDelegate <NSObject>
-/**
- 有聊天室成员加入或退出的回调
- 
- @param members 相关信息
- @param roomId 聊天室 Id
- */
-- (void)memberDidChange:(NSArray <RCChatRoomMemberAction *> *)members inRoom:(NSString *)roomId;
-
-@end
-
-#endif /* RCChatRoomProtocol_h */

+ 0 - 74
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h

@@ -1,74 +0,0 @@
-//
-//  RCChatroomKVNotificationMessage.h
-//  RongIMLib
-//
-//  Created by 孙浩 on 2019/10/14.
-//  Copyright © 2019 RongCloud. All rights reserved.
-//
-
-#import <RongIMLibCore/RongIMLibCore.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-/*!
- 聊天室自定义属性通知消息的类型名
- */
-#define RCChatroomKVNotificationMessageTypeIdentifier @"RC:chrmKVNotiMsg"
-
-typedef NS_ENUM(NSInteger, RCChatroomKVNotificationType) {
-    /*!
-     设置 KV 的操作
-     */
-    RCChatroomKVNotificationTypeSet = 1,
-    /*!
-     删除 KV 的操作
-     */
-    RCChatroomKVNotificationTypeRemove = 2
-};
-
-/**
-聊天室自定义属性通知消息
-
-@discussion 不要随意构造此类消息发送,调用设置或者删除接口时会自动构建。
-@discussion 此消息不存储不计入未读消息数。
- 
-@remarks 通知类消息
-*/
-@interface RCChatroomKVNotificationMessage : RCMessageContent
-
-/*!
- 聊天室操作的类型
-*/
-@property (nonatomic, assign) RCChatroomKVNotificationType type;
-
-/*!
- 聊天室属性名称
- */
-@property (nonatomic, copy) NSString *key;
-
-/*!
- 聊天室属性对应的值
- */
-@property (nonatomic, copy) NSString *value;
-
-/*!
- 通知消息的自定义字段,最大长度 2 kb
- */
-@property (nonatomic, copy) NSString *extra;
-
-/*!
-初始化聊天室自定义属性通知消息
-
-@param key 聊天室属性名称
-@param value 聊天室属性对应的值(删除 key 时不用传)
-@param extra 通知消息的自定义字段
-@return 聊天室自定义属性通知消息的对象
-*/
-+ (instancetype)notificationWithType:(RCChatroomKVNotificationType)type
-                                 key:(NSString *)key
-                               value:(NSString *_Nullable)value
-                               extra:(NSString *)extra;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 26
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Headers/RongChatRoom.h

@@ -1,26 +0,0 @@
-//
-//  RongChatRoom.h
-//  RongChatRoom
-//
-//  Created by 张改红 on 2020/8/12.
-//  Copyright © 2020 张改红. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-//! Project version number for RongChatRoom.
-FOUNDATION_EXPORT double RongChatRoomVersionNumber;
-
-//! Project version string for RongChatRoom.
-FOUNDATION_EXPORT const unsigned char RongChatRoomVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import <RongChatRoom/PublicHeader.h>
-#import <RongChatRoom/RCChatRoomClient.h>
-#import <RongChatRoom/RCChatRoomProtocol.h>
-#import <RongChatRoom/RCChatRoomEnumDefine.h>
-
-#import <RongChatRoom/RCChatRoomInfo.h>
-#import <RongChatRoom/RCChatroomKVNotificationMessage.h>
-#import <RongChatRoom/RCChatRoomMemberInfo.h>
-
-#import <RongChatRoom/RCChatRoomMemberAction.h>

BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Info.plist


+ 0 - 6
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/Modules/module.modulemap

@@ -1,6 +0,0 @@
-framework module RongChatRoom {
-  umbrella header "RongChatRoom.h"
-
-  export *
-  module * { export * }
-}

BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/RongChatRoom


+ 0 - 237
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongChatRoom.xcframework/ios-i386_x86_64-simulator/RongChatRoom.framework/_CodeSignature/CodeResources

@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>files</key>
-	<dict>
-		<key>Headers/RCChatRoomClient.h</key>
-		<data>
-		EkhXVl7Y0es0O9N6bZ2PA2ZhbZI=
-		</data>
-		<key>Headers/RCChatRoomEnumDefine.h</key>
-		<data>
-		Yjs8pfXQzvOjbRA2fFQ2D0jdGzU=
-		</data>
-		<key>Headers/RCChatRoomInfo.h</key>
-		<data>
-		lgrFIsr+MxhrnrDnf+IAed+duLM=
-		</data>
-		<key>Headers/RCChatRoomMemberAction.h</key>
-		<data>
-		Mk6gmoSSTfdvG+I3tFiPy/+mAQA=
-		</data>
-		<key>Headers/RCChatRoomMemberInfo.h</key>
-		<data>
-		C4yY5FtRTsQqehIunLABQK7IFY0=
-		</data>
-		<key>Headers/RCChatRoomProtocol.h</key>
-		<data>
-		GpiJz1GZ6kAgtfJ/1jxp3+unC4k=
-		</data>
-		<key>Headers/RCChatroomKVNotificationMessage.h</key>
-		<data>
-		6PZAYW6ZqTpTv82zmldJ4XZq8GQ=
-		</data>
-		<key>Headers/RongChatRoom.h</key>
-		<data>
-		4UUKY8coOEsvQfHghs7wIFh3yQ8=
-		</data>
-		<key>Info.plist</key>
-		<data>
-		+ZHaSJts/NhjwsLpqFzojPwFK1s=
-		</data>
-		<key>Modules/module.modulemap</key>
-		<data>
-		ii0hqjTTGnemjpGIXXGYCaoB99o=
-		</data>
-	</dict>
-	<key>files2</key>
-	<dict>
-		<key>Headers/RCChatRoomClient.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			EkhXVl7Y0es0O9N6bZ2PA2ZhbZI=
-			</data>
-			<key>hash2</key>
-			<data>
-			Op2x+8j1j5gJuDp4CRd2/UvtBUQoXohD4x/NQMPt1os=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomEnumDefine.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			Yjs8pfXQzvOjbRA2fFQ2D0jdGzU=
-			</data>
-			<key>hash2</key>
-			<data>
-			4REqhBkjsPSe7O09bWosFhqN+MHMWg8wkXNEX9uvBoE=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomInfo.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			lgrFIsr+MxhrnrDnf+IAed+duLM=
-			</data>
-			<key>hash2</key>
-			<data>
-			1klb88mZQA2wcalaDMvFtN8kf0QdGGnROIi8ghEgT3Y=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomMemberAction.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			Mk6gmoSSTfdvG+I3tFiPy/+mAQA=
-			</data>
-			<key>hash2</key>
-			<data>
-			4Z+oCjr3QnIgJrkeriks4TyoLh0UJv2NAlJ3QP0bFjk=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomMemberInfo.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			C4yY5FtRTsQqehIunLABQK7IFY0=
-			</data>
-			<key>hash2</key>
-			<data>
-			xiQhdGQCiGKuLBH9Rr44kQLg+5Kt0vptTh4MsddtUcY=
-			</data>
-		</dict>
-		<key>Headers/RCChatRoomProtocol.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			GpiJz1GZ6kAgtfJ/1jxp3+unC4k=
-			</data>
-			<key>hash2</key>
-			<data>
-			0tYBgfKkLNcPd+9sjraUISjRhiJupRnDK9V5f6l6EsY=
-			</data>
-		</dict>
-		<key>Headers/RCChatroomKVNotificationMessage.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			6PZAYW6ZqTpTv82zmldJ4XZq8GQ=
-			</data>
-			<key>hash2</key>
-			<data>
-			4ZBY+7B9cz5GNv9UyfkgiyOI8p4G/wAANSlqNyJtHdQ=
-			</data>
-		</dict>
-		<key>Headers/RongChatRoom.h</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			4UUKY8coOEsvQfHghs7wIFh3yQ8=
-			</data>
-			<key>hash2</key>
-			<data>
-			S5W8zQuRwgeH7231NGOFA9NP0RqDkZk48OhSnRf2GTo=
-			</data>
-		</dict>
-		<key>Modules/module.modulemap</key>
-		<dict>
-			<key>hash</key>
-			<data>
-			ii0hqjTTGnemjpGIXXGYCaoB99o=
-			</data>
-			<key>hash2</key>
-			<data>
-			wJMy+vWcBIzIHUTDDqJsgKqxiJI3RYxErBRoeokdByQ=
-			</data>
-		</dict>
-	</dict>
-	<key>rules</key>
-	<dict>
-		<key>^.*</key>
-		<true/>
-		<key>^.*\.lproj/</key>
-		<dict>
-			<key>optional</key>
-			<true/>
-			<key>weight</key>
-			<real>1000</real>
-		</dict>
-		<key>^.*\.lproj/locversion.plist$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>1100</real>
-		</dict>
-		<key>^Base\.lproj/</key>
-		<dict>
-			<key>weight</key>
-			<real>1010</real>
-		</dict>
-		<key>^version.plist$</key>
-		<true/>
-	</dict>
-	<key>rules2</key>
-	<dict>
-		<key>.*\.dSYM($|/)</key>
-		<dict>
-			<key>weight</key>
-			<real>11</real>
-		</dict>
-		<key>^(.*/)?\.DS_Store$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>2000</real>
-		</dict>
-		<key>^.*</key>
-		<true/>
-		<key>^.*\.lproj/</key>
-		<dict>
-			<key>optional</key>
-			<true/>
-			<key>weight</key>
-			<real>1000</real>
-		</dict>
-		<key>^.*\.lproj/locversion.plist$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>1100</real>
-		</dict>
-		<key>^Base\.lproj/</key>
-		<dict>
-			<key>weight</key>
-			<real>1010</real>
-		</dict>
-		<key>^Info\.plist$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-		<key>^PkgInfo$</key>
-		<dict>
-			<key>omit</key>
-			<true/>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-		<key>^embedded\.provisionprofile$</key>
-		<dict>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-		<key>^version\.plist$</key>
-		<dict>
-			<key>weight</key>
-			<real>20</real>
-		</dict>
-	</dict>
-</dict>
-</plist>

BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/Comment.png


BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/ExcelFile.png


BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/ExcelFile@2x.png


BIN
KulexiuForTeacher/Pods/RongCloudIM/RongCloudIM/RongCloud.bundle/ExcelFile@3x.png


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