- ๅ ณ้ฎไธๅก้ป่พ่ฏดๆ
- ็จๅฐ็ๆๆฏ่ๆๆถ
- ๅ ณ้ฎไปฃ็ ๆจกๅ่ฏดๆ
- ็ๆฌๅ ผๅฎน
- ๆๆกฃ้พๆฅ
- ่็ณปๆไปฌ
- ็ปๅฝๆต็จ
- ๅ ๅ ฅๆฟ้ดๆต็จ
- ้บฆไฝ็ธๅ ณ็ถๆๆนๅๆต็จ
- ่งไผ่ฝฌๆขไธบๅไผไบบๅๆต็จ
- ๅไผไบบๅ่ฝฌไธบ่งไผๆต็จ
- ๆญฃๅจๅ่จ็ธๅ ณๅค็ๆต็จ
- ไธปๆไบบ่ฝฌ่ฎฉไธๆฅ็ฎกๆต็จ
- ไปๆฟ้ดๅ่กจ่ฟๅ ฅ็ๆฟ้ด้ป่ฎค้ฝๆฏ่งไผ่บซไปฝ่ฟๅ ฅ๏ผๅชๆไปๅๅปบๆฟ้ด็ๅ ฅๅฃ่ฟๅ ฅๆถไผไปฅไธปๆไบบ่บซไปฝ่ฟๅ ฅ
- ไธปๆไบบ
- ๆ นๆฎๆฟ้ด ID ๅ ๅ ๅ ฅ IM ่ๅคฉๅฎค
- ๅ ๅ ฅ่ๅคฉๅฎคๆๅๅๅ ๅ ฅ RTC ่ๅคฉๅฎค
- ๅ ๅ ฅ่ๅคฉๅฎคๆๅๅ่ฐ็จ RTC ๆฅๅฃๅๅธ่ชๅทฑ็้ณ้ขๆต
- ๅปถ่ฟ 1.5-1 ็ง๏ผๆถ้ฟๅพ ๅฎ๏ผๅฐๅๅธๅ็็ดๆญ liveUrl ่ฎพ็ฝฎๅฐ KV ไธญ
- ๅปถ่ฟ 1.5-1 ็ง๏ผๆถ้ฟๅพ ๅฎ๏ผๅ่ๅคฉๅฎคไธญ้บฆไฝๅ่ฎฒ่ฏ็ถๆ็็ธๅ ณ KV ็ถๅๆดๆฐไธ้้บฆไฝๅฝๅ็ถๆ
- ่งไผ
- ๆ นๆฎๆฟ้ด ID ๅ ๅ ฅ่ๅคฉๅฎค
- ๅปถ่ฟ 0.5-1 ็ง๏ผๆถ้ฟๅพ ๅฎ๏ผๅ KV ไธญๅญๆพ็ liveUrlใ้บฆไฝใ่ฎฒ่ฏ็ถๆ็ใๅฝๅๆฏๅฆๆไบบๆ้บฆ็ KV๏ผๅ ถไธญ liveUrl ๅฆๅญๅจๅ่ฐ็จ RTC ๆฅๅฃ่ฎข้ ็ดๆญๅๆต๏ผ้บฆไฝๅ่ฎฒ่ฏ็ถๆ็ value ๅๅบๅๆดๆฐไธ้้บฆไฝๅฝๅ็ถๆใๅฝๅๆฏๅฆๆไบบๆ้บฆ็ value ๅๅบๅๆดๆฐๅณไธ่งๅฐ็บข็น็ถๆ
- ็ๅฌ IM ่ๅคฉๅฎคไธญ็ๆถๆฏ๏ผๅฆๆๆฏ KV ๆดๆฐๆถๅ้็ๆถๆฏ็ฑปๅๅๆ นๆฎๅ ทไฝๆดๆฐ็ Key ๆฅๅๅซ่ฟ่กไธ่ฟฐๅค็
- ็ธๅ
ณ key ็ๆ ผๅผๅฆไธ:
//็ดๆญๆตๅฐๅ๏ผ "liveUrl":"http://abc.com" //้บฆไฝ็ธๅ ณ๏ผ //ๆๅ็ 0-8 ่กจ็คบไนไธช้บฆไฝ๏ผ0 ไธบไธปๆไบบ "sealmic_position_0": { "userId":"abcde", //0๏ผๆญฃๅธธ็ถๆ๏ผๆญคๆถ userId ๅญๅจๅ่ฏดๆ้บฆไฝไธๆไบบ๏ผๅฆๅ่กจ็คบๅฝๅไธบ็ฉบ้บฆไฝ๏ผ๏ผ1:้ๅฎ็ถๆ๏ผไธๅ ่ฎธไธไบบ๏ผ๏ผ2:้ญ้บฆ็ถๆ๏ผๅฝๅ้บฆไฝไธ็็จๆท่ขซ็ฆ่จ๏ผ "state":0, //0-8 ่กจ็คบไนไธช้บฆไฝ "position":0 } //ๆญฃๅจๅ่จ็ธๅ ณ: //ๆๅ็ 0-8 ่กจ็คบไนไธช้บฆไฝ๏ผ0 ไธบไธปๆไบบ "speaking_0": { //0 ่กจ็คบๅฝๅๆชๅ่จ๏ผ1 ่กจ็คบๆญฃๅจๅ่จ "speaking":0, //0-8 ่กจ็คบไนไธช้บฆไฝ "position":0 } //ๆฏๅฆๆไบบๆ้บฆ็ธๅ ณ๏ผ //0 ่กจ็คบๆฒกไบบๅจๆ้บฆ๏ผ1 ่กจ็คบๆไบบๅจๆ้บฆ "applied_mic_list_empty":0
- ๅฆๆๆฏ liveUrl ๆดๆฐ็ Key
- ไป ่งไผ่บซไปฝ้่ฆๅค็๏ผๅฆๆๅทฒ็ป่ฎข้ ่ฟไธๆดๆฐๅ็ๅไนๅ่ฎข้ ็็ธๅไธ้่ฆๅค็๏ผๆฒกๆ่ฎข้ ่ฟๆๆดๆฐๅๅไนๅ็ไธๅๅ้่ฆ่ฐ็จ RTC ๆฅๅฃ้ๆฐ่ฎข้ ่ฟๆฌกๆดๆฐๅ็ liveUrl
- ๅฆๆๆฏๅ่จ็ถๆๆดๆฐ็ Key
- ๆ นๆฎ็ธๅ ณ KV ๆดๆฐ UI ไธๆๅฎ้บฆไฝ็ๅจ็ป็ถๆๅณๅฏ
- ๅฆๆๆฏๆ้บฆ็ถๆๅๆด็ Key
- ๆ นๆฎ KV ๆดๆฐๅณไธ่งๅฐ็บข็น็ถๆๅณๅฏ
- ๅฆๆๆฏ้บฆไฝ็ธๅ
ณๆดๆฐ็ Key
- ๆ นๆฎๅ ทไฝ็ KV ๆดๆฐๅฏนๅบ้บฆไฝ็ UI
- ๆ นๆฎๆดๆฐๅๅๅไธ้บฆไฝ็็ถๆๆนๅๆฅ่ฟ่กไธ่ฟฐๅค็๏ผไธ้ขๅช้่ฆๅค็ๅ่ชๅทฑ็ธๅ
ณ็่ง่ฒ่ฝฌๅ้ป่พ๏ผ้บฆไฝไธ้่ชๅทฑ็ๅ
ถๅฎ็จๆทๆไธ้บฆไธ้บฆๆถ้่ฆๅ็่ฎข้
ๆตๆไฝๅจ
RTC ๆฟ้ดๅๅจ็ธๅ
ณ็ๅ่ฐไธญ่ฟ่กๅค็๏ผ:
//ๆถๅฐDemo serverไธๅ็KV ChatRoomKVNotiMessage chatRoomKVNotiMessage = eventMicKVMessage.getChatRoomKVNotiMessage(); String json = chatRoomKVNotiMessage.getValue(); String key = chatRoomKVNotiMessage.getKey(); String extra = chatRoomKVNotiMessage.getExtra(); //KVไธญๆบๅธฆ็็ธๅ ณ็ฑปๅ่ฏดๆ KvExtraBean kvExtraBean = new Gson().fromJson(extra, KvExtraBean.class); //ๅฝๅๆฟ้ดid String roomId = CacheManager.getInstance().getRoomId(); //ๅฝๅ็จๆทid String userId = CacheManager.getInstance().getUserId(); //ๅฝๅ็ปๅฝ็จๆทๆฌๅฐไฟๅญ็้บฆไฝไฟกๆฏ๏ผๅฆๆๆๅ่ฏดๆๅฝๅ็จๆทๅจ้บฆไฝไธ๏ผ MicBean currentMicBean = CacheManager.getInstance().getMicBean(); //ๅฝๅ็จๆท็่ง่ฒ int currentUserType = CacheManager.getInstance().getUserRoleType(); SpeakBean newSpeakBean = null; AppliedMicListBean appliedMicListBean = null; final MicBean newMicBean; //ไธๅ็KV้็ฅๅ ฑ4็ฑปKV๏ผๅๆ ๅต่งฃๆ if (key.contains(SealMicConstant.KV_MIC_POSITION_PREFIX)) { //ๆญคๆฌก KV ๆถๆฏๆๆบๅธฆ็ๆๆฐ็้บฆไฝไฟกๆฏ newMicBean = new Gson().fromJson(json, MicBean.class); //ๆดๆฐkvๆถๆฌๅฐๆดๆฐ้บฆไฝmap localMicBeanMap.put(newMicBean.getPosition(), newMicBean); if (newMicBean != null) { //1. ๆ นๆฎๆฐ่ฟๅๆฅ็KVๆดๆฐUI if (newMicBean.getState() == MicState.NORMAL.getState()) { //็จๆทไธ้บฆ dynamicAvatarViewList.get(newMicBean.getPosition()).micDelUser(); //ไธปๆไบบ if (UserRoleType.HOST.isHost(CacheManager.getInstance().getUserRoleType())) { if (newMicBean.getUserId().equals(CacheManager.getInstance().getUserId())) { micTextLayoutList.get(newMicBean.getPosition()).HasMic("ๅท้บฆไฝ"); } else { micTextLayoutList.get(newMicBean.getPosition()).NullMic("ๅท้บฆไฝ"); } } //่ฟ้บฆ่ if (UserRoleType.CONNECT_MIC.isConnectMic(CacheManager.getInstance().getUserRoleType()) || UserRoleType.AUDIENCE.isAudience(CacheManager.getInstance().getUserRoleType())) { micTextLayoutList.get(newMicBean.getPosition()).NullMic("ๅท้บฆไฝ"); } List<String> ids = new ArrayList<>(); ids.add(newMicBean.getUserId()); chatRoomViewModel.userBatch(ids); final MicBean finalNewMicBean = newMicBean; chatRoomViewModel.getUserinfolistRepoLiveData().observe(getViewLifecycleOwner(), new Observer<NetResult<List<RoomMemberRepo.MemberBean>>>() { @Override public void onChanged(NetResult<List<RoomMemberRepo.MemberBean>> listNetResult) { List<RoomMemberRepo.MemberBean> memberBeanList = listNetResult.getData(); if (memberBeanList != null && memberBeanList.size() != 0) { RoomMemberRepo.MemberBean memberBean = memberBeanList.get(0); if ("".equals(memberBean.getUserName())) { micTextLayoutList.get(finalNewMicBean.getPosition()).HasMic(finalNewMicBean.getPosition() + "ๅท้บฆ"); } else { micTextLayoutList.get(finalNewMicBean.getPosition()).HasMic(memberBean.getUserName()); } GlideManager.getInstance().setUrlImage(getView(), memberBean.getPortrait(), dynamicAvatarViewList.get(finalNewMicBean.getPosition()).getUserImg()); } } }); } else if (newMicBean.getState() == MicState.LOCK.getState()) { //้บฆไฝ้ๅฎ dynamicAvatarViewList.get(newMicBean.getPosition()).lockMic(); } else if (newMicBean.getState() == MicState.CLOSE.getState()) { //้ญ้บฆ dynamicAvatarViewList.get(newMicBean.getPosition()).bankMic(); } //2. ่ขซ็น็ไบบๆฏ่ชๅทฑ if (newMicBean.getUserId().equals(userId)) { if (UserRoleType.AUDIENCE.isAudience(currentUserType)) { //่งไผไธ้บฆ chatRoomViewModel.switchMic(roomId, CacheManager.getInstance().getUserRoleType(), newMicBean.getPosition() == 0 ? UserRoleType.HOST.getValue() : UserRoleType.CONNECT_MIC.getValue(), new SealMicResultCallback<Map<String, String>>() { @Override public void onSuccess(Map<String, String> stringStringMap) { //ๅๆข่ง่ฒไธ้บฆๆๅไนๅ๏ผๆดๆฐๅฝๅ็จๆท่ง่ฒ ThreadManager.getInstance().runOnUIThread(new Runnable() { @Override public void run() { SLog.e(SLog.TAG_SEAL_MIC, "่งไผไธ้บฆๆๅ"); //ไธ้บฆๆๅๅ็จๆท่ง่ฒๅไธบไธปๆไบบๆ่ ่ฟ้บฆ่ ๏ผๅๆถVๅฑๅๅบๅๅ EventBus.getDefault().post( newMicBean.getPosition() == 0 ? new Event.EventUserRoleType(UserRoleType.HOST, true) : new Event.EventUserRoleType(UserRoleType.CONNECT_MIC, true)); //ไธ้บฆๆๅไนๅ้ป่ฎค้บฆๅ ้ฃๅฏ็จ fragmentChatRoomBinding.chatroomVoiceIn.setSelected(false); RTCClient.getInstance().setLocalMicEnable(true); } }); } @Override public void onFail(int errorCode) { } }); } //ๅฝๅ็จๆทไธๅจ้บฆไฝๆ่ ๅฝๅ็จๆทๆๅจ้บฆไฝ็็ถๆๅๆฐ็้บฆไฝ็ถๆไธๅน้ if (currentMicBean == null || currentMicBean.getState() != newMicBean.getState()) { //ๆ นๆฎๆฐ้บฆไฝ็็ถๆๆดๆฐๆฌๅฐ็้บฆๅ ้ฃ็ถๆ๏ผ็ฆ็จๆๅฏ็จ๏ผ //ๅบ้จๆ ๅพๆ ๏ผๆงๅถๆฏๅฆไฝฟ็จ้บฆๅ ้ฃ //ๆญฃๅธธ: ๅฏ็จ ๆๅผๆนๆณ ้ญ้บฆ: ็ฆ็จ ๅ ณ้ญๆนๆณ if (newMicBean.getState() == MicState.NORMAL.getState()) { fragmentChatRoomBinding.chatroomVoiceIn.setSelected(false); RTCClient.getInstance().setLocalMicEnable(true); } else if (newMicBean.getState() == MicState.CLOSE.getState()) { fragmentChatRoomBinding.chatroomVoiceIn.setSelected(true); RTCClient.getInstance().setLocalMicEnable(false); } } //ๅจๆฌๅฐไฟๅญ็้บฆไฝไฟกๆฏๆนๅๅๅฐๆๅจ้บฆไฝ็ๅ่จ็ถๆๆๅจ่ฎพ็ฝฎไธบ 0 ไธๆฌก๏ผ่ฎพ็ฝฎๅฐKV้ SpeakBean speakBean = new SpeakBean(0, currentMicBean != null ? currentMicBean.getPosition() : 0); String speakingValue = new Gson().toJson(speakBean); IMClient.getInstance().setChatRoomSpeakEntry( roomId, SealMicConstant.KV_SPEAK_POSITION_PREFIX + (currentMicBean != null ? currentMicBean.getPosition() : 0), speakingValue); //ๅฐๆฌๅฐไฟๅญ็ๅฝๅ็จๆท็้บฆไฝไฟกๆฏๆดๆฐไธบๆฐ้บฆไฝ็ไฟกๆฏ CacheManager.getInstance().cacheMicBean(newMicBean); //ไธ้บฆๆ ๅตไธๅทๆฐๆฌๅฐmap localMicBeanMap.put(newMicBean.getPosition(), newMicBean); } else { //ๅฆๆ changeType ไธๆฏ ๏ผ4๏ผ5๏ผ6๏ผไธญ็ไธ็งๅนถไธๅฝๅ็จๆท็้บฆไฝไฟกๆฏๅญๅจ๏ผไนๅฐฑๆฏๅฝๅ็จๆทๅจ้บฆไฝไธ๏ผๅนถไธๆฐ้บฆไฝ็ๅบๅท็ญไบๅฝๅ็จๆทๆถ int changeType = kvExtraBean.getChangeType(); //456 3็งๆ ๅตไธบไธ็จไธ้บฆ็ๆ ๅต if (changeType != 4 && changeType != 5 && changeType != 6 && currentMicBean != null && currentMicBean.getPosition() == newMicBean.getPosition()) { //ไธปๆญไธ้บฆ chatRoomViewModel.switchMic(roomId, CacheManager.getInstance().getUserRoleType(), UserRoleType.AUDIENCE.getValue(), new SealMicResultCallback<Map<String, String>>() { @Override public void onSuccess(Map<String, String> stringStringMap) { //ๅๆข่ง่ฒไธ้บฆๆๅไนๅ๏ผๆดๆฐๅฝๅ็จๆท่ง่ฒ ThreadManager.getInstance().runOnUIThread(new Runnable() { @Override public void run() { SLog.e(SLog.TAG_SEAL_MIC, "ไธปๆญไธ้บฆๆๅ"); //ไธ้บฆๆๅๅ็จๆท่ง่ฒๅไธบ่งไผ๏ผๅๆถVๅฑๅๅบๅๅ EventBus.getDefault().post(new Event.EventUserRoleType(UserRoleType.AUDIENCE, true)); boolean outSelected = fragmentChatRoomBinding.chatroomVoiceOut.isSelected(); RTCClient.getInstance().setSpeakerEnable(!outSelected); } }); } @Override public void onFail(int errorCode) { } }); //ๅจๆฌๅฐไฟๅญ็้บฆไฝไฟกๆฏๆนๅๅๅฐๆๅจ้บฆไฝ็ๅ่จ็ถๆๆๅจ่ฎพ็ฝฎไธบ 0 ไธๆฌก //่ฎพ็ฝฎๅฐKV้ SpeakBean speakBean = new SpeakBean(0, currentMicBean.getPosition()); String speakingValue = new Gson().toJson(speakBean); IMClient.getInstance().setChatRoomSpeakEntry( roomId, SealMicConstant.KV_SPEAK_POSITION_PREFIX + currentMicBean.getPosition(), speakingValue); //ๆดๆฐๆฌๅฐkvๅ่กจ currentMicBean.setUserId(""); //ไธ้บฆๅๅทๆฐๆฌๅฐ้บฆไฝmap localMicBeanMap.put(currentMicBean.getPosition(), currentMicBean); //ๅฐๆฌๅฐไฟๅญ็ๅฝๅ็จๆท็้บฆไฝไฟกๆฏๆดๆฐไธบๆฐ้บฆไฝ็ไฟกๆฏ CacheManager.getInstance().cacheMicBean(null); } } } } if (key.contains(SealMicConstant.KV_SPEAK_POSITION_PREFIX)) { //่งฃๆไธๅ็ๆญฃๅจ่ฎฒ่ฏไฟกๆฏ //่ฟ็ซฏ็จๆท้ ไธๅ็KV่ฎพ็ฝฎ่ฏด่ฏ็ถๆ newSpeakBean = new Gson().fromJson(json, SpeakBean.class); CustomDynamicAvatar customDynamicAvatar = dynamicAvatarViewList.get(newSpeakBean.getPosition()); //1: ๆญฃๅจ่ฏด่ฏ 0: ๆฒกๆ่ฏด่ฏ if (newSpeakBean.getSpeaking() == 1) { customDynamicAvatar.startSpeak(); } else { customDynamicAvatar.stopSpeak(); } //ๆฌๅฐ็จๆท้ ้ณ้ๆฏๅฆๅคงไบ1ๆฅๅคๆญๆฏๅฆๆพ็คบๅจ็ป } if (key.contains(SealMicConstant.KV_APPLIED_MIC_PREFIX)) { //่งฃๆไธๅ็ๆฏๅฆๆไบบๆ้บฆไฟกๆฏ //0 ่กจ็คบๆฒกไบบๅจๆ้บฆ๏ผ1 ่กจ็คบๆไบบๅจๆ้บฆ if ("0".equals(json)) { fragmentChatRoomBinding.chatRoomTopBar.hideRedDot(); } else if ("1".equals(json)) { fragmentChatRoomBinding.chatRoomTopBar.showRedDot(); } }
- ๅๆถ่ฎข้ ็ดๆญๅๆต
- ๅๆถๆๅๅๅ ๅ ฅ RTC ๆฟ้ดๅ
- ๅ ๅ ฅ RTC ๆฟ้ดๅ่ฎข้ ๆฟ้ดๅฝๅๅญๅจ็ๆๆ้ณ้ขๆต
- ๅ ๅ ฅ RTC ๆฟ้ดๅๅๅธ่ชๅทฑ็้ณ้ขๆต
- ็จ RTC ๅๅธ้ณ้ขๆตๅ่ฟๅ็ liveUrl ๅไป KV ไธญ่ทๅๅฐ็ liveUrl ๆฏๅฏน๏ผๅฆๆไธๅๅไธปๅจ่ฎพ็ฝฎไธๆฌก KV ไธญ็ liveUrl
- ้ๅบ RTC ๆฟ้ด
- ้ๅบๆๅๅๆ นๆฎ liveUrl ๅฐๅ่ฎข้ ็ดๆญๅๆต
- ็จๆท้บฆไฝ็ถๆๆนๅๆถไธปๅจๅฐๅฝๅ้บฆไฝไธๅ่จ็ถๆ็ KV ่ฎพ็ฝฎไธบ NO๏ผ้ฟๅ ไธไธช้บฆไฝ็จๆทๅผๅธธไธ้บฆๅฏผ่ด่ฟไธช้บฆไฝไธ็ดไธบๅ่จ็ถๆ๏ผ
- ็ๅฌ RTC ๆไพ็ SDK ๅฝๅ็ถๆๅ่ฐ๏ผๆญคๅ่ฐไธ็งไผ่งฆๅไธๆฌก๏ผ็ๅป่ชๅทฑๅๅฎๆถๅจไบ๏ผ
- ๅจๅ่ฐไธญ็ๅฌๅๅบๅป็ๆต็ถๆ
- ๆฌๅฐไฟๅญไธไธๅฝๅ็ๅ่จ็ถๆ
- ้ณ้ๅคงไบ 0 ๅ่ฎคไธบๆญฃๅจ่ฎฒ่ฏ๏ผๅฆๆๅฝๅๅ่จ็ถๆไธๆฌๅฐไฟๅญ็ๅฝๅๅ่จ็ถๆไธ็ธ็ฌฆๅ่ฎคไธบๅฝๅ็จๆทๅ่จ็ถๆๆๅๅจ๏ผๆดๆฐไธๆฌกๅ่จ็ถๆ็ KV
- ่ฝฌ่ฎฉๆต็จ
- ไธปๆไบบ่ฐ็จ server ๆฅๅฃ๏ผ่ฏทๆฑ่ฝฌ่ฎฉไธปๆไบบ
- server ่ท็ฅๅไผไธๅ
RCMic:transferHostMsg
็ฑปๅ็่ชๅฎไนๆถๆฏ๏ผๆถๆฏไธญๅ ๅซๆไฝ็ๅ่ตท่ ๅๆฅๆถ่ - ๆฟ้ดๅ ็จๆทๆถๅฐๆถๆฏๅๆ นๆฎ่ชๅทฑๅฝๅ็่บซไปฝไปฅๅๆถๆฏไธญๆบๅธฆ็ๆฅๆถ่ ๅคๆญ่ชๅทฑๆฏๅฆ่ขซ้่ฏทๆฅ็ฎกไธปๆไบบไฝ็ฝฎ
- ๅฆๆ่ชๅทฑๆฏ่ขซ้่ฏท็ไธๆนๅๅผนๅบๆ็คบๆก๏ผ่ฎฉ็จๆท้ๆฉๆฅๅ่ฟๆฏๆ็ป๏ผไธคไธชๆไฝ้ฝ้่ฆ่ฐ็จ server ๆฅๅฃๅ้ฆ็ป server
- server ่ท็ฅ็ปๆๅไผๅๆฌกไธๅไธๆก
RCMic:transferHostMsg
ๆถๆฏ๏ผๆถๆฏไธญๅ ๅซๆญคๆฌก่ขซ้่ฏท็จๆท็ๅๅบ๏ผๅๆ่ฟๆฏๆ็ป๏ผ - ไธปๆไบบๅจ 15 ็งไนๅ ๆถๅฐ่ฟๆกๆถๆฏๅๅฐฑๅฏไปฅๆ นๆฎๅ ทไฝ็ปๆๅๆถๅผนๅบๅฑๅนถๆ็คบ็จๆทไบ
- ่ถ ่ฟ 15 ็งๆชๆถๅฐๅฏนๆนๅๅบๅๆญคๆฌก่ฝฌ่ฎฉไฟกๆฏๅคฑๆ
- ๆฅ็ฎกๆต็จ
- ๆฅ็ฎกๆต็จๅไธปๆไบบ่ฝฌ่ฎฉๆต็จๅคง่ดๅฝขๅผไธๆ ท๏ผๅชๆฏ server ไธๅ็ๆฏ
RCMic:takeOverHostMsg
็ฑปๅ็ๆถๆฏ๏ผๅ ถไธญ็ๅไธชๅญๆฎตๅไนๅ็ๆถๆฏๆไน้ฝ็ฑปไผผ
- ๆฅ็ฎกๆต็จๅไธปๆไบบ่ฝฌ่ฎฉๆต็จๅคง่ดๅฝขๅผไธๆ ท๏ผๅชๆฏ server ไธๅ็ๆฏ
- Android JetPack
- LifeCycles
- DataBinding
- LiveData
- Navigation
- ViewModel
- WorkManager
- Retrofit
- OkHttp
- Glide
- EventBus
โโโ app
โ โโโ build.gradle -------------------------------------------------- //ๆ นgradle
โ โโโ libs
โ โโโ proguard-rules.pro --------------------------------------------- //ๆททๆท่งๅ
โ โโโ src
โ โโโ main
โ โ โโโ AndroidManifest.xml ------------------------------------ //ๆณจๅ่กจ
โ โ โโโ assets
โ โ โ โโโ airport_gate1.mp3 ----------------------------------- //ๆบๅบไผด้ณ่ตๆบ
โ โ โ โโโ metro_entrance.mp3 ---------------------------------- //็ซ่ฝฆ็ซไผด้ณ่ตๆบ
โ โ โ โโโ rain_thunder1.mp3 ----------------------------------- //่ช็ถไผด้ณ่ตๆบ
โ โ โโโ java
โ โ โ โโโ cn
โ โ โ โโโ rongcloud
โ โ โ โโโ sealmicandroid
โ โ โ โโโ MainActivity.java ----------------------- //้กน็ฎ็้ขๆปๅฎนๅจ
โ โ โ โโโ SealMicApp.java ------------------------- //้กน็ฎapplication
โ โ โ โโโ bean
โ โ โ โ โโโ BgAudioBean.java -------------------- //ไผด้ณ้้กน่งฃๆ็ฑป
โ โ โ โ โโโ SendSuperGiftBean.java ------โโ------ //่ถ
็บง็คผ็ฉ่งฃๆ็ฑป
โ โ โ โ โโโ kv --------------------------------- //KVๅญๅจๅทฅๅ
ท็ธๅ
ณ็bean
โ โ โ โ โ โโโ AppliedMicListBean.java --------- //KVไธญๆ้บฆๅ่กจๆดๆฐ่งฃๆ็ฑป
โ โ โ โ โ โโโ KvExtraBean.java ---------------- //KVไธญextraๅญๆฎต่งฃๆ็ฑป
โ โ โ โ โ โโโ MicBean.java -------------------- //KVไธญ้บฆไฝ่งฃๆ็ฑป
โ โ โ โ โ โโโ SpeakBean.java ------------------ //KVไธญ่ฎฒ่ฏ็ถๆ่งฃๆ็ฑป
โ โ โ โ โโโ local
โ โ โ โ โ โโโ BgmBean.java -------------------- //ไผด้ณ
โ โ โ โ โโโ repo ------------------------------- //ๆฅๅฃๅๅบไฝ
โ โ โ โ โ โโโ CreateRoomRepo.java ------------- //ๅๅปบๆฟ้ดresponse
โ โ โ โ โ โโโ NetResult.java ------------------ //็ฝ็ป่ฏทๆฑ่ฟๅ็ๅ
ฌๅ
ฑresponse
โ โ โ โ โ โโโ RefreshTokenRepo.java ----------- //ๅทๆฐtokenๆฅๅฃresponse
โ โ โ โ โ โโโ RoomDetailRepo.java ------------- //ๆฟ้ด่ฏฆๆ
response
โ โ โ โ โ โโโ RoomListRepo.java --------------- //ๆฟ้ดๅ่กจresponse
โ โ โ โ โ โโโ RoomMemberRepo.java ------------- //่ทๅๆฟ้ดๆๅresponse
โ โ โ โ โ โโโ UserLoginRepo.java -------------- //็จๆท็ปๅฝresponse
โ โ โ โ โ โโโ VersionCheckRepo.java ----------- //็ๆฌๆดๆฐresponse
โ โ โ โ โ โโโ VisitorLoginRepo.java ----------- //ๆธธๅฎข็ปๅฝresponse
โ โ โ โ โโโ req -------------------------------- //ๆฅๅฃ่ฏทๆฑไฝ
โ โ โ โ โโโ CreateRoomReq.java -------------- //ๅๅปบๆฟ้ดrequest
โ โ โ โ โโโ MessageBroadCastReq.java -------- //่ถ
็บง็คผ็ฉๆถๆฏๅนฟๆญrequest
โ โ โ โ โโโ MicAcceptReq.java --------------- //ๅๆ็จๆทไธ้บฆrequest
โ โ โ โ โโโ MicApplyReq.java ---------------- //็จๆท็ณ่ฏทๆ้บฆrequest
โ โ โ โ โโโ MicQuitReq.java ----------------- //ไธปๆญไธ้บฆrequest
โ โ โ โ โโโ MicStateReq.java ---------------- //้บฆไฝ็ถๆ่ฏทๆฑrequest
โ โ โ โ โโโ MicTransferHostReq.java --------- //ๆ็ป่ฝฌ่ฎฉไธปๆไบบrequest
โ โ โ โ โโโ MicTransferHostResultReq.java --- //ๅๆ่ฝฌ่ฎฉไธปๆไบบrequest
โ โ โ โ โโโ RoomBanUserReq.java ------------- //็จๆท็ฆ่จ่ฎพ็ฝฎrequest
โ โ โ โ โโโ RoomKickUserReq.java ------------ //ๅฐ็จๆท่ธขๅบๆฟ้ดrequest
โ โ โ โ โโโ RoomSettingReq.java ------------- //ๆฟ้ด่ฎพ็ฝฎrequest
โ โ โ โ โโโ SendCodeReq.java ---------------- //ๅ้็ญไฟก้ช่ฏ็ request
โ โ โ โ โโโ UserInfoReq.java ---------------- //็จๆทไฟกๆฏrequest
โ โ โ โ โโโ UserLoginReq.java --------------- //็จๆท็ปๅฝrequest
โ โ โ โ โโโ VisitorLoginReq.java ------------ //ๆธธๅฎข็ปๅฝrequest
โ โ โ โโโ common
โ โ โ โ โโโ Event.java -------------------------- //ไบไปถๆป็บฟEventBusไบไปถ็ฑป
โ โ โ โ โโโ MicState.java ----------------------- //้บฆไฝ็ถๆๆไธพ
โ โ โ โ โโโ NetStateLiveData.java --------------- //็ฝ็ป่ฏทๆฑๅฏนๅบ็ๅๅบ็ถๆ็ๅฎๅถ็LiveData
โ โ โ โ โโโ SealMicResultCallback.java ---------- //ๅ
จๅฑ็ปๆๅ่ฐ
โ โ โ โ โโโ UserType.java ----------------------- //็จๆท็ฑปๅ
โ โ โ โ โโโ adapter
โ โ โ โ โ โโโ AudioDialogAdapter.java --------- //ๅฃฐ้ณadapter๏ผ็ฎๅๅชๅ
ๆฌไผด้ณ
โ โ โ โ โ โโโ BaseDialogListAdapter.java ------ //dialogๅ่กจ้้
ๅจ
โ โ โ โ โ โโโ ButtonBaseDialogAdapter.java ---- //ๆ้ฎ้ฃๆ ผ็dialogๅ่กจ
โ โ โ โ โ โโโ ExtensionClickListenerAdapter.java//่พๅ
ฅๆกadapter๏ผ้้
ๅจๆจกๅผ
โ โ โ โ โ โโโ GiftDialogAdapter.java ---------- //็คผ็ฉdialog adapter
โ โ โ โ โ โโโ LiveDataCallAdapter.java -------- //retrofit่ฟๅ็็ปๆ็ฑๅ็็call่ฝฌไธบLiveData
โ โ โ โ โ โโโ RTCEventsListenerAdapter.java --- //RTCๅ ๅ
ฅๆฟ้ดๅฏนๅบ็ๅ่ฐ้้
ๅจ
โ โ โ โ โ โโโ SendMessageAdapter.java --------- //ๆถๆฏ้่พพๅ่ฐๅฏนๅบ็้้
ๅจ
โ โ โ โ โ โโโ SwitchBaseDialogAdapter.java ---- //ๅๆขๅผๅ
ณ้ฃๆ ผ็dialogๅ่กจ
โ โ โ โ โ โโโ TextWatcherAdapter.java --------- //editๅฎ่ง้้
ๅจ๏ผ้้
ๅจๆจกๅผ๏ผๅ
ๅซ3ไธช้ฉๅญๆนๆณ
โ โ โ โ โโโ constant
โ โ โ โ โ โโโ ErrorCode.java ------------------ //ๅ่ทฏๅ่ฐไธญ็ไธไบ้็จ้่ฏฏ็ ๆไธพ
โ โ โ โ โ โโโ MainLoadData.java --------------- //้ฆ้กตๆฐๆฎๆๅๆนๅผๆไธพ
โ โ โ โ โ โโโ RoomMemberStatus.java ----------- //ๆฟ้ดไธญ็ๆๅ(่งไผ)็ถๆๆไธพ
โ โ โ โ โ โโโ SealMicConstant.java ------------ //ๆฌๅบ็จๅ
จๅฑๅธธ้
โ โ โ โ โ โโโ SealMicErrorMsg.java ------------ //ๆฅๅฃๅ่ฐ้่ฏฏ็ ๅToastๆ็คบไฟกๆฏๆไธพ
โ โ โ โ โ โโโ UserRoleType.java --------------- //็จๆท่ง่ฒๆไธพ
โ โ โ โ โโโ divider
โ โ โ โ โ โโโ GridItemDecoration.java --------- //grid็ฝๆ ผๅ่กจไธๅๅๅๅธitem
โ โ โ โ โโโ factory
โ โ โ โ โ โโโ CommonViewModelFactory.java ----- //ViewModelไผ ๅๆ้ ๅจ
โ โ โ โ โ โโโ LiveDataCallFactory.java -------- //retrofit่ฟๅ็็ปๆ็ฑๅ็็call่ฝฌไธบLiveData๏ผๅฏนๅบ็้้
ๅจๅทฅๅ
โ โ โ โ โ โโโ dialog -------------------------- //้กต้ขๅผน็ช็ไบงๅทฅๅ
โ โ โ โ โ โโโ BgBaseAudioDialogFactory.java //ไผด้ณdialog ๅทฅๅ
โ โ โ โ โ โโโ ChangeBaseAudioDialogFactory.java //ๅๅฃฐdialogๅทฅๅ
โ โ โ โ โ โโโ ClickMessageDialogFactory.java //็นๅปๆถๆฏๅ่กจๅผนๅบ็ dialog ๅทฅๅ
โ โ โ โ โ โโโ GiftDialogFactory.java ------- //็คผ็ฉdialogๅทฅๅ
โ โ โ โ โ โโโ HandOverHostDialogFactory.java //่ฝฌ่ฎฉไธปๆไบบๅผน็ช
โ โ โ โ โ โโโ MicAudienceFactory.java ------ //่งไผ็นๅปๆไบบๆถ็้บฆไฝๆถ่งฆๅ
โ โ โ โ โ โโโ MicConnectDialogFactory.java - //ๅฝ่ฟ้บฆ่
็นๅป่ชๅทฑๆถๅผนๅบ็dialog
โ โ โ โ โ โโโ MicConnectTakeOverDialogFactory.java //่ฟ้บฆ่
็นๅปไธปๆไบบ้บฆไฝ๏ผไธไธปๆไบบ้บฆไฝๆไบบๆถๆๅฏนๅบๅผนๅบ็dialog
โ โ โ โ โ โโโ MicDialogFactory.java -------- //ๅผนๅบ้บฆไฝ็ dialog ๅทฅๅ
โ โ โ โ โ โโโ MicEnqueueDialogFactory.java - //ๆ้บฆdialog
โ โ โ โ โ โโโ MicSettingDialogFactory.java - //้บฆไฝ่ฎพ็ฝฎdialog
โ โ โ โ โ โโโ RoomMemberManagerDialogFactory.java //ๆฟ้ดๆๅ็ฎก็ๅผน็ช
โ โ โ โ โ โโโ RoomNoticeDialogFactory.java - //ๆฟ้ดๅ
ฌๅdialog ๅทฅๅ
โ โ โ โ โ โโโ RoomSettingDialogFactory.java //ไธปๆไบบ่ฎพ็ฝฎๅผน็ช
โ โ โ โ โ โโโ SelectedGiftDialogFactory.java //้ไธญ็็คผ็ฉๅ็dialog
โ โ โ โ โ โโโ TakeOverHostDialogFactory.java //ๆฅ็ฎกไธปๆไบบๅผน็ช
โ โ โ โ โ โโโ base
โ โ โ โ โ โโโ BaseAudioDialogFactory.java //ๅฃฐ้ณdialogๅทฅๅ
โ โ โ โ โ โโโ BottomDialogFactory.java -- //ไปๅบ้จๅผนๅบ็dialog
โ โ โ โ โ โโโ CenterDialogFactory.java -- //ไปไธญ้จๅผนๅบ็dialog
โ โ โ โ โ โโโ FullDialogFactory.java ---- //ๅ ๆฎๅ
จๅฑ็dialog
โ โ โ โ โ โโโ SealMicDialogFactory.java - //dialog็ๆๅทฅๅ๏ผ้็จๅทฅๅๆนๆณๆจกๅผ
โ โ โ โ โโโ lifecycle ----------------------------- //่ๅคฉๅฎค้กต้ขๅไธป้กต้ข็ๅฝๅจๆ็ๅฌ
โ โ โ โ โ โโโ MainObserver.java ----------------- //ไธป็้ข่งๅฏ่
โ โ โ โ โ โโโ RoomObserver.java ----------------- //่ๅคฉๅฎค่งๅฏ่
โ โ โ โ โโโ listener
โ โ โ โ โ โโโ OnChatRoomTopBarClickListener.java //่ๅคฉๅฎค้กถ้จๆก็นๅปไบไปถ
โ โ โ โ โ โโโ OnClickGiftListener.java ---------- //็นๅป็คผ็ฉๅฏนๅบ็็ๅฌๅจ
โ โ โ โ โ โโโ OnDialogButtonListClickListener.java //ๅ่กจๆ้ฎ็นๅป็ไบไปถ็ๅฌ
โ โ โ โ โ โโโ OnHandOverHostDialogClickListener.java //่ฝฌ่ฎฉไธปๆไบบdialog็นๅปไบไปถ
โ โ โ โ โ โโโ OnTakeOverHostDialogClickListener.java //ๆฅ็ฎกไธปๆไบบdialog็นๅปไบไปถ
โ โ โ โ โ โโโ RoomListItemOnClickListener.java //็นๅปๅ่กจ้กน็ๅฌ
โ โ โ โ โโโ service
โ โ โ โ โ โโโ RTCNotificationService.java ------- //RTCๅๆข่ณๅๅฐไนๅ้บฆๅ
้ฃ็ๅๅฐ้็ฅ
โ โ โ โ โโโ worker
โ โ โ โ โโโ RongWorker.java -------โโ---------- //WorkManagerๅๅงๅ็ฑป
โ โ โ โโโ im ---------------------------------------- //IMไบคไบๆจกๅ
โ โ โ โ โโโ IMClient.java ------------------------- //Rong IM ไธๅก็ธๅ
ณๅฐ่ฃ
โ โ โ โ โโโ message
โ โ โ โ โโโ HandOverHostMessage.java ---------- //ไธปๆไบบ่ฝฌ่ฎฉ้็ฅ่ชๅฎไนๆถๆฏ
โ โ โ โ โโโ KickMemberMessage.java ------------ //็จๆท่ขซ่ธขๅบๆฟ้ด้็ฅ่ชๅฎไนๆถๆฏ
โ โ โ โ โโโ RoomMemberChangedMessage.java ----- //ๆฟ้ดๆๅๅๅจ่ชๅฎไนๆถๆฏ
โ โ โ โ โโโ SendBroadcastGiftMessage.java ----- //่ถ
็บง็คผ็ฉๅนฟๆญ็่ชๅฎไนๆถๆฏ
โ โ โ โ โโโ SendGiftMessage.java -------------- //ๆฎ้็คผ็ฉ็่ชๅฎไนๆถๆฏ
โ โ โ โ โโโ SendGiftTag.java ------------------ //้ๅบไธๅ็็คผ็ฉๆถ็ๆไธพ๏ผไพ็
งๆญคๆฅๅฑ็คบไธๅ็ๅจ็ป
โ โ โ โ โโโ TakeOverHostMessage.java ---------- //ไธปๆไบบๆฅ็ฎก้็ฅ็่ชๅฎไนๆถๆฏ
โ โ โ โโโ manager
โ โ โ โ โโโ CacheManager.java --------------------- //็ผๅญ็ฎก็็ฑป๏ผไธป่ฆไฟๅญไธไบๆฌๅบ็จ็ๅ
ณ้ฎไฟกๆฏ่ณspๆไปถ
โ โ โ โ โโโ GlideManager.java --------------------- //Glideๅ ่ฝฝๅพ็็ฎก็็ฑป๏ผไธป่ฆๆฏๅฐ่ฃ
ไธไบ้็จ็ๅ ่ฝฝๅพ็็ๆนๆณ
โ โ โ โ โโโ NavOptionsRouterManager.java ---------- //้ป่ฎค็navigation่ทณ่ฝฌ้
็ฝฎ๏ผ้ป่ฎคFragmentไน้ด่ทณ่ฝฌๆถ็่ฝฌๅบๅจ็ป
โ โ โ โ โโโ RoomManager.java ---------------------- //ๆฟ้ด่ฟๅบใไธไธ้บฆใๆฟ้ดๅ
ๅ้ๆถๆฏ็ญๆ ธๅฟๆไฝ
โ โ โ โ โโโ ThreadManager.java -------------------- //็บฟ็จ็ฎก็็ฑป
โ โ โ โโโ model
โ โ โ โ โโโ AppModel.java ------------------------- //APP็ๆฌ็ฎก็ๆจกๅๆฐๆฎๅฑ(Mๅฑ)
โ โ โ โ โโโ MicModel.java ------------------------- //้บฆไฝๆจกๅๆฐๆฎๅฑ(Mๅฑ)
โ โ โ โ โโโ RoomModel.java ------------------------ //ๆฟ้ดๆจกๅๆฐๆฎๅฑ(Mๅฑ)
โ โ โ โ โโโ UserModel.java ------------------------ //็จๆทๆจกๅๆฐๆฎๅฑ(Mๅฑ)
โ โ โ โโโ net
โ โ โ โ โโโ SealMicUrl.java ----------------------- //seal mic ่ฏทๆฑๆฅๅฃๅฐๅ้ๅ
โ โ โ โ โโโ client
โ โ โ โ โ โโโ HttpClient.java ------------------- //็ฝ็ป่ฏทๆฑไธๆฐๆฎๅฑ(Mๅฑ)ๅฏนๆฅ็ฑป
โ โ โ โ โ โโโ RetrofitClient.java --------------- //็ฝ็ป่ฏทๆฑๅบ็ก้
็ฝฎ
โ โ โ โ โโโ service
โ โ โ โ โโโ AppService.java -โโโโ-------------- //APP็ๆฌ็ฎก็ๆจกๅๆฅๅฃๅฐ่ฃ
โ โ โ โ โโโ MicService.java ------------------- //้บฆไฝๆจกๅ่ฏทๆฑๅฐ่ฃ
โ โ โ โ โโโ RoomService.java ------------------ //ๆฟ้ดๆจกๅ่ฏทๆฑๅฐ่ฃ
โ โ โ โ โโโ UserService.java ------------------ //็จๆทๆจกๅ่ฏทๆฑๅฐ่ฃ
โ โ โ โโโ rtc --------------------------------------- //RTCไบคไบๆจกๅ
โ โ โ โ โโโ DebugInfoAdapter.java ----------------- //Debugๆจกๅผๆพ็คบ
โ โ โ โ โโโ RTCClient.java ------------------------ //Rong RTC ่ฏญ้ณไธๅกๅฐ่ฃ
โ โ โ โโโ ui ---------------------------------------- //ๆๆ็UI็้ข
โ โ โ โ โโโ login --------------------------------- //็ปๅฝ
โ โ โ โ โ โโโ LoginFragment.java ---------------- //็ปๅฝ็้ข
โ โ โ โ โ โโโ LoginViewModel.java
โ โ โ โ โโโ main ---------------------------------- //ไธป็้ข
โ โ โ โ โ โโโ AppVersionViewModel.java ---------- //ๆฃๆฅ็ๆฌๆดๆฐVM
โ โ โ โ โ โโโ MainFragment.java
โ โ โ โ โ โโโ MainViewModel.java
โ โ โ โ โโโ room ---------------------------------- //่ๅคฉๅฎค
โ โ โ โ โ โโโ ChatRoomFragment.java
โ โ โ โ โ โโโ ChatRoomViewModel.java
โ โ โ โ โ โโโ CreateRoomFragment.java ----------- //ๅๅปบๆฟ้ด
โ โ โ โ โ โโโ CreateRoomViewModel.java
โ โ โ โ โ โโโ adapter
โ โ โ โ โ โ โโโ BanMemberFragment.java -------- //็ฆ่จๅ่กจ้กต้ข
โ โ โ โ โ โ โโโ BanMicAdapter.java
โ โ โ โ โ โ โโโ ChatRoomRefreshAdapter.java
โ โ โ โ โ โ โโโ EnqueueFragment.java ---------- //ๆ้บฆๅ่กจ้กต้ข
โ โ โ โ โ โ โโโ EnqueueMicAdapter.java
โ โ โ โ โ โ โโโ OnLineMemberFragment.java ----- //ๅจ็บฟๅ่กจ้กต้ข
โ โ โ โ โ โ โโโ OnlineRoomMemberAdapter.java
โ โ โ โ โ โ โโโ RoomChatListAdapter.java
โ โ โ โ โ โ โโโ RoomChatMessageListAdapter.java //่ๅคฉๅฎคๆถๆฏๅ่กจadapter๏ผListview
โ โ โ โ โ โ โโโ RoomMemberManagerDialogAdapter.java //ๆฟ้ดๆๅ็ฎก็viewpager2ๅฏนๅบ็adapter
โ โ โ โ โ โโโ member
โ โ โ โ โ โโโ RoomMemberFragment.java ------- //ๆฟ้ด่งไผๆๅ็ฎก็
โ โ โ โ โ โโโ RoomMemberViewModel.java
โ โ โ โ โโโ splash -------------------------------- //ๅผๅฑ้กต
โ โ โ โ โ โโโ SplashFragment.java
โ โ โ โ โ โโโ SplashViewModel.java
โ โ โ โ โโโ widget -------------------------------- //่ชๅฎไนๆงไปถ
โ โ โ โ โโโ ChatRoomTopBar.java --------------- //่ๅคฉๅฎค้กถ้จๆก
โ โ โ โ โโโ CustomDynamicAvatar.java ---------- //ๅฑ็คบ้บฆไฝ็ๆงไปถ๏ผๅ
ๆฌ่ฏด่ฏๆถ็ๅจ็ป
โ โ โ โ โโโ CustomTextView.java
โ โ โ โ โโโ CustomTitleBar.java
โ โ โ โ โโโ DynamicAvatarView.java ------------ //้บฆไฝๆงไปถ
โ โ โ โ โโโ ListItemSwitchButton.java
โ โ โ โ โโโ MicTextLayout.java ---------------- //่ชๅฎไน้บฆไฝๆพ็คบ็จๆทๅ็งฐ็็ปๅๆงไปถ
โ โ โ โ โโโ RoundRectImageView.java ----------- //่ชๅฎไน็ๅ่งๆญฃๆนๅฝขImageView๏ผๅฏไปฅ็ดๆฅๅฝ็ปไปถๅจๅธๅฑไธญไฝฟ็จใ
โ โ โ โ โโโ SwitchButton.java ----------------- //็ถๆๅๆขๆ้ฎ
โ โ โ โโโ util -------------------------------------- //้็จๅทฅๅ
ท็ฑป
โ โ โ โโโ BitmapUtil.java
โ โ โ โโโ ButtonDelayUtil.java
โ โ โ โโโ ColorUtil.java
โ โ โ โโโ DeviceUtil.java
โ โ โ โโโ DisplayUtil.java
โ โ โ โโโ HeadsetUtil.java
โ โ โ โโโ KeyBoardUtil.java
โ โ โ โโโ PatternUtil.java
โ โ โ โโโ RandomUtil.java
โ โ โ โโโ SPUtil.java
โ โ โ โโโ SystemUtil.java
โ โ โ โโโ ToastUtil.java
โ โ โ โโโ ToolBarUtil.java
โ โ โ โโโ log ----------------------------------- //ๅ
จๅฑๆฅๅฟ็ฑป
โ โ โ โโโ ISLog.java
โ โ โ โโโ SLog.java
โ โ โ โโโ SimpleDebugSLog.java
โ โ โโโ res ------------------------------------------------------- //่ตๆบๅ่กจ
โ โ โโโ anim
โ โ โโโ drawable
โ โ โโโ drawable-v24
โ โ โโโ layout
โ โ โโโ mipmap-anydpi-v26
โ โ โโโ mipmap-hdpi
โ โ โโโ mipmap-mdpi
โ โ โโโ mipmap-xhdpi
โ โ โโโ mipmap-xxhdpi
โ โ โโโ mipmap-xxxhdpi
โ โ โโโ navigation -------------------------------------------- //navigationๅฏผ่ชๅพ
โ โ โ โโโ nav_main.xml -------------------------------------- //ๆดไธชๅบ็จ็้กต้ข่ทณ่ฝฌๅ
ณ็ณป
โ โ โโโ values
โ โ โโโ attrs.xml
โ โ โโโ colors.xml
โ โ โโโ dimens.xml
โ โ โโโ strings.xml
โ โ โโโ styles.xml
โโโ build.gradle ---------------------------------------------------------- //appไธ็gradle
โโโ gradle ---------------------------------------------------------------- //gradle็ๆฌไฟกๆฏ
โ โโโ wrapper
โ โโโ gradle-wrapper.jar
โ โโโ gradle-wrapper.properties
โโโ gradle.properties ----------------------------------------------------- //ๅจๆๅๅๆฐ้
็ฝฎ้กน๏ผไปฅๅ่ฎพ็ฝฎ่ไบๅๅ
ถไปไธๆน็AppKey
โโโ gradlew
โโโ gradlew.bat
โโโ local.properties
โโโ settings.gradle ------------------------------------------------------- //ๅๆฐๆๅปบๆถ็ๆงๅถๅฐ่พๅบ้กน
- ๅฝๅ็ๆฌไธv1.2.0(ไธๅซv1.2.0)ไนๅ็็ๆฌไธๅ ผๅฎน
- ๅ ณไบ Android IM ๅณๆถ้่ฎฏ SDK ็ ๅผๅๆๅ
- ๅ ณไบ Android ้ณ่ง้ข้่ฎฏ SDK ็ ๅผๅๆๅ
- SealMic Server ๆบ็ ๅฏไปฅๅ่่ฟ้
- ๅฆๆๅ็ฐไบ็คบไพไปฃ็ ็ bug, ๆฌข่ฟๆไบค issue
- ๅฆๆๆๅฎๅๅจ่ฏข้ฎ้ข, ๅฏไปฅๆจๆ 13161856839 ่ฟ่กๅจ่ฏขใ