├── .gitignore
├── .idea
├── encodings.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── attachment
├── chat-show.gif
├── push-universe.png
├── qq_qrcode_universe_push.jpg
├── qr-chat.png
├── vue-chat-audio.png
├── vue-chat-video.png
└── vue-chat.png
├── avenginekit
├── avenginekit.aar
└── build.gradle
├── build.gradle
├── chat
├── .gitignore
├── build.gradle
├── libs
│ ├── TencentLocationSDK_v4.9.7.12_r247861_161205_1104.jar
│ ├── TencentMapSDK_Raster_v_1.2.7_51ae0e7.jar
│ ├── TencentSearch1.1.3.jar
│ ├── armeabi-v7a
│ │ └── libtencentloc.so
│ ├── joda-time-2.5-sources.jar
│ ├── joda-time-2.5.jar
│ ├── pinyin4j-2.5.0.jar
│ └── x86
│ │ └── libtencentloc.so
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ └── sticker
│ │ ├── B数.png
│ │ ├── B数
│ │ ├── B数,没有,我很膨胀.png
│ │ ├── 你以前不是这样子的.jpg
│ │ ├── 委屈地哭了起来.jpg
│ │ ├── 宝宝委屈,但宝宝不说.jpg
│ │ ├── 宝宝委屈,宝宝心里苦,宝宝不说.jpg
│ │ ├── 宝宝心里苦,但宝宝说了.png
│ │ ├── 心里没有一点B数吗.jpg
│ │ ├── 心里难道没有一点B数吗.jpg
│ │ ├── 有没有B数,你心里没有点B数吗.png
│ │ ├── 本宝宝不开心了,本宝宝有小情绪了.jpeg
│ │ └── 自己心里没有一点B数吗.jpg
│ │ ├── 程序员.jpg
│ │ └── 程序员
│ │ ├── 666.jpg
│ │ ├── Android培训.png
│ │ ├── Android开发没人要了.jpg
│ │ ├── MySQL从删库到跑路.gif
│ │ ├── java培训.jpg
│ │ ├── 万能.jpg
│ │ ├── 代码狗.jpg
│ │ ├── 佛祖保佑,永无BUG.png
│ │ ├── 你他妈脑袋有bug.jpg
│ │ ├── 你们如果还不去写代码我就开枪了.jpg
│ │ ├── 你们尽管培训。找到工作算我输.jpg
│ │ ├── 你又在偷偷写bug.jpg
│ │ ├── 你就是打死我,我也不改这个bug.png
│ │ ├── 全能.jpg
│ │ ├── 写个J8代码,老子不干了.gif
│ │ ├── 写个屁的代码.jpg
│ │ ├── 冻成狗.jpg
│ │ ├── 别跑,回来把代码写完.gif
│ │ ├── 加班.gif
│ │ ├── 劳资再也不写代码了.gif
│ │ ├── 吃我一招.jpg
│ │ ├── 同志快醒醒,你还有一串代码提示错误,起来改改.jpg
│ │ ├── 呦,写bug呢.jpg
│ │ ├── 咱喝杯Java冷静下.jpg
│ │ ├── 回去写代码,谁让你跑出来装逼的,看我不打死你.jpg
│ │ ├── 土豪老板.jpg
│ │ ├── 在你们聊天的时候,我已经写了好几万行代码了.gif
│ │ ├── 垃圾QQ,毁我青春,颓我精神,耗我钱财.gif
│ │ ├── 垃圾语言,毁我青春.gif
│ │ ├── 垃圾软件,毁我青春.gif
│ │ ├── 大佬三连.png
│ │ ├── 如果把面试官唬住了就要50k,没唬住就要5k.png
│ │ ├── 对方不想和你说话,并向你抛出了一个异常.jpg
│ │ ├── 对方不想跟你说话,并向你扔了一份鸟哥语录.jpg
│ │ ├── 对方不理你的异常,当你面关闭了程序.png
│ │ ├── 对方向你丢了一堆神秘代码,可是你却不能复制.jpg
│ │ ├── 就是他,一行代码,报三个错.jpg
│ │ ├── 我只是个小安卓.jpg
│ │ ├── 我可能是个假程序员.jpg
│ │ ├── 我在敲代码.jpg
│ │ ├── 我来写代码了.jpg
│ │ ├── 我还能写代码.png
│ │ ├── 打杂.jpg
│ │ ├── 扫码改需求.jpg
│ │ ├── 把钱还给我,我不学Java了.jpg
│ │ ├── 敲代码.gif
│ │ ├── 流下了没技术的泪水.jpg
│ │ ├── 电脑狗.jpg
│ │ ├── 真正隐世的高手程序员.jpg
│ │ ├── 码农和产品经理的区别.jpg
│ │ ├── 程序写完了吗.jpg
│ │ ├── 程序员思维.jpg
│ │ ├── 程序猿的日常.jpg
│ │ ├── 程序猿的标配.jpg
│ │ ├── 空指针异常.jpg
│ │ ├── 算我求你的,你特么去写代码好不好.jpg
│ │ ├── 编程5分钟,扯淡2小时.png
│ │ ├── 自己上网查.gif
│ │ ├── 谁TM改了我代码.jpg
│ │ ├── 达内培训.jpg
│ │ ├── 那么好用的框架,还不赶紧来Star.jpg
│ │ ├── 零错误,零等待.jpg
│ │ └── 骚年出招吧,哥让你三行代码.jpg
│ ├── java
│ └── cn
│ │ └── wildfire
│ │ └── chat
│ │ ├── app
│ │ ├── BaseApp.java
│ │ ├── Config.java
│ │ ├── MyApp.java
│ │ ├── login
│ │ │ ├── LoginActivity.java
│ │ │ ├── SMSLoginActivity.java
│ │ │ └── model
│ │ │ │ ├── LoginResult.java
│ │ │ │ └── PCSession.java
│ │ ├── main
│ │ │ ├── DiscoveryFragment.java
│ │ │ ├── HomeFragmentPagerAdapter.java
│ │ │ ├── MainActivity.java
│ │ │ ├── MeFragment.java
│ │ │ ├── PCLoginActivity.java
│ │ │ └── SplashActivity.java
│ │ └── third
│ │ │ └── location
│ │ │ ├── data
│ │ │ └── LocationData.java
│ │ │ ├── readme.md
│ │ │ ├── ui
│ │ │ ├── activity
│ │ │ │ ├── MyLocationActivity.java
│ │ │ │ └── ShowLocationActivity.java
│ │ │ ├── base
│ │ │ │ ├── BaseActivity.java
│ │ │ │ └── BasePresenter.java
│ │ │ ├── presenter
│ │ │ │ └── MyLocationAtPresenter.java
│ │ │ └── view
│ │ │ │ └── IMyLocationAtView.java
│ │ │ └── viewholder
│ │ │ └── LocationMessageContentViewHolder.java
│ │ └── kit
│ │ ├── ChatManagerHolder.java
│ │ ├── ConfigEventViewModel.java
│ │ ├── Event.java
│ │ ├── IMServiceStatusViewModel.java
│ │ ├── WfcBaseActivity.java
│ │ ├── WfcGlideModule.java
│ │ ├── WfcIntent.java
│ │ ├── WfcNotificationManager.java
│ │ ├── WfcScheme.java
│ │ ├── WfcUIKit.java
│ │ ├── WfcWebViewActivity.java
│ │ ├── annotation
│ │ ├── ConversationContextMenuItem.java
│ │ ├── ConversationInfoType.java
│ │ ├── EnableContextMenu.java
│ │ ├── ExtContextMenuItem.java
│ │ ├── LayoutRes.java
│ │ ├── MessageContentType.java
│ │ ├── MessageContextMenuItem.java
│ │ ├── ReceiveLayoutRes.java
│ │ ├── SendLayoutRes.java
│ │ └── StatusNotificationType.java
│ │ ├── audio
│ │ ├── AudioPlayManager.java
│ │ ├── AudioRecorder.java
│ │ ├── AudioRecorderPanel.java
│ │ └── IAudioPlayListener.java
│ │ ├── channel
│ │ ├── CategoryAdapter.java
│ │ ├── ChannelInfoActivity.java
│ │ ├── ChannelListActivity.java
│ │ ├── ChannelListAdapter.java
│ │ ├── ChannelListFragment.java
│ │ ├── ChannelViewModel.java
│ │ ├── CreateChannelActivity.java
│ │ ├── CreateChannelFragment.java
│ │ ├── SearchChannelActivity.java
│ │ └── viewholder
│ │ │ ├── CategoryViewHolder.java
│ │ │ └── ChannelViewHolder.java
│ │ ├── chatroom
│ │ ├── ChatRoomListActivity.java
│ │ ├── ChatRoomListFragment.java
│ │ └── ChatRoomViewModel.java
│ │ ├── common
│ │ ├── AppScopeViewModel.java
│ │ └── OperateResult.java
│ │ ├── contact
│ │ ├── BaseContactFragment.java
│ │ ├── ContactAdapter.java
│ │ ├── ContactFragment.java
│ │ ├── ContactViewModel.java
│ │ ├── model
│ │ │ ├── ContactCountFooterValue.java
│ │ │ ├── FooterValue.java
│ │ │ ├── FriendRequestValue.java
│ │ │ ├── GroupValue.java
│ │ │ ├── HeaderValue.java
│ │ │ └── UIUserInfo.java
│ │ ├── newfriend
│ │ │ ├── FriendRequestListActivity.java
│ │ │ ├── FriendRequestListAdapter.java
│ │ │ ├── FriendRequestListFragment.java
│ │ │ ├── FriendRequestViewHolder.java
│ │ │ ├── InviteFriendActivity.java
│ │ │ ├── SearchUserActivity.java
│ │ │ └── SearchUserFragment.java
│ │ ├── pick
│ │ │ ├── CheckableContactAdapter.java
│ │ │ ├── PickContactFragment.java
│ │ │ ├── PickContactViewModel.java
│ │ │ ├── PickConversationTargetActivity.java
│ │ │ ├── PickConversationTargetFragment.java
│ │ │ ├── PickGroupViewModel.java
│ │ │ ├── SearchAndPickContactFragment.java
│ │ │ └── viewholder
│ │ │ │ ├── CheckableContactViewHolder.java
│ │ │ │ └── PickGroupViewHolder.java
│ │ └── viewholder
│ │ │ ├── ContactViewHolder.java
│ │ │ ├── footer
│ │ │ ├── ContactCountViewHolder.java
│ │ │ └── FooterViewHolder.java
│ │ │ └── header
│ │ │ ├── ChannelViewHolder.java
│ │ │ ├── FriendRequestViewHolder.java
│ │ │ ├── GroupViewHolder.java
│ │ │ └── HeaderViewHolder.java
│ │ ├── conversation
│ │ ├── ChannelConversationInfoFragment.java
│ │ ├── ChatRoomConversationInfoFragment.java
│ │ ├── ConversationActivity.java
│ │ ├── ConversationInfoActivity.java
│ │ ├── ConversationInputPanel.java
│ │ ├── ConversationMemberAdapter.java
│ │ ├── ConversationMessageAdapter.java
│ │ ├── ConversationViewModel.java
│ │ ├── ConversationViewModelFactory.java
│ │ ├── CreateConversationActivity.java
│ │ ├── Draft.java
│ │ ├── GroupConversationInfoFragment.java
│ │ ├── SingleConversationInfoFragment.java
│ │ ├── ext
│ │ │ ├── ExampleAudioInputExt.java
│ │ │ ├── FileExt.java
│ │ │ ├── ImageExt.java
│ │ │ ├── LocationExt.java
│ │ │ ├── ShootExt.java
│ │ │ ├── VoipExt.java
│ │ │ └── core
│ │ │ │ ├── ConversationExt.java
│ │ │ │ ├── ConversationExtManager.java
│ │ │ │ ├── ConversationExtPageView.java
│ │ │ │ ├── ConversationExtPagerAdapter.java
│ │ │ │ └── ConversationExtension.java
│ │ ├── forward
│ │ │ ├── ForwardActivity.java
│ │ │ ├── ForwardAdapter.java
│ │ │ ├── ForwardFragment.java
│ │ │ ├── ForwardPromptView.java
│ │ │ ├── ForwardViewModel.java
│ │ │ ├── PickConversationTargetToForwardActivity.java
│ │ │ └── viewholder
│ │ │ │ ├── CategoryViewHolder.java
│ │ │ │ ├── ConversationViewHolder.java
│ │ │ │ └── CreateConversationViewHolder.java
│ │ ├── mention
│ │ │ ├── Mention.java
│ │ │ ├── MentionAllHeaderViewHolder.java
│ │ │ ├── MentionGroupMemberActivity.java
│ │ │ ├── MentionGroupMemberFragment.java
│ │ │ └── MentionSpan.java
│ │ ├── message
│ │ │ ├── model
│ │ │ │ └── UiMessage.java
│ │ │ └── viewholder
│ │ │ │ ├── AudioMessageContentViewHolder.java
│ │ │ │ ├── ExampleRichNotificationMessageContentViewHolder.java
│ │ │ │ ├── FileMessageContentViewHolder.java
│ │ │ │ ├── ImageMessageContentViewHolder.java
│ │ │ │ ├── LoadingViewHolder.java
│ │ │ │ ├── MediaMessageContentViewHolder.java
│ │ │ │ ├── MessageContentViewHolder.java
│ │ │ │ ├── MessageContextMenuItemTags.java
│ │ │ │ ├── MessageViewHolderManager.java
│ │ │ │ ├── NormalMessageContentViewHolder.java
│ │ │ │ ├── NotificationMessageContentViewHolder.java
│ │ │ │ ├── RecallMessageContentViewHolderSimple.java
│ │ │ │ ├── SimpleNotificationMessageContentViewHolder.java
│ │ │ │ ├── StickerMessageContentViewHolder.java
│ │ │ │ ├── TextMessageContentViewHolder.java
│ │ │ │ ├── UnkownMessageContentViewHolder.java
│ │ │ │ ├── VideoMessageContentViewHolder.java
│ │ │ │ └── VoipMessageViewHolder.java
│ │ └── todo.md
│ │ ├── conversationlist
│ │ ├── ConversationListAdapter.java
│ │ ├── ConversationListFragment.java
│ │ ├── ConversationListViewModel.java
│ │ ├── ConversationListViewModelFactory.java
│ │ ├── notification
│ │ │ ├── ConnectionStatusNotification.java
│ │ │ ├── PCOnlineNotification.java
│ │ │ ├── StatusNotification.java
│ │ │ ├── StatusNotificationManager.java
│ │ │ ├── StatusNotificationViewModel.java
│ │ │ └── viewholder
│ │ │ │ ├── ConnectionNotificationViewHolder.java
│ │ │ │ ├── PCOlineNotificationViewHolder.java
│ │ │ │ └── StatusNotificationViewHolder.java
│ │ └── viewholder
│ │ │ ├── ChannelConversationViewHolder.java
│ │ │ ├── ChatRoomConversationViewHolder.java
│ │ │ ├── ConversationContextMenuItemTags.java
│ │ │ ├── ConversationViewHolder.java
│ │ │ ├── ConversationViewHolderManager.java
│ │ │ ├── GroupConversationViewHolder.java
│ │ │ ├── SingleConversationViewHolder.java
│ │ │ └── StatusNotificationContainerViewHolder.java
│ │ ├── group
│ │ ├── AddGroupMemberActivity.java
│ │ ├── AddGroupMemberFragment.java
│ │ ├── BasePickGroupMemberActivity.java
│ │ ├── FavGroupViewModel.java
│ │ ├── GroupInfoActivity.java
│ │ ├── GroupListActivity.java
│ │ ├── GroupListAdapter.java
│ │ ├── GroupListFragment.java
│ │ ├── GroupMemberListActivity.java
│ │ ├── GroupMemberListFragment.java
│ │ ├── GroupViewHolder.java
│ │ ├── GroupViewModel.java
│ │ ├── OnGroupItemClickListener.java
│ │ ├── PickGroupMemberActivity.java
│ │ ├── PickGroupMemberFragment.java
│ │ ├── RemoveGroupMemberActivity.java
│ │ └── SetGroupNameActivity.java
│ │ ├── net
│ │ ├── Callback.java
│ │ ├── OKHttpHelper.java
│ │ ├── SimpleCallback.java
│ │ └── base
│ │ │ ├── ResultWrapper.java
│ │ │ └── StatusResult.java
│ │ ├── preview
│ │ ├── MMPreviewActivity.java
│ │ └── TakePhotoActivity.java
│ │ ├── qrcode
│ │ └── QRCodeActivity.java
│ │ ├── search
│ │ ├── OnResultItemClickListener.java
│ │ ├── ResultItemViewHolder.java
│ │ ├── SearchActivity.java
│ │ ├── SearchFragment.java
│ │ ├── SearchMessageActivity.java
│ │ ├── SearchPortalActivity.java
│ │ ├── SearchResult.java
│ │ ├── SearchResultAdapter.java
│ │ ├── SearchViewModel.java
│ │ ├── SearchableModule.java
│ │ ├── SearchableMudle.java
│ │ ├── module
│ │ │ ├── ChannelSearchModule.java
│ │ │ ├── ContactSearchModule.java
│ │ │ ├── ConversationMessageSearchModule.java
│ │ │ ├── ConversationSearchModule.java
│ │ │ └── GroupSearchViewModule.java
│ │ └── viewHolder
│ │ │ ├── CategoryViewHolder.java
│ │ │ ├── ChannelViewHolder.java
│ │ │ ├── ConversationViewHolder.java
│ │ │ ├── ExpandViewHolder.java
│ │ │ ├── GroupViewHolder.java
│ │ │ ├── MessageViewHolder.java
│ │ │ └── ResultItemViewHolder.java
│ │ ├── setting
│ │ ├── AboutActivity.java
│ │ └── SettingActivity.java
│ │ ├── third
│ │ └── utils
│ │ │ ├── FileUtils.java
│ │ │ ├── IOUtils.java
│ │ │ ├── ImageUtils.java
│ │ │ ├── TimeUtils.java
│ │ │ ├── UIUtils.java
│ │ │ └── readme.md
│ │ ├── user
│ │ ├── ChangeMyNameActivity.java
│ │ ├── SetAliasActivity.java
│ │ ├── UserInfoActivity.java
│ │ ├── UserInfoFragment.java
│ │ └── UserViewModel.java
│ │ ├── utils
│ │ ├── DownloadManager.java
│ │ ├── FileUtils.java
│ │ ├── PinyinUtils.java
│ │ ├── ServiceUtil.java
│ │ └── portrait
│ │ │ ├── CombineBitmapEntity.java
│ │ │ ├── CombineBitmapTools.java
│ │ │ └── CombineNineRect.java
│ │ ├── viewmodel
│ │ ├── ShareViewModelFactory.java
│ │ └── SharedViewModel.java
│ │ ├── voip
│ │ ├── AsyncPlayer.java
│ │ ├── AudioFragment.java
│ │ ├── CallStateEventListener.java
│ │ ├── FloatingVoipService.java
│ │ ├── SingleVoipCallActivity.java
│ │ └── VideoFragment.java
│ │ └── widget
│ │ ├── BubbleImageView.java
│ │ ├── CircularProgressBar.java
│ │ ├── FixedTextInputEditText.java
│ │ ├── HeaderFooterAdapter.java
│ │ ├── InputAwareLayout.java
│ │ ├── KeyboardAwareLinearLayout.java
│ │ ├── KeyboardHeightFrameLayout.java
│ │ ├── ProgressWebView.java
│ │ ├── QuickIndexBar.java
│ │ └── ViewPagerFixed.java
│ ├── res-av
│ ├── drawable-xhdpi
│ │ ├── av_camera.png
│ │ ├── av_camera_hover.png
│ │ ├── av_float_audio.png
│ │ ├── av_handfree.png
│ │ ├── av_handfree_hover.png
│ │ ├── av_hang_up.png
│ │ ├── av_hang_up_hover.png
│ │ ├── av_minimize.png
│ │ ├── av_mute.png
│ │ ├── av_mute_hover.png
│ │ ├── av_phone.png
│ │ ├── av_video_answer.png
│ │ └── av_video_answer_hover.png
│ ├── drawable
│ │ ├── av_float_bg.xml
│ │ ├── av_hangup_selector.xml
│ │ ├── av_mute_selector.xml
│ │ ├── av_speaker_selector.xml
│ │ ├── av_switch_camera_selector.xml
│ │ └── av_video_answer_selector.xml
│ ├── layout
│ │ ├── av_p2p_audio_incoming_action.xml
│ │ ├── av_p2p_audio_layout.xml
│ │ ├── av_p2p_audio_outgoing_connected_action.xml
│ │ ├── av_p2p_video_activity.xml
│ │ ├── av_p2p_video_connected_action.xml
│ │ ├── av_p2p_video_incoming_action.xml
│ │ ├── av_p2p_video_layout.xml
│ │ ├── av_p2p_video_outgoing_action.xml
│ │ └── av_voip_float_view.xml
│ └── values
│ │ └── strings.xml
│ └── res
│ ├── color
│ ├── bottom_nav_color.xml
│ └── menu_text_color.xml
│ ├── drawable-v21
│ ├── selector_common_item.xml
│ └── shape_session_func_press_bg.xml
│ ├── drawable
│ ├── audio_animation_left_list.xml
│ ├── audio_animation_right_list.xml
│ ├── bg_voice_popup.9.png
│ ├── bottom_contact_menu_selector.xml
│ ├── bottom_conversation_menu_selector.xml
│ ├── bottom_discovery_menu_selector.xml
│ ├── bottom_me_menu_selector.xml
│ ├── checkbox_style.xml
│ ├── corner_voice_style.xml
│ ├── ic_camera_enhance_black_24dp.xml
│ ├── ic_video.png
│ ├── img_bubble_receive.9.png
│ ├── img_bubble_send.9.png
│ ├── img_location_send.9.png
│ ├── ios_back_drawable.xml
│ ├── ios_thumb_selector.xml
│ ├── progressbar_webview.xml
│ ├── recyclerview_horizontal_divider.xml
│ ├── selector_edit_focus.xml
│ ├── selector_login_btn.xml
│ ├── selector_option_item.xml
│ ├── selector_session_func.xml
│ ├── shape_bottom_gray.xml
│ ├── shape_bottom_green.xml
│ ├── shape_btn_delete.xml
│ ├── shape_contact_letter_bg.xml
│ ├── shape_horizontal_line.xml
│ ├── shape_new_friend_agree.xml
│ ├── shape_notification_bg.xml
│ ├── shape_red_dot.xml
│ ├── shape_session_btn_send.xml
│ ├── shape_session_btn_voice_normal.xml
│ ├── shape_session_func_normal_bg.xml
│ ├── shape_session_func_press_bg.xml
│ ├── shape_user_info_add_to_contact.xml
│ ├── shape_user_info_send_msg.xml
│ └── shape_vertical_line.xml
│ ├── layout
│ ├── activity_about.xml
│ ├── activity_mm_preview.xml
│ ├── activity_splash.xml
│ ├── activity_take_photo.xml
│ ├── activity_webview.xml
│ ├── audio_popup_wi_vo.xml
│ ├── channel_create_fragment.xml
│ ├── channel_info_activity.xml
│ ├── channel_item.xml
│ ├── channel_item_category.xml
│ ├── channel_list_frament.xml
│ ├── chatroom_list_fragment.xml
│ ├── contact_contacts_fragment.xml
│ ├── contact_header_channel.xml
│ ├── contact_header_friend.xml
│ ├── contact_header_group.xml
│ ├── contact_invite_activity.xml
│ ├── contact_item_contact.xml
│ ├── contact_item_footer.xml
│ ├── contact_item_new_friend.xml
│ ├── contact_new_friend_fragment.xml
│ ├── contact_pick_fragment.xml
│ ├── contact_search_fragment.xml
│ ├── contact_search_user_fragment.xml
│ ├── contact_set_alias_activity.xml
│ ├── conversatioin_ext_example_layout.xml
│ ├── conversation_activity.xml
│ ├── conversation_ext_layout.xml
│ ├── conversation_header_mention_all.xml
│ ├── conversation_info_channel_fragment.xml
│ ├── conversation_info_group_fragment.xml
│ ├── conversation_info_single_fragment.xml
│ ├── conversation_input_panel.xml
│ ├── conversation_item_audio_receive.xml
│ ├── conversation_item_audio_send.xml
│ ├── conversation_item_file_send.xml
│ ├── conversation_item_image_receive.xml
│ ├── conversation_item_image_send.xml
│ ├── conversation_item_loading.xml
│ ├── conversation_item_location_send.xml
│ ├── conversation_item_member_info.xml
│ ├── conversation_item_message_container_receive.xml
│ ├── conversation_item_message_container_send.xml
│ ├── conversation_item_notification.xml
│ ├── conversation_item_notification_containr.xml
│ ├── conversation_item_sticker_receive.xml
│ ├── conversation_item_sticker_send.xml
│ ├── conversation_item_text_receive.xml
│ ├── conversation_item_text_send.xml
│ ├── conversation_item_unknown_receive.xml
│ ├── conversation_item_unknown_send.xml
│ ├── conversation_item_video_send.xml
│ ├── conversation_item_voip_receive.xml
│ ├── conversation_item_voip_send.xml
│ ├── conversationlist_frament.xml
│ ├── conversationlist_item_conversation.xml
│ ├── conversationlist_item_notification_connection_status.xml
│ ├── conversationlist_item_notification_container.xml
│ ├── conversationlist_item_notification_pc_online.xml
│ ├── forward_activity.xml
│ ├── forward_fragment.xml
│ ├── forward_item_category.xml
│ ├── forward_item_create_conversation.xml
│ ├── forward_item_recent_conversation.xml
│ ├── forward_prompt_dialog.xml
│ ├── fragment_container_activity.xml
│ ├── group_info_activity.xml
│ ├── group_list_fragment.xml
│ ├── group_set_name_activity.xml
│ ├── include_avatar.xml
│ ├── include_error.xml
│ ├── location_activity_my_location.xml
│ ├── location_activity_show_location.xml
│ ├── location_include_toolbar.xml
│ ├── location_item_location_poi.xml
│ ├── login_activity_account.xml
│ ├── login_activity_sms.xml
│ ├── main_activity.xml
│ ├── main_fragment_discovery.xml
│ ├── main_fragment_me.xml
│ ├── pc_login_activity.xml
│ ├── preview_photo.xml
│ ├── preview_video.xml
│ ├── qrcode_activity.xml
│ ├── search_item_category.xml
│ ├── search_item_conversation.xml
│ ├── search_item_expand.xml
│ ├── search_item_group.xml
│ ├── search_item_message.xml
│ ├── search_message_activity.xml
│ ├── search_message_result_fragment.xml
│ ├── search_portal_activity.xml
│ ├── search_result_fragment.xml
│ ├── setting_activity.xml
│ ├── toolbar.xml
│ ├── user_change_my_name_activity.xml
│ └── user_info_fragment.xml
│ ├── menu
│ ├── channel_create.xml
│ ├── channel_list.xml
│ ├── contact_friend_request.xml
│ ├── contact_invite.xml
│ ├── contact_pick.xml
│ ├── conversation.xml
│ ├── group_add_member.xml
│ ├── group_member_pick.xml
│ ├── group_remove_member.xml
│ ├── group_set_group_name.xml
│ ├── main.xml
│ ├── main_bottom_navigation.xml
│ ├── search_portal.xml
│ ├── search_user.xml
│ ├── user_change_my_name.xml
│ └── user_set_alias.xml
│ ├── mipmap-hdpi
│ ├── audio_animation_list_left_1.png
│ ├── audio_animation_list_left_2.png
│ ├── audio_animation_list_left_3.png
│ ├── audio_animation_list_right_1.png
│ ├── audio_animation_list_right_2.png
│ ├── audio_animation_list_right_3.png
│ ├── avatar_def.png
│ ├── bg_unread.png
│ ├── block_notification.png
│ ├── default_header.png
│ ├── default_location.png
│ ├── ic_account_setting.png
│ ├── ic_add.png
│ ├── ic_add_team_member.png
│ ├── ic_back.png
│ ├── ic_channel.png
│ ├── ic_cheat_add.png
│ ├── ic_cheat_emo.png
│ ├── ic_cheat_keyboard.png
│ ├── ic_cheat_voice.png
│ ├── ic_create_group_cheat.png
│ ├── ic_delete.png
│ ├── ic_file.png
│ ├── ic_friend_more.png
│ ├── ic_func_file.png
│ ├── ic_func_location.png
│ ├── ic_func_pic.png
│ ├── ic_func_shot.png
│ ├── ic_func_video.png
│ ├── ic_func_voice.png
│ ├── ic_gender_female.png
│ ├── ic_group_cheat.png
│ ├── ic_launcher.png
│ ├── ic_new_friend.png
│ ├── ic_notification.png
│ ├── ic_remove_team_member.png
│ ├── ic_search.png
│ ├── ic_search1.png
│ ├── ic_search3.png
│ ├── ic_sending.png
│ ├── ic_session_info.png
│ ├── ic_subscribe_chanel.png
│ ├── ic_volume_1.png
│ ├── ic_volume_2.png
│ ├── ic_volume_3.png
│ ├── ic_volume_4.png
│ ├── ic_volume_5.png
│ ├── ic_volume_6.png
│ ├── ic_volume_7.png
│ ├── ic_volume_8.png
│ ├── ic_volume_cancel.png
│ ├── ic_volume_wraning.png
│ ├── img_error.png
│ ├── img_video_default.png
│ ├── img_video_play_session.png
│ ├── list_selected.png
│ ├── list_unselected.png
│ ├── qr_code.png
│ └── splash.png
│ ├── mipmap-xxhdpi
│ ├── ah6.png
│ ├── arm.png
│ ├── checkbox_checked.png
│ ├── checkbox_checked_disable.png
│ ├── checkbox_normal_black.png
│ ├── contacts_normal.png
│ ├── contacts_press.png
│ ├── discovery_normal.png
│ ├── discovery_press.png
│ ├── ic_chatroom.png
│ ├── ic_launcher.png
│ ├── ic_robot.png
│ ├── ios_thumb.png
│ ├── ios_thumb_disable.png
│ ├── me_normal.png
│ ├── me_press.png
│ ├── message_normal.png
│ └── message_press.png
│ ├── raw
│ ├── incoming_call_ring.mp3
│ └── outgoing_call_ring.mp3
│ ├── values-v21
│ └── styles.xml
│ ├── values
│ ├── biv_attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
│ └── xml
│ └── provider_paths.xml
├── client
├── .gitignore
├── build.gradle
├── libs
│ └── push-nio-sdk-1.0.0-SNAPSHOT.jar
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── aidl
│ └── cn
│ │ └── wildfirechat
│ │ ├── client
│ │ ├── ICreateChannelCallback.aidl
│ │ ├── IGeneralCallback.aidl
│ │ ├── IGeneralCallback2.aidl
│ │ ├── IGeneralCallback3.aidl
│ │ ├── IGetChatRoomInfoCallback.aidl
│ │ ├── IGetChatRoomMembersInfoCallback.aidl
│ │ ├── IGetGroupInfoCallback.aidl
│ │ ├── IGetGroupsCallback.aidl
│ │ ├── IGetRemoteMessageCallback.aidl
│ │ ├── IOnChannelInfoUpdateListener.aidl
│ │ ├── IOnConnectionStatusChangeListener.aidl
│ │ ├── IOnFriendUpdateListener.aidl
│ │ ├── IOnGroupInfoUpdateListener.aidl
│ │ ├── IOnGroupMembersUpdateListener.aidl
│ │ ├── IOnReceiveMessageListener.aidl
│ │ ├── IOnSettingUpdateListener.aidl
│ │ ├── IOnUserInfoUpdateListener.aidl
│ │ ├── IRemoteClient.aidl
│ │ ├── ISearchChannelCallback.aidl
│ │ ├── ISearchUserCallback.aidl
│ │ ├── ISendMessageCallback.aidl
│ │ └── IUploadMediaCallback.aidl
│ │ ├── message
│ │ ├── Message.aidl
│ │ ├── MessageContent.aidl
│ │ └── core
│ │ │ └── MessagePayload.aidl
│ │ └── model
│ │ ├── ChannelInfo.aidl
│ │ ├── ChatRoomInfo.aidl
│ │ ├── ChatRoomMembersInfo.aidl
│ │ ├── Conversation.aidl
│ │ ├── ConversationInfo.aidl
│ │ ├── ConversationSearchResult.aidl
│ │ ├── FriendRequest.aidl
│ │ ├── GroupInfo.aidl
│ │ ├── GroupMember.aidl
│ │ ├── GroupSearchResult.aidl
│ │ ├── ModifyMyInfoEntry.aidl
│ │ ├── UnreadCount.aidl
│ │ └── UserInfo.aidl
│ ├── java
│ └── cn
│ │ └── wildfirechat
│ │ ├── ErrorCode.java
│ │ ├── UserSource.java
│ │ ├── alarm
│ │ ├── AlarmWrapper.java
│ │ ├── Schedule.java
│ │ ├── Schedules.java
│ │ └── Timer.java
│ │ ├── client
│ │ ├── AppLogic.java
│ │ ├── ClientService.java
│ │ ├── ConnectionStatus.java
│ │ └── NotInitializedExecption.java
│ │ ├── log
│ │ ├── FileLog.java
│ │ ├── GlobalLock.java
│ │ ├── Log.java
│ │ ├── LogWriter.java
│ │ ├── Logger.java
│ │ └── Package.java
│ │ ├── message
│ │ ├── CallStartMessageContent.java
│ │ ├── FileMessageContent.java
│ │ ├── ImageMessageContent.java
│ │ ├── ImageTextMessageContent.java
│ │ ├── LocationMessageContent.java
│ │ ├── MediaMessageContent.java
│ │ ├── Message.java
│ │ ├── MessageContent.java
│ │ ├── MessageContentMediaType.java
│ │ ├── SoundMessageContent.java
│ │ ├── StickerMessageContent.java
│ │ ├── TextMessageContent.java
│ │ ├── TypingMessageContent.java
│ │ ├── UnknownMessageContent.java
│ │ ├── VideoMessageContent.java
│ │ ├── core
│ │ │ ├── ContentTag.java
│ │ │ ├── MessageContentType.java
│ │ │ ├── MessageDirection.java
│ │ │ ├── MessagePayload.java
│ │ │ ├── MessageStatus.java
│ │ │ └── PersistFlag.java
│ │ └── notification
│ │ │ ├── AddGroupMemberNotificationContent.java
│ │ │ ├── ChangeGroupNameNotificationContent.java
│ │ │ ├── ChangeGroupPortraitNotificationContent.java
│ │ │ ├── ChatRoomWelcomeNotificationContent.java
│ │ │ ├── CreateGroupNotificationContent.java
│ │ │ ├── DismissGroupNotificationContent.java
│ │ │ ├── GroupNotificationMessageContent.java
│ │ │ ├── KickoffGroupMemberNotificationContent.java
│ │ │ ├── ModifyGroupAliasNotificationContent.java
│ │ │ ├── NotificationMessageContent.java
│ │ │ ├── QuitGroupNotificationContent.java
│ │ │ ├── RecallMessageContent.java
│ │ │ ├── TipNotificationContent.java
│ │ │ └── TransferGroupOwnerNotificationContent.java
│ │ ├── model
│ │ ├── ChannelInfo.java
│ │ ├── ChatRoomInfo.java
│ │ ├── ChatRoomMembersInfo.java
│ │ ├── Conversation.java
│ │ ├── ConversationInfo.java
│ │ ├── ConversationSearchResult.java
│ │ ├── FriendRequest.java
│ │ ├── GroupInfo.java
│ │ ├── GroupMember.java
│ │ ├── GroupSearchResult.java
│ │ ├── ModifyChannelInfoType.java
│ │ ├── ModifyGroupInfoType.java
│ │ ├── ModifyMyInfoEntry.java
│ │ ├── ModifyMyInfoType.java
│ │ ├── NullChannelInfo.java
│ │ ├── NullChatRoomInfo.java
│ │ ├── NullGroupInfo.java
│ │ ├── NullGroupMember.java
│ │ ├── NullUserInfo.java
│ │ ├── ProtoChannelInfo.java
│ │ ├── ProtoChatRoomInfo.java
│ │ ├── ProtoChatRoomMembersInfo.java
│ │ ├── ProtoConversationInfo.java
│ │ ├── ProtoConversationSearchresult.java
│ │ ├── ProtoFriendRequest.java
│ │ ├── ProtoGroupInfo.java
│ │ ├── ProtoGroupMember.java
│ │ ├── ProtoGroupSearchResult.java
│ │ ├── ProtoMessage.java
│ │ ├── ProtoMessageContent.java
│ │ ├── ProtoUnreadCount.java
│ │ ├── ProtoUserInfo.java
│ │ ├── UnreadCount.java
│ │ └── UserInfo.java
│ │ ├── proto
│ │ ├── AbstractProtoService.java
│ │ ├── AndroidLogger.java
│ │ ├── HeartbeatManager.java
│ │ ├── JavaProtoLogic.java
│ │ ├── ProtoConstants.java
│ │ ├── ProtoService.java
│ │ ├── WFCMessage.java
│ │ ├── handler
│ │ │ ├── AbstractMessageHandler.java
│ │ │ ├── AddFriendRequestHandler.java
│ │ │ ├── AddGroupMemberHandler.java
│ │ │ ├── ConnectAckMessageHandler.java
│ │ │ ├── CreateGroupHandler.java
│ │ │ ├── FriendPullHandler.java
│ │ │ ├── FriendRequestHandler.java
│ │ │ ├── GetMinioUploadUrlHandler.java
│ │ │ ├── GetUserInfoMessageHanlder.java
│ │ │ ├── GroupInfoHandler.java
│ │ │ ├── GroupMemberHandler.java
│ │ │ ├── HandlerFriendRequestHandler.java
│ │ │ ├── HeartbeatHandler.java
│ │ │ ├── KickoffMembersHandler.java
│ │ │ ├── MessageHandler.java
│ │ │ ├── ModifyGroupInfoHandler.java
│ │ │ ├── ModifyMyInfoHandler.java
│ │ │ ├── NotifyFriendHandler.java
│ │ │ ├── NotifyFriendRequestHandler.java
│ │ │ ├── NotifyMessageHandler.java
│ │ │ ├── QiniuTokenHandler.java
│ │ │ ├── QuitGroupHandler.java
│ │ │ ├── RecallMessageHandler.java
│ │ │ ├── RecallNotifyMessageHandler.java
│ │ │ ├── ReceiveMessageHandler.java
│ │ │ ├── RemoteMessageHandler.java
│ │ │ ├── RequestInfo.java
│ │ │ ├── SearchUserResultMessageHandler.java
│ │ │ └── SendMessageHandler.java
│ │ ├── model
│ │ │ ├── ConnectMessage.java
│ │ │ ├── MinioMessage.java
│ │ │ └── QiuTokenMessage.java
│ │ ├── store
│ │ │ ├── ChatStoreHelper.java
│ │ │ ├── DataStoreAdapter.java
│ │ │ ├── DataStoreFactory.java
│ │ │ ├── ImMemoryStore.java
│ │ │ ├── ImMemoryStoreImpl.java
│ │ │ ├── ProtoMessageDataStore.java
│ │ │ └── SqliteDatabaseStore.java
│ │ ├── upload
│ │ │ ├── ByteBody.java
│ │ │ ├── FileProgressBody.java
│ │ │ ├── UploadProgressHandler.java
│ │ │ ├── UploadProgressPercentHandler.java
│ │ │ └── UploadProgressUtils.java
│ │ └── util
│ │ │ ├── MessageShardingUtil.java
│ │ │ └── SpinLock.java
│ │ └── remote
│ │ ├── ChatManager.java
│ │ ├── GeneralCallback.java
│ │ ├── GeneralCallback2.java
│ │ ├── GetChatRoomInfoCallback.java
│ │ ├── GetChatRoomMembersInfoCallback.java
│ │ ├── GetGroupsCallback.java
│ │ ├── GetRemoteMessageCallback.java
│ │ ├── IMServiceStatusListener.java
│ │ ├── OnChannelInfoUpdateListener.java
│ │ ├── OnClearMessageListener.java
│ │ ├── OnConnectionStatusChangeListener.java
│ │ ├── OnConversationInfoUpdateListener.java
│ │ ├── OnFriendUpdateListener.java
│ │ ├── OnGroupInfoUpdateListener.java
│ │ ├── OnGroupMembersUpdateListener.java
│ │ ├── OnMessageUpdateListener.java
│ │ ├── OnRecallMessageListener.java
│ │ ├── OnReceiveMessageListener.java
│ │ ├── OnSendMessageListener.java
│ │ ├── OnSettingUpdateListener.java
│ │ ├── OnUnreadStatusChangeListener.java
│ │ ├── OnUserInfoUpdateListener.java
│ │ ├── RecoverReceiver.java
│ │ ├── RemoveMessageListener.java
│ │ ├── SearchChannelCallback.java
│ │ ├── SearchUserCallback.java
│ │ ├── SendMessageCallback.java
│ │ └── UserSettingScope.java
│ └── res
│ └── values
│ └── strings.xml
├── emojilibrary
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ └── emoji
│ │ ├── default
│ │ ├── u1f004.png
│ │ ├── u1f12.png
│ │ ├── u1f30f.png
│ │ ├── u1f319.png
│ │ ├── u1f332.png
│ │ ├── u1f339.png
│ │ ├── u1f33b.png
│ │ ├── u1f349.png
│ │ ├── u1f356.png
│ │ ├── u1f35a.png
│ │ ├── u1f366.png
│ │ ├── u1f36b.png
│ │ ├── u1f377.png
│ │ ├── u1f37b.png
│ │ ├── u1f381.png
│ │ ├── u1f382.png
│ │ ├── u1f384.png
│ │ ├── u1f389.png
│ │ ├── u1f393.png
│ │ ├── u1f3a4.png
│ │ ├── u1f3b2.png
│ │ ├── u1f3b5.png
│ │ ├── u1f3c0.png
│ │ ├── u1f3c2.png
│ │ ├── u1f3e1.png
│ │ ├── u1f434.png
│ │ ├── u1f436.png
│ │ ├── u1f437.png
│ │ ├── u1f44a.png
│ │ ├── u1f44c.png
│ │ ├── u1f44d.png
│ │ ├── u1f44e.png
│ │ ├── u1f44f.png
│ │ ├── u1f451.png
│ │ ├── u1f46a.png
│ │ ├── u1f46b.png
│ │ ├── u1f47b.png
│ │ ├── u1f47c.png
│ │ ├── u1f47d.png
│ │ ├── u1f47f.png
│ │ ├── u1f484.png
│ │ ├── u1f48a.png
│ │ ├── u1f48b.png
│ │ ├── u1f48d.png
│ │ ├── u1f494.png
│ │ ├── u1f4a1.png
│ │ ├── u1f4a2.png
│ │ ├── u1f4a3.png
│ │ ├── u1f4a4.png
│ │ ├── u1f4a9.png
│ │ ├── u1f4aa.png
│ │ ├── u1f4b0.png
│ │ ├── u1f4da.png
│ │ ├── u1f4de.png
│ │ ├── u1f4e2.png
│ │ ├── u1f525.png
│ │ ├── u1f52b.png
│ │ ├── u1f556.png
│ │ ├── u1f600.png
│ │ ├── u1f601.png
│ │ ├── u1f602.png
│ │ ├── u1f603.png
│ │ ├── u1f605.png
│ │ ├── u1f606.png
│ │ ├── u1f607.png
│ │ ├── u1f608.png
│ │ ├── u1f609.png
│ │ ├── u1f60a.png
│ │ ├── u1f60b.png
│ │ ├── u1f60c.png
│ │ ├── u1f60d.png
│ │ ├── u1f60e.png
│ │ ├── u1f60f.png
│ │ ├── u1f611.png
│ │ ├── u1f612.png
│ │ ├── u1f613.png
│ │ ├── u1f614.png
│ │ ├── u1f615.png
│ │ ├── u1f616.png
│ │ ├── u1f618.png
│ │ ├── u1f61a.png
│ │ ├── u1f61c.png
│ │ ├── u1f61d.png
│ │ ├── u1f61e.png
│ │ ├── u1f61f.png
│ │ ├── u1f621.png
│ │ ├── u1f622.png
│ │ ├── u1f623.png
│ │ ├── u1f624.png
│ │ ├── u1f628.png
│ │ ├── u1f629.png
│ │ ├── u1f62a.png
│ │ ├── u1f62b.png
│ │ ├── u1f62c.png
│ │ ├── u1f62d.png
│ │ ├── u1f62e.png
│ │ ├── u1f62f.png
│ │ ├── u1f630.png
│ │ ├── u1f631.png
│ │ ├── u1f632.png
│ │ ├── u1f633.png
│ │ ├── u1f634.png
│ │ ├── u1f635.png
│ │ ├── u1f636.png
│ │ ├── u1f637.png
│ │ ├── u1f648.png
│ │ ├── u1f649.png
│ │ ├── u1f64a.png
│ │ ├── u1f64f.png
│ │ ├── u1f680.png
│ │ ├── u1f6ab.png
│ │ ├── u1f6b2.png
│ │ ├── u1f6bf.png
│ │ ├── u1f91d.png
│ │ ├── u23f0.png
│ │ ├── u23f3.png
│ │ ├── u2600.png
│ │ ├── u2601.png
│ │ ├── u2614.png
│ │ ├── u2615.png
│ │ ├── u261d.png
│ │ ├── u263a.png
│ │ ├── u26a1.png
│ │ ├── u26bd.png
│ │ ├── u26c4.png
│ │ ├── u26c5.png
│ │ ├── u270a.png
│ │ ├── u270b.png
│ │ ├── u270c.png
│ │ ├── u270f.png
│ │ ├── u2744.png
│ │ └── u2b50.png
│ │ └── emoji.xml
│ ├── java
│ └── com
│ │ └── lqr
│ │ └── emoji
│ │ ├── EmojiAdapter.java
│ │ ├── EmojiManager.java
│ │ ├── EmotionLayout.java
│ │ ├── EmotionTab.java
│ │ ├── EmotionViewPagerAdapter.java
│ │ ├── IEmotionExtClickListener.java
│ │ ├── IEmotionSelectedListener.java
│ │ ├── IImageLoader.java
│ │ ├── LQREmotionKit.java
│ │ ├── MoonUtils.java
│ │ ├── StickerAdapter.java
│ │ ├── StickerCategory.java
│ │ ├── StickerItem.java
│ │ ├── StickerManager.java
│ │ └── ViewPagerFixed.java
│ └── res
│ ├── drawable
│ ├── ic_emoji_del.png
│ ├── ic_emotion_setting.png
│ ├── ic_tab_add.png
│ ├── ic_tab_emoji.png
│ ├── page_selected.png
│ ├── page_unselected.png
│ ├── selector_common_item.xml
│ ├── selector_stick_top_item.xml
│ ├── selector_view_pager_indicator.xml
│ ├── shape_tab_normal.xml
│ └── shape_tab_press.xml
│ ├── layout
│ ├── emotion_layout.xml
│ └── emotion_tab.xml
│ └── values
│ ├── colors.xml
│ └── strings.xml
├── gradle.properties
├── gradle
├── build_libraries.gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── imagepicker
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── lqr
│ │ └── imagepicker
│ │ ├── ImageDataSource.java
│ │ ├── ImagePickStore.java
│ │ ├── ImagePicker.java
│ │ ├── Utils.java
│ │ ├── adapter
│ │ ├── ImageFolderAdapter.java
│ │ ├── ImageGridAdapter.java
│ │ └── ImagePageAdapter.java
│ │ ├── bean
│ │ ├── ImageFolder.java
│ │ └── ImageItem.java
│ │ ├── ui
│ │ ├── ImageBaseActivity.java
│ │ ├── ImageCropActivity.java
│ │ ├── ImageGridActivity.java
│ │ ├── ImagePreviewActivity.java
│ │ ├── ImagePreviewBaseActivity.java
│ │ └── ImagePreviewDelActivity.java
│ │ └── view
│ │ ├── CropImageView.java
│ │ ├── FolderPopUpWindow.java
│ │ ├── SuperCheckBox.java
│ │ ├── SystemBarTintManager.java
│ │ └── ViewPagerFixed.java
│ └── res
│ ├── anim
│ ├── fade_in.xml
│ ├── fade_out.xml
│ ├── top_in.xml
│ └── top_out.xml
│ ├── drawable-xxhdpi
│ ├── bg_btn_dis.9.png
│ ├── bg_btn_nor.9.png
│ └── bg_btn_pre.9.png
│ ├── drawable
│ ├── selector_back_press.xml
│ ├── selector_grid_camera_bg.xml
│ ├── selector_item_checked.xml
│ └── selector_top_ok.xml
│ ├── layout
│ ├── activity_image_grid.xml
│ ├── activity_image_preview.xml
│ ├── adapter_camera_item.xml
│ ├── adapter_folder_list_item.xml
│ ├── adapter_image_list_item.xml
│ ├── include_top_bar.xml
│ └── pop_folder.xml
│ ├── mipmap-hdpi
│ └── ic_back.png
│ ├── mipmap-xxhdpi
│ ├── checkbox_checked.png
│ ├── checkbox_normal.png
│ ├── default_image.png
│ ├── grid_camera.png
│ ├── ic_del.png
│ ├── list_selected.png
│ ├── list_unselected.png
│ └── text_indicator.png
│ └── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── strings.xml
│ └── styles.xml
├── mars-core-release
├── build.gradle
└── mars-core-release.aar
├── push
├── .gitignore
├── README.md
├── build.gradle
├── libs
│ └── MiPush_SDK_Client_3_6_9.jar
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── cn
│ │ └── wildfirechat
│ │ └── push
│ │ ├── AndroidPushMessage.java
│ │ ├── DefaultPushMessageHandler.java
│ │ ├── PushConstant.java
│ │ ├── PushMessageHandler.java
│ │ ├── PushService.java
│ │ ├── huawei
│ │ └── HuaweiPushRevicer.java
│ │ ├── meizu
│ │ └── MeizuPushReceiver.java
│ │ └── xiaomi
│ │ └── MiMessageReceiver.java
│ └── res
│ └── values
│ └── strings.xml
├── settings.gradle
└── wfc.keystore
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/attachment/chat-show.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/chat-show.gif
--------------------------------------------------------------------------------
/attachment/push-universe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/push-universe.png
--------------------------------------------------------------------------------
/attachment/qq_qrcode_universe_push.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/qq_qrcode_universe_push.jpg
--------------------------------------------------------------------------------
/attachment/qr-chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/qr-chat.png
--------------------------------------------------------------------------------
/attachment/vue-chat-audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/vue-chat-audio.png
--------------------------------------------------------------------------------
/attachment/vue-chat-video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/vue-chat-video.png
--------------------------------------------------------------------------------
/attachment/vue-chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/attachment/vue-chat.png
--------------------------------------------------------------------------------
/avenginekit/avenginekit.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/avenginekit/avenginekit.aar
--------------------------------------------------------------------------------
/avenginekit/build.gradle:
--------------------------------------------------------------------------------
1 | configurations.maybeCreate("default")
2 | artifacts.add("default", file('avenginekit.aar'))
--------------------------------------------------------------------------------
/chat/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/chat/libs/TencentLocationSDK_v4.9.7.12_r247861_161205_1104.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/TencentLocationSDK_v4.9.7.12_r247861_161205_1104.jar
--------------------------------------------------------------------------------
/chat/libs/TencentMapSDK_Raster_v_1.2.7_51ae0e7.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/TencentMapSDK_Raster_v_1.2.7_51ae0e7.jar
--------------------------------------------------------------------------------
/chat/libs/TencentSearch1.1.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/TencentSearch1.1.3.jar
--------------------------------------------------------------------------------
/chat/libs/armeabi-v7a/libtencentloc.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/armeabi-v7a/libtencentloc.so
--------------------------------------------------------------------------------
/chat/libs/joda-time-2.5-sources.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/joda-time-2.5-sources.jar
--------------------------------------------------------------------------------
/chat/libs/joda-time-2.5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/joda-time-2.5.jar
--------------------------------------------------------------------------------
/chat/libs/pinyin4j-2.5.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/pinyin4j-2.5.0.jar
--------------------------------------------------------------------------------
/chat/libs/x86/libtencentloc.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/libs/x86/libtencentloc.so
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/B数,没有,我很膨胀.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/B数,没有,我很膨胀.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/你以前不是这样子的.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/你以前不是这样子的.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/委屈地哭了起来.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/委屈地哭了起来.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/宝宝委屈,但宝宝不说.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/宝宝委屈,但宝宝不说.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/宝宝委屈,宝宝心里苦,宝宝不说.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/宝宝委屈,宝宝心里苦,宝宝不说.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/宝宝心里苦,但宝宝说了.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/宝宝心里苦,但宝宝说了.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/心里没有一点B数吗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/心里没有一点B数吗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/心里难道没有一点B数吗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/心里难道没有一点B数吗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/有没有B数,你心里没有点B数吗.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/有没有B数,你心里没有点B数吗.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/本宝宝不开心了,本宝宝有小情绪了.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/本宝宝不开心了,本宝宝有小情绪了.jpeg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/B数/自己心里没有一点B数吗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/B数/自己心里没有一点B数吗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/666.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/666.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/Android培训.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/Android培训.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/Android开发没人要了.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/Android开发没人要了.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/MySQL从删库到跑路.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/MySQL从删库到跑路.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/java培训.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/java培训.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/万能.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/万能.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/代码狗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/代码狗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/佛祖保佑,永无BUG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/佛祖保佑,永无BUG.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/你他妈脑袋有bug.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/你他妈脑袋有bug.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/你们如果还不去写代码我就开枪了.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/你们如果还不去写代码我就开枪了.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/你们尽管培训。找到工作算我输.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/你们尽管培训。找到工作算我输.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/你又在偷偷写bug.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/你又在偷偷写bug.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/你就是打死我,我也不改这个bug.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/你就是打死我,我也不改这个bug.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/全能.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/全能.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/写个J8代码,老子不干了.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/写个J8代码,老子不干了.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/写个屁的代码.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/写个屁的代码.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/冻成狗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/冻成狗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/别跑,回来把代码写完.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/别跑,回来把代码写完.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/加班.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/加班.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/劳资再也不写代码了.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/劳资再也不写代码了.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/吃我一招.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/吃我一招.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/同志快醒醒,你还有一串代码提示错误,起来改改.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/同志快醒醒,你还有一串代码提示错误,起来改改.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/呦,写bug呢.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/呦,写bug呢.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/咱喝杯Java冷静下.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/咱喝杯Java冷静下.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/回去写代码,谁让你跑出来装逼的,看我不打死你.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/回去写代码,谁让你跑出来装逼的,看我不打死你.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/土豪老板.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/土豪老板.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/在你们聊天的时候,我已经写了好几万行代码了.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/在你们聊天的时候,我已经写了好几万行代码了.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/垃圾QQ,毁我青春,颓我精神,耗我钱财.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/垃圾QQ,毁我青春,颓我精神,耗我钱财.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/垃圾语言,毁我青春.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/垃圾语言,毁我青春.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/垃圾软件,毁我青春.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/垃圾软件,毁我青春.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/大佬三连.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/大佬三连.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/如果把面试官唬住了就要50k,没唬住就要5k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/如果把面试官唬住了就要50k,没唬住就要5k.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/对方不想和你说话,并向你抛出了一个异常.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/对方不想和你说话,并向你抛出了一个异常.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/对方不想跟你说话,并向你扔了一份鸟哥语录.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/对方不想跟你说话,并向你扔了一份鸟哥语录.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/对方不理你的异常,当你面关闭了程序.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/对方不理你的异常,当你面关闭了程序.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/对方向你丢了一堆神秘代码,可是你却不能复制.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/对方向你丢了一堆神秘代码,可是你却不能复制.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/就是他,一行代码,报三个错.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/就是他,一行代码,报三个错.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/我只是个小安卓.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/我只是个小安卓.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/我可能是个假程序员.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/我可能是个假程序员.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/我在敲代码.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/我在敲代码.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/我来写代码了.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/我来写代码了.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/我还能写代码.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/我还能写代码.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/打杂.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/打杂.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/扫码改需求.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/扫码改需求.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/把钱还给我,我不学Java了.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/把钱还给我,我不学Java了.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/敲代码.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/敲代码.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/流下了没技术的泪水.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/流下了没技术的泪水.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/电脑狗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/电脑狗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/真正隐世的高手程序员.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/真正隐世的高手程序员.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/码农和产品经理的区别.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/码农和产品经理的区别.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/程序写完了吗.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/程序写完了吗.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/程序员思维.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/程序员思维.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/程序猿的日常.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/程序猿的日常.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/程序猿的标配.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/程序猿的标配.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/空指针异常.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/空指针异常.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/算我求你的,你特么去写代码好不好.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/算我求你的,你特么去写代码好不好.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/编程5分钟,扯淡2小时.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/编程5分钟,扯淡2小时.png
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/自己上网查.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/自己上网查.gif
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/谁TM改了我代码.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/谁TM改了我代码.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/达内培训.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/达内培训.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/那么好用的框架,还不赶紧来Star.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/那么好用的框架,还不赶紧来Star.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/零错误,零等待.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/零错误,零等待.jpg
--------------------------------------------------------------------------------
/chat/src/main/assets/sticker/程序员/骚年出招吧,哥让你三行代码.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/comsince/android-chat/283ae7c9f7ae1eb7feb87fb8bf7876cc44c0f810/chat/src/main/assets/sticker/程序员/骚年出招吧,哥让你三行代码.jpg
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/app/login/model/LoginResult.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.app.login.model;
2 |
3 |
4 | /**
5 | * 真-model,code啊,message之类的,放到了status里面去了
6 | */
7 | public class LoginResult {
8 | private String userId;
9 | private String token;
10 |
11 | public String getUserId() {
12 | return userId;
13 | }
14 |
15 | public void setUserId(String userId) {
16 | this.userId = userId;
17 | }
18 |
19 | public String getToken() {
20 | return token;
21 | }
22 |
23 | public void setToken(String token) {
24 | this.token = token;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/app/third/location/readme.md:
--------------------------------------------------------------------------------
1 | 这是一个非常参考,代码风格和其他的也不一样,仅供参考
2 | 代码是基于,[LQRWeChat](https://github.com/GitLqr/LQRWeChat)
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/app/third/location/ui/view/IMyLocationAtView.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.app.third.location.ui.view;
2 |
3 |
4 | import androidx.recyclerview.widget.RecyclerView;
5 |
6 | public interface IMyLocationAtView {
7 | RecyclerView getRvPOI();
8 | }
9 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/ChatManagerHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit;
2 |
3 | import cn.wildfirechat.avenginekit.AVEngineKit;
4 | import cn.wildfirechat.remote.ChatManager;
5 |
6 | /**
7 | * Created by WF Chat on 2017/12/12.
8 | */
9 |
10 | public class ChatManagerHolder {
11 | public static ChatManager gChatManager;
12 | public static AVEngineKit gAVEngine;
13 | }
14 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/WfcGlideModule.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit;
2 |
3 | import com.bumptech.glide.annotation.GlideModule;
4 | import com.bumptech.glide.module.AppGlideModule;
5 |
6 | @GlideModule
7 | public final class WfcGlideModule extends AppGlideModule {
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/WfcIntent.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit;
2 |
3 | public interface WfcIntent {
4 | String ACTION_MAIN = "cn.wildfirechat.chat.main";
5 | String ACTION_CONVERSATION = "cn.wildfirechat.chat.conversation";
6 | String ACTION_CONTACT = "cn.wildfirechat.chat.contact";
7 | String ACTION_USER_INFO = "cn.wildfirechat.chat.user.info";
8 | String ACTION_GROUP_INFO = "cn.wildfirechat.chat.group.info";
9 | String ACTION_VOIP_SINGLE = "cn.wildfirechat.kit.chat.voip.single";
10 | }
11 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/WfcScheme.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit;
2 |
3 | public interface WfcScheme {
4 | String QR_CODE_PREFIX_PC_SESSION = "wildfirechat://pcsession/";
5 | String QR_CODE_PREFIX_USER = "wildfirechat://user/";
6 | String QR_CODE_PREFIX_GROUP = "wildfirechat://group/";
7 | String QR_CODE_PREFIX_CHANNEL = "wildfirechat://channel/";
8 | }
9 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/annotation/ConversationInfoType.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.annotation;
2 |
3 | import java.lang.annotation.Retention;
4 | import java.lang.annotation.RetentionPolicy;
5 |
6 | import cn.wildfirechat.model.Conversation;
7 |
8 | /**
9 | * 用户设置会话UI({@link cn.wildfire.chat.kit.conversationlist.viewholder.ConversationViewHolder})和会话({@link cn.wildfirechat.model.Conversation.ConversationType} + 会话线路)之间的对应关系
10 | */
11 | @Retention(RetentionPolicy.RUNTIME)
12 | public @interface ConversationInfoType {
13 | Conversation.ConversationType type();
14 |
15 | int line();
16 | }
17 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/annotation/EnableContextMenu.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 是否启用长按弹出上下文菜单,可用于注解{@code messageViewHolder}, {@code conversationViewHolder}
10 | */
11 | @Target(ElementType.TYPE)
12 | @Retention(RetentionPolicy.RUNTIME)
13 | public @interface EnableContextMenu {
14 | }
15 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/annotation/LayoutRes.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 当发出和收到的消息UI一致时,可使用{@link LayoutRes} 代替同时设置{@link SendLayoutRes} 和 {@link ReceiveLayoutRes}
10 | *
11 | * 一般用户设置通知类消息和对应消息体的映射关系
12 | */
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Target(ElementType.TYPE)
15 | public @interface LayoutRes {
16 | int resId() default 0;
17 | }
18 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/annotation/ReceiveLayoutRes.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 收到的消息的布局
10 | */
11 | @Retention(RetentionPolicy.RUNTIME)
12 | @Target(ElementType.TYPE)
13 | public @interface ReceiveLayoutRes {
14 | int resId() default 0;
15 | }
16 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/annotation/SendLayoutRes.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 发出的消息的布局
10 | */
11 | @Retention(RetentionPolicy.RUNTIME)
12 | @Target(ElementType.TYPE)
13 | public @interface SendLayoutRes {
14 | int resId() default 0;
15 | }
16 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/annotation/StatusNotificationType.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | import cn.wildfire.chat.kit.conversationlist.notification.StatusNotification;
9 |
10 | @Retention(RetentionPolicy.RUNTIME)
11 | @Target(ElementType.TYPE)
12 | public @interface StatusNotificationType {
13 | Class extends StatusNotification> value();
14 | }
15 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/audio/IAudioPlayListener.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.audio;
2 |
3 | import android.net.Uri;
4 |
5 | public interface IAudioPlayListener {
6 | void onStart(Uri var1);
7 |
8 | void onStop(Uri var1);
9 |
10 | void onComplete(Uri var1);
11 | }
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/channel/CreateChannelFragment.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.channel;
2 |
3 | public class CreateChannelFragment {
4 | }
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/channel/SearchChannelActivity.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.channel;
2 |
3 | import java.util.List;
4 |
5 | import cn.wildfire.chat.kit.search.SearchActivity;
6 | import cn.wildfire.chat.kit.search.SearchableModule;
7 | import cn.wildfire.chat.kit.search.module.ChannelSearchModule;
8 |
9 | public class SearchChannelActivity extends SearchActivity {
10 | @Override
11 | protected void initSearchModule(List modules) {
12 | modules.add(new ChannelSearchModule());
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/common/AppScopeViewModel.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.common;
2 |
3 | /**
4 | * 当{@link androidx.lifecycle.ViewModel} 需要跨{@link android.app.Activity} 共享数据时使用
5 | */
6 | public interface AppScopeViewModel {
7 | }
8 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/contact/model/ContactCountFooterValue.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.contact.model;
2 |
3 | public class ContactCountFooterValue extends FooterValue {
4 | }
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/contact/model/FooterValue.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.contact.model;
2 |
3 | public class FooterValue {
4 | }
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/contact/model/FriendRequestValue.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.contact.model;
2 |
3 | public class FriendRequestValue extends HeaderValue {
4 | private int unreadRequestCount;
5 |
6 | public FriendRequestValue(int unreadRequestCount) {
7 | this.unreadRequestCount = unreadRequestCount;
8 | }
9 |
10 | public int getUnreadRequestCount() {
11 | return unreadRequestCount;
12 | }
13 |
14 | public void setUnreadRequestCount(int unreadRequestCount) {
15 | this.unreadRequestCount = unreadRequestCount;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/contact/model/GroupValue.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.contact.model;
2 |
3 | public class GroupValue extends HeaderValue {
4 | }
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/contact/model/HeaderValue.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.contact.model;
2 |
3 | public class HeaderValue {
4 | }
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/contact/pick/PickGroupViewModel.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.contact.pick;
2 |
3 | import androidx.lifecycle.ViewModel;
4 |
5 | // TODO
6 | public class PickGroupViewModel extends ViewModel {
7 | }
8 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/ChatRoomConversationInfoFragment.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversation;
2 |
3 | import androidx.fragment.app.Fragment;
4 |
5 | // TODO
6 | public class ChatRoomConversationInfoFragment extends Fragment {
7 | }
8 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/forward/viewholder/CategoryViewHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversation.forward.viewholder;
2 |
3 | import android.view.View;
4 |
5 | import androidx.recyclerview.widget.RecyclerView;
6 |
7 | public class CategoryViewHolder extends RecyclerView.ViewHolder {
8 | public CategoryViewHolder(View itemView) {
9 | super(itemView);
10 | }
11 |
12 | public void onBind() {
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/forward/viewholder/CreateConversationViewHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversation.forward.viewholder;
2 |
3 | import android.view.View;
4 |
5 | import androidx.recyclerview.widget.RecyclerView;
6 |
7 | public class CreateConversationViewHolder extends RecyclerView.ViewHolder {
8 | public CreateConversationViewHolder(View itemView) {
9 | super(itemView);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/message/viewholder/LoadingViewHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversation.message.viewholder;
2 |
3 | import android.view.View;
4 |
5 | import androidx.recyclerview.widget.RecyclerView;
6 |
7 | public class LoadingViewHolder extends RecyclerView.ViewHolder {
8 | public LoadingViewHolder(View itemView) {
9 | super(itemView);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/message/viewholder/MessageContextMenuItemTags.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversation.message.viewholder;
2 |
3 | public interface MessageContextMenuItemTags {
4 | String TAG_RECALL = "recall";
5 | String TAG_DELETE = "delete";
6 | String TAG_CLIP = "clip";
7 | String TAG_FORWARD = "forward";
8 | String TAG_CHANEL_PRIVATE_CHAT = "chanelPrivateChat";
9 | }
10 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/message/viewholder/NotificationMessageContentViewHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversation.message.viewholder;
2 |
3 | import android.view.View;
4 |
5 | import androidx.fragment.app.FragmentActivity;
6 | import androidx.recyclerview.widget.RecyclerView;
7 |
8 | public abstract class NotificationMessageContentViewHolder extends MessageContentViewHolder {
9 | public NotificationMessageContentViewHolder(FragmentActivity activity, RecyclerView.Adapter adapter, View itemView) {
10 | super(activity, adapter, itemView);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversation/todo.md:
--------------------------------------------------------------------------------
1 | 1. inputPanel
2 | 2. menu group ```android:animateLayoutChanges="true" ```
3 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversationlist/notification/ConnectionStatusNotification.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversationlist.notification;
2 |
3 | public class ConnectionStatusNotification extends StatusNotification {
4 | private int status;
5 | private String value;
6 |
7 | public int getStatus() {
8 | return status;
9 | }
10 |
11 | public void setStatus(int status) {
12 | this.status = status;
13 | }
14 |
15 | public String getValue() {
16 | return value;
17 | }
18 |
19 | public void setValue(String value) {
20 | this.value = value;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversationlist/notification/PCOnlineNotification.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversationlist.notification;
2 |
3 | public class PCOnlineNotification extends StatusNotification {
4 | }
5 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversationlist/notification/StatusNotification.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversationlist.notification;
2 |
3 | import androidx.annotation.Nullable;
4 |
5 | public abstract class StatusNotification {
6 | @Override
7 | public boolean equals(@Nullable Object obj) {
8 | return this.getClass().equals(obj.getClass());
9 | }
10 |
11 | @Override
12 | public int hashCode() {
13 | return this.getClass().hashCode();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversationlist/notification/viewholder/StatusNotificationViewHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversationlist.notification.viewholder;
2 |
3 | import android.view.View;
4 |
5 | import androidx.fragment.app.Fragment;
6 |
7 | import cn.wildfire.chat.kit.conversationlist.notification.StatusNotification;
8 |
9 | public abstract class StatusNotificationViewHolder {
10 | protected Fragment fragment;
11 |
12 | public StatusNotificationViewHolder(Fragment fragment) {
13 | this.fragment = fragment;
14 | }
15 |
16 | public abstract void onBind(View view, StatusNotification notification);
17 | }
18 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/conversationlist/viewholder/ConversationContextMenuItemTags.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.conversationlist.viewholder;
2 |
3 | public interface ConversationContextMenuItemTags {
4 | String TAG_REMOVE = "remove";
5 | String TAG_CLEAR = "clear";
6 | String TAG_TOP = "stick_top";
7 | String TAG_CANCEL_TOP = "cancel_stick_top";
8 | String TAG_UNSUBSCRIBE = "unSubscribe_channel";
9 | }
10 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/group/FavGroupViewModel.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.group;
2 |
3 | import androidx.lifecycle.ViewModel;
4 |
5 | public class FavGroupViewModel extends ViewModel {
6 | }
7 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/group/OnGroupItemClickListener.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.group;
2 |
3 | import cn.wildfirechat.model.GroupInfo;
4 |
5 | public interface OnGroupItemClickListener {
6 | void onGroupClick(GroupInfo groupInfo);
7 | }
8 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/net/Callback.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.net;
2 |
3 | /**
4 | * Created by imndx on 2017/12/15.
5 | */
6 |
7 | public interface Callback {
8 | void onSuccess(T t);
9 |
10 | void onFailure(int code, String message);
11 | }
12 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/net/base/ResultWrapper.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.net.base;
2 |
3 | /**
4 | * Created by imndx on 2017/12/15.
5 | */
6 |
7 | public class ResultWrapper extends StatusResult {
8 | T result;
9 |
10 | public T getResult() {
11 | return result;
12 | }
13 |
14 | public void setResult(T result) {
15 | this.result = result;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/search/OnResultItemClickListener.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.search;
2 |
3 | import android.view.View;
4 |
5 | import androidx.fragment.app.Fragment;
6 |
7 | public interface OnResultItemClickListener {
8 | /**
9 | * @param fragment the fragment holds the search results
10 | * @param itemView the item view
11 | * @param view the clicked view, now {@param view} and {@param itemView} is equal
12 | * @param r the value bind to the item view
13 | */
14 | void onResultItemClick(Fragment fragment, View itemView, View view, R r);
15 | }
16 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/search/ResultItemViewHolder.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.search;
2 |
3 | import android.view.View;
4 |
5 | import androidx.recyclerview.widget.RecyclerView;
6 |
7 | public abstract class ResultItemViewHolder extends RecyclerView.ViewHolder {
8 | public ResultItemViewHolder(View itemView) {
9 | super(itemView);
10 | }
11 |
12 | abstract void onBind(T t);
13 | }
14 |
--------------------------------------------------------------------------------
/chat/src/main/java/cn/wildfire/chat/kit/search/SearchResult.java:
--------------------------------------------------------------------------------
1 | package cn.wildfire.chat.kit.search;
2 |
3 | import java.util.List;
4 |
5 | class SearchResult {
6 | SearchableModule module;
7 | List