From 47415806e781a1e899d038a390951227bf7dd20f Mon Sep 17 00:00:00 2001 From: DywaneQ Date: Thu, 3 Aug 2017 10:52:50 +0800 Subject: [PATCH] First commit First commit --- .gitignore | 9 + .idea/compiler.xml | 22 + .idea/copyright/profiles_settings.xml | 3 + .idea/encodings.xml | 6 + .idea/gradle.xml | 18 + .idea/inspectionProfiles/Project_Default.xml | 11 + .../inspectionProfiles/profiles_settings.xml | 7 + .idea/misc.xml | 65 +++ .idea/modules.xml | 9 + .idea/runConfigurations.xml | 12 + app/.gitignore | 1 + app/build.gradle | 46 ++ app/proguard-rules.pro | 25 + .../chatdemo/ExampleInstrumentedTest.java | 26 + app/src/main/AndroidManifest.xml | 49 ++ .../example/administrator/chatdemo/App.java | 55 ++ .../administrator/chatdemo/AudioHelper.java | 92 ++++ .../chatdemo/ImageBrowserActivity.java | 38 ++ .../chatdemo/PlayButtonClickListener.java | 102 ++++ .../chatdemo/ServiceChatActivity.java | 482 ++++++++++++++++++ .../adapter/ChatEmotionGridAdapter.java | 59 +++ .../adapter/ChatEmotionPagerAdapter.java | 41 ++ .../chatdemo/adapter/ChatRecyclerAdapter.java | 174 +++++++ .../chatdemo/adapter/DataAdapter.java | 63 +++ .../chatdemo/bean/ChatConst.java | 23 + .../chatdemo/bean/ChatMessageBean.java | 174 +++++++ .../chatdemo/bean/ChatMessageType.java | 36 ++ .../chatdemo/utils/AudioManager.java | 212 ++++++++ .../chatdemo/utils/Constants.java | 47 ++ .../chatdemo/utils/EmotionHelper.java | 205 ++++++++ .../chatdemo/utils/FileSaveUtil.java | 372 ++++++++++++++ .../chatdemo/utils/ImageCheckoutUtil.java | 61 +++ .../chatdemo/utils/KeyBoardUtils.java | 26 + .../chatdemo/utils/LogUtils.java | 67 +++ .../chatdemo/utils/PathUtils.java | 94 ++++ .../chatdemo/utils/PhotoUtils.java | 372 ++++++++++++++ .../chatdemo/utils/ScreenUtil.java | 178 +++++++ .../administrator/chatdemo/utils/Utils.java | 54 ++ .../viewholder/ChatItemAudioHolder.java | 87 ++++ .../chatdemo/viewholder/ChatItemHolder.java | 105 ++++ .../viewholder/ChatItemImageHolder.java | 65 +++ .../viewholder/ChatItemTextHolder.java | 45 ++ .../chatdemo/viewholder/CommonViewHolder.java | 45 ++ .../chatdemo/viewholder/ViewHolder.java | 23 + .../chatdemo/widget/AudioRecordButton.java | 339 ++++++++++++ .../chatdemo/widget/ChatBottomView.java | 58 +++ .../chatdemo/widget/CircleIndicator.java | 304 +++++++++++ .../chatdemo/widget/DialogManager.java | 149 ++++++ .../chatdemo/widget/EmotionEditText.java | 33 ++ .../chatdemo/widget/HeadIconSelectorView.java | 331 ++++++++++++ .../chatdemo/widget/InputBarLayout.java | 315 ++++++++++++ .../chatdemo/widget/PlayButton.java | 83 +++ app/src/main/res/anim/scale_with_alpha.xml | 22 + .../chat_common_empty_photo.9.png | Bin 0 -> 1828 bytes .../chat_common_image_load_fail.png | Bin 0 -> 1804 bytes .../chat_default_user_avatar.png | Bin 0 -> 21632 bytes .../chat_fail_resend_normal.png | Bin 0 -> 1910 bytes .../drawable-xhdpi/chat_fail_resend_press.png | Bin 0 -> 1972 bytes .../res/drawable-xhdpi/chat_voice_bg.9.png | Bin 0 -> 442 bytes .../chat_voice_bg_pressed.9.png | Bin 0 -> 3226 bytes .../res/drawable-xhdpi/chat_voice_left.png | Bin 0 -> 1539 bytes .../res/drawable-xhdpi/chat_voice_left1.png | Bin 0 -> 1560 bytes .../res/drawable-xhdpi/chat_voice_left2.png | Bin 0 -> 1594 bytes .../res/drawable-xhdpi/chat_voice_left3.png | Bin 0 -> 1554 bytes .../res/drawable-xhdpi/chat_voice_pressed.png | Bin 0 -> 4393 bytes .../res/drawable-xhdpi/chat_voice_right.png | Bin 0 -> 1587 bytes .../res/drawable-xhdpi/chat_voice_right1.png | Bin 0 -> 1724 bytes .../res/drawable-xhdpi/chat_voice_right2.png | Bin 0 -> 1906 bytes .../res/drawable-xhdpi/chat_voice_right3.png | Bin 0 -> 1588 bytes .../main/res/drawable-xhdpi/emoji_angry.png | Bin 0 -> 5037 bytes .../res/drawable-xhdpi/emoji_anguished.png | Bin 0 -> 5091 bytes .../res/drawable-xhdpi/emoji_astonished.png | Bin 0 -> 6043 bytes .../main/res/drawable-xhdpi/emoji_blush.png | Bin 0 -> 5188 bytes .../main/res/drawable-xhdpi/emoji_clap.png | Bin 0 -> 7110 bytes .../res/drawable-xhdpi/emoji_cold_sweat.png | Bin 0 -> 5972 bytes .../res/drawable-xhdpi/emoji_confounded.png | Bin 0 -> 5857 bytes .../res/drawable-xhdpi/emoji_confused.png | Bin 0 -> 4633 bytes app/src/main/res/drawable-xhdpi/emoji_cry.png | Bin 0 -> 5699 bytes .../res/drawable-xhdpi/emoji_disappointed.png | Bin 0 -> 4764 bytes .../emoji_disappointed_relieved.png | Bin 0 -> 5648 bytes .../res/drawable-xhdpi/emoji_dizzy_face.png | Bin 0 -> 6278 bytes .../drawable-xhdpi/emoji_expressionless.png | Bin 0 -> 4022 bytes .../main/res/drawable-xhdpi/emoji_fearful.png | Bin 0 -> 5600 bytes .../main/res/drawable-xhdpi/emoji_flushed.png | Bin 0 -> 5845 bytes .../res/drawable-xhdpi/emoji_frowning.png | Bin 0 -> 4733 bytes .../res/drawable-xhdpi/emoji_grimacing.png | Bin 0 -> 5327 bytes .../main/res/drawable-xhdpi/emoji_grin.png | Bin 0 -> 5721 bytes .../res/drawable-xhdpi/emoji_grinning.png | Bin 0 -> 5550 bytes .../res/drawable-xhdpi/emoji_heart_eyes.png | Bin 0 -> 5758 bytes .../main/res/drawable-xhdpi/emoji_hushed.png | Bin 0 -> 4941 bytes .../res/drawable-xhdpi/emoji_innocent.png | Bin 0 -> 7000 bytes app/src/main/res/drawable-xhdpi/emoji_joy.png | Bin 0 -> 6339 bytes .../main/res/drawable-xhdpi/emoji_kissing.png | Bin 0 -> 4790 bytes .../emoji_kissing_closed_eyes.png | Bin 0 -> 5563 bytes .../res/drawable-xhdpi/emoji_kissing_face.png | Bin 0 -> 5563 bytes .../drawable-xhdpi/emoji_kissing_heart.png | Bin 0 -> 5767 bytes .../emoji_kissing_smiling_eyes.png | Bin 0 -> 4999 bytes .../res/drawable-xhdpi/emoji_laughing.png | Bin 0 -> 6347 bytes .../main/res/drawable-xhdpi/emoji_mask.png | Bin 0 -> 5235 bytes .../res/drawable-xhdpi/emoji_neutral_face.png | Bin 0 -> 4843 bytes .../res/drawable-xhdpi/emoji_no_mouth.png | Bin 0 -> 4632 bytes .../res/drawable-xhdpi/emoji_open_mouth.png | Bin 0 -> 4519 bytes .../main/res/drawable-xhdpi/emoji_pensive.png | Bin 0 -> 5062 bytes .../res/drawable-xhdpi/emoji_persevere.png | Bin 0 -> 5519 bytes .../res/drawable-xhdpi/emoji_point_left.png | Bin 0 -> 3085 bytes .../res/drawable-xhdpi/emoji_point_right.png | Bin 0 -> 3079 bytes .../main/res/drawable-xhdpi/emoji_rage.png | Bin 0 -> 5410 bytes .../main/res/drawable-xhdpi/emoji_relaxed.png | Bin 0 -> 5455 bytes .../res/drawable-xhdpi/emoji_relieved.png | Bin 0 -> 5364 bytes .../res/drawable-xhdpi/emoji_satisfied.png | Bin 0 -> 6347 bytes .../main/res/drawable-xhdpi/emoji_scream.png | Bin 0 -> 6482 bytes .../res/drawable-xhdpi/emoji_sleeping.png | Bin 0 -> 5409 bytes .../main/res/drawable-xhdpi/emoji_sleepy.png | Bin 0 -> 5837 bytes .../main/res/drawable-xhdpi/emoji_smile.png | Bin 0 -> 5890 bytes .../main/res/drawable-xhdpi/emoji_smiley.png | Bin 0 -> 5794 bytes .../main/res/drawable-xhdpi/emoji_smirk.png | Bin 0 -> 5307 bytes app/src/main/res/drawable-xhdpi/emoji_sob.png | Bin 0 -> 5709 bytes .../drawable-xhdpi/emoji_stuck_out_tongue.png | Bin 0 -> 5215 bytes .../emoji_stuck_out_tongue_closed_eyes.png | Bin 0 -> 5785 bytes .../emoji_stuck_out_tongue_winking_eye.png | Bin 0 -> 6007 bytes .../res/drawable-xhdpi/emoji_sunglasses.png | Bin 0 -> 5730 bytes .../main/res/drawable-xhdpi/emoji_sweat.png | Bin 0 -> 5576 bytes .../res/drawable-xhdpi/emoji_sweat_smile.png | Bin 0 -> 6519 bytes .../res/drawable-xhdpi/emoji_thumbsdown.png | Bin 0 -> 5070 bytes .../res/drawable-xhdpi/emoji_thumbsup.png | Bin 0 -> 5075 bytes .../res/drawable-xhdpi/emoji_tired_face.png | Bin 0 -> 6174 bytes .../main/res/drawable-xhdpi/emoji_triumph.png | Bin 0 -> 6164 bytes .../res/drawable-xhdpi/emoji_unamused.png | Bin 0 -> 5315 bytes .../main/res/drawable-xhdpi/emoji_weary.png | Bin 0 -> 6279 bytes .../main/res/drawable-xhdpi/emoji_wink.png | Bin 0 -> 5253 bytes .../main/res/drawable-xhdpi/emoji_worried.png | Bin 0 -> 5152 bytes app/src/main/res/drawable-xhdpi/emoji_yum.png | Bin 0 -> 5886 bytes .../message_transfer_money_left.9.png | Bin 0 -> 779 bytes .../message_transfer_money_right.9.png | Bin 0 -> 619 bytes .../main/res/drawable/button_recording.xml | 10 + .../main/res/drawable/button_recordnormal.xml | 10 + .../res/drawable/chat_anim_voice_left.xml | 16 + .../res/drawable/chat_anim_voice_right.xml | 16 + .../res/drawable/chat_btn_fail_resend.xml | 6 + app/src/main/res/drawable/click_bg.xml | 17 + app/src/main/res/drawable/frame_bg.xml | 17 + .../res/drawable/frame_blue_to_thin_bg.xml | 23 + .../main/res/drawable/item_divider_line.xml | 9 + app/src/main/res/drawable/msg_input_shape.xml | 16 + app/src/main/res/drawable/white_radius.xml | 6 + app/src/main/res/drawable/xmxq_tc_bj.9.png | Bin 0 -> 135 bytes .../main/res/layout/activity_service_chat.xml | 27 + .../main/res/layout/chat_emotion_gridview.xml | 22 + app/src/main/res/layout/chat_emotion_item.xml | 14 + .../res/layout/chat_image_brower_layout.xml | 15 + .../layout/chat_input_bottom_bar_layout.xml | 138 +++++ .../res/layout/chat_item_image_layout.xml | 14 + .../layout/chat_item_left_audio_layout.xml | 38 ++ .../main/res/layout/chat_item_left_layout.xml | 83 +++ .../res/layout/chat_item_left_text_layout.xml | 10 + .../layout/chat_item_right_audio_layout.xml | 21 + .../layout/chat_item_right_image_layout.xml | 23 + .../res/layout/chat_item_right_layout.xml | 83 +++ .../layout/chat_item_right_text_layout.xml | 10 + .../res/layout/layout_mess_iv_listitem.xml | 24 + .../main/res/layout/layout_tongbaobottom.xml | 55 ++ .../main/res/layout/layout_view_headicon.xml | 80 +++ .../layout/layout_voice_dialog_manager.xml | 36 ++ app/src/main/res/mipmap-hdpi/ic_btn_emoji.png | Bin 0 -> 2028 bytes .../main/res/mipmap-hdpi/ic_btn_keybroad.png | Bin 0 -> 1869 bytes app/src/main/res/mipmap-hdpi/ic_btn_more.png | Bin 0 -> 1868 bytes app/src/main/res/mipmap-hdpi/ic_btn_voice.png | Bin 0 -> 1998 bytes app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4208 bytes .../main/res/mipmap-hdpi/tb_bottom_images.png | Bin 0 -> 3157 bytes .../res/mipmap-hdpi/tb_bottom_take_photo.png | Bin 0 -> 3686 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2555 bytes app/src/main/res/mipmap-xhdpi/cancel.png | Bin 0 -> 2942 bytes app/src/main/res/mipmap-xhdpi/emoji_icon.png | Bin 0 -> 2107 bytes .../main/res/mipmap-xhdpi/ic_btn_emoji.png | Bin 0 -> 2452 bytes .../main/res/mipmap-xhdpi/ic_btn_keybroad.png | Bin 0 -> 2236 bytes app/src/main/res/mipmap-xhdpi/ic_btn_more.png | Bin 0 -> 2282 bytes .../main/res/mipmap-xhdpi/ic_btn_voice.png | Bin 0 -> 2489 bytes app/src/main/res/mipmap-xhdpi/ic_head_01.jpg | Bin 0 -> 2038 bytes app/src/main/res/mipmap-xhdpi/ic_head_02.jpg | Bin 0 -> 8703 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6114 bytes .../mipmap-xhdpi/msg_chat_voice_unread.png | Bin 0 -> 1210 bytes .../receiver_voice_node_playing001.png | Bin 0 -> 162 bytes .../res/mipmap-xhdpi/tb_bottom_images.png | Bin 0 -> 2828 bytes .../main/res/mipmap-xhdpi/tb_bottom_offen.png | Bin 0 -> 2477 bytes .../res/mipmap-xhdpi/tb_bottom_take_photo.png | Bin 0 -> 3288 bytes .../res/mipmap-xhdpi/tb_dialog_loading_bg.png | Bin 0 -> 3403 bytes app/src/main/res/mipmap-xhdpi/tb_voice1.png | Bin 0 -> 17820 bytes app/src/main/res/mipmap-xhdpi/tb_voice2.png | Bin 0 -> 19216 bytes app/src/main/res/mipmap-xhdpi/tb_voice3.png | Bin 0 -> 20716 bytes .../main/res/mipmap-xhdpi/voice_to_short.png | Bin 0 -> 2379 bytes .../main/res/mipmap-xxhdpi/ic_btn_emoji.png | Bin 0 -> 3581 bytes .../res/mipmap-xxhdpi/ic_btn_keybroad.png | Bin 0 -> 3169 bytes .../main/res/mipmap-xxhdpi/ic_btn_more.png | Bin 0 -> 3233 bytes .../main/res/mipmap-xxhdpi/ic_btn_voice.png | Bin 0 -> 3638 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10056 bytes .../res/mipmap-xxhdpi/tb_bottom_images.png | Bin 0 -> 6400 bytes .../mipmap-xxhdpi/tb_bottom_take_photo.png | Bin 0 -> 7728 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 14696 bytes app/src/main/res/values/attrs.xml | 60 +++ app/src/main/res/values/colors.xml | 18 + app/src/main/res/values/strings.xml | 16 + app/src/main/res/values/styles.xml | 24 + .../chatdemo/ExampleUnitTest.java | 17 + build.gradle | 27 + gradle.properties | 17 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 160 ++++++ gradlew.bat | 90 ++++ settings.gradle | 1 + 215 files changed, 6615 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/profiles_settings.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/example/administrator/chatdemo/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/example/administrator/chatdemo/App.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/AudioHelper.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/ImageBrowserActivity.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/PlayButtonClickListener.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/ServiceChatActivity.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionGridAdapter.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionPagerAdapter.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/adapter/ChatRecyclerAdapter.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/adapter/DataAdapter.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/bean/ChatConst.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageBean.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageType.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/AudioManager.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/Constants.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/EmotionHelper.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/FileSaveUtil.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/ImageCheckoutUtil.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/KeyBoardUtils.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/LogUtils.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/PathUtils.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/PhotoUtils.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/ScreenUtil.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/utils/Utils.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemAudioHolder.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemHolder.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemImageHolder.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemTextHolder.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/viewholder/CommonViewHolder.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/viewholder/ViewHolder.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/AudioRecordButton.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/ChatBottomView.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/CircleIndicator.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/DialogManager.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/EmotionEditText.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/HeadIconSelectorView.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/InputBarLayout.java create mode 100644 app/src/main/java/com/example/administrator/chatdemo/widget/PlayButton.java create mode 100644 app/src/main/res/anim/scale_with_alpha.xml create mode 100644 app/src/main/res/drawable-xhdpi/chat_common_empty_photo.9.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_common_image_load_fail.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_default_user_avatar.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_fail_resend_normal.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_fail_resend_press.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_bg.9.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_bg_pressed.9.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_left.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_left1.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_left2.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_left3.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_pressed.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_right.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_right1.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_right2.png create mode 100644 app/src/main/res/drawable-xhdpi/chat_voice_right3.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_angry.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_anguished.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_astonished.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_blush.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_clap.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_cold_sweat.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_confounded.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_confused.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_cry.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_disappointed.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_disappointed_relieved.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_dizzy_face.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_expressionless.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_fearful.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_flushed.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_frowning.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_grimacing.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_grin.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_grinning.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_heart_eyes.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_hushed.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_innocent.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_joy.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_kissing.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_kissing_closed_eyes.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_kissing_face.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_kissing_heart.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_kissing_smiling_eyes.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_laughing.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_mask.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_neutral_face.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_no_mouth.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_open_mouth.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_pensive.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_persevere.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_point_left.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_point_right.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_rage.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_relaxed.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_relieved.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_satisfied.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_scream.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_sleeping.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_sleepy.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_smile.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_smiley.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_smirk.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_sob.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_stuck_out_tongue.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_stuck_out_tongue_closed_eyes.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_stuck_out_tongue_winking_eye.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_sunglasses.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_sweat.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_sweat_smile.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_thumbsdown.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_thumbsup.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_tired_face.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_triumph.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_unamused.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_weary.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_wink.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_worried.png create mode 100644 app/src/main/res/drawable-xhdpi/emoji_yum.png create mode 100644 app/src/main/res/drawable-xhdpi/message_transfer_money_left.9.png create mode 100644 app/src/main/res/drawable-xhdpi/message_transfer_money_right.9.png create mode 100644 app/src/main/res/drawable/button_recording.xml create mode 100644 app/src/main/res/drawable/button_recordnormal.xml create mode 100644 app/src/main/res/drawable/chat_anim_voice_left.xml create mode 100644 app/src/main/res/drawable/chat_anim_voice_right.xml create mode 100644 app/src/main/res/drawable/chat_btn_fail_resend.xml create mode 100644 app/src/main/res/drawable/click_bg.xml create mode 100644 app/src/main/res/drawable/frame_bg.xml create mode 100644 app/src/main/res/drawable/frame_blue_to_thin_bg.xml create mode 100644 app/src/main/res/drawable/item_divider_line.xml create mode 100644 app/src/main/res/drawable/msg_input_shape.xml create mode 100644 app/src/main/res/drawable/white_radius.xml create mode 100644 app/src/main/res/drawable/xmxq_tc_bj.9.png create mode 100644 app/src/main/res/layout/activity_service_chat.xml create mode 100644 app/src/main/res/layout/chat_emotion_gridview.xml create mode 100644 app/src/main/res/layout/chat_emotion_item.xml create mode 100644 app/src/main/res/layout/chat_image_brower_layout.xml create mode 100644 app/src/main/res/layout/chat_input_bottom_bar_layout.xml create mode 100644 app/src/main/res/layout/chat_item_image_layout.xml create mode 100644 app/src/main/res/layout/chat_item_left_audio_layout.xml create mode 100644 app/src/main/res/layout/chat_item_left_layout.xml create mode 100644 app/src/main/res/layout/chat_item_left_text_layout.xml create mode 100644 app/src/main/res/layout/chat_item_right_audio_layout.xml create mode 100644 app/src/main/res/layout/chat_item_right_image_layout.xml create mode 100644 app/src/main/res/layout/chat_item_right_layout.xml create mode 100644 app/src/main/res/layout/chat_item_right_text_layout.xml create mode 100644 app/src/main/res/layout/layout_mess_iv_listitem.xml create mode 100644 app/src/main/res/layout/layout_tongbaobottom.xml create mode 100644 app/src/main/res/layout/layout_view_headicon.xml create mode 100644 app/src/main/res/layout/layout_voice_dialog_manager.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_btn_emoji.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_btn_keybroad.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_btn_more.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_btn_voice.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-hdpi/tb_bottom_images.png create mode 100644 app/src/main/res/mipmap-hdpi/tb_bottom_take_photo.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/cancel.png create mode 100644 app/src/main/res/mipmap-xhdpi/emoji_icon.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_btn_emoji.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_btn_keybroad.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_btn_more.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_btn_voice.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_head_01.jpg create mode 100644 app/src/main/res/mipmap-xhdpi/ic_head_02.jpg create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/msg_chat_voice_unread.png create mode 100644 app/src/main/res/mipmap-xhdpi/receiver_voice_node_playing001.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_bottom_images.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_bottom_offen.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_bottom_take_photo.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_dialog_loading_bg.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_voice1.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_voice2.png create mode 100644 app/src/main/res/mipmap-xhdpi/tb_voice3.png create mode 100644 app/src/main/res/mipmap-xhdpi/voice_to_short.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_btn_emoji.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_btn_keybroad.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_btn_more.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_btn_voice.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/tb_bottom_images.png create mode 100644 app/src/main/res/mipmap-xxhdpi/tb_bottom_take_photo.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values/attrs.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/test/java/com/example/administrator/chatdemo/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..1e1352c --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..3b31283 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d518b8c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + C:\Users\DwayneQ\AppData\Roaming\Subversion + + + + + + 1.8 + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..88d7145 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..c29437e --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,46 @@ +apply plugin: 'com.android.application' +apply plugin: 'org.greenrobot.greendao' // apply plugin + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.3" + defaultConfig { + applicationId "com.example.administrator.chatdemo" + minSdkVersion 16 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(include: ['*.jar'], dir: 'libs') + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:25.3.1' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'com.android.support:recyclerview-v7:23.1.1' + testCompile 'junit:junit:4.12' + // greenDao + compile 'org.greenrobot:greendao:3.2.2' + compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.0' + + + compile 'io.github.leibnik:chatimageview:1.0.1' + compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3' + compile 'org.ocpsoft.prettytime:prettytime:4.0.1.Final' + +} +greendao { + schemaVersion 1 +// daoPackage 'com.fengpi.gen' +// targetGenDir 'src/main/java' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..ce3149c --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Android\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/com/example/administrator/chatdemo/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/administrator/chatdemo/ExampleInstrumentedTest.java new file mode 100644 index 0000000..06ce7bd --- /dev/null +++ b/app/src/androidTest/java/com/example/administrator/chatdemo/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.administrator.chatdemo; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.example.administrator.chatdemo", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..feb99a1 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/administrator/chatdemo/App.java b/app/src/main/java/com/example/administrator/chatdemo/App.java new file mode 100644 index 0000000..626aa5e --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/App.java @@ -0,0 +1,55 @@ +package com.example.administrator.chatdemo; + +import android.app.Application; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; + +import com.example.administrator.chatdemo.bean.DaoMaster; +import com.example.administrator.chatdemo.bean.DaoSession; +import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; +import com.nostra13.universalimageloader.core.assist.QueueProcessingType; + +/** + * Created by dwq on 2017/7/20/020. + * e-mail:lomapa@163.com + */ + +public class App extends Application { + + private static App instance; + + public DaoSession getDaoSession() { + return daoSession; + } + + private DaoSession daoSession; + + public static App getInstance() { + return instance; + } + + @Override + public void onCreate() { + super.onCreate(); + DaoMaster.DevOpenHelper mHelper = new DaoMaster.DevOpenHelper(this, "chat-message", null); + SQLiteDatabase db = mHelper.getWritableDatabase(); + daoSession = new DaoMaster(db).newSession(); + initImageLoader(this); + instance = this; + } + + /** + * 初始化ImageLoader + */ + public static void initImageLoader(Context context) { + ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( + context) + .threadPoolSize(3).threadPriority(Thread.NORM_PRIORITY - 2) + //.memoryCache(new WeakMemoryCache()) + .denyCacheImageMultipleSizesInMemory() + .tasksProcessingOrder(QueueProcessingType.LIFO) + .build(); + ImageLoader.getInstance().init(config); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/AudioHelper.java b/app/src/main/java/com/example/administrator/chatdemo/AudioHelper.java new file mode 100644 index 0000000..04031ec --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/AudioHelper.java @@ -0,0 +1,92 @@ +package com.example.administrator.chatdemo; + +import android.media.MediaPlayer; +import android.util.Log; + +import java.io.IOException; + +/** + * Created by lzw on 14/12/19. + */ +public class AudioHelper { + private static AudioHelper audioHelper; + private MediaPlayer mediaPlayer; + private Runnable finishCallback; + private String audioPath; + private boolean onceStart = false; + private boolean isPlaying = false; + + private AudioHelper() { + + } + + public static AudioHelper getInstance() { + if (audioHelper == null) { + audioHelper = new AudioHelper(); + } + return audioHelper; + } + + public String getAudioPath() { + return audioPath; + } + + public void stopPlayer() { + if (mediaPlayer != null) { + mediaPlayer.stop(); + mediaPlayer.release(); + } + isPlaying = false; + mediaPlayer = null; + } + + public void pausePlayer() { + if (mediaPlayer != null) { + mediaPlayer.pause(); + isPlaying = false; + } + } + + public boolean isPlaying() { + return isPlaying; + } + + public void restartPlayer() { + if (mediaPlayer != null && !mediaPlayer.isPlaying()) { + mediaPlayer.start(); + } + } + + public synchronized void playAudio(String path, Runnable finishCallback) { + if (mediaPlayer != null && onceStart) { + mediaPlayer.reset(); + } else { + mediaPlayer = new MediaPlayer(); + } +// tryRunFinishCallback(); + audioPath = path; + AudioHelper.this.finishCallback = finishCallback; + try { + mediaPlayer.setDataSource(path); + mediaPlayer.prepare(); + mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { + @Override + public void onCompletion(MediaPlayer mp) { + tryRunFinishCallback(); + } + }); + isPlaying = true; + mediaPlayer.start(); + onceStart = true; + } catch (IOException e) { + Log.e("AudioHelper", e.toString()); + } + } + + public void tryRunFinishCallback() { + if (finishCallback != null) { + finishCallback.run(); + finishCallback = null; + } + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/ImageBrowserActivity.java b/app/src/main/java/com/example/administrator/chatdemo/ImageBrowserActivity.java new file mode 100644 index 0000000..99334ad --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/ImageBrowserActivity.java @@ -0,0 +1,38 @@ +package com.example.administrator.chatdemo; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.WindowManager; +import android.widget.ImageView; + +import com.example.administrator.chatdemo.utils.Constants; +import com.example.administrator.chatdemo.utils.PhotoUtils; + + +/** + * Created by lzw on 14-9-21. + */ +public class ImageBrowserActivity extends Activity { + + private ImageView imageView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.chat_image_brower_layout); + imageView = (ImageView) findViewById(R.id.imageView); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + Intent intent = getIntent(); + String path = intent.getStringExtra(Constants.IMAGE_LOCAL_PATH); + String url = intent.getStringExtra(Constants.IMAGE_URL); + PhotoUtils.displayImageCacheElseNetwork(imageView, path, url); + findViewById(R.id.lly_image_browser).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/PlayButtonClickListener.java b/app/src/main/java/com/example/administrator/chatdemo/PlayButtonClickListener.java new file mode 100644 index 0000000..4b21051 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/PlayButtonClickListener.java @@ -0,0 +1,102 @@ +package com.example.administrator.chatdemo; + +import android.content.Context; +import android.graphics.drawable.AnimationDrawable; +import android.media.MediaPlayer; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; + +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.widget.PlayButton; + +import java.io.File; + +/** + * Created by dwq on 2017/7/24/024. + * e-mail:lomapa@163.com + */ + +public class PlayButtonClickListener implements View.OnClickListener { + private PlayButton playButton; + private boolean leftSide; + private Context context; + private String path; + + private AnimationDrawable anim; + public static PlayButtonClickListener mCurrentPlayButtonClickListner = null; + private MediaPlayer mediaPlayer = null; + public static boolean isPlaying = false; + // 将MediaPlayer播放地址, + public static String audioPath; + private ImageView ivIsListened; + private ChatMessageBean chatMessageBean; + + public PlayButtonClickListener(PlayButton playButton, ImageView ivIsListened, ChatMessageBean chatMessageBean, boolean leftSide, Context context, String path) { + this.playButton = playButton; + this.leftSide = leftSide; + this.context = context; + this.path = path; + this.ivIsListened = ivIsListened; + this.chatMessageBean = chatMessageBean; + } + + @Override + public void onClick(View v) { + if (isPlaying) { + if (TextUtils.equals(audioPath, path)) { + mCurrentPlayButtonClickListner.stopPlayVoice(); + return; + } + mCurrentPlayButtonClickListner.stopPlayVoice(); + } + playButton.startRecordAnimation(); + playVoice(path); + if (leftSide && ivIsListened != null) { + ivIsListened.setVisibility(View.INVISIBLE); + chatMessageBean.setIsListened(true); +// context + App.getInstance().getDaoSession().update(chatMessageBean); + } + } + + public void stopPlayVoice() { + playButton.stopRecordAnimation(); + if (mediaPlayer != null) { + mediaPlayer.stop(); + mediaPlayer.release(); + } + isPlaying = false; + } + + public void playVoice(String filePath) { + if (!(new File(filePath).exists())) { + return; + } + mediaPlayer = new MediaPlayer(); + this.audioPath = path; + try { + mediaPlayer.setDataSource(filePath); + mediaPlayer.prepare(); + mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { + + @Override + public void onCompletion(MediaPlayer mp) { + // TODO Auto-generated method stub + mediaPlayer.release(); + mediaPlayer = null; + stopPlayVoice(); // stop animation + } + + }); + isPlaying = true; + mCurrentPlayButtonClickListner = this; + mediaPlayer.start(); + playButton.startRecordAnimation(); + } catch (Exception e) { + System.out.println(); + } + } + + +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/ServiceChatActivity.java b/app/src/main/java/com/example/administrator/chatdemo/ServiceChatActivity.java new file mode 100644 index 0000000..0784f70 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/ServiceChatActivity.java @@ -0,0 +1,482 @@ +package com.example.administrator.chatdemo; + +import android.Manifest; +import android.annotation.TargetApi; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.provider.MediaStore; +import android.support.v4.widget.SwipeRefreshLayout; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.MotionEvent; +import android.view.View; +import android.widget.Toast; + +import com.example.administrator.chatdemo.adapter.ChatRecyclerAdapter; +import com.example.administrator.chatdemo.bean.ChatConst; +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.bean.ChatMessageType; +import com.example.administrator.chatdemo.bean.DaoSession; +import com.example.administrator.chatdemo.utils.ImageCheckoutUtil; +import com.example.administrator.chatdemo.utils.PathUtils; +import com.example.administrator.chatdemo.widget.ChatBottomView; +import com.example.administrator.chatdemo.widget.InputBarLayout; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ServiceChatActivity extends AppCompatActivity { + + private View activityRootView; + + private static final int SDK_PERMISSION_REQUEST = 127; + private static final int IMAGE_SIZE = 100 * 1024;// 300kb + private String permissionInfo; + private boolean CAN_WRITE_EXTERNAL_STORAGE = true; + private boolean CAN_RECORD_AUDIO = true; + private String camPicPath; + private InputBarLayout inputbarLayout; + private RecyclerView rvChat; + private LinearLayoutManager layoutManager; + + public List messageList = new ArrayList<>(); + private ChatRecyclerAdapter chatRecyclerAdapter; + + public String userName = "Dwq";//聊天对象昵称 + + public static final int SEND_OK = 0x1110; + public static final int REFRESH = 0x0011; + public static final int RECERIVE_OK = 0x1111; + public static final int PULL_TO_REFRESH_DOWN = 0x0111; + private SendMessageHandler sendMessageHandler; + private String content; + private DaoSession daoSession; + private String voiceFilePath; + private SwipeRefreshLayout swipeRefresh; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_service_chat); + initView(); + initListener(); + initData(); + getPersimmions(); + } + + + private void initView() { + activityRootView = findViewById(R.id.layout_tongbao_rl); + inputbarLayout = (InputBarLayout) findViewById(R.id.input_bar); + swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh); + rvChat = (RecyclerView) findViewById(R.id.rv_chat); + layoutManager = new LinearLayoutManager(this); + rvChat.setLayoutManager(layoutManager); + } + + private void initListener() { + inputbarLayout.setOnBottomIconClickListener(new InputBarLayout.OnBottomIconClickListener() { + @Override + public void onIconClickListener(int from) { + switch (from) { + case ChatBottomView.FROM_CAMERA:// 相机 + if (!CAN_WRITE_EXTERNAL_STORAGE) { + Toast.makeText(ServiceChatActivity.this, "权限未开通\n请到设置中开通相册权限", Toast.LENGTH_SHORT).show(); + } else { + camPicPath = PathUtils.getSavePicPath(ServiceChatActivity.this); + Intent openCameraIntent = new Intent( + MediaStore.ACTION_IMAGE_CAPTURE); + Uri uri = Uri.fromFile(new File(camPicPath)); + openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); + startActivityForResult(openCameraIntent, + ChatBottomView.FROM_CAMERA); + } + break; + case ChatBottomView.FROM_GALLERY:// 相册 + PictureSelector.create(ServiceChatActivity.this) + .openGallery(PictureMimeType.ofImage()) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.SINGLE) + .previewImage(true) + .compress(true) + .isCamera(false) + .forResult(PictureConfig.CHOOSE_REQUEST); + break; + } + } + }); + + inputbarLayout.setOnMessageSendListener(new InputBarLayout.OnMessageSendListener() { + @Override + public void sendMessage(final String msg) {// 发送文字消息 + new Thread(new Runnable() { + @Override + public void run() { +// messageList.add(getTbub(userName, ChatMessageType.TextMessageType.getType(), msg, null, null, +// null, null, null, 0f, ChatConst.COMPLETED)); + chatRecyclerAdapter.addMessage(getTbub(userName, 0, ChatMessageType.TextMessageType.getType(), + msg, null, null, null, null, null, 0f, ChatConst.COMPLETED)); + sendMessageHandler.sendEmptyMessage(SEND_OK); + ServiceChatActivity.this.content = msg; + receriveHandler.sendEmptyMessageDelayed(0, 1000); + } + }).start(); + } + + @Override + public void sendVoice(float seconds, String voicePath) {// 发送语音消息 + sendAudio(seconds, voicePath); + } + + @Override + public void onVoiceRecordStart() { + chatRecyclerAdapter.pausePlayer(); + } + }); + + rvChat.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + + inputbarLayout.hideBottomLayout(); + return false; + } + }); + } + + private void initData() { + + daoSession = ((App) getApplication()).getDaoSession(); + loadLocalMessage(); + chatRecyclerAdapter = new ChatRecyclerAdapter(this, messageList); + chatRecyclerAdapter.resetRecycledViewPoolSize(rvChat); + + rvChat.setAdapter(chatRecyclerAdapter); + rvChat.scrollToPosition(messageList.size() - 1); + sendMessageHandler = new SendMessageHandler(this); + + } + + private void loadLocalMessage() { + if (messageList != null) { + messageList.clear(); + } + List chatMessageBeen = daoSession.loadAll(ChatMessageBean.class); + messageList.addAll(chatMessageBeen); + } + + + @TargetApi(23) + protected void getPersimmions() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + ArrayList permissions = new ArrayList(); + // 读写权限 + if (addPermission(permissions, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { + permissionInfo += "Manifest.permission.WRITE_EXTERNAL_STORAGE Deny \n"; + } + // 麦克风权限 + if (addPermission(permissions, Manifest.permission.RECORD_AUDIO)) { + permissionInfo += "Manifest.permission.WRITE_EXTERNAL_STORAGE Deny \n"; + } + if (permissions.size() > 0) { + requestPermissions(permissions.toArray(new String[permissions.size()]), SDK_PERMISSION_REQUEST); + } + } + } + + @TargetApi(23) + private boolean addPermission(ArrayList permissionsList, String permission) { + if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { // 如果应用没有获得对应权限,则添加到列表中,准备批量申请 + if (shouldShowRequestPermissionRationale(permission)) { + return true; + } else { + permissionsList.add(permission); + return false; + } + + } else { + return true; + } + } + + @TargetApi(23) + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + // TODO Auto-generated method stub + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + switch (requestCode) { + case SDK_PERMISSION_REQUEST: + Map perms = new HashMap(); + // Initial + perms.put(Manifest.permission.WRITE_EXTERNAL_STORAGE, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.RECORD_AUDIO, PackageManager.PERMISSION_GRANTED); + // Fill with results + for (int i = 0; i < permissions.length; i++) + perms.put(permissions[i], grantResults[i]); + // Check for ACCESS_FINE_LOCATION + if (perms.get(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + // Permission Denied + CAN_WRITE_EXTERNAL_STORAGE = false; + Toast.makeText(this, "禁用图片权限将导致发送图片功能无法使用!", Toast.LENGTH_SHORT) + .show(); + } + if (perms.get(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { + CAN_RECORD_AUDIO = false; + Toast.makeText(this, "禁用录制音频权限将导致语音功能无法使用!", Toast.LENGTH_SHORT) + .show(); + } + break; + default: + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case ChatBottomView.FROM_CAMERA: + FileInputStream is = null; + try { + is = new FileInputStream(camPicPath); + File camFile = new File(camPicPath); // 图片文件路径 + if (camFile.exists()) { + int size = ImageCheckoutUtil + .getImageSize(ImageCheckoutUtil + .getLoacalBitmap(camPicPath)); +// if (size > IMAGE_SIZE) { +// showDialog(camPicPath); +// Toast.makeText(this, "ImgPath=" + camPicPath, Toast.LENGTH_SHORT).show(); +// } else { + sendImage(camPicPath); +// Toast.makeText(this, "ImgPath=" + camPicPath, Toast.LENGTH_SHORT).show(); +// } + } else { + Toast.makeText(this, "该文件不存在", Toast.LENGTH_SHORT).show(); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + // 关闭流 + try { + is.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + break; + case PictureConfig.CHOOSE_REQUEST: + // 图片选择结果回调 + List selectList = PictureSelector.obtainMultipleResult(data); + LocalMedia media = selectList.get(0); + String path = media.getPath(); + sendImage(path); + // 例如 LocalMedia 里面返回三种path + // 1.media.getPath(); 为原图path + // 2.media.getCutPath();为裁剪后path,需判断media.isCut();是否为true + // 3.media.getCompressPath();为压缩后path,需判断media.isCompressed();是否为true + // 如果裁剪并压缩了,已取压缩路径为准,因为是先裁剪后压缩的 +// mDesignCenterView.refreshSelectedPicture(selectList); + break; + } + } else if (resultCode == RESULT_CANCELED) { +// Toast.makeText(this, "操作取消", Toast.LENGTH_SHORT).show(); + } + } + + public ChatMessageBean getTbub(String username, int type, int messageType, + String Content, String imageIconUrl, String imageUrl, + String imageLocal, String userVoicePath, String userVoiceUrl, + Float userVoiceTime, @ChatConst.SendState int sendState) { + ChatMessageBean tbub = new ChatMessageBean(); + tbub.setUserName(username); + long time = System.currentTimeMillis(); + Log.i("serviceChat", "currentTime:" + time); + tbub.setTime(time); + tbub.setType(type); + tbub.setMessagetype(messageType); + tbub.setUserContent(Content); + tbub.setImageIconUrl(imageIconUrl); + tbub.setImageUrl(imageUrl); + tbub.setUserVoicePath(userVoicePath); + tbub.setUserVoiceUrl(userVoiceUrl); + tbub.setUserVoiceTime(userVoiceTime); + tbub.setSendState(sendState); + tbub.setImageLocal(imageLocal); + daoSession.insert(tbub); + + return tbub; + } + + private String filePath = ""; + + protected void sendImage(final String filePath) { + new Thread(new Runnable() { + @Override + public void run() { + chatRecyclerAdapter.addMessage(getTbub(userName, 0, ChatMessageType.ImageMessageType.getType(), null, null, null, filePath, null, null, + 0f, ChatConst.COMPLETED)); +// imageList.add(tblist.get(tblist.size() - 1).getImageLocal()); +// imagePosition.put(tblist.size() - 1, imageList.size() - 1); + sendMessageHandler.sendEmptyMessage(SEND_OK); + ServiceChatActivity.this.filePath = filePath; + receriveHandler.sendEmptyMessageDelayed(1, 3000); + } + }).start(); + } + + + /** + * 发送语音 + */ + protected void sendAudio(final float seconds, final String filePath) { + new Thread(new Runnable() { + @Override + public void run() { + chatRecyclerAdapter.addMessage(getTbub(userName, 0, ChatMessageType.AudioMessageType.getType(), null, null, null, null, filePath, + null, seconds, ChatConst.COMPLETED)); + sendMessageHandler.sendEmptyMessage(SEND_OK); + ServiceChatActivity.this.seconds = seconds; + voiceFilePath = filePath; + receriveHandler.sendEmptyMessageDelayed(2, 3000); + } + }).start(); + } + + + /** + * 为了模拟接收延迟 + */ + private Handler receriveHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + switch (msg.what) { + case 0: + receriveMsgText(content); + break; +// case 1: +// receriveImageText(filePath); +// break; + case 2: + receriveVoiceText(seconds, voiceFilePath); + break; + default: + break; + } + } + }; + + private void receriveMsgText(final String content) { + new Thread(new Runnable() { + @Override + public void run() { + String message = "回复:" + content; + ChatMessageBean tbub = new ChatMessageBean(); + tbub.setUserName(userName); + long time = System.currentTimeMillis(); + tbub.setUserContent(message); + tbub.setMessagetype(ChatMessageType.TextMessageType.getType()); + tbub.setTime(time); + tbub.setType(1); + tbub.setSendState(ChatConst.COMPLETED); + chatRecyclerAdapter.addMessage(tbub); + sendMessageHandler.sendEmptyMessage(RECERIVE_OK); + daoSession.insert(tbub); + } + }).start(); + } + + /** + * 接收语音 + */ + float seconds = 0.0f; + + private void receriveVoiceText(final float seconds, final String filePath) { + new Thread(new Runnable() { + @Override + public void run() { + ChatMessageBean tbub = new ChatMessageBean(); + tbub.setUserName(userName); + long time = System.currentTimeMillis(); + tbub.setTime(time); + tbub.setUserVoiceTime(seconds); + tbub.setUserVoicePath(filePath); + tbub.setType(1); + tbub.setMessagetype(ChatMessageType.AudioMessageType.getType()); + tbub.setSendState(ChatConst.COMPLETED); + chatRecyclerAdapter.addMessage(tbub); + sendMessageHandler.sendEmptyMessage(RECERIVE_OK); + daoSession.insert(tbub); + } + }).start(); + } + + static class SendMessageHandler extends Handler { + WeakReference mActivity; + + SendMessageHandler(ServiceChatActivity activity) { + mActivity = new WeakReference(activity); + } + + @Override + public void handleMessage(Message msg) { + // TODO Auto-generated method stub + ServiceChatActivity theActivity = mActivity.get(); + if (theActivity != null) { + switch (msg.what) { +// case REFRESH: +// theActivity.tbAdapter.isPicRefresh = true; +// theActivity.tbAdapter.notifyDataSetChanged(); +// int position = theActivity.tbAdapter.getItemCount() - 1 < 0 ? 0 : theActivity.tbAdapter.getItemCount() - 1; +// theActivity.myList.smoothScrollToPosition(position); +// break; + case SEND_OK: +// theActivity.chatRecyclerAdapter.isPicRefresh = true; +// theActivity.chatRecyclerAdapter.addMessage; + theActivity.chatRecyclerAdapter.notifyItemInserted(theActivity.messageList + .size() - 1); + theActivity.rvChat.smoothScrollToPosition(theActivity.chatRecyclerAdapter.getItemCount() - 1); + break; + case RECERIVE_OK: +// theActivity.chatRecyclerAdapter.isPicRefresh = true; + theActivity.chatRecyclerAdapter.notifyItemInserted(theActivity.messageList + .size() - 1); + theActivity.rvChat.smoothScrollToPosition(theActivity.chatRecyclerAdapter.getItemCount() - 1); + break; +// case PULL_TO_REFRESH_DOWN: +// theActivity.pullList.refreshComplete(); +// theActivity.tbAdapter.notifyDataSetChanged(); +// theActivity.rvChat.smoothScrollToPosition(theActivity.position - 1); +// theActivity.isDown = false; +// break; + default: + break; + } + } + } + + } +} + diff --git a/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionGridAdapter.java b/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionGridAdapter.java new file mode 100644 index 0000000..fee615d --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionGridAdapter.java @@ -0,0 +1,59 @@ +package com.example.administrator.chatdemo.adapter; + +import android.content.Context; +import android.graphics.Bitmap; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.utils.EmotionHelper; +import com.example.administrator.chatdemo.viewholder.ViewHolder; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by lzw on 14-9-25. + */ +public class ChatEmotionGridAdapter extends BaseAdapter { + private Context context; + private List datas = new ArrayList<>(); + + public ChatEmotionGridAdapter(Context ctx) { + this.context = ctx; + } + + public void setDatas(List datas) { + this.datas = datas; + } + + @Override + public int getCount() { + return datas.size(); + } + + @Override + public Object getItem(int i) { + return datas.get(i); + } + + @Override + public long getItemId(int i) { + return i; + } + + @Override + public View getView(int position, View conView, ViewGroup parent) { + if (conView == null) { + conView = View.inflate(context, R.layout.chat_emotion_item, null); + } + ImageView emotionImageView = ViewHolder.findViewById(conView, R.id.emotionImageView); + String emotion = (String) getItem(position); + emotion = emotion.substring(1, emotion.length() - 1); + Bitmap bitmap = EmotionHelper.getEmojiDrawable(context, emotion); + emotionImageView.setImageBitmap(bitmap); + return conView; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionPagerAdapter.java b/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionPagerAdapter.java new file mode 100644 index 0000000..1d71d96 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatEmotionPagerAdapter.java @@ -0,0 +1,41 @@ +package com.example.administrator.chatdemo.adapter; + +import android.support.v4.view.PagerAdapter; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by lzw on 14-9-25. + */ +public class ChatEmotionPagerAdapter extends PagerAdapter { + + private List views = new ArrayList(); + + public ChatEmotionPagerAdapter(List views) { + this.views = views; + } + + @Override + public int getCount() { + return views.size(); + } + + @Override + public boolean isViewFromObject(View view, Object o) { + return view == o; + } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + container.addView(views.get(position)); + return views.get(position); + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + container.removeView(views.get(position)); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatRecyclerAdapter.java b/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatRecyclerAdapter.java new file mode 100644 index 0000000..c4f4f77 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/adapter/ChatRecyclerAdapter.java @@ -0,0 +1,174 @@ +package com.example.administrator.chatdemo.adapter; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.ViewGroup; + +import com.example.administrator.chatdemo.PlayButtonClickListener; +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.bean.ChatMessageType; +import com.example.administrator.chatdemo.viewholder.ChatItemAudioHolder; +import com.example.administrator.chatdemo.viewholder.ChatItemHolder; +import com.example.administrator.chatdemo.viewholder.ChatItemImageHolder; +import com.example.administrator.chatdemo.viewholder.ChatItemTextHolder; +import com.example.administrator.chatdemo.viewholder.CommonViewHolder; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Created by dwq on 2017/7/20/020. + * e-mail:lomapa@163.com + */ + +public class ChatRecyclerAdapter extends RecyclerView.Adapter { + + private final int ITEM_LEFT = 100; + private final int ITEM_LEFT_TEXT = 101;// 左侧文字 + private final int ITEM_LEFT_IMAGE = 102;// 左侧图片 + private final int ITEM_LEFT_AUDIO = 103;// 左侧语音 + + private final int ITEM_RIGHT = 200; + private final int ITEM_RIGHT_TEXT = 201;// 右侧文字 + private final int ITEM_RIGHT_IMAGE = 202;// 右侧图片 + private final int ITEM_RIGHT_AUDIO = 203;// 右侧语音 + + // 时间间隔最小为十分钟 + private final static long TIME_INTERVAL = 1000 * 60 * 3; + private boolean isShowUserName = false; + + private List chatMessageList = new ArrayList<>(); + private Context context; + private int playButtonId = -1; + private boolean isMe; + + public ChatRecyclerAdapter(Context context, List chatMessageList) { + this.context = context; + this.chatMessageList = chatMessageList; + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + Log.i("MsgFrom", "viewType=" + viewType); + switch (viewType) { + case ITEM_LEFT_TEXT: + return new ChatItemTextHolder(parent.getContext(), parent, true); + case ITEM_LEFT_AUDIO: + return new ChatItemAudioHolder(parent.getContext(), parent, true); + case ITEM_LEFT_IMAGE: + return new ChatItemImageHolder(parent.getContext(), parent, true); + case ITEM_RIGHT_TEXT: + return new ChatItemTextHolder(parent.getContext(), parent, false); + case ITEM_RIGHT_AUDIO: + return new ChatItemAudioHolder(parent.getContext(), parent, false); + case ITEM_RIGHT_IMAGE: + return new ChatItemImageHolder(parent.getContext(), parent, false); + default: + } + return null; + } + + @Override + public int getItemViewType(int position) { + ChatMessageBean chatMessageBean = chatMessageList.get(position); + if (null != chatMessageBean) { + isMe = fromMe(chatMessageBean); + int messagetype = chatMessageBean.getMessagetype(); + if (messagetype == ChatMessageType.TextMessageType.getType()) { + return isMe ? ITEM_LEFT_TEXT : ITEM_RIGHT_TEXT; + } else if (messagetype == ChatMessageType.ImageMessageType.getType()) { + return isMe ? ITEM_LEFT_IMAGE : ITEM_RIGHT_IMAGE; + } else if (messagetype == ChatMessageType.AudioMessageType.getType()) { + return isMe ? ITEM_LEFT_AUDIO : ITEM_RIGHT_AUDIO; + } else { + return isMe ? ITEM_LEFT : ITEM_RIGHT; + } + + } + return 8888; + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + ((CommonViewHolder) holder).bindData(chatMessageList.get(position)); + if (holder instanceof ChatItemHolder) { + ((ChatItemHolder) holder).showTimeView(shouldShowTime(position)); + ((ChatItemHolder) holder).showUserName(isShowUserName); + } + if (getItemViewType(position) == ITEM_LEFT_AUDIO || getItemViewType(position) == ITEM_RIGHT_AUDIO) { + playButtonId = ((ChatItemAudioHolder) holder).playButton.getId(); + } + } + + @Override + public int getItemCount() { + return chatMessageList.size(); + } + + public void setChatMessageList(List chatMessageList) { + this.chatMessageList.clear(); + if (null != chatMessageList) { + this.chatMessageList.addAll(chatMessageList); + } + } + + public void addMessageListAll(List chatMessageList) { + this.chatMessageList.addAll(0, chatMessageList); + } + + public void addMessage(ChatMessageBean message) { + this.chatMessageList.addAll(Collections.singletonList(message)); + } + + public ChatMessageBean getFirstMessage() { + if (null != chatMessageList && chatMessageList.size() > 0) { + return this.chatMessageList.get(0); + } else { + return null; + } + } + + + private boolean fromMe(ChatMessageBean chatMessageBean) { + int type = chatMessageBean.getType(); + if (type == 0) { + return false; + } else { + return true; + } + } + + private boolean shouldShowTime(int position) { + if (position == 0) { + return true; + } + long lastTime = chatMessageList.get(position - 1).getTime(); + long curTime = chatMessageList.get(position).getTime(); + return curTime - lastTime > TIME_INTERVAL; + } + + + /** + * 因为 RecyclerView 中的 item 缓存默认最大为 5,造成会重复的 create item 而卡顿 + * 所以这里根据不同的类型设置不同的缓存值,经验值,不同 app 可以根据自己的场景进行更改 + */ + public void resetRecycledViewPoolSize(RecyclerView recyclerView) { + recyclerView.getRecycledViewPool().setMaxRecycledViews(ITEM_LEFT_TEXT, 25); + recyclerView.getRecycledViewPool().setMaxRecycledViews(ITEM_LEFT_IMAGE, 10); + recyclerView.getRecycledViewPool().setMaxRecycledViews(ITEM_LEFT_AUDIO, 15); + + recyclerView.getRecycledViewPool().setMaxRecycledViews(ITEM_RIGHT_TEXT, 25); + recyclerView.getRecycledViewPool().setMaxRecycledViews(ITEM_RIGHT_IMAGE, 10); + recyclerView.getRecycledViewPool().setMaxRecycledViews(ITEM_RIGHT_AUDIO, 15); + } + + public void pausePlayer() { + if (PlayButtonClickListener.isPlaying) + PlayButtonClickListener.mCurrentPlayButtonClickListner.stopPlayVoice(); +// } + + } + +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/adapter/DataAdapter.java b/app/src/main/java/com/example/administrator/chatdemo/adapter/DataAdapter.java new file mode 100644 index 0000000..b4b426d --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/adapter/DataAdapter.java @@ -0,0 +1,63 @@ +package com.example.administrator.chatdemo.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.TextView; + +import com.example.administrator.chatdemo.R; + + +public class DataAdapter extends BaseAdapter { + + private String[] title; + private Context context; + public DataAdapter(Context context, String[] title) { + super(); + this.context = context; + this.title = title; + } + + @Override + public int getCount() { + return title.length; + } + + @Override + public Object getItem(int position) { + return title[position]; + } + + @Override + public long getItemId(int position) { + return position; + } + + @SuppressLint("InflateParams") + @Override + public View getView(final int position, View convertView, + ViewGroup parent) { + ViewHolder holder; + if (convertView == null) { + holder = new ViewHolder(); + convertView = LayoutInflater.from(context) + .inflate(R.layout.layout_mess_iv_listitem, null); + holder.money_Tv = (TextView) convertView + .findViewById(R.id.title); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.money_Tv.setText(title[position]); + return convertView; + } + + class ViewHolder { + + TextView money_Tv; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/bean/ChatConst.java b/app/src/main/java/com/example/administrator/chatdemo/bean/ChatConst.java new file mode 100644 index 0000000..a857fd3 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/bean/ChatConst.java @@ -0,0 +1,23 @@ +package com.example.administrator.chatdemo.bean; + +import android.support.annotation.IntDef; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Created by Mao Jiqing on 2016/10/15. + */ + +public class ChatConst { + public static final String LISTVIEW_DATABASE_NAME = "listview.db"; + public static final String RECYCLER_DATABASE_NAME = "recycler.db"; + public static final int SENDING = 0; + public static final int COMPLETED = 1; + public static final int SENDERROR = 2; + + @IntDef({SENDING, COMPLETED, SENDERROR}) + @Retention(RetentionPolicy.SOURCE) + public @interface SendState { + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageBean.java b/app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageBean.java new file mode 100644 index 0000000..2dfe918 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageBean.java @@ -0,0 +1,174 @@ +package com.example.administrator.chatdemo.bean; + +import org.greenrobot.greendao.annotation.Entity; +import org.greenrobot.greendao.annotation.Id; +import org.greenrobot.greendao.annotation.Property; +import org.greenrobot.greendao.annotation.Generated; + +/** + * Created by dwq on 2017/7/20/020. + * e-mail:lomapa@163.com + */ +@Entity +public class ChatMessageBean { + @Id + private Long id; + @Property(nameInDb = "UserId") + private String UserId; + @Property(nameInDb = "UserName") + private String UserName; + @Property(nameInDb = "UserHeadIcon") + private String UserHeadIcon; + @Property(nameInDb = "UserContent") + private String UserContent; + @Property(nameInDb = "time") + private long time; + @Property(nameInDb = "type") + private int type; + @Property(nameInDb = "messagetype") + private int messagetype; + @Property(nameInDb = "UserVoiceTime") + private float UserVoiceTime; + @Property(nameInDb = "UserVoicePath") + private String UserVoicePath; + @Property(nameInDb = "UserVoiceUrl") + private String UserVoiceUrl; + @Property(nameInDb = "sendState") + private + @ChatConst.SendState + int sendState; + @Property(nameInDb = "imageUrl") + private String imageUrl; + @Property(nameInDb = "imageIconUrl") + private String imageIconUrl; + @Property(nameInDb = "imageLocal") + private String imageLocal; + @Property(nameInDb = "isListened") + private boolean isListened; + @Generated(hash = 595418362) + public ChatMessageBean(Long id, String UserId, String UserName, + String UserHeadIcon, String UserContent, long time, int type, + int messagetype, float UserVoiceTime, String UserVoicePath, + String UserVoiceUrl, int sendState, String imageUrl, + String imageIconUrl, String imageLocal, boolean isListened) { + this.id = id; + this.UserId = UserId; + this.UserName = UserName; + this.UserHeadIcon = UserHeadIcon; + this.UserContent = UserContent; + this.time = time; + this.type = type; + this.messagetype = messagetype; + this.UserVoiceTime = UserVoiceTime; + this.UserVoicePath = UserVoicePath; + this.UserVoiceUrl = UserVoiceUrl; + this.sendState = sendState; + this.imageUrl = imageUrl; + this.imageIconUrl = imageIconUrl; + this.imageLocal = imageLocal; + this.isListened = isListened; + } + @Generated(hash = 1557449535) + public ChatMessageBean() { + } + public Long getId() { + return this.id; + } + public void setId(Long id) { + this.id = id; + } + public String getUserId() { + return this.UserId; + } + public void setUserId(String UserId) { + this.UserId = UserId; + } + public String getUserName() { + return this.UserName; + } + public void setUserName(String UserName) { + this.UserName = UserName; + } + public String getUserHeadIcon() { + return this.UserHeadIcon; + } + public void setUserHeadIcon(String UserHeadIcon) { + this.UserHeadIcon = UserHeadIcon; + } + public String getUserContent() { + return this.UserContent; + } + public void setUserContent(String UserContent) { + this.UserContent = UserContent; + } + public long getTime() { + return this.time; + } + public void setTime(long time) { + this.time = time; + } + public int getType() { + return this.type; + } + public void setType(int type) { + this.type = type; + } + public int getMessagetype() { + return this.messagetype; + } + public void setMessagetype(int messagetype) { + this.messagetype = messagetype; + } + public float getUserVoiceTime() { + return this.UserVoiceTime; + } + public void setUserVoiceTime(float UserVoiceTime) { + this.UserVoiceTime = UserVoiceTime; + } + public String getUserVoicePath() { + return this.UserVoicePath; + } + public void setUserVoicePath(String UserVoicePath) { + this.UserVoicePath = UserVoicePath; + } + public String getUserVoiceUrl() { + return this.UserVoiceUrl; + } + public void setUserVoiceUrl(String UserVoiceUrl) { + this.UserVoiceUrl = UserVoiceUrl; + } + public int getSendState() { + return this.sendState; + } + public void setSendState(int sendState) { + this.sendState = sendState; + } + public String getImageUrl() { + return this.imageUrl; + } + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + public String getImageIconUrl() { + return this.imageIconUrl; + } + public void setImageIconUrl(String imageIconUrl) { + this.imageIconUrl = imageIconUrl; + } + public String getImageLocal() { + return this.imageLocal; + } + public void setImageLocal(String imageLocal) { + this.imageLocal = imageLocal; + } + public boolean getIsListened() { + return this.isListened; + } + public void setIsListened(boolean isListened) { + this.isListened = isListened; + } + + + + +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageType.java b/app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageType.java new file mode 100644 index 0000000..bf5a709 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/bean/ChatMessageType.java @@ -0,0 +1,36 @@ +package com.example.administrator.chatdemo.bean; + +/** + * Created by dwq on 2017/7/20/020. + * e-mail:lomapa@163.com + */ + +public enum ChatMessageType { + UnsupportedMessageType(0), + TextMessageType(-1), + ImageMessageType(-2), + AudioMessageType(-3); + + int type; + + private ChatMessageType(int type) { + this.type = type; + } + + public int getType() { + return this.type; + } + + public static ChatMessageType getAVIMReservedMessageType(int type) { + switch (type) { + case -3: + return AudioMessageType; + case -2: + return ImageMessageType; + case -1: + return TextMessageType; + default: + return UnsupportedMessageType; + } + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/AudioManager.java b/app/src/main/java/com/example/administrator/chatdemo/utils/AudioManager.java new file mode 100644 index 0000000..eff9bf3 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/AudioManager.java @@ -0,0 +1,212 @@ +package com.example.administrator.chatdemo.utils; + +import android.media.MediaRecorder; +import android.os.Handler; + +import java.io.File; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +public class AudioManager { + /** + * 录音的时候出错 + */ + public static final int MSG_ERROR_AUDIO_RECORD = -4; + private MediaRecorder mRecorder; + private String mDirString; + private String mCurrentFilePathString; + private Handler handler; + private boolean isPrepared;// 是否准备好了 + + /** + * 单例化的方法 1 先声明一个static 类型的变量a 2 在声明默认的构造函数 3 再用public synchronized static + * 类名 getInstance() { if(a==null) { a=new 类();} return a; } 或者用以下的方法 + */ + + /** + * 单例化这个类 + */ + private static AudioManager mInstance; + + private AudioManager(String dir) { + mDirString = dir; + } + + public static AudioManager getInstance(String dir) { + if (mInstance == null) { + synchronized (AudioManager.class) { + if (mInstance == null) { + mInstance = new AudioManager(dir); + + } + } + } + return mInstance; + + } + + public void setHandle(Handler handler) { + this.handler = handler; + } + + /** + * 回调函数,准备完毕,准备好后,button才会开始显示录音框 + */ + public interface AudioStageListener { + void wellPrepared(); + } + + public AudioStageListener mListener; + + public void setOnAudioStageListener(AudioStageListener listener) { + mListener = listener; + } + + public void setVocDir(String dir) { + mDirString = dir; + } + + // 准备方法 + @SuppressWarnings("deprecation") + public void prepareAudio() { + try { + // 一开始应该是false的 + isPrepared = false; + + File dir = new File(mDirString); +// if (!dir.exists()) { +// dir.mkdirs(); +// } +// + String fileNameString = generalFileName(); + File file = new File(dir, fileNameString); + mCurrentFilePathString = file.getAbsolutePath(); + mRecorder = new MediaRecorder(); + // 设置输出文件 + mRecorder.setOutputFile(file.getAbsolutePath()); + // 设置meidaRecorder的音频源是麦克风 + mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); + // 设置文件音频的输出格式为amr + mRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); + // 设置音频的编码格式为amr + mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); + + // 严格遵守google官方api给出的mediaRecorder的状态流程图 + mRecorder.prepare(); + + mRecorder.start(); + // 准备结束 + // 已经准备好了,可以录制了 + if (mListener != null) { + mListener.wellPrepared(); + } + isPrepared = true; + + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + if (handler != null) { + handler.sendEmptyMessage(MSG_ERROR_AUDIO_RECORD); + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + if (handler != null) { + handler.sendEmptyMessage(MSG_ERROR_AUDIO_RECORD); + } + } catch (Exception e) { + e.printStackTrace(); + if (handler != null) { + handler.sendEmptyMessage(MSG_ERROR_AUDIO_RECORD); + } + } + + } + + /** + * 随机生成文件的名称 + * + * @return + */ + private String generalFileName() { + // TODO Auto-generated method stub + +// return UUID.randomUUID().toString() + ".amr"; + return String.valueOf(System.currentTimeMillis()); + } + + private int vocAuthority[] = new int[10]; + private int vocNum = 0; + private boolean check = true; + + // 获得声音的level + public int getVoiceLevel(int maxLevel) { + // mRecorder.getMaxAmplitude()这个是音频的振幅范围,值域是0-32767 + if (isPrepared) { + try { + int vocLevel = mRecorder.getMaxAmplitude(); + if (check) { + if (vocNum >= 10) { + Set set = new HashSet(); + for (int i = 0; i < vocNum; i++) { + set.add(vocAuthority[i]); + } + if (set.size() == 1) { + if (handler != null) + handler.sendEmptyMessage(MSG_ERROR_AUDIO_RECORD); + vocNum = 0; + vocAuthority = null; + vocAuthority = new int[10]; + } else { + check = false; + } + } else { + vocAuthority[vocNum] = vocLevel; + vocNum++; + } + } + return maxLevel * vocLevel / 32768 + 1; + } catch (Exception e) { + // TODO Auto-generated catch block + if (handler != null) + handler.sendEmptyMessage(MSG_ERROR_AUDIO_RECORD); + } + } + + return 1; + } + + // 释放资源 + public void release() { + // 严格按照api流程进行 + if (null != mRecorder) { + isPrepared = false; + try { + mRecorder.stop(); + mRecorder.release(); + } catch (Exception e) { + e.printStackTrace(); + } + mRecorder = null; + } + } + + // 取消,因为prepare时产生了一个文件,所以cancel方法应该要删除这个文件, + // 这是与release的方法的区别 + public void cancel() { + release(); + if (mCurrentFilePathString != null) { + File file = new File(mCurrentFilePathString); + file.delete(); + mCurrentFilePathString = null; + } + + } + + public String getCurrentFilePath() { + // TODO Auto-generated method stub + return mCurrentFilePathString; + } + +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/Constants.java b/app/src/main/java/com/example/administrator/chatdemo/utils/Constants.java new file mode 100644 index 0000000..54addf1 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/Constants.java @@ -0,0 +1,47 @@ +package com.example.administrator.chatdemo.utils; + +/** + * Created by wli on 15/8/23. + * 用来存放各种 static final 值 + */ +public class Constants { + + public static final String OBJECT_ID = "objectId"; + public static final int PAGE_SIZE = 10; + public static final String CREATED_AT = "createdAt"; + public static final String UPDATED_AT = "updatedAt"; + + + //TODO 还不知道这俩货是干嘛的 + public static final int ORDER_UPDATED_AT = 1; + public static final int ORDER_DISTANCE = 0; + + private static final String LEANMESSAGE_CONSTANTS_PREFIX = "com.avoscloud.leanchatlib."; + + public static final String MEMBER_ID = getPrefixConstant("member_id"); + public static final String CONVERSATION_ID = getPrefixConstant("conversation_id"); + + public static final String LEANCHAT_USER_ID = getPrefixConstant("leanchat_user_id"); + + public static final String ACTIVITY_TITLE = getPrefixConstant("activity_title"); + + public static final String INTENT_KEY = getPrefixConstant("intent_key"); + public static final String INTENT_VALUE = getPrefixConstant("intent_value"); + public static final String INTENT_DATA = getPrefixConstant("intent_data"); + + + + // ImageBrowserActivity + public static final String IMAGE_LOCAL_PATH = getPrefixConstant("image_local_path"); + public static final String IMAGE_URL = getPrefixConstant("image_url"); + + //Notification + public static final String NOTOFICATION_TAG = getPrefixConstant("notification_tag"); + public static final String NOTIFICATION_SINGLE_CHAT = Constants.getPrefixConstant("notification_single_chat"); + public static final String NOTIFICATION_GROUP_CHAT = Constants.getPrefixConstant("notification_group_chat"); + public static final String NOTIFICATION_SYSTEM = Constants.getPrefixConstant("notification_system_chat"); + + public static String getPrefixConstant(String str) { + return LEANMESSAGE_CONSTANTS_PREFIX + str; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/EmotionHelper.java b/app/src/main/java/com/example/administrator/chatdemo/utils/EmotionHelper.java new file mode 100644 index 0000000..61eedfe --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/EmotionHelper.java @@ -0,0 +1,205 @@ +package com.example.administrator.chatdemo.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.style.ImageSpan; +import android.util.Log; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Created by lzw on 14-9-25. + */ +public class EmotionHelper { + private static final int ONE_PAGE_SIZE = 24; + public static List> emojiGroups; + private static Pattern pattern; + private static String[] emojiCodes = new String[]{ + ":smile:", + ":laughing:", + ":blush:", + ":smiley:", + ":relaxed:", + ":smirk:", + ":heart_eyes:", + ":kissing_heart:", + ":kissing_closed_eyes:", + ":flushed:", + ":relieved:", + ":satisfied:", + ":grin:", + ":wink:", + ":stuck_out_tongue_winking_eye:", + ":stuck_out_tongue_closed_eyes:", + ":grinning:", + ":kissing:", + ":kissing_smiling_eyes:", + ":stuck_out_tongue:", + ":sleeping:", + ":worried:", + ":frowning:", + ":anguished:", + ":open_mouth:", + ":grimacing:", + ":confused:", + ":hushed:", + ":expressionless:", + ":unamused:", + ":sweat_smile:", + ":sweat:", + ":disappointed_relieved:", + ":weary:", + ":pensive:", + ":disappointed:", + ":confounded:", + ":fearful:", + ":cold_sweat:", + ":persevere:", + ":cry:", + ":sob:", + ":joy:", + ":astonished:", + ":scream:", + ":tired_face:", + ":angry:", + ":rage:", + ":triumph:", + ":sleepy:", + ":yum:", + ":mask:", + ":sunglasses:", + ":dizzy_face:", + ":neutral_face:", + ":no_mouth:", + ":innocent:", + ":thumbsup:", + ":thumbsdown:", + ":clap:", + ":point_right:", + ":point_left:"}; + + static { + int pages = emojiCodes.length / ONE_PAGE_SIZE + (emojiCodes.length % ONE_PAGE_SIZE == 0 ? 0 : 1); + emojiGroups = new ArrayList<>(); + for (int page = 0; page < pages; page++) { + List onePageEmojis = new ArrayList<>(); + int start = page * ONE_PAGE_SIZE; + int end = Math.min(page * ONE_PAGE_SIZE + ONE_PAGE_SIZE, emojiCodes.length); + for (int i = start; i < end; i++) { + onePageEmojis.add(emojiCodes[i]); + } + emojiGroups.add(onePageEmojis); + } + pattern = Pattern.compile("\\:[a-z0-9-_]*\\:"); + } + + public static boolean contain(String[] strings, String string) { + for (String s : strings) { + if (s.equals(string)) { + return true; + } + } + return false; + } + + public static CharSequence replace(Context context, String text) { + if (TextUtils.isEmpty(text)) { + return text; + } + SpannableString spannableString = new SpannableString(text); + Matcher matcher = pattern.matcher(text); + while (matcher.find()) { + String factText = matcher.group(); + String key = factText.substring(1, factText.length() - 1); + if (contain(emojiCodes, factText)) { + Bitmap bitmap = getEmojiDrawableInText(context, key); + ImageSpan image = new ImageSpan(context, bitmap); + int start = matcher.start(); + int end = matcher.end(); + spannableString.setSpan(image, start, end, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } + return spannableString; + } + + public static SpannableString replaceEmoj(Context context, String text) { + if (TextUtils.isEmpty(text)) { + return null; + } + SpannableString spannableString = new SpannableString(text); + Matcher matcher = pattern.matcher(text); + while (matcher.find()) { + String factText = matcher.group(); + String key = factText.substring(1, factText.length() - 1); + if (contain(emojiCodes, factText)) { + Bitmap bitmap = getEmojiDrawable(context, key); + ImageSpan image = new ImageSpan(context, bitmap); + int start = matcher.start(); + int end = matcher.end(); + spannableString.setSpan(image, start, end, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } + return spannableString; + } + + public static void isEmojiDrawableAvailable(Context context) { + for (String emojiCode : emojiCodes) { + String code = emojiCode.substring(1, emojiCode.length() - 1); + Bitmap bitmap = getDrawableByName(context, code); + if (bitmap == null) { + Log.i("EmotionHelper", "not available test " + code); + } + } + } + + public static Bitmap getEmojiDrawableInText(Context context, String name) { + return getDrawableByNameInText(context, "emoji_" + name); + } + + public static Bitmap getEmojiDrawable(Context context, String name) { + return getDrawableByName(context, "emoji_" + name); + } + + public static Bitmap getDrawableByName(Context ctx, String name) { + + BitmapFactory.Options options = new BitmapFactory.Options(); + Matrix matrix = new Matrix(); + matrix.postScale(0.8f, 0.8f); + Bitmap bitmap = BitmapFactory.decodeResource(ctx.getResources(), + ctx.getResources().getIdentifier(name, "drawable", + ctx.getPackageName()), options); + Bitmap BitmapOrg = bitmap; + int width = BitmapOrg.getWidth(); + int height = BitmapOrg.getHeight(); + Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width, + height, matrix, true); + return resizedBitmap; + } + + public static Bitmap getDrawableByNameInText(Context ctx, String name) { + + BitmapFactory.Options options = new BitmapFactory.Options(); + Matrix matrix = new Matrix(); + matrix.postScale(0.58f, 0.58f); + Bitmap bitmap = BitmapFactory.decodeResource(ctx.getResources(), + ctx.getResources().getIdentifier(name, "drawable", + ctx.getPackageName()), options); + Bitmap BitmapOrg = bitmap; + int width = BitmapOrg.getWidth(); + int height = BitmapOrg.getHeight(); + Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width, + height, matrix, true); + return resizedBitmap; + } +} + diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/FileSaveUtil.java b/app/src/main/java/com/example/administrator/chatdemo/utils/FileSaveUtil.java new file mode 100644 index 0000000..04523af --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/FileSaveUtil.java @@ -0,0 +1,372 @@ +package com.example.administrator.chatdemo.utils; + +import android.annotation.SuppressLint; +import android.annotation.TargetApi; +import android.content.ContentUris; +import android.content.Context; +import android.database.Cursor; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Build; +import android.os.Environment; +import android.provider.DocumentsContract; +import android.provider.MediaStore; +import android.util.Base64; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +public class FileSaveUtil { + public static final String SD_CARD_PATH = Environment.getExternalStorageDirectory().toString() + "/MAXI/"; + + // public static final String saveFn = SD_CARD_PATH +// + "/user_chat_data/"; +// public static final String savelistFn = SD_CARD_PATH +// + "/user_chat_data/chatList/"; +// public static final String savechannelFn = SD_CARD_PATH +// + "/user_chat_data/channel_id/"; +// public static final String saveUnReadFn = SD_CARD_PATH +// + "/user_chat_data/UnRead/"; + public static final String voice_dir = SD_CARD_PATH + + "/voice_data/"; + + /** + * SD卡是否存在 + **/ + private boolean hasSD = false; + /** + * 当前程序包的路径 + **/ + private String FILESPATH; + + public static boolean isFileExists(File file) { + if (!file.exists()) { + return false; + } + return true; + } + + /** + * 获取文件夹下的所有文件名 + */ + public static List getFileName(String fileName) { + List fileList = new ArrayList(); + String path = fileName; // 路径 + File f = new File(path); + if (!f.exists()) { + System.out.println(path + " not exists"); + return null; + } + + File fa[] = f.listFiles(); + for (int i = 0; i < fa.length; i++) { + File fs = fa[i]; + if (!fs.isDirectory()) { + fileList.add(fs.getName()); + } + } + return fileList; + } + + /** + * 在SD卡上创建文件 + * + * @throws IOException + */ + public static File createSDFile(String fileName) throws IOException { + File file = new File(fileName); + if (!isFileExists(file)) + if (file.isDirectory()) { + file.mkdirs(); + } else { + file.createNewFile(); + } + return file; + } + + /** + * 在SD卡上创建文件夹 + * + * @throws IOException + */ + public static File createSDDirectory(String fileName) throws IOException { + File file = new File(fileName); + if (!isFileExists(file)) + file.mkdirs(); + return file; + } + +// /** +// * @content 存储内容 +// * @file 文件目录 +// * @isAppend 是否追加 +// */ +// public synchronized static void writeString(String content, String file, boolean isAppend) { +// try { +// createSDDirectory(saveFn); +// createSDDirectory(savelistFn); +// createSDDirectory(savechannelFn); +// byte[] data = content.getBytes("utf-8"); +// writeBytes(file, data, isAppend); +// } catch (Exception e) { +// System.out.println(e.getMessage()); +// } +// +// } + + public synchronized static boolean writeBytes(String filePath, byte[] data, + boolean isAppend) { + try { + FileOutputStream fos; + if (isAppend) + fos = new FileOutputStream(filePath, true); + else + fos = new FileOutputStream(filePath); + fos.write(data); + fos.close(); + return true; + } catch (Exception e) { + System.out.println(e.getMessage()); + } + return false; + } + + /** + * 读取SD卡中文本文件 + * + * @param fileName + * @return + */ + public synchronized static String readSDFile(String fileName) { + StringBuffer sb = new StringBuffer(); + File f1 = new File(fileName); + String str = null; + try { + InputStream is = new FileInputStream(f1); + InputStreamReader input = new InputStreamReader(is, "UTF-8"); + @SuppressWarnings("resource") + BufferedReader reader = new BufferedReader(input); + while ((str = reader.readLine()) != null) { + sb.append(str); + } + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return sb.toString(); + } + + public String getFILESPATH() { + return FILESPATH; + } + + public boolean hasSD() { + return hasSD; + } + + /** + * 删除单个文件 + * + * @param filePath 被删除文件的文件名 + * @return 文件删除成功返回true,否则返回false + */ + public static boolean deleteFile(String filePath) { + File file = new File(filePath); + if (file.isFile() && file.exists()) { + return file.delete(); + } + return false; + } + + /** + * 删除文件夹以及目录下的文件 + * + * @param filePath 被删除目录的文件路径 + * @return 目录删除成功返回true,否则返回false + */ + public static boolean deleteDirectory(String filePath) { + boolean flag = false; + // 如果filePath不以文件分隔符结尾,自动添加文件分隔符 + if (!filePath.endsWith(File.separator)) { + filePath = filePath + File.separator; + } + File dirFile = new File(filePath); + if (!dirFile.exists() || !dirFile.isDirectory()) { + return false; + } + flag = true; + File[] files = dirFile.listFiles(); + // 遍历删除文件夹下的所有文件(包括子目录) + for (int i = 0; i < files.length; i++) { + if (files[i].isFile()) { + // 删除子文件 + flag = deleteFile(files[i].getAbsolutePath()); + if (!flag) + break; + } else { + // 删除子目录 + flag = deleteDirectory(files[i].getAbsolutePath()); + if (!flag) + break; + } + } + if (!flag) + return false; + // 删除当前空目录 + return dirFile.delete(); + } + + public static boolean saveBitmap(Bitmap bm, String picName) { + try { + File f = new File(picName); + if (f.exists()) { + f.delete(); + } + FileOutputStream out = new FileOutputStream(f); + bm.compress(Bitmap.CompressFormat.PNG, 100, out); + out.flush(); + out.close(); + return true; + } catch (FileNotFoundException e) { + e.printStackTrace(); + return false; + } catch (IOException e) { + e.printStackTrace(); + return false; + } + } + + /** + * 把文件转换成base64 + * + * @param path + * @return + */ + public static String encodeBase64File(String path) throws Exception { + byte[] videoBytes; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + @SuppressWarnings("resource") + FileInputStream fis = new FileInputStream(new File(path)); + byte[] buf = new byte[1024]; + int n; + while (-1 != (n = fis.read(buf))) + baos.write(buf, 0, n); + videoBytes = baos.toByteArray(); + return Base64.encodeToString(videoBytes, Base64.NO_WRAP); + } + + /** + * 根据相册媒体库路径转换成sd卡路径 + * + * @param context + * @param uri + * @return + */ + @TargetApi(Build.VERSION_CODES.KITKAT) + public static String getPath(final Context context, final Uri uri) { + final boolean isOverKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + // DocumentProvider + if (isOverKitKat && DocumentsContract.isDocumentUri(context, uri)) { + // ExternalStorageProvider + if (isExternalStorageDocument(uri)) { + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + if ("primary".equalsIgnoreCase(type)) { + return Environment.getExternalStorageDirectory() + "/" + + split[1]; + } + } + // DownloadsProvider + else if (isDownloadsDocument(uri)) { + final String id = DocumentsContract.getDocumentId(uri); + final Uri contentUri = ContentUris.withAppendedId( + Uri.parse("content://downloads/public_downloads"), + Long.valueOf(id)); + return getDataColumn(context, contentUri, null, null); + } + // MediaProvider + else if (isMediaDocument(uri)) { + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + Uri contentUri = null; + if ("image".equals(type)) { + contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; + } else if ("video".equals(type)) { + contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; + } else if ("audio".equals(type)) { + contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; + } + final String selection = "_id=?"; + final String[] selectionArgs = new String[]{split[1]}; + return getDataColumn(context, contentUri, selection, + selectionArgs); + } + } + // MediaStore (and general) + else if ("content".equalsIgnoreCase(uri.getScheme())) { + // Return the remote address + if (isGooglePhotosUri(uri)) + return uri.getLastPathSegment(); + return getDataColumn(context, uri, null, null); + } + // File + else if ("file".equalsIgnoreCase(uri.getScheme())) { + return uri.getPath(); + } + return null; + } + + @SuppressLint("NewApi") + public static String getDataColumn(Context context, Uri uri, + String selection, String[] selectionArgs) { + Cursor cursor = null; + final String column = "_data"; + final String[] projection = {column}; + try { + cursor = context.getContentResolver().query(uri, projection, + selection, selectionArgs, null); + if (cursor != null && cursor.moveToFirst()) { + final int index = cursor.getColumnIndexOrThrow(column); + return cursor.getString(index); + } + } finally { + if (cursor != null) + cursor.close(); + } + return null; + } + + public static boolean isGooglePhotosUri(Uri uri) { + return "com.google.android.apps.photos.content".equals(uri + .getAuthority()); + } + + public static boolean isDownloadsDocument(Uri uri) { + return "com.android.providers.downloads.documents".equals(uri + .getAuthority()); + } + + public static boolean isMediaDocument(Uri uri) { + return "com.android.providers.media.documents".equals(uri + .getAuthority()); + } + + public static boolean isExternalStorageDocument(Uri uri) { + return "com.android.externalstorage.documents".equals(uri + .getAuthority()); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/ImageCheckoutUtil.java b/app/src/main/java/com/example/administrator/chatdemo/utils/ImageCheckoutUtil.java new file mode 100644 index 0000000..58997ae --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/ImageCheckoutUtil.java @@ -0,0 +1,61 @@ +package com.example.administrator.chatdemo.utils; + +import android.annotation.SuppressLint; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.Build; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +public class ImageCheckoutUtil { + /** + * 检测图片内存大小 + * + * @param data + * @return + */ + @SuppressLint("NewApi") + public static int getImageSize(Bitmap data) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1) { + return data.getRowBytes() * data.getHeight(); + } else { + return data.getByteCount(); + } + } + + public static Bitmap getLoacalBitmap(String url) { + try { + ByteArrayOutputStream out; + FileInputStream fis = new FileInputStream(url); + BufferedInputStream bis = new BufferedInputStream(fis); + out = new ByteArrayOutputStream(); + @SuppressWarnings("unused") + int hasRead = 0; + byte[] buffer = new byte[1024 * 2]; + while ((hasRead = bis.read(buffer)) > 0) { + // 读出多少数据,向输出流中写入多少 + out.write(buffer); + out.flush(); + } + out.close(); + fis.close(); + bis.close(); + byte[] data = out.toByteArray(); + // 长宽减半 + BitmapFactory.Options opts = new BitmapFactory.Options(); + opts.inSampleSize = 3; + return BitmapFactory.decodeByteArray(data, 0, data.length, opts); + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return null; + } + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/KeyBoardUtils.java b/app/src/main/java/com/example/administrator/chatdemo/utils/KeyBoardUtils.java new file mode 100644 index 0000000..664f5fe --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/KeyBoardUtils.java @@ -0,0 +1,26 @@ +package com.example.administrator.chatdemo.utils; + +import android.content.Context; +import android.view.View; +import android.view.inputmethod.InputMethodManager; + +/** + * Created by Mao Jiqing on 2016/9/28. + */ +public class KeyBoardUtils { + public static void hideKeyBoard(Context context, View view) { + InputMethodManager imm = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); // 强制隐藏键盘 + } + + public static void showKeyBoard(Context context, View view) { + view.setFocusable(true); + view.setFocusableInTouchMode(true); + view.requestFocus(); + view.findFocus(); + InputMethodManager imm = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/LogUtils.java b/app/src/main/java/com/example/administrator/chatdemo/utils/LogUtils.java new file mode 100644 index 0000000..38aabff --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/LogUtils.java @@ -0,0 +1,67 @@ +package com.example.administrator.chatdemo.utils; + +import android.util.Log; + +/** + * Created by lzw on 15/7/14. + */ +public class LogUtils { + public static final String LOGTAG = "leanchat"; + public static boolean debugEnabled; + + public LogUtils() { + } + + private static String getDebugInfo() { + Throwable stack = new Throwable().fillInStackTrace(); + StackTraceElement[] trace = stack.getStackTrace(); + int n = 2; + return trace[n].getClassName() + " " + trace[n].getMethodName() + "()" + ":" + trace[n].getLineNumber() + + " "; + } + + private static String getLogInfoByArray(String[] infos) { + StringBuilder sb = new StringBuilder(); + for (String info : infos) { + sb.append(info); + sb.append(" "); + } + return sb.toString(); + } + + public static void i(String... s) { + if (debugEnabled) { + Log.i(LOGTAG, getDebugInfo() + getLogInfoByArray(s)); + } + } + + public static void e(String... s) { + if (debugEnabled) { + Log.e(LOGTAG, getDebugInfo() + getLogInfoByArray(s)); + } + } + + public static void d(String... s) { + if (debugEnabled) { + Log.d(LOGTAG, getDebugInfo() + getLogInfoByArray(s)); + } + } + + public static void v(String... s) { + if (debugEnabled) { + Log.v(LOGTAG, getDebugInfo() + getLogInfoByArray(s)); + } + } + + public static void w(String... s) { + if (debugEnabled) { + Log.w(LOGTAG, getDebugInfo() + getLogInfoByArray(s)); + } + } + + public static void logException(Throwable tr) { + if (debugEnabled) { + Log.e(LOGTAG, getDebugInfo(), tr); + } + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/PathUtils.java b/app/src/main/java/com/example/administrator/chatdemo/utils/PathUtils.java new file mode 100644 index 0000000..fba9602 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/PathUtils.java @@ -0,0 +1,94 @@ +package com.example.administrator.chatdemo.utils; + +import android.content.Context; +import android.os.Environment; +import android.text.TextUtils; + +import java.io.File; + +/** + * Created by lzw on 15/4/26. + */ +public class PathUtils { + private static File checkAndMkdirs(File file) { + if (!file.exists()) { + file.mkdirs(); + } + return file; + } + + private static boolean isExternalStorageWritable() { + String state = Environment.getExternalStorageState(); + return Environment.MEDIA_MOUNTED.equals(state); + } + + /** + * 有 sdcard 的时候,小米是 /storage/sdcard0/Android/data/com.avoscloud.chat/cache/ + * 无 sdcard 的时候,小米是 /data/data/com.avoscloud.chat/cache + * 依赖于包名。所以不同应用使用该库也没问题,要有点理想。 + * + * @return + */ + private static File getAvailableCacheDir(Context context) { + if (isExternalStorageWritable()) { + return context.getExternalCacheDir(); + } else { + // 只有此应用才能访问。拍照的时候有问题,因为拍照的应用写入不了该文件 + return context.getCacheDir(); + } + } + + /** + * 可能文件会被清除掉,需要检查是否存在 + * + * @param id + * @return + */ + public static String getChatFilePath(Context context, String id) { + return (TextUtils.isEmpty(id) ? null : new File(getAvailableCacheDir(context), id).getAbsolutePath()); + } + + /** + * 录音保存的地址 + * + * @return + */ + public static String getRecordPathByCurrentTime(Context context) { + return new File(getAvailableCacheDir(context), "record_" + System.currentTimeMillis()).getAbsolutePath(); + } + + /** + * 拍照保存的地址 + * + * @return + */ + public static String getPicturePathByCurrentTime(Context context) { + String path = new File(getAvailableCacheDir(context), "picture_" + System.currentTimeMillis()).getAbsolutePath(); +// LogUtils.d("picture path ", path); + return path; + } + + public static String getSavePicPath(Context context) { + final String dir = getAvailableCacheDir(context) + "/image_data/"; + File file = new File(dir); + if (!isFileExists(file)) + file.mkdirs(); + String fileName = String.valueOf(System.currentTimeMillis() + ".png"); + return dir + fileName; + } + + public static String getSaveVoicePath(Context context) { + final String dir = getAvailableCacheDir(context) + "/voice_data/"; + File file = new File(dir); + if (!isFileExists(file)) + file.mkdirs(); + return dir; + } + + public static boolean isFileExists(File file) { + if (!file.exists()) { + return false; + } + return true; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/PhotoUtils.java b/app/src/main/java/com/example/administrator/chatdemo/utils/PhotoUtils.java new file mode 100644 index 0000000..c63755c --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/PhotoUtils.java @@ -0,0 +1,372 @@ +package com.example.administrator.chatdemo.utils; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Rect; +import android.graphics.RectF; +import android.media.ExifInterface; +import android.media.ThumbnailUtils; +import android.widget.ImageView; + +import com.example.administrator.chatdemo.R; +import com.nostra13.universalimageloader.core.DisplayImageOptions; +import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.assist.ImageScaleType; +import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + +/** + * Created by lzw on 15/4/24. + * TODO Util 部分还需要再优化 + */ +public class PhotoUtils { + public static DisplayImageOptions avatarImageOptions = new DisplayImageOptions.Builder() + .showImageOnLoading(R.drawable.chat_default_user_avatar) + .showImageForEmptyUri(R.drawable.chat_default_user_avatar) + .showImageOnFail(R.drawable.chat_default_user_avatar) + .cacheInMemory(true) + .cacheOnDisc(true) + .considerExifParams(true) + .imageScaleType(ImageScaleType.EXACTLY) + .bitmapConfig(Bitmap.Config.RGB_565) + .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位 + //.displayer(new RoundedBitmapDisplayer(20)) + //.displayer(new FadeInBitmapDisplayer(100))// 淡入 + .build(); + + private static DisplayImageOptions normalImageOptions = new DisplayImageOptions.Builder() + .showImageOnLoading(R.drawable.chat_common_empty_photo) + .showImageForEmptyUri(R.drawable.chat_common_empty_photo) + .showImageOnFail(R.drawable.chat_common_image_load_fail) + .cacheInMemory(true) + .cacheOnDisc(true) + .considerExifParams(true) + .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) + .bitmapConfig(Bitmap.Config.RGB_565) + .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位 + //.displayer(new RoundedBitmapDisplayer(20)) + .displayer(new FadeInBitmapDisplayer(100))// 淡入 + .build(); + + public static void displayImageCacheElseNetwork(ImageView imageView, + String path, String url) { + ImageLoader imageLoader = ImageLoader.getInstance(); + if (path != null) { + File file = new File(path); + if (file.exists()) { + imageLoader.displayImage("file://" + path, imageView, normalImageOptions); + return; + } + } + imageLoader.displayImage(url, imageView, normalImageOptions); + } + + public static String compressImage(String path, String newPath) { + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeFile(path, options); + int inSampleSize = 1; + int maxSize = 3000; + if (options.outWidth > maxSize || options.outHeight > maxSize) { + int widthScale = (int) Math.ceil(options.outWidth * 1.0 / maxSize); + int heightScale = (int) Math.ceil(options.outHeight * 1.0 / maxSize); + inSampleSize = Math.max(widthScale, heightScale); + } + options.inJustDecodeBounds = false; + options.inSampleSize = inSampleSize; + Bitmap bitmap = BitmapFactory.decodeFile(path, options); + int w = bitmap.getWidth(); + int h = bitmap.getHeight(); + int newW = w; + int newH = h; + if (w > maxSize || h > maxSize) { + if (w > h) { + newW = maxSize; + newH = (int) (newW * h * 1.0 / w); + } else { + newH = maxSize; + newW = (int) (newH * w * 1.0 / h); + } + } + Bitmap newBitmap = Bitmap.createScaledBitmap(bitmap, newW, newH, false); + FileOutputStream outputStream = null; + try { + outputStream = new FileOutputStream(newPath); + newBitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream); + } catch (FileNotFoundException e) { + LogUtils.logException(e); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + recycle(newBitmap); + recycle(bitmap); + return newPath; + } + + public static void recycle(Bitmap bitmap) { + // 先判断是否已经回收 + if (bitmap != null && !bitmap.isRecycled()) { + // 回收并且置为null + bitmap.recycle(); + } + System.gc(); + } + + /** + * 获取指定路径下的图片的指定大小的缩略图 getImageThumbnail + * + * @return Bitmap + * @throws + */ + public static Bitmap getImageThumbnail(String imagePath, int width, + int height) { + Bitmap bitmap = null; + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + // 获取这个图片的宽和高,注意此处的bitmap为null + bitmap = BitmapFactory.decodeFile(imagePath, options); + options.inJustDecodeBounds = false; // 设为 false + // 计算缩放比 + int h = options.outHeight; + int w = options.outWidth; + int beWidth = w / width; + int beHeight = h / height; + int be = 1; + if (beWidth < beHeight) { + be = beWidth; + } else { + be = beHeight; + } + if (be <= 0) { + be = 1; + } + options.inSampleSize = be; + // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false + bitmap = BitmapFactory.decodeFile(imagePath, options); + // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象 + bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, + ThumbnailUtils.OPTIONS_RECYCLE_INPUT); + return bitmap; + } + + public static void saveBitmap(String filePath, + Bitmap bitmap) { + File file = new File(filePath); + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + FileOutputStream out = null; + try { + out = new FileOutputStream(file); + if (bitmap.compress(Bitmap.CompressFormat.PNG, 100, out)) { + out.flush(); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + Utils.closeQuietly(out); + } + } + + public static File getFilePath(String filePath, String fileName) { + File file = null; + makeRootDirectory(filePath); + try { + file = new File(filePath + fileName); + if (!file.exists()) { + file.createNewFile(); + } + + } catch (Exception e) { + // TODO Auto-generated catch block + LogUtils.logException(e); + } + return file; + } + + public static void makeRootDirectory(String filePath) { + File file = null; + try { + file = new File(filePath); + if (!file.exists()) { + file.mkdirs(); + } + } catch (Exception e) { + + } + } + + /** + * 读取图片属性:旋转的角度 + * + * @param path 图片绝对路径 + * @return degree旋转的角度 + */ + + public static int readPictureDegree(String path) { + int degree = 0; + try { + ExifInterface exifInterface = new ExifInterface(path); + int orientation = exifInterface.getAttributeInt( + ExifInterface.TAG_ORIENTATION, + ExifInterface.ORIENTATION_NORMAL); + switch (orientation) { + case ExifInterface.ORIENTATION_ROTATE_90: + degree = 90; + break; + case ExifInterface.ORIENTATION_ROTATE_180: + degree = 180; + break; + case ExifInterface.ORIENTATION_ROTATE_270: + degree = 270; + break; + } + } catch (IOException e) { + e.printStackTrace(); + } + return degree; + + } + + /** + * 旋转图片一定角度 + * rotaingImageView + * + * @return Bitmap + * @throws + */ + public static Bitmap rotaingImageView(int angle, Bitmap bitmap) { + // 旋转图片 动作 + Matrix matrix = new Matrix(); + matrix.postRotate(angle); + // 创建新的图片 + Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, + bitmap.getWidth(), bitmap.getHeight(), matrix, true); + return resizedBitmap; + } + + /** + * 将图片变为圆角 + * + * @param bitmap 原Bitmap图片 + * @param pixels 图片圆角的弧度(单位:像素(px)) + * @return 带有圆角的图片(Bitmap 类型) + */ + public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) { + Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), + bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + + final int color = 0xff424242; + final Paint paint = new Paint(); + final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); + final RectF rectF = new RectF(rect); + final float roundPx = pixels; + + paint.setAntiAlias(true); + canvas.drawARGB(0, 0, 0, 0); + paint.setColor(color); + canvas.drawRoundRect(rectF, roundPx, roundPx, paint); + + paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(bitmap, rect, rect, paint); + + return output; + } + + /** + * 将图片转化为圆形头像 + * + * @throws + * @Title: toRoundBitmap + */ + public static Bitmap toRoundBitmap(Bitmap bitmap) { + int width = bitmap.getWidth(); + int height = bitmap.getHeight(); + float roundPx; + float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom; + if (width <= height) { + roundPx = width / 2; + + left = 0; + top = 0; + right = width; + bottom = width; + + height = width; + + dst_left = 0; + dst_top = 0; + dst_right = width; + dst_bottom = width; + } else { + roundPx = height / 2; + + float clip = (width - height) / 2; + + left = clip; + right = width - clip; + top = 0; + bottom = height; + width = height; + + dst_left = 0; + dst_top = 0; + dst_right = height; + dst_bottom = height; + } + + Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + + final Paint paint = new Paint(); + final Rect src = new Rect((int) left, (int) top, (int) right, + (int) bottom); + final Rect dst = new Rect((int) dst_left, (int) dst_top, + (int) dst_right, (int) dst_bottom); + final RectF rectF = new RectF(dst); + + paint.setAntiAlias(true);// 设置画笔无锯齿 + + canvas.drawARGB(0, 0, 0, 0); // 填充整个Canvas + + // 以下有两种方法画圆,drawRounRect和drawCircle + canvas.drawRoundRect(rectF, roundPx, roundPx, paint);// 画圆角矩形,第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。 + // canvas.drawCircle(roundPx, roundPx, roundPx, paint); + + paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));// 设置两张图片相交时的模式,参考http://trylovecatch.iteye.com/blog/1189452 + canvas.drawBitmap(bitmap, src, dst, paint); // 以Mode.SRC_IN模式合并bitmap和已经draw了的Circle + + return output; + } + + public static String simpleCompressImage(String path, String newPath) { + Bitmap bitmap = BitmapFactory.decodeFile(path); + FileOutputStream outputStream = null; + try { + outputStream = new FileOutputStream(newPath); + bitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } finally { + Utils.closeQuietly(outputStream); + } + recycle(bitmap); + return newPath; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/ScreenUtil.java b/app/src/main/java/com/example/administrator/chatdemo/utils/ScreenUtil.java new file mode 100644 index 0000000..771e5c7 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/ScreenUtil.java @@ -0,0 +1,178 @@ +package com.example.administrator.chatdemo.utils; + +import android.app.Activity; +import android.content.Context; +import android.content.res.Configuration; +import android.util.DisplayMetrics; +import android.view.Display; +import android.view.Window; +import android.view.WindowManager; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class ScreenUtil { + + private static int screenWidth = 0; + + private static int screenHeight = 0; + private static int screenTotalHeight = 0; + private static int statusBarHeight = 0; + + private static final int TITLE_HEIGHT = 0; + + /** + */ + public static int dip2px(Context context, float dpValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } + + /** + */ + public static int px2dip(Context context, float pxValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (pxValue / scale + 0.5f); + } + + public static int getScreenWidth(Context context) { +// if (screenWidth != 0) { +// return screenWidth; +// } + DisplayMetrics dm = new DisplayMetrics(); + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + wm.getDefaultDisplay().getMetrics(dm); + screenWidth = dm.widthPixels; + return screenWidth; + } + + public static int getScreenHeight(Context context) { +// if (screenHeight != 0) { +// return screenHeight; +// } + int top = 0; + if (context instanceof Activity) { + top = ((Activity) context).getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); + if (top == 0) { + top = (int) (TITLE_HEIGHT * getScreenDensity(context)); + } + } + DisplayMetrics dm = new DisplayMetrics(); + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + wm.getDefaultDisplay().getMetrics(dm); + screenHeight = dm.heightPixels - top; + return screenHeight; + } + + public static int getScreenTotalHeight(Context context) { + if (screenTotalHeight != 0) { + return screenTotalHeight; + } + DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); + screenTotalHeight = displayMetrics.heightPixels; + return screenTotalHeight; + } + public static float getScreenDensity(Context context) { + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + DisplayMetrics metric = new DisplayMetrics(); + wm.getDefaultDisplay().getMetrics(metric); + return metric.density; + } + + public static float getScreenDensityDpi(Context context) { + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + DisplayMetrics metric = new DisplayMetrics(); + wm.getDefaultDisplay().getMetrics(metric); + return metric.densityDpi; + } + public static int getStatusBarHeight(Context context) { + if (statusBarHeight != 0) { + return statusBarHeight; + } + Class c = null; + Object obj = null; + Field field = null; + int x = 0; + try { + c = Class.forName("com.android.internal.R$dimen"); + obj = c.newInstance(); + field = c.getField("status_bar_height"); + x = Integer.parseInt(field.get(obj).toString()); + statusBarHeight = context.getResources().getDimensionPixelSize(x); + } catch (Exception e1) { + e1.printStackTrace(); + } + return statusBarHeight; + } + public static boolean isTablet(Context context) { + return (context.getResources().getConfiguration().screenLayout + & Configuration.SCREENLAYOUT_SIZE_MASK) + >= Configuration.SCREENLAYOUT_SIZE_LARGE; + } + + + //获取屏幕原始尺寸高度,包括虚拟功能键高度 + public static int getDpi(Context context){ + int dpi = 0; + WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + Display display = windowManager.getDefaultDisplay(); + DisplayMetrics displayMetrics = new DisplayMetrics(); + @SuppressWarnings("rawtypes") + Class c; + try { + c = Class.forName("android.view.Display"); + @SuppressWarnings("unchecked") + Method method = c.getMethod("getRealMetrics",DisplayMetrics.class); + method.invoke(display, displayMetrics); + dpi=displayMetrics.heightPixels; + }catch(Exception e){ + e.printStackTrace(); + } + return dpi; + } + + /** + * 获取 虚拟按键的高度 + * @param context + * @return + */ + public static int getBottomStatusHeight(Context context){ + int totalHeight = getDpi(context); + + int contentHeight = getScreenHeight(context); + + return totalHeight - contentHeight; + } + + /** + * 标题栏高度 + * @return + */ + public static int getTitleHeight(Activity activity){ + return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); + } + + /** + * 获得状态栏的高度 + * + * @param context + * @return + */ + public static int getStatusHeight(Context context) + { + + int statusHeight = -1; + try + { + Class clazz = Class.forName("com.android.internal.R$dimen"); + Object object = clazz.newInstance(); + int height = Integer.parseInt(clazz.getField("status_bar_height") + .get(object).toString()); + statusHeight = context.getResources().getDimensionPixelSize(height); + } catch (Exception e) + { + e.printStackTrace(); + } + return statusHeight; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/administrator/chatdemo/utils/Utils.java b/app/src/main/java/com/example/administrator/chatdemo/utils/Utils.java new file mode 100644 index 0000000..0cbbf58 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/utils/Utils.java @@ -0,0 +1,54 @@ +package com.example.administrator.chatdemo.utils; + +import android.content.Context; + +import com.example.administrator.chatdemo.bean.ChatMessageBean; + +import org.ocpsoft.prettytime.PrettyTime; + +import java.io.Closeable; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * Created by lzw on 15/4/27. + */ +public class Utils { + + public static String millisecsToDateString(long timestamp) { + long gap = System.currentTimeMillis() - timestamp; + if (gap < 1000 * 60 * 60 * 24) { + String s = (new PrettyTime()).format(new Date(timestamp)); + return s; + } else { + SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); + return format.format(new Date(timestamp)); + } + } + + public static void closeQuietly(Closeable closeable) { + try { + closeable.close(); + } catch (Exception e) { + } + } + + public static CharSequence getMessageeShorthand(Context context, ChatMessageBean message) { + if (message != null) { + int messageType = ((ChatMessageBean) message).getMessagetype(); + switch (messageType) { + case -1: + return EmotionHelper.replace(context, ((ChatMessageBean) message).getUserContent()); + case -2: + return "[图片]"; + case -3: + return "[语音]"; + + default: + return EmotionHelper.replace(context, ((ChatMessageBean) message).getUserContent()); + } + + } + return "[]"; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemAudioHolder.java b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemAudioHolder.java new file mode 100644 index 0000000..2590b2f --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemAudioHolder.java @@ -0,0 +1,87 @@ +package com.example.administrator.chatdemo.viewholder; + +import android.content.Context; +import android.text.TextUtils; +import android.util.DisplayMetrics; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.TextView; + +import com.example.administrator.chatdemo.PlayButtonClickListener; +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.widget.PlayButton; + + +/** + * Created by wli on 15/9/17. + */ +public class ChatItemAudioHolder extends ChatItemHolder { + + public PlayButton playButton; + protected TextView durationView; + private ImageView ivAudioUnread; + private String path; + + private int mMinItemWith;// 设置对话框的最大宽度和最小宽度 + private int mMaxItemWith; + + public ChatItemAudioHolder(Context context, ViewGroup root, boolean isLeft) { + super(context, root, isLeft); + } + + @Override + public void initView() { + super.initView(); + // 获取系统宽度 + WindowManager wManager = (WindowManager) getContext() + .getSystemService(Context.WINDOW_SERVICE); + DisplayMetrics outMetrics = new DisplayMetrics(); + wManager.getDefaultDisplay().getMetrics(outMetrics); + mMaxItemWith = (int) (outMetrics.widthPixels * 0.7f); + mMinItemWith = (int) (outMetrics.widthPixels * 0.2f); + if (isLeft) { + conventLayout.addView(View.inflate(getContext(), R.layout.chat_item_left_audio_layout, null)); + ivAudioUnread = (ImageView) itemView.findViewById(R.id.chat_item_audio_unread); + } else { + conventLayout.addView(View.inflate(getContext(), R.layout.chat_item_right_audio_layout, null)); + } + playButton = (PlayButton) itemView.findViewById(R.id.chat_item_audio_play_btn); + durationView = (TextView) itemView.findViewById(R.id.chat_item_audio_duration_view); + } + + @Override + public void bindData(Object o) { + super.bindData(o); + if (o instanceof ChatMessageBean) { + final ChatMessageBean audioMessage = (ChatMessageBean) o; + durationView.setText(String.format("%.0f\"", audioMessage.getUserVoiceTime())); + ViewGroup.LayoutParams layoutParams = playButton.getLayoutParams(); + layoutParams.width = (int) (mMinItemWith + mMaxItemWith / 60f + * audioMessage.getUserVoiceTime()); + playButton.setLayoutParams(layoutParams); + String localFilePath = audioMessage.getUserVoicePath(); + final boolean leftSide = audioMessage.getType() == 1; + if (!TextUtils.isEmpty(localFilePath)) { + path = localFilePath; + } else { + path = audioMessage.getUserVoiceUrl(); +// LocalCacheUtils.downloadFileAsync(audioMessage.getUserVoiceUrl(), path); + } + playButton.setPath(path); + if (leftSide && ivAudioUnread != null) + if (audioMessage.getIsListened()) { + ivAudioUnread.setVisibility(View.INVISIBLE); + } + playButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new PlayButtonClickListener(playButton, ivAudioUnread, audioMessage, leftSide, getContext(), path).onClick(v); + } + }); + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemHolder.java b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemHolder.java new file mode 100644 index 0000000..0941063 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemHolder.java @@ -0,0 +1,105 @@ +package com.example.administrator.chatdemo.viewholder; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.bean.ChatConst; +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.utils.Utils; + +/** + * Created by dwq on 2017/7/20/020. + * e-mail:lomapa@163.com + */ + +public class ChatItemHolder extends CommonViewHolder { + protected boolean isLeft; + + protected ImageView avatarView; + protected TextView timeView; + protected TextView nameView; + protected LinearLayout conventLayout; + protected FrameLayout statusLayout; + protected ProgressBar progressBar; + protected TextView statusView; + protected ImageView errorView; + protected ChatMessageBean message; + + public ChatItemHolder(Context context, ViewGroup root, boolean isLeft) { + super(context, root, isLeft ? R.layout.chat_item_left_layout : R.layout.chat_item_right_layout); + this.isLeft = isLeft; + initView(); + } + + public void initView() { + if (isLeft) { + avatarView = (ImageView) itemView.findViewById(R.id.chat_left_iv_avatar); + timeView = (TextView) itemView.findViewById(R.id.chat_left_tv_time); + nameView = (TextView) itemView.findViewById(R.id.chat_left_tv_name); + conventLayout = (LinearLayout) itemView.findViewById(R.id.chat_left_layout_content); + statusLayout = (FrameLayout) itemView.findViewById(R.id.chat_left_layout_status); + statusView = (TextView) itemView.findViewById(R.id.chat_left_tv_status); + progressBar = (ProgressBar) itemView.findViewById(R.id.chat_left_progressbar); + errorView = (ImageView) itemView.findViewById(R.id.chat_left_tv_error); + } else { + avatarView = (ImageView) itemView.findViewById(R.id.chat_right_iv_avatar); + timeView = (TextView) itemView.findViewById(R.id.chat_right_tv_time); + nameView = (TextView) itemView.findViewById(R.id.chat_right_tv_name); + conventLayout = (LinearLayout) itemView.findViewById(R.id.chat_right_layout_content); + statusLayout = (FrameLayout) itemView.findViewById(R.id.chat_right_layout_status); + progressBar = (ProgressBar) itemView.findViewById(R.id.chat_right_progressbar); + errorView = (ImageView) itemView.findViewById(R.id.chat_right_tv_error); + statusView = (TextView) itemView.findViewById(R.id.chat_right_tv_status); + } + } + + @Override + public void bindData(Object o) { + message = (ChatMessageBean) o; + timeView.setText(Utils.millisecsToDateString(message.getTime())); + + String userId = message.getUserId(); + nameView.setText(message.getUserName()); + if (isLeft) { + avatarView.setImageResource(R.mipmap.ic_head_01); + } else { + avatarView.setImageResource(R.mipmap.ic_head_02); + } + switch (message.getSendState()) { + case ChatConst.SENDING: + statusLayout.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.VISIBLE); + statusView.setVisibility(View.GONE); + errorView.setVisibility(View.GONE); + break; + case ChatConst.COMPLETED: + statusLayout.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.GONE); + statusView.setVisibility(View.VISIBLE); + statusView.setVisibility(View.GONE); + errorView.setVisibility(View.GONE); + break; + case ChatConst.SENDERROR: + statusLayout.setVisibility(View.VISIBLE); + progressBar.setVisibility(View.GONE); + statusView.setVisibility(View.GONE); + errorView.setVisibility(View.VISIBLE); + break; + } + } + + public void showTimeView(boolean isShow) { + timeView.setVisibility(isShow ? View.VISIBLE : View.GONE); + } + + public void showUserName(boolean isShow) { + nameView.setVisibility(isShow ? View.VISIBLE : View.GONE); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemImageHolder.java b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemImageHolder.java new file mode 100644 index 0000000..a6938ea --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemImageHolder.java @@ -0,0 +1,65 @@ +package com.example.administrator.chatdemo.viewholder; + +import android.content.Context; +import android.content.Intent; +import android.view.View; +import android.view.ViewGroup; + +import com.example.administrator.chatdemo.ImageBrowserActivity; +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.utils.Constants; +import com.example.administrator.chatdemo.utils.PhotoUtils; + +import io.github.leibnik.chatimageview.ChatImageView; + + +/** + * Created by wli on 15/9/17. + */ +public class ChatItemImageHolder extends ChatItemHolder { + + protected ChatImageView contentView; + + public ChatItemImageHolder(Context context, ViewGroup root, boolean isLeft) { + super(context, root, isLeft); + } + + @Override + public void initView() { + super.initView(); + if (isLeft) { +// contentView.setBackgroundResource(R.drawable.rc_ic_bubble_left); + conventLayout.addView(View.inflate(getContext(), R.layout.chat_item_image_layout, null)); + } else { +// contentView.setBackgroundResource(R.drawable.rc_ic_bubble_right); + conventLayout.addView(View.inflate(getContext(), R.layout.chat_item_right_image_layout, null)); + } + contentView = (ChatImageView) itemView.findViewById(R.id.chat_item_image_view); + + contentView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getContext(), ImageBrowserActivity.class); + intent.putExtra(Constants.IMAGE_LOCAL_PATH, message.getImageLocal()); + intent.putExtra(Constants.IMAGE_URL, message.getImageUrl()); + getContext().startActivity(intent); + } + }); + } + + @Override + public void bindData(Object o) { + super.bindData(o); +// contentView.setImageResource(0); + ChatMessageBean message = (ChatMessageBean) o; + if (message != null) { + String localFilePath = message.getImageLocal(); +// if (!TextUtils.isEmpty(localFilePath)) { +// ImageLoader.getInstance().displayImage("file://" + localFilePath, contentView); +// } else { + PhotoUtils.displayImageCacheElseNetwork(contentView, localFilePath, message.getImageUrl()); +// } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemTextHolder.java b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemTextHolder.java new file mode 100644 index 0000000..2d30ba9 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ChatItemTextHolder.java @@ -0,0 +1,45 @@ +package com.example.administrator.chatdemo.viewholder; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.bean.ChatMessageBean; +import com.example.administrator.chatdemo.utils.EmotionHelper; + + +/** + * Created by wli on 15/9/17. + */ +public class ChatItemTextHolder extends ChatItemHolder { + + protected TextView contentView; + + public ChatItemTextHolder(Context context, ViewGroup root, boolean isLeft) { + super(context, root, isLeft); + } + + @Override + public void initView() { + super.initView(); + if (isLeft) { + conventLayout.addView(View.inflate(getContext(), R.layout.chat_item_left_text_layout, null)); + contentView = (TextView) itemView.findViewById(R.id.chat_left_text_tv_content); + } else { + conventLayout.addView(View.inflate(getContext(), R.layout.chat_item_right_text_layout, null)); + contentView = (TextView) itemView.findViewById(R.id.chat_right_text_tv_content); + } + } + + @Override + public void bindData(Object o) { + super.bindData(o); + ChatMessageBean message = (ChatMessageBean) o; + if (message != null) { +// ChatMessageBean textMessage = (ChatMessageBean) message; + contentView.setText(EmotionHelper.replace(getContext(), message.getUserContent())); + } + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/viewholder/CommonViewHolder.java b/app/src/main/java/com/example/administrator/chatdemo/viewholder/CommonViewHolder.java new file mode 100644 index 0000000..8ccb180 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/viewholder/CommonViewHolder.java @@ -0,0 +1,45 @@ +package com.example.administrator.chatdemo.viewholder; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.ViewGroup; + + +/** + * Created by wli on 15/8/25. + * RecyclerView.ViewHolder 的公共类,做了一些封装。目的: + * ViewHolder 与 Adapter 解耦,和 ViewHolder 相关的逻辑都放到 ViewHolder 里边,避免 Adapter 有相关逻辑 + */ + +public abstract class CommonViewHolder extends RecyclerView.ViewHolder { + + public CommonViewHolder(Context context, ViewGroup root, int layoutRes) { + super(LayoutInflater.from(context).inflate(layoutRes, root, false)); + } + + public Context getContext() { + return itemView.getContext(); + } + + /** + * 用给定的 data 对 holder 的 view 进行赋值 + */ + public abstract void bindData(T t); + + public void setData(T t) { + bindData(t); + } + + /** + * 因为 CommonListAdapter 里边无法对于未知类型的 Class 进行实例化 + * 所以需要如果想用 CommonListAdapter,必须要在对应的 CommonViewHolder 实例化一个 HOLDER_CREATOR + * 注意:public static ViewHolderCreator HOLDER_CREATOR,名字与修饰符都不能更改,否则有可能引发失败 + * 具体样例可参见 DiscoverItemHolder + * 如果不使用 CommonListAdapter,则不需要实例化 ViewHolderCreator + * @param + */ + public interface ViewHolderCreator { + public VH createByViewGroupAndType(ViewGroup parent, int viewType); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/administrator/chatdemo/viewholder/ViewHolder.java b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ViewHolder.java new file mode 100644 index 0000000..b87a474 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/viewholder/ViewHolder.java @@ -0,0 +1,23 @@ +package com.example.administrator.chatdemo.viewholder; + +import android.util.SparseArray; +import android.view.View; + +/** + * Created by lzw on 14-9-21. + */ +public class ViewHolder { + public static T findViewById(View view, int id) { + SparseArray viewHolder = (SparseArray) view.getTag(); + if (viewHolder == null) { + viewHolder = new SparseArray<>(); + view.setTag(viewHolder); + } + View childView = viewHolder.get(id); + if (childView == null) { + childView = view.findViewById(id); + viewHolder.put(id, childView); + } + return (T) childView; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/AudioRecordButton.java b/app/src/main/java/com/example/administrator/chatdemo/widget/AudioRecordButton.java new file mode 100644 index 0000000..21fd9af --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/AudioRecordButton.java @@ -0,0 +1,339 @@ +package com.example.administrator.chatdemo.widget; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.os.Handler; +import android.os.Message; +import android.util.AttributeSet; +import android.util.Log; +import android.view.MotionEvent; +import android.view.View; +import android.widget.Button; +import android.widget.Toast; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.utils.AudioManager; +import com.example.administrator.chatdemo.utils.PathUtils; + +import java.io.File; +import java.math.BigDecimal; + +public class AudioRecordButton extends Button implements AudioManager.AudioStageListener { + private static final int STATE_NORMAL = 1; + private static final int STATE_RECORDING = 2; + private static final int STATE_WANT_TO_CANCEL = 3; + private static final int DISTANCE_Y_CANCEL = 50; + private static final int OVERTIME = 60; + private int mCurrentState = STATE_NORMAL; + // 已经开始录音 + private boolean isRecording = false; + private DialogManager mDialogManager; + private float mTime = 0; + // 是否触发了onlongclick,准备好了 + private boolean mReady; + private AudioManager mAudioManager; + private String saveDir = PathUtils.getSaveVoicePath(getContext()); + + private Handler mp3handler = new Handler() { + + @Override + public void handleMessage(Message msg) { + // TODO Auto-generated method stub + switch (msg.what) { + case AudioManager.MSG_ERROR_AUDIO_RECORD: + Toast.makeText(getContext(), "录音权限被屏蔽或者录音设备损坏!\n请在设置中检查是否开启权限!", + Toast.LENGTH_SHORT).show(); + mDialogManager.dimissDialog(); + mAudioManager.cancel(); + reset(); + break; + default: + break; + } + } + + }; + + /** + * 先实现两个参数的构造方法,布局会默认引用这个构造方法, 用一个 构造参数的构造方法来引用这个方法 * @param context + */ + + public AudioRecordButton(Context context) { + this(context, null); + // TODO Auto-generated constructor stub + } + + public AudioRecordButton(Context context, AttributeSet attrs) { + super(context, attrs); + + mDialogManager = new DialogManager(getContext()); +// +// try { +// FileSaveUtil.createSDDirectory(FileSaveUtil.voice_dir); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + mAudioManager = AudioManager.getInstance(PathUtils.getSaveVoicePath(getContext())); + mAudioManager.setOnAudioStageListener(this); + mAudioManager.setHandle(mp3handler); + setOnLongClickListener(new OnLongClickListener() { + + @Override + public boolean onLongClick(View v) { + // TODO Auto-generated method +// try { +// FileSaveUtil.createSDDirectory(saveDir); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + mAudioManager.setVocDir(saveDir); + mListener.onStart(); + mReady = true; + mAudioManager.prepareAudio(); + return false; + } + }); + // TODO Auto-generated constructor stub + } + + public void setSaveDir(String saveDir) { + this.saveDir = saveDir + saveDir; + } + + /** + * 录音完成后的回调,回调给activiy,可以获得mtime和文件的路径 + */ + public interface AudioFinishRecorderListener { + void onStart(); + + void onFinished(float seconds, String filePath); + } + + private AudioFinishRecorderListener mListener; + + public void setAudioFinishRecorderListener( + AudioFinishRecorderListener listener) { + mListener = listener; + } + + // 获取音量大小的runnable + private Runnable mGetVoiceLevelRunnable = new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + while (isRecording) { + try { + Thread.sleep(100); + mTime += 0.1f; + mhandler.sendEmptyMessage(MSG_VOICE_CHANGE); + if (mTime >= OVERTIME) { + mTime = 60; + mhandler.sendEmptyMessage(MSG_OVERTIME_SEND); + isRecording = false; + break; + } + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + }; + + // 准备三个常量 + private static final int MSG_AUDIO_PREPARED = 0X110; + private static final int MSG_VOICE_CHANGE = 0X111; + private static final int MSG_DIALOG_DIMISS = 0X112; + private static final int MSG_OVERTIME_SEND = 0X113; + + private Handler mhandler = new Handler() { + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_AUDIO_PREPARED: + // 显示应该是在audio end prepare之后回调 + if (isTouch) { + mTime = 0; + mDialogManager.showRecordingDialog(); + isRecording = true; + new Thread(mGetVoiceLevelRunnable).start(); + } + // 需要开启一个线程来变换音量 + break; + case MSG_VOICE_CHANGE: + mDialogManager.updateVoiceLevel(mAudioManager.getVoiceLevel(3)); + break; + case MSG_DIALOG_DIMISS: + isRecording = false; + mDialogManager.dimissDialog(); + break; + case MSG_OVERTIME_SEND: + mDialogManager.tooLong(); + mhandler.sendEmptyMessageDelayed(MSG_DIALOG_DIMISS, 1300);// 持续1.3s + if (mListener != null) {// 并且callbackActivity,保存录音 + File file = new File(mAudioManager.getCurrentFilePath()); + if (PathUtils.isFileExists(file)) { + mListener.onFinished(mTime, + mAudioManager.getCurrentFilePath()); + } else { + mp3handler.sendEmptyMessage(AudioManager.MSG_ERROR_AUDIO_RECORD); + } + } + isRecording = false; + reset();// 恢复标志位 + break; + } + } + + ; + }; + + // 在这里面发送一个handler的消息 + @Override + public void wellPrepared() { + // TODO Auto-generated method stub + mhandler.sendEmptyMessage(MSG_AUDIO_PREPARED); + } + + /** + * 直接复写这个监听函数 + */ + private boolean isTouch = false; + + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouchEvent(MotionEvent event) { + // TODO Auto-generated method stub + int action = event.getAction(); + int x = (int) event.getX(); + int y = (int) event.getY(); + + switch (action) { + case MotionEvent.ACTION_DOWN: + isTouch = true; + changeState(STATE_RECORDING); + break; + case MotionEvent.ACTION_MOVE: + + if (isRecording) { + + // 根据x,y来判断用户是否想要取消 + if (wantToCancel(x, y)) { + changeState(STATE_WANT_TO_CANCEL); + } else { + changeState(STATE_RECORDING); + } + + } + + break; + case MotionEvent.ACTION_UP: + // 首先判断是否有触发onlongclick事件,没有的话直接返回reset + isTouch = false; + if (!mReady) { + reset(); + return super.onTouchEvent(event); + } + // 如果按的时间太短,还没准备好或者时间录制太短,就离开了,则显示这个dialog + if (!isRecording || mTime < 0.6f) { + mDialogManager.tooShort(); + mAudioManager.cancel(); + mhandler.sendEmptyMessageDelayed(MSG_DIALOG_DIMISS, 1300);// 持续1.3s + } else if (mCurrentState == STATE_RECORDING) {// 正常录制结束 + mDialogManager.dimissDialog(); + mAudioManager.release();// release释放一个mediarecorder + if (mListener != null) {// 并且callbackActivity,保存录音 + BigDecimal b = new BigDecimal(mTime); + float f1 = b.setScale(1, BigDecimal.ROUND_HALF_UP) + .floatValue(); + String currentFilePath = mAudioManager.getCurrentFilePath(); + Log.i("AudioRecordButton", "filePath:" + currentFilePath); + File file = new File(currentFilePath); + if (PathUtils.isFileExists(file)) { + mListener.onFinished(f1, currentFilePath); + } else { + mp3handler.sendEmptyMessage(AudioManager.MSG_ERROR_AUDIO_RECORD); + } + } + } else if (mCurrentState == STATE_WANT_TO_CANCEL) { + mAudioManager.cancel(); + mDialogManager.dimissDialog(); + } + isRecording = false; + reset();// 恢复标志位 + + break; + case MotionEvent.ACTION_CANCEL: + isTouch = false; + reset(); + break; + + } + + return super.onTouchEvent(event); + } + + /** + * 回复标志位以及状态 + */ + private void reset() { + // TODO Auto-generated method stub + isRecording = false; + changeState(STATE_NORMAL); + mReady = false; + mTime = 0; + } + + private boolean wantToCancel(int x, int y) { + // TODO Auto-generated method stub + + if (x < 0 || x > getWidth()) {// 判断是否在左边,右边,上边,下边 + return true; + } + if (y < -DISTANCE_Y_CANCEL || y > getHeight() + DISTANCE_Y_CANCEL) { + return true; + } + + return false; + } + + private void changeState(int state) { + // TODO Auto-generated method stub + if (mCurrentState != state) { + mCurrentState = state; + switch (mCurrentState) { + case STATE_NORMAL: + setBackgroundResource(R.drawable.button_recordnormal); + setText(R.string.normal); + + break; + case STATE_RECORDING: + setBackgroundResource(R.drawable.button_recording); + setText(R.string.recording); + if (isRecording) { + mDialogManager.recording(); + // 复写dialog.recording(); + } + break; + + case STATE_WANT_TO_CANCEL: + setBackgroundResource(R.drawable.button_recording); + setText(R.string.want_to_cancle); + // dialog want to cancel + mDialogManager.wantToCancel(); + break; + + } + } + + } + + @Override + public boolean onPreDraw() { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/ChatBottomView.java b/app/src/main/java/com/example/administrator/chatdemo/widget/ChatBottomView.java new file mode 100644 index 0000000..d5ed323 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/ChatBottomView.java @@ -0,0 +1,58 @@ +package com.example.administrator.chatdemo.widget; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.LinearLayout; + +import com.example.administrator.chatdemo.R; + + +public class ChatBottomView extends LinearLayout{ + private View baseView; + private LinearLayout imageGroup; + private LinearLayout cameraGroup; + private HeadIconSelectorView.OnHeadIconClickListener onHeadIconClickListener; + public static final int FROM_CAMERA = 1; + public static final int FROM_GALLERY = 2; + public ChatBottomView(Context context, AttributeSet attrs) { + super(context, attrs); + // TODO Auto-generated constructor stub + findView(); + init(); + } + + private void findView(){ + baseView = LayoutInflater.from(getContext()).inflate(R.layout.layout_tongbaobottom, this); + imageGroup = (LinearLayout) baseView.findViewById(R.id.image_bottom_group); + cameraGroup = (LinearLayout) baseView.findViewById(R.id.camera_group); + } + private void init(){ + cameraGroup.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (null != onHeadIconClickListener) { + onHeadIconClickListener.onClick(FROM_CAMERA); + } + } + }); + imageGroup.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + + if (null != onHeadIconClickListener) { + onHeadIconClickListener.onClick(FROM_GALLERY); + } + } + }); + } + + public void setOnHeadIconClickListener( + HeadIconSelectorView.OnHeadIconClickListener onHeadIconClickListener) { + // TODO Auto-generated method stub + this.onHeadIconClickListener = onHeadIconClickListener; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/CircleIndicator.java b/app/src/main/java/com/example/administrator/chatdemo/widget/CircleIndicator.java new file mode 100644 index 0000000..82bdd11 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/CircleIndicator.java @@ -0,0 +1,304 @@ +package com.example.administrator.chatdemo.widget; + +import android.animation.Animator; +import android.animation.AnimatorInflater; +import android.annotation.TargetApi; +import android.content.Context; +import android.content.res.TypedArray; +import android.database.DataSetObserver; +import android.os.Build; +import android.support.annotation.AnimatorRes; +import android.support.annotation.DrawableRes; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.Gravity; +import android.view.View; +import android.view.animation.Interpolator; +import android.widget.LinearLayout; + +import com.example.administrator.chatdemo.R; + +import static android.support.v4.view.ViewPager.OnPageChangeListener; + +public class CircleIndicator extends LinearLayout { + + private final static int DEFAULT_INDICATOR_WIDTH = 5; + private ViewPager mViewpager; + private int mIndicatorMargin = -1; + private int mIndicatorWidth = -1; + private int mIndicatorHeight = -1; + private int mAnimatorResId = R.anim.scale_with_alpha; + private int mAnimatorReverseResId = 0; + private int mIndicatorBackgroundResId = R.drawable.white_radius; + private int mIndicatorUnselectedBackgroundResId = R.drawable.white_radius; + private Animator mAnimatorOut; + private Animator mAnimatorIn; + private Animator mImmediateAnimatorOut; + private Animator mImmediateAnimatorIn; + + private int mLastPosition = -1; + + public CircleIndicator(Context context) { + super(context); + init(context, null); + } + + public CircleIndicator(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + public CircleIndicator(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(context, attrs); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public CircleIndicator(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + init(context, attrs); + } + + private void init(Context context, AttributeSet attrs) { + handleTypedArray(context, attrs); + checkIndicatorConfig(context); + } + + private void handleTypedArray(Context context, AttributeSet attrs) { + if (attrs == null) { + return; + } + + TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CircleIndicator); + mIndicatorWidth = + typedArray.getDimensionPixelSize(R.styleable.CircleIndicator_ci_width, -1); + mIndicatorHeight = + typedArray.getDimensionPixelSize(R.styleable.CircleIndicator_ci_height, -1); + mIndicatorMargin = + typedArray.getDimensionPixelSize(R.styleable.CircleIndicator_ci_margin, -1); + + mAnimatorResId = typedArray.getResourceId(R.styleable.CircleIndicator_ci_animator, + R.anim.scale_with_alpha); + mAnimatorReverseResId = + typedArray.getResourceId(R.styleable.CircleIndicator_ci_animator_reverse, 0); + mIndicatorBackgroundResId = + typedArray.getResourceId(R.styleable.CircleIndicator_ci_drawable, + R.drawable.white_radius); + mIndicatorUnselectedBackgroundResId = + typedArray.getResourceId(R.styleable.CircleIndicator_ci_drawable_unselected, + mIndicatorBackgroundResId); + + int orientation = typedArray.getInt(R.styleable.CircleIndicator_orientation, -1); + setOrientation(orientation == VERTICAL ? VERTICAL : HORIZONTAL); + + int gravity = typedArray.getInt(R.styleable.CircleIndicator_gravity_ci, -1); + setGravity(gravity >= 0 ? gravity : Gravity.CENTER); + + typedArray.recycle(); + } + + /** + * Create and configure Indicator in Java code. + */ + public void configureIndicator(int indicatorWidth, int indicatorHeight, int indicatorMargin) { + configureIndicator(indicatorWidth, indicatorHeight, indicatorMargin, + R.anim.scale_with_alpha, 0, R.drawable.white_radius, R.drawable.white_radius); + } + + public void configureIndicator(int indicatorWidth, int indicatorHeight, int indicatorMargin, + @AnimatorRes int animatorId, @AnimatorRes int animatorReverseId, + @DrawableRes int indicatorBackgroundId, + @DrawableRes int indicatorUnselectedBackgroundId) { + + mIndicatorWidth = indicatorWidth; + mIndicatorHeight = indicatorHeight; + mIndicatorMargin = indicatorMargin; + + mAnimatorResId = animatorId; + mAnimatorReverseResId = animatorReverseId; + mIndicatorBackgroundResId = indicatorBackgroundId; + mIndicatorUnselectedBackgroundResId = indicatorUnselectedBackgroundId; + + checkIndicatorConfig(getContext()); + } + + private void checkIndicatorConfig(Context context) { + mIndicatorWidth = (mIndicatorWidth < 0) ? dip2px(DEFAULT_INDICATOR_WIDTH) : mIndicatorWidth; + mIndicatorHeight = + (mIndicatorHeight < 0) ? dip2px(DEFAULT_INDICATOR_WIDTH) : mIndicatorHeight; + mIndicatorMargin = + (mIndicatorMargin < 0) ? dip2px(DEFAULT_INDICATOR_WIDTH) : mIndicatorMargin; + + mAnimatorResId = (mAnimatorResId == 0) ? R.anim.scale_with_alpha : mAnimatorResId; + + mAnimatorOut = createAnimatorOut(context); + mImmediateAnimatorOut = createAnimatorOut(context); + mImmediateAnimatorOut.setDuration(0); + + mAnimatorIn = createAnimatorIn(context); + mImmediateAnimatorIn = createAnimatorIn(context); + mImmediateAnimatorIn.setDuration(0); + + mIndicatorBackgroundResId = (mIndicatorBackgroundResId == 0) ? R.drawable.white_radius + : mIndicatorBackgroundResId; + mIndicatorUnselectedBackgroundResId = + (mIndicatorUnselectedBackgroundResId == 0) ? mIndicatorBackgroundResId + : mIndicatorUnselectedBackgroundResId; + } + + private Animator createAnimatorOut(Context context) { + return AnimatorInflater.loadAnimator(context, mAnimatorResId); + } + + private Animator createAnimatorIn(Context context) { + Animator animatorIn; + if (mAnimatorReverseResId == 0) { + animatorIn = AnimatorInflater.loadAnimator(context, mAnimatorResId); + animatorIn.setInterpolator(new ReverseInterpolator()); + } else { + animatorIn = AnimatorInflater.loadAnimator(context, mAnimatorReverseResId); + } + return animatorIn; + } + + public void setViewPager(ViewPager viewPager) { + mViewpager = viewPager; + if (mViewpager != null && mViewpager.getAdapter() != null) { + mLastPosition = -1; + createIndicators(); + mViewpager.removeOnPageChangeListener(mInternalPageChangeListener); + mViewpager.addOnPageChangeListener(mInternalPageChangeListener); + mInternalPageChangeListener.onPageSelected(mViewpager.getCurrentItem()); + } + } + + private final OnPageChangeListener mInternalPageChangeListener = new OnPageChangeListener() { + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + } + + @Override + public void onPageSelected(int position) { + + if (mViewpager.getAdapter() == null || mViewpager.getAdapter().getCount() <= 0) { + return; + } + + if (mAnimatorIn.isRunning()) { + mAnimatorIn.end(); + mAnimatorIn.cancel(); + } + + if (mAnimatorOut.isRunning()) { + mAnimatorOut.end(); + mAnimatorOut.cancel(); + } + + View currentIndicator; + if (mLastPosition >= 0 && (currentIndicator = getChildAt(mLastPosition)) != null) { + currentIndicator.setBackgroundResource(mIndicatorUnselectedBackgroundResId); + mAnimatorIn.setTarget(currentIndicator); + mAnimatorIn.start(); + } + + View selectedIndicator = getChildAt(position); + if (selectedIndicator != null) { + selectedIndicator.setBackgroundResource(mIndicatorBackgroundResId); + mAnimatorOut.setTarget(selectedIndicator); + mAnimatorOut.start(); + } + mLastPosition = position; + } + + @Override + public void onPageScrollStateChanged(int state) { + } + }; + + public DataSetObserver getDataSetObserver() { + return mInternalDataSetObserver; + } + + private DataSetObserver mInternalDataSetObserver = new DataSetObserver() { + @Override + public void onChanged() { + super.onChanged(); + if (mViewpager == null) { + return; + } + + int newCount = mViewpager.getAdapter().getCount(); + int currentCount = getChildCount(); + + if (newCount == currentCount) { // No change + return; + } else if (mLastPosition < newCount) { + mLastPosition = mViewpager.getCurrentItem(); + } else { + mLastPosition = -1; + } + + createIndicators(); + } + }; + + /** + * @deprecated User ViewPager addOnPageChangeListener + */ + @Deprecated + public void setOnPageChangeListener(OnPageChangeListener onPageChangeListener) { + if (mViewpager == null) { + throw new NullPointerException("can not find Viewpager , setViewPager first"); + } + mViewpager.removeOnPageChangeListener(onPageChangeListener); + mViewpager.addOnPageChangeListener(onPageChangeListener); + } + + private void createIndicators() { + removeAllViews(); + int count = mViewpager.getAdapter().getCount(); + if (count <= 0) { + return; + } + int currentItem = mViewpager.getCurrentItem(); + + for (int i = 0; i < count; i++) { + if (currentItem == i) { + addIndicator(mIndicatorBackgroundResId, mImmediateAnimatorOut); + } else { + addIndicator(mIndicatorUnselectedBackgroundResId, mImmediateAnimatorIn); + } + } + } + + private void addIndicator(@DrawableRes int backgroundDrawableId, Animator animator) { + if (animator.isRunning()) { + animator.end(); + animator.cancel(); + } + + View Indicator = new View(getContext()); + Indicator.setBackgroundResource(backgroundDrawableId); + addView(Indicator, mIndicatorWidth, mIndicatorHeight); + LayoutParams lp = (LayoutParams) Indicator.getLayoutParams(); + lp.leftMargin = mIndicatorMargin; + lp.rightMargin = mIndicatorMargin; + Indicator.setLayoutParams(lp); + + animator.setTarget(Indicator); + animator.start(); + } + + private class ReverseInterpolator implements Interpolator { + @Override + public float getInterpolation(float value) { + return Math.abs(1.0f - value); + } + } + + public int dip2px(float dpValue) { + final float scale = getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/DialogManager.java b/app/src/main/java/com/example/administrator/chatdemo/widget/DialogManager.java new file mode 100644 index 0000000..0ee367f --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/DialogManager.java @@ -0,0 +1,149 @@ +package com.example.administrator.chatdemo.widget; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.TextView; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.utils.ScreenUtil; + + +@SuppressLint("InflateParams") +public class DialogManager { + + /** + * 以下为dialog的初始化控件,包括其中的布局文件 + */ + + private Dialog mDialog; + + private ImageView mIcon; + private ImageView mVoice; + + private TextView mLable; + + private Context mContext; + + public DialogManager(Context context) { + // TODO Auto-generated constructor stub + mContext = context; + } + + public void showRecordingDialog() { + // TODO Auto-generated method stub + + mDialog = new Dialog(mContext, R.style.Theme_audioDialog); + mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + + // 用layoutinflater来引用布局 + LayoutInflater inflater = LayoutInflater.from(mContext); + View view = inflater.inflate(R.layout.layout_voice_dialog_manager, null); + mDialog.setContentView(view); + + mIcon = (ImageView) mDialog.findViewById(R.id.dialog_icon); + mVoice = (ImageView) mDialog.findViewById(R.id.dialog_voice); + mLable = (TextView) mDialog.findViewById(R.id.recorder_dialogtext); + + Window dialogWindow = mDialog.getWindow(); + WindowManager.LayoutParams lp = dialogWindow.getAttributes(); + int width = ScreenUtil.getScreenWidth(mContext) / 2; + lp.width = width; // 宽度 + lp.height = width; // 高度 + dialogWindow.setAttributes(lp); + mDialog.setCancelable(false); + mDialog.show(); + + } + + /** + * 设置正在录音时的dialog界面 + */ + public void recording() { + if (mDialog != null && mDialog.isShowing()) { + mIcon.setVisibility(View.GONE); + mVoice.setVisibility(View.VISIBLE); + mLable.setVisibility(View.VISIBLE); + mLable.setText(R.string.shouzhishanghua); + } + } + + /** + * 取消界面 + */ + public void wantToCancel() { + // TODO Auto-generated method stub + if (mDialog != null && mDialog.isShowing()) { + mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.GONE); + mLable.setVisibility(View.VISIBLE); + + mIcon.setImageResource(R.mipmap.cancel); + mLable.setText(R.string.want_to_cancle); + } + + } + + // 时间过短 + public void tooShort() { + // TODO Auto-generated method stub + if (mDialog != null && mDialog.isShowing()) { + mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.GONE); + mLable.setVisibility(View.VISIBLE); + + mIcon.setImageResource(R.mipmap.voice_to_short); + mLable.setText(R.string.tooshort); + } + + } + // 时间过长 + public void tooLong() { + // TODO Auto-generated method stub + if (mDialog != null && mDialog.isShowing()) { + mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.GONE); + mLable.setVisibility(View.VISIBLE); + + mIcon.setImageResource(R.mipmap.voice_to_short); + mLable.setText(R.string.toolong); + } + + } + // 隐藏dialog + public void dimissDialog() { + // TODO Auto-generated method stub + + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + mDialog = null; + } + + } + + public void updateVoiceLevel(int level) { + // TODO Auto-generated method stub + + if (mDialog != null && mDialog.isShowing()) { + int resId; + if(level >= 1 && level < 2){ + resId = mContext.getResources().getIdentifier("tb_voice1", + "mipmap", mContext.getPackageName()); + }else if(level >= 2 && level < 3){ + resId = mContext.getResources().getIdentifier("tb_voice2", + "mipmap", mContext.getPackageName()); + }else{ + resId = mContext.getResources().getIdentifier("tb_voice3", + "mipmap", mContext.getPackageName()); + } + mVoice.setImageResource(resId); + } + + } + +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/EmotionEditText.java b/app/src/main/java/com/example/administrator/chatdemo/widget/EmotionEditText.java new file mode 100644 index 0000000..d3fdd95 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/EmotionEditText.java @@ -0,0 +1,33 @@ +package com.example.administrator.chatdemo.widget; + +import android.content.Context; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.widget.EditText; + +import com.example.administrator.chatdemo.utils.EmotionHelper; + + +public class EmotionEditText extends EditText { + + public EmotionEditText(Context context) { + super(context); + } + + public EmotionEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + public EmotionEditText(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void setText(CharSequence text, BufferType type) { + if (!TextUtils.isEmpty(text)) { + super.setText(EmotionHelper.replace(getContext(), text.toString()), type); + } else { + super.setText(text, type); + } + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/HeadIconSelectorView.java b/app/src/main/java/com/example/administrator/chatdemo/widget/HeadIconSelectorView.java new file mode 100644 index 0000000..3762bd5 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/HeadIconSelectorView.java @@ -0,0 +1,331 @@ +package com.example.administrator.chatdemo.widget; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.GestureDetector; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.view.animation.Animation.AnimationListener; +import android.view.animation.ScaleAnimation; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; + +import com.example.administrator.chatdemo.R; + + +public class HeadIconSelectorView extends RelativeLayout implements + GestureDetector.OnGestureListener { + + private View baseView; + + private RelativeLayout mainRl; + private LinearLayout bottomLl; + private LinearLayout cameraLl; + private LinearLayout galleryLl; + private LinearLayout cancelLl; + + private GestureDetector gestureDetector; // 手势检测器 + private boolean isAnimationing = false; + private OnHeadIconClickListener onHeadIconClickListener; + public static final int FROM_CAMERA = 2; + public static final int FROM_GALLERY = 3; + public static final int CANCEL = 4; + public static final int BLANK_CANCEL = 5; + + public HeadIconSelectorView(Context context) { + super(context); + init(); + } + + @SuppressLint("ClickableViewAccessibility") + private void init() { + findView(); + this.setOnTouchListener(new OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + return gestureDetector.onTouchEvent(event); + } + }); + bottomLl.setVisibility(View.INVISIBLE); + mainRl.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (null != onHeadIconClickListener) { + onHeadIconClickListener.onClick(BLANK_CANCEL); + } + cancel(); + } + }); + cancelLl.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (null != onHeadIconClickListener) { + onHeadIconClickListener.onClick(CANCEL); + } + cancel(); + } + }); + cameraLl.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + if (null != onHeadIconClickListener) { + onHeadIconClickListener.onClick(FROM_CAMERA); + } + cancel(); + } + }); + galleryLl.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + + if (null != onHeadIconClickListener) { + onHeadIconClickListener.onClick(FROM_GALLERY); + } + cancel(); + } + }); + } + + @SuppressWarnings("deprecation") + private void findView() { + gestureDetector = new GestureDetector(this); + baseView = LayoutInflater.from(getContext()).inflate( + R.layout.layout_view_headicon, this); + mainRl = (RelativeLayout) baseView.findViewById(R.id.head_icon_main_rl); + bottomLl = (LinearLayout) baseView.findViewById(R.id.head_icon_main_ll); + cameraLl = (LinearLayout) baseView + .findViewById(R.id.head_icon_camera_ll); + galleryLl = (LinearLayout) baseView + .findViewById(R.id.head_icon_gallery_ll); + cancelLl = (LinearLayout) baseView + .findViewById(R.id.head_icon_cancel_ll); + } + + protected void bottomViewFlyIn() { + final ScaleAnimation sa1 = new ScaleAnimation(1, 1, 0, 1.2f, + Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1f); + sa1.setDuration(250); + final ScaleAnimation sa2 = new ScaleAnimation(1, 1, 1.2f, 1, + Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1f); + sa2.setDuration(150); + sa1.setAnimationListener(new AnimationListener() { + + @Override + public void onAnimationStart(Animation animation) { + isAnimationing = true; + bottomLl.setVisibility(VISIBLE); + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + + @Override + public void onAnimationEnd(Animation animation) { + isAnimationing = false; + bottomLl.startAnimation(sa2); + } + }); + bottomLl.startAnimation(sa1); + } + + protected void bottomViewFlyOut() { + final ScaleAnimation sa1 = new ScaleAnimation(1, 1, 1, 1.2f, + Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1f); + sa1.setDuration(150); + final ScaleAnimation sa2 = new ScaleAnimation(1, 1, 1.2f, 0, + Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1f); + sa2.setDuration(250); + sa1.setAnimationListener(new AnimationListener() { + + @Override + public void onAnimationStart(Animation animation) { + isAnimationing = true; + bottomLl.setVisibility(VISIBLE); + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + + @Override + public void onAnimationEnd(Animation animation) { + bottomLl.startAnimation(sa2); + } + }); + sa2.setAnimationListener(new AnimationListener() { + + @Override + public void onAnimationStart(Animation animation) { + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + + @Override + public void onAnimationEnd(Animation animation) { + isAnimationing = false; + bottomLl.setVisibility(INVISIBLE); + flyOut(); + } + }); + bottomLl.startAnimation(sa1); + } + + protected void cancel() { + if (!isAnimationing) { + if (bottomLl.getVisibility() == VISIBLE) { + bottomViewFlyOut(); + return; + } + } + } + + public void flyIn() { + AlphaAnimation aa = new AlphaAnimation(0, 1); + aa.setDuration(300); + aa.setAnimationListener(new AnimationListener() { + + @Override + public void onAnimationStart(Animation animation) { + isAnimationing = true; + setVisibility(VISIBLE); + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + + @Override + public void onAnimationEnd(Animation animation) { + isAnimationing = false; + bottomViewFlyIn(); + } + }); + startAnimation(aa); + } + + public void flyOut() { + AlphaAnimation aa = new AlphaAnimation(1, 0); + aa.setDuration(300); + aa.setAnimationListener(new AnimationListener() { + + @Override + public void onAnimationStart(Animation animation) { + isAnimationing = true; + setVisibility(VISIBLE); + } + + @Override + public void onAnimationRepeat(Animation animation) { + } + + @Override + public void onAnimationEnd(Animation animation) { + isAnimationing = false; + destroy(); + } + }); + startAnimation(aa); + } + + protected void destroy() { + if (this.getParent() != null) { + ((ViewGroup) this.getParent()).removeView(this); + } + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if (!isAnimationing) { + if (bottomLl.getVisibility() == VISIBLE) { + bottomViewFlyOut(); + return true; + } + } else { + return true; + } + } + return super.onKeyDown(keyCode, event); + } + + public OnHeadIconClickListener getOnHeadIconClickListener() { + return onHeadIconClickListener; + } + + public void setOnHeadIconClickListener( + OnHeadIconClickListener onHeadIconClickListener) { + this.onHeadIconClickListener = onHeadIconClickListener; + } + + public interface OnHeadIconClickListener { + public void onClick(int from); + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouchEvent(MotionEvent event) { + return gestureDetector.onTouchEvent(event); + } + + @Override + public boolean onDown(MotionEvent e) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void onShowPress(MotionEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public boolean onSingleTapUp(MotionEvent e) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, + float distanceY) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void onLongPress(MotionEvent e) { + // TODO Auto-generated method stub + + } + + private float minVelocityY = 100f;// 10个像素每秒 + private float minDistanceY = 100f;// 100个像素 + + // 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, + // 多个ACTION_MOVE, 1个ACTION_UP触发 + // e1:第1个ACTION_DOWN MotionEvent + // e2:最后一个ACTION_MOVE MotionEvent + // velocityX:X轴上的移动速度,像素/秒 + // velocityY:Y轴上的移动速度,像素/秒 + @Override + public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, + float velocityY) { + // 手势从上到下且移动速度较快 + if (e2.getY() - e1.getY() > minDistanceY && velocityY > minVelocityY) { + cancel(); + } + return false; + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/InputBarLayout.java b/app/src/main/java/com/example/administrator/chatdemo/widget/InputBarLayout.java new file mode 100644 index 0000000..abfde57 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/InputBarLayout.java @@ -0,0 +1,315 @@ +package com.example.administrator.chatdemo.widget; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.text.Selection; +import android.text.Spannable; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.AdapterView; +import android.widget.EditText; +import android.widget.GridView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.adapter.ChatEmotionGridAdapter; +import com.example.administrator.chatdemo.adapter.ChatEmotionPagerAdapter; +import com.example.administrator.chatdemo.utils.EmotionHelper; +import com.example.administrator.chatdemo.utils.KeyBoardUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by dwq on 2017/7/19/019. + * e-mail:lomapa@163.com + */ + +public class InputBarLayout extends LinearLayout { + private EditText mEditTextContent; + private ImageView ivMore; + private ImageView ivEmoji; + private ImageView ivVoice; + private ViewPager emotionPager; + private AudioRecordButton voiceBtn; + private LinearLayout llyEmojiGroup; + private TextView tvSend; + private ChatBottomView cbvOther; + + private CircleIndicator ciBanner; + + private OnMessageSendListener onMessageSendListener; + + private OnBottomIconClickListener onBottomIconClickListener; + + public void setOnMessageSendListener(OnMessageSendListener onMessageSendListener) { + this.onMessageSendListener = onMessageSendListener; + } + + public void setOnBottomIconClickListener(OnBottomIconClickListener onBottomIconClickListener) { + this.onBottomIconClickListener = onBottomIconClickListener; + } + + public InputBarLayout(Context context) { + super(context); + initView(context); + } + + public InputBarLayout(Context context, AttributeSet attrs) { + super(context, attrs); + initView(context); + } + + public InputBarLayout(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + initView(context); + } + + private void initView(Context context) { + View.inflate(context, R.layout.chat_input_bottom_bar_layout, this); + mEditTextContent = (EditText) findViewById(R.id.et_msg); + ivMore = (ImageView) findViewById(R.id.iv_more); + ivEmoji = (ImageView) findViewById(R.id.iv_emoji); + ivVoice = (ImageView) findViewById(R.id.iv_voice); + emotionPager = (ViewPager) findViewById(R.id.vPager); + voiceBtn = (AudioRecordButton) findViewById(R.id.voice_btn); + llyEmojiGroup = (LinearLayout) findViewById(R.id.lly_emoji_group); + tvSend = (TextView) findViewById(R.id.tv_send); + cbvOther = (ChatBottomView) findViewById(R.id.cbv_other); + ciBanner = (CircleIndicator) findViewById(R.id.ci_banner); + + initListener(context); + } + + private void initListener(final Context context) { + mEditTextContent.setOnKeyListener(onKeyListener); + + ivVoice.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View arg0) { + // TODO Auto-generated method stub + if (voiceBtn.getVisibility() == View.GONE) { + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_emoji); + ivMore.setBackgroundResource(R.mipmap.ic_btn_more); + mEditTextContent.setVisibility(View.GONE); + llyEmojiGroup.setVisibility(View.GONE); + cbvOther.setVisibility(View.GONE); + voiceBtn.setVisibility(View.VISIBLE); + KeyBoardUtils.hideKeyBoard(context, + mEditTextContent); + ivVoice.setBackgroundResource(R.mipmap.ic_btn_keybroad); + } else { + mEditTextContent.setVisibility(View.VISIBLE); + voiceBtn.setVisibility(View.GONE); + ivVoice.setBackgroundResource(R.mipmap.ic_btn_voice); + KeyBoardUtils.showKeyBoard(context, mEditTextContent); + } + } + + }); + + ivMore.setOnClickListener(new View.OnClickListener() { + + @SuppressLint("NewApi") + @Override + public void onClick(View v) { + // TODO Auto-generated method stub + llyEmojiGroup.setVisibility(View.GONE); + if (cbvOther.getVisibility() == View.GONE + ) { + mEditTextContent.setVisibility(View.VISIBLE); + ivMore.setFocusable(true); + voiceBtn.setVisibility(View.GONE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_emoji); + ivVoice.setBackgroundResource(R.mipmap.ic_btn_voice); + cbvOther.setVisibility(View.VISIBLE); + KeyBoardUtils.hideKeyBoard(context, + mEditTextContent); + } else { + cbvOther.setVisibility(View.GONE); + KeyBoardUtils.showKeyBoard(context, mEditTextContent); + } + } + }); + + tvSend.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + // TODO 发送消息 + String message = mEditTextContent.getText().toString().trim(); + if (onMessageSendListener != null && !TextUtils.isEmpty(message)) { + onMessageSendListener.sendMessage(message); + mEditTextContent.setText(""); + } + } + }); + + mEditTextContent.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + // 收起部分布局 + llyEmojiGroup.setVisibility(View.GONE); + cbvOther.setVisibility(View.GONE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_emoji); + ivVoice.setBackgroundResource(R.mipmap.ic_btn_voice); + } + + }); + + cbvOther.setOnHeadIconClickListener(new HeadIconSelectorView.OnHeadIconClickListener() { + @Override + public void onClick(int from) { + if (onBottomIconClickListener != null) + onBottomIconClickListener.onIconClickListener(from); + + } + }); + + + ivEmoji.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + // 显示或收起表情列表 + cbvOther.setVisibility(View.GONE); + if (llyEmojiGroup.getVisibility() == View.GONE) { + mEditTextContent.setVisibility(View.VISIBLE); + voiceBtn.setVisibility(View.GONE); + ivVoice.setBackgroundResource(R.mipmap.ic_btn_voice); + llyEmojiGroup.setVisibility(View.VISIBLE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_keybroad); + KeyBoardUtils.hideKeyBoard(context, + mEditTextContent); + } else { + llyEmojiGroup.setVisibility(View.GONE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_emoji); + KeyBoardUtils.showKeyBoard(context, mEditTextContent); + } + } + }); + + ivEmoji.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + // 显示或收起表情列表 + cbvOther.setVisibility(View.GONE); + if (llyEmojiGroup.getVisibility() == View.GONE) { + mEditTextContent.setVisibility(View.VISIBLE); + voiceBtn.setVisibility(View.GONE); + ivVoice.setBackgroundResource(R.mipmap.ic_btn_voice); + llyEmojiGroup.setVisibility(View.VISIBLE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_keybroad); + KeyBoardUtils.hideKeyBoard(context, + mEditTextContent); + } else { + llyEmojiGroup.setVisibility(View.GONE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_emoji); + KeyBoardUtils.showKeyBoard(context, mEditTextContent); + } + } + }); + + initEmotionPager(); + + voiceBtn.setAudioFinishRecorderListener(new AudioRecordButton.AudioFinishRecorderListener() { + @Override + public void onStart() { + if (onMessageSendListener != null) + onMessageSendListener.onVoiceRecordStart(); + } + + @Override + public void onFinished(float seconds, String filePath) { + if (onMessageSendListener != null) + onMessageSendListener.sendVoice(seconds, filePath); + } + }); + } + + private View.OnKeyListener onKeyListener = new View.OnKeyListener() { + + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_ENTER + && event.getAction() == KeyEvent.ACTION_DOWN) { + // 发送消息 + String message = mEditTextContent.getText().toString().trim(); + if (onMessageSendListener != null && !TextUtils.isEmpty(message)) { + onMessageSendListener.sendMessage(message); + mEditTextContent.setText(""); + } + return true; + } + return false; + } + }; + + /** + * 初始化 emotionPager + */ + private void initEmotionPager() { + List views = new ArrayList(); + for (int i = 0; i < EmotionHelper.emojiGroups.size(); i++) { + views.add(getEmotionGridView(i)); + } + ChatEmotionPagerAdapter pagerAdapter = new ChatEmotionPagerAdapter(views); + emotionPager.setOffscreenPageLimit(4); + emotionPager.setAdapter(pagerAdapter); + ciBanner.setViewPager(emotionPager); + } + + private View getEmotionGridView(int pos) { + LayoutInflater inflater = LayoutInflater.from(getContext()); + View emotionView = inflater.inflate(R.layout.chat_emotion_gridview, null, false); + GridView gridView = (GridView) emotionView.findViewById(R.id.gridview); + final ChatEmotionGridAdapter chatEmotionGridAdapter = new ChatEmotionGridAdapter(getContext()); + List pageEmotions = EmotionHelper.emojiGroups.get(pos); + chatEmotionGridAdapter.setDatas(pageEmotions); + gridView.setAdapter(chatEmotionGridAdapter); + gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + String emotionText = (String) parent.getAdapter().getItem(position); + int start = mEditTextContent.getSelectionStart(); + StringBuilder sb = new StringBuilder(mEditTextContent.getText()); + sb.replace(mEditTextContent.getSelectionStart(), mEditTextContent.getSelectionEnd(), emotionText); + mEditTextContent.setText(sb.toString()); + + CharSequence info = mEditTextContent.getText(); + if (info != null) { + Spannable spannable = (Spannable) info; + Selection.setSelection(spannable, start + emotionText.length()); + } + } + }); + return gridView; + } + + public void hideBottomLayout() { + llyEmojiGroup.setVisibility(GONE); + ivEmoji.setBackgroundResource(R.mipmap.ic_btn_emoji); + cbvOther.setVisibility(GONE); + } + + public interface OnMessageSendListener { + void sendMessage(String message); + + void sendVoice(float seconds, String filePath); + + void onVoiceRecordStart(); + } + + public interface OnBottomIconClickListener { + void onIconClickListener(int from); + } +} diff --git a/app/src/main/java/com/example/administrator/chatdemo/widget/PlayButton.java b/app/src/main/java/com/example/administrator/chatdemo/widget/PlayButton.java new file mode 100644 index 0000000..05794c0 --- /dev/null +++ b/app/src/main/java/com/example/administrator/chatdemo/widget/PlayButton.java @@ -0,0 +1,83 @@ +package com.example.administrator.chatdemo.widget; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.drawable.AnimationDrawable; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.widget.TextView; + +import com.example.administrator.chatdemo.R; +import com.example.administrator.chatdemo.bean.ChatMessageBean; + + +/** + * Created by lzw on 14-9-22. + */ +public class PlayButton extends TextView implements View.OnClickListener { + private String path; + private boolean leftSide; + private AnimationDrawable anim; + + + private ChatMessageBean messageBean; + + public PlayButton(Context context, AttributeSet attrs) { + super(context, attrs); + leftSide = getLeftFromAttrs(context, attrs); + setLeftSide(leftSide); + setOnClickListener(this); + } + + public void setLeftSide(boolean leftSide) { + this.leftSide = leftSide; + stopRecordAnimation(); + } + + public boolean getLeftFromAttrs(Context context, AttributeSet attrs) { + TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ChatPlayBtn); + boolean left = true; + for (int i = 0; i < typedArray.getIndexCount(); i++) { + int attr = typedArray.getIndex(i); + if (attr == R.styleable.ChatPlayBtn_left) { + left = typedArray.getBoolean(attr, true); + } + } + return left; + } + + public void setPath(String path) { + this.path = path; + } + + public void setMessageBean(ChatMessageBean messageBean) { + this.messageBean = messageBean; + } + + @Override + public void onClick(View v) { + +// new PlayButtonClickListener(this, leftSide, getContext(), path).onClick(this); + } + + public void startRecordAnimation() { + Log.i("PlayButton", "startRecordAnimation" + leftSide); + setCompoundDrawablesWithIntrinsicBounds(leftSide ? R.drawable.chat_anim_voice_left : 0, + 0, !leftSide ? R.drawable.chat_anim_voice_right : 0, 0); + anim = (AnimationDrawable) getCompoundDrawables()[leftSide ? 0 : 2]; + anim.start(); + } + + // + public void stopRecordAnimation() { + Log.i("PlayButton", "stopRecordAnimation" + leftSide); + setCompoundDrawablesWithIntrinsicBounds(leftSide ? R.drawable.chat_voice_right3 : 0, + 0, !leftSide ? R.drawable.chat_voice_left3 : 0, 0); + if (anim != null) { + anim.stop(); + } + } + + +} diff --git a/app/src/main/res/anim/scale_with_alpha.xml b/app/src/main/res/anim/scale_with_alpha.xml new file mode 100644 index 0000000..8ef7f85 --- /dev/null +++ b/app/src/main/res/anim/scale_with_alpha.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/chat_common_empty_photo.9.png b/app/src/main/res/drawable-xhdpi/chat_common_empty_photo.9.png new file mode 100644 index 0000000000000000000000000000000000000000..25d57df32b075942856a0600b1f7d835f75f3ba9 GIT binary patch literal 1828 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_default_user_avatar.png b/app/src/main/res/drawable-xhdpi/chat_default_user_avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..b3286538913b656c8caca0f2722ada7af893385e GIT binary patch literal 21632 zcmeI4cR1Wz*Y`&+k*GoR8bleR*U@E&PSixn7)+GGj2=XE(R=UYNQe|&5Fvy_Plz5Z zLUa}A;$P7<;hYwEBlAzWcB zq5`7)P(dLOi@2l!NK{l@T!@cFNDw3f6a)c5!u%jfDG?DVK|z*Z4>m9{+LCd#wvp0P zR{fO@{hKVC9SY?v1q6C{cnEk13m{x=fgnjqNuZz*P)LX$t>8y`IiajP`JIsLKZE=p zM;V5My271NaD)@fNnER22se~08{0{uKOVoX%hCCdL{7+G?9dc}o>tC4kbofYpPa0r zfA~1NxjOt9nl%&%bAUO*oKQ%#ALt+bob3=O1kw)iFDd`%{@29lInmVoBlka!*U|AG zQzKC-?q~$Rkp815(!k3Z2GoNg5pJ$fn2J04QrQ3L>QQi;KPTrekxqL4b?h)t_`kTF z^!#-DQ3^k2NCthaQcA8cD-^=j0D*7-|Ew~d-x0DXDgCG_7H&-|DBS6UD~}BD?@oWt z_@D7$%2p^C_@pBFL4y2(!UjUZQbIyfLL$6^66m_b2=Y_;w-}lTYq*WqUt@?FfJCK0 z;!?t5m@zPve~*D)LDp6%tN&3HOf5znYp9eB!qw3V1%^9X*}{O%PPQ_@KN~TWf7F$f z62bxDiXIjWEGz^3r)CVVAGIc>=7dC9IYD7+%3ySZ032>D1rxOq76(BE`GrMq#aP(eh z<$$3%8U6n@#Xp4kk5mvi5?!HQ7?q2z-yge~KFsB>t-p6Tz<=yY&Q`8S*vXocW&3^6 z{jrVxu}hu!{8+nER?w6E3=BP45-@8S;9pw*9M&J6zue&ezZ3W~K8E|h=kTzDIsLZ< z^)u8D)xQTpB5Y6|R<1AwTXaqQ&sO`-xPNv0djc8Y$vc1p{I65-v-Pht^n1c=dAWPtzC_GjjwdgGH>b#VKk7Z(ylKY*ZaADFo)jq>@Dk4n587@p3r`l(@PDO+%IKzcW z<5c?$*Qtmw1!uT0X`E`G;W`x&rr-=0CXG|=GhC-4!W5k0!lZGkeTM5)M3{mzT$nUY zwa;*!iU?D1h6|I%srDJJQxRbb&TwJUIMqJGbt)oE!5J=08mHQ4xK2fcDLBK0N#j)e z4A-fMFa>A0Fln4>pW!+c5vJe_7bcBU?K51bBEl4$;liYGs{LPa5&wAuAj}DU*PjRa z_C5-fjs^PGKo%%OPZI#}<^%xl1_A)P$LQAu0KiQU09dpH0Hjg@02)NR#cNdnfWB8v zS;4?_WGTzb^ZJL{V>$a}-;mkN1g{|ZRBWL@!uMFXDkTzAWsa3q-)hZ$e0-!IW;s3Z z`8w7-S&6J{n7A-lRh<-Z@nRWuY((yFL23%P@v%Wc@3?Hoe99)7eR2{g!{`(tw=%Z9 zHpsM!D~CK92DW`C-GT<`j2`1U;dbL`sKU5g@x`!60rpry=iV^BG*aERHJ;P@^hnXZ zf!J8Qj+tH2kf`h%{-=Y!23qos(q7YQ?A-z%5L@9*Y?Fe0!CS4sfY~qLNLsbdK3Q55 zA--KzscmxX-dqJjPz1i916{oORXl9|Ae?w6JZlJ+?p?jyqyk1UGN-StZGB{Tc10bQ zq^g>Ov0p-{I2`V;>@%}(e6(4D&rwafGB!Si<%&==%RR)SH%%xKRlG~pySwC`Pg=?j z%;wlnyFIdEcK)5HJQ97QRC0{+jUETb4Q(k9#Ur4Dh^y ztbm0y36gt0Jnl)KTYLZAC~Vg&rqg>DNU@Rqv=oX~Ji)r=@*BJ3s8#UY_7BC0o(F!B z@iJj1c37$S;VoC600J2BtUq0TL_o&MQsYgu&c`g2uIwpe%|$geDW`-j7zCL55{C5! zg!fUMwW4iio1$Dc!f~{KPAHWk)im68;YL0`BMa_C{*Cv8vOyMp4Jmn)cOUb$xIag= ztg47qSTe)uy51AKQ(@fpQim!IJ!Z+yz>AYmi+PyR3-H?!{sdR5D%gNhepav+(jINjCs3{Em*~`Luuxr0@-S7&ya-gQtyfsZoW{@ zt5j4^n<)5{s9x8dq2w@b_+l8(^O`HfVN7Aa`;hA0W7j84MiFt#D!lYl>y~2GN%hA#tk~j&7PMjG_N)T zE(WdoQ?b*9K1z;7ett*EO*N|3Kj*l!*es0!8GkJ5rb+b%aJi>}z2>*cTgG#22{%5_W9@u%+(K9<wSaKzZ8g!t$ijIDLJIG%BpPO-jm?UJd0DANg9%SS``9 zpmKav)-EcRf`_BnicJ$(EO%d?JLO)!5OL>~-%Y$-&vi(W}!cK?2eQ+FE3k z65f;S%KmjB4xEHN<@sCEIhX4t9?&$waHP#g-aP6#3>M#B%`Ymsz)Ppfw&r<*23lEfmxAX7J*H|? zLx7Y<)wfGR<5!lLS&|J2tv+E<$PZQBY|Z`{;s<9|wWYOq8AGzyFB0Z(-_lJrT>DD1 z&uht9i+yvB^ufvuovYFvjav?i(EI%{UWGPtqvEn1-{-~kkj|vWM2gKacbZvfikDO)H7Tr_YjzS2m6kuO_Qm2%NR> zPpfB?jccX%G5-vVISBEsuj(5#&}NCfCMZton7#tn(ce zy=Q03HTBIbymU0eC6_5ikAn>)Gg*`U>`^j~&fzq2Y(GjnKk2nC;*k8j8^O-N@z^y5 z7osq$(m=bYGOC+#0+08r5jr}lJ=;$EBw759cNV{HJ5Q*rUK6I-*eZK&FRytaTGqp% z)*$-Q)1uat1f{`!Ae-N?Ufm#qQ`a}PR5FRG%pCuv()M^4VznvdoZ%tm@!o4`!k~>3 zxtbVjwg~r@xvAz?q7izQT$CIXx;EKfcyhZf)PB2xh>hiP--z)Kz|D2D6-Z#5z*W*` zRU{;2teLkGzFNl6SR|89E*3rUhVNDSAR5A>VveIT5Dh7FDdq#vLkglGh6y66xRuQJ zw1kNlJvM*?J?F*8UoQo}t@(ORym#V8Ps+-X1q~T}kTS^zh>n7O{czODX0uMtdHyh_ zuo<#$!2X>5@pd|Oc6I#f!89m)a*ac-=FrA=rqIhYb01DHJ7wV;(|){zJlYIxg6(C# zzIz#NvYIYtUPh(fJPY5fU2Z>ar?mI$5ccJiAzK#2H;s~!Ppo3daIp7t zowqfvT0G>dpQhuIAH1-@Rd{DxM2OH^<$8+$7k!OvvHQ%vU!TkN$b_Ar4!jVClFXGm zTnt6IS8Rj>$LAyvj_ccOIR_iEFY1=P#N@s~@Npcs5`vj-$p^(&R5H#@g|18miu*-b za!=+7R?zTI_(Jj1-(jZ>h?$v)CR}@56BoL2Or1Puj4KkD&-vhWiQK{4)da>j^YQ+B zkP)(L!_|};b93ySK`>=MQ#h_zoHe!?=lB%$PH&TMboX~^F`4zy?3Wsm0C}M-3Hhs| zx?+zHMU8H3n-s3EtjZ^1Pgi{oZ)un4Pl6aRZbqm}+Pz*U|K_%T zVDfBdb8mFwYwvHt=Yyn2Yi2j>Zz8{UyVM%8Yh0^Pw9bqjGG!N0x#&js0Gy`&Xl(bD0LH-AELPcCXH2t~0I?R9^^K?M7tW`OWIn4*GhF&r6&sHI2<7eg-24 z!^2L3l4H&M-7iZLtzmdrABU+Q@Z=HFQiKOn5z{A(JGxZgA}|?dwaIk5V3zI6H&cE7 zzzZM7fMq#U)n#lLk2hb2vPd~pd{%e|J7fV%^hJ09zx=S8#z4zQmn6UvLNk`L;Z07y9Ep%u-QYWDKpra=BTjh`|viVQLoH&k}`%77T|O8BGpk=puFP86_< zGg^^1CRk+#OcPQp-nBRF+>F$TWp^uQO?pX&kG%j+m03|D`N9snkk#glV?{^k=u-F@ zFh^Ou)=_>yrXe@wNpkHHAsosb(9LqbD3C}!wY7|iKUH$ufg~nny!=J17I!Ef*=U4r z1N7YHByvhEG%f8Y|Mnh(Q|;lrfri<;yb+v=DiKSr0=p!6p0}6$pXeVy#Jcm*?!%@P zS3!lypi5zKvdMkm>^YC)$XC;P?U8i&3hd!k`i@T*C01?OpAhawR)oyX(&!mV#x15~ z_eex?l@CAAdFRd+gX81TKi>B$&DP>0rR=u>(n1jkPjGB}hraE4myiG3ff(60$+pZ7 zN~-XAFS+Y`NpjBy=@GNyPLw)a?lOMq#XH#^fANuUm~!x>y^w&N&SYXMbdUU%J0DkW zP_A@x?i=0`LhEf)-4E}ce>@uVuBak=#n5}305?p__BsBC(PLE?mrMG^J+g2x7am02 zjEd!aV3Lt}PbY8reD6_1MJ0oZ6=}qC8e#{L;sw^G-!ePHuQ#|7a7iZGQEgsR6lpb; z9J|PUzoNW|BN7gQ;S~mhOk$bbd+E5o-PcfZ%|G1kfaX@>iqI@JU z{;fUh*hbCQS+#G53+AQw^6;t#Jw zU>vQn{6G*wK^96a`NW?_9bVj>nxXXszo?(XdhZ?<&leiJ0c|GnGCagQGVA-za-Z-x z&Ey5vw_95bszsoQ{7+)O6N=_LZ*#JyjJ!57Ku@^e^7k)|R%Yoaki#xg3h9?Bs2y?U z8&PJ{CX!AKHVMD8wxBdw$uhqn*cSdMfkJIEiq7`kP35a!LANig(APZ?uY8m4>vPEr z#Ir21MQG&|s()E4JDiKRwQ+njM2z(5636+g7eG!Mk>(F}Rw>D{*2}?DA2f(?H@O-0 zo3j_ol<>lyM}FRGQEpj|Ebjy;zuBTn7^EwrQXl0m$_#qPZ+!k-fG4pfcTu0ZtxSe% zPT8t$suwU#F^vs?^LMTR@7E8ltCv~jE3uH5HA`xVeT(#(uVIRBj>e;KCOFd(-LT^*w4*e zrX-&2b@r4KrpavSAc?*}8=Kswx)GtS{r*Cku2W`{T?aAva1Q-3<* zRJu|&*fW=}yL5awRy27Xgg)z8lX0!kC1%Y6{rzH>&9aMXrwH5W?ALt`(C7TuqT*w% zFShxV)N#tnC^rh;$8DsVW9P}x(OU%8@iQFO zE01iPk2qJMN0Ky@gr94atr>!b3C0&8e!3t>{;u{*jRUw4Hgfh$L>Mt!f z2kgDRT&?b#=nE2g&cm#)@S*g1>YX;3VvU^kM3ZxX;3!o~l2Oh3bPMTP!9C2g*Cvnf zeB2#oJ~iIHy}erObZqYD**?F%^MbFzS@ihMTgKGlAxDDv_SZSxH~bZJL2i`@*JoiQ zgt2xU8hmLSw1itl4BQI`(=}Rb&jN2enN_sOu8e$WVykOld}rD{GbqFk{c)3ug^FTf zLTA1^p?t%p9!BZ7xkq3KAKhG+Z@t75ByYxX)kIn+3QkpYF)TaJ zab8?v2(@#sRyjW|Z|WHzZ+Mw#u@_r=;f+`PL^nLwKk(J>EP~U1V`_4F)_sGmf{n-F z#mYw6dwyk8)|FW|$l zg>U%|T*p#r_YwHGkSh_3ydVm_-opc}y6UA@lxt989N!fNY+)`-sg*`95vH&PqYLy7 z>In_f7Hne^t*^bLG1{UJ^fO~~DIlAr!shViirm9Dy3=w8?2X;HeL*U0J-KVe zq~r`{gIttl1Gr-yOx0LnJ(`8!86EGtPp3gLAzuATGC2LQOY&qEhIa=IE~m4GgpAo6S*B1=zx|#N#zA<~&3vyg z%T<}vTS_X~{6+c$rla%KlXq~$CpL24Gl5&Roto0V%Iz{oW;nNf3K~$fBwR^+Q&*5`rGBMrmpvKA z9;J}})g2-FZ3p|#QTKlBeA7`@ebbs16_cU=Eai*iHnSTry-P!U=V?jjt7KvnRw9BM z#59WXQw?~egk2s#vT~TKFmLXLcPTxzd1o^)U_aJr9%GuWXjzX{yD*}hBoLP^Mau)$ z$nRCxktx16>VF`JSQ=I^S73r&)Mprgn?c~2QU@!qrI|+Y;Wb8ifd*PnuUYHJn~oA% zk=;ijOQ#6037C$zsBR%Sacq3%1x(wX7DO$Le~YKb9_i+BMv^H>izgPZLJ|X&q9jDp z=x-7Cjx4mxLc2}ig1y9W+CU^v0H9njwqKrD&;{{SaFz%R5>=|5d5t~-i-PPY*gOzl zM5moi-@NXyeFuFtn^w9%-ZK^@lu2?^VyHF3fN$Y5UZ5ml78@|@cFuf|l*(e~eTDt| z3w9+Bl=;UJa@16d6<6As_dp57T?N)l*7M)C%1R!D`)Pj=1$(x1IgHn2FB*w`Yu#vh z_3)f(XT}YO;V02IflV(fnfK!h7}e`%h^9quht)4UrxCDP@F}0p2Kq&IKi2Y)k$4{4 zGMQyfJrr$=ZA!mbyG_qLA3=I7J@A>&*^VkNOE>;V2p^{w$UC6&8VYhcdPA(?xIRvh z(>z0(>&QFqxZ_lt{mmMnmeFMp&xXsm+%>kIk1E^d zw~=3c?TJF`cRQQR)oibxdnKsgeI)SpYl&7;V!0yW1?G?KwqO)E;BL%u-Owe+=Si|G z!dJ9mRwc2IpXA0O)5?zb>VCu1`PgYcEs17fyj8?AO@@U+1@g2UWcqn(g$}4p#=0Q_W6~7~|*=XmW zy1nD0>>PS0UG;CK*Y=Lp?Tad^lKRz6q>z=B1m73U47-~IbKWRrp(o=YNJdb%NLCD7q}aShWkC0 z<<=%GJ{a)}4Cd^WJ4wN5y<)Igo#qpLq`ZFov++0G< zTBp4v;`Q~}i^*FiN|%Ue-Zo^N18?nVWt;CeIe2|ndjXa+x-&~zTDJ#X$kD$N&PpJ5 zFLvQQ0bZvVYX{(~CEp7YJ(B`t8?tpAUpS z4R<9N z{lxm$wxq*4T+oc)(n)q%~HVJ}|YB35tL(KA;tw<4F^4W9jc zF+L;Zsv!%(Ktgc)R~La%aSdDQJ{XKYN#2Cou>W#gBzcrO`HJ0xN6)iXstoI-M(v!O za?47xqX(fVR0SnzsBY)0t=$eFcX8=0?2G!vdSZ_w(vUO>2?=rr^D`ni(_ciiIB&4& z_=da+_Y4Zzqccta3ja-39=gmbm5%;9EFw>OEIO+~hmM3NHY7k$1_HOF3)%Ev5aF>i z%PZrkDtnp~RTgiTNo`n0)i1bii$@r|K{Pj;U}mi0;)PcPZPzz8P|$@-2Ix$f?Wm1< z`N+XDwL-;}FTeF|$DU`}&9+KA`pt)f;_}D`6_1+0?ry`nx{>hE`Y;u?R!SEK=>S(V zi6TJ|2{Sl{)Zd-DafzilQ^wWRb()PT=w=`R6+3j0Xh1vMsEaKUuZjr;W?-plf9h;4To-pc5Mrf^hlrDou?0V#Yt;HXN5M>|eJFsfg6o0wKq=qh3@|N- zSP+dvJWg(6oXN`<$@E|C2VUyzNuGHqz`X~$;=u9hwd=mwxP1pT&8;v$2aX+XeWNj` zs%Cb4jL9pPm`e@+0yxsylgvLb;NAmWO&Z>5+PSN1&F(IAb{bswKBLD%)UV>^`Ci5^ zp6?Uzd}mMc)_nu}uI+yjkzQCZFS&>&-dANLE`*V&VtxM$$r16>sw z{?WYa$vus2?ctX{gquvJQ{1}H_mP18rS7qq@veDTY5hjywjFy`HMgJ(d9;*)j945J z6@mX>7xJuXX`yl3jy+226L(#al@vbrOy|M+wzj{u@7#s9i@}yR7AN+luVHT7a{C9T zhbjK{6gr;^{CxV-1*X&KLwnEmo(`<=k2;<(Eg{~hZC!)R=TK4xGV7Ty-hl-$)~?4o z@Lb^MWj;qu>l!Q}PWDaw=g3a5>dlC`Q zofFX*wd>YxTz_NeFmNgeun{wjZ&%mXqofx&Zlqx#5{adQB`WaHm{JBFtGce9j4}Kj z;Mahk7FMv`Cdo;b|zB8IeDGwF0^fn_F zmJnNj2q0GiwoD<~gfIhVhdWt9X`FOwslp>^w5L!;xTBa529^-5rHrM(ra)9^txz)D z1X^qC)X=gDTgpRe5qdl!M5SMQuLx`aC{G5ejY}tR$H$TLbC^}tw^Lm{k2f`mX&R_| z7;izuyJiW6E=bRf3nQG*X+SGUet3xL?K=S|j;7GcLkW|xXLGF-O6z>tjl)rDOgc`z z8Ht216_p}CH27cOkrcu|eS`&;u8XbIcsXD_=gAulj*aveSkdWgbL>NA#0n3rHS?GHNPhiA0Ai*=!ZJe#9Drxr+$`GX z7pJu4faTeV?7u!&TXifFkBfT&uG_tbrmq}EOUdM)-=vT{7dqg4VExa@?AcP_(t0=! ztm*muu0J-`)a)=!Gt?xJ);2bt{1w8o?gY-jOW(jre;RU|mrTvhUfKWdCoce_TI=FU zTeAz~&(F-iDIFWFWGJiHzT*xofG`XaTRTFJBORLyGr8Xbd7o*;YE1!!SFc=ud(L)J z(sfZ%1u`iW^FvEwgj{ME8E_0G71DK?cihwu{(b#zpir*7)IhN)Rpy;rQ$JCj7g!Y~ zB{P>kVd$4XL%9yhwz+ZY=VbdnzFiyz9mn%HeQWCYyeBh2u{0wtccwG^-q`xLx;tKb zyfX1zkQAo@S1AfoA*~2nN-V92n+6eKV2EIw#Zazr`o#|}zY5&&dvmJXnN9&YVCv^GZsxj(hFMh5pxpDW5?FZMQl=W;kCQ zdFArpvAmQcT5HOg0Ad0XhC#wGhzSsWx+`aSsYYJ8Ja}xRV2=RPK11OCu=XQ#Jeipr zJbH29=#1-?ZIcSX5Q2zt+YBKB9X@A0Iq>~U11~2tbA!ORKerCmmsm)xKm*X$mWZu6 zzH{S|$1CFpA7s<#daiKh=*5APBL#aDSWwr!pJrebs0Uhr#_w%t@BVUILsr wWIp@?s9B=0Tm-%V8LFaR5%~Wv79Ya(AEiL7pFG#C4FCWD07*qoM6N<$g4F1%-T(jq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_fail_resend_press.png b/app/src/main/res/drawable-xhdpi/chat_fail_resend_press.png new file mode 100644 index 0000000000000000000000000000000000000000..21c1d2a70252f1656913b6d6207e220832762383 GIT binary patch literal 1972 zcmV;l2TS;gP)D@tuiT3DkNQtWPG(xfKjp3ThOvO9a3IWu!+{{O!ZIUB~^Y-Y|ReF%8q z_pq1qJD>BN-|hb!p|$2gx(pt$>wyEdYJU(y#C9+;*uMdI8rTJF1=a&?(Vu65QQ#c# zK5!JcPu#4JPy1L90sa!pDk+X8&P;UFGP^xqFmbUJ-c%F-1SU?APD3{Td z3Md%`oQbe)a9xC-M5I!bN@Zrp$5^;Ic>(xt-_Y>UI0`omJTlnt0SEoowr{qs>Bcur z)XWq*2;wQ^`xqTv1WGYCF-|a>`!%qyZ)iBUZ@?pi{aqT~X<(`gilGBc#F-Xk$E8uaSY=H z;0-|CRpB=Wwr#M47!c(WN~wme7?vr|&n|zF+ziE1JYS+*!V=<%KMic#R8L{iW?RqL zmL+5*j8&SdN>RLd6SuYfe|}#W&r($ispAcXwrz`6+u8%12lPq`8;&8KBrL~LL@9;V znqXpV*@J_LENC6uA7L5C5WAK#E>+mJgxIW=M8-XdC`DoH#&Y1XELtn1iZ{AyA+QW{ z3t$6sC1A@GqE~B8Ge@W5SY~+)k7w~TsJQ+#Sf*IJlyNDrDG2dTX7>7(+rAdYGYB*~ zrZ1%x8Yn9@S+5T3g{r*Tj@TNf%he{z#EB2-{oF1L(`0<)Lxcv^gfGh!6sqcSJzzCn z3Qu$->^&+hHxYB1xpQYZ{K7W?SY?}ZI~L8nyD&}0O68NaCGAeY^4QeuKelgJcc7Rr z#Lf~!Yu0b?W8m2@qm*Rq-M6WHG}4s9w(IJ@-;XMPpa0CC&0_FawNi=q zkgjeX{mIV}(J@~u#m7JXKH+#KUO3n`D&e2q{m*~z1+rS}(n?8J0fLir`9C_Y8!Jhq zRwOoUy$uT>3+uLBzCTl~6$O<+GRHs+iWOZ99!0bEIZw^x87D za@h=0>W2MTwnNpjM}PS7<+p%hz41~5rIJ*+cP6HP;Uy9*w&{8%wPND@e;E1w8^}t9 zY8Z0j@NXGEa|)?d!+yL(f+G{t2lG{#14^}%+Dd0SBifBU^ya{}S5|BJrGc{I=@d`^re8dL@zsjs zo^MGe>nbDActX%-3X-Zq3Pr0SNC<%u9VG8&Ey*Mm$34IA)P+}p>4-r!x^4}D+_j*T zdFjlh14bf|Nv2Zh=<~Ug0l0>s%{1w@ExK)scFV*y#O+vH$y$<0jD(+g>CB}AnPNEu z%tQ`a-neC+wbO61*3Ag9q;~V$&SmLQ52q=~AZMWum9=`9Bsj8#4v4t0I^xP>$f{A}d58pzr$z{tnf}20Xxz%v%CZ4QLp(*&wnKP#GEQ zS8>0TX%@Iv@kRJWP;-gGvIe{oDIROyToL&HUo3tC*M9++?CBN!g%r~O0000P000>X1^@s6#OZ}&0004jNklTlf6vyEX!o~$#U8j1J#~Oh)a_$=nYg9KLCT#(D!QwwP-8UX`ST1(ELB1 zZ=N$_7}Zy1XjrDe7BmDcL8k;-if=3Zk44q$_4?CjG#V_I%kh4{j}M1Kb_?*}qeG9+ zcOkWYzu#T2*Z!HfG;$4ke8kTxhL}{42c&75ZMWMjj^omRj}HB2v+*6rc~-4EhS;9x zy--n-B$dpIK#vc8YLAW~4SEV8ilV!L4}NMGjv?)xEFA$k#4g46JfuTErI*@(pBnE| z2pcCGuMPP9d&uVpHfyz7X#;*2zeG)hHasqbKT;Tm+JN6h2(!IdEVKc?hlI4{%iVlF z&vZflkg>XFPG{G2IvrC%5CnGvAN-1EmpvQ~2h6vQ5Pa|}p28;QzYu(?n9XLthU&)q zwflr+^?JRo5PjyHzEV{gV|ehwL`j)*3LboP>W;T=y>9Z? kO0(i?rFrYMlKml!4`&v2&DYWfcK`qY07*qoM6N<$g3a5@r~m)} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_bg_pressed.9.png b/app/src/main/res/drawable-xhdpi/chat_voice_bg_pressed.9.png new file mode 100644 index 0000000000000000000000000000000000000000..a4438090bedecfadc8129315efa779373d14cf17 GIT binary patch literal 3226 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 M07*qoM6N<$f^AMLN&o-= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_left.png b/app/src/main/res/drawable-xhdpi/chat_voice_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2d7fd8f6b7eb2cb6a1ac782bdbe5d586c67c72e8 GIT binary patch literal 1539 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49pstArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMXl$WiZmDNz zYH49)qN8ABU}&aqV5x6tqHADiWngJ#V5k5ENh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+85C;f3L3tN z$(eZ|K~1nOUtcTFyyB9?yyR3*7h5HuIeM9yDOLu?hDNRyZboL7MrMYFuI82&W(F>< zPR>qFrf!aIj+QXJF8Rr&xv6<2Fuf@Vy~a58f)Ye-0nlcb)S}F?)D*X({9FaF$E`B4 zxW&oM(#6@-(i~`>33j(Y^rm2O3skQKPQCg-$LNEi7b&`7LclZxV!{(IkONQtsd>OO zUj$6tx9jEaFfcF`db&7PcKAA*6SlapY zKAS85+kFQ3ou-T8L6-um3gr}_*1CS98Ev!-8UyUp4BM+)T!w#dp)7WwP+ z>e-T);T^#z_U66#`{d>FEji!xqc;24xVPQ5YnBzZX7987%V?YStu;q!!{+0D%Uq6q znRLTo$D7+b=Fj8Z_VWMwlUHuJZjk=J-2L6eh>`<8VtkC2Yd$z;X>_doj`t;@UeSPkypJ=)~?buZ4o1I;U*YKjEwY za(DcPgWv5Ati3;Jd4J4oPC=~+*^ifS%%8D!dT)J5|AZxv%!}7fP6=C-WIFM;obb1* z8Bcz7?GxVN%ky!r=BuX3iJmLccS`@8btNP&exmUbi^)}I49(haDoHAzHlOtEdW+6w zZKJ%Vl*GgF!rdvHDSr z1<%~X^wgl##FWaylc_cg49pstArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMXl$WiZmDNz zYH49)qN8ABU}&aqV5x6tqHADiWngJ#V5k5ENh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+85C;f3L3tN z$(eZ|K~1nOUtcTFyyB9?yyR3*7h5HuIeM9yDOLt%1{Q{< zPR>qFrf!aIj+QXJF8Rr&xv6<2Fuf@Vy_Pujf)Ye-0nlcb)S}F?)D*X({9FaF$E`AP zyTuHrc~HG6xZProQ?EYIG5VnBMT%~i5HJmanDE34$L*>vEg?;mGRqKi}{D7M1;8*mG%6oWpL$ zTL(CPyiL9NhoPGB1@ra;!V~`6w-h;=?^xyX`LI|O2iHli(}zWNF|Rtgga1Krgp=ih zsXdX*mlNMztQ83V>z*L<;)0IqyHcU9hN?^d#r`NM)jByYbJ~6~>)U}jo1QivSKwOL z827VOY?V^&`vaYuY?%ySTk0M1b86#C{m*Qt9WA*c#B6i9@j55f2VI-=8-r6<^K$$a z4PO|P6d!ip@TB4Hx82pH-IM>?32P}S?p>H8sp0o!*&J)9J6Ie*NLm%9Jy14JV{OoKatw zv^CrR{DdA!)oq?Txt7#y`nl%M`w3j@nqRQq*f#IJx2%ny``vYibFO*~`c?nx@A z-%q?*r=p)bY0~4G54FWBuEn2trCc<-R4huVmj6=esVrfw_h$kP=X74^x@Ti)x60$- z+zl>5jII_N+GZvvhP`7c%VvuY4O$-l|8A(u{nuiien+2ly_vY!Zl-79m#c|puE!+4 zUv2qons{f6!?CTCG|v3WPU_n6p+V%@n$|Ng4AEO#7VnE@Pgg&ebxsLQ00@9pWdHyG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_left2.png b/app/src/main/res/drawable-xhdpi/chat_voice_left2.png new file mode 100644 index 0000000000000000000000000000000000000000..d3306f88e9e236db60a8ff63fa85e63decfb5fd6 GIT binary patch literal 1594 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49pstArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMXl$WiZmDNz zYH49)qN8ABU}&aqV5x6tqHADiWngJ#V5k5ENh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+85C;f3L3tN z$(eZ|K~1nOUtcTFyyB9?yyR3*7h5HuIeM9yDOLuK7A^)xZf0hdMrMYFuI82&W(F>< zPR>qFrf!aIj+QXJF8Rr&xv6<2Fuf@Vz2-Ref)Ye-0nlcb)S}F?)D*X({9FaF$E`AP zyTt^jc~HG6xZPrkQ?EYIG5VnBMT%~i5HJmanDE34p0C;I^X zI9rY`g{}o1J6v28rKUG8nxxT@bVQ}gSkG|XGNnPPzO4KAqz>IH%|p4Jy6F7OpKu78#=@x$6B3Lm+aFWtE) zGGVX8caA$NRReY`vfAL(Q_21AnpT^^g_;W&~rf+nw>Dz48Cs-E|_>2S>FQ$6$f zlh@x};(yC;q4F(&?NqgvQ}siB&fNVo>Q9A72EJ0`{_mZ&o#UnWfjGnMfp5O=cR1^G z>F<-{{Ou0=T^=U?cFZkR`6b*G!)C2CaaCc`hw7}=r?&+E$ZI^i?2$)KouAJO zL9ID1`xZZNzEH<;?Wp8thoeSZ#=CuUg)i8BinP4RXV;XT;Jagb*r~M-wq9IPJY}8h z1H;aw1E<-zlXty;sc@g?{SmIH6@QN~Z&c{(*jX#1!WSZtZ|Z+1_xKTK>puZue?(J$ z&T*~{KdPIj9qqC2dP3RGSt6`o+jCc1tl0h1XXb=$p;151-0RTZA35bm^@9cWJ6?Qx zyY3rv5o3h!U*`us7FXC~KHZ(^^?rjwz>~}qoty5>e8#?{R=K3paBW>*(Er@b&+D&U z@QRxkzx1d1Mb&jnA71=n|44qL;`;xs7dcYQ4qmQs_Sm2GTl)aR+D*&XK4!Yd3@Xh% MUHx3vIVCg!0KZaVj{pDw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_left3.png b/app/src/main/res/drawable-xhdpi/chat_voice_left3.png new file mode 100644 index 0000000000000000000000000000000000000000..28b1fb7c58699699498b095b3733df2a30b2fe95 GIT binary patch literal 1554 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49pstArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMXl$WiZmDNz zYH49)qN8ABU}&aqV5x6tqHADiWngJ#V5k5ENh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+85C;f3L3tN z$(eZ|K~1nOUtcTFyyB9?yyR3*7h5HuIeM9yDOLu~PA1N##wKQ#MrMYFuI82&W(F>< zPR>qFrf!aIj+QXJF8Rr&xv6<2Fuf@Vy{0(zf)Ye-0nlcb)S}F?)D*X({9FaF$E`AP zyTu5nc~HG6xZPrmQ?EYIG5VnBMT%~i5HJmanDE34V0|Qfo zr;B4q#jP#VPkVE^v$q`i(3&{qi-4|GE&KCBKfYG$6@R(c$bV<%@4siu&&`>6 ze)$ZOFFN{3Fhu0=3LYL;@6)T!9!jWu$x^*C*W5yA&9Vuf zXL?M(-8yI2)&!RsUz$u?O?K(|)HTE^eNecuU1+hvv&<;h0OlX8#~f0F77HIrx#G86 zdV{Es>a^Jc?)+> zeImQHgHOscg74piG@&V7e%?B#jSkn{I&6PXJIk8&(v@qBb=^Fl_-q&@&+*inT#_?9 z^?OMq!)%Y_dtVnUepzI`t8x*S)K&J0E3;PqlR6V{+cn_vmDvYkCm4w)Z)s#Y)_Rd| z6+hS6!i&>b&6%y=Fa7e|Trj}tYi9q!CtlJscx@-wbiMlQH2IwHeoGPUcST?psQmv(pM^Fa6#$?Va()J@OOM{aTr4_BhpW@ACsH5*zl5-{HNj6Lf)5>aE|0ev|nwk9gm>#jOvz&@kgRcZfXe z-Ya38w_MlUJhAyzLDD`|W0PB)vxDvg&h7o_W1{x+gRRiqIpU19PT%i+Kb&r%W>t}W zUMSCDs;&N$uAghd)othSaBtRDdNCZSBLM7)YvJ~^B1!1@hRGO?sz>T8v}=J VMVcM^k8)5c?dj_0vd$@?2>?=9Mb!WR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_pressed.png b/app/src/main/res/drawable-xhdpi/chat_voice_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..4a29e2470da2b108d8d2783146581ee311d80c76 GIT binary patch literal 4393 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_right.png b/app/src/main/res/drawable-xhdpi/chat_voice_right.png new file mode 100644 index 0000000000000000000000000000000000000000..b173db36cae86fb8e64397194c5a22c787e9e855 GIT binary patch literal 1587 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49pstArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMXl$WiZmDNz zYH49)qN8ABU}&aqV5x6tqHADiWngJ#V5k5ENh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+85C;f3L3tN z$(eZ|K~1nOUtcTFyyB9?yyR3*7h5HuIeM9yDOQGNMi$OSW=>|7Miz#KuI82&W(F>< zPR>qFrf!aIj+QXJF8Rr&xv6<2Fuf@Vz0NrGf)Ye-0nlcb)S}F?)D*X({9FaF$E`AP zyTuZxc~HG6xZUE2Q?EYIG5VnBMT%~i5HJmanDE34#rvMmdH(&k z?Rooi&p$UaZ3!w6eZ#Z@GW1<2Gl&mH5Sx34)pS2hA?{R!N@tdOTy6>(pe$ueR*$N9Wu+ zqO7IhKkH4tVFrV6#u>{GleVl(NDW(jusTT_joL;=!yhnAd*P5%PhUJXXyv)}RFi-q= z|48)F1lG**gW;D>)h>Cm9toE?;ouOz7*= zSHhY4IxLSLSnt#;w3%<={Ef`q`+Z|iOn&9JA@D`@8V(l2C}uydzfG>u8#Zsh{lISG zw*;qBo1TG+aZgu2 Jmvv4FO#mW`aPR;C literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/chat_voice_right1.png b/app/src/main/res/drawable-xhdpi/chat_voice_right1.png new file mode 100644 index 0000000000000000000000000000000000000000..3160a0b204cab7769ab8f4492cca907e3d13f76e GIT binary patch literal 1724 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 O|9DcO4yjjV7XJ$ldu^!z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_angry.png b/app/src/main/res/drawable-xhdpi/emoji_angry.png new file mode 100644 index 0000000000000000000000000000000000000000..f95bfa897ed9a5bf105a66a3e962eb11d6ccd1a4 GIT binary patch literal 5037 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񉏠NkvXXu0mjf DY7tX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_anguished.png b/app/src/main/res/drawable-xhdpi/emoji_anguished.png new file mode 100644 index 0000000000000000000000000000000000000000..c62594726df27dc216ed753173b576578522efd2 GIT binary patch literal 5091 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%0DKs)geLg#mZgYb2=M=+#wT+G)M zgXQ<7VOWX`CjV#IUb^gt#aBVSJxH^v@N}kpSF1U4e>uSQY-efmuMYZ3kfCOp}#WS*?7FS?Si%c;|r*dnzMwf5uB;a@6CE!2wGd|)LGdbdfZzYNe0UCBSGU=%y6xSG}?qIqHn z;XgeXa0&c%^CrJ2+&)Ybjy41!JeOOFeLY6mPgpem5OJl8Dzv2cRs2W5+~{jD73WpsT2 z$>=HH#734O-Y>I5>_(rvZrc@5Jdx2v{Z3lW7y_a7d1v+P59E*=m5$Fqa2y27S+5dE zI%m81$IQ{O1BS|QuS@I>Tts5zn7nqXd8vNxau@87(72JawI!`Q1=cuI+uWfQ>7GY` zvrh=a;&}K^2cUrK;SzJEh!!h3$ERGB-`O~;mcJ9v6-P<_WRsSqDJho0%8=$i& z6&OIZofD8_UFmt0v&{32mwieDARlyFEa+{u@vru3`O5{O4Fy|aU8!rT3Fndk+vvt|1-ineJMNy*KLRUxf(F}{eh*3`6N}^|BCoF0yB`z9 zr-4qoH=OA#1bi&9J@-kx9pwAS#0*DT$2|kK7RX=7D4VZjlcx!>4<`>jsiK0sb=q#U zo-KzqL%1>So_c6rj{fA~Xf#^Bcluo*&5=F>Pgu^F?%P5fzJd7~GmFB>oB6UAq_XIp zT1wYn<4@r5g_6pv##_}6O%g=6+%e{G)jNS^a(%0UtI6!W?(JBYsJMb%hO{K%QSKtw z^@cv|AL>OO-%Z^HebULmwfWS&W}TaIE(Y+Z;iOmiK+;frKsVN(ZRQ*y6z#9gCvo9K~TRu1%k-Z^YEco15UC*Om<@6B(M zfg-%ROF2!&oO2#lsfW|b%XAXY!=>bYZBI43r{)Zw*LjZ%z7$KlB?}x{XyLIwLw8vM zL0l-#Z>#m{h|#`8q=-M3M>dv^vKtpuV}>&ch%0PkWUf7~=Y2f)>UwMW zjU1?-dvR0;)UVd|C0JicO+q$_F5lDRhNx|iTZOPPM|s`#xK?h4#2C?Zx4d6Am#0q2 zXfIG5EDZE+&~o1UZdnsrGY|nZ38|3peIF3-)d>HXLkd3CKm8c6<DnTwfIJ+pT(D7TT2f%}qR7Z)dGXw( z?bYE6aCG0frTRFyU10HfEUYH~XZt!3lyT`tQglW~^jSa#slM1`g}$oal|uN>x~TUu xBj~{vM2Rk^M4ja)3-RY!!xyH(X7rb&B-}zKjEx_Uek|_*Pvlf(D`d<={|ncC=hXlJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_astonished.png b/app/src/main/res/drawable-xhdpi/emoji_astonished.png new file mode 100644 index 0000000000000000000000000000000000000000..858a83484a8d7dcacf867dff9f7513f4b4a668af GIT binary patch literal 6043 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 V_SY1Np;!O_002ovPDHLkV1lkuqwfF! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_blush.png b/app/src/main/res/drawable-xhdpi/emoji_blush.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95eb61a3af84e6de44eaf5b4e165fdf1d1d90d GIT binary patch literal 5188 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_cold_sweat.png b/app/src/main/res/drawable-xhdpi/emoji_cold_sweat.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e39bc60fb0324d4bba4551ba2be497344dc2b5 GIT binary patch literal 5972 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_confused.png b/app/src/main/res/drawable-xhdpi/emoji_confused.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc494db0833d0a5d87c8d7a5f1f219e297ea61f GIT binary patch literal 4633 zcmZ8lc|26@`?if_3(?pKQHbm`mciIXvZO(3Vyr`UVKSENOGx&;nyh1(BwG}Nn3%jG zOZI)=#?Dv0@7w$P{Qfx4`R6?6zR&gC_jO;_iN0;5!$8YPOGZYwS
    uh|{RIS8U^=pvN2crBf(ayPlw$*ZysHCzy7Rc3 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 B4B!9& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_cry.png b/app/src/main/res/drawable-xhdpi/emoji_cry.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0d9afd284b9a22107defc3979c9384c192af74 GIT binary patch literal 5699 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_expressionless.png b/app/src/main/res/drawable-xhdpi/emoji_expressionless.png new file mode 100644 index 0000000000000000000000000000000000000000..913ff4e2fa7008b636c8baf39fcf1ca152bd20c0 GIT binary patch literal 4022 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_fearful.png b/app/src/main/res/drawable-xhdpi/emoji_fearful.png new file mode 100644 index 0000000000000000000000000000000000000000..513fce47b685b10757d425ec63bfd8b69258ca08 GIT binary patch literal 5600 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 Aa{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_frowning.png b/app/src/main/res/drawable-xhdpi/emoji_frowning.png new file mode 100644 index 0000000000000000000000000000000000000000..487b77016035d92a6484dcc9d6918c7339d4d60a GIT binary patch literal 4733 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

    YDbw83jHy1DX%-#b+N9_w z&imh`W~;>K9@d6OQ;(IYxV_}48Q+{UO593%wI?G#;1owYDdBx<7}jq?1jOBY-MK7* z>F#Z`S2@7X_l$coe8m!r#%#v}*RSy=+88+ zZUb0dRxAr&zx39K31Az{r%mwF&8lSJnO~ms^~|;FY;L2|i*?d3{uX_!SDK&7Y@k#6 zrdfKrQ_Vq>*=U+pgTH(Oy3>_~4%y&IEY0ZA0T>W%?nZimd?z?zb^n=xn zGzOEr-UWlJck`wl?FbxZtE38aRk5soS(Hlh0CSJwCtDlfn%Oe9i-Q)= zuOISG7RpzQwEiBXW#0u#u3Tc^vypP!ZV=lD9#yQ4xIeTYE0|B{OWZSf4ecI;l%ytd zf>v!+-CR%}>SBQTeV}U}NVOQz9SAg#eJgnRCr8`)wGu${{v$}a+VkN518#RYLjV8( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_grimacing.png b/app/src/main/res/drawable-xhdpi/emoji_grimacing.png new file mode 100644 index 0000000000000000000000000000000000000000..1219ba7d3c11e8b2722a230e9a8e2e40a01375c4 GIT binary patch literal 5327 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_grin.png b/app/src/main/res/drawable-xhdpi/emoji_grin.png new file mode 100644 index 0000000000000000000000000000000000000000..591cfcef8bb86b07f085e81b99e16bb261c40e15 GIT binary patch literal 5721 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 LNkvXXu0mjfgVFxK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_grinning.png b/app/src/main/res/drawable-xhdpi/emoji_grinning.png new file mode 100644 index 0000000000000000000000000000000000000000..7e812b7ed45c5eaa63657c6feeb4a62202230f4f GIT binary patch literal 5550 zcmV;f6;bMmP)XGdFOxUobLO6&3iO@*pek7OOb``c(IWQ2IDn>*s$#4B*tErSMY9aQ5%Pa-E0y} zb_)VaHs!FJ1hOHIatPqm7C43_uwY|sz}T{}jf8BEtfytoXkK?_?yI}c`Sy0-uDYo~ z(nx@@tKh5ps&CbtbLRW~`}@wL`(7m?{4AU1XWD))z|RHnc%JQpO6j-%YIURX)J00O zLwkBNh6$xrO(`h=h^VGGS-^7KMQ&0YdnJ;`KlR!A!4HTyo=1CLCPCG;qc>JA>q5Ul z7rbBgb84H)sl3T*v=7QCh`n!M1+jt)!FC+dmR8u7{jM4PUy0-k>p#8tkaX=uEx?}Z zRbjkVyP*sFu586z?v;$z1&zuoln2UKK+syj3VsBf6F?!>AQ4DMa7{w`G0pCSBC;%hk+SygiCdmV8V$r+oYP34aZO89x3m}R4_w22^y#AucU*OkL@&4iPu*0# ztdKJwEe?BEd4mRBG?+|;@-(_Oh8npDGj=(ux(#xpU<#lVC<{&iKr0XfB4C@)o<{2X zu~XkcPCkxXm_j0l4Ln@K63tl}Gts@xwte5$JL(U;AOfha9eK;(t=VDqUvtA=-qbuy zR!|u*qg&DEy$(HgC1eJG2*P&nDi&~{fRw-gS%Wfw2Y#-14d!uE_u~$K2|N815`gU} z>_S9)CTewNz0AM8^mB9d=T!jJwY_gH zj#a9e&y^8yn|@+>$uQi zmm!=9Sw0?qbFm)Wu;b3gl$-;UcP{V`zo{@@t!BPhTA#Vt8}ae-f+?5K+ipaUzZwab zpmQ9QO8cw;`Vmb8umMC3P&xFLcjA>d;r4$TrIx|VP&Von3cmF4o8b{#APU2*}Xjs{|vZMDdnVVKW+x-{Wn(MJFw2XA+C9^ ztTB0o*?b+8Hb7?z6d-;0=hvh!Y^RmPki_!joq&Mz83^TuZp@Et`*i(dfc=pLP)g|s z-c-3{aLoIFH|k@`UC%ho_+?PN5P}mRX+Ua4&i}MT2u>uinDJkPXTOV-eZ&fbE%$+L z>|a+(?GX`o&H|{eT{l5)V!+&<8}svC$-~QmsSU&U%OIEsq8I8s*%!b9L`h7h@eC}? zLCGUG=JFGZ?)EOjYm`zg>DswwfVu6LsyEfvcvqOJhc0-i3^05VXdqey6bLV@34nlC zN@7#Z`_KiAsXA(F>=iM?KYXVCDIhvK0n*g}%`2!35199RwI00ADs;ID#dQ$OflA4R z7l#Ew5}Pj95UD3Ido|1OfPH_L&(u!Si5Bq46qmgYW1S7WWYL}-9OFH zP@de{3M{lBl2y8fVEiOjWt&Otwrq%5Vx~8Lx$zC)^a7-t9keDbgMuwf`iam44)u~~lq!{6YKK7I|D5F$B!=Ae?cQ{6t>*B59s zT{6~|jYW1{F#+`sXEgCa8!*JNCk!!5%oMXt&JhBq6+qvztFWb5Hk*@)FYatKXazX1 zZID$8U;BLVD+gIy^VvF)#nXyv&hUe07nuCsF*fh0Kr000Ry+{VkoUW7ra9JayX*Wi zwSpn43D(+V%w4<3!L5=(VgUy_j$IOlm?dV4+1`6k^D)4kP5`r|YGKVTf5`rkD-*J`kN&fZ@E}Zn8aS<*ELlL=Y~4 z&aK#zM(NTRg0oQc7#j3gY6Jw0Uc{?f?GJK9-+p z(hApEe0 z0>>BmcfY-bcYf>=UU%zue($gT8NaaEhpE=-;Q_Rc+r(|-K5^f8jCibMOhWnLvWGO5 zeoXyXQ~0!sV>X~)GpEV`rF1UoAU$Sf1yt<)flnEQ>R)L@$m7%OT31AEEg>iBu+ZtR zCadiu4%Hc~Wx4v5C8XIK3oB{=Q=CDBQ<#7iBn=-02^;9s2#{jv6j1@rfw(@e>hq&k z!mrFifg_8EOQHI~uWlMxXd`ni&}n99R>IT2o<<3A;QF}eACA^rsiSk!5lP{l0I53x z-EW$Ta0V451qZa8`>|2?lLc&_B1J$}h~ZK;-T#aTIGeDD^w@w?SK)(CqFjNAOFo9>uRuJO^$6BW_f8>hzoxq%Z3d;3@OMNz<~vX-qrQ5>EC*0 z0CYbhm0mUA=^j7>qWO@?eG&V<-{H~6+DtwjaAdl}LIdvj_yiZftO#`neJI2xN+6LC zvjNeW4ny|HqI&A0K+r8wpDdN3$->&040XBaR#nIsRcWd7tl&7~%feZR?r4}@L`J7_y%rkL%F0;Ch+@>dVruWjFA z-)RD)v4V37=e?bS zh175YB=CX+5H*~OnSkY(akXcH!5==n{Jonm&g>lU(3IJ;@VGttX zaL(d+2JPj^QA{!@ilE(UbLimH?0N7TJb2$fFuC_3{6>olw-&hk$^y*VUVIL;6RZ_n zB)FD~C)B+$6A%EbCP1{*Vd0UZ_A}S6bvs?fq4El>>hJ!R9Oqq>W%ny;?0u+7Q_b?o zJ)h_PuY8_zwaSJ~TiJQ>6>Qq}Qnv5BgmvpSQLL8n6{j>~4Een2S6Lv`=jM6lz!N;V z?|VG8_hI%v{t(X{IY`iIQOm*w1K_OB8{S-jtb#BN&H+NYFLAhKN6Zp40nw@gq-C)9 zpC4#``SMNXHwG*EJe||HENDl1x&oQE-29$F{@~pKFR5nPwFc%omJ`c$W+xxw^N&45 z1ZW=$#Q|!AgA5FhGB`9!u2`j%FO$t>5rIa#nbdbyQ zfWRSvU|Wu8-VrmzEdBIfT>wPHDW&Fa`C9#p53ck6&ww#zQMEq>*3BverHJk zO)0N(E~C)C29@sOEXYaAyFN6+$KNx>k*SD{8+>vZO%CaiNxv*bG?3nXRvhk95m5c} zQ|tiZ5;m4wjswR-w*K=X*LQ`N12KI65JpE5c(-h6%|z`u_Lu<(&iVCtIv3P$|L*dh ztIpGZa&_9zcIcEV<5hA73 zv43&r;$QBmnC)AAUYjoBs07YH4rIzv98GD;s0(Gy$t15?se24Ix@`UHFKnCxb7?F$2e9h9CFq z@*!~e=DU_Y^xUE7Q9EN3m1RjFa1aVOkSU9viMaW9hq>m~Ax=cX(}zRm79E{PunNQj z6}x|G#{*{|RL}~A>3PeOheN_q!;K#utpq-aDUL0UF^&~D41}y= z=C<2z<4hL+{evI;V0g0W8hf5|d#_!ie=(oYBPz`Vofa?(=m2%gx?MRgd0m+naOjzU zlP4`fAnC-X5C!y4#z?AVyDcm(J5Eenj?Y^dG`#Gl8gKgdgA8Oqo(UmL!BcpXpxIiEh zT(h^mjTS7Osi=M5zRoAQ6W(6~2Ukh^vz`N1n-iovC$xdZ&+P3SXf}ClYnF9Im_X>6 z1#y5&83nMUvzx$@gLw-Jws)O#u;`#EV1XzF@ASZ3TaZR?b7SW%;faW&2ZBBS{oeL% zzxCDSyMP1zlipA9_X0{O4;ZWDS^qy?UHO&QZ1dkTxW+r*tD0n9FooWBP9-HR=b0#hOqyP+bEG z!1#F0+wk9Z7p}f?vv>XYnAzc#Je`z7UiU=s71~S7!GJ;mAoRd-;39!gkd7cRcuR;D zB6niO?!A99y6blyXnyU)LUaT;0W>8Ac%cMXDMT3<^L++?$haC+&pHk7^s=^ zyn@Q=jDoC28&C%NdtE^+I16-KlJ-$cI`i}P@Z^;J_FYd0_kZ%y<`ZGa954ketpI<) z1z0IW9;g9>d5_A~oAT?gI^Wy4ZBTC^6+fB@0Y|zX08L;SXs=w> wUi<>AE{Xwk>Hscvo521Q?dQK9=V#phKg}!llAV1WVE_OC07*qoM6N<$f}0wmBLDyZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_heart_eyes.png b/app/src/main/res/drawable-xhdpi/emoji_heart_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5794270ea393cd6295e0553ec87838e0a4d5b9 GIT binary patch literal 5758 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_hushed.png b/app/src/main/res/drawable-xhdpi/emoji_hushed.png new file mode 100644 index 0000000000000000000000000000000000000000..bbd2cd4bc00682196f8c7129b74fc87f5f2cec09 GIT binary patch literal 4941 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_innocent.png b/app/src/main/res/drawable-xhdpi/emoji_innocent.png new file mode 100644 index 0000000000000000000000000000000000000000..503b614f8dcc32bad7a6f17f49d12602792215b0 GIT binary patch literal 7000 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 Q{{R3007*qoM6N<$f;sUOJpcdz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_kissing_closed_eyes.png b/app/src/main/res/drawable-xhdpi/emoji_kissing_closed_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..449de197048a504b2ac4ff5bc8b86fa5cfa098de GIT binary patch literal 5563 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 FV1mUErFH-S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_kissing_smiling_eyes.png b/app/src/main/res/drawable-xhdpi/emoji_kissing_smiling_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..57f7b4935607e03c052802a8ac0b7385ca29797f GIT binary patch literal 4999 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 Rqv`+v002ovPDHLkV1lxagvI~> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_laughing.png b/app/src/main/res/drawable-xhdpi/emoji_laughing.png new file mode 100644 index 0000000000000000000000000000000000000000..11c91eb22e6a9ebb879071045a8d40ae9d15bce2 GIT binary patch literal 6347 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 N002ovPDHLkV1gva9^?Q3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_mask.png b/app/src/main/res/drawable-xhdpi/emoji_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..05887e99c6bb601fc395d9180efc7db2e684d86e GIT binary patch literal 5235 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

    5}YwdD|A^-)J@*M=(|Je3Yy z^7!cJCb`##Pgy=JkXc6euz&3S@Bx(X)9caLCF9bgw5m<#`#JI40kP6Ou|MlG*rF7c zs_V)%S1YS&X1iD8FkyW{zkIJ>@ZVE%?qiKOrQNJ*X6MV4Q5dc{8CN4pVAEL&%ZfSM znT-`}?AdD_xX%~rMN6qeMg>4;w)~eCA!qK}*(0uo?Cu)SxPMGIx2>Z3Q%zvbJY}Ui pFh051<*%*GH)COa1?6V|jpo{ds!y}^zsy9yZFN1hauvJK{{i9-88H9= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_neutral_face.png b/app/src/main/res/drawable-xhdpi/emoji_neutral_face.png new file mode 100644 index 0000000000000000000000000000000000000000..682a1ba066d8526f94fec4af76ca7fb83d0f0d8f GIT binary patch literal 4843 zcmVA_YR#PzX&6<*}XIS{QmRIbLPzMC1%F2a}oHpF251rHv*`$4X}+!yye!~25H15N%j(A zv5^!{D;5)0a0vi}rH&@M%$nwy?0&;ykCArwXFt=Jy@T1}ES9s91c`|Dy{Y#6oZ?p? zr(POJT#6h`sDJ_}1T09BBtgUk0L;W}*pg)fjYvlvq0h^a!7lXm_xhT?apAu<9%W|! zl@{Q^H&F4y;?&Jd_~W32>tsn*C@+eXM<4pF6a)|ekK@}gmcdNmh+rcyhln_| zUDGkGsDlTI@x^`Jg|A(A4|jj11o+Mkq&9DudL1jgLzQv0Dyxbbpi=;-fPp}O%0-CE z6i}=K)in^Z0;qffphH;G0-DEx?jme!0o?8ak%f+&Ab@UhsN1@w+jy8XKKZlRg)hJC z+pN#I0DEt#UscYF_XcJBZZIJyWLXA5$pSe6QJVs-*#tFx4QTQbpg05MO8|0!V89Xp zWZHco>;TrE~1VJ}UufJ>#M=gB#Id?C7nwk0R3*fOK(+y; z$|TKeSBYG8;Nz`CblM`Q(}lnHb+yS=HE~zDE^buQDyJq1s#bx#^o^j^SA)3&SewB6 z!UAVnM#W@UI7^wt!6&fJwrfGhu7+3of2VyOso2ZGpV(^}w!s0P2Dnxq{UuJa-BW$*oo z@RswW`K<$=cRcTNi=RG~2m?AkVuT7=%6aq7QpYZ)IsY z`yx0l-HUyZ%>#gb9H<4beJ)oc`@wmSzM)R0#ud|c>=0ylXb4!0MYo(jUqrwz!*S} zRq4#fus$D90jREn=rm)Wo$vXkxXQ8I_4wkKd<2*w0Y+w@HmydkR;JrzRVrCjkOc+g zB#@s1xD9ZW3}sKUc*;TCXwEI6I$Z`718v`DOgZy043Mt_xd5_Yz(oUDwW`*%w+)#7 zWA_Od@?nq)FzUYihwH1Cmx}aTvPz(`00jifKs{ksS7E;aq=QocLcm5R2dLz*;?8cD1C5{rTA~F0b}i?KqW^gNP(jZ9FM)_ z+EsuZBS7pQ$3Bxn%-~oYlVf}5*IRo%>$3`=E+~mBf}$)_UP4F-l0Fl=54An-G!N_M z+dVWES}5lQO3rab&ceFJNh50p)^1AxOrs3^!&xHqgsN z;ixYlO5TrsH!*`_aZHX4z&-#z3`YeJ(*s zsTfES2^RT#DiO+M=^eM({zGk!;Yt+&>HD(R$cHekc^uXx-dn?n z46teQWc>aqOP}Mv{qFD>5pc<1Y=mJVy4IP=Q9h_S6CEP)UFn#`F*!DP&QyRj0Xh?T z!84RYtQ;``lC!50fC$%+upM!ejOU8E*i)o#I1uquCE)z zjpfG7q35HBQX46hHO~+e!?8KW6k>DHXkgu%EvZaTIUD7MjOfhfXqJb*D^)&SG^ z?JH$AGr|i;NCgVAj*p%B;o<>?V%0|yERUW-!Ot0cN^1vZz}gw$*v6d)#3WtA^Q)WAd$OcsgL}b8e1aiD(!&dN6j1DDX@^#uFjZkX)mXmyu@y�eVHv6`OLEOPwj+uzFAe?c=oA8#8!BZmTMUet4DrRVw<7-OAiBcc@ z`(Av45adV_XmGNDHOcCCY<@I9m7@Zf9~=yyeAVV$s3Oj@wLZQX!d1kh3y6GOCiI&& zjvNyH^~gIZ&B_i#%(I>N0IUJ2fZT)tS_zy_kfUG28BY3;1vDelHgs$N^f&?fU)j?? z_`Vlowh;2gh>+e1$W@szr;JqypZk0Z_kN>;VgN`ID_!@eUKZ?_EV>c!+ElhL5P`O^nt&W21Px_&k6947>D8<7z55#|6$p7nsQ`SYaNDEe^$pI-Zl-g1R-fC`~}Xaum#|N7)-!KAp(vxlh9<5J_%Bi0EJ~3&EP(R zJHSGN_c$iUHuhB5uZ_-Ai)jDkh`H~k8MB#t1TGU`gunlLXpu1slop#P6%`;UWgZqx z62Pak-bZ(NFr0?`3GHw%)qR-^1S!7R0vf-a%IewSBx(w4~ zG#AYw$Ksd(bWi7tkqAKRfrDoL2ebBzubeRNp(;V-4Uktr5gv$!;XE*n?hzWAbbmD}axJCV<8r4>Z4d&CKL0XR30G zC@`pJA(Q|_hEQ=D?nD`IPOnozPF|QYUZsL0z^T}&2$}c53A|=-XkmH-TVl-3nH`S7 zu>feU7SmZ0ILBUU$p@-k`UjL+86=@B)OV{bOlnwg8p^%-{Kw_KqLU_P-D`af5Jd77?_rYbs~gm)=g((h=hGTYQw~7n?_H)VJR_J*k5b^Ws`$% znHW5pGjP5-pPlcH!LyA2g~*s(u&}#fihuRp*1vqBP+dKv=rWRkB#0F#QC1C{S^w}MTm%~0U-B3 zd!wg55VY_7+uy0&K25mD-w7aXvJ(U|kjs3FBr{Ia3U`Gj)3!smLF=Fy&_3*!EzE*} zo-;UcNI&_3Z?*4qz5_yJxW4e`>kTer1E4QK6M)Ej zAqtrd4|xEQjet=>((7^H03r|GaZ3>3rjEnj95*<0AlkWYd+!qiANOeBn4kU5so><+ zty{;^yZ5(k+tvrb+Jg5kME$)>dgoP>vOXbbBQro?z>4%t#AM;f!(@!c{m@~kHVpKU zgnO85aBOp6iyC^~A{xN|{6Mt*z29nm>i)gq-k!#h%x&Q0>Zkh_M*$r7@P5QI6(ALXy$IR@_DGwfA0N<%Lyg@R1Xx`(Si^<^XG~xZPwYX4 z!y4qlGtf4Z;37ZcJx<`=T6eSV*85R|BL|}={`sNsQy(bSrrhI0y54C0#qO%@L#vNnh3~zBTilj z2B**P{p28nyEZn{Osp|)4u1b>eg7wa(t7Z*Bj(s*h}t$B3NtGl~84$4u00NQhBptW}$UiwIk&}pE`xb~SxChvt z1-AjyGJJf=?tbWy{_fq6^&WogV0dDG3x0=(MF2}4o`0$TFae+lpz6h_x%NPa`i8o! z-grsz!k2ASS8lAUD<{ihy(%Iv0s-V5I6x}18@i2^zh5R-95YiFfm>Thf;Fz87tQFn4GD~%DRduT)H-Q-qq7`W<#CU zO_#))VjycdfwGdE2LNp->|3j7)#I zi*8#d_W%#x0nm2lulwn&p9=xT3z2u=-ipa<-qOb=HMAAdnN$9LYB6ljTR04UZUq=G zgz&&YY#!d%lo0|MaQ4u~*O4>dw&(62C(m3AF9?*c#qfS`Xw$2G&3u*}{9mIf``Kvb Rd_w>L002ovPDHLkV1gsiC$#_o literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_no_mouth.png b/app/src/main/res/drawable-xhdpi/emoji_no_mouth.png new file mode 100644 index 0000000000000000000000000000000000000000..e67802046ac81f6b5d519ce53c3f30e2dd9b1db2 GIT binary patch literal 4632 zcmV+z66fuSP)fU}#PtWws&hD~av$g?y*Q{-92Mor+!B`0(2LvCS2ouSeAR&Yj0&#dG z5*QRkJd%inNEQSoAYsBoiV2vII5J?2Z9o`5cg^nFUhjDAeaz1D(XV@}PP&wmu5>li z>q*uR6pnP%RlQwj&+lKSs&3yq&Hr!vwf)+JXV`84bL~4?JFGK1t@v|9%^8yD=0wey zH#!1fytH%iOPb4!ia+Gk?044h`|_6-rf&fMt0;gRyr%WCN}|6_CAmDcoJ&Q zQZ-`5iV;x(P!(0DUc5STvOLp_zAj~shw0}(>gV!bXMJ_yen6ks0^D^q^|R`eSE=y( z=?ItF5j!eXQoiw;8X(Xe`09{f@QiaqYjXGv@66zDs+=8*AkW>L6@8R7F zEFXu?Jbq;kUF|^T$+I8`gdB!A8Y*ndsy!ba76Fm3QV z>6jg}4V$JT9x4XYnnbqjB-wm1GJX!!w?cIUsDM%M0#LN+L$3{;W9Z_3@|j^Io$Bw~#IQFHh%u>{U0-Ed%;Y3Ly8tb#(KVR^@Y* zmboh3lr++DK}Iaei!Q;O^?S(33nI7!DDp9E%zPG+Fu5$b@}eGG(jjm|({n*qv|2Y`+pkfE+|2_D+FC z8UYm`K~VgYx8e4E8@IShwxr}IT(3RvzCSzHf5%2dNS-eI&2MRqZ)%wv8x!WrWOGtU z#)YIciaqyj$kausw!wRlLVPux8uJvUf*OO_b~%zZk%#{U%nBk>ZJ<};D>n{u{lm9@ zYhe-4Qz3u==HjM&qBdc#vQq>2mL+M`2k=+Js zJQ$Qc`Ft#UDUPye&x#1Dkat5a*ySf6e-K(JzORjD=07^f{im0GbK${ZA|%7$-*g() z9b8tBq?ur9Ae(nXT7!JKNaVS*0x7MB+%TQH@Xds@=cL}Y zZwL(ExoPfS0Uatp8U8)zGumo!ebTa3+f1=_gBcrxu^o^t0uB&Ro(HCo^+Rr$vAtNg zgf>%>mR4I`fBk^v)*ByWxe#Hv00yw{K5ycxYQtQZv<%X)n5sZ?8>m3O3L?WVZV~}& z!8yo>sdNfrct91T2F=qj?d6a&A@}OCxiGNY_~86EBfJ|XfCS$;MWxk{>ul2|ww_>X z2~;dpCqY+1Gf=>M*nqOcmrl#Npv!$EZdDk-++(7MAmebQR?*A1Bd zZQlu8WYl2-*w4PEdEQ7}UTvF#Gz^joQmKNiLf!^(tZU5*i^t}<;ji!H(Z}XF`z4cn z?E1?Xo2tWdpW#--SejYj>AP%&*{w&0AeSi7sJJ|c+6KrnQcO*nF`J))GMe>=mOgtXDbD)&)})BoVLz0_0uLA?2T>{NjNb#;VE-#tfrXp_Ukq z%_{fZf1GnKZbH_Ma(hsXZ2>hAU?hB&W~yu(H;h(&k&)0wiaSnDf)RZAjH(tVL|xiG3e@HzuuR-D11T!rTgts$rxO;Duaa zq-I%|pM`!MdR;(ES5I2R>DO4Co1;-nsHGu>;FSVXUHGG!a%P}%I zXAqlS57a@P7n4I0i&~?|5yvEuB2oJ6oM^HXe zVbyWTD_h+Btx=B8t*~vX!qM426Wd0)=;bX~TmXcjwvuzvD_Tqr#vGkpVf*IFAXcC8 zLI09VTCltTN+G&aAZJap8W;i#fhn*>c!{p2G^CPPnGlf}K!CEBmY+)DeNRPtT=%}+ zbVo*b_)w32bA;n#BQiy%nBjCxSF#-^=ni|!$r zSz>CWM{8?Jvebue54^3|a9r2s~YHh_}?-l2JL2yDad2Pi8$1+bqcwn&LK8JA%HJcL#e1D2&Mo>Hh2?WDaIKs z)hI<@Da0-Y6cy?n5Lvt@u$4!YmjH_yhXTCwN+JQas4x@TF{wgo0Hm}p2#5y}up59T z&Mr^@7L>6MM!`WLxBwA48cy+fU{C^6U@Oa0va*%{?ykeVN8h-s z(n~U}s`r2e6k{V)VUUy#6+=u;Kmc0;H>_`-vVkp?xsM%<2!^6vehlXn6jVIqN|yUx zU<2}D0`$MVzkm2cuVT8^)3eDaP68oB@ zwiM<;gXch|Xx9^%0$UV7*ApNEy8rpO|M5#-=&s3o#-zE&=K>WlMoK%o7SJZbB4E}z z9n1!v1!{SAOW#Y%VwQ`UL>Y(1w6B@%$GGNQyoscmZq~Oom+a6tJk4&-|hiZ0uve7g-mZqsH^h zLzw-xBd`P}pbhw80%%le@$c_h`N3spjK3{u+U+u;NL?{rB3RrE%g0|*w6P^{%hNX} zpd}%E0gtCFWPzpN`-<-%0&~r4T?BdY~PTTlM4%j=&ID0#jt;WCAF# z3@m)?&gI)K-a7vJtxdbz)D-D@Ok%(kL?lX4_ELZvE&2u2`lf3LVj`GdWB>6)7eGPd zrF+lgx&vQSW@g-;zz|ph(?%YS_JD8C=&*rfPz01h++w}Q_ez&E3UncFJKUn9JD2xD?tvi+(A&u4aStp3v!DC<>Yi7g zZohVU!(1yBhpPzI*kYubqSU2G93k!#vWD;*5TksrgBagw>?&jm9mTbC+>$4s_xxnK z|Fw{NV2CW9HO#QSb%FWCF2}C_kJXzWeIol&|AZr-bGQ|c?CsAk z0a@c@@De<}ANx6wfe-L2E`XEGI6|%==a73~h%5}PfFXOq+`a`@|MS~d{`ntj&8e-4 zyi_b$v2oT7_+lxPBVY>%WDS8>qpt!U3i#5i12ToaLf50q4ma<}PdH|d=6ge~gPe~5 zbLF*PHp_7H(dF?u?~ktdgRkD4oLjdtDHgDTiDi!#l*6yoPHwnT1{&SR((h_f_KO}j z=g4OqC!Wk7{fpaHKYPo*{(cWffZ5XQZ&(0`Ta5>KWZvaRmSz9NW9F<;E1Ll%Zdl?K zREiTqDV*|b7C`7a{V06_4)irRv^~BJelaJXb+}`WC#SQ$AHBW%cQ^0r?(h2m&rCe} z_`eDO&<8a4=z+Pce_%1+d*Qg97&CH)DhLYR6!%120fI;bDI6J6Z(0Tq&=J0;_>SV2 z6+a)~J=t-`BTr;^eDM1#U-;gE-hpl&;b8&LQzJkjf)64bob}ny4rlvbJZd^yjooP+ ziJ;&>UE~IEUwt{=zZ<||Gx6|yQlNV z`<|n~@d)n$PNe`EMaVt)BdePI?1}uTUe3NVQ>N;UE$S44tDq5HG=h}ZGg2yZ1z&7% zWO2s38sO0-j|;ON*85S%k;B$PVj7o0JX zTrl1++mkv~lNzXkSdavY=LL%9ppN)QD4x7WZ*kc_d1yX=;D?9u2X5QnIXFG&{HCd+()Bf?tAP{rVdR1>89!6p&i}}{}w(IKKtIw8XpN`LyQnB#Eh|b0o$YK$@Aq`V**rS zMKq$1#D1-jP#vpNZ>F|VPpDK=Br(|38UQlq$vv)@p`D!ma_0I=9XhKyJ)j$BxDBjE zFYfIp-P&Y!oahT_oqR?;>1uIzTsiuK<6Z|8Np85jc$=;i&*p2mu9n zJZcLOvf#1ppT9qx9BxtwLK0uiI$wHy^t=ErLH`O002_Nms>SOwZ~qO@SP;Ef_zv;_ O0000TKhciz2}~L@64UKcVK41YY+y(2%=E1BAAFlY{dYIXrtKHK4KIrNz;cA z?IRk+CJjcdHdY{1T3QiW8jGR@vGNiS9AJiFW_Zk<8SeAE&tB{6S?t~HopYGE7jS?? zzhq_av(H)ke!u_vzHhCyv#+QszshF#m9}3C@M{4g4zgV#VlKJ3dIV~Y7sGKTGDi`y zPGDRt!vN}ND9jV{jF0_R^*n_52fu#x;^UuI^&CVyC`C|uw(Fwm$r8zLnW5MRKCg(}z*0Jt{3 zy9l+Xp}7}d+k@8YsB?I4(2l`39PxsqHRm4o4gdMacFkXX#t$@p#Rb@P@z}{ywx1iB zjLwKwSx-TMH3 zeg=&_t`p(wj(FBl-xuGeEqB?5s~7HiMFfzZ?R@{LOG}gTnet>bWXB_HNs%JhwMSzP zI|sA&G$>90F?3tWQ61o)HwD0eSRjHzIXQOb@O$pSKXEf|&!cDuTw8GSF|B=Zv%OFM zV&gTlU(}wxYy#YK!K$&f6|SmGMHdy;M%YRyZZUTCM$A#~#Y~@(fVf3)T`(Ex$}DB^ z0=59Q3hMB?Z^LiB4)^R%d^f_?Jl#DpwVC+ZJvILDq;JnI98>|MXAhk}GF2Tbe!Fr= z;mw7~0=5FCV2F-76La{*5OUkigO34u@hcABCy0r_jzf15zx`_Bt>4FYJ+21beO+o# zcmHQ`p>x4;*Vkus~X)3jBQ5SPlM)j8&vq^SRTcVyFnC83Xk+V{>xRu zfyS-yw-X;8`Z`Dhoh&lq^|a01?w5g!M1&y1ON{{8a?#kQCe}w6hMbQ^4R%PdN1Y3m zjnJL}0W^a@xTcw~?Pl;H@#T^00R>-RqN^A7e7^6PYZpEbym$db#QgaD>Kj%~MW2q= z7Oc*L1zw#U#b0MCV&HogHPD{<1jx9m5B0`A6mEQ zztm%Rn}{^EXD>7Y?B%~XcJcVS=u|rvVTL25s4#g#0v#^`0?I3E3ZM{Gf^SIUhrw6u zm}h*QJ2fzT_qv5|0P%_i5E1ijjlN0&w83A`x@W^^1z)hwQfPxG| z_1>{CicI zgW@<+EFj(o-w6zXrN{J7BH~olFBbvkvu_xA{9Ecj1o{LRT=Yaoj2C{}R;)?j zEykL3@7@I;vz%>te2&Ynyo<(C3xFTrwTsI?aWcmoF#&LJ`ov6HweeK$ZDY-V&t1SR?&33rP7yj&IfS1t! zB$l;6Z7f)V?}3595|{#8PumW#UjghNzixO_rD`_?o4HyADxEAPgiEr5R%shvV z8di@O0Ll?O)w@Qwku4d;gV(f+fEqvm*?)f@FSo18o;R4_y9NdVOJE9Ym)_R6AMpDV zz#Lh%ClrQFDJUmmzzSFcz74(wngC=bX#>0mJi|sAD_cfO0zm8xa}5Wrr*eHY+b*hR z_dxdFKdu8Nz>(OXFNlEeq&|B@l1L6rfem=@Kt<3_4w=oilt4=)*-eR|y9B1(w<^9a=tpiY4Gs1br7y19?bt~wLS!vN4~pbtL6N^QC|*k2!bWdF-< zH9%HJvhx()fCvOOAfGdX5nzoeAs{|wb_$|dhz%B>!8~rZ(4XGVi?+f3gYY_dKG4Bw z!r%dczy_E>0rD6&C#v_Lq3uWD4F2Uc?LY2E3H9J}Sz!mgjrw(TU2UrZE}f@Io7e0{ z=%5JMhe4IhOWEWMDxQx|2^$~>S_o;^=>n>#hE5I?@REa6a+als z2$sCRhh!6|{QA0X<}TiZ_e(p7MYdg?%o z$)EF0_Bp==4d2GB9e3v85FBxkkRbAc7X+jrUwP2KfDvl3|JB$Jee5*NMJK4 z)G4SZFa`r=lSkBWb_Hcf8^}xQ-Io0C%9J zaQu_q?ML6u{&p|* zy5~cGGLeYj`ldLSg89K&CaW6?E=vJo(2lZHbK3&jvH~o$sPBH(-M+S|n>ALvQ%tVX z4p#X6qybrU$ZE@Vf4{&TcPw%85hYfSSV{(>G;h0J85WYdpq2%n>V?S*tRtcE8a`OXaJE64$XsS`v#N2 zQv_X7Zum~EH}XZM#x0d%lB<$J6cL8JVhaW4o60w@S>%dS)}jkO1M>n_54`%*Tpe_2 z4QoSO_dYNIwZORCGr`Um?ymjp11A=LJ~io2AT|&y#sfzBral4DOq84u`NFs3kq))R znB&$J7#%SbBFO`!sV-ElvSD?BZQD9%%|Qw1keQcE*!<#0a(fjI#w*S#K306oGdt^k z9+p}ZMTr==&O(6M#2~MHo@ik9i2~0q|tN>{mEdJ>oja%Myxc%ML zRdbjr8+-|j2dsc()7-!;Ah~luW0;t>j8rTp5~8vY89}w59(-4kAXL>*8Z&6k=Zjn> zu**k4P6WxGiD+AKHP8G^_ldv)EC#lfz8}!py081posYY(o;~UR+KhOlC{Q$DB?auu z_58WyT1Q#GsmR)m5w)6U&FTna0Ug|1byTRemCbJ|!c$I^?FpA>rKj zR=MU&a~$fRR1}N>5dpw!lCujfPq!ePcX1UO3YIjaWl$|i&z)qdI89%o^0-CM%+v8b zfdQBeOfU3Z;m%y0r@nkw`*Y2`aZ8sRzTu&x5CdK^Xd9ZzqQa2D8_;JRXY~YllYN^JU@6yJ~mezNLLtcb~&8Ib1^%k6nH@mQM#s;UyD7fti?(UNOm89~$H7 zn)1kw4m+NV+4fY-V>`Pn6@?FfW;JJ>KZ-sb_pdYhgcWdP)>a6k-t@so;(d>k>`A;!`_S0*A(45#Sg>NjcrXSES?CX12BB?WM;umtyyfg+u#%17oI@L$ zT=UWgpF3(QcsDeKR)E(eI`=uAc_O|q_zLU*y1$h71f^%d>fhK^V*bxK8&`5-c@~gruj0emg;IW$TJJ%d|n(M?0A>;%6yeHlpGqb(@@CW~`{_#6@ zw(kR;)fK=QR$%FkW`De^eg6k;sDI+gM?3e%Gu@DDxH*TfJE$u(HPJjyn@gKdo92#^ z10(w`8|_@*I33Fl&{SwBe!=5cmSY|D0fFXR6Uh)4uXRfpK{#WSn#eA_X_i&m|(heu-;sTl0AfubNK zfe4IEj*>2DR7jlw(#LN&&{)wfXh)%yhJD==FF0nOaohiUOXu24zrT3XVv}9KOn$0+ zIR(hi5W~Rq^mw%Kv!@N8b^4Lfxzp43wNWK9AsuAMBq9_96G@s1sStqr1RM`OPI6t_ ziU#ne63@qe_g?q&+qcEv{qs8-x9*;gcLKYChNb|oi~xf|i~>`I0;_)S^~1-%Yg6&` zqt@C}CMN7*(Xf@ zqovQz)cuoNX8rab?24cG{$tIZ&6q_9;LHQfJou|pfWaAqGEhm=WGMY?fI{EqwhMTm z1vG&MPy<^1)7qNkl+WVY+&bg1=d-J#{jJj98V>}6F1zzbDszI+h~A1zn+yUoSzF=YjSd8kTWHdH<-L2Mj&YG+A8W4 zS5M`zu`9b+e-&Fci1MRjuje5^U(*I`dKabXJ^Zl=cz?cN-WC*%F{J<#rQnJfhXmS? zfV6e3irQ3yI)keVuI6xMi>)|Uue$r4<+_1kzPsYblwVT@{O=mV`SZ9e%*iM6MYA;M z3NamqprDwXL!vyU*hA1g2RddUrP)Zn6ES%J)YZ}YI9lEf6MM0vJ8_j^v{uK(23r-} zgu{*{)GO}EB-Vf4ww)W!xSQmt8}RgdSXs#Nr9x+LW;iV*><*B~VhSN)&pgcRlQI3v zk^c+^hrhay9T?zyW&r26*^qF5~0H?%>kgtUO^)K-kr2k2??PoCnEp z3tkT!`0x!$s%Z?(Sa{}t5b8LWrllqkn zhI6mqLp3wu5DfV2SzJ`?3|5B?_@Fa~DH_c5r4SgfWkkR`aMUE~O$b8F^kryyA3-97 zy_VvHUH#d!>_yjqhwA~I(tvjO&#a`oBa%-w;kz0t2&QvJa~+QzM?^s<8Tq3z6PzHW z{$`9pybsrvYnsq8?mqRIm3qsUA7UgkVQK>m5L~i=by0V)DC`a~#fBn-bj}4)#FZx* z`J+4&By7fL$^*@q)7Yc#WYHxHl64IOzUATVR0c?@ReeNV1^Ga_u`wMXLBSwVgcPPB zt^zoaDJpbmAa9_WfCJ?4M;8MWLZ~}PrtVjWA&oJL2;v&9qqRBf8nqu-)u%T-IEeL( zI+X#zS5|XMu_P;k&Ja@wFnNRIi--xqRzP%efI`Ud-U)to?~ANG{q;=iDS*|(;>QRh zgH<*(uJ!wkYxT_PNKKu>FiB%<#%l6$Gxn6BSc+GCWwoAi#?3qcxTy>|hq`PeSL`tO^0VNZoMZ+jh31$X!c)Sctsu78YMH$2TJ zKeC*qZ<-0QpAD1M?=VVZZpLm)0Vzv=C+CBE2(W-VkO2ai<9f*z3wnk$pX3Bc&LE*+ zf)HE{XzMr-$Qy)(GGGv`Dw;ulJXvm2_p#x;6af9Y~=x^5$1 z{OWz2bLM<5IBz~Z(+f~{2bf)^8LJB=jlIc`vJ?x+87bRyLnNM64`{&WmUCQGkVQc; zK=J`5H6RE83$_O0K>UaY!uW8Vdmh-st#@o^aQ_53r=0oD6L`OV9Qhn1oOIB7DlFMB7+G90w0jpAgY22^@)V%pR4fTqk}xOc|QXK z6}s}mw1$?R{yN_G;l&h2wm`Y;!L0|+pnaPO$yzbK4WMQy=rEUmY%%{?s`BK$FAS>?uRak}}Qfa?5~c0GTuedWz=6AQB`e zNMI1tYHM+w4Y$6)ub!>4Yfpv!`>SYT>5PQw5p?wAS-ox!XRqxe+?m41V9X?tFl9N{ z#2>~0Fgi|WGQ^*MbT+py&U4TAcak5j5sz0JGh#a%?%K(W83m5%FLL670&78{y7su*`?P``$+pr`%L?8#!$qjF{QDkF*akx$1Z_4 zAvC0Hc+PeM#4E@Nv+z@2#OGxKz1<;KU%iAY{$(le`{W6%|MX%m|MF5k@ud^F=)#%I ztxv#n!;k>x2rQC}KtkF_v#*Q(XlB}XGloBD#FEC8#+JsI#!3Q+X9xsBp~(h8#@n6( zkPAY3#OFN$2%sWJC1$#gary}nwzgG2loa6Uap6lF(cVA2%Z|U z_0Mmh<31+k9Ab^s23J1AkX4Hs)bJDgi z09D(Pb6}y#mdzhM;9ekcjH+{}O&St!sPhowqf?xMDF9AU=Y7rG$)fNxlDvRbG|r63 zlwDeKKCSBNyYfPS3>*g%07giv{w#tbnS)L6*t0lNwyB;6D6O>G-*n7bR1NA3g7arV z0%dH%am6<)ESYb(aBZGxGqRv?89bpcIS#fwnuMh;63Z|P;DF5NVxF_bv8d` z`QU|lmMk)e05M=Q6EN8rjts!}Hq_a&&GESp73nG(tj&zl=HOV*;+kxe?FQA0k-EGv zCsx#I%Rx=R3F-?YPRVz{Sj}x8~8A<9AGV0;30?uB1&acq3d z@|$gz;}?cRT@GRgNR~$0V$ejf1nPB&Yf#8Rmocnb0c+n$>txVYIb&^{Gi-b?V00%u z-2i<2mynAfpNCusHf5|stp)}tL5u+heymc47E2vcHo#7{9dLU zNO}Lql%CE6MituYfP;9T=!+c)C^Id5?e?tIOmrpMVd2EoiIA4{NBX@YgQ?` z%Yn(NF4m`j-zeFdtEOx|soZ1+#NU339UniHt%aJNq=}zG7{uqlpIfj$X{^SCz8Qx5 zf1tPtp(}zQ%qn>tL$v}kk5?}EGs}WG4hDc=k~_dSEIAH7`~}0!-v}7kDirdND`e{$ zn?SV&rUTCXkYVi_g&hfsfRNq)p%r_qxSBFvVQb1Zl>rLWCSu|}qq1>&YJm3&mj#Jr z1=j3xoPDOSbOmg_SK0oQFfjybTcbaFjQMM z{h%686^?u|iRaIqnX1cYoZih_|=J0Vb3f}CSo1Oy5rz@P^;EoJ7()a!i%SelTalnf0i z)TDLISilK{fC?ynfCP1b1(zsVbJ&Vwa73R>nSioqWGVwHqcN4ocIwS*XSz3P)j$dG z#Z5v%L|YKXx1t_SAXZ5Hxgg6+1TZgev*V95I7D2p`}p~)d2U_mks-G&WdTM#+d;n=Nr17fBaA(;UB7)!kNf+e!{CZw zA|NLav`uS+S2h!}*#StF3Lr20EAVW3XK91;$40=lBxJ`LgR6oaSM0DOWk^||sRZC) z1}HEN41eTKe!lS-_sB6__7o|#W`W5W2n6w?ote>|=UzqufdY{CWO@J}GEk@i)pipk zs~?h$JmSGqCE)X(WW=&(zk4KQ0EU6_L-}&F1`Ll>nfCR^^qNn1+iRp~3K9vq&|v}t zA&3Z=HWNGzlBEfu^7v+9(T_n`s!eQNGf%EvU9^`6k>GL$2_1w2p)W+V@3I9%TgnN$ zcEA^|fcm)5SrE)5#n3rnyaqr0iSn=42*=D7sAu_}T|3Krb)Ye5)!`--H{!4ZmIt4g zYp>d*TY&-3qK9GtKphwaN*Dal-STjkoUkC5tR)wM7>p52=m*63!W5A0HOTT;1EG{x zrj>;55(IMKExuJK1`tQB&!BB-(1OnLJprwQtAHC*;$cU9U&7YyZo>sX)LVf4o}mtK zXa;1pU=S#-|A~I%=5=mXe_-E?K+b>!20>6!1j$H5GQ;aIXD)pD%7878LKIH^%+x8= z5?J!)^fL}7JhO@iC!6+lpe|@xaiflSsG+@>B5Fi$&8s?0%HoJ**zYGY}A2R&>Fak zOGmy1zbA#aThbUCvF--;`q=F&@xDM8&=1Ug`#k1+{cQQ`Ij=V-=Vpfl(+pvkARPvY zK=O*@fB;_ye5?LgCtDA+=S5Zku>wBVH4(G|T6QF3iXCypyAyV9caMJfHvQ^-JJwyC5gP5h|WKr4zH2b;nVX*1u;yOZj@PxBwYf0KS^ zu)=;n>ic}!^2!>JnP9yU=DS;TM_gmm!lL$Z$L;*V1S31B^V zJr!tG(K0RYG1r>z1CC^mO{e@LSN%e-{KQ@Q5HR53{m7$7^uNV@O_=W0TMX#B<{aL- z=2-c|o*CxYv@Qf)22&EGCCom1@1$uz)xt(-=aSbcpGEdH)-Yd((P9v!aLCGMI zAbAkKmq=v{05}hh`W;-o)!MRa!YAWS2L|Zp@UK>I?0F}c7034Kiq0Ozj2$c+Qjof;z7qe{HQ;!9nE)!3{dp&UX*|iAPT^|Yaz2%&tvYQ>1N)HlFljR z=!-%+a{&=RY^l`}#>+8-`^&QP=>fO>p6$H!<7e1w!Fj+5pzMLYvi<#QL7|7A4IB?F z16Bg7fwO>ffp-BH0Otem2L8b7-TrqM_`f;Ve`dA6#xj4+*}jkPwfx>-=u@NMRRr>x z2ms^T_Eo3zZ9Nkepz2ivlHZm$M+L~WDfF#3AgcnI0mL3MZj&CVAbC~P_T*raMYa$_R*7h_dhhlx zPoC%Zz8~&$e>!K*oVn(jYbHudLlJ-t#703u0VpfU={)?U{(M*%59?=#x63Ffr25Ko z(yzQ1_Kb0o^`?F9&xJ4eJus=mgCAjJDrr|h2;`+fmb!5x*79)}NelECPaV}vN*K-( zRKh5tw2$s$4fP$f6xD%T6C5(rVPtX9+J!oD8)IA^8RRFqz6Zi~7s&HvyUlN0VhRjz zD>3e7#V@kkJCHZ`cL&H_|9wh)2?Qjc)`bS_)-#{z5#c=ApP~Zsl%f%1e zsi0Ph7ha>foV)2?Oa)m6#0H$4dm4A^E+L%iKZB&*yt{zePqa|<&|f|zu=OO!T0ykYR}Vx_=7cb3)~FjSk;fF%lu&&Pky z0fd_qCe58no1I<-V|9jeTK2EwTQCo$KvZe6GLlm#&~>J1e-KN?p4J-<-i}!oX?EZb zLD=Pwi~5wPZ}=~DJJ1gzapI2Bx4h#(b2Fz2uwHsH?kIJ-Q~A8pyHebs1wN`3>IA)U zTPGd6B1hiDZdxKe9`~eDCXeB1r5sO8qDdHD^`@29#`KKw++*~;nP{4sUk7b0pt)54 zxipGiMi%IHDC~CIt9vV(4Hd*M`X7{8p>+Y*4jW+p6UPHu0QRv$km;m-2DS*Fog@s)Qc@k zzxQM>h837ORHjQ3l26q>sxZDEwM!6kU}$?=s>Dl37O$&_<0ezvX<_i3>d@ zy|)DaxOpY!U>x<(nN+A7{UiE#uPLF$B+3*ac5(e)NOD3o z5ZpWA@iXq0>lJi5&g9?|@d|mEsi=7GGykN2OeQe3h=34x7@d)UH;gY?skX;8KB_Zl zZ!-xq#`Ug`OX;a4BHH04H(J&`q1Lh(1?GMa`zSQlS*V9nvhkl{E#LP_B7M}VSq)+m zr`a-G*)9zqcX+bA+IYnYZOf9lb3qJPDG!g~4dPtt-X}smrW9dXwI*!O0YzfJL8}JL7IAV%%BzLGaj)dW z>IP@GO$<b0!@aGFYx$5X{R2Us?Ws7zDYF#+o;Ow7MDOkUBpP|4%k@J1 zM_wjHMtoUxu{fJh1L`Mc#1fh!t$X&91b7RMs;dvG*UAZB?L79YxRh4yPbckmL8r_Z z&`4$H>wL~N4=I*+#xC7|T@E%Xb6{;>CMc}7)n^cAEZlsipfYSnOr%Yiry*;D=izX$ zS(G@T6!Cj+zc)IsJq)~ZFKqg{?h)~TjoXG~c7&Rd(&GcGd)0qf=3l4^P&0ZttpkIp z!7qf9MESLF`1`KU$x)CurK{*Z^luBy7?|=B=!>4Bl=GB@?MnF*=HUg&5st;NUrt9G z992>UfCG_72l?Qsxz8jVt)2oUH0&U_yTI#%tMfF$|36!UO>m#BmJliTq+}1}0L#Fc zCS<$3C@gnQ&)YnbNMTzkI8rL9O;0kA<$TyzsEsbes~LK(tKV8@e}0wk=!XQJ5{YCP zaX+ur=6#FH@rIAQG>7pf@y&tK#BPCfgg{lyCE{GjWIKmoZ)u2>Qo`~4Tfub##(w&Exw z^L4;jvI#j5b3Pg>f$ur z1b&^puhlT`PnV*OHKQ+O|DdqZl!RSzPv}KyFdAECY~wv!et0ITvShFd?=i_f zJPAX0C(+ignGMov{FNISqOy2($eqq79Ak%U1qd#u^#Cr`4{sMV92ot1ID9dRkoWfv zaK&q)(AT|x;5VBiDTHxirw7DaFUWBVNOZ~*T(L#t*QVm%uftHv=N$&*KK8)m!1C`$ zq8dhloV)4~D60EHsN|!SeM&xfUyqht7VqqtsybdoY?&hJLz?kq-}#lQL2i`YSBz-PPSrq|&s z=DgJJkw1q5Rn8oit+0D3*T4z8JTepn6*UOfeTKFzCW}_i6h$GI|53d&}D6| zM)w5ZxY(ohlJ}WKMe`! z`C1wqb6wSNm~eII&~E#dCHsi^R6wFqXaib46KjgG4?PcpVFY~ z>clM(&w6?T-cZmerUr~FVQBKbW+yBInYBt2C-?=i5JStJW@26Mj~VrKv7TntVkD|Y z^Lv^5eWrRcpD?t9Ny=EHLTjL>!Vj^gab39d1y(}=|GghyxA@lhl`R2@Gkt7EFw}2o z=@8-^u0?gdBZ8s%$fLG0zY$R|N>N_nS%t}x80&0CpX^sU@yV_u%jvT{g!hrDcNHe6 zl0j@GHRc;$obETZpNlxXHc)dfw_=v9Z#f$o|MO$gd_bZtU2(!K`1z_uZRcAX0nCtR z4^&sP+(k*?41x$`ZZx6OTiWeKr!p1}els9lIN-r=@I!dhj`*YiY6AR&%&KCwQgwc( z7|t$Mao?HXrQkGWD)mh$By`3RG&$mP6dMi7G)XcXR>|YWQGjqjd>bJCR%3m;srCJpXI=CkrY#lq|ny%Fq7 zq-E8c_I%19%OMcZmt%5`JtU2R`)5C#)YAn`;vKr%DnH?7Ad?ILyz#5y>d{N&(r}#r zoY#HG;6FtV3X0)VPFoy}=zdYTBwiaxpgv`r2gMhETpyz`J_#@6mu~v_uDZygi^Eqv zKjn=!fQzA4zSpcyP9z-L1NO+Iov(LjAm&g6>H;Dc8cm1&+-`qOjV`QV4>#a?&`Xw+ z1NceZovY_H-Ob*9c$ z+D6=ET^omvkqb?v8aLSyqG@c|NZ~j_ojxdz|4o#*LhfC7Z5Jh>U8s4S{iG1mFHV%M z0X73GRH<3~Ald&j2a+Pm>Cy2FwLy!xA*BSljQV}jRBqf!^bC86G6So>uD>E6j_Fx$ zI}_N@{pK2x77WeqfY0Z)R(mT}U||39k*G=7sPtK4+xe)=9E=ztnO@&a+fRPRF{QU z9DEv%#kD9)Kqj%OpX>}+u!hePohOR&H>0daob1$idX!vMr9qGS#t;cL!gBR+4a}vq zCr4|g&CvsSE(!GAMnDqUHpSe5A*{G~2TOtU#D3+gc`i|H=Md{tCDFP|41LpuzS5#hbQ#5-#$s3$M>r#I0Joh*pB2|+hNImQL5Z?Qvi=bFWh^qg_m zx9f%MoA^H+Sa3%5Ps)6`*Gm$My`AV72ATvs{rnmAqv)H}wlCtNt@5kK@F30=^wBim z>kZXlVID-@eWr7crk0Re?xTtTjLW^reIN5%F&@0e6FZ&dyVumim1&FEf7O0Yc(<>Q z?9-~p==M1$MFBzv(lCd)Sf#Xgc*B#wT%^0)&fafBlosacgvvX93blx7t?a`WX4>j`^&wpp zRXAQ%JNo@wgUC03tk1taSe!*0x@%`5`Fd5iQ%T0>=Ti)OZ}6rWHb(%AsHkO_#a@yr zGKg&|>)c_=NKEcn-6Y{K`)MHqW-TXo`h~4I-yridb|A;(aInE7tRu4m`a2bU^9_qf z*?>(@*Qs3d$#h}tLCsjyxVB$&F7*(pCtD-j!Q0F=>a5v*bH;h#+m+__!Tur;W|Rz2 zg(`mr)#Z5kS%nu}re>3}jQ;|^D;aolAQk9&DsBnk?T>R`51Ad_iv1)e^y6G46v%q9 zkYDS%HCTqpzTo!I)Mp}#V9G)>UHcM7G#8=Ax#kfsSOB=)K9ZBF0xq%oq>Y$ZLd==W zD91k;6W`5jR#Kz^pkNK}B9&2(uEX88>j*{a$o!5D!llW){f9Y5aFL&dVvv`BJo0Sb z?Ds+SyoIMP;G@$(SAcHv_LLIlLH(zr-oS~Ad)u6V8V_G+6TR`043lCnsnQds{508o7Fod3}U*m)m4FiIDC(`bbf$fCM%V;xXm>YnBMg?u{j~Dbb_2k2}(Vdin!r zQnBBRZ0{Ja$FuULXQx2eW)=b@2pemlELG$ZE_#&HiIZM7sVyG)qEU_m&8dNhM_l33 zm)$JRU3e9Mj5|i1=NG_pYC8!A?$NDUm=!$&^<0tKHgl>fa$pH>)vV^OtW^@zO{nVM zO0>0KEtz`+#GqS7pof5Uu#L1G<>oA7^yXZ~&=rWL0?z5Oc0k{ZoL7ET4Vsf8WY(K7 z^8cB7c$%ohn7%7BOM{Rr$8lhtiR%P$`e2U-_+`NMqtbfdh!s53gZWoeEEFI(`_9^Y2Ag&MIe)0{TZ$p+wF}+DndOv?C4b z!62r;BeIG@+8=@hSrRJ#B6vB0pCvPfTKg2f5iV>igsJ{Mv%7!#!4H9U{k8h#tO5H? z-eLciX&mj+q3z)gXeXrMY$tjrYld8K!h7_eUhJ>RYZ*2*`}J(gZwomU$k!)4%g;(> zS-|5vQTq$zY;=fgdONx{ahx%7Dm!qeweoH~^!mEzU=qh(Y*X0O>Oq?3eaBuzo4i5* z_x&WN0tLvMeO(>s5h@BVX&bVs#%!BjJFs8nQYEVwQ$PqNb3&tUW@{9(b<@5%gg7Lby=`morpc8)H=u6XRp#isQKR-qU#PYo;gMsQvd( zJ#zoWb3gm=n|{!fVB>?2KJe93M!n zqP?|^jq4lO+T22?8z4&5zf0h6{`5;1{tAHpK@wnsIQq=nU-!jhlZ`tjCn*<t0$dOr8Vph?#F0c8MMezY@4_bmwn>oIW*eLBu8v~)m!J5r`QN||ECM&LIE44r zE9?J!vTAioX?VK|yH?x_cp3&w_J}ZmqJW_!nAQ-`;7r5j9FA?FN283lfmD^=5+DZzCL&6?oMQ7TUb+i|7kSlwp5w$PlM@T*nNX^hvWN~Ka+*fxY^<-XP$I@ORe zflMUT3ULx6iedyo*NEWQ0!*tT?|pds*-w6B;cYi%3jFR*oxM+#>`&Xa^TU-|6_s+C zg5ux|u!I1&1X%XR@~(^%Oi;}r1l5eg7Cf`LSpggh((`B(Yc;r@hjOU|k>!Ds3t@3+ z!1UFrg4UV!)W=ZG?C01fc*afO1i%?L*Lx*o;Ja;XL3e_ac($=Kxd3(+v}=Re0-6g*j(&f- z*L$)YE7=g5YOP?^D{#l_DA&hPCCb$rX0FVB@B?oY{Li0z`NpG%(ExT)lMViF0pts~`FDZh zO2e*uXo#a`6{$5ESe%{xwR1@_?nkOayUh2MYBlrDBudcP-p2NJ8^7|P_~NIZUwZWW z5uhZ)9s<9MpyR^f4BB@fGv#e77X<*z+>qO~aD@4ZR5OF%94XI)}AyBSVaO~uX$3fR%0x1BcG?F+$mjt-Jx`w4|*B*J# zgZj&#d4Bn=uOxuAytwjbX(~S;gMj(CFWI0*xmy6}At8pvFz-|xu*|EWDsW)9=V-n1ntH`M;knjPo1;!b z)PxYO;38X=T`qV@fV*HyF))j>d?j!!a|R%6Mtv!ljHBLcpgLAZndYyXWGjISY5*=6 z)c!&DT`?d6voc3$uquhFD~N3y+7e)nlP{;xNTUShGKs`AqAO84fereNvmKH4ia-E@ zYA(1D!r~kU3ouNY@qajIrJX4GdJy<;i;~1-=2WJ+W#hPLB>>Kdz02P4=nvl$`g`rB z2Ipe258;fPO_{JP20$FvH^G!hzVM%yKGa%SO*`xBh=VRe{B?31xgKF(*8YR4M2*-JJ@WY9vW6MohKTegE&B zdk4Nn5rc{8fDC$w0vH$APWg4B>;aYyfakFl!J8WRULm9!5}_!=0cs79ppbGnYOQnF zPMvFdm;xk36onDOFhm^1`FVdQ84^1+G}U{9N%x8{>;g_e?YKo3*K9}tbF`K_?@ABd z0h&m$Oj*{F}nW%|`>V;5Y0vUwHX>pWKzrYXBi{$FQr@=!=gz_K0`SSaJ zvr+%oMx$;{h?Z@EftxtZky!{Zl`mIxksq;B2_40`jWTpzr*Rf+1YPVYG_@19gPm`T z6tUTF^r-H%JLXe+n}qkn@H_y0*a9R(@7@y=Ct?VMQX_~ZtS|-`gOf@Vydc0b0g82- z@qUiWY^?GnR3#}A86oz4$S5+wLj!KDWVY-|Eb4Y;K{|+C+;+WOKVs(C83b1?_f57u#E%>`RVev$bWoe*HSuS5~u+8(4U0 z7FRD_!pwIr;_`(Tu{ghg<%LD8TwB7*;xd*O^LlAhUs=>IEu5ER(L)p;yjnZwL? zFXPhr3%KyDZ|i@1?py!z^>3VCzcRak*|~Yl&CFqr+FYF_sGfUihPZ;OGcRL#Z9~7b z+J2&NqZ~TA9ugD8)MNKf{ob*O`uoPbvQ??NC_7m`5D>-3)7@|FN+C%lWSk%fBlLnE zHao$!g^lgcf91Oy|0Ii%JUiu`xqZU>Nzbuw^Bk)#EMaSgFpOj?h?3dm?dan9<*nyK zi46ej#C1a53IS@w6fsVePfu2+kB_-`mR)hwbL}G~OB}ZZx1lxH99l`G!$hrj!eo9c zOlB@DcE96G830HN^qxZ(Hw+&hRnayiwu<1px5@zy(Igr~g|G?!3fp&Gpb8`r7o?dB^|foO^Gr-PP6I)9zV%m@!_)1{{Gg2q{EFkO2n-dB73tA{;4;1d$*@k&%!^ z@)8jqP!d5NBA!5zvIq;57zu=eln6y2;=zu`X1t7N>FK4at8Ud@&&F5h9;M{c^k^P3 zg)P;QetquMt$S4e|Mz`osm7u$Sg>Hhf&~i}ELgB$!LOM|KK%Ck9{K&>`n%7+_l+-p z;rAYR?$1B+-Y#x&V|WF$FMaYoAJ*yUuNt*ztFgR{px#89<;c?%tRJ-={qA>D+@coX z*VG;bxctaF{)9{Qmn)&|tlf17me;!AQ61U>Ns?iIZx3-8{|vxAxJ8X)&h0Y~K3MzW zhkpCB_Mx|BN0ys^bIuyEl&Cjn$1KSfZ3~v>K?_Ye1t8V>Pm@fQm{aQ3x(Lvfj@9 z0RH>cY5@QI```S|Mrr?|73ObUKXKFvU!mx>mRhLS>Zp-W!2y{6PSGEDG4$JFSRyRytT+Tg5W<&2}5jW`sys1hxc|5;`}~6Y)if zG)*zuKS1x|B@Fw$bAS82pFj1gSp^<`>&b7_YvCVuDZ1V6GDtXD?Iv2y7Kv_9#A}FZ z0RqkeYrw1pjD{=$Ga?n;Yv` zTkE1t!W)e$#cN@NP%s40V1{L?;rGsqiag)nk-9Z07(OtO38ky3^PhI-l$v7#RiNm!E9d}8r4{CI3LxTt^R1R z-%tC4z1C{?>973jPks)--ZBFoe&EDcR@=2dJAHZ!TeqLa`mqz}uB{-Vv=5^IOa$Pe z0OK4C7HlG3a9CrV2}W6{JclkyWLf4mK*?x?G|f?zC81DC1*HwFb#sM#*V;)B*Q}*` zSdckTTEkdCDuX1;Xsj`$ET7Q1{KVIO_~g0&R|Ed|H&1_ct<(D4Ywx%nr|!Iq*74(L ztu7&?dbc452YZ>#tilJxcZNEnVWoyDBxGJdPRfFWOC_PTfl{UtI5BNHo-+afjGdU{ zjWE`kP?QqmG{ayRV}Exaqy8TL`mvv~o1OzcddKQ=Yjfp3TgsN^OmoO9!=G$F`%k_m zzwkSEe|=+PVapOIrK@SJs=C)kJ0q+My*JKVYAj&=Gh-(2XcR?>G$+Pmq{$d6&j6rKZR^2HPf`c=Hv%^ID`zhR~ z1eAfvC6S{f@kL%B%ZNNfDK(^2D3v#0Iu}&Y2VsmiM?-51r4)@Lkrf5v;TYq1V0W+W zf8A?7JOje8_Q|#G5{}SPwy}8|y6fv`kU&w3z)&q;h6aUHZd1dT8qgtk8aS8}KO_9c z;1Tfe>~2v?H-I@cxGqt%+4^s2;jz(AQ$`{T}t`2ZWqhl4wjZ%sI4r!nuPV~ zT0}5O3LZw_k$?ppoEnX=qN-eHK8C<%2#1DcKSbJ5k%T{m+CbWHrWpS}3gsgS8SkDcvj zFdju@#F!{=WIzxF;byH~M-+w#!T>x7T%j=^U1O_AvoHdz^)+~S)cLFtvj$i{sMb(Q zyZX=44C7G@m5%NOkPy-fu{R;yOnYdLA_^iW^bHLNIIn~Y4&i2J5UdjG#TZx!&H!Vk zfjl(o-UyGqUhI^HvBu5bN-BRM%#n^$37}8pUW9cVZon*N3hd1sh6EP^4#ok_2cdAxAHe0j_?@+eEUglVOrl%(4NS(+lwMBU%dex5NvTfzWJRpPCMpdWphj zZww<8z&Nhg*o+yl{zYX0DV=a)T2jWq5}Ht|TJv)yU;4o>Uizia70mBPQRZ_MgzIK@ z?~J*W_0jW!r@+H!#Y+R^xlecFv%jSWJ zH9#5zS(Z>zRuPg4Rx`kO@o5IDq(5~TAeYsdpA){Du75uIT2*E;UiB8R(=2e2SF$o7 zO%jab5ynaWgBXwiFjoW8T<)YvI!Qsd9!sg9lgu4dY?8t#1L;p%WvL;_5IIP|q=EIx zVH9AM1quyFRb>X}u)dsq-MijM30W2>Xq+UDG3@PQcenS%kDuHA)=c#0vI-!{^C#js zJ{!|gw6wJ3e$p~ZLIeUZ)}^eL5=s`}B6LyZg@DL%h$sZN0EY!5oWmTjmJ=Gx9a;UR zM^mp{>bp~4lB6#3gZ=>jb8+{p7p@L_0Q9^Ku!B^7zt zRuZx(kjF!SF}HsYq8g%h3qcS;gaHH>2zV8BzuosKKf!|0wNh2>m(GA3X(%zV#Ppe;O)A85|7*JXCC^JYP)#)CtUE9O?7cTW)yuAM(#dvt< zh(wG@WR@guCQm0MDU#Utbf1v9qw&Oy%76h0@AVF_x7)+^)m`+5qsJdRcjX@d#PcWt zb{zxOi6iv@Yxf;px&LUVc5ky5-d?W-YYeC>sbyBG0j2EKi@o$mPwu8q!@v9BJ!>C0 zx!U>Q%5w8~quD^SUPBOt2u0v015>4$HqhGd_{xHeDKJbjxzith^E*%Neht7b(If0! z4e+$R2`faM5Hsf+%$&6J^cezzw}PPghU4wmt<=NUF4e=6^^hOo0cXsBf&MCOWUlmf zTFAYu&^z04apC-aa>=Lt0kP*Z0CP9Mi|u$CL^xvtroy2-#)}V$$Y1lregZh;3@?d< z7!ZA;#2lJ9KPHSXG~=Nv(lqxuKhjAnepA2evH^tU`~zQ#B<@8M$Ff)ftnO|G5V8Ma~3l=O`uwcOg{0c`+ VV|nRLE*Jm+002ovPDHLkV1m6C<*fh! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_rage.png b/app/src/main/res/drawable-xhdpi/emoji_rage.png new file mode 100644 index 0000000000000000000000000000000000000000..c65ddff552a9d58e30e2463ccce112c09ed3ad89 GIT binary patch literal 5410 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 M07*qoM6N<$g6uXvumAu6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_relaxed.png b/app/src/main/res/drawable-xhdpi/emoji_relaxed.png new file mode 100644 index 0000000000000000000000000000000000000000..bbab82d3bb5a809afa49e5781e28aae2ff435eb2 GIT binary patch literal 5455 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 N002ovPDHLkV1gva9^?Q3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_scream.png b/app/src/main/res/drawable-xhdpi/emoji_scream.png new file mode 100644 index 0000000000000000000000000000000000000000..9e93c885dbadcd5911704300344360d52dc6acfd GIT binary patch literal 6482 zcmYjWRX`luvK=77f)gxgAh_G$?!h&;L-gk;_5Et!>nNMZEklPrI1pAGiNl%3nh+*QU>!ef&PJ7% zp7uGdbl6mGZbZ}`37M5Jw@w1=SA&cy&m|AH_U!KQ+v9Hi;idaGiDeCra=eTctn<-& z*WK@lhpg)?yUt0-%eBuh1K5icz!N3F=fFqfrXfZVDbs!5BOyV^)57#>8=+sd>t62b z)t4_J#h%YN6djA~ovH*$>csQU^{B#6b1~yF3SGa~FXlWJ+iRVgf)kvw85Z>JZk2W@ zo5j;{8NxYpnpqb3Ux*AQbV@DUOW5eFk7~ZTURj(aRSCraBHJlR(me-Jr^^hqPd`l< z*ikcgP%neF+%A>(#VMldF{^UIg-;I=7ZkRfk*gCT@9$K{_>#ivDvnCOvAA6dC~OlG z=BswsXt$Z|D6#?aX3yF_66O3^F&uXjLgdtKVOi%NjOLiyN)HR2iyBN-g>0Ur6*z$X z&2?RFX;z>9P_4S#7GSRV*iX}3E0{^vR~)6b&0*RJ4kB~vb||%(i8cK(g;f%|3~<6y zJ<}v9<-0?uEq-9Ugb*OkV|ILJD3&7%xYJz@Y`3!-@M@;M+>Kc@zLc_ZSov*rvE@Q# zzh>5T@Mqy}A=QPhpsu{2ZRVri4DFioax5b>@$_XDFhI3-iT<#(JE;@3sH?|rm2TOn zxrRTMF(0U?Z(x`C(B2(wvZbXQX^TcdgpzjxA4?CV2wyLY94U`J`Wyn1DFI1YiZz+C zleV7(Efw+!-43Gn1X`OkCY-x+E8RuENOLrQI!Z^>U`Mu4s2n^cEjN*cI2>lOSQ(4_ z+||XTQTc3!zH3s*(YHbOgSVWXc!n}-hLNz2G9zqH>r&XUw>v^Y&LR;dbAZ6*2b?YhR` z{JO|dNV}yhFzU4U5+fpY;1>d_@M(*VWZti_5)=9Tjvpe7u@!@~CRPqR?ba85vL>Mt zKe;zcIipP0F{kUd9BrsN_MR`=kl*LXG}{a%+l(~f50F#MO=z0qzhJ=Nv+rdgwR=A) zVxi8iD{ssNitC|LWybfQzDeVv7y#X>t~wC$-e}Wi(tS%7-K{jS#g{A z;e*|0;5IoFUcTphFBhQ}EWN}x5|wV>_uz1*dLkn<`oCMG#jY8{b&BLZ8&0Bd|C?;p zCNLQ;YnXhb!cHWDf)yaWWaDP|>s1Behl~%ga**j%l%0{cteL#al3kj?`^hnHHbWB? z>riGH{}VWMU_lrn?f5GM?5P6FVm9Ir%}Y-+u>5KxE`T~mC7Q~`9$tnmO7q?m1Fo11 z1$+O~s5R(|KN)=OSOx*R4XPDcUAWeX9Ty;3hwqdyN`5>H5{!RjC7Q|&41}r{6szl2 zn`-ZHR=!BZmg~i!7^gYAzbT1hl##4`eQj_>snZBRHP&@0R{NOj0tAXH8Q_U~G1~9_ z#1It;fpD&-EFnu6jJ*FdPN2pVGfkHPqP-1P zA2Uutx1$AMQ!#{scP=M^oc8u*s-}!+z@7ui41k*`Qm)~ED1niJVludwb~fZjiEE^Y zq3aE^slydf_+Es+X^17^j@Yg~rQ6N!Brpu}$JDjDJBh%!g92QGJOcJ_%08{(RCV z6!z*XXeq7UBIKG>8|!cSjQCc!qs5$u#OuIm>2bz!PEt0N)t216In&Rfzg8v$lD*u`MYD5E$-8tEhks>4qFm< zJO1yO1}IZ>!+%tD!Lt`DLh2R0@DP@p)4WF-w+X{XK(()Z@t>T2{(nHJ1@{SBXQd7^ zk^YSEbf1L@4G}%Jt3X}3MT$@^WRvU!YKRX_P~_qwCtqgZ$WBc^^65If&FZ=!AIlaX zWH%q{X|SA)l*91bINFyKr2T(v`N;SOgUe}Kv-!(>czCP_q=1iA)}N zo0&oxB5rCTN^EL{fw?kOhjq7oCwn4cmoN0>ez5*Fhg(>sy0;2uY8uXJUwEVE>Him2 zR1nuv!&LA;`;506MD2NcxTanJ_tzh_rUT2~GpcG~){^P0Gm+(-L4t3s9nM;>9TuP# zggvz;gZZtk1oFBuTpS#^*?gRgk~ebaKZi<-&2NZoq(Y;$Coq&q_{oz4CvW}h!t|w-A@bv`UJQ>xw60qH1f269k^> z0NK+UQ~6w~EKz$Anc}3$u)@gRBNI#ul#nqgCg6iP-LDU(hYEiyPY?$uocpPAYmayq z|Cc))D)j%>FK&S5z$YMUaOzuQ+;${buYV&VB8=1@8RJsy*$))OOZOJ4%}v-t4#C+? z&)iOXa@bytlJfFVes#8$aMAjpLoF73agGlX9JuVW8XSr2`5L_1Py59vqkm~-P+3-W zd5Znt%9VSCN?^rnpx3&+lIbGm0>rTtFGxWjF&n+Z$|eDCp2-S-qZep4Exi(fg0l{JM=3KUb49`*Hi)g+W66h*4@8yP91Bk*HEkK8sIdoWi!N zKe+XHK9zCv5Y;`pl&P^T_V$X{K-;iqse)PQ;`X#fVTiT*JYRLuEC2H8E=qp~31!Me z8qxa%@?l-Hi>@+}lh8=Sq`-U+%!s6EfixfR<53yGi$p|_;n9rW@)t7f#u>S5^oH~I z%{#ZK<y0*Rlcl@8;W8hB#M)qo@Nd0I>HO*s}VD~7vKH9b1~jM z;?(5c=nGsH;{XOqhaM7ab7PnrMA;kROeZF>{s$tj*eq|7tW#~IEN*ip!T!*S@94Q# z1Evr7Xz(*(7xyt*fYf!IfhBRgNqhBd87-v}q|HcrHDms*vJt_4ON&V#dc!v>b^Y*! zSwkn+xXZ`;Yv*vc8&Zgba8czJKvUdGk77xgww0X)gI3f!e!8#k4Y*8wVHmO4vR_Di zm8Y*A|3fxXziqe(gK^uY4IZZ{N`9Z*FEX#1Q7z3ew1@AjmKVb3J)`<%i0z3YxtTy@ z(J_CF{RKy+AXy6wma10N$qLQ!QWvr;1wwp3#Jcu&1VXNF;2lN5s9A_@uY5%CW}!AF zifK#PNUqw!;EvFmAG7CoxU)hTWT{?cyIHk^hf} zUU3YGKdjR-9VIUSe;YqK z9D1H+|JKNf zjt1>MGczrW0&T9}z^3=pv%&3Vur=4mY*#GX(-@=kuEC|&XmUP>=?VU+6|@Vx_&NDFrMm=Th>-5pT?PR}T@@=5-RM>MZ(YFt0>R>b}sOb$BCuYi+}Mr)Vwp)1J_= zj6@ST-M5d2LC+EYK}=#Sw|=KZ(QXge7-sNDY2qrBHz7LOg3(k(*!PaPkh|K62>G5| zZ>IHP?)$2v`j1-5j5@~Pn{2cSs)VI3G06GzB1u2Pcj}Z7&)2qHxxI62;fvfkx7X2- z$M_s^qJ$aqe8Qr^blg|kFUFm)|1C;S%=KY7;Qkx|E!WnAbXAP@{T+#9Sp4~cM3==> z<}6e<=q*Q(Bih;7u<;6nh$?!U6^FQL3rUY-o0X+Y+|^*vVw``9NY&bC?VT9Eg9ZdA za!EHu+M>$^d)@_*Pzy?cGkFO;_B7Vy1lBWVNJnmwUne5?Bn2$hbk zWp(cey0&05bKAZe=zspY)-OoNjM?y$&j1G=t^=3HOX6Xg`@=ju{H7uRKed2T8i^g? zP&E&W%caPFqJ~RcRK4w)S|U(csl|W!?A>oKNK7g)vAyq@Ayoa*Vg{00__lTw;lYs{ zX3EM^nnEdi&_-j*A8!jnVMH<2bIJ&ZX+%d&5L#ah{VLVLzsW;K#%@pH2H>RATqXq2pm0QrVP8fQS$g%^GX_x(V1i-{it4iiCg6A?Lmix zMojN3y%{~DUCgJv5f3CdrAq4?%`PUso@x=I{^UO`zN)U&E6xS2L3TAL z2}`h!*{}KaNEaMR30Jgx)YOHO=(5I8JRx*McdoaR(OG9fWkH0=ZV3L$Fc!Laz4LRG z-DcvLWTD!G^Eo(z)`sI)yEP@ij;0^h2%-F)#$-x4(~*Anx`b6qNb9WEN}Qw+J-85l zn+|b|CsgYs>n3lz!y`WjG7Pr?10H?7AklN7L09$Ky1mgBR)*_58<^$M_D%^}nJNU3(W zKc%8$#A2G1q|sTA>o$PT>A*IGn(}}VHlEXmTUnf6jNa)g4LE^@Swh?jTcx9Bf(zBk zvRd6C)UjrPzWis%fd*3d6KJ2G>ZFLOkMaVJ7u_NMcER50+KrIs00P!mwW8}$Ss~|D z)QknNZMg0fTbkoMxJ5M+NVUt^+M<8 zhW&*pu_fbUebjqw*!5A+$$jhwKCO53vICDYJTtyWO_Jdrnm6wog#$q(0}Q`DKl0h# zUb}uw65AJ^I41hZU5?(E-Oo{P17}_~zr-d|^^^P!Z<4BV-eCXwTGF>%4l4EdvJan1 z^AI1?F49?r>!XOw9=N{*A;B-Wnm)7@s{VB}{tmFY0EcxJnSa4>}g&aod z=zUA#x6!X;430!oCqGlsM$UR}-Z@@`u@Un;Qt^;o&hj_eT|IHc!BJLGKpZm-yNT&s zy)kSywuB`>)yXN#c^x6NjNU!mm1_QmM!(I`QFSRk9ee3CwHeVE;-kD94X>1Y9YR~T zJr7Uc2zP*WkwP5RPH-8;4qG3m4qrg>&-2L3#iUYDx&j``Q#-TV85{)Njo}Eqw^NhJ zTlwRW(&bem>iNcMlf;B2LQEmdZGFF{>0vI|aCz@sC0!CNNkeINe}vRF87Ut}jDIvq z9vRR*e3@8zj#3KS84*_QcC#NlC-r1e^WS`snghaNl53iDCfAY7(BAiMD{~(7@HjDM z-er^Vy6fJcxer~r^)(B9YO>VEpC!-*h;3$w&adB_p`jO4xhn!v zHi$%$*`-&E@J>T?PYOVVx^LV*Jo)kUaeFiwX!u>Ka^_1Gi`p7Jpp3q<y;v-cyy^*$`A7Ey2hNPax7=h$PlABv6LewRr%STZ z!%&~w?>s}b&Jk-*jTS;#TMXNEoSjT~wOwoz_~%(_%pnmuyB;RIY?ar~0`ub9|3Qo1P#RXg_+ z9#t=6k&hQrCs^H@HfuW#&Zk==7XUaBgwLI0@Mw-zup$To-(h0T`Qb-)_)^v+{>~gu zW62$DLA8~A9wOYpx2oGh19IY<9juljLR|Z} z75Bx&%IFu(l+8~yq5bi@1G*^7-_JdJ330$5E+pj*jWj;DV=boT4kCkWo(U{Jb zTF;BkA7(da{MxT$@oPTSrJRez+8)cCe4%VZHgSyE(FH?6Nw|W>alJOny?}=SI`i7@ zQvm2!?yVtYrMYntyv|g`k;3a5QR@S;T!AZlpizA9nUH)lcj3Y4zh za(5kXP?=o(vb93$wc37qR+7d14C<^mUZb*T7r%26IQ3NiX8|QDT$Fk___oCwCQQRIPa_xq7Qw3Ikw<%zMR`G$2F{Tjj*#6 zTkzylQJ^bZ@wyBe(nhFA^t%tK0OV9=+ zxuk^`(od=+v8^TXJ}0^G944Oa5>aGBH3rxlTDOxJlH;~y*!Y>K>ME%UG{K&A-b~fE zAU}k6EBfmZlieNYE>&y0>&@=%*9RlE6RO=%W&Oq@b&JzfqH;m?MxT*T2 zBu%#^5$hM0eKd5Zy1P^hfuy=1qYb*xuQqkvN1e&eql$;|rmN*7zD$FP^~0x7IRoqr ze6V(z0Y3o@joOS#{GNsHcsu%L8RPGZ9@+NGC}+NlR%gE2)VsU0rI?WR$C}nU1m;c! z7K9KUuTt`PLzFHw&@j=o@~cC&kWPGG(#ThH-^_QpJMLls!t{E4@vQ3WeV3WP4d&)9 WO3QUv#$NxG0AwT-#H&ON{r?B=uiYL1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_sleeping.png b/app/src/main/res/drawable-xhdpi/emoji_sleeping.png new file mode 100644 index 0000000000000000000000000000000000000000..093b852365a0fca84541f74f6a6149c5d8cba883 GIT binary patch literal 5409 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 LNkvXXu0mjf>3uae literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_sleepy.png b/app/src/main/res/drawable-xhdpi/emoji_sleepy.png new file mode 100644 index 0000000000000000000000000000000000000000..df4f55efd9a45c4b5327b6531129ebe34908bad6 GIT binary patch literal 5837 zcmV;;7BcCHP)*MG}(UdwTo3OW*GE&AolQs!Ok)(lQGyIdbe-_}M1@Jh|cC(1N<{FlJ${83=6Je#m zB4ec+r3ipfaj}jo98_gHj#nb#r919m=S`}P<7mgF2ujm-UCRY3Z1OD|jW4HK-xN*G zU~+;O0V^C~v7%0KVapwH!&O{EUv0!ZEXo7RZs%!j+OM<#&ux-oUpF5!mQUyM<~_Dx zj44`7&;nP)IK(Pq1!R^0s%YGDL7l;cf~z}RB_^&q7uMVpF6LW@$GQ8w2ek4lRRjL< zQt@{GhFrg}U!E#<+W%Wx6kHrE2~4oqBj{Ih{g&LK1>{$rO>p`Z1n2z*`FGt&Vf}9> z-u#?=*W8yJ(>%6yPI7M2N3*Y1pRK-I*Jxdgp<2ea@zq`VTz_kvdhu^<3S+XNKQ7@`VV8%3wL;|@KCJNN?8_+DHsLhF`j zGA5dcs7=R@)*Ae$)pzRC?}z}>w4IyzLcS9nt0E{M2B9&RU)E_As%lKjx}a#6}@TsoqSE3cAN#s zz@Pmno&5#=BHv-J@fYOqx-7O3;|;9FuDl8}@GkK3pdo0Ch~fXoR9%`aIf!bwp`Q?M zzlUgO8*$YVO~f=tLTXd-9m7?AYu$I4)TSK=0W$dKH*rF5FLxHZyi5FrIlKvH} zS74T2g#_K;Y6#3ObRhF3pS`UpfXSovaop~v2s<7knhuGkl*XZu%0%>!qoZs-_W=(4 zA|iOdDExw6?#uW2=Lh`(wgbGL9=x?zV-{Wv+CZWS5Sb6y{7pdsqB>ZMUAY} zF2sysOdh=YC5Fa*%^0r~k$H>Y%@_U$SJ2ahzbk=X)PfiMo<6+OK7;hEMdArSX5ZUy zk7X!`0#q;q7vTFH$SdCjdziom0Ov2DaaS|ekBG?Fd_?f(0}q%}7V&5K9&bZ15MVn^ z6TTa7?X{TBrO+4yF&R9^OMq-!;wsX-ws-2a@Y<~);{+}MryEYu=+A)bM8y3(5xn`p zZ@Y#s6gur@e;|j~ZSgvq?eY&HmjzXlHw_Owe zboCv4EfZm$MQ}F!lON^0r9JY){E~br*B{_@f;V^(X36D11R@A?!5@DS6hIa5aQh!2 z+WR=sB!t6tYWr(5yT|l>>%YTuz)?l;js<`1Lh?&G_~W3@FZn$_UfE!K7GV~g18xRT zB&B~R1Q4{%k0deK>7C#XqLGi*;?j~R{NpCW2X8+_Ez5-Y)c^s^moDeyg|gk?HQ{a9 z#}o{v?{u&R;z}D{gm=xn7M#2dbJdHnI)@8otsfuAQpmioVU z0iC5lzL>ywG(9hv@&cr|2;yl(6jb1y< zCPYMA_VY5p0QTyYTorWMHD0HODKtGWNO=i}BCaymU;drX1o4s>P33SBb1U|sGg@=? z%IK=50Jj1P#B&Rf6+XGJm!KmrpYb{^rsQGs1_=Tr--Wm;;6TVsvgbdl949;WwG@N~ zv|v)#bOX-uw#+AePU_9xkQaGJe4hIswCUA+0qUMiDS!div9?|GGHUpUB( z*Pp`D6F_RM*fn8jv9y?OI!~8h_Xw}0taA!r2Rk^!3rrzd$MXcNAbHEy*GBoHzaA!> zsnTB*`WAI??&WK^;JqtYGLVP*49pC}$WEx&KqJsNa}+d#20co42#85roB8-S9n~S$ zc6YFLLnj;Gzn=X=HJ*NK2hTt9I{v{a_U{?vzy8k``QmT(bILLcVVp3uSXxYj9qtTZ zTgu9u8PHuYr`kXeUl41sIm7Ts%%9#eL~WwZK!3oyKe&?1Hmzns$-(emczqJ$IuN%Z z1?HX{$UJTbZHot>4It}_5STWA1skxWvy+c}WC<5<9OTglwz1`V+Zh_JHe)@+@BffC)TZA)ZO#TP;n$>-!Vz-c#eE_xA9y8&sQ+uzJim z-(FLWVFndNhN={%LT8Pk^4Z#kps`XOnSg^11u%lB zf)B)i)A<8?sc7+0XcFOpNarVr0!G>tk)k3{jbO(pWzXPZMG*uL11+{AQwPkfieyAU z(QK&c6c@%gRnkgM965IFt`pWH2mqsiJGy%cc{nr_GBgs-eZ0}uzT_D4fOm{O)q%A8 z48w?>d+Nk-d!M4HDz2W64po6RlL%x2B#t*L!A$I^5re7&jZqZ@3z`aUU?x<)_!lGe zcL~>hxRY~E&5!%tMX_5LY7{Js*ub$usPlq0Mt+o#?; z@uC6?7FdwEC$fzh<@x7BZhdf);R)rhzuZq(K@w&(Jx$}bI|nf&Y+$k;=a>sbj!AV6 zjiaUuXex#Pq_;$$<@6@>Q;*N^C%24p;t3w7tnfK`v8B61@I0v0l;JVQjy*Bkb~YFp zjqw!DJl6-QgPBDnlI;8bqsl$so8+;d%&>a7&x(^R{XK?aUWg(XpH%j|6|=S3=e`3G zlar1MFD_B;Q`~ffBH1J<0dJ%%juzXo)&mrv9x;+A=3-P0>I{NQ_ku&QQG?B&EO6+} z5HEDpCS#u167i!LT=s{@69{}L=Y_t&u=dh`_3IVJ>R>t2LYn(LF5g(-wJmiDqP+H6 zofm%wk!F1wAm>3T5C)1uZ@16ps|(numX;RDh7(Rv7pE*PVavkH1VEc6A__1O%AUmy zMPqF%s1Z0p4F~{ATy?Bm=<%t~7x~-&Rl(F@U?3|SEf)b}5*?YEQr4bt`1I!tUabmt zj-u(nt2OxajUL~MEc<@uII+iIEI60-nK)3bfD7QGpDVI*pn)5T(hH_hDxhr!jTCKY z!Ujr;taD{Rv}e-oSQA=YtT^W|Y7jJg^y1ng4A(h-m8I|IfFIn|;J~X66N6{l@Uep^ z2HOD_f6TD)N=tFN4v~Ti@^wjrXr-8Cj73=5<-g&h>tcMc0lyR0d`)t%GGGNyv7D~4iLluq96{?#N&f8 z%lm}S{s+VMJ%(McDx+^HjSz~RuxJ^aa;DPX>tLt>Az+!yviz<=F^;(M2)scciJNAa+>dJJL9WAzF37|lIra|M-r2M3>B|vg$>dYGL zN;V2s1x6JaS1^E8fDGD7x~&}5WR8uR!VFn)iPOKV3Mhz4d1a2iVju!-c~xmK%`_6C z`kc2wS_m6J^^v{q@zsOoQ(jF?9D>O!s35ZhK*+w66dnZuOu8+z{Fvj~OemDL3*Z1J zY2Sjxnr!QAXa!Ml>1Z>KKx;}=Q`cewszBpdYl04_eC-*we&RHJd10?R(}sd;7;GRZ zL>44Q+O0?iEkf3&Fez8o3Uk@5|FDK{Z@G}VSwz0rg`Y3s<=QJeMhu>bFd9;@ll10> zSW@24s@}bDZ`J5y^0 ziew{DPY^i*G=ns=zB6suEGv#(1AhJD9h`JR$lpBqUJg|I$OQ%Rr7nVE884T|SepPk zjTi~T<}o$4Y@flsI?iBzD;ox1;G)58bhuhO_3MgGIa(|&CZKwB0kYem3QT_KaUQ#H z(CzN+a!XA?Fa?mD0jppn1Ioa%=Q|2!mM{X@t&yFJrtY9*BQ82^H)k*1$L&wPpT~B8 z2xBZkzD!W+z{?de)}X3r91}+&jj%?&I>T^vkUMs+7-E+54}E;~tFh$mI*|OfVJz7e~ZVgGQr9Se>EX z*++G?CNmxnc)XV`aWJv_ucof3^tzW*nIQ zMP829f$@nNU4Qwae*JelX!Td&%c}B>+viLCV|6$`Ybyx8I*5sD8&ET27>bq z;yLi7ErJTOXW1a&E8qI7m|OnJv9J@)I9Vw8kR*@+BOGDQ36Vk=!%PT!_rah4iE_h@ z%KJ}wkUL&Hg_(&Go?mEs`^f+n5rbHRT8nQi*7vcVm+Ti&RAb^s_}l9@-S{f-jrnE( zKnRQi#VhZ1_dnAit5*8aMtl#%V2ofqKtR&b7#2_<2YYrX_x_z@<%zJk3racgEf|xP zhSX59*9EacJ%XMtc;f*4;QPw&oE~x6Nq6wT-ZkX%CH#B=>-h=1^#l;4<<Jxf9A@H&>jjE!0ZNK8Pn!QF~mwr3t~XC2`1tcD_}jS z$55%mC7W^#EH)h84;P*ID7S6fK(*L`ALKD!F3kcTRWc!zL>$la)4EVdTI+e2&0l~_ zgsO;)0lCNb;(g}3`ul%*Mf^L9RnNhB*oMLDa7f7@fj~}?Sjd;)vtKB1@7*D_v6$X| z!@!A#?tY=%DFk^EcMj?`s8yBeaTq=17~1a`A5-3UsmDjI^vO-dggNDe;y9~v53zl` zKPh(B3oyn2(t<;kIV>BlJLeY6w+74>VM;_iz&1tT%J1lZyX#7K!}3P7(XUxFGsK^BRjAm!>$BLpV9N%{D-yH-9A?rX7P6NKE#6F@&JuC^VGb zc#3zsyLoK52T2N@OJIYbgzzKP=(|wIP&#o@$!lKg?G~JW5v1Ff}v|G(ysGtIB+N~o!-asU1ownB$ zt$>?`c*^0XlqLFZJKzKnKv5dQZX9@%0a|{*q<#YuyXXGTUXa9R^brq#)QFkQ2lQ zEQrYpApiW_1xM2vT-a{oic8?5X{U!r^`$NQ z^r8RwBVIT(gFxc$xbRmAMa)VgWDL2!KJ`6Kn0GN+2vBfOX+8iBV;84YQQ8g z225zv-c|v~gz!=!N~ssq?L3f6-KOrc761dpS(|v6dJU+i@H44bRW(X7FcYAVT?5Jb zppptOrK<7q{oP-xwQM=7N0hpiohHTmq%>qA80?fZw%w9{%3>0vw$7!WL?)Lux X{>1NPjX2Pf00000NkvXXu0mjf#6th& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_smile.png b/app/src/main/res/drawable-xhdpi/emoji_smile.png new file mode 100644 index 0000000000000000000000000000000000000000..81a8396899617698e6d4459d78bed8d2b968a2a9 GIT binary patch literal 5890 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 Y1)&A3%>RFL*#H0l07*qoM6N<$g1qYdlmGw# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_smiley.png b/app/src/main/res/drawable-xhdpi/emoji_smiley.png new file mode 100644 index 0000000000000000000000000000000000000000..77b581d68faee6e9211a690b2ab3828a2ac5f70c GIT binary patch literal 5794 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_smirk.png b/app/src/main/res/drawable-xhdpi/emoji_smirk.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6e5082c8c62adbc3620c2c72c0fc28ee8ba3b9 GIT binary patch literal 5307 zcmV;s6h!NZP)>;&bjBD`|9r7bkn@LY3N2M9&L+^bO0IJ@xiE!8Ui?@W@akmRK=JI z>S%&YCK)QuFpLSQN@h$(0ZnNXbhLtxAaPKk(;yKMX}amg=FyM)ew^3dYkhN9omF+J z?yY_mwosMq>VJK^`kcGh_xrDJefzF`?h#exAM;`OM}7R00smw`al`&9w(&&uqmQQ?-~ZfGc7=VimChvcv#Y)CCFZ4ZbV*j>k70uH}8V?Z59Ge=#x57ccpm zHeXde;K3^;+4o-gH)AX1k!r*K<-qFf@@#EpvNZ|WN~N^YQd+%&@`ek^UbCI-lJ`=+ z^f#zn_M1WBJp5mHExaeZH~dWaS;95KwZb*SwZj-;tT5)Qq5^i^AY02Re^{>BHztD# zNy8$U!;}+}p>>$m7h%ROL24V2@(3hV5DNkj$3{Q_bx<_X_9QyL8-MUo{DB`)Oz+3H z3$$Y?W*x;$L3`f)Z9C^bZM;W!ydnmOh&+1(A1+tr*3xh~V24tYs>f6llCkr#r(c6v zxfLoS5v~9{#PN{GzwBH91CoFMtx5dh9k}PdMRD*6e6yfv8r*bFcPd|KH}#gY?%{S- z)st^P1mF2C8Y?UONx5!sOjndh1}(PYNLFpcZnzG!>QYF`pj}XhhygfZsrpzgB`DhX zLl5J2f0^RYE?mn}%sBG#F6}vY_u&@*am$yO4Mv3e z6O!YB-*qD&t~Bfo>8cXRkR_=v#NI zVb_iBA2#02?Z+}fRQ0IvKX@0HoG~m9l-HIAN-Hyx1|;j=fLVJrP=E-+FA+WpjXtOX z3I2ueQ0#w*VivlGJG5VDFYKGrt1kNzj{-+DAvqfSO=FbT*7;O6nhvDHDM`&>hgV}( zTm*grP$bg75(Ws`<3~bH*!gF{A3%!~ZM%WBMfX#S3~#>cAnkr79N!WUz_0e3_L;_S=oM#$=A`9RXJn1KXaHb|BsvNVQF!or za!HLqVgSG^I0X#?A%~D-mSOV_ejp(*)MwoXUN@qD^~fYnVi_E%0tB$PZR6rfRkqk# zf+<@}$snZ)ViIsINCi@ZTgW+hc!AluE@@&|y=s7gkuu~S+%MP&+Z%IXvdw`*3*?2T zQ7DOHQfERq@|5lotb>2m+yJjdt1yo-rLEvhAG)GUp`6z4p%lkOmc#y>s*kTSMtbF)>=`7`9zL$YuZXDjL-kT5V{L zgDTV$&O4*Q_G>QZ@h3O)`8yw8%yAF3bS3Zp7j>lL0t101Fs-Zm^MPGQGr$a0%x0Sj zk_LDa8VNspro;dF@?o}JvxX0S^impr0d_wL-bKIyeBO&V8YKfh-W5caKpty3XuJ-f zIjB-?wcw=#(Di@?Nx-DNC!gV8@^+%U;$88TU=K3NRY$$Q=X%<;9frY>n*udX= zBm+!Pmgss(Oba(?$LPf9fLJjz9R{?^Z++-AZn-*OgH2ja;6;_5Fs!HHXuD}4=_Sm3+F`RJ9sst=hD5^c! zkn7c(Dikv*`DB3rVj!>`=`J8K8WB*mZ+g2xizW()L=aUZ6Y%i#GabJFc#9`@cQ`y* zkmri_GND$ty#1;gZ(S7b7$(S)2{*l2o}J8j_=yfXf81i<3tbkP9_N7wb?#Xi|Ms0j ztQkx2d4B-Ln;7SD5lrKR5eaem3W>ug~%0pLG!L z8LApaYeH5RM1;b_^n&AmeQ}Cv6|TCxf_4-+j$)S-iURKaMw4$mFwf*UW@;6&phQ!Sid1@I7bW=PN-#ueFt-%ey+tun@VUG&^U+&@I1130^8A^ z2PicF8w4Mx2HIVvJ1qRpAB?c+?1V-QQY$#CJo>#h4}5Ncaw@?Dtbuwa zs48l@M>ik}3x^k!t#8SA-$(1L9kY~E5Gzd1C|~*GIcE0dG#ZAI1@DzgB6M&dT~LWM zpk7h$B8w-m0kUi}q^c?+3NX`^=hozkItA}R3-E%*!UKo4hD#G( z+L!Ry{W(K*AuobqaP`#|sdS-vlv|{ac`KZ~-f;HC2AVCHQpf=htA`A4yD8y+-&T-M zD&-8OW|dRdC!D)k(7cFz#9rNF&_dB%32dN5WL;hXP&_y5_ngzUc&B*pF=`ML1TX*| zcSu1MEMOE2NUoRz1=s#7OJ&sZ^dm~83~&7BhSy){VcbC?$NZdH0NMq#`tyWFs7Y8i zV!7!fDc`xzF+Z+ca9P4NZ%!F%75I)K#zZs0D}kZM(uKeVxFc$$Km1zulskH!7O{jd2q0D? zd`~KhhyscbO>iL37bGeD!zjoJ7$8dw@Wd#+F(wq5aFj&QLQvm-Dg_$<(aSy8P#Mg( z*b~@}W`F{ng`E80tUNp#42WI@0TH5qE>ZMjlz=K2dXh*adVIeJ_$5x2fn1Poe{4Lc zr@u56mhT@xgIY>pTF3(to#jiQ-w1P{^_~6xp^fXz`;xXA*9B8nQ0YSgECY|g%i$6ObjdX#}L745oM9j}azv^`ji$GO#c)F5Ggvu>DuyBb$LD(jrUx zgdifQ2ORi9(T>Npe7Jr7BrpNZ$jH$QXwBxd9)D5qyJn@oK-&hY{gRVJ5Lp5mAu&t- z&qP=>zJ44%K>FuYgl~UWkdEMebjS+*LXrNG@qotYV(E7jo$~~izyv`@F(5937BKtq zhxohKt@Hav2K^bPBA5zD$$*VBAA$N{fQQ80rJ@ z`leq_XcRrE19gISJ-+2}bDo(gzb~)^CZKgZAB+^h+@2Zcez;#h_ogBLdv?I!D_}Ap zm6!m-hNATx=YACCaX0ZAcg;e?vTa1A3N$8(z4!#X; zUUAc&zz|pHeCR8=^Nmq2~JQ2b>Q2cd_gH@Jnc!>4!JKf z%m$Xo#BmuAt6&zGxML@Ku2?6Z*;a8Mw3*;jgCrgj>6xIyvR$?ac~^P-G3C%fhJp>xvVa05 z*t4ER{G5_cd%A}U_U!lHdi%ZlRbV_abOBDlfPOECCRA?vy8iin*ZEar)?J7Y zKoDyX1QiXjzxG?o`i%*H@>${epDXRqkV2vkY@(zkp;Us(0Mr^Vv;yjNsMR5>08XK+ zu;AeU;Nz@oJa-bnp(|)p@w1+MYEg$AhhFfHhg^ZF2p`w}2^tVha3V4dq(7S^`}O+24Knjuw7{zv#&8NfWbK|--OFF&}QgA>Kq%a>>s|V;eIsjaM z*2x9!fN%LQ^F8>30p2|oa$L;y0B{JH4h%2*4<$vU4vYb7->{A~f3{tIXU%EmqI7kF z9W*3$K?V$xfs_NcSB){$5M3_{svuq? zub>+5&$|4xgMJfRE;L4OBDC~oJE$wrCNw&9Hr(bEHxb|+yZ8BTzw4{|>BkQSa1H?D zsyg$F{>I33q~MtubjxS;kH7p*-E-Oc{C$u?kqMf=>VQ zb<7u^(&zIIJ2zHztm^d?jjx0l%Qn7S;se$w4=C|GhzKoE2-*z-Z7bRYKM!us_sV_3 zQyg@m2B=!c7SPlIO0KB5nu->j+ab3`s;+u+_?-?*X?)N^pSHJSX`}sl3F&Df2 zMATe>|7Cq&pau*A!@v;GSX-m^U#?)w>(|Nl(P241sTm0-*sAF-iMW>tG6n#A1V`fz zuG@>Q=>t5)yw{0Ied34D>o-5~AUj`}XCC5jcrX=beg2pJjS&&aVl^~?p?F>ck`Ha+ z%(t9vwwyVvTWWRAC{;{mGJ#Z(1WeMe05tC33m`ti>b87mevW;6r)1|hp7A^H*vVd? zfB?^2grAMG-g(8oG9w}es6_ZEs=xq{Suk(g$f|AYSbNT>S+}C9YpN+DSwbzfWB|FN z(ez1Y|C?*7UfaN@mU`LiUJ?hv9}T-zu8`2Xv!Wrz3}2ipJu N002ovPDHLkV1he4^bY_4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_sob.png b/app/src/main/res/drawable-xhdpi/emoji_sob.png new file mode 100644 index 0000000000000000000000000000000000000000..1561df92eee930f89483b6e5cf4377bab40649fc GIT binary patch literal 5709 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 M*Dwp0|A5gnxMR$I`P8E^!Qwi{G}F+yPi9PLrs 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_stuck_out_tongue_winking_eye.png b/app/src/main/res/drawable-xhdpi/emoji_stuck_out_tongue_winking_eye.png new file mode 100644 index 0000000000000000000000000000000000000000..6ae9d497d304b776aa9db1e8423d5d2c104e3fe8 GIT binary patch literal 6007 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_sweat.png b/app/src/main/res/drawable-xhdpi/emoji_sweat.png new file mode 100644 index 0000000000000000000000000000000000000000..e894b7699606b17f68ec6059fc697c31416d8b83 GIT binary patch literal 5576 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�lW& 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_thumbsup.png b/app/src/main/res/drawable-xhdpi/emoji_thumbsup.png new file mode 100644 index 0000000000000000000000000000000000000000..81786c1d8f5ed810fd8351f74996f9b64dbf5ffb GIT binary patch literal 5075 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_tired_face.png b/app/src/main/res/drawable-xhdpi/emoji_tired_face.png new file mode 100644 index 0000000000000000000000000000000000000000..77b783453e9c22fdc12016ee124b4067583b5645 GIT binary patch literal 6174 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_wink.png b/app/src/main/res/drawable-xhdpi/emoji_wink.png new file mode 100644 index 0000000000000000000000000000000000000000..756766dd3e9702e42082555bca7c71ba2aadf544 GIT binary patch literal 5253 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 YZ<-a%ll=bna`Fez(SWFbP_+pAKfvGs1ONa4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/emoji_yum.png b/app/src/main/res/drawable-xhdpi/emoji_yum.png new file mode 100644 index 0000000000000000000000000000000000000000..fc39637ecd81ba4da58e15352442be6929d0941c GIT binary patch literal 5886 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 U-*anIF8}}l07*qoM6N<$f~S{JzyJUM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/message_transfer_money_left.9.png b/app/src/main/res/drawable-xhdpi/message_transfer_money_left.9.png new file mode 100644 index 0000000000000000000000000000000000000000..ad27cf9aa66230ddef22c5decd11b8cb5ab774d7 GIT binary patch literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^zCi55!3HEXLajs@7?>`3x;TbZ+TS2!FAe?=4z_=IrZ(@(vx_PEzxZTqr1}43&f3o{A!KkY+xJFh#=ni~R#JQ8{F@Xe98FSu{Wa=RQiS%ko~?)3eu$d3vnlBVtKC8KA1_3t?rpjK_Egr^Noyo)oUR;npMIe4LuQKLjmm<+BeFYp zz5M?C^UjpJ4;KIWrCeBe!CX_Jq;{i*Z@gOTw@MqiYG&SjtIo$yaq{C4z^0n3)l zOD@zcUCCd3@%X|>e=gq|;~zd5Ep8}ip0lu%vI#QUzcBIgl_>8FLw}CFA2JtP7;dTB zTjziL#&X;9E*E+X*|~I1T$;FQuA{bCclg&P^RsE6xAU{d2|2G0Tm8NC)AqXk`lp`; z)okNlSZX!*_N>15CbHA*WJ`96m@HWoc0Anb;qwH84|cosT9*0SU3;DRxHe$NyPk zD;aE>cY5K=UmogP105wx4QEBqEeSq;JZ$yREUE9=Q~d0%sD0=8Z|;&|xNpPs(@%F- z1#-GJU3m2OM+NiWI|UXhTP&7+-yU7{@%zaXrwqgT@al#~4jFeMZi-3uM+r(Td~0r^ zhzOQ#GLT@~xX`!eRzabvVWMW5)6F^cv$Su@aG3;hy?MWFB2%`B)b-eob5CuB=APai z^4i+%MOw_g4>xvBShn?BZCI;Guc7>rtrMQ@%-x$VeKIUWYRU@}&sN1%7n~B`0{QAz z6Qaf1nY@Zs_+*xO$XN6MQ;Yb&Zi@}4d(OYz$@5j7Px;Sble5e%z(mgA>FVdQ&MBb@ E08c1v!vFvP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/message_transfer_money_right.9.png b/app/src/main/res/drawable-xhdpi/message_transfer_money_right.9.png new file mode 100644 index 0000000000000000000000000000000000000000..49a4ecf8adefaef500155d295d3166fa42883871 GIT binary patch literal 619 zcmeAS@N?(olHy`uVBq!ia0vp^zCi55!3HEXLajs@7?_MaT^vIyZoR$ZtIZlH!&cy$ z(=k_nfzAob;#x-SH&0R{CVZApDeOM4U@d0$MrSJT{X6BKG8!RH>gG6=z$fc5KEw9&LjggWv^=%7R z8mhZiZxdKMPh@Rkas!*m0!H2p2WF`YV5aUhZY2}}-i)38XG&$u7PFq2%{Z%4PRUOu ze6IBQ?T-?BXBTk_(~dpFdtlon^&8`E}1`k-$6 zzc;t`zK?xz;OyFK_K_>33i5gE7k^2=o*5GL<{*Dr^Y8U5*5Bz{F7wNBC7)jTqsm#1 zN@njLoYb8b1@g;ebu+jZ+M@YD>}iW_7bP9qGNnWdr*^_H?`M72Uur3Q_4SN}x z=^bZv{N&c>ydpa_uSs88#;V_H9;| + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/button_recordnormal.xml b/app/src/main/res/drawable/button_recordnormal.xml new file mode 100644 index 0000000..336bcf0 --- /dev/null +++ b/app/src/main/res/drawable/button_recordnormal.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/chat_anim_voice_left.xml b/app/src/main/res/drawable/chat_anim_voice_left.xml new file mode 100644 index 0000000..ebb048b --- /dev/null +++ b/app/src/main/res/drawable/chat_anim_voice_left.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/chat_anim_voice_right.xml b/app/src/main/res/drawable/chat_anim_voice_right.xml new file mode 100644 index 0000000..bcd953f --- /dev/null +++ b/app/src/main/res/drawable/chat_anim_voice_right.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/chat_btn_fail_resend.xml b/app/src/main/res/drawable/chat_btn_fail_resend.xml new file mode 100644 index 0000000..62c4a54 --- /dev/null +++ b/app/src/main/res/drawable/chat_btn_fail_resend.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/click_bg.xml b/app/src/main/res/drawable/click_bg.xml new file mode 100644 index 0000000..d62509c --- /dev/null +++ b/app/src/main/res/drawable/click_bg.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/frame_bg.xml b/app/src/main/res/drawable/frame_bg.xml new file mode 100644 index 0000000..c954432 --- /dev/null +++ b/app/src/main/res/drawable/frame_bg.xml @@ -0,0 +1,17 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/frame_blue_to_thin_bg.xml b/app/src/main/res/drawable/frame_blue_to_thin_bg.xml new file mode 100644 index 0000000..210092a --- /dev/null +++ b/app/src/main/res/drawable/frame_blue_to_thin_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/item_divider_line.xml b/app/src/main/res/drawable/item_divider_line.xml new file mode 100644 index 0000000..8cf968c --- /dev/null +++ b/app/src/main/res/drawable/item_divider_line.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/msg_input_shape.xml b/app/src/main/res/drawable/msg_input_shape.xml new file mode 100644 index 0000000..81a19ec --- /dev/null +++ b/app/src/main/res/drawable/msg_input_shape.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/white_radius.xml b/app/src/main/res/drawable/white_radius.xml new file mode 100644 index 0000000..72390ab --- /dev/null +++ b/app/src/main/res/drawable/white_radius.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/xmxq_tc_bj.9.png b/app/src/main/res/drawable/xmxq_tc_bj.9.png new file mode 100644 index 0000000000000000000000000000000000000000..53f545cd4d332afa468dc5e3bb8778108e86c884 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fex5FlAr-gYUNz)mP~dO~d|&UE z{*|q*xsPiq%fb)W)lF0!Y-dg3SJDz(*&&nK7P)cC%>KahYZ~$w-aEi--%vU)>4E%% iZTWCl-HKbLh*2~7ZhNG`Pi literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_service_chat.xml b/app/src/main/res/layout/activity_service_chat.xml new file mode 100644 index 0000000..268fe14 --- /dev/null +++ b/app/src/main/res/layout/activity_service_chat.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/chat_emotion_gridview.xml b/app/src/main/res/layout/chat_emotion_gridview.xml new file mode 100644 index 0000000..963734e --- /dev/null +++ b/app/src/main/res/layout/chat_emotion_gridview.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_emotion_item.xml b/app/src/main/res/layout/chat_emotion_item.xml new file mode 100644 index 0000000..9e5a592 --- /dev/null +++ b/app/src/main/res/layout/chat_emotion_item.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_image_brower_layout.xml b/app/src/main/res/layout/chat_image_brower_layout.xml new file mode 100644 index 0000000..c45b144 --- /dev/null +++ b/app/src/main/res/layout/chat_image_brower_layout.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_input_bottom_bar_layout.xml b/app/src/main/res/layout/chat_input_bottom_bar_layout.xml new file mode 100644 index 0000000..a2280cf --- /dev/null +++ b/app/src/main/res/layout/chat_input_bottom_bar_layout.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_image_layout.xml b/app/src/main/res/layout/chat_item_image_layout.xml new file mode 100644 index 0000000..19d77fc --- /dev/null +++ b/app/src/main/res/layout/chat_item_image_layout.xml @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_left_audio_layout.xml b/app/src/main/res/layout/chat_item_left_audio_layout.xml new file mode 100644 index 0000000..d5cad55 --- /dev/null +++ b/app/src/main/res/layout/chat_item_left_audio_layout.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_left_layout.xml b/app/src/main/res/layout/chat_item_left_layout.xml new file mode 100644 index 0000000..847d2ef --- /dev/null +++ b/app/src/main/res/layout/chat_item_left_layout.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_left_text_layout.xml b/app/src/main/res/layout/chat_item_left_text_layout.xml new file mode 100644 index 0000000..d3b600b --- /dev/null +++ b/app/src/main/res/layout/chat_item_left_text_layout.xml @@ -0,0 +1,10 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_right_audio_layout.xml b/app/src/main/res/layout/chat_item_right_audio_layout.xml new file mode 100644 index 0000000..afb0108 --- /dev/null +++ b/app/src/main/res/layout/chat_item_right_audio_layout.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_right_image_layout.xml b/app/src/main/res/layout/chat_item_right_image_layout.xml new file mode 100644 index 0000000..f255cc8 --- /dev/null +++ b/app/src/main/res/layout/chat_item_right_image_layout.xml @@ -0,0 +1,23 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_right_layout.xml b/app/src/main/res/layout/chat_item_right_layout.xml new file mode 100644 index 0000000..8f50cc0 --- /dev/null +++ b/app/src/main/res/layout/chat_item_right_layout.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_item_right_text_layout.xml b/app/src/main/res/layout/chat_item_right_text_layout.xml new file mode 100644 index 0000000..6cc141d --- /dev/null +++ b/app/src/main/res/layout/chat_item_right_text_layout.xml @@ -0,0 +1,10 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_mess_iv_listitem.xml b/app/src/main/res/layout/layout_mess_iv_listitem.xml new file mode 100644 index 0000000..65f9bfe --- /dev/null +++ b/app/src/main/res/layout/layout_mess_iv_listitem.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_tongbaobottom.xml b/app/src/main/res/layout/layout_tongbaobottom.xml new file mode 100644 index 0000000..1cc81d9 --- /dev/null +++ b/app/src/main/res/layout/layout_tongbaobottom.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_view_headicon.xml b/app/src/main/res/layout/layout_view_headicon.xml new file mode 100644 index 0000000..b9dd628 --- /dev/null +++ b/app/src/main/res/layout/layout_view_headicon.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_voice_dialog_manager.xml b/app/src/main/res/layout/layout_voice_dialog_manager.xml new file mode 100644 index 0000000..3331d1a --- /dev/null +++ b/app/src/main/res/layout/layout_voice_dialog_manager.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_btn_emoji.png b/app/src/main/res/mipmap-hdpi/ic_btn_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..5669edf3b8eca8e2c1faff3dc31bf9cc14afb71a GIT binary patch literal 2028 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_btn_more.png b/app/src/main/res/mipmap-hdpi/ic_btn_more.png new file mode 100644 index 0000000000000000000000000000000000000000..dda5ff1d6ab2d6f189fbff97ba58d4d8db351d26 GIT binary patch literal 1868 zcmaJ?c~}x@9Hula@=Ck3o|;87G+`K21cH=66ALpUqqG);QBat{VGOimD_cw5YRjyw zHlu5|)9lhsw=!!z%JQnLEGtv1ZF9R;yKINb+CSEv=b8Dw@Atg#`#Zm9GNU4=IFdcc zBofI{94?X)tFQGPXh(c6lvl+Ni#r}F$7iDPxJik@B!L=@g8{K#nE*>+r8+ga3g(eW zHdL)lj>{#}xGGdnS6VT2v)(|kNhDsd*`QP1^#Uc5|A*@JU(iNe3V)6FKZT95 zR09l3VI!J?sffnKdsfk@MZjAgqV4Z819!!gt%BXr^F(G%zX1w-qdi}jFA;kmX zW}bBDa(E7KmycI_l)hSpy&8^rCqs%2X{jb#>=mJjCWd0_unr$gK2Wgq(}Puk!}EPUeCG;?%F)G zEfCn4$xGPD!#j6Gj%ji%Rd{p{xGAvL><$Snqb#D!o!6vK-!VLvbg0htluP&7#J?Py z?SiO>TXrI3YX3b7|E7LV(>-_8tTC2{<%tX)Jp1f2h+(6%G3i#x{EVAYb|d5D=UG>3 zS8j}Q?zq~|;C@M2@b`oc@096B4^34BFE(!@=YIEY1^>wK4a=_hV&3{(qi^Qg_$bB< zi}c=*?*1E>a)Jml=dS$phZe@8LI2Lo^&Z$Q+0ow+SlPzh!SR+q}Oel~*_Xo|?lcTa8EdSH(N#>37 z)tBdwMn_RU%0 z+I%F%W!PCjqYzh#H)|KY-lfiegB;+&vs?VmcgQ|jP%Br6n6Z6MfcqX zoO$j_i-$hk);I55dFudEfq9!aA~`oBXJPENS5ALqck&yV8y{s4j(89WwQVJT5b8QD zAG#6)#JrKd{h&(PH!j~MoR3mx_~hRW%y!6KxPE?Y#fuM6W!ADvzcaaZ4Kp@ml!S=_M=Zd)h0Tk`9W>kRZ?d`G_%LZomL!?kb@(VU>{fNcEn&3dvO$5iio^^c?px=eXzg gh;NO3VQ_y3(p$Id0%}*(6zl&@92zM)JXx{)AJ|&pP5=M^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_btn_voice.png b/app/src/main/res/mipmap-hdpi/ic_btn_voice.png new file mode 100644 index 0000000000000000000000000000000000000000..f731870639670dd5be80c8f5c4107c2c8e774e6a GIT binary patch literal 1998 zcmaJ?YfuyC8ji|M1QZ)NidthtRFqsc5RyQ^m;?wl$b?8is3s%}31qV&Ss=vXKoAv* z2FE#85R{^{!GZ-9ic-r#M7cx?N~Iu-<)T*QC>*&7Rl2ca`=gwl+5Nun{odz!Z_mtT zg#-uK+dA7~Fc^DYAV+|%Zsym<3jH=VG)JP#Duf%3gu*dMvRDmbSW-9|#PJ|;EGPiQ z(v*Z|&tjfRwb6ig9t7fjFl^y_?NYHc${3y z#DD6^C-GHmP$m!5sliZPuu!6lm(ZnnKVO`WmVpvLAR@+TA%#-I&@%Dwcp2#4Y$oDy z?_7|0CjQT)!ucUMHmnA5o&>79giN8~yyyh7C!Gd(Y{LO0GL=Z86UiR#Br=0UXOPIa z_YWS8rk2Jq1RVeOvCtC}FGCO&gGfwHP9`K%2(UVqNT$>2L=r#*0C&{GU6Z0j#9DWy zX2To<2h>Q^aup(nl{hn_I2ukwn0PePKTCjAA83`D_iaKOM%0Q`L^6S7E@{q@&;S3f z5cI)Yg9yOC^8H6*jW9(85(S_JPE8Y9S0O=DHXngArIGgH<>- z+uSuT+-AO5B3GJ?Ti&7gd?sJIt^q3xl!n;c-|(ZI3B0 zB2XyC-hSEZv?=Ib(apzvQ|1mww@?e-;_{|VnKrii?4X{U7Qpy%flDN|S+Tz2aFJrc zhB6ZWNPbwT9l-zXE3R&H6&GJRn?8F~od4)Rvj6Etel@1=3ub#~`d$^j`YbXru_~s+ zHDhPR%JX{8GV8A^-)x=2?9CvwTYaoQ8&<%-LULWJu;7ZUR$6|yeQ8ZVy0hgMBQ7B} z4rxCXId*0ot6ZLMRUq0jWpy!QE7l7uQec}FG>TS)FIA>rFS?hb>Eo>Pra7F^XNvq( zX`V&R2Lq3$Dpff-?$%3aPZm$x1j!b5{hXw7GWCD9_HNnf9H!}NTN*TWT(sNx`=Ip? zi(2brMz~7~o1->H1r0P<0>aFev@nv5Q+fTxSfnH-gP0fedB2p5I3_`IMAIO65D^YP*l9@d}hjX zW9iLh&h-|9dvd*ljnI*NPUOKhjCbMs^}S`sdjO7%5Lz`s!uAA1R~Zd=za{M-eqop` zk#(-})m<6!yqcAT_c*zcUDLCv!$?8w4p)YBIF%YsT<*Z#dP^Pnt)eka@k>#b?@Rru zeb36pg->@E+}O^mYs&z>zd8Bk*|&F-4tIfT;y)en3iWtaR{PP4$%(38mz}zCe)0%< zIdLd;salb(uakBdFGunF-KmnbW$+ND_)r}Wy!K#&Q|maPI%~J4Hfc-eSh4(~tTSRY zU(^TPZ>ec2@r8fwyRh)`e?G@|1$4WnQdK+i^k>(^#eejbVQL3WJleYHlFV4RK)>A zk0U6n9+gwsfmksXvbk(p&0>Epto4AFNKI+Z~#rWyD3m-iIMRVtq>=5`KD4wo9fS#xRjq4ntCNX_8Wt;c?xF`aqb z?3#P~%T}--!y3mlaQCH*mFKO9J90;w?P?fuY4A60%hyov1)L-vPd}JFE>PG{KHGb! z(ulM0PdK)>ErPx7yEpd0iGBlVDyVqWLij(2rUwx+0fOz?yXbb9`r_+?{VwemZu_{5 zzBYZ%PhQ{Vtz3N;J|8$X@!B=-$Dyd_c-o!5_AA{xrdZo}uimoC0+!TUSNbiq!_XaP Ub0@i_&gMTXj~mRnxI?7>1N>(>X#fBK literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cde69bcccec65160d92116f20ffce4fce0b5245c GIT binary patch literal 3418 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 QjURm%M|aYVy}|MS0Z)=lDgXcg literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/tb_bottom_take_photo.png b/app/src/main/res/mipmap-hdpi/tb_bottom_take_photo.png new file mode 100644 index 0000000000000000000000000000000000000000..2acebac0504146fa416592f829b9ea3800f39e61 GIT binary patch literal 3686 zcmaJ^dpy&98y-2I56dCNBBwI5VQe`qGlxtLc}U1?!?1&Gjzy9ZCWM?7DxUCag(Qce z7AYmiRKg?`ITfiMz4JUz&-?!I_WnMf-|u_)+}Cwq_kCag{8C+A?4>1kNB{r;X-5aN zJAd`rdc{QeU-N2|Ab(M1+IcfQs6otV9GwV25vYMgkRurvOmrvW2(b~pL<<05n;z+~ zH`5#IjKovPhPbU5!x%D+j|KoNtYc_6d>D}l3M2-TD3+RwcRMseB!Z=;mnqf=OS2`0 zkR0OZM2|R^!}z!`Jc6KUZ3VK3LGlU6L?#XtLk_1fkTI5;fAS*v`>kt;Cg{%)W|*bs zU!uIRt{__~od_~DgoE)=V{?!h!VqeTFo&5KfM7;YIK&76ftrAgphzPG(g+Ir`_bfQ zqZ5LV?r6;4x%ekb%@8J&hJ-+(qoWO@jSZ>vUgNdWyiH>MXO+Jqyi9|p`ZPCVXDB28ejKV;n zc4jCz+}zd(V{2>+gTjr?p+B)`Dn61-q%ePC3ID;G{}Q`p2r`YI8BL^-__Y@JFR>857|7Om|7+YoulOF?+Wuo+{^1|{6DfSp)A{DkJ=5|B z03b2sh(;Zb8K3tP58pMsy=`-&fBIg;w0Y{n(D_?Qetj-4hD_>0^bbCC7r@nL`GABE zH-_%J?zA0*+T#P4KXCNo4M$hBB>9LBI~AO`qtII%xc9a=n|C#8=L^Tydl3r3?<}bw z!>nGPEG%4a|KrEH?>oX~bkOXRk~@p--#*@5bm>o3)YZ!xI;ip^{B`@QC+uSZC-NfT z_}!Ix1KlbFDPs(*Am5j3g0aF=?)}mBc&zJ7J*2|YNtg%YzGEeD87v))awSAEFG8uZ zfSnwn%@bwGs+`0%G+R2#IH!naw3kH)@D#Z`R+D&$@IzH=!jO?a&LSvhE|g1ExvQ$C z@uZMft^<^k`?x4`3QJK`2UD~72enRV>*?ajJn^0aLSDNJ~Pz8PC=ysss znJ`NLenRH5-_&E%f&4zyD6D0hx}Ui3i?HO|eXr#F^x?7K zO0CH!IZQEXSn`8pbiH!-g!8kyry>m~a&T&Il}qXSZ(}7TJ9nt6x^dn{TriwcY@Mh|#Z1l=vo5i8?>xxV z@Dh4EJL_(5FS=`g)FWj#`%Lw#2*&Kw`RBJtG+GuHdSF9{x6Z0E9jH+`{-9=?P+__2 zxuE_M$I{Z$hOkk?P!h>4d1}%B&C*nNLqMnC_3CO@4&w5wn8f7-4cYCS?xvT}q*2eJ zkYwbsow66Iu*KIL5@*RTnlf5iTBvuw>Pv{q>~!6sMn1n}_C3hoU%k%v&V`44eZ!~i({Bdw z@;iqIcVt{%Q&%$+A$MX;&CEQG9XsY*cQ2t?UZ{aqIVLM>Z>?7h7I}MmWV%H`{{e>s zAV0r(rseKk(m;jXbx&z&>B0*cE^JT5SA8ls>`aQn;^W(%d7IovH>skpj2m+{6#eXH z8aeIV$>nFj{;dVqYih8)T$Tsbd^#Q4$+?Ct&P61y*&H+`xhRaLiMqSG+I(AI^s1vz zb)9)wYeSMExUNfdUsDzfd@()_>}?)HuOSr0QbdzwwyVoo6-R9^nv>5-PXdQgsa|c! z2ILXr$H1Gxj|$429m2wDsIm^LYOpp?mc-q&>8DiuU46uTv@P<^o;~}c*#7mkVXo_) zsw#U^Xh;*6(puD?ySPSVf@K|t8R*(WprdLAaK^?v| z>}ZYr(t+YLf~ zSS$Mki535~RW5_0`p7;af=w5xRUl82CPh{+%zNzf$6P1;D@OCS`#jLB0C+`5E2l%h zunYH8uwp7cG2D5tx0X)|YI&QwLwnlt0~1vSs4HNUHDAwcb#tU#z>DcZJcj0Di}r z0M-ld>+)Bwzl>EEG}+l_HEZJ?8F86o&PBcW|kL0G^%I zlD%w&=(BOKkYskX2@IsZ0U$mEokbsoj#WF+o%4jUDOrmdfpozNMX_mx{k`H0%BPrl zjJVFbsqfZ;75F|tDXaO9k++DC>2ot0Qs>T7i=)%QR*&Bz+I5=LR`w!Dw*&^KwF(wcg&n^t`eBIzjB&uI)-nEBS7>jc=d16cRyC)QB@G0|<(5VYJeLFH4?CI%w$HitH zYjW<4&gjrkwU3g2(V=TEhy_^S{iFv|!x=Ig5zoqpV_I%_ELj;SA9p%PhBJk_ib9^$ zTy97|eO1`sD?6wt(OXWc0@a+UWZ|h;y4VIz20outVM}o6ZOsh|1rh~P1u~bM^6FC! zS8UF>p>np^hw#*X~0Ej*F(g9xV*r=3u|{JDcsc{lj3Sy>X|r zjeda0z`OFwl;@n+(vNqKn6+OSt}83aZ_dp|?e_MSD^h6?tkkWwZ#W!9cWzL1N^+4M zPZ!iv0$y?c+7X8}albL46&$x2b=30n_l;HKevEB;qZbi1B2oV;TLiezS3`;SirDv~ zgd?clfp$4_=81HtoA@r{hadFh)NZxBJA-J%T!Yo&bv`W%1~Lc z`5u`VrWfkzZBVfsWcH}I+$x^LDc02=__))qZ8yY!G_Ap_);&J0B)r__f@EmYWhLNm ztLNh~v6>np`rZ!Su@_6OA3b$XIoW6v?V>dN)qDRQHH{xGaoF4`@rhuSqf689!(KL_ z_b>4lW_0A1y|^;;l|1&@#RQ3or@!M>%u@Z@3k_P!joojI?1-iGoGhMOEUDY>v0Pnz zx>Z3Mbzhl4nZ}~y1B;9FzrC(tg-Uq!uCHIcdN-l`nnp$AWZR@S=EODTMKE)vZL&a< zD;1>EF9;HZ7nU@peQlfky7}}_yo1$*=W8<&GtU-}>|S$M5}kyxz~p>-~Pb{(irc?QF~icx8A201&Xin%Hxx@kekd zw>yHjlemC*8(JFz05gs6x7#7EM|xoGtpVVs0szqB0bqwaqAdVG7&rLc6#(=y0YEA! z=jFw}xeKVfmAMI*+}bv7qH=LK2#X5^06wul0s+}M(f|O@&WMyG9frlGyLb z&Eix=47rL84J+tEWcy_XTyc*xw9uOQy`qmHCjAeJ?d=dUhm;P}^F=LH42AEMIh6X8 z*I7Q1jK%gVlL|8w?%##)xSIY`Y+9$SC8!X*_A*S0SWOKNUtza(FZHahoC2|6f=*oD zxJ8-RZk!+YpG+J}Uqnq$y%y>O^@e5M3SSw^29PMwt%8lX^9FT=O@VX$FCLBdlj#<{ zJWWH<#iU!^E7axvK+`u;$*sGq1SmGYc&{g03Md&$r@btQSUIjl&yJXA&=79FdJ+D< z4K^ORdM{M0b2{wRROvjz1@Rb>5dFb@gfkYiIOAKM(NR3*1JpeR_Hk3>WGvU&>}D^HXZ02JUnM z@1s_HhX#rG7;|FkSh2#agJ_2fREo)L`ws+6{?IeWV(>Dy8A(6)IjpSH-n_uO=810y z#4?ez9NnERv6k)N13sXmx)=sv=$$i_QK`hp%I2cyi*J=ihBWZLwpx9Z#|s;+XI!0s zLjYRVt!1KO;mnb7ZL~XoefWU02f{jcY`2wZ4QK+q7gc4iz%d0)5$tPUg~$jVI6vFO zK^wG7t=**T40km@TNUK+WTx<1mL|6Tn6+kB+E$Gpt8SauF9E-CR9Uui_EHn_nmBqS z>o#G}58nHFtICqJPx<_?UZ;z0_(0&UqMnTftMKW@%AxYpa!g0fxGe060^xkRtYguj ze&fPtC!?RgE}FsE0*^2lnE>42K#jp^nJDyzp{JV*jU?{+%KzW37-q|d3i&%eooE6C8Z2t2 z9bBL;^fzVhdLxCQh1+Ms5P)ilz9MYFKdqYN%*u^ch(Fq~QJASr5V_=szAKA4Xm5M} z(Kka%r!noMtz6ZUbjBrJ?Hy&c+mHB{OFQ}=41Irej{0N90`E*~_F1&7Du+zF{Dky) z+KN|-mmIT`Thcij!{3=ibyIn830G zN{kI3d`NgUEJ|2If}J!?@w~FV+v?~tlo8ps3Nl`3^kI)WfZ0|ms6U8HEvD9HIDWkz6`T_QSewYZyzkRh)!g~R>!jaR9;K|#82kfE5^;R!~}H4C?q{1AG?O$5kGp)G$f%VML%aPD?{ zG6)*KodSZRXbl8OD=ETxQLJz)KMI7xjArKUNh3@0f|T|75?Yy=pD7056ja0W)O;Td zCEJ=7q?d|$3rZb+8Cvt6mybV-#1B2}Jai^DOjM2<90tpql|M5tmheg){2NyZR}x3w zL6u}F+C-PIzZ56q0x$;mVJXM1V0;F}y9F29ob51f;;+)t&7l30gloMMHPTuod530FC}j^4#qOJV%5!&e!H9#!N&XQvs5{R zD_FOomd-uk@?_JiWP%&nQ_myBlM6so1Ffa1aaL7B`!ZTXPg_S%TUS*>M^8iJRj1*~ e{{%>Z1YfTk|3C04d;8A^0$7;Zm{b|L#{L(;l>}-4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..efc028a636dd690a51db5a525cf781a5a7daba68 GIT binary patch literal 2555 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 No^IZ>O4nVo{{ZT#3MBvl literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_btn_keybroad.png b/app/src/main/res/mipmap-xhdpi/ic_btn_keybroad.png new file mode 100644 index 0000000000000000000000000000000000000000..72146564e39eaabca4d23d6d49449abc90849d8a GIT binary patch literal 2236 zcmaJ@XIN8rA5D-w>VQy6L1P$IA-Nd@lCViY1B4N#pwy6DAVLPog@mCdju$0>SWt!_ zlvYr|l*d*LRSQ}Nj*1kml^JlbL==jZBG|-=eLuXs_j&I9kLR58Tj#?)5Eio0%-Gr( z27{T=H_@1ym85+Q^)=rU|8ZZfSw4gOW1$E^5+q@XK$tH_kO(5_JXSKu1X-M{^qZgu z47O|?H!>EAWdu{$0v?8?#bBg7p@t2Ed3Z~OEOsggArrx5F5eS1d7%}BKI zA*6yS+)ddcFd{o7lAWE(CUa2UUPuoqMI*oiAr?}~OXG_vQcu)-U5aL}y#`Ro_Yf%6 z6ZKD0v5YVzRUiV9M2st%jU$kdZe$FONG9Q3oRN4e&K1Ct0h|jOi=$x46f6$;;X!Gl zi8x6VCN1DYEX~Oil>$LR3IIqX5{!g^5r~oj9GOf8uy_EEM{5vhaTXt9Nzr_<-J${w z6thKKA;cB%ky=Goq96nEL}@bprv#qxqby(ip-q~G0aBI_z+tf3k`{ps#{Y-%cpuSX zhzb6i@Bb7QM`j5@fC-8P86vi3a7lLBP(lh-1hOE3C{iFuTkK+3iU1ObQv^aJm8$KU z8*&|k#pd$0m+RlN7z_%XFNRorHb|#=qBJ@fE|){W2N0=ve*)Q+;OmdW`MdeLx{|2a z04jls$GH+nxJ52az|P=-d}xu&`IqavBv)$)o=_8+28y_uASXa1;33}^PT?+{i`$ZV zAGn;Qb0ICs1vJS3+VTF^xEHT99@1_w?e#Q$Q7c>Zgi! zlf(i^wD~5iZXi4d{>}cf6yhpG>bHk|7@J#xIkRfz1m2yHQ!!rxBqwF&EKK&0#m~Io z&Bm7m9(PV`)QgkH%f@B;>Ogg3ZNdQA=&jjXom>+e{nxNBVeIg)T99=+$7FLdVw>%% zl8&)`Ep5z>jQoDRG=qMFyQT4Jn{BrDl)5!`0ztf^Nf?#?329Q7L&LuvL;} zU&1@!pX#{Fj?zY+t{4j5b=ylBQ&ZD!uww^$z~7u?D@D9nQNH{S9r`vzb4Q)q>y|jL z>KkVA&SCw{hMj0U+B+>IN3-js_$ z`cz9uqhqO_R0z89d)TTSNV+-ludue z`3l;z>KK==D6XSJHTPx{0s9< zE=I&YAGu=Yazf+kp3|8|B_V~BQFL?39ee6Ii-+^S%en*lFFRJ-oUU_!Q`qgeF$iT+ z;e5(v&UYgBlg=QBIdbaj`d|%i&GuySv5_2A{tNZ~3lvckg;&`fe#5c8%cR=h32k}S z25o2YrYyN768((7U>czgrBuZD>-0JI)IQF7N7O6#cfwiDY$uON6Y|kfkU@Okr(Sxm zN1i;}uu64j>(dCe?JbW2GVwEZI-N^e%NW)z()n&&N;Nbfu3USfrFWpX-YBcHbagO4#W{blFW&wI zzjOCf<0mU7?gQ;MyLbgxALJ8S1f479YkayL)iIaW^|0-mw^rSpcbGJ2(Fx7o%gd)j zT`1)bpK!~W$U=um=MmP)>pfc#G0mhTyK@Je$gO2_`%YS3eCwbZ9H<@54A9HBYY0W0 zHQoRHETVma6^+0hxOH*VJ=*6L!zk@X(xJ~w9yIdud9QQVn=A}Yv`tp-lti`*s~s>- zhquJ>v+z^Hw{JEZ$}?)bPuVFwDsQh-Znin1=sG==;;Z*-(R$snF2YSz)r@6RF>s>u z;p3@3B!)hHsOfdkl!^kG3|h_DG{4$WnAn{-J61Z0NhiPfv+PxB!;Diu`;oJ>acAd2 zg+=Wb4 zb?$1fgX*nonx7wg^So*}^L$~Mi`dWV%&UUw;2kw{sKQE*Bag0*U0!>wY`sZ%fyKF` zqeV3a30k<_5p-!#`9bCldI8JQ1UA5w;jA;OHb!NHqShGp?{ZQPiRDxF7un9C3o(+f qjD`nXe!1{2TG))vzDxAxxOaQ2Uz8OZWA zHL);(!CFr&?akO(M(=}+NEL>RUKgHeg3dNvH^=B|>mIYJNuVnDt?OhwN&x1#|8mx>N| zVd9ulIv6Y1kt_#;lUX60WFd#lMZ0eY+*B03fCz-xfJziER!~$_^m|>3es2h4(ZG8M zB&4GMC@O*(2+$>R5OBc|9XWU>65vY4;9bZhg0llaz~PBl92tvucEsT+I5Gu?2R=M# zeKt9lM+x%s`H)M0qM~CVNJ_zCl}aT>>4cHU`B*%eOvd5}SOUROk8o5Zi6OSiQLM0C zRPX{79JxRW2_#~`pvaDqBtTTOzS2Kh5J^AEiWMKmq#qbo#g=067@VP{MIe*;|Dht$ zN3;S80{^V{Z-o^hNm39S1S%v6a*qDuc(#UAQVLxTvLT5)L?Ve_oMK?C1d=FXB~pM+ zH%!eH*vw>e1Y$#Q%X=1+NnwZ;5L?Uv8D3PhUI!x(a4C3aZxRVd!xNoo-gvyXD~(7b z(Q!U>CptkNBjFdhUJ_1%2oyt$T<)J-!Y8=~Lx`mM%wC{ekO*>p$%iQIMGBTma+}p%{#Po{0mw_^4)63QtzYn29={k>B zd2o7+lvcIibkw>nCZ(Zx#{rv&ERRYH>tD2+cM43`EdO?m+opY(*7FY%cuHQwwkWxr z&*RTf`Bw9(^Ub5j%Y(L{E_`dm)aB~>JsfeCjjPZ0k-Ib;9eXTt%qiNu)_UEl{2NI& z{lRbtbiO@573m)6jFMYV z!K{$=unn4gT4pl&a3msSdG*qsr4;qF_vCu(@e8|7O*Q%?wAB#r4}`~UBWUt9e2r4Q zYiji|9eNCfYWr8ul{ij&DQ5Vg9p<#j$$u^hM^vbN)x7Au%!jYfo+s8lu*cl#Fe?l^ zm^;-sI4z4Ob4>XByMs4S89p+4G~J6@Qtdph-B44k4F zR>Ol+HmojS$%bvT8sjih3By$yfY}SBCkCDTp`@n*eOPxhxwkzSOFnwJ2|X)qyLvMf z`4D-ro4LC*&wOXuy@Z2}^@sO`X`s`kcV1hRb@``Ee;#f-6FO+TeaW6GO&t|M*f4QM zw5;i2qRei-uE=h}^N;*TMFrr4*cUpmGrBdg z?VF=INyxyyVzVN*G;h?+)If4J0^7&hpJTjGd0|M=GJ8qQnmdxx4oDrl6X|i zi;sJ&=+DM`fm36>Lq+SqV|DrrzH#HfJC}DcJEvA(l`aV?dgRY_<2aA6m2G_D+Esc)&~bg+CFJkB6B>f;#+1G+ z>u%xGwfslnKtV=P=&Ni-7cGHmopd1al&&$V)Fvq)Y+VhbeYlh;K@<`fHSqhYp%?jyIi*5n%gJ{aCCFRf?vf&T$9gRqbQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_btn_voice.png b/app/src/main/res/mipmap-xhdpi/ic_btn_voice.png new file mode 100644 index 0000000000000000000000000000000000000000..28b92a55c8614ffb84f1e25c50f4e02f483d1d76 GIT binary patch literal 2489 zcmaJ@cUV(-76r^8O{6Kp5GO`Dq!CII6Cfsl5dxtsAWcH@A}xjFA>9%ML&FKEQY7s1~o%9 z1qFo-v|Usm*@~0DD$25NMaGV;vc&*&2?Txl958_?1Qf_@egpucahdx7AAreDin|XG z6%^K)NBISUfpiZ7i_b+eY5mEChU$J^fh8F)TbA?&Js~CK6->TmWRk61lNF5h0NT|IAB}?d8`fIP7x> z7(;^pDJqc8fKm8D0A`1@N3bwh9Lxca#Mt3+Hn!F<8#Klqg~p>Wwg@zafW{Nh7}%Ew zF3Tola|k|E*DtwbClWjo1O)^XDj^{OnSe#|h5Jw#JRXli+n{W05V8n_D2WF$6A?Vo z_B947AYuul1Yi`O2a_{0Blz(k2`*FmX9--vS6ZIvOPgd3LnSf=C=3!UFKI21PXGU* zT<+Is5$FT_rT2dli~N!V0Lljt@#BRo+2A%|4ppi5L|&QGZhdn0F(~|4iC^NTX1`$+HP&T7c z$$p8WW0EwFp}*;MqBeSV9fJo+rrm>=d}7qRD}FA&J4CJZrw0UAwbdRnj-I<4_AzR- zSaO&)vX|Gy842P;>_l}2+cFeqYI`PBLov5L!azK^^SV)|*femvx&8&g?^YfD9Z$s#n27~tCpE`w)xA1n7L8|T zJ`_v6$pzshrNdXxoipzmw_FKYye%bJnh%2M&Y|wipB}nc$%5fH+^QMs5win$x+aJxeTV2NH5f}Vc2S_O{tA*V z_Qbv($U?+FX;2SN)Apz>rj<#nBSS!qa(#&*Vm5y&Q|dbUPW!hD>P?l9bsL6OhTH2a zbB(jFI5uH?#5YuTtK|DPQnlelO9hu-?63$|95zh4SKd^8XGkY@qdS9AQG`Db(l@`- zJ*btDV~W?9p=l?}D_n?_qVPDJC{wP9sXbXWa2s&m6q18htS7*mHd);q(C_ z+sBzO>|L1no+NfZb@pXX^MprO|6B$wS$y(m zX+79;L|hiHu5sAHvc8R~_amR$9{h}QS*r{-~{g6=)$*WMB1ZVI(I8FE{?$d*vU{-j)FT(cIBbHqZX9cRne#=iyCg z>!`1|#At45$jY`?=l#)^se+z*oiig5T*hZ;7Hu0*JrNGQRxx9)ZbU2eJ>g~@GTJr_C!9zK z?b^iXjl-3MmMxUgNG#={iEQZlAZTN^YvY91DXlUs?uO~j3zU&-ktWbOl?D3|;~$=; zSZ6vM4PT$;+*UoaqHCtzM2+=->hPHQiNXL{qyfqg258h8J;~tmwye2lkek*Kb9A)D zn?QGDgW>zM0G!yeIX&9y`N^3rkCkj^u)49!o^{&%@XMpCj~3UvN)`(-3j3tIU%zAb z!8`N%HrK!0e!g(X`?uu^NPOx*s7srcdn=F{+iI|$cF(lFs)SiJypeo6+d=g}=Z7KX zv5>L?+gJ;D({)I2&R(&lTcp2}_fL{2V(n*FeE{7A{2q5_UmgY8qr_jTgg zhwZ0V(x&`v=#XHjo7RRpaGf*;vL&thcVb28+vu*8_K(4bJsoHB%=-6w+%Wre8&#<~ oJ1O{MVp8q2NBcpmm4HKv3O<`-pmxzJZ28X=&Bc>iy)#_=ADVFqBme*a literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_head_01.jpg b/app/src/main/res/mipmap-xhdpi/ic_head_01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d50a968cd738af3730b9bedecaede779c67b77e GIT binary patch literal 2038 zcmc(cdoESu`QK!nueABLqH!5pMKEckY1|sOy3~k@O!k~PXLfe~ntx`W_n+rI-}m{v-}8M` z6RKB$j=zte4*&vzfV1iYs6>D#0MmfNpc*h36b6UGG!Z%o#GX9})PC)KI{GLB1AUa9 zp5b8&Q$r(+v7X+MV@EKSSZf>WL#DQNwpMl)R@PSkhJfI3I6@Pli$LgF8R{8Y{q9md z0g#%201!YxXaI}^L69I-H(;!`3V@&>;ManJK^ic)CPb~;>i{4PFbD#HfT6#<0f8YJ zP$cYtnLS+h44U|HLgm3fozJDH4hB=PaXh#rwRRM#*1!N%&4d2( zpBjhMfF3YAqig>$49!CkZ{rejhF4WT0{heuFcN|UP6Mw2u(JQtUmgB2-S!yQw!=QO z!KkJp6l2h++#35ooG(sFOjKbokUVUa)BF4c;8ef6imD^r(!5=%fVFQDK__W zhb9evy&v?J7&Y7$vFU!YA$W^qV7l~!(FW)FbV~8t4lDYVJly1ag{Ca&9M4AZ75yi# zrRg!}z6I~(O{!!rLA1u?40l<7idt)>y0DvT+UF;2@7L%5m80x+kPZdq?;PmNIREZh z{0i;z?x442OsspQ9q@_Q|3t(2qDLseU1}<=Da<^GY(K z&8v~D0^nN9j0I7W*0y<$_*`a*E-PT0ZNk_X_{t&o+F};ILEbW(DXbnJJGQd?F1jnL zZ_5jB%2q7W2T=o0eb%P)L$cgez&K4z8*mAVh^1$rOH*89n|v9gtd8u>#HT!4KSr`h zQvpp8dDXkKhfa9Lw_x2s0{X_B*Y<_@rKSVBwY7P>sAXgC!H)>>(wbt{)r^IalVsM# z0!G%57dhA}!1F;prQ^Mev`Ph#LQWIq1m(Nd9csW(fl1cXopf#c!hwYAgK3?<5Hp^o zIN~LOqg5UBhP+%5#N;NrFC;i|e)<$yr!qp8u;!svQoA*5`@L@cSaEc4 zqP=TbZI_X-%iGm6Z`O|fDn97;KLf9hOcWgzCH#f@P~txtRCu^x<&C5km*}BKzu5Dr zx#AmPSH-&N+>H02i;c87Fpm87lS^p+3->{q=Rq>DL*jp9rVF)%INgYS~LcH5os#n41wWcC7w+ zhOgkk1f#@6ZZ&^DKa*c{lo*-&t%BY-R5Yz4y}LBtJrFB$jhvhaJ*+Z>YUHRqb;}YCi zq`ByBElDi=A*&Pl=|%C@3G~w`8Q&$yBl*IF z0z-RSUoB?OPX%)7OddbpQNYr~D?_ZO5H zN$W7fp>;`R1d)3wiyX_-&e~Wk3`@MWI<%MBcecSVd!*AKeBGQ&U^;p%@Kt~&t8~?o z$vj>Ym!50M%Z^G_4n#gJzNDC<7#Gl;Mr+9A%QA!A>MueErn&}Iz@&%PrV%!;ptyF{ zK9GlKixkH|V6Fs~ z^sxwav%c6~6`-i{tGhpep2V0BZZh)IR%To!#Og-doO`8G{@s*kht9qTHxG%LUJFi) z5h_7J~b>$0u=P`6u8a3-{r?!6lzNi+l z>_fTV-#KnKYG(p>Y#is?6>l%}o}mQiZpOwh&P168NF25wH}5i8U$UgyS}xR#GG%Fa z+M}$(;PkgMVfzM8n(>0n{M}j?Z1T*h8;=_af>}3dc8nLhr)2j99`obIy;2IJQ?zpj jA}YLj{}i(?Y*ZxKwT|5^>xp{;IRE3nqxt{cRg*shOV=LE literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_head_02.jpg b/app/src/main/res/mipmap-xhdpi/ic_head_02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55dad3a6b5440553a2e6b256ba8f1a0e9a3d1281 GIT binary patch literal 8703 zcmb7pbyOTp)9>Q$uECeZWpQ^F4ZAo5Slk_ggplA6bQf7P!4^;OU?I2%f(8o-!8KSC z2m~&9-sk=9J@=gZ$DKJdr>DE7y1Ki%>Q~iwi+5iEHVy$!W@cU~kbsCN7z};@ zlu?itlNS;Pi~VJSK|nx2OhimiLP9Ub&de_M|9#!{04VSQBY+Vs3=RM$1qK!c#@zsb z834e<#QH1l|6F)DxER>@SeW;%M&tktOl(YSToQbIY#f|>5)4c%05%QW2VI1&01A%OursGtFngka2(sGHz?ESM&xFt*0r5qfi`qVT`n`Z7=GGYM! zul}&G@44dO-nR)-+zW$&g^7cOjrFfY7?>1Tl;ieI1TuD@!c|j z_@3y#nF62$cuHgL!uTg0Il+KdVSY`POhbk@!Lr`+pr=n9)6PQPNiZ-fsD%qblE&;r2a+w`St3wkc31{(04gDuE3ETM^x7u%XzFs~)e3_B)x#BK zI;)IK(i5{q8n2Ahep)t_JP_xNHYZ)dTHS}yJN2;_3(Zx?dxz>VZ^;~O~9BD2i5w$9&9{u?L$JY)4G*_8=m3nH+F|HFH=R2s7_;mcD}!o{&t=oj7NI;TKG1X?sY`s`o^*1 z^}p=?(xx;V!A@fy*wugkhc<&6Qb|2vrbrJO58RU7=KVz{Cy|5GKmj}|t*rm3Kty8~d+rH%e)qNH#B(_8G+ zNFDzXOlcbsM*}@+%%ALhLzX-z<(aw9xJnskkKa$0M8mSZhFYWEz|4AGE|D+|q z=lhq|=$>z#ba%xi{kwGJX{$o@Q;}d*!=c5WRhNASo2EHG%f45m6gAu;-3@+MB?cVY z6xhOUhz;&%{hx)EV+Z+Cfk(L(0bi$1?*(b$jXXwnSKF7To`BKhh|Ju~0#wj&(cD!J zZe46IZBhW@bIC>;b0LUqBAH^HyPy=9)%-&R*AV_xQqkq+f%s<5G0JM!aesXb(axiC z2T+bvzXL>XKSBJNC3-}12gt52vb_V~6TfqnSE!1ZmMYn%tQG1g8QiWGPn%He+%{+j zuv%d-F=`AF_M1Bmj#X)vfc55*tSA#X=QfRCWbiO%Pv$#1KNKg_MDwn zxQ@MCSU8l`j8P0FhcEG;W|XDlPiB&ljvh(K~Zaxw|YJ|p^~)g{A;%_&lx z+OG^Bmcb<54?u41h%$a>E7Fw#zQDAk3fC+G^cKjU3Vby;KH-;>pbCZh_?LPdI8n5y z@2`KRXYO3@TzRD~zZt7qp)*98xd+@{_3uWMiKRGUr#L))F(_%7>{`Fz*Nxx>XYXeb zSgLY;hC-KDOuHK%c4#*&(H`n1HLyrf=UOUI&$(1^U%KG);d}Sk{M?b75E3mnqnJM# zD68G3EUXxX&BfE6eXoYb>@Ti5vKQ1k#(|v+j4x1H`@KCqj|RV2r|Y-ce5P>A;yp}Q zr7MH{USJO=Ti7emDOomtMP6zTYvE$aW%}ai?Z(o;H%MB)*t}Y3^ep!Kyv6*(UCuy_ z-A|RMt&g`^%Yd{xxz=&c#4X#$*DH4UY?uNd(bbyIS46GrAs&n8wVh!;Nnd?f`-mXxuoa+}@y5ORy>W7LuRe)0Te`dZnQU-EXRSqzG?$(P*+FNC=ti z_u2@0$F88bF*)N~XIjd;lH^9^xsNSV?WyDK<1ut)47bcKQ{7#O_ins&!RCqQ*pLz@ zT;R8Segq2&{iWeT=ODoQgYYe+be1)zdg@(`SV(sjw6D`6|J)H8I%1*+6O|k1 zWJ-sgmwIacc26-h*>UqeJto(y_ZsTeZ%IiLwzhH>{R}mUe-MddYU$RT1@f@61dL&6m$74Du@j&swQc3c&Z@iq=z)M zLN%+$xU2PxSrw+`7rH>8ZjR$TjO$r8nv&34|3mNCPq|-1hz2-paHF(3jij#D`s?BX zF#FdE>nx*oVYZWxQq+N~8|J=|U^-y(+CKADw{E6CxK&^gA`w@=TEbu3IIqrilIX<7 zMYNSZ_H)IxX0J{~R^hQZru4W4%hiC=_#iicO5-Kwbr6!8gvU+kVysY@os;LVtAh-` ze%l@TlO)&NWiQ2D-zY29ZAJA{+8AHYD0=nP4(k!ap+%C(ohNS;DrKayj!i)@>OxT);0mHEErbmMkG6X z9RnWn3z{q13H^avu474&0Z?S>_rRbvs+mG63Q)Vt`~Wb^jxpjhe*_3Jp| zyQF+xSPVJjF_QJ~)?pJyQr(i}o_YMz69V&pC5&IwYGY4P`g-+->wRF~j_Mkq^2{&e zxaUh-wAOOY4Y;|<=#gS4#7Y-xqnG(H=d1<;a4Rz0ADHcm3RXqU1Q`kR8O?a*o}+3V zRzczk)#hRD76cZ^LY%MKw4UjZod)fTp#`291tKDk=Ia}KPiJma!^6!5IV!q6uO>km zt`chkf)tCf0^S56AF}~#yx(HJ* zB+Z+ML58KUd95|Q)5=8driAe@l&x<{gBrUid;u+4G$7>wRL+-3Jwf@rqK)*Sk}C2n zfk*LsguI2-*Akoc}Dz2Q>>cfoF-2R-g@mGE+ z1yLT5zidZUmLsY1jMqHFBKKq7N*}Gu67M4+SaR*!utn_4k)hM+)CYL)9<+S_!q*Hj z^_8Hk9_w!u4~v*IW8%*^Ogt6_E>egWS6!P24t%qz%VZjI-YstoWV zFD%HgZhZ4uGMHCQWTavQttUh}9o)05{IVamzT_gbJhHxJ9ImCsyJ;NwlX0MtJ}-0i zB06tWMmqYlg6ber{*bLEm_LW$&nG2|JYGVbS=`cD=pcot&?YoM$w=* ziv8rzQ$vaw^U9G9+SzE)cZ6#Q8LjJq`tHl+;94ww&xyh~nmmsa4e{@Mzu@S)|NUWS z5rGjF=||kodgd@%QK^ER7Am?qJI5A<@uX=xviDpO5}`@k!5rHDL;@BxUrvIyqXB95 zkQkUd89#X-;q#fla#(C;yL#TuXId6M@9uU>3wMA6B81dQ%6w#${dM(b8T(0m5yJFo z+BDV{&__gg?C@7Qj|y0-9xiGtX~EkZ8&Si2)AEvL?l<>rf>-A1`#TjtMr&nI0n6I8l!OYvd zxb8?HM&P>pSt0NQw3&|SZZ?Vn%M;hCz5y4#`Ukg+(e&C&If2~>Z#;D$W{D0_grx~W z;*Y2aYpDM07*{R>_A8wB9iy8Pj6%L|nrnECObJ4MSUYT7NH(Tq;lc)boX{fNjK;sKFl%eh;+9{LrHAQ0? zuQO&(hxY9`u8c-}c7L&}%=hko7OYYMO?PvzD^NUP7Dsw(X7GtRbJx(u6kz;?!LCEa z_#0$;XRJ~*tqK=^wV)`Vn6&UC6Lpu$`Mq<>WAffdr~S`=6k_+Yx~ z({1$ZF^Gls!FRe5EH8yP8E{qLQkXH)zp;)Rou1E4@cDEvWl`qUxyF-pLBDAt=7>`C z4pUf#7F=GiEmg$=DXtFBi(i8c61$0=S)rVFM{xXcq1pw;~^N1Vm}@xac=+ zsf+Woed5uzV0mcnP`Hc(((oKq|Dyn%q)gX+ye6O}nxbB(UrCL?Uvh1kKV@$54qd9s zM!ESoe|17+R{rs@^;8R%wRHGN#c7rCaMR^23Ti(481q-DXV^AVRXj7FF|t)}h0}Mn zIn{_o3kaUrtbtJ;$1?=6yF&GQai#5i=k_uY`4qR6;jWKaaap{d%bt9jVj8V;`RTD1 zJ@GhTP?-NV`GZW&mD-jSyA}HVzYq+t+SjkIh>wogvpKY}g%rJ9RpZm@LY=woldEvA zd4_WRz~{8H6{y?8BCjB|+gobhKRE_Ig9G7~jqg#`gPaH zieIGD6vVnZvLeag+bL}(CrJ+`RJGOv=!WvV;;fvCt5@9cwKoBlR8zvDANNX)u3tV> z!4{HG!6sK{BWW19%n%~1DV{udWOs2ue-MNT4GKORmfw>imSeZ_hqq2)fXij)TRm9! z6r`p~$f6+Hq#-gY(^$_s8AZ9$oTBv7QCehgR`&zWZ9c^xXMMo_8XN29Egr}qgkM%; zc@6U^^;jJil02`Krd>`ll^Skp0mU=TaRD?M8CDQXeqM{2j;-&b`|O9@!eZPHm@MhT z6g41$`{RKNv^QgW`>GG49aaQ6BiUjPyPA+>*j!G{$Tlst-I8Y=CM-)k>CnSvC=($q zdqdNVcLce>nGTq#BKj@Ie9Z2j=lzt_TST%ej~`!6x=e?w&)H9-bPoMIDWVxZM@%Ot zBv_0scE6Mnw#fH7DcSI@eSNbJw0gD1kHgn(cePPhV{V#Zg8`eVvWjjGQmCH21Nctz z1<10MNtgCaevq0_HCtdu1u>d{1(6l7$1bwwDbwlN6U^&-MjtmoIhN(XsDddIVKGd| zW=F7UaFf1?SkRCuB8%Hy74bCb`Ggwz1bWvNXvoXobX0+(3h`{uuS;>PR&+gg&&kul z9D}fxD=(I-!P8`A{sb5wLbX%GbZof1jSgP;ZPC0&WGpS>Q6wA2I=L8YF(`jU1Agy) z*;(01YR!9c4^?K~ja2P&bQoFWq3dj=qV} z|6m!!KUgN86>^VdL~6DYCrr+Nhm=cp^?SA|D-enFZYJSM;Ogo(gUTJ_^Sor&8Y4xC z@zta%_t!7jqVU;N?wAhv3ZNw_+4BvdyY%9C!O zqJtk8K<;m*ry^dm{QEP8@h_-Ul{Y(xHGEjB4#R$ojyXOBg@4LLC_YnQ+5PIn_*=dM1RcdYOb<``3;dr+VU zzX=zF6&yN2EsQ(L4;de~`Q8Bt6pWHg(@(bC1{!URn`+p&#UTXPXE<0sLy`@OG>8F8 z4WVZ_>5A@fg;|&2@L{PE{-9Al;iz5_&%XE)nU@fLuaMWJRUQQ8WXkujaIZJ0eW?{# znPp;Aq4yB-s43{(*v^u-uR6zRa>01eUeB39qiulY&1U+OZy&7*8!;zd#*Dbj`ba_+ zDIH9mN+$YKYFv2)Lx7}urZpsxVm?Enh#;#rWo*QgpA>jjPWs){&FNhqJI~6N8DQrh zYa150ojNrnut3SKlbD`7ZQPN3gT>?M40j3P@4(M7LYNCQzr8DhhV$N*seRYC!7u-F zZ^-PQh#Rf>Iq>OrE&VlQnvR{LFaO4p%=%}8l6hNZLarv;omDR5?zRQIPeG#oIVknj zCUHStYT0FL2y+r(xLdx2@Rqc49B$ZNBM?J}{{FLXVBm)dLaNZzuzk24ej+#GChG zy80U1XxYvv+WO{(JlF2wJuSHkwrbzK%HEqn3L^ZNLG##J3ANx*JHeR{Nvq!na(J5O zyNPXvZmoU;GKN_?399r~tvk>tpIwSd{&blR)z_T~K=&3rG%E_0CjI)ei<^9OI>|G2 zP)F*Fp?pOB7veK={{_h|1(D#mE&dRTdt7zic!1LEn|GD}aYG2Mo6z45IGhD4jJIkEmBP7H2 zYIlo`DZB)D(8h;+?i}Y=K6+LskcL3;{VEXJ+PZOohBwMU|?fQ?KWj zD|s(){t~a@oMER|xN=y0U8nJ6Fd`|cmwFH3^yMx47w?AwyIp}F)Fb02uDFBfH+P(f z`y>#>eisIpwo1Hvx4BWFnWZ>w({+4laiUf~#*mYGJhh9ucDk|UWo1M^SH7n+4~dtW zTKoHVLhUU^-K|&Fp>=h#Z(EL)&xhku8aVhUUzW~`WKE2v&A)iYAEUf1zE)J}z|9V- z2VkVv*T-(vyMZ+Ja(I77;d5f+vqiDP|N7i}t;1(Z1~pIV`~57dfEIn^*5f^+S^>_Y z;wH2fKw>}gJZ50p3vP3ZXQ_T8>ei3s#O6!W(_2LLjfJR@m;J&ddr@!VT?^qN5NIivAD z_UgqLgI8AFAnSbVP-7a(^Su8+>yjS+^K$hgbC83X3D0`w8P<<>!#tcE0pq||DBsa{ z{=k!NI!zV{JQFczXP`6Di$L^(!RBBb$*=tszB*HAihkJBpbwf1`X5@6?QA~4Kv1Vc zjH39U;Ch}|fhxkKsDnHIR=76w*%Vsl!|*2sBiV6&9h2AJ=EBQuuCBi6(%a|eZRs!N zWVtXi)=84|3m#(?0h=vi=xhh{!24v>j`7=Bp0#qBR}8c;F|QR-SGL&Z zzbP_Gh0S54;ln6NoU^ICv}orih>m3c+IA_>ykyId(&}m(lH4<$ebKSQ$K>6SPz9x< zpa?aIZQ6^N!>)^(*oypzP}9Qu7zF+$`c$tQSQZ~w6OghbF7TyY$=tu}4$#bF>!>)E z&ne!7mZ%JpjU}uEZjux_Qhp;Hrs$#=oo@xqr#@|&39)Dyjtfktpo(uG&gMdM`0Ja> z;8_|S<(aWxeou5|GWNUAOeC29Rkyzu51Yv@id`!|8GNQ=t^80s@{*mzFa0GK`In)X8NwiWApoZ=6kura4E2Ux{t za9(3_n8KVlFK$}I^p{455#uC43lEzf&X=d#(qZpq0%N6kmgFt13#Rx!O-ACM455y_ zyZ@|RwFfda@n$)`{AR}YzJWU1D!5o;g;F>#^(%W<$etDLXifw_(jUq3M>UiWANINq zF8GRgp{XAKKo2J-zYi5!_~~ns%bLk?Kg5cdKk(liD3$Q5?t1_(^j`q}uVwiQ zzz4N@n-n3BG-V#8Ee*rwp0J2-X3aTdGaR#f-jvSWF5Cg&MH$t+Icxy-qpLca4q5#i=xl_VJ3yY zveRbp_EF=eAqH+K({k~R>Xlu}#@n{2#Um9r&*|Sui7o%yzj&d% z*4I4c%C;;V-b?-0>p8{HMk%sbTDo})x~Y;&WR^2wr@}&FB_n#bxdK#YO3N7QoFj}^ zAFx#`>uTwSw%eJad+V%`#efCtacg`sY4f2BvtE3#?c__5Cz$ zld2!=BtBc0p#!(8%v7KffV(^*-z%gD)j!knXNb_mz~s#N*6;E zE!T-oJqxakNy~{F2&!!|sZK%Uvc;PAbNfk1fQ%+NK)$!u?!iSl%8bTRB$e+kj#igJfm&PUbU-8IFUiX;CXc( z5`W@KJ%W8wJP|_p<1qnv3B_Au1ZfH&d1JvAAna~I%%}j;W1_% zv%E~i(t+P$Hc@u?a4)Gwei-(G`oZbs$L$jPFfXrqN1oe2XEgJXHLKSj4xU-bhGr~$ zU|Z+tI%1eQAF`mcWvu3|G~NO%cmTE#xmB!$@V_wm*gm8hZuX3sP42lI{!X&A(sQe{ zku|+Vg&FO%2Joi^k^6m@gl%=cocq>YJVep8u{ib8I8mTtl z@l-7xV6D)D8;C*%OmI%@ap(-+$a*a3nZ>bXR=LS$K!aMEgb;CuJJTc2!h{@*I#&l~ zifiI4Dck%rSCgwX>j52m3?1(_Z`A^IRXmTnoao=R=BtOJj9HlM-@fn-%;rTJ&8eAC zWA#j66#nA2u2PCIw+XEZW{&tpxuRcI&43Jn>A3N^nZFM98k9fcDl5)aU-UdS ziTJd_n38$5_;XsmdK(;bou&0@c(Z(N#j7(fkyfSQmiouqgMP;VkHy>=hbvD*cA*V6 z_uRNdx&T2F%hiULy8_Ux^_i-Kdnc_Y_bs;M~ttm5(zVZtxjNs&viqDH$b*NQ(` zG6y^a-_*&TBkMoL2In=E{^N?o&!!Eo`2rU7j87+Ja|X{4h?z4OaaBdjbvTR13oF6X zf?SSyHdKRwc&kF$zuwCE9+hL0tGTUwWQ!*3HnehjD}71{{l!&3)kLmB6Kr@WUH0}x z(>}g*!P{fTAK2s?GdyT!1FK&o;i7m{*?;G~D3>Tkm~8HBl4+1-~6$i(*rN zX!HN6n`)v+8({B2@WE)pyGh}`qF`8uMs8+Nt1DlhWYf@9;{G6~hd zS2B*c`3zM9v4ZY$#-&{-w&;zhVu42gEHORExcQTQn^)0^x*?r^$4E}ny&aNyKNW`q o{|*A5qqfso`oC4?Ci)Wq~U2RobsvA@Q0MM$dq4lq5{hy#9 zzgp+B{O(-=?1<7r0l>Q?>N6X%s~lmgrmqD6fjj_!c?AF`S0&6U06Z51fWOuNAe#jM z%pSN#J-Mp}`ICpL=qp~?u~Jj$6(~K_%)9}Bn(;pY0&;M00H9x2N23h=CpR7kr8A9X zU%oh4-E@i!Ac}P+&%vOPQ3warO9l!SCN)ixGW54Jsh!`>*aU)#&Mg7;#O_6xd5%I6 zneGSZL3Kn-4B^>#T7pVaIHs3^PY-N^v1!W=%gzfioIWosZ!BN?_M)OOux&6HCyyMf z3ToZ@_h75A33KyC!T)-zYC-bp`@^1n;w3~N+vQ0#4V7!f|JPMlWWJ@+Tg~8>1$GzLlHGuxS)w&NAF*&Y;ef`T^w4HP7GK%6UA8( z{&ALM(%!w2U7WFWwq8v4H3|0cOjdt7$JLh(;U8VcTG;R-vmR7?21nA?@@b+XPgJbD z*Y@v&dTqo5Bcp-dIQQ4@?-m{=7>`LZ{g4jvo$CE&(+7(rp#WShT9&9y>V#ikmXFau03*^{&d(AId0Jg9G;tc7K_{ivzBjqHuJx08cx<8U`z2JjtOK3( zvtuduBHha>D&iu#))5RKXm>(|$m=_;e?7ZveYy=J$3wjL>xPCte-MDcVW<;ng`nf= z9);CVVZjI-&UcSAlhDB{%0v$wPd=w6MBwsVEaV!hw~8G(rs`lw@|#AAHbyA&(I-7Y zFE&1iIGORsaskMqSYfX33U%&17oTszdHPjr&Sx(`IQzoccST*}!cU!ZnJ+~duBM6f z{Lf8PITt%uWZ zTY09Jm5t<2+Un~yC-%DYEP>c-7?=+|reXO4Cd^neCQ{&aP@yODLN8}TQAJ8ogsnkb zM~O>~3&n6d+ee`V_m@$6V`^ltL&?uwt|-afgd7BQ9Kz|g{B@K#qQ#$o4ut`9lQsYfHofccNoqE+`V zQ&UXP{X4=&Z16O_wCk9SFBQPKyu?<&B2zDVhI6%B$12c^SfcRYIIv!s1&r|8;xw5t zF~*-cE@V$vaB;*+91`CiN~1l8w${?~3Uy#c|D{S$I? zb!9y)DbLJ3pZ>!*+j=n@kOLTMr-T2>Hj^I~lml-a26UP1_?#!5S_a&v zeZ86(21wU0)4(h&W0iE*HaDlw+-LngX=}es#X$u*1v9>qR&qUGfADc7yz6$WN`cx9 zzB#!5&F%AK=ed|-eV6kb;R>Atp2Rk=g3lU6(IVEP3!;0YNAmqz=x|-mE&8u5W+zo7 z-QfwS6uzp9K4wC-Te-1~u?zPb{RjjIVoL1bQ=-HK_a_muB>&3I z*{e{sE_sI$CzyK-x>7abBc+uIZf?#e8;K_JtJexgpFEBMq92+Fm0j*DziUMras`o= zTzby8_XjyCYHeE@q&Q_7x?i|V9XY?MnSK;cLV?k>vf?!N87)gFPc9#XB?p)bEWGs$ zH>f$8?U7In{9@vsd%#sY5u!I$)g^%ZyutkNBBJ0eHQeiR5!DlQbYZJ-@09;c?IP7A zx>P=t*xm1rOqr@ec>|ziw@3e$ymK7YSXtafMk30i?>>1lC>LLK1~JV1n6EJUGJT{6 zWP4A(129xkvDP09j<3#1$T6j6$mZaZ@vqUBBM4Pi!H>U8xvy`bkdSNTGVcfkk&y8% z=2nfA@3kEaubZ{1nwTV1gUReza>QX%_d}x&2`jE*6JZN{HZtXSr{{6v6`r47MoA~R zejyMpeYbJ$F4*+?*=Fm7E`S_rUC0v+dHTlj{JnkW-_eRa#9V`9o!8yv_+|lB4*+p1 zUI-t)X$J{RRfSrvh80$OW_Wwp>`4*iBr|oodPt*&A9!SO(x|)UgtVvETLuLZ<-vRp z&zAubgm&J8Pt647V?Qxh;`f6E#Zgx5^2XV($YMV7;Jn2kx6aJn8T>bo?5&;GM4O~| zj>ksV0U}b}wDHW`pgO$L@Hjy2`a)T}s@(0#?y3n zj;yjD76HU&*s!+k5!G4<3{hKah#gBz8HZ6v`bmURyDi(wJ!C7+F%bKnRD4=q{(Fl0 zOp*r}F`6~6HHBtq$afFuXsGAk58!e?O(W$*+3?R|cDO88<$~pg^|GRHN}yml3WkbL zzSH*jmpY=`g#ZX?_XT`>-`INZ#d__BJ)Ho^&ww+h+3>y8Z&T*EI!mtgEqiofJ@5&E z6M6a}b255hCw6SFJ4q(==QN6CUE3GYnfjFNE+x8T(+J!C!?v~Sbh`Sl_0CJ;vvXsP z5oZRiPM-Vz{tK(sJM~GI&VRbBOd0JZmGzqDrr9|?iPT(qD#M*RYb$>gZi*i)xGMD`NbmZt;ky&FR_2+YqpmFb`8b`ry;}D+y&WpUNd%3cfuUsb8 z7)1$Zw?bm@O6J1CY9UMrle_BUM<$pL=YI^DCz~!@p25hE&g62n{j$?UsyYjf#LH~b z_n!l6Z(J9daalVYSlA?%=mfp(!e+Hk%%oh`t%0`F`KR*b-Zb=7SdtDS4`&&S@A)f>bKC7vmRWwT2 zH}k+2Hd7@>jiHwz^GrOeU8Y#h?YK8>a*vJ#s|8-uX_IYp*$9Y=W_Edf%$V4>w;C3h z&>ZDGavV7UA@0QIQV$&?Z_*)vj{Q%z&(IW!b-!MVDGytRb4DJJV)(@WG|MbhwCx!2 z6QJMkl^4ju9ou8Xjb*pv=Hm8DwYsw23wZqQFUI)4wCMjPB6o8yG7@Sn^5%fmaFnfD zSxp8R-L({J{p&cR7)lY+PA9#8Bx87;mB$zXCW8VDh0&g#@Z@lktyArvzgOn&-zerA zVEa9h{EYvWOukwVUGWUB5xr4{nh}a*$v^~OEasKj)~HyP`YqeLUdN~f!r;0dV7uho zX)iSYE&VG67^NbcP5F*SIE@T#=NVjJ1=!Mn!^oeCg1L z?lv_%(ZEe%z*pGM<(UG{eF1T(#PMw}$n0aihzGoJAP^UceQMiBuE8Y`lZ|sF2_h_6 zQw*b*=;2Ey_Flpfgsr4PimZ~8G~R(vU}^Zxmri5)l?N>M_dWyCsjZw<+a zqjmL0l*}PXNGUOh)YxP>;ENiJTd|S^%BARx9D~%7x?F6u4K(Bx0`KK2mianotlX^9 z3z?MW7Coqy^ol0pH)Z3+GwU|Lyuj#7HCrqs#01ZF&KqEg!olHc$O#Wn>Ok_k2`zoD z+LYbxxVMf<(d2OkPIm8Xn>bwFsF6m8@i7PA$sdK~ZA4|ic?k*q2j1YQ>&A zjPO%H@H(h`t+irQqx+e)ll9LGmdvr1zXV;WTi}KCa>K82n90s|K zi`X}C*Vb12p?C-sp5maVDP5{&5$E^k6~BuJ^UxZaM=o+@(LXBWChJUJ|KEckEJTZL zI2K&Nd$U65YoF3_J6+&YU4uKGMq2W6ZQ%BG>4HnIM?V;;Ohes{`Ucs56ue^7@D7;4 z+EsFB)a_(%K6jhxND}n!UBTuF3wfrvll|mp7)3wi&2?LW$+PJ>2)2C-6c@O&lKAn zOm=$x*dn&dI8!QCb(ul|t3oDY^MjHqxl~lp{p@#C%Od-U4y@NQ4=`U!YjK$7b=V}D z%?E40*f8DVrvV2nV>`Z3f5yuz^??$#3qR#q6F($w>kmKK`x21VmX=9kb^+cPdBY2l zGkIZSf%C+`2nj^)j zo}g}v;5{nk<>%xj-2OqDbJ3S`7|tQWqdvJdgiL{1=w0!qS9$A`w9Qm7>N0Y*Ma%P_ zr@fR4>5u{mKwgZ33Xs$RD6(tcVH~Mas-87Fd^6M6iuV^_o$~ql+!eBIw$U)lzl`q9 z=L6zVsZzi0IIW=DT&ES9HajKhb5lz4yQxT-NRBLv_=2sn7WFX&Wp6Y!&}P+%`!A;s zrCwXO3}jrdA7mB`h~N~HT64TM{R$lNj*~ekqSP^n9P~z;P zWPlRPz0h6za8-P>!ARb+A1-r>8VF*xhrGa8W6J$p*wy`ULrD$CmYV7Gt^scLydQWbo7XN-o9X1i7;l+J_8Ncu zc=EX&dg`GRo4==cz2d_Rz28oLS`Suf6OCp~f{0-aQ`t5YZ=!CAMc6-RZw#}A%;s44 znf2`6gcgm=0SezTH9h+JzeR3Lcm;8?*@+?FDfguK^9)z(Z`I!RKrSAI?H~4et6GTkz07Qgq4B6%Q*8Y0yPc4x z8(^YwtZjYIeOvVLey#>@$UzIciJ#x0pJLFg=8UaZv%-&?Yzp7gWNIo_x^(d75=x2c zv|LQ`HrKP(8TqFxTiP5gdT2>aTN0S7XW*pilASS$UkJ2*n+==D)0mgTGxv43t61fr z47GkfMnD-zSH@|mZ26r*d3WEtr+l-xH@L}BM)~ThoMvKqGw=Ifc}BdkL$^wC}=(XSf4YpG;sA9#OSJf)V=rs#Wq$?Wj+nTlu$YXn yn3SQon5>kvtkl(BT2@T#Mvca!|08g9w{vm``2PjZHg=b<1c17-HkzPl9sXa)&-Ts$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..3af2608a4492ef9ae63a77ec3305aedda89594cb GIT binary patch literal 6114 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/msg_chat_voice_unread.png b/app/src/main/res/mipmap-xhdpi/msg_chat_voice_unread.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b2b50b4c7dcb6858a1f08b0f0ea938aca28848 GIT binary patch literal 1210 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>4nJa0`PlBg3pY z5)2HCk(nV8B@w}FfdWk9dNvV1jxdlMg3=B3ERzPNMYDuC(MQ%=Bu~mhw5?F;5 zkPQ;nS5g2gDap1~itr6kaLzAERWQ{v(KAr8<5EyiuqjGOvkG!?gK7uzY?U%fN(!v> z^~=l4^~#O)@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F z0GXSZlwVq6tE2?72o50bEXhnm*pycc^%l^B`XCv7Lp=k1xYGr(Ytv@c^oVl;|{p|O9XMPV`?b8$#Wjfn!`|Z9}uh*{K6}W2Mp7mO5wUfl0 z;w6h2Ys(As*L%lin61s)zW3Oq|Awc%(zMo_n`K44KL0uJi&-ab|icG?X51N+NxJ%!<)V?oedZK3O z)r>1*kA7%JOcZ3^lH|bkokQ~Av4<-UUgMec~biceW%;3(m)7xjDjiI?*4rO$ZU9?DeGmwT_? zkZ^ngSKOo6mXi-T-YGM1iOF3R+`#eS{3FKal8fK0S7Y0#bYayJ)rR1Qsd1^hWF|-) z=@M9V8rfoUApwCXgndeGH_@!^jxo>j> z&ptS|lcj4$OXgSkLx=q4MN0p7+FVguu|ws1-iyCxGd=}GsIC#yRh)d)R(W&bmxcO< z9tSqe5AE-(3SWHj+@6EH?t+Xe6AKt(Se{!+-_cm8Tl>PBC&_o~`ps9bhOxfYcIv&e zNMxd{T8C)!{3neoA9T*L3}Ku3_2Ry1ef{chwauqU_J63Y+-cUHc5sdzTjCw2EmJmr zP|+{I$k*2X>aI~%^3wc8z$Z?J8MSw|o)(;S m^7mxnpDZD literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/receiver_voice_node_playing001.png b/app/src/main/res/mipmap-xhdpi/receiver_voice_node_playing001.png new file mode 100644 index 0000000000000000000000000000000000000000..f38a0ce723205939bb36335e14ca5832255122bb GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^l0dA)!2%>1Vt2Ix$xKfd$B+ufWQipSB0Ww2eU`t@ z|8Orsfsg58{j%WCe*f%u{!(Es6j;T`;y-g1GAFPRqHx%{7#=~JPX z8zyu3PCJs-m}OP^lIOJ~Tav;QtEmNH?{$D0J1rx&^khk1Wnw6o-Wk}k_|p`S-JY&~ JF6*2Ung9_nII#c# literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/tb_bottom_images.png b/app/src/main/res/mipmap-xhdpi/tb_bottom_images.png new file mode 100644 index 0000000000000000000000000000000000000000..91ef677e0dacb1dc3d5f394323f75af42abb157f GIT binary patch literal 2828 zcmaJ@c|6p4A2;M0R~hBnGz|)2j1gvB%Q!-VMwqNH&HRjsIgHVaBc{k^(V=xEo5wEY zSVD?i6FJJUZPqxFu+>(`&kD0dJKAcWKc1f7>-GB{pV#O8{=7fOAKx?|FE=Hq7F0q) zLdpGrGeNxbHh(!8@rt2XJ`!)592X+Tml?+4lGuQRBZYYkfVCWE9#OZiO*L?Z;S~TNuO5%}|y|GYk@CVPb~DnqjbJDEP+@ zA&$nTgkcHJt{-EGZ+3`q4u^$BBDq|yDHmJY zt^0|=8HgscX)F$n$$)P%l8!NBICcoJ(tlE*vp&-@qCb{NTreb$#6qG>%{Ei|e-cL@j%5Kz0uarNVUxv;3)9^U#lqs)0Exq7A7(NmKUL8uoXKHE zhcj7l9B#8}R&WD6iA-Z`8Vx_7@OZ2{Bbq~EkO6mRJA|0Wlt!aqU0s}A9C6m>mS{&8 z6w1ZQ(bCcyXXc7Su>y z;U5ym(!Q+4?2CLKv6L@s5o`WJ9!Rkm70#9HN1pO6qFq|Cuq+4PiKhwjuADA90U&)0+nOOV@8m{6EM z%@y=JCQRyM65F^D zwVZi!`cw(HwRi02jHK(ADWeHn5_RnJdlla(FmKGvkW&iO>GdO5Pg!*YJcEMS%P*Ry z8fTrK`)RGkf=F-&`O*+QOWFUok&|OiT~_9CqoK^&(xyfm&7erDi2`}6tiW*oux3RD z1ev@dSk&z8Io^s2%rTsVMm+rkm3lGPT#K^OM}r9Ork|hne`))>dTfd7wt%z(g_o+} z+H{v=?7nB`k9TGoSG|PZSnlE6`dz83&!$CwC3${M5j^I}ec)}_zD=T;*}{;^jyUV}?h0ZbQw$*M7dfmwI|~b9294Kw+`5?Qc@Gd^K&Q zHux-Z)GRgQd4^E4GIE*hF>HDDN@rha7%P;TmlOYR+s#GP%5EF~Hs+-}|MBkhgPv_l9jn=+%u=0v zu}+Ltda>WyBD-B06=eu{9}e#nVmCrT>&|KeVND1hLE?G|N5D^gQeCvD`cHJ%t%WgRyi(xjY(Z|rO2 zIi&Y?&UNstAb{&9nz?Qlmas{9n`&>m55ZN?IQSUMgtR7o(^L0T@*~lnpHpw3 zzRgW{mJ)W`y+{EuhCR@^7K`8{&395kUVxs*pE4*8RTX9ajz;C+d zJz4Q5YhO;<%@8oN!7fSOTFOq^;n{utsu3BSj{fA^f(Kl?CYXD_r-PTEu;N?k^4p@l zJB9DYn& zRz#@L5x&Y^gMp;I+rUeI*@9b39zX8;Q(>No&{vk$@!i3ROSFW?}F}j+|ftz9*~)VA5UtGjl62Fs)Z6)lywBg=K=0bONcG8=OwgZaH>PTMgU=;uWK2Ewm;o_}q@$@hn&Kc(kv4 zb45{WYp^Hmt26QK)MSy~8y~GW)t9&}d#4;%&$^(SaY5_dci<{1MYxD3U7CZXzo9K6 zrpi>oR4;egozp->Icht-cc)LVIyb)Mr4pEC6NrY|6F+;+u_^0qNk}qpmTy%{JQbCh609EZOLQ&jwa=@{^2n6=Q}Zdg^23Bbe5JdJ`r-yM zkFGo2x$$;_s33ks-5(Mf`%HO|tFq}anAwwH+pBkkJ)_rQJ>DG=lgv)Kvilj`%q8xQ zHB6TiTgh5~{et%7%+FGmg$pVNw@=^FKF}GD@1n<5ylQ_FUK}%2pWE_igCG4YD;ug5 zSrT(vors88>#sdz5@f`HmF0spURr~`t_vmm)_2BXp2n$YlTujise%DI;m%lC>)7Sl z65)(6)AU4|_G97F@cXmzS;d{odhU;u%k902y)P=N-ew%>KId6EcoP;(efsoj9fO;L z=TKiWsX*G!o&z>FASa6KRAodr3rFxLimgV{s^yCmo?T8BJ$%1KLqg4S#CNsy$(7Cb Osk@7pbCpx*>AwMiUepo* literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/tb_bottom_offen.png b/app/src/main/res/mipmap-xhdpi/tb_bottom_offen.png new file mode 100644 index 0000000000000000000000000000000000000000..2b1d7a66fe157650265afc1f5eb1e41fe9d2ae22 GIT binary patch literal 2477 zcmeHH_dDAQ7ylC6m?c)Ik(f0~P#U>vw}~bavnW@sP@`5`bVy=Q+Qe&vVX6wZo%@1!M&P01&ppSUYey z;PxYj9)}v;?U4F2fQO7icfEv**qZp=HBqL zkw0>&gKVz_;aj$udleK2&K<#VO-K*!fq1SBE6wWaz~$ZzNeT2H>$@+Re|}#-Vty3! z(JzfsYghMLb4Ppwmh$w&_NTT7*UcTvziS(RnQ|VWE133vqZYBxl|-pn)}UEm4Hu2# zpgGDid7p&>PA7=`*lhDx*V{*6*Dt~Eb!L%P46$EQ6Sbh zD45H~-kL5!r4uiH!9l$IE$JsvIRgS++)e}f8k!{mtcp>^zeYBqdOZ_j3!@rbs$)rB zv&pk7Z>yWHR5y?AwI$Oou^&G4_4&#Nc7uLl>5WC8YD1y6JCp;a4DOMS;N)189PATW2t)5K@CEhRQt?R@;kpXWcUYO)-uJwo23T|2e{!e5!7hMsJ z@QYgA;aW;GunKpoxe_frel9rZh3?j&2+##$JvbJ1hK~6omCIpgd(-d8$S&G>LRr&F zVSfJEIYJOYdKiw7?>=@3aNyBBtepY82s?K4Ewm!F9#fag~y3*NE2GNeZa7~ zB@s#P>cauaX1YnDA;lRFUwbk_=%Pc5zbsBMa=hgfpmlToS9yqqz@>x`vyit}w zq`#SZpT={)(Llm~`|^x8Z5l@~snM+~r#5z*zeU6|?_%*c9J@p`4A{dh>Z)(|)bLvM z%IbZI9y=h7=#hM+vZ^Uv>HsrPd+^q^*gmpEMX8QG~#ZbYIJ}nK&sbfC0 zSVpoWBqzfhRJ83U*yF^Px`URBs(zV{$kH$=1D@e{{Wo$oC?R(-I=~H^-3|&9kx3q~&=Yk?Lef)}Rt&g+%D%5riNp0)U!gJd^R*FuKO><*bGF;@b zLT;T;Y^MU`JyfnSU+UP-+)%iu>aFb+c5K)4=eAtO3f+$qA7j@}A}UNoWL~z*@M-z@ zdrMXbdHVv7GLOtLk|JG?T(JEiut~2~QD^V*7N*VoVs;eWv7y$}Wdn8K-1KF!&A^51 zAu=RNx)0awHG;f7-L}{LXM2nL47{P!B!(TJJ`wt!N33glJ^zSEeaaosSN&q_!h#^9 zq!8#7&o=8ofD)Dc#6H1{ztA+&;b2J^+BRJhX+b(lsOvmh_Nn;a(STJDD!6j(#9@`p z8pagFNIdpo7jeyT2FE9uvl^kpdPlYj?h|gz?AD;;B`ZpQ6KEDcH-Bu3&vi`d&kqcz zJ3;ULi*qwO-L`J~2FptX^1EfLDFmBH{vag(9NWjv_OFtEcse1A?>yEWIC)sbU19Qv z;@y*0)oQb)P13o8^wbZi6W(iDuU^(cDz!Wx$j%6f*oH>xEfm%r3VONQf38>5I?biS zC%gNI1t8IrO=1HnS2B(l!*-?+!T_~@vi92aDL1$5dr@T-Wq4UYHhZc-lX&VSxad4s zuN=155n*_`UVCj-C%*Si=r13v@3TR2>k(JNmE9cEgq9r6qX%rx;;o-rdd2?@f7^ta literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/tb_bottom_take_photo.png b/app/src/main/res/mipmap-xhdpi/tb_bottom_take_photo.png new file mode 100644 index 0000000000000000000000000000000000000000..f85f25b58751b67fe9b65f09488052ebdaaf851d GIT binary patch literal 3288 zcmaJ^dpMK*AD&ZAQBINLjN}m8u(3I22a^b!P|;?a9JjTNoZj9|)W{*NGRaF6DzUPX zL^>dOO7#*Qbnuo`E9H<1`AzRzzuzBkzvsH1=X<#B`~KXY&-ZhEuj|PT3iQ=bGgJeC zKpK7oY=~@3U3^uR$i65V@}6v1$;E|piOd-84howNT1#U_)4_g8lx_47I)#?Dy@&1& z0x4L>k;1v*0qfCJW|9MC5#x}W#FDW=Aa}1+7KNHX=Ypf@+u|4=knz^b5O5sL0}_S^ zfCaEH^w>B;I-5>R4fPB|Q%jS#QPzd-t zgqz?2`P)=@KoA(iWYfV22c$g}?&Jz~K{>z?C|5`4HDE^=90`S?pm1k<7#s~lpitf2WYd`YFrc{8J`b!Jw%W78LFPTTJN( zFd*RnLz9wzqB-0U`hWfYt1yR@#-c+*=p1G;n<_iF7>mVFEHs8qr*N5U5|f$uql!VX zOfHiX%VdEun8m8OfUN^4)HufCrpN44;ZAt03knWH zI<3XS;W(GINTe$UhQ~Nz9N|bOSNIPumPt)cqBFQZxU@ws2J3``V}H$EY=|V5EHakP zj!U7_@N8xh_(FNfdHmffzOLeR zmE1ZBFFG5G!Q^3+qAf^Tib`6l1^1S}R8~FA!`XU5lt^kwZ7t^|s;ji~G>W{jH!Z+L zS(DpGcfYGC8h-!VcxF!tqj|U`<5er?eakDLRJd{TW`9j{A?iSBukj6l@+l?;-Wn7? z;@-qh%TE)u6t$GK2-CW96;i|xqRd8}fXvZrz-hMpR`^?y?@PtL+PaR&7xH~EpM>fQ zdZW$2R?$IV8c4sa>Yf#G)wp|&aPafhf@6XL@&^@8SpV#6?d4yzAC!sAV9l#DIwY25 zW5s|H@D@18o<336BNx4awgPSeG>Zlp>Y1xKCms{c6La2-s95d2<9j^R{f|06!A%pL z+ftFnL#^vf*3}#NOJQWvFYw7OCsD7cO{61w)W6U`F>k_Gt(-3(6qQKxpEUsEFTSC1 zozsesuFr&(ZWax{)BdapZ{PFfWJ;C0Qs!1*F851ytdOKra3#++EwHTi+qA|L-7_w| z9$(jIKwL4VmzwJ?v|o4Ex)35+7yj%e&<3F1_&<#f! zB?!Jg;euV3YOKrUReZQ&N&%3+4G`mh&;8 zp$9Eex(iK=oWsc6i7I!Ea*1M>!DQsx%=gLbhIr}){G!XH^g|s6m%8c*1!_hWcRrdv ztyZ@vY7wD~<*7c;b(?gQ$Tc_YC<^!G!S9qOJDaP8hoq&TSNs_uVIh( znUTNM1dlyQYt_9)2)m6_eCi*A_vzFKOUORBbhF6f>lWLK!fk*wjKh}1b;u?p` zPo{3lJ8EOYBA`Rt-*O*lxfX-)jU{c5q#|{@(;D%LvtpuN-)RaisLFNZ`4u;R=Pk#t z<3)3K9@wmZHXC(tQhFp_%e^4N+e+OFAe2lVITSDd6n`S8b=tH(h_9n)+i{xe*=_7? zg>wzqskv`vuo&}lYM!TQ?$Nl5W-IZz)N8M@Ec%^vQ=0V3Mn&uP--__!-}zs4$BQGF z=W3L;mnnQ3Cw_SxeWqG|cB#H-gD~R8x2+^!hSj8zqurA;F)LJ`&%SIcg_nC|Hjt!S zg81_a*k`F)8W(WcT}$*08h2(r2s<2I|6&X}ez14pK$m;%)!RZ<3CLD_O@yo2d3M@$ z!mjixIbwU}ecQS7cB8?g%4bf=XXH1Qo_c|ZM^rtzQJFHd(z2qUVdla*>8TD=xof=6 z;9Klf2;x2`xhXB9ySI|zN)idlKrza0CJ1!Aa`zCKBN#f%A{183XYd9lbc{&A`MdAm z_H+N-J76oG?T~+EGGW+SOnVsXMoio^WZq5WM=GY@-1xe-+eB;@sa6|YSS#NuxLg(W zbeuOo8@T*hNU2vDhqOQlcg`acE)XzqJ*&3QUiq-}B~m;FouV@rQ9!k|%P? z(uKP>Ka$A$AC?aTuO3Qy^JDow#@hsHQU~!h!8sQ>{9!3@(-jlo+qk<|hAa7)H8)q% zavk65f4wG0f7hGJO7;A^HO6U?_)nx;^Tfmm-u$*uGLv`2F@cIt#1?Pp(c6fV>r;*H zm6z@y@!PHuxtwzf__7I0wMRNFY5m;mCxfIyHL1OLW31#-gV6Mok?vN#;U!S-Tki(FiMlRd#313pYhSB(OWZ_*PK_#WU$#X|c5BpDABnT{y9j@pAI$NB{6J zBsp9wS30DgCUkDT?7wWbe(5GMe1;rX*d3g?Qe-Rc+qbIkCea#q^ptuixtoRV%>2!D zK(T8C_5$p(d&>|W)ra8gxc1mT{O~veJkOIXZ`yU_6|PO$PO4e;LP_(P=7WblA=wt` zNjl-x;TGY~gYRJHKIQ0s`sz3`2(2L)ir!pW%0Dw1t1r6%s%E+x&Mr4tsS#n=c@z^i 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 VXJ3DqH1fyP!%QrVD-F@n{{f2)vGo7| literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/tb_voice1.png b/app/src/main/res/mipmap-xhdpi/tb_voice1.png new file mode 100644 index 0000000000000000000000000000000000000000..daee17fc4396285f369a743f5267b6295eef21b8 GIT binary patch literal 17820 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/tb_voice2.png b/app/src/main/res/mipmap-xhdpi/tb_voice2.png new file mode 100644 index 0000000000000000000000000000000000000000..81f930f4700b9453344e5cd0ab99e62ebc39d125 GIT binary patch literal 19216 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 feMxfpN(8)W?|i6widdp{LDz17pek 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_btn_keybroad.png b/app/src/main/res/mipmap-xxhdpi/ic_btn_keybroad.png new file mode 100644 index 0000000000000000000000000000000000000000..cfea9a5f290b75b4bedec68f6c48db0f0812de5c GIT binary patch literal 3169 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 H_;UXRo}Of_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..324e72cdd7480cb983fa1bcc7ce686e51ef87fe7 GIT binary patch literal 7718 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..9bec2e623103ac9713b00cad8502a057c1efda61 GIT binary patch literal 10056 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 eUGdInh%pxBjVcXffAXrI$iLMv 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..808981f --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,18 @@ + + + #3F51B5 + #303F9F + #FF4081 + + #503097e6 + #3097e6 + #ffffff + #f0f2f6 + #7f000000 + #d9d9d9 + #051b28 + #e6e6e6 + #909090 + #e83060 + #88e83060 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..07bad09 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,16 @@ + + ChatDemo + + + 按住 说话 + 松开 结束 + 松开手指,取消发送 + 手指上滑,取消发送 + 录音时间过短 + 录音时间过长 + + 相册 + 拍照 + 表情 + 发送 + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..3ec8f06 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,24 @@ + + + + + + + + + + diff --git a/app/src/test/java/com/example/administrator/chatdemo/ExampleUnitTest.java b/app/src/test/java/com/example/administrator/chatdemo/ExampleUnitTest.java new file mode 100644 index 0000000..187f466 --- /dev/null +++ b/app/src/test/java/com/example/administrator/chatdemo/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.example.administrator.chatdemo; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..221c810 --- /dev/null +++ b/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' + classpath 'com.novoda:bintray-release:0.3.4' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + maven { url 'https://jitpack.io' } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..aac7c9b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,17 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 GIT binary patch literal 53636 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ⅅ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 H-+%o-(+5aQ literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..63f9152 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Jul 18 16:32:52 CST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..9d82f78 --- /dev/null +++ b/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..e7b4def --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app'