gitextract_zpgm32r8/ ├── .gitignore ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ ├── htmessage_open.jar │ │ ├── zbardecoder.jar │ │ └── zxing.jar │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── com/ │ │ └── htmessage/ │ │ └── yichatopen/ │ │ ├── HTApp.java │ │ ├── HTClientHelper.java │ │ ├── HTConstant.java │ │ ├── IMAction.java │ │ ├── activity/ │ │ │ ├── BaseActivity.java │ │ │ ├── BasePresenter.java │ │ │ ├── BaseView.java │ │ │ ├── ScanCaptureActivity.java │ │ │ ├── SettingsActivity.java │ │ │ ├── ShowBigImageActivity.java │ │ │ ├── SplashActivity.java │ │ │ ├── addfriends/ │ │ │ │ ├── add/ │ │ │ │ │ ├── end/ │ │ │ │ │ │ └── AddFriendsFinalActivity.java │ │ │ │ │ ├── next/ │ │ │ │ │ │ ├── AddFriendNextBasePrestener.java │ │ │ │ │ │ ├── AddFriendNextFragment.java │ │ │ │ │ │ ├── AddFriendNextPrestener.java │ │ │ │ │ │ ├── AddFriendNextView.java │ │ │ │ │ │ └── AddFriendsNextActivity.java │ │ │ │ │ └── pre/ │ │ │ │ │ └── AddFriendsPreActivity.java │ │ │ │ └── newfriend/ │ │ │ │ ├── NewFriendBasePresenter.java │ │ │ │ ├── NewFriendFragment.java │ │ │ │ ├── NewFriendPrestener.java │ │ │ │ ├── NewFriendView.java │ │ │ │ ├── NewFriendsActivity.java │ │ │ │ └── NewFriendsAdapter.java │ │ │ ├── chat/ │ │ │ │ ├── ChatActivity.java │ │ │ │ ├── ChatAdapter.java │ │ │ │ ├── ChatContract.java │ │ │ │ ├── ChatFragment.java │ │ │ │ ├── ChatPresenter.java │ │ │ │ ├── activity/ │ │ │ │ │ ├── ChatSettingActivity.java │ │ │ │ │ ├── ChooseContactActivity.java │ │ │ │ │ └── ChooseContactAdapter.java │ │ │ │ └── weight/ │ │ │ │ ├── ChatExtendMenu.java │ │ │ │ ├── ChatInputView.java │ │ │ │ ├── VoicePlayClickListener.java │ │ │ │ ├── VoiceRecorder.java │ │ │ │ ├── VoiceRecorderView.java │ │ │ │ ├── emoji/ │ │ │ │ │ ├── DefaultEmojiconDatas.java │ │ │ │ │ ├── EmojiFragment.java │ │ │ │ │ ├── Emojicon.java │ │ │ │ │ ├── EmojiconGridAdapter.java │ │ │ │ │ └── SmileUtils.java │ │ │ │ └── loadmore/ │ │ │ │ ├── DensityUtil.java │ │ │ │ ├── Pacman.java │ │ │ │ ├── ProgressView.java │ │ │ │ ├── ProgressViewController.java │ │ │ │ ├── PullToLoadMoreListView.java │ │ │ │ └── RefreshHeader.java │ │ │ ├── country/ │ │ │ │ ├── CharacterParserUtil.java │ │ │ │ ├── CountryCodeUtil.java │ │ │ │ ├── CountryComparator.java │ │ │ │ ├── CountryModel.java │ │ │ │ ├── CountrySortAdapter.java │ │ │ │ ├── CountrySortModel.java │ │ │ │ ├── CountrySortToken.java │ │ │ │ ├── GetCountryNameSort.java │ │ │ │ └── SideBar.java │ │ │ ├── login/ │ │ │ │ ├── LoginActivity.java │ │ │ │ ├── LoginContract.java │ │ │ │ ├── LoginFragment.java │ │ │ │ └── LoginPresenter.java │ │ │ ├── main/ │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MainBasePrester.java │ │ │ │ ├── MainPrestener.java │ │ │ │ ├── MainView.java │ │ │ │ ├── contacts/ │ │ │ │ │ ├── BaseContactsPresenter.java │ │ │ │ │ ├── ContactsAdapter.java │ │ │ │ │ ├── ContactsPresenter.java │ │ │ │ │ ├── ContactsView.java │ │ │ │ │ ├── FragmentContacts.java │ │ │ │ │ └── Sidebar.java │ │ │ │ ├── conversation/ │ │ │ │ │ ├── BaseConversationPresenter.java │ │ │ │ │ ├── ConversationAdapter.java │ │ │ │ │ ├── ConversationFragment.java │ │ │ │ │ ├── ConversationPresenter.java │ │ │ │ │ └── ConversationView.java │ │ │ │ ├── details/ │ │ │ │ │ ├── UserDetailesFragment.java │ │ │ │ │ ├── UserDetailsActivity.java │ │ │ │ │ ├── UserDetailsBasePrester.java │ │ │ │ │ ├── UserDetailsPrester.java │ │ │ │ │ └── UserDetailsView.java │ │ │ │ ├── find/ │ │ │ │ │ ├── FragmentFind.java │ │ │ │ │ └── recentlypeople/ │ │ │ │ │ ├── PeopleRecentlyActivity.java │ │ │ │ │ ├── PeopleRecentlyAdapter.java │ │ │ │ │ ├── PeopleRecentlyBasePrestener.java │ │ │ │ │ ├── PeopleRecentlyFragment.java │ │ │ │ │ ├── PeopleRecentlyPrestener.java │ │ │ │ │ └── PeopleRecentlyView.java │ │ │ │ ├── password/ │ │ │ │ │ ├── PasswordBasePrester.java │ │ │ │ │ ├── PasswordPrester.java │ │ │ │ │ ├── PasswordResetActivity.java │ │ │ │ │ ├── PasswordResetFragment.java │ │ │ │ │ └── PasswordView.java │ │ │ │ ├── profile/ │ │ │ │ │ ├── FragmentProfile.java │ │ │ │ │ └── info/ │ │ │ │ │ ├── profile/ │ │ │ │ │ │ ├── ProfileActivity.java │ │ │ │ │ │ ├── ProfileBasePrester.java │ │ │ │ │ │ ├── ProfileFragment.java │ │ │ │ │ │ ├── ProfilePrester.java │ │ │ │ │ │ └── ProfileView.java │ │ │ │ │ └── update/ │ │ │ │ │ ├── ProfileUpdateActivity.java │ │ │ │ │ ├── ProfileUpdateFragment.java │ │ │ │ │ ├── UpdateProfileBasePrester.java │ │ │ │ │ ├── UpdateProfilePrestener.java │ │ │ │ │ └── UpdateProfileView.java │ │ │ │ ├── qrcode/ │ │ │ │ │ ├── QrCodeActivity.java │ │ │ │ │ ├── QrCodeBasePrester.java │ │ │ │ │ ├── QrCodeFragment.java │ │ │ │ │ ├── QrCodePrester.java │ │ │ │ │ └── QrCodeView.java │ │ │ │ └── region/ │ │ │ │ ├── RegionActivity.java │ │ │ │ ├── RegionBasePrestener.java │ │ │ │ ├── RegionFragment.java │ │ │ │ ├── RegionPresenter.java │ │ │ │ └── RegionView.java │ │ │ └── register/ │ │ │ ├── RegisterActivity.java │ │ │ ├── RegisterContract.java │ │ │ ├── RegisterFragment.java │ │ │ └── RegisterPresenter.java │ │ ├── domain/ │ │ │ ├── InviteMessage.java │ │ │ ├── InviteMessgeDao.java │ │ │ ├── User.java │ │ │ └── UserDao.java │ │ ├── manager/ │ │ │ ├── ContactsManager.java │ │ │ ├── DBManager.java │ │ │ ├── DbOpenHelper.java │ │ │ ├── LocalUserManager.java │ │ │ ├── Manager.java │ │ │ ├── MyNotification.java │ │ │ ├── Notifier.java │ │ │ ├── NotifierManager.java │ │ │ ├── PreferenceManager.java │ │ │ └── SettingsManager.java │ │ ├── runtimepermissions/ │ │ │ ├── Permissions.java │ │ │ ├── PermissionsManager.java │ │ │ └── PermissionsResultAction.java │ │ ├── utils/ │ │ │ ├── ACache.java │ │ │ ├── CommonUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── HTMessageUtils.java │ │ │ ├── ImageUtils.java │ │ │ ├── OkHttpUtils.java │ │ │ ├── Param.java │ │ │ ├── PathUtils.java │ │ │ ├── UpdateLastLoginTimeUtils.java │ │ │ └── Validator.java │ │ └── widget/ │ │ ├── HTAlertDialog.java │ │ ├── SwitchButton.java │ │ ├── photoview/ │ │ │ ├── Compat.java │ │ │ ├── IPhotoView.java │ │ │ ├── PhotoView.java │ │ │ ├── PhotoViewAttacher.java │ │ │ ├── SDK16.java │ │ │ ├── ScrollerProxy.java │ │ │ └── VersionedGestureDetector.java │ │ ├── scan/ │ │ │ ├── CameraConfigurationManager.java │ │ │ ├── CameraManager.java │ │ │ └── CameraPreview.java │ │ ├── swipyrefresh/ │ │ │ ├── CircleImageView.java │ │ │ ├── MaterialProgressDrawable.java │ │ │ ├── SwipyRefreshLayout.java │ │ │ └── SwipyRefreshLayoutDirection.java │ │ └── zxing/ │ │ ├── activity/ │ │ │ ├── CaptureActivity.java │ │ │ └── DensityUtil.java │ │ ├── camera/ │ │ │ ├── AutoFocusCallback.java │ │ │ ├── CameraConfigurationManager.java │ │ │ ├── CameraManager.java │ │ │ ├── FlashlightManager.java │ │ │ ├── PlanarYUVLuminanceSource.java │ │ │ └── PreviewCallback.java │ │ ├── decoding/ │ │ │ ├── CaptureActivityHandler.java │ │ │ ├── DecodeFormatManager.java │ │ │ ├── DecodeHandler.java │ │ │ ├── DecodeThread.java │ │ │ ├── FinishListener.java │ │ │ ├── InactivityTimer.java │ │ │ └── Intents.java │ │ ├── encoding/ │ │ │ └── EncodingHandler.java │ │ └── view/ │ │ ├── ViewfinderResultPointCallback.java │ │ └── ViewfinderView.java │ └── res/ │ ├── anim/ │ │ ├── fade_in.xml │ │ ├── fade_out.xml │ │ ├── head_in.xml │ │ ├── head_out.xml │ │ ├── hold.xml │ │ ├── loading_animation.xml │ │ ├── push_bottom_in.xml │ │ ├── push_bottom_out.xml │ │ ├── push_top_in.xml │ │ ├── push_top_in2.xml │ │ ├── push_top_out.xml │ │ ├── push_top_out2.xml │ │ ├── slide_in_from_left.xml │ │ ├── slide_in_from_right.xml │ │ ├── slide_out_to_left.xml │ │ ├── slide_out_to_right.xml │ │ ├── voice_from_icon.xml │ │ └── voice_to_icon.xml │ ├── color/ │ │ ├── login_btn_text_color.xml │ │ └── main_botton_text_color.xml │ ├── drawable/ │ │ ├── bg_btn_gray.xml │ │ ├── bg_btn_green.xml │ │ ├── bg_dialog.xml │ │ ├── bg_et.xml │ │ ├── btn_bottom_selector.xml │ │ ├── btn_more_type_msg.xml │ │ ├── chat_error_item_bg.xml │ │ ├── chat_image_selector.xml │ │ ├── chat_press_speak_btn.xml │ │ ├── chat_takepic_selector.xml │ │ ├── chatfrom_bg.xml │ │ ├── chatting_setmode_keyboard_btn.xml │ │ ├── chatting_setmode_voice_btn.xml │ │ ├── chatto_bg.xml │ │ ├── divider_horizontal.xml │ │ ├── divider_vertical.xml │ │ ├── dot_emoji.xml │ │ ├── edit_text_bg.xml │ │ ├── emoji_bottom_bg.xml │ │ ├── item_pre_videocall_selector.xml │ │ ├── list_item_bg_gray.xml │ │ ├── list_item_bg_white.xml │ │ ├── msg_state_failed_resend.xml │ │ ├── progressbar_white.xml │ │ ├── recording_hint_bg.xml │ │ ├── recording_text_hint_bg.xml │ │ ├── register_phone_bg.xml │ │ ├── sidebar_background_pressed.xml │ │ ├── sign_bg.xml │ │ ├── tab_chat_bg.xml │ │ ├── tab_contact_list_bg.xml │ │ ├── tab_find_bg.xml │ │ ├── tab_profile_bg.xml │ │ ├── timestampe_bg.xml │ │ ├── top_bar_back.xml │ │ └── topbar_back.xml │ ├── layout/ │ │ ├── activity_addfriends_final.xml │ │ ├── activity_addfriends_next.xml │ │ ├── activity_addfriends_pre.xml │ │ ├── activity_base.xml │ │ ├── activity_base_input.xml │ │ ├── activity_base_main.xml │ │ ├── activity_chat_setting_single.xml │ │ ├── activity_check_people.xml │ │ ├── activity_new_friends.xml │ │ ├── activity_people_recently.xml │ │ ├── activity_psw_reset.xml │ │ ├── activity_qrcode_generate.xml │ │ ├── activity_region.xml │ │ ├── activity_show_big_image.xml │ │ ├── activity_splash.xml │ │ ├── activity_update_info.xml │ │ ├── activity_userinfo.xml │ │ ├── chat_menu_item.xml │ │ ├── chat_neterror_item.xml │ │ ├── coogame_country_item.xml │ │ ├── dialog_alert.xml │ │ ├── emoji_gridview.xml │ │ ├── fragment_chat.xml │ │ ├── fragment_contactlist.xml │ │ ├── fragment_conversation_settings.xml │ │ ├── fragment_emoji.xml │ │ ├── fragment_find.xml │ │ ├── fragment_home.xml │ │ ├── fragment_login.xml │ │ ├── fragment_profile.xml │ │ ├── fragment_profile_info.xml │ │ ├── fragment_register.xml │ │ ├── item_contact_list.xml │ │ ├── item_contact_list_footer.xml │ │ ├── item_contact_list_header.xml │ │ ├── item_conversation_single.xml │ │ ├── item_dialog_gridview.xml │ │ ├── item_diaolog_gridview.xml │ │ ├── item_newfriend_msg.xml │ │ ├── item_people_recently.xml │ │ ├── item_region.xml │ │ ├── latout_pre_videocall_item.xml │ │ ├── layout_alert_dialog_delete.xml │ │ ├── layout_pup.xml │ │ ├── layout_title_bar.xml │ │ ├── loading_dialog.xml │ │ ├── row_big_expression.xml │ │ ├── row_expression.xml │ │ ├── row_received_message.xml │ │ ├── row_received_picture.xml │ │ ├── row_received_voice.xml │ │ ├── row_sent_message.xml │ │ ├── row_sent_picture.xml │ │ ├── row_sent_voice.xml │ │ ├── widget_input_view.xml │ │ ├── widget_main_button.xml │ │ ├── widget_switch_button.xml │ │ ├── widget_voice_recorder.xml │ │ └── widget_zbar_scan_capture.xml │ ├── menu/ │ │ └── menu_main.xml │ ├── values/ │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-hdpi/ │ │ └── dimens.xml │ └── values-v21/ │ └── styles.xml ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle