├── .gitignore
├── .idea
├── .name
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── LICENSE
├── README.md
├── app
├── .gitignore
├── build.gradle
├── libs
│ └── BaiduLBS_Android.jar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── rance
│ │ └── chatui
│ │ └── ApplicationTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── rance
│ │ │ └── chatui
│ │ │ ├── adapter
│ │ │ ├── ChatAdapter.java
│ │ │ ├── CommonFragmentPagerAdapter.java
│ │ │ ├── ContactAdapter.java
│ │ │ ├── EmotionGridViewAdapter.java
│ │ │ ├── EmotionPagerAdapter.java
│ │ │ └── holder
│ │ │ │ ├── BaseViewHolder.java
│ │ │ │ ├── ChatAcceptViewHolder.java
│ │ │ │ └── ChatSendViewHolder.java
│ │ │ ├── base
│ │ │ ├── BaseFragment.java
│ │ │ └── MyApplication.java
│ │ │ ├── enity
│ │ │ ├── FullImageInfo.java
│ │ │ ├── IMContact.java
│ │ │ ├── Link.java
│ │ │ └── MessageInfo.java
│ │ │ ├── ui
│ │ │ ├── activity
│ │ │ │ ├── ContactActivity.java
│ │ │ │ ├── FullImageActivity.java
│ │ │ │ └── IMActivity.java
│ │ │ └── fragment
│ │ │ │ ├── ChatEmotionFragment.java
│ │ │ │ └── ChatFunctionFragment.java
│ │ │ ├── util
│ │ │ ├── AudioRecorderUtils.java
│ │ │ ├── CheckPermissionUtils.java
│ │ │ ├── Constants.java
│ │ │ ├── EmotionUtils.java
│ │ │ ├── FileUtils.java
│ │ │ ├── GifOpenHelper.java
│ │ │ ├── GlobalOnItemClickManagerUtils.java
│ │ │ ├── MediaManager.java
│ │ │ ├── MessageCenter.java
│ │ │ ├── PhotoUtils.java
│ │ │ ├── PopupWindowFactory.java
│ │ │ └── Utils.java
│ │ │ └── widget
│ │ │ ├── BubbleDrawable.java
│ │ │ ├── BubbleImageView.java
│ │ │ ├── BubbleLinearLayout.java
│ │ │ ├── ChatContextMenu.java
│ │ │ ├── EmotionInputDetector.java
│ │ │ ├── GifTextView.java
│ │ │ ├── IndicatorView.java
│ │ │ ├── NoScrollViewPager.java
│ │ │ └── StateButton.java
│ ├── jniLibs
│ │ ├── arm64-v8a
│ │ │ ├── libBaiduMapSDK_base_v4_3_2.so
│ │ │ ├── libBaiduMapSDK_map_v4_3_2.so
│ │ │ └── liblocSDK7a.so
│ │ ├── armeabi-v7a
│ │ │ ├── libBaiduMapSDK_base_v4_3_2.so
│ │ │ ├── libBaiduMapSDK_map_v4_3_2.so
│ │ │ └── liblocSDK7a.so
│ │ ├── armeabi
│ │ │ ├── libBaiduMapSDK_base_v4_3_2.so
│ │ │ ├── libBaiduMapSDK_map_v4_3_2.so
│ │ │ └── liblocSDK7a.so
│ │ ├── x86
│ │ │ ├── libBaiduMapSDK_base_v4_3_2.so
│ │ │ ├── libBaiduMapSDK_map_v4_3_2.so
│ │ │ └── liblocSDK7a.so
│ │ └── x86_64
│ │ │ ├── libBaiduMapSDK_base_v4_3_2.so
│ │ │ ├── libBaiduMapSDK_map_v4_3_2.so
│ │ │ └── liblocSDK7a.so
│ └── res
│ │ ├── drawable
│ │ ├── bg_circle_gary.xml
│ │ ├── bg_circle_white.xml
│ │ ├── bg_message.9.png
│ │ ├── bg_surname.xml
│ │ ├── compose_emotion_delete.png
│ │ ├── corners_edit.xml
│ │ ├── corners_edit_white.xml
│ │ ├── divider.xml
│ │ ├── emotion_aini.png
│ │ ├── emotion_aini_gif.gif
│ │ ├── emotion_aiqing.png
│ │ ├── emotion_aiqing_gif.gif
│ │ ├── emotion_aixin.png
│ │ ├── emotion_aixin_gif.gif
│ │ ├── emotion_aoman.png
│ │ ├── emotion_aoman_gif.gif
│ │ ├── emotion_baiyan.png
│ │ ├── emotion_baiyan_gif.gif
│ │ ├── emotion_bangbangtang.png
│ │ ├── emotion_bangbangtang_gif.gif
│ │ ├── emotion_baobao.png
│ │ ├── emotion_baobao_gif.gif
│ │ ├── emotion_baojing.png
│ │ ├── emotion_baojing_gif.gif
│ │ ├── emotion_baoquan.png
│ │ ├── emotion_baoquan_gif.gif
│ │ ├── emotion_bianbian.png
│ │ ├── emotion_bianbian_gif.gif
│ │ ├── emotion_bianpao.png
│ │ ├── emotion_bianpao_gif.gif
│ │ ├── emotion_biezui.png
│ │ ├── emotion_biezui_gif.gif
│ │ ├── emotion_bishi.png
│ │ ├── emotion_bishi_gif.gif
│ │ ├── emotion_bizui.png
│ │ ├── emotion_bizui_gif.gif
│ │ ├── emotion_cahan.png
│ │ ├── emotion_cahan_gif.gif
│ │ ├── emotion_caidao.png
│ │ ├── emotion_caidao_gif.gif
│ │ ├── emotion_caiqiu.png
│ │ ├── emotion_caiqiu_gif.gif
│ │ ├── emotion_chajing.png
│ │ ├── emotion_chajing_gif.gif
│ │ ├── emotion_chaopiao.png
│ │ ├── emotion_chaopiao_gif.gif
│ │ ├── emotion_chexiang.png
│ │ ├── emotion_chexiang_gif.gif
│ │ ├── emotion_ciya.png
│ │ ├── emotion_ciya_gif.gif
│ │ ├── emotion_dabing.png
│ │ ├── emotion_dabing_gif.gif
│ │ ├── emotion_daku.png
│ │ ├── emotion_daku_gif.gif
│ │ ├── emotion_dangao.png
│ │ ├── emotion_dangao_gif.gif
│ │ ├── emotion_dao.png
│ │ ├── emotion_dao_gif.gif
│ │ ├── emotion_dashan.png
│ │ ├── emotion_dashan_gif.gif
│ │ ├── emotion_dashuai.png
│ │ ├── emotion_dashuai_gif.gif
│ │ ├── emotion_denglong.png
│ │ ├── emotion_denglong_gif.gif
│ │ ├── emotion_dengpao.png
│ │ ├── emotion_dengpao_gif.gif
│ │ ├── emotion_deyi.png
│ │ ├── emotion_deyi_gif.gif
│ │ ├── emotion_diaoxie.png
│ │ ├── emotion_diaoxie_gif.gif
│ │ ├── emotion_duoyun.png
│ │ ├── emotion_duoyun_gif.gif
│ │ ├── emotion_facai.png
│ │ ├── emotion_facai_gif.gif
│ │ ├── emotion_fadai.png
│ │ ├── emotion_fadai_gif.gif
│ │ ├── emotion_fadou.png
│ │ ├── emotion_fadou_gif.gif
│ │ ├── emotion_fakuang.png
│ │ ├── emotion_fakuang_gif.gif
│ │ ├── emotion_fan.png
│ │ ├── emotion_fan_gif.gif
│ │ ├── emotion_fanu.png
│ │ ├── emotion_fanu_gif.gif
│ │ ├── emotion_feiji.png
│ │ ├── emotion_feiji_gif.gif
│ │ ├── emotion_feiwen.png
│ │ ├── emotion_feiwen_gif.gif
│ │ ├── emotion_fendou.png
│ │ ├── emotion_fendou_gif.gif
│ │ ├── emotion_fengche.png
│ │ ├── emotion_fengche_gif.gif
│ │ ├── emotion_ganga.png
│ │ ├── emotion_ganga_gif.gif
│ │ ├── emotion_gouwu.png
│ │ ├── emotion_gouwu_gif.gif
│ │ ├── emotion_gouying.png
│ │ ├── emotion_gouying_gif.gif
│ │ ├── emotion_guzhang.png
│ │ ├── emotion_guzhang_gif.gif
│ │ ├── emotion_haixiu.png
│ │ ├── emotion_haixiu_gif.gif
│ │ ├── emotion_hanxiao.png
│ │ ├── emotion_hanxiao_gif.gif
│ │ ├── emotion_haqian.png
│ │ ├── emotion_haqian_gif.gif
│ │ ├── emotion_hecai.png
│ │ ├── emotion_hecai_gif.gif
│ │ ├── emotion_henai.png
│ │ ├── emotion_henai_gif.gif
│ │ ├── emotion_huaixiao.png
│ │ ├── emotion_huaixiao_gif.gif
│ │ ├── emotion_huishou.png
│ │ ├── emotion_huishou_gif.gif
│ │ ├── emotion_huitou.png
│ │ ├── emotion_huitou_gif.gif
│ │ ├── emotion_jidong.png
│ │ ├── emotion_jidong_gif.gif
│ │ ├── emotion_jie.png
│ │ ├── emotion_jie_gif.gif
│ │ ├── emotion_jiewu.png
│ │ ├── emotion_jiewu_gif.gif
│ │ ├── emotion_jingkong.png
│ │ ├── emotion_jingkong_gif.gif
│ │ ├── emotion_jingya.png
│ │ ├── emotion_jingya_gif.gif
│ │ ├── emotion_kafei.png
│ │ ├── emotion_kafei_gif.gif
│ │ ├── emotion_kaiche.png
│ │ ├── emotion_kaiche_gif.gif
│ │ ├── emotion_keai.png
│ │ ├── emotion_keai_gif.gif
│ │ ├── emotion_kelian.png
│ │ ├── emotion_kelian_gif.gif
│ │ ├── emotion_ketou.png
│ │ ├── emotion_ketou_gif.gif
│ │ ├── emotion_kge.png
│ │ ├── emotion_kge_gif.gif
│ │ ├── emotion_koubi.png
│ │ ├── emotion_koubi_gif.gif
│ │ ├── emotion_ku.png
│ │ ├── emotion_ku_gif.gif
│ │ ├── emotion_kuaikule.png
│ │ ├── emotion_kuaikule_gif.gif
│ │ ├── emotion_kulou.png
│ │ ├── emotion_kulou_gif.gif
│ │ ├── emotion_kun.png
│ │ ├── emotion_kun_gif.gif
│ │ ├── emotion_lanqiu.png
│ │ ├── emotion_lanqiu_gif.gif
│ │ ├── emotion_lenghan.png
│ │ ├── emotion_lenghan_gif.gif
│ │ ├── emotion_liuhan.png
│ │ ├── emotion_liuhan_gif.gif
│ │ ├── emotion_liulei.png
│ │ ├── emotion_liulei_gif.gif
│ │ ├── emotion_liwu.png
│ │ ├── emotion_liwu_gif.gif
│ │ ├── emotion_meigui.png
│ │ ├── emotion_meigui_gif.gif
│ │ ├── emotion_nanguo.png
│ │ ├── emotion_nanguo_gif.gif
│ │ ├── emotion_naozhong.png
│ │ ├── emotion_naozhong_gif.gif
│ │ ├── emotion_no.png
│ │ ├── emotion_no_gif.gif
│ │ ├── emotion_ok.png
│ │ ├── emotion_ok_gif.gif
│ │ ├── emotion_ouhuo.png
│ │ ├── emotion_ouhuo_gif.gif
│ │ ├── emotion_pachong.png
│ │ ├── emotion_pachong_gif.gif
│ │ ├── emotion_pijiu.png
│ │ ├── emotion_pijiu_gif.gif
│ │ ├── emotion_pingpang.png
│ │ ├── emotion_pingpang_gif.gif
│ │ ├── emotion_qiang.png
│ │ ├── emotion_qiang_gif.gif
│ │ ├── emotion_qiaoda.png
│ │ ├── emotion_qiaoda_gif.gif
│ │ ├── emotion_qidao.png
│ │ ├── emotion_qidao_gif.gif
│ │ ├── emotion_qingwa.png
│ │ ├── emotion_qingwa_gif.gif
│ │ ├── emotion_qinqin.png
│ │ ├── emotion_qinqin_gif.gif
│ │ ├── emotion_qiudale.png
│ │ ├── emotion_qiudale_gif.gif
│ │ ├── emotion_quantou.png
│ │ ├── emotion_quantou_gif.gif
│ │ ├── emotion_ruo.png
│ │ ├── emotion_ruo_gif.gif
│ │ ├── emotion_se.png
│ │ ├── emotion_se_gif.gif
│ │ ├── emotion_shafa.png
│ │ ├── emotion_shafa_gif.gif
│ │ ├── emotion_shandian.png
│ │ ├── emotion_shandian_gif.gif
│ │ ├── emotion_shengli.png
│ │ ├── emotion_shengli_gif.gif
│ │ ├── emotion_shiai.png
│ │ ├── emotion_shiai_gif.gif
│ │ ├── emotion_shouqiang.png
│ │ ├── emotion_shouqiang_gif.gif
│ │ ├── emotion_shuai.png
│ │ ├── emotion_shuai_gif.gif
│ │ ├── emotion_shuangxi.png
│ │ ├── emotion_shuangxi_gif.gif
│ │ ├── emotion_shui.png
│ │ ├── emotion_shui_gif.gif
│ │ ├── emotion_taiyang.png
│ │ ├── emotion_taiyang_gif.gif
│ │ ├── emotion_tiaopi.png
│ │ ├── emotion_tiaopi_gif.gif
│ │ ├── emotion_tiaosheng.png
│ │ ├── emotion_tiaosheng_gif.gif
│ │ ├── emotion_tiaotiao.png
│ │ ├── emotion_tiaotiao_gif.gif
│ │ ├── emotion_touxiao.png
│ │ ├── emotion_touxiao_gif.gif
│ │ ├── emotion_tu.png
│ │ ├── emotion_tu_gif.gif
│ │ ├── emotion_weiqu.png
│ │ ├── emotion_weiqu_gif.gif
│ │ ├── emotion_weixiao.png
│ │ ├── emotion_weixiao_gif.gif
│ │ ├── emotion_woshou.png
│ │ ├── emotion_woshou_gif.gif
│ │ ├── emotion_xia.png
│ │ ├── emotion_xia_gif.gif
│ │ ├── emotion_xiamian.png
│ │ ├── emotion_xiamian_gif.gif
│ │ ├── emotion_xiangjiao.png
│ │ ├── emotion_xiangjiao_gif.gif
│ │ ├── emotion_xianwen.png
│ │ ├── emotion_xianwen_gif.gif
│ │ ├── emotion_xiayu.png
│ │ ├── emotion_xiayu_gif.gif
│ │ ├── emotion_xigua.png
│ │ ├── emotion_xigua_gif.gif
│ │ ├── emotion_xinsui.png
│ │ ├── emotion_xinsui_gif.gif
│ │ ├── emotion_xiongmao.png
│ │ ├── emotion_xiongmao_gif.gif
│ │ ├── emotion_xu.png
│ │ ├── emotion_xu_gif.gif
│ │ ├── emotion_yao.png
│ │ ├── emotion_yao_gif.gif
│ │ ├── emotion_yingxian.png
│ │ ├── emotion_yingxian_gif.gif
│ │ ├── emotion_yiwen.png
│ │ ├── emotion_yiwen_gif.gif
│ │ ├── emotion_youchexiang.png
│ │ ├── emotion_youchexiang_gif.gif
│ │ ├── emotion_youhengheng.png
│ │ ├── emotion_youhengheng_gif.gif
│ │ ├── emotion_youjian.png
│ │ ├── emotion_youjian_gif.gif
│ │ ├── emotion_youtaiji.png
│ │ ├── emotion_youtaiji_gif.gif
│ │ ├── emotion_yueliang.png
│ │ ├── emotion_yueliang_gif.gif
│ │ ├── emotion_yun.png
│ │ ├── emotion_yun_gif.gif
│ │ ├── emotion_zaijian.png
│ │ ├── emotion_zaijian_gif.gif
│ │ ├── emotion_zhadan.png
│ │ ├── emotion_zhadan_gif.gif
│ │ ├── emotion_zhijing.png
│ │ ├── emotion_zhijing_gif.gif
│ │ ├── emotion_zhuakuang.png
│ │ ├── emotion_zhuakuang_gif.gif
│ │ ├── emotion_zhuanjie.png
│ │ ├── emotion_zhuanjie_gif.gif
│ │ ├── emotion_zhuanquan.png
│ │ ├── emotion_zhuanquan_gif.gif
│ │ ├── emotion_zhuqiu.png
│ │ ├── emotion_zhuqiu_gif.gif
│ │ ├── emotion_zhutou.png
│ │ ├── emotion_zhutou_gif.gif
│ │ ├── emotion_zouma.png
│ │ ├── emotion_zouma_gif.gif
│ │ ├── emotion_zuochetou.png
│ │ ├── emotion_zuochetou_gif.gif
│ │ ├── emotion_zuohengheng.png
│ │ ├── emotion_zuohengheng_gif.gif
│ │ ├── emotion_zuotaiji.png
│ │ ├── emotion_zuotaiji_gif.gif
│ │ ├── msg_state_fail_resend.png
│ │ ├── record_microphone.xml
│ │ ├── record_microphone_bj.xml
│ │ ├── voice_left.xml
│ │ └── voice_right.xml
│ │ ├── layout
│ │ ├── activity_contact.xml
│ │ ├── activity_full_image.xml
│ │ ├── activity_main.xml
│ │ ├── dialog_contact.xml
│ │ ├── fragment_chat_emotion.xml
│ │ ├── fragment_chat_function.xml
│ │ ├── include_reply_layout.xml
│ │ ├── item_chat_accept.xml
│ │ ├── item_chat_send.xml
│ │ ├── item_contact.xml
│ │ ├── layout_microphone.xml
│ │ └── popup_context_menu.xml
│ │ ├── mipmap-hdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ ├── icon_chat_add.png
│ │ ├── icon_chat_expression.png
│ │ ├── icon_chat_photo.png
│ │ ├── icon_chat_photograph.png
│ │ ├── icon_chat_voice.png
│ │ ├── icon_voice_left1.png
│ │ ├── icon_voice_left2.png
│ │ ├── icon_voice_left3.png
│ │ ├── icon_voice_right1.png
│ │ ├── icon_voice_right2.png
│ │ ├── icon_voice_right3.png
│ │ ├── record_bottom.png
│ │ └── record_top.png
│ │ ├── mipmap-xxhdpi
│ │ ├── bg1.png
│ │ ├── ic_launcher.png
│ │ ├── icon_add.png
│ │ ├── icon_album.png
│ │ ├── icon_capture.png
│ │ ├── icon_cloud.png
│ │ ├── icon_copy.png
│ │ ├── icon_face.png
│ │ ├── icon_file_excel.png
│ │ ├── icon_file_other.png
│ │ ├── icon_file_pdf.png
│ │ ├── icon_file_ppt.png
│ │ ├── icon_file_word.png
│ │ ├── icon_im_contact.png
│ │ ├── icon_im_file.png
│ │ ├── icon_im_location.png
│ │ ├── icon_keyboard.png
│ │ ├── icon_transmit.png
│ │ ├── icon_voice.png
│ │ └── pic_preview.jpg
│ │ ├── mipmap-xxxhdpi
│ │ └── ic_launcher.png
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ ├── values
│ │ ├── attr.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── xml
│ │ └── file_paths.xml
│ └── test
│ └── java
│ └── com
│ └── rance
│ └── chatui
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── images
└── preview.png
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the ART/Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 | out/
15 |
16 | # Gradle files
17 | .gradle/
18 | build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Log Files
27 | *.log
28 |
29 | # Android Studio Navigation editor temp files
30 | .navigation/
31 |
32 | # Android Studio captures folder
33 | captures/
34 |
35 | # Intellij
36 | *.iml
37 | .idea/workspace.xml
38 | .idea/tasks.xml
39 | .idea/gradle.xml
40 | .idea/dictionaries
41 | .idea/libraries
42 |
43 | # Keystore files
44 | *.jks
45 |
46 | # External native build folder generated in Android Studio 2.2 and later
47 | .externalNativeBuild
48 |
49 | # Google Services (e.g. APIs or Firebase)
50 | google-services.json
51 |
52 | # Freeline
53 | freeline.py
54 | freeline/
55 | freeline_project_description.json
56 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | ChatUI
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
19 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 修改自开源项目:https://github.com/Rance935/ChatUI
2 |
3 | ## 修改内容
4 | + 替换部分图片资源
5 | + 用源生RecyclerView替换了EasyRecyclerView,比较相信官方。
6 | + 修复拍照在7.0系统中无法获取权限问题。
7 | + 增加文件分享,点击文件打开。
8 | + 增加联系人信息分享。
9 | + 长按消息弹出上下文菜单
10 | + 注册app到系统分享面板,能够处理分享自外部的URL、图片、文档。
11 |
12 | ## 截图
13 | 
14 |
15 | ## 问题
16 | 代码结构待优化
17 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "24.0.2"
6 |
7 | aaptOptions {
8 | cruncherEnabled = false
9 | }
10 |
11 | defaultConfig {
12 | applicationId "com.rance.chatui"
13 | minSdkVersion 15
14 | targetSdkVersion 24
15 | versionCode 1
16 | versionName "1.0"
17 | }
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 | }
25 |
26 | dependencies {
27 | compile fileTree(dir: 'libs', include: ['*.jar'])
28 | //noinspection GradleCompatible
29 | compile 'com.android.support:appcompat-v7:24.2.1'
30 | compile 'com.android.support:design:24.2.1'
31 | compile 'com.android.support:support-v4:24.2.1'
32 | compile 'org.greenrobot:eventbus:3.0.0'
33 | compile 'com.github.bumptech.glide:glide:3.7.0'
34 | compile 'com.labo.kaji:relativepopupwindow:0.3.1'
35 | compile 'com.android.support.constraint:constraint-layout:1.0.2'
36 | testCompile 'junit:junit:4.12'
37 | }
38 |
--------------------------------------------------------------------------------
/app/libs/BaiduLBS_Android.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/libs/BaiduLBS_Android.jar
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\Users\Administrator\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/rance/chatui/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
27 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
48 |
49 |
54 |
57 |
58 |
59 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/adapter/ChatAdapter.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.adapter;
2 |
3 | import android.os.Handler;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 | import android.widget.ImageView;
8 |
9 | import com.rance.chatui.adapter.holder.BaseViewHolder;
10 | import com.rance.chatui.adapter.holder.ChatAcceptViewHolder;
11 | import com.rance.chatui.adapter.holder.ChatSendViewHolder;
12 | import com.rance.chatui.enity.MessageInfo;
13 | import com.rance.chatui.util.Constants;
14 |
15 | import java.util.ArrayList;
16 | import java.util.List;
17 |
18 | /**
19 | * 作者:Rance on 2016/11/29 10:46
20 | * 邮箱:rance935@163.com
21 | */
22 | public class ChatAdapter extends RecyclerView.Adapter {
23 |
24 | private onItemClickListener onItemClickListener;
25 | public Handler handler;
26 | private List messageInfoList;
27 |
28 | public ChatAdapter(List messageInfoList) {
29 | handler = new Handler();
30 | this.messageInfoList = messageInfoList;
31 | }
32 |
33 | // @Override
34 | // public BaseViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) {
35 | // BaseViewHolder viewHolder = null;
36 | // switch (viewType) {
37 | // case Constants.CHAT_ITEM_TYPE_LEFT:
38 | // viewHolder = new ChatAcceptViewHolder(parent, onItemClickListener, handler);
39 | // break;
40 | // case Constants.CHAT_ITEM_TYPE_RIGHT:
41 | // viewHolder = new ChatSendViewHolder(parent, onItemClickListener, handler);
42 | // break;
43 | // }
44 | // return viewHolder;
45 | // }
46 | //
47 | // @Override
48 | // public int getViewType(int position) {
49 | // return getAllData().get(position).getType();
50 | // }
51 |
52 | public void addItemClickListener(onItemClickListener onItemClickListener) {
53 | this.onItemClickListener = onItemClickListener;
54 | }
55 |
56 | @Override
57 | public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
58 | BaseViewHolder viewHolder = null;
59 | switch (viewType) {
60 | case Constants.CHAT_ITEM_TYPE_LEFT:
61 | viewHolder = new ChatAcceptViewHolder(parent, onItemClickListener, handler);
62 | break;
63 | case Constants.CHAT_ITEM_TYPE_RIGHT:
64 | viewHolder = new ChatSendViewHolder(parent, onItemClickListener, handler);
65 | break;
66 | }
67 | return viewHolder;
68 | }
69 |
70 | @Override
71 | public void onBindViewHolder(BaseViewHolder holder, int position) {
72 | holder.itemView.setTag(position);
73 | holder.setData(messageInfoList.get(position));
74 | }
75 |
76 | @Override
77 | public int getItemViewType(int position) {
78 | return messageInfoList.get(position).getType();
79 | }
80 |
81 | @Override
82 | public int getItemCount() {
83 | if (messageInfoList == null) {
84 | return 0;
85 | } else {
86 | return messageInfoList.size();
87 | }
88 | }
89 |
90 | public void addAll(List messageInfos) {
91 | if (messageInfoList == null) {
92 | messageInfoList = messageInfos;
93 | } else {
94 | messageInfoList.addAll(messageInfos);
95 | }
96 |
97 | notifyDataSetChanged();
98 | }
99 |
100 | public void add(MessageInfo messageInfo) {
101 | if (messageInfoList == null) {
102 | messageInfoList = new ArrayList<>();
103 | }
104 |
105 | messageInfoList.add(messageInfo);
106 |
107 | notifyDataSetChanged();
108 | }
109 |
110 | public interface onItemClickListener {
111 | void onHeaderClick(int position);
112 |
113 | void onImageClick(View view, int position);
114 |
115 | void onVoiceClick(ImageView imageView, int position);
116 |
117 | void onFileClick(View view, int position);
118 |
119 | void onLinkClick(View view, int position);
120 |
121 | void onLongClickImage(View view, int position);
122 |
123 | void onLongClickText(View view, int position);
124 |
125 | void onLongClickItem(View view, int position);
126 |
127 | void onLongClickFile(View view, int position);
128 |
129 | void onLongClickLink(View view, int position);
130 | }
131 | }
132 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/adapter/CommonFragmentPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.adapter;
2 |
3 | import android.support.v4.app.Fragment;
4 | import android.support.v4.app.FragmentManager;
5 | import android.support.v4.app.FragmentPagerAdapter;
6 |
7 | import java.util.ArrayList;
8 |
9 | /**
10 | * 作者:Rance on 2016/11/25 16:36
11 | * 邮箱:rance935@163.com
12 | */
13 | public class CommonFragmentPagerAdapter extends FragmentPagerAdapter {
14 | ArrayList list;
15 |
16 | public CommonFragmentPagerAdapter(FragmentManager fm, ArrayList list) {
17 | super(fm);
18 | this.list = list;
19 | }
20 |
21 | @Override
22 | public Fragment getItem(int position) {
23 | return list.get(position);
24 | }
25 |
26 | @Override
27 | public int getCount() {
28 | return list != null ? list.size() : 0;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/adapter/ContactAdapter.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.adapter;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 | import android.widget.TextView;
8 |
9 | import com.rance.chatui.R;
10 | import com.rance.chatui.enity.IMContact;
11 |
12 | import java.util.List;
13 |
14 |
15 | /**
16 | * Created by chengz
17 | *
18 | * @date 2017/8/3.
19 | */
20 |
21 | public class ContactAdapter extends RecyclerView.Adapter
22 | implements View.OnClickListener {
23 | private List imContactList;
24 | private OnContactClickListener mOnContactClickListener;
25 |
26 | public ContactAdapter(List imContactList) {
27 | this.imContactList = imContactList;
28 | }
29 | @Override
30 | public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
31 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_contact, parent, false);
32 | ViewHolder viewHolder = new ViewHolder(view);
33 | viewHolder.itemView.setOnClickListener(this);
34 | return viewHolder;
35 | }
36 |
37 | @Override
38 | public void onBindViewHolder(ViewHolder holder, int position) {
39 | IMContact imContact = imContactList.get(position);
40 | holder.tvName.setText(imContact.getName());
41 | holder.tvPhone.setText(imContact.getPhonenumber());
42 |
43 | holder.itemView.setTag(imContact);
44 | }
45 |
46 | @Override
47 | public int getItemCount() {
48 | return imContactList.size();
49 | }
50 |
51 | @Override
52 | public void onClick(View v) {
53 | if (mOnContactClickListener == null) {
54 | return;
55 | }
56 |
57 | mOnContactClickListener.onContactClick(v, (IMContact) v.getTag());
58 | }
59 |
60 | public class ViewHolder extends RecyclerView.ViewHolder {
61 | TextView tvName;
62 | TextView tvPhone;
63 | public ViewHolder(View itemView) {
64 | super(itemView);
65 | tvName = (TextView) itemView.findViewById(R.id.tv_name);
66 | tvPhone = (TextView) itemView.findViewById(R.id.tv_phone);
67 | }
68 | }
69 |
70 | public interface OnContactClickListener {
71 | void onContactClick(View view, IMContact imContact);
72 | }
73 |
74 | public void setOnContactClickListener(OnContactClickListener onContactClickListener) {
75 | this.mOnContactClickListener = onContactClickListener;
76 | }
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/adapter/EmotionGridViewAdapter.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.adapter;
2 |
3 | import android.content.Context;
4 | import android.view.View;
5 | import android.view.ViewGroup;
6 | import android.widget.AbsListView.LayoutParams;
7 | import android.widget.BaseAdapter;
8 | import android.widget.ImageView;
9 |
10 | import com.rance.chatui.R;
11 | import com.rance.chatui.util.EmotionUtils;
12 |
13 | import java.util.List;
14 | /**
15 | * 作者:Rance on 2016/11/29 10:47
16 | * 邮箱:rance935@163.com
17 | */
18 | public class EmotionGridViewAdapter extends BaseAdapter {
19 |
20 | private Context context;
21 | private List emotionNames;
22 | private int itemWidth;
23 |
24 | public EmotionGridViewAdapter(Context context, List emotionNames, int itemWidth) {
25 | this.context = context;
26 | this.emotionNames = emotionNames;
27 | this.itemWidth = itemWidth;
28 | }
29 |
30 | @Override
31 | public int getCount() {
32 | // +1 最后一个为删除按钮
33 | return emotionNames.size() + 1;
34 | }
35 |
36 | @Override
37 | public String getItem(int position) {
38 | return emotionNames.get(position);
39 | }
40 |
41 | @Override
42 | public long getItemId(int position) {
43 | return position;
44 | }
45 |
46 | @Override
47 | public View getView(int position, View convertView, ViewGroup parent) {
48 | ImageView iv_emotion = new ImageView(context);
49 | // 设置内边距
50 | iv_emotion.setPadding(itemWidth / 8, itemWidth / 8, itemWidth / 8, itemWidth / 8);
51 | LayoutParams params = new LayoutParams(itemWidth, itemWidth);
52 | iv_emotion.setLayoutParams(params);
53 |
54 | //判断是否为最后一个item
55 | if (position == getCount() - 1) {
56 | iv_emotion.setImageResource(R.drawable.compose_emotion_delete);
57 | } else {
58 | String emotionName = emotionNames.get(position);
59 | iv_emotion.setImageResource(EmotionUtils.EMOTION_STATIC_MAP.get(emotionName));
60 | }
61 |
62 | return iv_emotion;
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/adapter/EmotionPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.adapter;
2 |
3 | import android.support.v4.view.PagerAdapter;
4 | import android.support.v4.view.ViewPager;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 | import android.widget.GridView;
8 |
9 | import java.util.List;
10 |
11 | /**
12 | * 作者:Rance on 2016/11/29 10:47
13 | * 邮箱:rance935@163.com
14 | */
15 | public class EmotionPagerAdapter extends PagerAdapter {
16 |
17 | private List gvs;
18 |
19 | public EmotionPagerAdapter(List gvs) {
20 | this.gvs = gvs;
21 | }
22 |
23 | @Override
24 | public int getCount() {
25 | return gvs.size();
26 | }
27 |
28 | @Override
29 | public boolean isViewFromObject(View arg0, Object arg1) {
30 | return arg0 == arg1;
31 | }
32 |
33 | @Override
34 | public void destroyItem(ViewGroup container, int position, Object object) {
35 | ((ViewPager) container).removeView(gvs.get(position));
36 | }
37 |
38 | @Override
39 | public Object instantiateItem(ViewGroup container, int position) {
40 | ((ViewPager) container).addView(gvs.get(position));
41 | return gvs.get(position);
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/adapter/holder/BaseViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.adapter.holder;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.view.View;
5 |
6 | /**
7 | * Created by chengz
8 | *
9 | * @date 2017/8/3.
10 | */
11 |
12 | public class BaseViewHolder extends RecyclerView.ViewHolder {
13 |
14 | public BaseViewHolder(View itemView) {
15 | super(itemView);
16 | }
17 |
18 | public void setData(M data) {
19 |
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/base/BaseFragment.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.base;
2 |
3 |
4 | import android.app.Activity;
5 | import android.app.ProgressDialog;
6 | import android.os.Bundle;
7 | import android.support.annotation.Nullable;
8 | import android.support.v4.app.Fragment;
9 | import android.view.LayoutInflater;
10 | import android.view.View;
11 | import android.view.ViewGroup;
12 | import android.widget.Toast;
13 |
14 | /**
15 | * 作者:Rance on 2016/11/18 15:19
16 | * 邮箱:rance935@163.com
17 | */
18 | public class BaseFragment extends Fragment {
19 | public Activity mActivity;
20 |
21 | @Nullable
22 | @Override
23 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
24 | mActivity = getActivity();
25 | return super.onCreateView(inflater, container, savedInstanceState);
26 | }
27 |
28 | @Override
29 | public void onViewCreated(View view, Bundle savedInstanceState) {
30 | super.onViewCreated(view, savedInstanceState);
31 | mActivity = getActivity();
32 | }
33 |
34 | public void toastShow(int resId) {
35 | Toast.makeText(mActivity, resId, Toast.LENGTH_SHORT).show();
36 | }
37 |
38 | public void toastShow(String resId) {
39 | Toast.makeText(mActivity, resId, Toast.LENGTH_SHORT).show();
40 | }
41 |
42 | public ProgressDialog progressDialog;
43 |
44 | public ProgressDialog showProgressDialog() {
45 | progressDialog = new ProgressDialog(mActivity);
46 | progressDialog.setMessage("加载中");
47 | progressDialog.show();
48 | return progressDialog;
49 | }
50 |
51 | public ProgressDialog showProgressDialog(CharSequence message) {
52 | progressDialog = new ProgressDialog(mActivity);
53 | progressDialog.setMessage(message);
54 | progressDialog.show();
55 | return progressDialog;
56 | }
57 |
58 | public void dismissProgressDialog() {
59 | if (progressDialog != null && progressDialog.isShowing()) {
60 | // progressDialog.hide();会导致android.view.WindowLeaked
61 | progressDialog.dismiss();
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/base/MyApplication.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.base;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 | import android.util.DisplayMetrics;
6 |
7 | /**
8 | * 作者:Rance on 2016/12/20 16:49
9 | * 邮箱:rance935@163.com
10 | */
11 | public class MyApplication extends Application {
12 | private static MyApplication mInstance;
13 | public static Context mContext;
14 | /**
15 | * 屏幕宽度
16 | */
17 | public static int screenWidth;
18 | /**
19 | * 屏幕高度
20 | */
21 | public static int screenHeight;
22 | /**
23 | * 屏幕密度
24 | */
25 | public static float screenDensity;
26 |
27 | @Override
28 | public void onCreate() {
29 | super.onCreate();
30 | mContext = getApplicationContext();
31 | mInstance = this;
32 | initScreenSize();
33 | }
34 |
35 | public static Context getInstance() {
36 | return mInstance;
37 | }
38 |
39 | /**
40 | * 初始化当前设备屏幕宽高
41 | */
42 | private void initScreenSize() {
43 | DisplayMetrics curMetrics = getApplicationContext().getResources().getDisplayMetrics();
44 | screenWidth = curMetrics.widthPixels;
45 | screenHeight = curMetrics.heightPixels;
46 | screenDensity = curMetrics.density;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/enity/FullImageInfo.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.enity;
2 |
3 | /**
4 | * 作者:Rance on 2016/12/21 16:22
5 | * 邮箱:rance935@163.com
6 | */
7 | public class FullImageInfo {
8 | private int locationX;
9 | private int locationY;
10 | private int width;
11 | private int height;
12 | private String imageUrl;
13 |
14 | public int getLocationX() {
15 | return locationX;
16 | }
17 |
18 | public void setLocationX(int locationX) {
19 | this.locationX = locationX;
20 | }
21 |
22 | public int getLocationY() {
23 | return locationY;
24 | }
25 |
26 | public void setLocationY(int locationY) {
27 | this.locationY = locationY;
28 | }
29 |
30 | public int getWidth() {
31 | return width;
32 | }
33 |
34 | public void setWidth(int width) {
35 | this.width = width;
36 | }
37 |
38 | public int getHeight() {
39 | return height;
40 | }
41 |
42 | public void setHeight(int height) {
43 | this.height = height;
44 | }
45 |
46 | public String getImageUrl() {
47 | return imageUrl;
48 | }
49 |
50 | public void setImageUrl(String imageUrl) {
51 | this.imageUrl = imageUrl;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/enity/IMContact.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.enity;
2 |
3 | /**
4 | * Created by chengz
5 | *
6 | * @date 2017/8/3.
7 | */
8 |
9 | public class IMContact {
10 | String name, phonenumber, surname;
11 |
12 | public IMContact(String name, String phonenumber) {
13 | this.name = name;
14 | this.phonenumber = phonenumber;
15 | }
16 |
17 | public String getName() {
18 | return name;
19 | }
20 |
21 | public void setName(String name) {
22 | this.name = name;
23 | }
24 |
25 | public String getPhonenumber() {
26 | return phonenumber;
27 | }
28 |
29 | public void setPhonenumber(String phonenumber) {
30 | this.phonenumber = phonenumber;
31 | }
32 |
33 | public String getSurname() {
34 | return surname;
35 | }
36 |
37 | public void setSurname(String surname) {
38 | this.surname = surname;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/enity/Link.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.enity;
2 |
3 | /**
4 | * Created by chengz
5 | *
6 | * @date 2017/8/4.
7 | */
8 |
9 | public class Link {
10 | String subject, text, stream, url;
11 |
12 | public String getSubject() {
13 | return subject;
14 | }
15 |
16 | public void setSubject(String subject) {
17 | this.subject = subject;
18 | }
19 |
20 | public String getText() {
21 | return text;
22 | }
23 |
24 | public void setText(String text) {
25 | this.text = text;
26 | }
27 |
28 | public String getStream() {
29 | return stream;
30 | }
31 |
32 | public void setStream(String stream) {
33 | this.stream = stream;
34 | }
35 |
36 | public String getUrl() {
37 | return url;
38 | }
39 |
40 | public void setUrl(String url) {
41 | this.url = url;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/enity/MessageInfo.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.enity;
2 |
3 | /**
4 | * 作者:Rance on 2016/12/14 14:13
5 | * 邮箱:rance935@163.com
6 | */
7 | public class MessageInfo {
8 | private int type;
9 | private String content;
10 | private String filepath;
11 | private int sendState;
12 | private String time;
13 | private String header;
14 | private long voiceTime;
15 | private String msgId;
16 | private String fileType;
17 | private Object object;
18 | private String mimeType;
19 |
20 | public Object getObject() {
21 | return object;
22 | }
23 |
24 | public void setObject(Object object) {
25 | this.object = object;
26 | }
27 |
28 | public String getFileType() {
29 | return fileType;
30 | }
31 |
32 | public void setFileType(String fileType) {
33 | this.fileType = fileType;
34 | }
35 |
36 | public int getType() {
37 | return type;
38 | }
39 |
40 | public void setType(int type) {
41 | this.type = type;
42 | }
43 |
44 | public String getContent() {
45 | return content;
46 | }
47 |
48 | public void setContent(String content) {
49 | this.content = content;
50 | }
51 |
52 | public String getFilepath() {
53 | return filepath;
54 | }
55 |
56 | public void setFilepath(String filepath) {
57 | this.filepath = filepath;
58 | }
59 |
60 | public int getSendState() {
61 | return sendState;
62 | }
63 |
64 | public void setSendState(int sendState) {
65 | this.sendState = sendState;
66 | }
67 |
68 | public String getTime() {
69 | return time;
70 | }
71 |
72 | public void setTime(String time) {
73 | this.time = time;
74 | }
75 |
76 | public String getHeader() {
77 | return header;
78 | }
79 |
80 | public void setHeader(String header) {
81 | this.header = header;
82 | }
83 |
84 | public long getVoiceTime() {
85 | return voiceTime;
86 | }
87 |
88 | public void setVoiceTime(long voiceTime) {
89 | this.voiceTime = voiceTime;
90 | }
91 |
92 | public String getMsgId() {
93 | return msgId;
94 | }
95 |
96 | public void setMsgId(String msgId) {
97 | this.msgId = msgId;
98 | }
99 |
100 | public String getMimeType() {
101 | return mimeType;
102 | }
103 |
104 | public void setMimeType(String mimeType) {
105 | this.mimeType = mimeType;
106 | }
107 |
108 | @Override
109 | public String toString() {
110 | return "MessageInfo{" +
111 | "type=" + type +
112 | ", content='" + content + '\'' +
113 | ", filepath='" + filepath + '\'' +
114 | ", sendState=" + sendState +
115 | ", time='" + time + '\'' +
116 | ", header='" + header + '\'' +
117 | ", mimeType='" + mimeType + '\'' +
118 | ", voiceTime=" + voiceTime +
119 | ", msgId='" + msgId + '\'' +
120 | ", fileType='" + fileType + '\'' +
121 | ", object=" + object +
122 | '}';
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/ui/activity/FullImageActivity.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.ui.activity;
2 |
3 | import android.animation.ObjectAnimator;
4 | import android.annotation.TargetApi;
5 | import android.app.Activity;
6 | import android.graphics.Color;
7 | import android.graphics.drawable.ColorDrawable;
8 | import android.graphics.drawable.Drawable;
9 | import android.os.Build;
10 | import android.os.Bundle;
11 | import android.view.View;
12 | import android.view.ViewTreeObserver;
13 | import android.view.Window;
14 | import android.view.WindowManager;
15 | import android.view.animation.DecelerateInterpolator;
16 | import android.widget.ImageView;
17 | import android.widget.LinearLayout;
18 |
19 | import com.bumptech.glide.Glide;
20 | import com.rance.chatui.R;
21 | import com.rance.chatui.enity.FullImageInfo;
22 |
23 | import org.greenrobot.eventbus.EventBus;
24 | import org.greenrobot.eventbus.Subscribe;
25 | import org.greenrobot.eventbus.ThreadMode;
26 |
27 |
28 | /**
29 | * 作者:Rance on 2016/12/15 15:56
30 | * 邮箱:rance935@163.com
31 | */
32 | public class FullImageActivity extends Activity {
33 |
34 | ImageView fullImage;
35 | LinearLayout fullLay;
36 | private int mLeft;
37 | private int mTop;
38 | private float mScaleX;
39 | private float mScaleY;
40 | private Drawable mBackground;
41 |
42 | @Override
43 | protected void onCreate(Bundle savedInstanceState) {
44 | super.onCreate(savedInstanceState);
45 | requestWindowFeature(Window.FEATURE_NO_TITLE);
46 | setContentView(R.layout.activity_full_image);
47 | fullImage = (ImageView) findViewById(R.id.full_image);
48 | fullLay = (LinearLayout) findViewById(R.id.full_lay);
49 |
50 | fullImage.setOnClickListener(new View.OnClickListener() {
51 | @Override
52 | public void onClick(View v) {
53 | onImageClick();
54 | }
55 | });
56 |
57 | EventBus.getDefault().register(this);
58 | }
59 |
60 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
61 | @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) //在ui线程执行
62 | public void onDataSynEvent(final FullImageInfo fullImageInfo) {
63 | final int left = fullImageInfo.getLocationX();
64 | final int top = fullImageInfo.getLocationY();
65 | final int width = fullImageInfo.getWidth();
66 | final int height = fullImageInfo.getHeight();
67 | mBackground = new ColorDrawable(Color.BLACK);
68 | fullLay.setBackground(mBackground);
69 | fullImage.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
70 | @Override
71 | public boolean onPreDraw() {
72 | fullImage.getViewTreeObserver().removeOnPreDrawListener(this);
73 | int location[] = new int[2];
74 | fullImage.getLocationOnScreen(location);
75 | mLeft = left - location[0];
76 | mTop = top - location[1];
77 | mScaleX = width * 1.0f / fullImage.getWidth();
78 | mScaleY = height * 1.0f / fullImage.getHeight();
79 | activityEnterAnim();
80 | return true;
81 | }
82 | });
83 | Glide.with(this).load(fullImageInfo.getImageUrl()).into(fullImage);
84 | }
85 |
86 | private void activityEnterAnim() {
87 | fullImage.setPivotX(0);
88 | fullImage.setPivotY(0);
89 | fullImage.setScaleX(mScaleX);
90 | fullImage.setScaleY(mScaleY);
91 | fullImage.setTranslationX(mLeft);
92 | fullImage.setTranslationY(mTop);
93 | fullImage.animate().scaleX(1).scaleY(1).translationX(0).translationY(0).
94 | setDuration(500).setInterpolator(new DecelerateInterpolator()).start();
95 | ObjectAnimator objectAnimator = ObjectAnimator.ofInt(mBackground, "alpha", 0, 255);
96 | objectAnimator.setInterpolator(new DecelerateInterpolator());
97 | objectAnimator.setDuration(500);
98 | objectAnimator.start();
99 | }
100 |
101 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
102 | private void activityExitAnim(Runnable runnable) {
103 | fullImage.setPivotX(0);
104 | fullImage.setPivotY(0);
105 | fullImage.animate().scaleX(mScaleX).scaleY(mScaleY).translationX(mLeft).translationY(mTop).
106 | withEndAction(runnable).
107 | setDuration(500).setInterpolator(new DecelerateInterpolator()).start();
108 | ObjectAnimator objectAnimator = ObjectAnimator.ofInt(mBackground, "alpha", 255, 0);
109 | objectAnimator.setInterpolator(new DecelerateInterpolator());
110 | objectAnimator.setDuration(500);
111 | objectAnimator.start();
112 | }
113 |
114 | @Override
115 | public void onBackPressed() {
116 | activityExitAnim(new Runnable() {
117 | @Override
118 | public void run() {
119 | finish();
120 | overridePendingTransition(0, 0);
121 | }
122 | });
123 | }
124 |
125 | public void onImageClick() {
126 | activityExitAnim(new Runnable() {
127 | @Override
128 | public void run() {
129 | finish();
130 | overridePendingTransition(0, 0);
131 | }
132 | });
133 | }
134 |
135 | @Override
136 | protected void onDestroy() {
137 | EventBus.getDefault().unregister(this);
138 | super.onDestroy();
139 | }
140 |
141 | }
142 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/CheckPermissionUtils.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.content.Context;
4 | import android.content.DialogInterface;
5 | import android.content.Intent;
6 | import android.media.AudioFormat;
7 | import android.media.AudioRecord;
8 | import android.media.MediaRecorder;
9 | import android.provider.Settings;
10 | import android.support.v7.app.AlertDialog;
11 |
12 | /**
13 | * 作者:Rance on 2016/12/14 11:09
14 | * 邮箱:rance935@163.com
15 | */
16 | public class CheckPermissionUtils {
17 | // 音频获取源
18 | public static int audioSource = MediaRecorder.AudioSource.MIC;
19 | // 设置音频采样率,44100是目前的标准,但是某些设备仍然支持22050,16000,11025
20 | public static int sampleRateInHz = 44100;
21 | // 设置音频的录制的声道CHANNEL_IN_STEREO为双声道,CHANNEL_CONFIGURATION_MONO为单声道
22 | public static int channelConfig = AudioFormat.CHANNEL_IN_STEREO;
23 | // 音频数据格式:PCM 16位每个样本。保证设备支持。PCM 8位每个样本。不一定能得到设备支持。
24 | public static int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
25 | // 缓冲区字节大小
26 | public static int bufferSizeInBytes = 0;
27 |
28 | /**
29 | * 判断是是否有录音权限
30 | */
31 | public static boolean isHasPermission(final Context context){
32 | bufferSizeInBytes = 0;
33 | bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz,
34 | channelConfig, audioFormat);
35 | AudioRecord audioRecord = new AudioRecord(audioSource, sampleRateInHz,
36 | channelConfig, audioFormat, bufferSizeInBytes);
37 | //开始录制音频
38 | try{
39 | // 防止某些手机崩溃,例如联想
40 | audioRecord.startRecording();
41 | }catch (IllegalStateException e){
42 | e.printStackTrace();
43 | }
44 | /**
45 | * 根据开始录音判断是否有录音权限
46 | */
47 | if (audioRecord.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING) {
48 | new AlertDialog.Builder(context)
49 | .setTitle("提示")
50 | .setMessage("经检测语音权限未开启,设置方法:三方手机管理(应用宝、360)->安全->权限管理程序->应用程序->勾选语音权限。或去设置中心找到应用设置权限")
51 | .setNegativeButton("取消", new DialogInterface.OnClickListener() {
52 | @Override
53 | public void onClick(DialogInterface dialog, int which) {
54 | dialog.dismiss();
55 | }
56 | })
57 | .setPositiveButton("去设置", new DialogInterface.OnClickListener() {
58 | @Override
59 | public void onClick(DialogInterface dialog, int which) {
60 | dialog.dismiss();
61 | context.startActivity(new Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS));
62 | }
63 | })
64 | .show();
65 | return false;
66 | }
67 | audioRecord.stop();
68 | audioRecord.release();
69 | audioRecord = null;
70 | return true;
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/Constants.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | /**
4 | * 作者:Rance on 2016/12/20 16:51
5 | * 邮箱:rance935@163.com
6 | */
7 | public class Constants {
8 | public static final String TAG = "rance";
9 | public static final String AUTHORITY = "com.chatui.fileprovider";
10 | /** 0x001-接受消息 0x002-发送消息**/
11 | public static final int CHAT_ITEM_TYPE_LEFT = 0x001;
12 | public static final int CHAT_ITEM_TYPE_RIGHT = 0x002;
13 | /** 0x003-发送中 0x004-发送失败 0x005-发送成功**/
14 | public static final int CHAT_ITEM_SENDING = 0x003;
15 | public static final int CHAT_ITEM_SEND_ERROR = 0x004;
16 | public static final int CHAT_ITEM_SEND_SUCCESS = 0x005;
17 |
18 | public static final String CHAT_FILE_TYPE_TEXT = "text";
19 | public static final String CHAT_FILE_TYPE_FILE = "file";
20 | public static final String CHAT_FILE_TYPE_IMAGE = "image";
21 | public static final String CHAT_FILE_TYPE_VOICE = "voice";
22 | public static final String CHAT_FILE_TYPE_CONTACT = "contact";
23 | public static final String CHAT_FILE_TYPE_LINK = "LINK";
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/GlobalOnItemClickManagerUtils.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.content.Context;
4 | import android.view.KeyEvent;
5 | import android.view.View;
6 | import android.widget.AdapterView;
7 | import android.widget.EditText;
8 |
9 | import com.rance.chatui.adapter.EmotionGridViewAdapter;
10 |
11 | /**
12 | * 作者:Rance on 2016/11/29 10:47
13 | * 邮箱:rance935@163.com
14 | * 点击表情的全局监听管理类
15 | */
16 | public class GlobalOnItemClickManagerUtils {
17 |
18 | private static GlobalOnItemClickManagerUtils instance;
19 | private EditText mEditText;//输入框
20 | private static Context mContext;
21 |
22 | public static GlobalOnItemClickManagerUtils getInstance(Context context) {
23 | mContext = context;
24 | if (instance == null) {
25 | synchronized (GlobalOnItemClickManagerUtils.class) {
26 | if (instance == null) {
27 | instance = new GlobalOnItemClickManagerUtils();
28 | }
29 | }
30 | }
31 | return instance;
32 | }
33 |
34 | public void attachToEditText(EditText editText) {
35 | mEditText = editText;
36 | }
37 |
38 | public AdapterView.OnItemClickListener getOnItemClickListener() {
39 | return new AdapterView.OnItemClickListener() {
40 | @Override
41 | public void onItemClick(AdapterView> parent, View view, int position, long id) {
42 | Object itemAdapter = parent.getAdapter();
43 |
44 | if (itemAdapter instanceof EmotionGridViewAdapter) {
45 | // 点击的是表情
46 | EmotionGridViewAdapter emotionGvAdapter = (EmotionGridViewAdapter) itemAdapter;
47 |
48 | if (position == emotionGvAdapter.getCount() - 1) {
49 | // 如果点击了最后一个回退按钮,则调用删除键事件
50 | mEditText.dispatchKeyEvent(new KeyEvent(
51 | KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
52 | } else {
53 | // 如果点击了表情,则添加到输入框中
54 | String emotionName = emotionGvAdapter.getItem(position);
55 |
56 | // 获取当前光标位置,在指定位置上添加表情图片文本
57 | int curPosition = mEditText.getSelectionStart();
58 | StringBuilder sb = new StringBuilder(mEditText.getText().toString());
59 | sb.insert(curPosition, emotionName);
60 |
61 | // 特殊文字处理,将表情等转换一下
62 | mEditText.setText(Utils.getEmotionContent(mContext, mEditText, sb.toString()));
63 |
64 | // 将光标设置到新增完表情的右侧
65 | mEditText.setSelection(curPosition + emotionName.length());
66 | }
67 |
68 | }
69 | }
70 | };
71 | }
72 |
73 | }
74 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/MediaManager.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.media.AudioManager;
4 | import android.media.MediaPlayer;
5 | import android.media.MediaPlayer.OnCompletionListener;
6 | import android.media.MediaPlayer.OnErrorListener;
7 |
8 | /**
9 | * 作者:Rance on 2016/12/15 15:11
10 | * 邮箱:rance935@163.com
11 | */
12 | public class MediaManager {
13 |
14 | private static MediaPlayer mMediaPlayer;
15 | private static boolean isPause;
16 |
17 | /**
18 | * 播放音乐
19 | *
20 | * @param filePath
21 | * @param onCompletionListener
22 | */
23 | public static void playSound(final String filePath, final OnCompletionListener onCompletionListener) {
24 | if (mMediaPlayer == null) {
25 | mMediaPlayer = new MediaPlayer();
26 |
27 | //设置一个error监听器
28 | mMediaPlayer.setOnErrorListener(new OnErrorListener() {
29 |
30 | public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
31 | mMediaPlayer.reset();
32 | return false;
33 | }
34 | });
35 | } else {
36 | mMediaPlayer.reset();
37 | }
38 | try {
39 | mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
40 | mMediaPlayer.setOnCompletionListener(onCompletionListener);
41 | mMediaPlayer.setDataSource(filePath);
42 | mMediaPlayer.prepare();
43 | mMediaPlayer.start();
44 | } catch (Exception e) {
45 |
46 | }
47 | }
48 |
49 | /**
50 | * 暂停播放
51 | */
52 | public static void pause() {
53 | if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { //正在播放的时候
54 | mMediaPlayer.pause();
55 | isPause = true;
56 | }
57 | }
58 |
59 | /**
60 | * 当前是isPause状态
61 | */
62 | public static void resume() {
63 | if (mMediaPlayer != null && isPause) {
64 | mMediaPlayer.start();
65 | isPause = false;
66 | }
67 | }
68 |
69 | /**
70 | * 释放资源
71 | */
72 | public static void release() {
73 | if (mMediaPlayer != null) {
74 | mMediaPlayer.release();
75 | mMediaPlayer = null;
76 | }
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/MessageCenter.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.net.Uri;
6 | import android.os.Bundle;
7 | import android.util.Log;
8 |
9 | import com.rance.chatui.enity.Link;
10 | import com.rance.chatui.enity.MessageInfo;
11 |
12 | import org.greenrobot.eventbus.EventBus;
13 |
14 | /**
15 | * Created by chengz
16 | *
17 | * @date 2017/8/4.
18 | */
19 |
20 | public class MessageCenter {
21 | private static final String TAG = "MessageCenter";
22 | //including images and links
23 | public final static String MIME_TYPE_IMAGE = "image/*";
24 | public final static String MIME_TYPE_IMAGE_JPG = "image/jpg";
25 | public final static String MIME_TYPE_IMAGE_JPEG = "image/jpeg";
26 | public final static String MIME_TYPE_IMAGE_PNG = "image/png";
27 | public final static String MIME_TYPE_IMAGE_BMP = "image/x-ms-bmp";
28 | public final static String MIME_TYPE_IMAGE_OTHER = "image/x-adobe-dng";
29 | public final static String MIME_TYPE_PDF = "application/pdf";
30 | public final static String MIME_TYPE_XLS = "application/vnd.ms-excel";
31 | public final static String MIME_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
32 | public final static String MIME_TYPE_DOC = "application/msword";
33 | public final static String MIME_TYPE_DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
34 | public final static String MIME_TYPE_PPT = "application/vnd.ms-powerpoint";
35 | public final static String MIME_TYPE_PPTX = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
36 | public final static String MIME_TYPE_TEXT = "text/plain";
37 | /**
38 | * process received messages
39 | * @param bundle
40 | * @param mimeType
41 | */
42 | public static void handleIncoming(Bundle bundle, String mimeType, Activity activity) {
43 | for (String key : bundle.keySet()) {
44 | Log.e(TAG, "handleIncomeAction: " + key + " => " + bundle.get(key) + ";");
45 | }
46 | //
47 | // Log.e(TAG, "handleIncomeAction: ->" + mimeType);
48 | Log.e(TAG, "handleIncoming: mimeType->" + mimeType);
49 | if (mimeType == null) {
50 | return;
51 | }
52 | switch (mimeType) {
53 | case MIME_TYPE_IMAGE:
54 | case MIME_TYPE_IMAGE_JPG:
55 | case MIME_TYPE_IMAGE_JPEG:
56 | case MIME_TYPE_IMAGE_PNG:
57 | case MIME_TYPE_IMAGE_BMP:
58 | case MIME_TYPE_IMAGE_OTHER:
59 | if (bundle.containsKey("url") && bundle.getString("url") != null
60 | && !"" .equals(bundle.getString("url"))) {
61 | Log.e(TAG, "handleIncoming: url->" + bundle.getString("url") );
62 | // link
63 | MessageInfo messageInfo = new MessageInfo();
64 | messageInfo.setMimeType(mimeType);
65 | messageInfo.setFileType(Constants.CHAT_FILE_TYPE_LINK);
66 | Link link = new Link();
67 | link.setSubject(bundle.getString(Intent.EXTRA_SUBJECT));
68 | link.setText(bundle.getString(Intent.EXTRA_TEXT));
69 | link.setStream(bundle.get(Intent.EXTRA_STREAM).toString());
70 | link.setUrl(bundle.getString("url"));
71 | messageInfo.setObject(link);
72 | EventBus.getDefault().post(messageInfo);
73 | } else {
74 | // image
75 | Log.e(TAG, "handleIncoming: stream ->" + bundle.getString(Intent.EXTRA_STREAM) );
76 | MessageInfo messageInfo = new MessageInfo();
77 | messageInfo.setMimeType(mimeType);
78 | messageInfo.setFilepath(bundle.get(Intent.EXTRA_STREAM).toString());
79 | messageInfo.setFileType(Constants.CHAT_FILE_TYPE_IMAGE);
80 | EventBus.getDefault().post(messageInfo);
81 | }
82 | break;
83 | case MIME_TYPE_PDF:
84 | case MIME_TYPE_DOC:
85 | case MIME_TYPE_DOCX:
86 | case MIME_TYPE_XLS:
87 | case MIME_TYPE_XLSX:
88 | case MIME_TYPE_PPT:
89 | case MIME_TYPE_PPTX:
90 | case MIME_TYPE_TEXT:
91 | MessageInfo messageInfo = new MessageInfo();
92 | messageInfo.setMimeType(mimeType);
93 | messageInfo.setFileType(Constants.CHAT_FILE_TYPE_FILE);
94 | messageInfo.setFilepath(FileUtils.getFileAbsolutePath(activity, (Uri) bundle.get(Intent.EXTRA_STREAM)));
95 | EventBus.getDefault().post(messageInfo);
96 | break;
97 | default:
98 | break;
99 | }
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/PhotoUtils.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.graphics.Bitmap;
6 | import android.net.Uri;
7 | import android.os.Build;
8 | import android.provider.MediaStore;
9 | import android.support.v4.app.Fragment;
10 | import android.util.Log;
11 |
12 | import com.rance.chatui.base.BaseFragment;
13 |
14 | /**
15 | * Created by chengz
16 | *
17 | * @date 2017/8/1.
18 | */
19 |
20 | public class PhotoUtils {
21 | private static final String TAG = "PhotoUtils";
22 |
23 | /**
24 | * 拍照方法
25 | * @param baseFragment
26 | * @param imageUri
27 | * @param requestCodeCamera
28 | */
29 | public static void takePicture(BaseFragment baseFragment, Uri imageUri, int requestCodeCamera) {
30 | Intent intentCamera = new Intent();
31 | if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
32 | intentCamera.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
33 | }
34 | intentCamera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
35 | intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
36 | Log.e(TAG, "takePicture: ->" + requestCodeCamera);
37 | baseFragment.startActivityForResult(intentCamera, requestCodeCamera);
38 | }
39 |
40 | /**
41 | * 裁剪图片
42 | * @param activity
43 | * @param orgUri
44 | * @param desUri
45 | * @param aspectX
46 | * @param aspectY
47 | * @param width
48 | * @param height
49 | * @param requestCode
50 | */
51 | public static void cropImageUri(Activity activity, Uri orgUri, Uri desUri, int aspectX,
52 | int aspectY, int width, int height, int requestCode) {
53 | Intent intent = new Intent("com.android.camera.action.CROP");
54 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
55 | intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
56 | }
57 |
58 | intent.setDataAndType(orgUri, "image/*");
59 | intent.putExtra("crop", "true");
60 | intent.putExtra("aspectX", aspectX);
61 | intent.putExtra("aspectY", aspectY);
62 | intent.putExtra("outputX", width);
63 | intent.putExtra("outputY", height);
64 | intent.putExtra("scale", true);
65 | intent.putExtra(MediaStore.EXTRA_OUTPUT, desUri);
66 | intent.putExtra("return-data", false);
67 | intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
68 | intent.putExtra("noFaceDetection", true);
69 | activity.startActivityForResult(intent, requestCode);
70 | }
71 |
72 | /**
73 | * open picture
74 | * @param activity
75 | * @param requestCode
76 | */
77 | public static void openPic(Activity activity, int requestCode) {
78 | Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
79 | photoPickerIntent.setType("image/*");
80 | activity.startActivityForResult(photoPickerIntent, requestCode);
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/PopupWindowFactory.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.content.Context;
4 | import android.view.KeyEvent;
5 | import android.view.MotionEvent;
6 | import android.view.View;
7 | import android.view.ViewGroup;
8 | import android.widget.PopupWindow;
9 |
10 |
11 | /**
12 | * 作者:Rance on 2016/11/29 10:47
13 | * 邮箱:rance935@163.com
14 | */
15 | public class PopupWindowFactory {
16 |
17 | private Context mContext;
18 |
19 | private PopupWindow mPop;
20 |
21 | /**
22 | * @param mContext 上下文
23 | * @param view PopupWindow显示的布局文件
24 | */
25 | public PopupWindowFactory(Context mContext, View view){
26 | this(mContext,view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
27 | }
28 |
29 | /**
30 | * @param mContext 上下文
31 | * @param view PopupWindow显示的布局文件
32 | * @param width PopupWindow的宽
33 | * @param heigth PopupWindow的高
34 | */
35 | public PopupWindowFactory(Context mContext, View view, int width, int heigth){
36 | init(mContext,view,width,heigth);
37 | }
38 |
39 |
40 | private void init(Context mContext, View view, int width, int heigth){
41 | this.mContext = mContext;
42 |
43 | //下面这两个必须有!!
44 | view.setFocusable(true);
45 | view.setFocusableInTouchMode(true);
46 |
47 | // PopupWindow(布局,宽度,高度)
48 | mPop = new PopupWindow(view,width,heigth,true);
49 | mPop.setFocusable(true);
50 |
51 | // 重写onKeyListener,按返回键消失
52 | view.setOnKeyListener(new View.OnKeyListener() {
53 | @Override
54 | public boolean onKey(View v, int keyCode, KeyEvent event) {
55 | if (keyCode == KeyEvent.KEYCODE_BACK) {
56 | mPop.dismiss();
57 | return true;
58 | }
59 | return false;
60 | }
61 | });
62 |
63 | //点击其他地方消失
64 | view.setOnTouchListener(new View.OnTouchListener() {
65 | @Override
66 | public boolean onTouch(View v, MotionEvent event) {
67 | if (mPop != null && mPop.isShowing()) {
68 | mPop.dismiss();
69 | return true;
70 | }
71 | return false;
72 | }});
73 |
74 |
75 | }
76 |
77 | public PopupWindow getPopupWindow(){
78 | return mPop;
79 | }
80 |
81 |
82 | /**
83 | * 以触发弹出窗的view为基准,出现在view的内部上面,弹出的pop_view左上角正对view的左上角
84 | * @param parent view
85 | * @param gravity 在view的什么位置 Gravity.CENTER、Gravity.TOP......
86 | * @param x 与控件的x坐标距离
87 | * @param y 与控件的y坐标距离
88 | */
89 | public void showAtLocation(View parent, int gravity, int x, int y){
90 |
91 | if(mPop.isShowing()){
92 | return ;
93 | }
94 | mPop.showAtLocation(parent, gravity, x, y);
95 |
96 | }
97 |
98 | /**
99 | * 以触发弹出窗的view为基准,出现在view的正下方,弹出的pop_view左上角正对view的左下角
100 | * @param anchor view
101 | */
102 | public void showAsDropDown(View anchor){
103 | showAsDropDown(anchor,0,0);
104 | }
105 |
106 | /**
107 | * 以触发弹出窗的view为基准,出现在view的正下方,弹出的pop_view左上角正对view的左下角
108 | * @param anchor view
109 | * @param xoff 与view的x坐标距离
110 | * @param yoff 与view的y坐标距离
111 | */
112 | public void showAsDropDown(View anchor, int xoff, int yoff){
113 | if(mPop.isShowing()){
114 | return ;
115 | }
116 |
117 | mPop.showAsDropDown(anchor, xoff, yoff);
118 | }
119 |
120 | /**
121 | * 隐藏PopupWindow
122 | */
123 | public void dismiss(){
124 | if (mPop.isShowing()) {
125 | mPop.dismiss();
126 | }
127 | }
128 |
129 | }
130 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/util/Utils.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.util;
2 |
3 | import android.content.Context;
4 | import android.content.res.Resources;
5 | import android.graphics.Bitmap;
6 | import android.graphics.BitmapFactory;
7 | import android.text.Spannable;
8 | import android.text.SpannableString;
9 | import android.text.style.ImageSpan;
10 | import android.widget.TextView;
11 |
12 | import java.text.SimpleDateFormat;
13 | import java.util.regex.Matcher;
14 | import java.util.regex.Pattern;
15 |
16 | /**
17 | * 作者:Rance on 2016/12/20 16:41
18 | * 邮箱:rance935@163.com
19 | */
20 | public class Utils {
21 | /**
22 | * dp转dip
23 | *
24 | * @param context
25 | * @param dp
26 | * @return
27 | */
28 | public static int dp2px(Context context, float dp) {
29 | float density = context.getResources().getDisplayMetrics().density;
30 | return (int) (dp * density + 0.5F);
31 | }
32 |
33 | /**
34 | * 文本中的emojb字符处理为表情图片
35 | *
36 | * @param context
37 | * @param tv
38 | * @param source
39 | * @return
40 | */
41 | public static SpannableString getEmotionContent(final Context context, final TextView tv, String source) {
42 | SpannableString spannableString = new SpannableString(source);
43 | Resources res = context.getResources();
44 |
45 | String regexEmotion = "\\[([\u4e00-\u9fa5\\w])+\\]";
46 | Pattern patternEmotion = Pattern.compile(regexEmotion);
47 | Matcher matcherEmotion = patternEmotion.matcher(spannableString);
48 |
49 | while (matcherEmotion.find()) {
50 | // 获取匹配到的具体字符
51 | String key = matcherEmotion.group();
52 | // 匹配字符串的开始位置
53 | int start = matcherEmotion.start();
54 | // 利用表情名字获取到对应的图片
55 | Integer imgRes = EmotionUtils.EMOTION_STATIC_MAP.get(key);
56 | if (imgRes != null) {
57 | // 压缩表情图片
58 | int size = (int) tv.getTextSize() * 13 / 8;
59 | Bitmap bitmap = BitmapFactory.decodeResource(res, imgRes);
60 | Bitmap scaleBitmap = Bitmap.createScaledBitmap(bitmap, size, size, true);
61 |
62 | ImageSpan span = new ImageSpan(context, scaleBitmap);
63 | spannableString.setSpan(span, start, start + key.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
64 | }
65 | }
66 | return spannableString;
67 | }
68 |
69 | /**
70 | * 返回当前时间的格式为 yyyyMMddHHmmss
71 | *
72 | * @return
73 | */
74 | public static String getCurrentTime() {
75 | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
76 | return sdf.format(System.currentTimeMillis());
77 | }
78 |
79 | //毫秒转秒
80 | public static String long2String(long time) {
81 | //毫秒转秒
82 | int sec = (int) time / 1000;
83 | int min = sec / 60; //分钟
84 | sec = sec % 60; //秒
85 | if (min < 10) { //分钟补0
86 | if (sec < 10) { //秒补0
87 | return "0" + min + ":0" + sec;
88 | } else {
89 | return "0" + min + ":" + sec;
90 | }
91 | } else {
92 | if (sec < 10) { //秒补0
93 | return min + ":0" + sec;
94 | } else {
95 | return min + ":" + sec;
96 | }
97 | }
98 | }
99 |
100 | /**
101 | * 毫秒转化时分秒毫秒
102 | *
103 | * @param ms
104 | * @return
105 | */
106 | public static String formatTime(Long ms) {
107 | Integer ss = 1000;
108 | Integer mi = ss * 60;
109 | Integer hh = mi * 60;
110 | Integer dd = hh * 24;
111 |
112 | Long day = ms / dd;
113 | Long hour = (ms - day * dd) / hh;
114 | Long minute = (ms - day * dd - hour * hh) / mi;
115 | Long second = (ms - day * dd - hour * hh - minute * mi) / ss;
116 |
117 | StringBuffer sb = new StringBuffer();
118 | if (day > 0) {
119 | sb.append(day + "d");
120 | }
121 | if (hour > 0) {
122 | sb.append(hour + "h");
123 | }
124 | if (minute > 0) {
125 | sb.append(minute + "′");
126 | }
127 | if (second > 0) {
128 | sb.append(second + "″");
129 | }
130 | return sb.toString();
131 | }
132 | }
133 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/widget/BubbleLinearLayout.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.widget;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import android.graphics.RectF;
6 | import android.util.AttributeSet;
7 | import android.widget.LinearLayout;
8 |
9 | import com.rance.chatui.R;
10 |
11 | /**
12 | * 作者:Rance on 2016/12/15 10:49
13 | * 邮箱:rance935@163.com
14 | * 自定义聊天气泡LinearLayout
15 | */
16 | public class BubbleLinearLayout extends LinearLayout {
17 | private BubbleDrawable bubbleDrawable;
18 | private float mArrowWidth;
19 | private float mAngle;
20 | private float mArrowHeight;
21 | private float mArrowPosition;
22 | private BubbleDrawable.ArrowLocation mArrowLocation;
23 | private int bubbleColor;
24 | public BubbleLinearLayout(Context context) {
25 | super(context);
26 | initView(null);
27 | }
28 |
29 | public BubbleLinearLayout(Context context, AttributeSet attrs) {
30 | super(context, attrs);
31 | initView(attrs);
32 | }
33 |
34 |
35 | private void initView(AttributeSet attrs){
36 | if (attrs != null){
37 | TypedArray array = getContext().obtainStyledAttributes(attrs, R.styleable.BubbleView);
38 | mArrowWidth = array.getDimension(R.styleable.BubbleView_arrowWidth,
39 | BubbleDrawable.Builder.DEFAULT_ARROW_WITH);
40 | mArrowHeight = array.getDimension(R.styleable.BubbleView_arrowHeight,
41 | BubbleDrawable.Builder.DEFAULT_ARROW_HEIGHT);
42 | mAngle = array.getDimension(R.styleable.BubbleView_angle,
43 | BubbleDrawable.Builder.DEFAULT_ANGLE);
44 | mArrowPosition = array.getDimension(R.styleable.BubbleView_arrowPosition,
45 | BubbleDrawable.Builder.DEFAULT_ARROW_POSITION);
46 | bubbleColor = array.getColor(R.styleable.BubbleView_bubbleColor,
47 | BubbleDrawable.Builder.DEFAULT_BUBBLE_COLOR);
48 | int location = array.getInt(R.styleable.BubbleView_arrowLocation, 0);
49 | mArrowLocation = BubbleDrawable.ArrowLocation.mapIntToValue(location);
50 | array.recycle();
51 | }
52 | }
53 |
54 | @Override
55 | protected void onSizeChanged(int w, int h, int oldw, int oldh) {
56 | super.onSizeChanged(w, h, oldw, oldh);
57 | if (w > 0 && h > 0){
58 | setUp(w, h);
59 | }
60 | }
61 |
62 | private void setUp(int left, int right, int top, int bottom){
63 | if (right < left || bottom < top)
64 | return;
65 | RectF rectF = new RectF(left, top, right, bottom);
66 | bubbleDrawable = new BubbleDrawable.Builder()
67 | .rect(rectF)
68 | .arrowLocation(mArrowLocation)
69 | .bubbleType(BubbleDrawable.BubbleType.COLOR)
70 | .angle(mAngle)
71 | .arrowHeight(mArrowHeight)
72 | .arrowWidth(mArrowWidth)
73 | .arrowPosition(mArrowPosition)
74 | .bubbleColor(bubbleColor)
75 | .build();
76 | }
77 |
78 | private void setUp(int width, int height){
79 | setUp(getPaddingLeft(), + width - getPaddingRight(),
80 | getPaddingTop(), height - getPaddingBottom());
81 | setBackgroundDrawable(bubbleDrawable);
82 | }
83 |
84 | }
85 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/widget/ChatContextMenu.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.widget;
2 |
3 | import android.animation.Animator;
4 | import android.annotation.TargetApi;
5 | import android.content.ClipData;
6 | import android.content.ClipboardManager;
7 | import android.content.Context;
8 | import android.graphics.Color;
9 | import android.graphics.drawable.ColorDrawable;
10 | import android.os.Build;
11 | import android.os.Message;
12 | import android.support.annotation.NonNull;
13 | import android.view.LayoutInflater;
14 | import android.view.View;
15 | import android.view.ViewAnimationUtils;
16 | import android.view.ViewGroup;
17 | import android.widget.TextView;
18 |
19 | import com.labo.kaji.relativepopupwindow.RelativePopupWindow;
20 | import com.rance.chatui.R;
21 | import com.rance.chatui.enity.MessageInfo;
22 |
23 | /**
24 | * Created by chengz
25 | *
26 | * @date 2017/7/31.
27 | */
28 |
29 | public class ChatContextMenu extends RelativePopupWindow {
30 |
31 | private MessageInfo mMessageInfo;
32 | private Context mContext;
33 | public ChatContextMenu(Context context, MessageInfo messageInfo) {
34 | this.mMessageInfo = messageInfo;
35 | this.mContext = context;
36 | View view = LayoutInflater.from(context).inflate(R.layout.popup_context_menu, null);
37 | setContentView(view);
38 |
39 | setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
40 | setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
41 | setFocusable(true);
42 | setOutsideTouchable(true);
43 | setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
44 |
45 | // Disable default animation for circular reveal
46 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
47 | setAnimationStyle(0);
48 | }
49 |
50 | TextView tvCopy = (TextView) view.findViewById(R.id.tv_copy);
51 | TextView tvTransit = (TextView) view.findViewById(R.id.tv_transit);
52 |
53 | tvCopy.setOnClickListener(new View.OnClickListener() {
54 | @Override
55 | public void onClick(View v) {
56 | copyToClipboard();
57 | }
58 | });
59 | tvTransit.setOnClickListener(new View.OnClickListener() {
60 | @Override
61 | public void onClick(View v) {
62 | transitContent();
63 | }
64 | });
65 | }
66 |
67 | private void transitContent() {
68 |
69 | }
70 |
71 | private void copyToClipboard() {
72 | ClipboardManager cm = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
73 | ClipData data = ClipData.newPlainText("Moa", mMessageInfo.getContent());
74 | cm.setPrimaryClip(data);
75 | }
76 |
77 | @Override
78 | public void showOnAnchor(@NonNull View anchor, int vertPos, int horizPos, int x, int y, boolean fitInScreen) {
79 | super.showOnAnchor(anchor, vertPos, horizPos, x, y, fitInScreen);
80 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
81 | circularReveal(anchor);
82 | }
83 | }
84 |
85 | @TargetApi(Build.VERSION_CODES.LOLLIPOP)
86 | private void circularReveal(@NonNull final View anchor) {
87 | final View contentView = getContentView();
88 | contentView.post(new Runnable() {
89 | @Override
90 | public void run() {
91 | final int[] myLocation = new int[2];
92 | final int[] anchorLocation = new int[2];
93 | contentView.getLocationOnScreen(myLocation);
94 | anchor.getLocationOnScreen(anchorLocation);
95 | final int cx = anchorLocation[0] - myLocation[0] + anchor.getWidth()/2;
96 | final int cy = anchorLocation[1] - myLocation[1] + anchor.getHeight()/2;
97 |
98 | contentView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
99 | final int dx = Math.max(cx, contentView.getMeasuredWidth() - cx);
100 | final int dy = Math.max(cy, contentView.getMeasuredHeight() - cy);
101 | final float finalRadius = (float) Math.hypot(dx, dy);
102 | Animator animator = ViewAnimationUtils.createCircularReveal(contentView, cx, cy, 0f, finalRadius);
103 | animator.setDuration(1);
104 | animator.start();
105 | }
106 | });
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/widget/IndicatorView.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.widget;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.View;
6 | import android.widget.LinearLayout;
7 |
8 | import com.rance.chatui.R;
9 | import com.rance.chatui.util.Utils;
10 |
11 | import java.util.ArrayList;
12 |
13 | /**
14 | * 作者:Rance on 2016/11/29 10:47
15 | * 邮箱:rance935@163.com
16 | * 自定义表情底部指示器
17 | */
18 | public class IndicatorView extends LinearLayout {
19 |
20 | private Context mContext;
21 | private ArrayList mImageViews;//所有指示器集合
22 | private int size = 6;
23 | private int marginSize = 15;
24 | private int pointSize;//指示器的大小
25 | private int marginLeft;//间距
26 |
27 | public IndicatorView(Context context) {
28 | this(context, null);
29 | }
30 |
31 | public IndicatorView(Context context, AttributeSet attrs) {
32 | this(context, attrs, 0);
33 | }
34 |
35 | public IndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
36 | super(context, attrs, defStyleAttr);
37 | mContext = context;
38 | pointSize = Utils.dp2px(context, size);
39 | marginLeft = Utils.dp2px(context, marginSize);
40 | }
41 |
42 | /**
43 | * 初始化指示器
44 | *
45 | * @param count 指示器的数量
46 | */
47 | public void initIndicator(int count) {
48 | mImageViews = new ArrayList<>();
49 | this.removeAllViews();
50 | LayoutParams lp;
51 | for (int i = 0; i < count; i++) {
52 | View v = new View(mContext);
53 | lp = new LayoutParams(pointSize, pointSize);
54 | if (i != 0)
55 | lp.leftMargin = marginLeft;
56 | v.setLayoutParams(lp);
57 | if (i == 0) {
58 | v.setBackgroundResource(R.drawable.bg_circle_white);
59 | } else {
60 | v.setBackgroundResource(R.drawable.bg_circle_gary);
61 | }
62 | mImageViews.add(v);
63 | this.addView(v);
64 | }
65 | }
66 |
67 | /**
68 | * 页面移动时切换指示器
69 | */
70 | public void playByStartPointToNext(int startPosition, int nextPosition) {
71 | if (startPosition < 0 || nextPosition < 0 || nextPosition == startPosition) {
72 | startPosition = nextPosition = 0;
73 | }
74 | final View ViewStrat = mImageViews.get(startPosition);
75 | final View ViewNext = mImageViews.get(nextPosition);
76 | ViewNext.setBackgroundResource(R.drawable.bg_circle_white);
77 | ViewStrat.setBackgroundResource(R.drawable.bg_circle_gary);
78 | }
79 |
80 | }
81 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rance/chatui/widget/NoScrollViewPager.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui.widget;
2 |
3 | import android.content.Context;
4 | import android.support.v4.view.ViewPager;
5 | import android.util.AttributeSet;
6 | import android.view.MotionEvent;
7 |
8 | /**
9 | * 作者:Rance on 2016/11/25 16:55
10 | * 邮箱:rance935@163.com
11 | */
12 | public class NoScrollViewPager extends ViewPager {
13 |
14 | public NoScrollViewPager(Context context) {
15 | super(context);
16 | }
17 |
18 | public NoScrollViewPager(Context context, AttributeSet attrs) {
19 | super(context, attrs);
20 | }
21 |
22 | @Override
23 | public boolean onTouchEvent(MotionEvent arg0) {
24 | return false;
25 | }
26 |
27 | @Override
28 | public boolean onInterceptTouchEvent(MotionEvent arg0) {
29 | return false;
30 | }
31 | }
--------------------------------------------------------------------------------
/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_base_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_base_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_map_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/arm64-v8a/libBaiduMapSDK_map_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/arm64-v8a/liblocSDK7a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/arm64-v8a/liblocSDK7a.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_base_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_base_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_map_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/armeabi-v7a/libBaiduMapSDK_map_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi-v7a/liblocSDK7a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/armeabi-v7a/liblocSDK7a.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi/libBaiduMapSDK_base_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/armeabi/libBaiduMapSDK_base_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi/libBaiduMapSDK_map_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/armeabi/libBaiduMapSDK_map_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/armeabi/liblocSDK7a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/armeabi/liblocSDK7a.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86/libBaiduMapSDK_base_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/x86/libBaiduMapSDK_base_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86/libBaiduMapSDK_map_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/x86/libBaiduMapSDK_map_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86/liblocSDK7a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/x86/liblocSDK7a.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86_64/libBaiduMapSDK_base_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/x86_64/libBaiduMapSDK_base_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86_64/libBaiduMapSDK_map_v4_3_2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/x86_64/libBaiduMapSDK_map_v4_3_2.so
--------------------------------------------------------------------------------
/app/src/main/jniLibs/x86_64/liblocSDK7a.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/jniLibs/x86_64/liblocSDK7a.so
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_circle_gary.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
11 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_circle_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
11 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_message.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/bg_message.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_surname.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/compose_emotion_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/compose_emotion_delete.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/corners_edit.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/corners_edit_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aini.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aini_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aini_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aiqing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aiqing.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aiqing_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aiqing_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aixin.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aixin_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aixin_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aoman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aoman.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_aoman_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_aoman_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baiyan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baiyan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baiyan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baiyan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bangbangtang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bangbangtang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bangbangtang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bangbangtang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baobao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baobao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baobao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baobao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baojing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baojing.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baojing_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baojing_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baoquan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baoquan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_baoquan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_baoquan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bianbian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bianbian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bianbian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bianbian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bianpao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bianpao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bianpao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bianpao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_biezui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_biezui.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_biezui_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_biezui_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bishi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bishi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bishi_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bishi_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bizui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bizui.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_bizui_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_bizui_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_cahan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_cahan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_cahan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_cahan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_caidao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_caidao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_caidao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_caidao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_caiqiu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_caiqiu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_caiqiu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_caiqiu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_chajing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_chajing.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_chajing_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_chajing_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_chaopiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_chaopiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_chaopiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_chaopiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_chexiang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_chexiang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_chexiang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_chexiang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ciya.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ciya.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ciya_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ciya_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dabing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dabing.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dabing_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dabing_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_daku.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_daku.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_daku_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_daku_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dangao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dangao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dangao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dangao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dashan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dashan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dashan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dashan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dashuai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dashuai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dashuai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dashuai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_denglong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_denglong.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_denglong_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_denglong_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dengpao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dengpao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_dengpao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_dengpao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_deyi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_deyi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_deyi_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_deyi_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_diaoxie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_diaoxie.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_diaoxie_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_diaoxie_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_duoyun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_duoyun.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_duoyun_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_duoyun_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_facai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_facai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_facai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_facai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fadai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fadai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fadai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fadai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fadou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fadou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fadou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fadou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fakuang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fakuang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fakuang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fakuang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fanu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fanu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fanu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fanu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_feiji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_feiji.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_feiji_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_feiji_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_feiwen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_feiwen.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_feiwen_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_feiwen_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fendou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fendou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fendou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fendou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fengche.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fengche.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_fengche_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_fengche_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ganga.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ganga.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ganga_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ganga_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_gouwu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_gouwu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_gouwu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_gouwu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_gouying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_gouying.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_gouying_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_gouying_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_guzhang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_guzhang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_guzhang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_guzhang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_haixiu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_haixiu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_haixiu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_haixiu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_hanxiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_hanxiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_hanxiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_hanxiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_haqian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_haqian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_haqian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_haqian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_hecai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_hecai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_hecai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_hecai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_henai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_henai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_henai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_henai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_huaixiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_huaixiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_huaixiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_huaixiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_huishou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_huishou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_huishou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_huishou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_huitou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_huitou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_huitou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_huitou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jidong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jidong.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jidong_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jidong_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jie.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jie_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jie_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jiewu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jiewu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jiewu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jiewu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jingkong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jingkong.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jingkong_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jingkong_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jingya.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jingya.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_jingya_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_jingya_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kafei.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kafei.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kafei_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kafei_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kaiche.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kaiche.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kaiche_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kaiche_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_keai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_keai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_keai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_keai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kelian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kelian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kelian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kelian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ketou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ketou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ketou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ketou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kge.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kge_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kge_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_koubi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_koubi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_koubi_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_koubi_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ku.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ku.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ku_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ku_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kuaikule.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kuaikule.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kuaikule_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kuaikule_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kulou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kulou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kulou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kulou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kun.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_kun_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_kun_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_lanqiu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_lanqiu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_lanqiu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_lanqiu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_lenghan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_lenghan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_lenghan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_lenghan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_liuhan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_liuhan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_liuhan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_liuhan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_liulei.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_liulei.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_liulei_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_liulei_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_liwu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_liwu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_liwu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_liwu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_meigui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_meigui.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_meigui_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_meigui_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_nanguo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_nanguo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_nanguo_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_nanguo_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_naozhong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_naozhong.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_naozhong_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_naozhong_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_no.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_no.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_no_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_no_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ok.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ok_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ok_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ouhuo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ouhuo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ouhuo_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ouhuo_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_pachong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_pachong.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_pachong_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_pachong_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_pijiu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_pijiu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_pijiu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_pijiu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_pingpang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_pingpang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_pingpang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_pingpang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qiang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qiang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qiang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qiang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qiaoda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qiaoda.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qiaoda_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qiaoda_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qidao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qidao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qidao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qidao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qingwa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qingwa.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qingwa_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qingwa_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qinqin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qinqin.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qinqin_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qinqin_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qiudale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qiudale.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_qiudale_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_qiudale_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_quantou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_quantou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_quantou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_quantou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ruo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ruo.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_ruo_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_ruo_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_se.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_se.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_se_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_se_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shafa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shafa.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shafa_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shafa_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shandian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shandian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shandian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shandian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shengli.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shengli.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shengli_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shengli_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shiai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shiai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shiai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shiai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shouqiang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shouqiang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shouqiang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shouqiang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shuai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shuai.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shuai_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shuai_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shuangxi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shuangxi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shuangxi_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shuangxi_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shui.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_shui_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_shui_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_taiyang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_taiyang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_taiyang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_taiyang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tiaopi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tiaopi.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tiaopi_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tiaopi_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tiaosheng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tiaosheng.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tiaosheng_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tiaosheng_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tiaotiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tiaotiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tiaotiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tiaotiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_touxiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_touxiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_touxiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_touxiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_tu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_tu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_weiqu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_weiqu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_weiqu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_weiqu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_weixiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_weixiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_weixiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_weixiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_woshou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_woshou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_woshou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_woshou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xia.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xia_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xia_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiamian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiamian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiamian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiamian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiangjiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiangjiao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiangjiao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiangjiao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xianwen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xianwen.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xianwen_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xianwen_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiayu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiayu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiayu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiayu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xigua.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xigua.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xigua_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xigua_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xinsui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xinsui.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xinsui_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xinsui_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiongmao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiongmao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xiongmao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xiongmao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_xu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_xu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yao.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yao_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yao_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yingxian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yingxian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yingxian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yingxian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yiwen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yiwen.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yiwen_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yiwen_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youchexiang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youchexiang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youchexiang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youchexiang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youhengheng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youhengheng.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youhengheng_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youhengheng_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youjian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youjian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youjian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youjian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youtaiji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youtaiji.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_youtaiji_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_youtaiji_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yueliang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yueliang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yueliang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yueliang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yun.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_yun_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_yun_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zaijian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zaijian.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zaijian_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zaijian_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhadan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhadan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhadan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhadan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhijing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhijing.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhijing_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhijing_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuakuang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuakuang.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuakuang_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuakuang_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuanjie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuanjie.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuanjie_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuanjie_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuanquan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuanquan.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuanquan_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuanquan_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuqiu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuqiu.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhuqiu_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhuqiu_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhutou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhutou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zhutou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zhutou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zouma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zouma.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zouma_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zouma_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zuochetou.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zuochetou.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zuochetou_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zuochetou_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zuohengheng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zuohengheng.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zuohengheng_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zuohengheng_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zuotaiji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zuotaiji.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emotion_zuotaiji_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/emotion_zuotaiji_gif.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable/msg_state_fail_resend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/drawable/msg_state_fail_resend.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/record_microphone.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/record_microphone_bj.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
8 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/voice_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
10 |
13 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/voice_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
10 |
13 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_contact.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_full_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_contact.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
22 |
23 |
30 |
37 |
38 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_chat_emotion.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
19 |
20 |
21 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_chat_function.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
22 |
23 |
30 |
31 |
38 |
39 |
40 |
47 |
48 |
49 |
55 |
56 |
57 |
64 |
65 |
72 |
73 |
78 |
79 |
84 |
85 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/include_reply_layout.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
12 |
13 |
23 |
24 |
32 |
33 |
44 |
45 |
58 |
59 |
66 |
67 |
75 |
76 |
88 |
89 |
90 |
91 |
95 |
96 |
103 |
104 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_contact.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_microphone.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
20 |
21 |
30 |
31 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/popup_context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
23 |
24 |
35 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_chat_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_chat_add.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_chat_expression.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_chat_expression.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_chat_photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_chat_photo.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_chat_photograph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_chat_photograph.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_chat_voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_chat_voice.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_voice_left1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_voice_left1.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_voice_left2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_voice_left2.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_voice_left3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_voice_left3.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_voice_right1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_voice_right1.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_voice_right2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_voice_right2.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon_voice_right3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/icon_voice_right3.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/record_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/record_bottom.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/record_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xhdpi/record_top.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/bg1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/bg1.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_add.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_album.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_capture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_capture.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_cloud.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_copy.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_face.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_file_excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_file_excel.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_file_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_file_other.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_file_pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_file_pdf.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_file_ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_file_ppt.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_file_word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_file_word.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_im_contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_im_contact.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_im_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_im_file.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_im_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_im_location.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_keyboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_keyboard.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_transmit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_transmit.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/icon_voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/icon_voice.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/pic_preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxhdpi/pic_preview.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attr.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #3F51B5
6 | #FFFFFF
7 | #000000
8 |
9 |
10 | #f3f3f3
11 | #d9d9d9
12 |
13 |
14 | #1b1b1b
15 | #818181
16 | #919191
17 | #c7c7c7
18 | #404040
19 |
20 | #E4F4FE
21 | #000000
22 |
23 | #EBEFF0
24 | #000000
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 10dp
6 | 10dp
7 | 5dp
8 |
9 |
10 | 19sp
11 | 17sp
12 | 12sp
13 | 13sp
14 | 1dp
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ChatUI
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
17 |
24 |
30 |
36 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/test/java/com/rance/chatui/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.rance.chatui;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.2'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/images/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/stridercheng/chatui/5d9ac4d1d16f65c947ce635d8e4021d054805878/images/preview.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------