├── .editorconfig
├── .gitignore
├── CONFIGKEY.md
├── CONFIGKEY.zh-CN.md
├── Demo
├── .gitignore
├── app
│ ├── build.gradle
│ ├── google-services.json
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── openim
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── openim
│ │ │ └── android
│ │ │ └── demo
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── openim
│ │ │ │ └── android
│ │ │ │ └── demo
│ │ │ │ ├── DemoApplication.java
│ │ │ │ ├── SplashActivity.java
│ │ │ │ ├── adapter
│ │ │ │ └── FragmentAdapter.java
│ │ │ │ ├── repository
│ │ │ │ └── OpenIMService.java
│ │ │ │ ├── services
│ │ │ │ └── MyFirebaseMessagingService.java
│ │ │ │ ├── ui
│ │ │ │ ├── login
│ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ ├── RegisterActivity.java
│ │ │ │ │ ├── ResetPasswordActivity.java
│ │ │ │ │ ├── SupplementInfoActivity.java
│ │ │ │ │ └── VerificationCodeActivity.java
│ │ │ │ ├── main
│ │ │ │ │ ├── EditTextActivity.java
│ │ │ │ │ └── MainActivity.java
│ │ │ │ ├── search
│ │ │ │ │ ├── AddConversActivity.java
│ │ │ │ │ ├── PersonDetailActivity.java
│ │ │ │ │ ├── SearchContactActivity.java
│ │ │ │ │ └── SendVerifyActivity.java
│ │ │ │ └── user
│ │ │ │ │ ├── AboutUsActivity.java
│ │ │ │ │ ├── AccountSettingActivity.java
│ │ │ │ │ ├── BlackListActivity.java
│ │ │ │ │ ├── LanguageSettingActivity.java
│ │ │ │ │ ├── MoreDataActivity.java
│ │ │ │ │ ├── PersonDataActivity.java
│ │ │ │ │ ├── PersonalFragment.java
│ │ │ │ │ └── PersonalInfoActivity.java
│ │ │ │ └── vm
│ │ │ │ ├── FriendVM.java
│ │ │ │ ├── LoginVM.java
│ │ │ │ ├── MainVM.java
│ │ │ │ └── PersonalVM.java
│ │ └── res
│ │ │ ├── drawable
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── launch_background.xml
│ │ │ ├── selector_logo.xml
│ │ │ ├── selector_moments.xml
│ │ │ ├── selector_newsletter.xml
│ │ │ ├── selector_open_eyes.xml
│ │ │ ├── selector_own.xml
│ │ │ ├── selector_tab_txt_color.xml
│ │ │ └── splash_shape_gradient.xml
│ │ │ ├── layout
│ │ │ ├── activity_about_us.xml
│ │ │ ├── activity_account_setting.xml
│ │ │ ├── activity_add_friend.xml
│ │ │ ├── activity_black_list.xml
│ │ │ ├── activity_call_history_acticity.xml
│ │ │ ├── activity_edit_text.xml
│ │ │ ├── activity_language_setting.xml
│ │ │ ├── activity_login.xml
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_more_data.xml
│ │ │ ├── activity_person_detail.xml
│ │ │ ├── activity_person_info.xml
│ │ │ ├── activity_personal_info.xml
│ │ │ ├── activity_register.xml
│ │ │ ├── activity_reset_password.xml
│ │ │ ├── activity_search_person.xml
│ │ │ ├── activity_send_verify.xml
│ │ │ ├── activity_supplement_info.xml
│ │ │ ├── activity_verification_code.xml
│ │ │ ├── fragment_personal.xml
│ │ │ ├── item_call_history.xml
│ │ │ ├── layout_login.xml
│ │ │ ├── layout_search_item.xml
│ │ │ └── view_department.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── push.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── push.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── push.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── bg_head_my.png
│ │ │ ├── ic_about.png
│ │ │ ├── ic_add_friend4.png
│ │ │ ├── ic_add_qr.png
│ │ │ ├── ic_call.png
│ │ │ ├── ic_chat.png
│ │ │ ├── ic_close_eye.png
│ │ │ ├── ic_copy.png
│ │ │ ├── ic_create_group.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ ├── ic_moments1.png
│ │ │ ├── ic_moments2.png
│ │ │ ├── ic_moments3.png
│ │ │ ├── ic_my.png
│ │ │ ├── ic_my_info.png
│ │ │ ├── ic_my_qr.png
│ │ │ ├── ic_my_setting.png
│ │ │ ├── ic_newsletter.png
│ │ │ ├── ic_open_eye.png
│ │ │ ├── ic_quit.png
│ │ │ └── push.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_add_friend2.png
│ │ │ ├── ic_add_friend3.png
│ │ │ ├── ic_back.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ ├── ic_my.png
│ │ │ ├── ic_splash.png
│ │ │ └── push.png
│ │ │ ├── values-en-rUS
│ │ │ └── strings.xml
│ │ │ └── values
│ │ │ ├── attrs.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── openim
│ │ └── android
│ │ └── demo
│ │ └── ExampleUnitTest.java
├── build.gradle
├── config.gradle
├── delete_build.sh
├── gradle.properties
├── gradle
│ ├── gradle-mvn-push.gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
├── LICENSE
├── OUIKit
├── OUIApplet
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── ouiapplet
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── openim
│ │ │ │ └── android
│ │ │ │ └── ouiapplet
│ │ │ │ ├── AppletActivity.java
│ │ │ │ ├── AppletFragment.java
│ │ │ │ ├── service
│ │ │ │ └── NetService.java
│ │ │ │ └── vm
│ │ │ │ └── AppletVM.java
│ │ └── res
│ │ │ ├── layout
│ │ │ ├── activity_applet.xml
│ │ │ └── fragment_applet.xml
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── refs.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── ouiapplet
│ │ └── ExampleUnitTest.java
├── OUICalling
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── openim
│ │ │ └── android
│ │ │ └── ouilive
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── openim
│ │ │ │ └── android
│ │ │ │ └── ouicalling
│ │ │ │ ├── CallDialog.java
│ │ │ │ ├── CallingServiceImp.java
│ │ │ │ ├── LockPushActivity.java
│ │ │ │ └── vm
│ │ │ │ ├── CallViewModel.kt
│ │ │ │ └── CallingVM.java
│ │ └── res
│ │ │ ├── drawable
│ │ │ ├── selector_camera.xml
│ │ │ ├── selector_mic.xml
│ │ │ └── selector_speaker.xml
│ │ │ ├── layout
│ │ │ ├── activity_demo.xml
│ │ │ ├── dialog_call.xml
│ │ │ ├── dialog_group_call.xml
│ │ │ ├── item_member_renderer.xml
│ │ │ ├── layout_call_invite.xml
│ │ │ └── layout_float_view.xml
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_answer.png
│ │ │ ├── ic_close_camera.png
│ │ │ ├── ic_hang_up.png
│ │ │ ├── ic_mic_off.png
│ │ │ ├── ic_mic_on.png
│ │ │ ├── ic_mic_s_off.png
│ │ │ ├── ic_mic_s_on.png
│ │ │ ├── ic_open_camera.png
│ │ │ ├── ic_speaker_off.png
│ │ │ ├── ic_speaker_on.png
│ │ │ └── ic_switch_camera.png
│ │ │ └── raw
│ │ │ ├── incoming_call_ring.mp3
│ │ │ └── outgoing_call_ring.mp3
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── openim
│ │ └── android
│ │ └── ouilive
│ │ └── ExampleUnitTest.java
├── OUIContact
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── openim
│ │ │ └── android
│ │ │ └── ouicontact
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── openim
│ │ │ │ └── android
│ │ │ │ └── ouicontact
│ │ │ │ ├── DebugActivity.java
│ │ │ │ ├── ui
│ │ │ │ ├── AddRelationActivity.java
│ │ │ │ ├── AllFriendActivity.java
│ │ │ │ ├── CreateLabelActivity.java
│ │ │ │ ├── ForwardToActivity.java
│ │ │ │ ├── FriendRequestDetailActivity.java
│ │ │ │ ├── GroupNoticeDetailActivity.java
│ │ │ │ ├── GroupNoticeListActivity.java
│ │ │ │ ├── LabelActivity.java
│ │ │ │ ├── MyGroupActivity.java
│ │ │ │ ├── NewFriendActivity.java
│ │ │ │ └── fragment
│ │ │ │ │ ├── ContactFragment.java
│ │ │ │ │ ├── FriendFragment.java
│ │ │ │ │ └── GroupFragment.java
│ │ │ │ └── vm
│ │ │ │ ├── ContactVM.java
│ │ │ │ ├── LabelVM.java
│ │ │ │ └── SearchGroup.java
│ │ └── res
│ │ │ ├── layout
│ │ │ ├── activity_add_relation.xml
│ │ │ ├── activity_all_friend.xml
│ │ │ ├── activity_create_label.xml
│ │ │ ├── activity_debug.xml
│ │ │ ├── activity_forward_to.xml
│ │ │ ├── activity_friend_request_detail.xml
│ │ │ ├── activity_group_notice_detail.xml
│ │ │ ├── activity_group_notice_list.xml
│ │ │ ├── activity_label.xml
│ │ │ ├── activity_my_group.xml
│ │ │ ├── activity_new_friend.xml
│ │ │ ├── fragment_contact_main.xml
│ │ │ ├── fragment_forward_friend.xml
│ │ │ ├── item_department.xml
│ │ │ ├── item_friend_notice.xml
│ │ │ ├── item_group_notice.xml
│ │ │ └── view_contact_header.xml
│ │ │ └── mipmap-xxhdpi
│ │ │ ├── ic_add_san.png
│ │ │ ├── ic_c_add_friend.png
│ │ │ ├── ic_c_add_group.png
│ │ │ ├── ic_c_create_group.png
│ │ │ ├── ic_friend_add.png
│ │ │ ├── ic_my_friend.png
│ │ │ ├── ic_my_group.png
│ │ │ └── ic_my_group2.png
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── openim
│ │ └── android
│ │ └── ouicontact
│ │ └── ExampleUnitTest.java
├── OUIConversation
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── libs
│ │ └── com.oliver.record.aar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── openim
│ │ │ └── android
│ │ │ └── ouiconversation
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ │ ├── voice_black.json
│ │ │ └── voice_blue.json
│ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── openim
│ │ │ │ └── android
│ │ │ │ └── ouiconversation
│ │ │ │ ├── DebugActivity.java
│ │ │ │ ├── IBridgeImpl.java
│ │ │ │ ├── adapter
│ │ │ │ ├── MessageAdapter.java
│ │ │ │ └── MessageViewHolder.java
│ │ │ │ ├── ui
│ │ │ │ ├── ChatActivity.java
│ │ │ │ ├── PreviewMediaActivity.java
│ │ │ │ ├── ShootActivity.java
│ │ │ │ ├── emoji
│ │ │ │ │ └── CustomEmojiManageActivity.java
│ │ │ │ ├── fragment
│ │ │ │ │ ├── ConversationListFragment.java
│ │ │ │ │ └── InputExpandFragment.java
│ │ │ │ └── search
│ │ │ │ │ └── SearchActivity.java
│ │ │ │ ├── vm
│ │ │ │ ├── ChatVM.java
│ │ │ │ └── CustomEmojiVM.java
│ │ │ │ └── widget
│ │ │ │ ├── BottomInputCote.java
│ │ │ │ ├── SendStateView.java
│ │ │ │ └── TailInputEditText.java
│ │ └── res
│ │ │ ├── anim
│ │ │ └── animation_repeat_spinning.xml
│ │ │ ├── drawable
│ │ │ ├── ic_camera_enhance_black_24dp.xml
│ │ │ ├── selector_chat_checkbox.xml
│ │ │ ├── selector_custom_emoji.xml
│ │ │ ├── selector_emoji_checkbox.xml
│ │ │ ├── selector_white_gray.xml
│ │ │ ├── sty_radius_unleft_30.xml
│ │ │ ├── sty_radius_unleft_30_blue.xml
│ │ │ ├── sty_radius_unleft_stroke_30.xml
│ │ │ ├── sty_radius_unleft_white.xml
│ │ │ ├── sty_radius_unright_30.xml
│ │ │ └── sty_radius_unright_stroke_30.xml
│ │ │ ├── layout
│ │ │ ├── activity_chat.xml
│ │ │ ├── activity_custom_emoji_manage.xml
│ │ │ ├── activity_debug.xml
│ │ │ ├── activity_msg_read_status.xml
│ │ │ ├── activity_preview.xml
│ │ │ ├── activity_search.xml
│ │ │ ├── activity_shoot.xml
│ │ │ ├── emoji_view.xml
│ │ │ ├── fragment_contact_list.xml
│ │ │ ├── fragment_input_expand.xml
│ │ │ ├── item_expand_menu.xml
│ │ │ ├── item_file.xml
│ │ │ ├── item_history_merge.xml
│ │ │ ├── layout_add_action.xml
│ │ │ ├── layout_input_cote.xml
│ │ │ ├── layout_loading_small.xml
│ │ │ ├── layout_msg.xml
│ │ │ ├── layout_msg_img_left.xml
│ │ │ ├── layout_msg_img_right.xml
│ │ │ ├── layout_msg_txt_left.xml
│ │ │ ├── layout_msg_txt_right.xml
│ │ │ ├── layout_send_state.xml
│ │ │ └── view_search.xml
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── emoji.png
│ │ │ ├── ic_add_big.png
│ │ │ ├── ic_add_emoji.png
│ │ │ ├── ic_business_card.png
│ │ │ ├── ic_c_copy.png
│ │ │ ├── ic_c_file.png
│ │ │ ├── ic_c_photo.png
│ │ │ ├── ic_c_search.png
│ │ │ ├── ic_c_send.png
│ │ │ ├── ic_c_video.png
│ │ │ ├── ic_c_video_meeting.png
│ │ │ ├── ic_chat_add.png
│ │ │ ├── ic_chat_face.png
│ │ │ ├── ic_chat_face2.png
│ │ │ ├── ic_chat_keyboard.png
│ │ │ ├── ic_chat_location.png
│ │ │ ├── ic_chat_menu_file.png
│ │ │ ├── ic_chat_shoot.png
│ │ │ ├── ic_chat_voice.png
│ │ │ ├── ic_create_group.png
│ │ │ ├── ic_custom_emoji.png
│ │ │ ├── ic_custom_emoji2.png
│ │ │ ├── ic_delete.png
│ │ │ ├── ic_delete_grey.png
│ │ │ ├── ic_down_arrow.png
│ │ │ ├── ic_emoji_delete.png
│ │ │ ├── ic_ex_mark.png
│ │ │ ├── ic_face_01.webp
│ │ │ ├── ic_face_02.webp
│ │ │ ├── ic_face_03.webp
│ │ │ ├── ic_face_04.webp
│ │ │ ├── ic_face_05.webp
│ │ │ ├── ic_face_06.webp
│ │ │ ├── ic_face_07.webp
│ │ │ ├── ic_face_08.webp
│ │ │ ├── ic_face_09.webp
│ │ │ ├── ic_face_10.webp
│ │ │ ├── ic_face_11.webp
│ │ │ ├── ic_face_12.webp
│ │ │ ├── ic_face_13.webp
│ │ │ ├── ic_face_14.webp
│ │ │ ├── ic_face_15.webp
│ │ │ ├── ic_face_16.webp
│ │ │ ├── ic_forward.png
│ │ │ ├── ic_forward_grey.png
│ │ │ ├── ic_iv_camera.png
│ │ │ ├── ic_iv_more.png
│ │ │ ├── ic_loading.png
│ │ │ ├── ic_multiple_choice.png
│ │ │ ├── ic_notice.png
│ │ │ ├── ic_reply.png
│ │ │ ├── ic_sync_err.png
│ │ │ ├── ic_tools_video_call.png
│ │ │ └── ic_withdraw.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── bg_chat_voice.png
│ │ │ ├── bg_chat_voice2.png
│ │ │ ├── ic_add_big3.png
│ │ │ ├── ic_chat_cancel.png
│ │ │ ├── ic_chat_cancel2.png
│ │ │ ├── ic_chat_horn.png
│ │ │ ├── ic_chat_speech.png
│ │ │ ├── ic_chat_speech2.png
│ │ │ ├── ic_meeting_tag.png
│ │ │ ├── ic_phone.png
│ │ │ └── ic_send_err.png
│ │ │ └── values
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── openim
│ │ └── android
│ │ └── ouiconversation
│ │ └── ExampleUnitTest.java
├── OUICore
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── libs
│ │ └── EasyWindow-10.2.aar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── io
│ │ │ └── openim
│ │ │ └── android
│ │ │ └── ouicore
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── io
│ │ │ │ └── openim
│ │ │ │ └── android
│ │ │ │ └── ouicore
│ │ │ │ ├── adapter
│ │ │ │ ├── RecyclerViewAdapter.java
│ │ │ │ └── ViewHol.java
│ │ │ │ ├── api
│ │ │ │ ├── NiService.java
│ │ │ │ └── OneselfService.java
│ │ │ │ ├── base
│ │ │ │ ├── BaseActivity.java
│ │ │ │ ├── BaseApp.java
│ │ │ │ ├── BaseDialog.java
│ │ │ │ ├── BaseFragment.java
│ │ │ │ ├── BaseViewModel.java
│ │ │ │ ├── BasicActivity.java
│ │ │ │ ├── Debug.java
│ │ │ │ ├── IView.java
│ │ │ │ ├── LazyFragment.java
│ │ │ │ └── vm
│ │ │ │ │ ├── ISubscribe.java
│ │ │ │ │ ├── State.java
│ │ │ │ │ ├── Subject.java
│ │ │ │ │ └── injection
│ │ │ │ │ ├── BaseVM.java
│ │ │ │ │ ├── Easy.java
│ │ │ │ │ └── EasyInstance.java
│ │ │ │ ├── data
│ │ │ │ └── DataManager.java
│ │ │ │ ├── entity
│ │ │ │ ├── AtMsgInfo.java
│ │ │ │ ├── BurnAfterReadingNotification.java
│ │ │ │ ├── CallHistory.java
│ │ │ │ ├── CustomEmoji.java
│ │ │ │ ├── CustomEmojiEntity.java
│ │ │ │ ├── EnterGroupNotification.java
│ │ │ │ ├── ExGroupMemberInfo.java
│ │ │ │ ├── ExUserInfo.java
│ │ │ │ ├── ExtendUserInfo.java
│ │ │ │ ├── GroupNotification.java
│ │ │ │ ├── GroupRightsTransferNotification.java
│ │ │ │ ├── JoinKickedGroupNotification.java
│ │ │ │ ├── LocationInfo.java
│ │ │ │ ├── LoginCertificate.java
│ │ │ │ ├── MeetingInfo.java
│ │ │ │ ├── MeetingInfoAttach.java
│ │ │ │ ├── MsgConversation.java
│ │ │ │ ├── MsgExpand.java
│ │ │ │ ├── MuteMemberNotification.java
│ │ │ │ ├── NotificationContent.java
│ │ │ │ ├── NotificationHead.java
│ │ │ │ ├── NotificationMsg.java
│ │ │ │ ├── OANotification.java
│ │ │ │ ├── ParticipantMeta.java
│ │ │ │ ├── QuitGroupNotification.java
│ │ │ │ ├── SortLetter.java
│ │ │ │ ├── UserLabel.java
│ │ │ │ ├── UserLabelChild.java
│ │ │ │ └── UserList.java
│ │ │ │ ├── ex
│ │ │ │ ├── AtUser.java
│ │ │ │ ├── CommEx.java
│ │ │ │ ├── Ex.java
│ │ │ │ ├── MultipleChoice.java
│ │ │ │ ├── Title.java
│ │ │ │ └── UserEx.java
│ │ │ │ ├── im
│ │ │ │ ├── IM.java
│ │ │ │ ├── IMBack.java
│ │ │ │ ├── IMEvent.java
│ │ │ │ └── IMUtil.java
│ │ │ │ ├── net
│ │ │ │ ├── RXRetrofit
│ │ │ │ │ ├── Exception
│ │ │ │ │ │ ├── NetworkException.java
│ │ │ │ │ │ └── RXRetrofitException.java
│ │ │ │ │ ├── HttpConfig.java
│ │ │ │ │ ├── N.java
│ │ │ │ │ ├── NetObserver.java
│ │ │ │ │ ├── Parameter.java
│ │ │ │ │ ├── annotations
│ │ │ │ │ │ └── IdentityEncoding.java
│ │ │ │ │ └── interceptors
│ │ │ │ │ │ └── IdentityEncodingInterceptor.java
│ │ │ │ └── bage
│ │ │ │ │ ├── Base.java
│ │ │ │ │ └── GsonHel.java
│ │ │ │ ├── repository
│ │ │ │ ├── NiService.java
│ │ │ │ └── OrganizationApi.java
│ │ │ │ ├── services
│ │ │ │ ├── CallingService.java
│ │ │ │ ├── ForegroundService.kt
│ │ │ │ └── IConversationBridge.java
│ │ │ │ ├── update
│ │ │ │ ├── OkHttp3Connection.java
│ │ │ │ └── UpdateApp.java
│ │ │ │ ├── utils
│ │ │ │ ├── ActivityManager.java
│ │ │ │ ├── BackgroundStartPermissions.kt
│ │ │ │ ├── ByteUtil.java
│ │ │ │ ├── Common.java
│ │ │ │ ├── Constants.java
│ │ │ │ ├── EmojiUtil.java
│ │ │ │ ├── FixSizeLinkedList.java
│ │ │ │ ├── GetFilePathFromUri.java
│ │ │ │ ├── GlideEngine.java
│ │ │ │ ├── HasPermissions.java
│ │ │ │ ├── L.java
│ │ │ │ ├── LanguageUtil.java
│ │ │ │ ├── MThreadTool.java
│ │ │ │ ├── MediaFileUtil.java
│ │ │ │ ├── MediaPlayerUtil.kt
│ │ │ │ ├── NavigationBarUtil.java
│ │ │ │ ├── NotificationUtil.java
│ │ │ │ ├── Obs.java
│ │ │ │ ├── OnDedrepClickListener.java
│ │ │ │ ├── OpenFileUtil.java
│ │ │ │ ├── OpenFileUtil2.java
│ │ │ │ ├── RegexValid.java
│ │ │ │ ├── Routes.java
│ │ │ │ ├── SharedPreferencesUtil.java
│ │ │ │ ├── SinkHelper.java
│ │ │ │ ├── SystemBarUtil.java
│ │ │ │ ├── TimeUtil.java
│ │ │ │ └── TransformationUtil.java
│ │ │ │ ├── vm
│ │ │ │ ├── ContactListVM.java
│ │ │ │ ├── CounterVM.java
│ │ │ │ ├── ForwardVM.java
│ │ │ │ ├── GroupMemberVM.java
│ │ │ │ ├── GroupVM.java
│ │ │ │ ├── NotificationVM.java
│ │ │ │ ├── PreviewMediaVM.java
│ │ │ │ ├── SearchVM.java
│ │ │ │ ├── SelectFriendsVM.java
│ │ │ │ ├── SelectTargetVM.java
│ │ │ │ ├── SocialityVM.java
│ │ │ │ └── UserLogic.java
│ │ │ │ ├── voice
│ │ │ │ ├── SPlayer.java
│ │ │ │ ├── cache
│ │ │ │ │ └── VoiceCacheUtils.java
│ │ │ │ ├── listener
│ │ │ │ │ ├── OnDownloadListener.java
│ │ │ │ │ ├── PlayByAssetsListener.java
│ │ │ │ │ └── PlayerListener.java
│ │ │ │ ├── netWork
│ │ │ │ │ └── VoiceDownloadUtil.java
│ │ │ │ └── player
│ │ │ │ │ ├── AudioFocusManager.java
│ │ │ │ │ └── SMediaPlayer.java
│ │ │ │ └── widget
│ │ │ │ ├── AlphaBtn.java
│ │ │ │ ├── AvatarImage.java
│ │ │ │ ├── BottomPopDialog.java
│ │ │ │ ├── CenterCheckBox.java
│ │ │ │ ├── CirclePgBar.java
│ │ │ │ ├── CodeEditText.java
│ │ │ │ ├── CommonDialog.java
│ │ │ │ ├── CustomItemAnimator.java
│ │ │ │ ├── CustomPositionDrawableSpan.java
│ │ │ │ ├── DebugActivity.java
│ │ │ │ ├── FileDownloadView.java
│ │ │ │ ├── FileUploadView.java
│ │ │ │ ├── ForwardDialog.java
│ │ │ │ ├── GridSpaceItemDecoration.java
│ │ │ │ ├── ImageTxtViewHolder.java
│ │ │ │ ├── InterceptLinearLayout.java
│ │ │ │ ├── PhotographAlbumDialog.java
│ │ │ │ ├── PinchImageView.java
│ │ │ │ ├── PlaceHolderDrawable.java
│ │ │ │ ├── ProgressDialog.java
│ │ │ │ ├── RecordWaveView.kt
│ │ │ │ ├── RoundImageView.java
│ │ │ │ ├── SearchView.java
│ │ │ │ ├── SingleInfoModifyActivity.java
│ │ │ │ ├── SlideButton.java
│ │ │ │ ├── SpacesItemDecoration.java
│ │ │ │ ├── StickyDecoration.java
│ │ │ │ ├── SyLinearLayoutManager.java
│ │ │ │ ├── UILocker.java
│ │ │ │ ├── WaitDialog.java
│ │ │ │ ├── WebViewActivity.java
│ │ │ │ └── zoom
│ │ │ │ ├── GestureViewManager.java
│ │ │ │ ├── ScaleGestureListener.java
│ │ │ │ ├── ScaleGestureManager.java
│ │ │ │ ├── ScrollGestureListener.java
│ │ │ │ └── ScrollGestureManager.java
│ │ └── res
│ │ │ ├── anim
│ │ │ ├── anim_fade_in.xml
│ │ │ ├── anim_fade_out.xml
│ │ │ ├── dialog_enter.xml
│ │ │ ├── dialog_exit.xml
│ │ │ └── infinite_rotation.xml
│ │ │ ├── drawable
│ │ │ ├── bg_dialog_progress.xml
│ │ │ ├── bg_edit_vercode.xml
│ │ │ ├── progress_style.xml
│ │ │ ├── selector_btn_theme.xml
│ │ │ ├── selector_checkbox.xml
│ │ │ ├── selector_guide_bg.xml
│ │ │ ├── shape_guide_bg_defaut.xml
│ │ │ ├── shape_guide_bg_focus.xml
│ │ │ ├── sty_radius_10_aa666666.xml
│ │ │ ├── sty_radius_10_black.xml
│ │ │ ├── sty_radius_10_white.xml
│ │ │ ├── sty_radius_1_stroke.xml
│ │ │ ├── sty_radius_25_bottom_white.xml
│ │ │ ├── sty_radius_30_29e3a0.xml
│ │ │ ├── sty_radius_30_red.xml
│ │ │ ├── sty_radius_3_66000000.xml
│ │ │ ├── sty_radius_3_ff0089ff.xml
│ │ │ ├── sty_radius_3_ffffb300.xml
│ │ │ ├── sty_radius_3_stroke_418ae5.xml
│ │ │ ├── sty_radius_3_stroke_ffc7c7c8.xml
│ │ │ ├── sty_radius_4_33shallow.xml
│ │ │ ├── sty_radius_4_666666.xml
│ │ │ ├── sty_radius_4_bubble2.xml
│ │ │ ├── sty_radius_4_f0f0f0.xml
│ │ │ ├── sty_radius_4_f0f6ff.xml
│ │ │ ├── sty_radius_4_fff1f7ff.xml
│ │ │ ├── sty_radius_4_shallow.xml
│ │ │ ├── sty_radius_4_white.xml
│ │ │ ├── sty_radius_6_000000.xml
│ │ │ ├── sty_radius_6_330089ff.xml
│ │ │ ├── sty_radius_6_33warning.xml
│ │ │ ├── sty_radius_6_black.xml
│ │ │ ├── sty_radius_6_e8eaef.xml
│ │ │ ├── sty_radius_6_eeeeee.xml
│ │ │ ├── sty_radius_6_ff0089ff.xml
│ │ │ ├── sty_radius_6_red.xml
│ │ │ ├── sty_radius_6_stroke_418ae5.xml
│ │ │ ├── sty_radius_6_stroke_e6e6e6.xml
│ │ │ ├── sty_radius_6_tr_stroke_e6e6e6.xml
│ │ │ ├── sty_radius_6_warning.xml
│ │ │ ├── sty_radius_6_white.xml
│ │ │ ├── sty_radius_8_a2c9f8.xml
│ │ │ ├── sty_radius_8_fddfa1.xml
│ │ │ ├── sty_radius_max_10cc64.xml
│ │ │ ├── sty_radius_max_ff999999.xml
│ │ │ └── sty_top_radius_30_white.xml
│ │ │ ├── layout
│ │ │ ├── activity_comm_search.xml
│ │ │ ├── activity_single_modify.xml
│ │ │ ├── activity_web_view.xml
│ │ │ ├── dialog_forward.xml
│ │ │ ├── dialog_photograph_album.xml
│ │ │ ├── dialog_progress.xml
│ │ │ ├── item_file2.xml
│ │ │ ├── item_group_show.xml
│ │ │ ├── item_img_txt.xml
│ │ │ ├── item_img_txt_right.xml
│ │ │ ├── item_label_member.xml
│ │ │ ├── item_psrson_select.xml
│ │ │ ├── item_psrson_sticky.xml
│ │ │ ├── item_search_title.xml
│ │ │ ├── layout_bottompop_v3.xml
│ │ │ ├── layout_burn_after_reading.xml
│ │ │ ├── layout_chat_history_item.xml
│ │ │ ├── layout_common_dialog.xml
│ │ │ ├── layout_contact_item.xml
│ │ │ ├── layout_label_item.xml
│ │ │ ├── layout_member_action.xml
│ │ │ ├── layout_pop_selected_friends.xml
│ │ │ ├── layout_search.xml
│ │ │ ├── layout_selected_friends.xml
│ │ │ ├── often_recycler_view.xml
│ │ │ ├── transparent_dialog.xml
│ │ │ ├── view_back.xml
│ │ │ ├── view_badge.xml
│ │ │ ├── view_dividing_line.xml
│ │ │ ├── view_dividing_line_verticle.xml
│ │ │ ├── view_image.xml
│ │ │ ├── view_often_title.xml
│ │ │ ├── view_recycler_view.xml
│ │ │ ├── view_select_image.xml
│ │ │ ├── view_swipe_recycler_view.xml
│ │ │ └── view_waitdilog.xml
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_apple_null.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic__copy.png
│ │ │ ├── ic__mic_off.png
│ │ │ ├── ic__mic_on.png
│ │ │ ├── ic__tree.webp
│ │ │ ├── ic_add_friend.png
│ │ │ ├── ic_angle_mark.png
│ │ │ ├── ic_back2.png
│ │ │ ├── ic_blue_phone.png
│ │ │ ├── ic_chat_photo.png
│ │ │ ├── ic_chat_shoot.png
│ │ │ ├── ic_close3.png
│ │ │ ├── ic_close4.png
│ │ │ ├── ic_down_arrow2.png
│ │ │ ├── ic_file_download.png
│ │ │ ├── ic_file_download_pause2.png
│ │ │ ├── ic_file_excel.png
│ │ │ ├── ic_file_mask.png
│ │ │ ├── ic_file_pdf.png
│ │ │ ├── ic_file_ppt.png
│ │ │ ├── ic_file_unknown.png
│ │ │ ├── ic_file_word.png
│ │ │ ├── ic_file_zip.png
│ │ │ ├── ic_group.png
│ │ │ ├── ic_launcher_round.png
│ │ │ ├── ic_logo.png
│ │ │ ├── ic_logo2.png
│ │ │ ├── ic_logo2_void.png
│ │ │ ├── ic_my2.png
│ │ │ ├── ic_my_friend.png
│ │ │ ├── ic_my_group.png
│ │ │ ├── ic_net_excellent.png
│ │ │ ├── ic_net_good.png
│ │ │ ├── ic_net_poor.png
│ │ │ ├── ic_scan_it.png
│ │ │ ├── ic_tick.png
│ │ │ ├── ic_tools_video_call.png
│ │ │ ├── ic_un_newsletter.png
│ │ │ ├── ic_video_pause.png
│ │ │ ├── ic_video_s2.png
│ │ │ ├── ic_voice_s1.png
│ │ │ ├── ic_white_down.png
│ │ │ └── ic_zoom_out.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_add.png
│ │ │ ├── ic_add3.png
│ │ │ ├── ic_add_big2.png
│ │ │ ├── ic_add_big3.png
│ │ │ ├── ic_call_white.png
│ │ │ ├── ic_chat_file.png
│ │ │ ├── ic_check_select.png
│ │ │ ├── ic_check_unselect.png
│ │ │ ├── ic_close.png
│ │ │ ├── ic_close2.png
│ │ │ ├── ic_label.png
│ │ │ ├── ic_more.png
│ │ │ ├── ic_not_msg.png
│ │ │ ├── ic_online.png
│ │ │ ├── ic_qrcode.png
│ │ │ ├── ic_right.png
│ │ │ ├── ic_right2.png
│ │ │ ├── ic_search.png
│ │ │ ├── ic_search2.png
│ │ │ ├── ic_top_right.png
│ │ │ ├── ic_triangle.png
│ │ │ ├── ic_triangle_red.png
│ │ │ ├── ic_video_call.png
│ │ │ ├── ic_voice_call.png
│ │ │ └── ic_work_moments.png
│ │ │ ├── raw
│ │ │ └── message_ring.wav
│ │ │ ├── values-en-rUS
│ │ │ └── strings.xml
│ │ │ ├── values-v23
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── attr.xml
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ ├── styles.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── file_paths.xml
│ │ │ ├── locales_config.xml
│ │ │ └── network_security_config.xml
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── openim
│ │ └── android
│ │ └── ouicore
│ │ └── ExampleUnitTest.java
└── OUIGroup
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ └── java
│ │ └── io
│ │ └── openim
│ │ └── android
│ │ └── ouigroup
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── debug
│ │ └── AndroidManifest.xml
│ ├── java
│ │ └── io
│ │ │ └── openim
│ │ │ └── android
│ │ │ └── ouigroup
│ │ │ └── ui
│ │ │ ├── AllGroupActivity.java
│ │ │ ├── CreateGroupActivity.java
│ │ │ ├── GroupDetailActivity.java
│ │ │ ├── GroupMaterialActivity.java
│ │ │ ├── InitiateGroupActivity.java
│ │ │ ├── NoticeDetailActivity.java
│ │ │ ├── SelectedMemberActivity.java
│ │ │ ├── SetMuteActivity.java
│ │ │ ├── SuperGroupMemberActivity.java
│ │ │ └── v3
│ │ │ ├── GroupManageActivity.java
│ │ │ └── SelectTargetActivityV3.java
│ └── res
│ │ ├── layout
│ │ ├── activity_create_group.xml
│ │ ├── activity_create_group_v3.xml
│ │ ├── activity_group_detail.xml
│ │ ├── activity_group_manage.xml
│ │ ├── activity_group_material.xml
│ │ ├── activity_group_member.xml
│ │ ├── activity_initiate_group.xml
│ │ ├── activity_notice_detail.xml
│ │ ├── activity_selected_member.xml
│ │ ├── activity_set_mute.xml
│ │ └── activity_super_group_member.xml
│ │ └── mipmap-xxhdpi
│ │ ├── ic_at_all.png
│ │ ├── ic_edit.png
│ │ ├── ic_g_edit2.png
│ │ ├── ic_g_file.png
│ │ ├── ic_g_init_group_icon.png
│ │ ├── ic_g_photo.png
│ │ ├── ic_g_search_chat.png
│ │ ├── ic_g_time.png
│ │ ├── ic_g_video.png
│ │ ├── ic_group_add.png
│ │ └── ic_group_reduce.png
│ └── test
│ └── java
│ └── io
│ └── openim
│ └── android
│ └── ouigroup
│ └── ExampleUnitTest.java
├── README.md
├── README.zh-CN.md
└── docs
└── images
├── logo.jpg
├── preview1.png
└── preview2.png
/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 4
8 | end_of_line = lf
9 | insert_final_newline = true
10 |
11 | [*.kt]
12 | max_line_length = 160
13 | wildcard_import_limit = 99
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | .idea
5 | .DS_Store
6 | build
7 | /captures
8 | .externalNativeBuild
9 | .cxx
10 | local.properties
11 |
--------------------------------------------------------------------------------
/Demo/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /captures
13 | .externalNativeBuild
14 | .cxx
15 | local.properties
16 |
--------------------------------------------------------------------------------
/Demo/app/google-services.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_info": {
3 | "project_number": "348945246821",
4 | "project_id": "openim-test",
5 | "storage_bucket": "openim-test.firebasestorage.app"
6 | },
7 | "client": [
8 | {
9 | "client_info": {
10 | "mobilesdk_app_id": "1:348945246821:android:60c94109457d266bcaf48c",
11 | "android_client_info": {
12 | "package_name": "io.openim.android.os.demo"
13 | }
14 | },
15 | "oauth_client": [],
16 | "api_key": [
17 | {
18 | "current_key": "AIzaSyBqRw8iBMfhmN8pXwlYWFNiHGu0O7aPh6E"
19 | }
20 | ],
21 | "services": {
22 | "appinvite_service": {
23 | "other_platform_oauth_client": []
24 | }
25 | }
26 | }
27 | ],
28 | "configuration_version": "1"
29 | }
--------------------------------------------------------------------------------
/Demo/app/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Demo/app/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/Demo/app/openim:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/openim
--------------------------------------------------------------------------------
/Demo/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/Demo/app/src/androidTest/java/io/openim/android/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("io.openim.android.demo", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/selector_logo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/selector_moments.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/selector_newsletter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/selector_open_eyes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/selector_own.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/selector_tab_txt_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/drawable/splash_shape_gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
7 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/layout/layout_search_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
18 |
19 |
26 |
27 |
32 |
33 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/layout/view_department.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
16 |
17 |
25 |
26 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-hdpi/push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-hdpi/push.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-mdpi/push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-mdpi/push.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xhdpi/push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xhdpi/push.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/bg_head_my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/bg_head_my.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_about.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_add_friend4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_add_friend4.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_add_qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_add_qr.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_call.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_chat.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_close_eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_close_eye.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_copy.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_create_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_create_group.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_moments1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_moments1.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_moments2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_moments2.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_moments3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_moments3.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_my.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_my_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_my_info.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_my_qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_my_qr.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_my_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_my_setting.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_newsletter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_newsletter.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_open_eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_open_eye.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/ic_quit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/ic_quit.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxhdpi/push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxhdpi/push.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_add_friend2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_add_friend2.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_add_friend3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_add_friend3.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_back.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_my.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_my.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/ic_splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/ic_splash.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/mipmap-xxxhdpi/push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/app/src/main/res/mipmap-xxxhdpi/push.png
--------------------------------------------------------------------------------
/Demo/app/src/main/res/values-en-rUS/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | IM-NCB
4 |
5 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | OpenIM
4 |
5 |
--------------------------------------------------------------------------------
/Demo/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Demo/app/src/test/java/io/openim/android/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/Demo/config.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 |
4 | ext {
5 | //模块单独运行
6 | isModule=false
7 |
8 | //android 配置
9 | androidConfig = [
10 | minSdk : 24,
11 | targetSdk : 32,
12 | compileSdk : 33,
13 | versionCode: 9,
14 | versionName: "3.8.3",
15 | abiFilters : ['armeabi-v7a','arm64-v8a']
16 | ]
17 |
18 | applicationId = [
19 | "app" : "io.openim.android.os.demo",
20 | "OUIConversation" : "io.openim.android.ouiconversation",
21 | "OUIGroup" : "io.openim.android.ouigroup",
22 | "OUIContact" : "io.openim.android.ouicontact",
23 | "OUICalling" : "io.openim.android.ouicalling",
24 | "OUIApplet" : "io.openim.android.ouiapplet"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/Demo/delete_build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | delete_build_folders() {
4 | # 遍历当前文件夹下的子文件夹,包括隐藏文件夹
5 | shopt -s dotglob
6 | for dir_name in "$1"/*; do
7 | if [ -d "$dir_name" ]; then
8 | if [ "$(basename "$dir_name")" = "build" ]||[ "$(basename "$dir_name")" = ".gradle" ]; then
9 | # 删除build文件夹
10 | rm -rf "$dir_name"
11 | echo "删除文件夹: $dir_name"
12 | else
13 | # 递归删除子文件夹中的build文件夹
14 | delete_build_folders "$dir_name"
15 | fi
16 | fi
17 | done
18 | }
19 |
20 | # 获取用户输入的文件夹路径
21 | # shellcheck disable=SC2162
22 | read -p "请输入要删除的文件夹路径: " folder_path
23 |
24 | # 调用函数删除文件夹
25 | delete_build_folders "$folder_path"
26 |
27 | # 删除指定文件夹
28 | rm -rf "$folder_path"
29 | echo "删除文件夹: $folder_path"
30 | echo "操作完成!"
31 |
--------------------------------------------------------------------------------
/Demo/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/Demo/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Demo/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu May 12 10:02:16 CST 2022
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
8 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/androidTest/java/com/example/ouiapplet/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.example.ouiapplet;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.example.ouiapplet", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/java/io/openim/android/ouiapplet/AppletActivity.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouiapplet;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.lifecycle.Observer;
6 |
7 | import io.openim.android.ouiapplet.databinding.ActivityAppletBinding;
8 | import io.openim.android.ouicore.base.BasicActivity;
9 | import io.openim.android.ouicore.base.vm.injection.Easy;
10 | import io.openim.android.ouicore.vm.UserLogic;
11 |
12 | public class AppletActivity extends BasicActivity {
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | viewBinding(ActivityAppletBinding.inflate(getLayoutInflater()));
18 | Easy.find(UserLogic.class).discoverPageURL.observe(this,
19 | s -> view.webView.loadUrl(s));
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/java/io/openim/android/ouiapplet/service/NetService.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouiapplet.service;
2 |
3 | import java.util.Random;
4 |
5 | import io.openim.android.ouicore.net.RXRetrofit.Parameter;
6 | import io.reactivex.Observable;
7 | import okhttp3.RequestBody;
8 | import okhttp3.ResponseBody;
9 | import retrofit2.http.Body;
10 | import retrofit2.http.Header;
11 | import retrofit2.http.POST;
12 | import retrofit2.http.Url;
13 |
14 | public interface NetService {
15 | /**
16 | * 获取小程序列表
17 | */
18 | @POST("/applet/find")
19 | Observable findApplet(@Body RequestBody requestBody);
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
17 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFBB86FC
4 | #FF6200EE
5 | #FF3700B3
6 | #FF03DAC5
7 | #FF018786
8 | #FF000000
9 | #FFFFFFFF
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/res/values/refs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | OUIApplet
3 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
17 |
--------------------------------------------------------------------------------
/OUIKit/OUIApplet/src/test/java/com/example/ouiapplet/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.example.ouiapplet;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/OUIKit/OUICalling/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/androidTest/java/io/openim/android/ouilive/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouilive;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("io.openim.android.ouilive", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/drawable/selector_camera.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/drawable/selector_mic.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/drawable/selector_speaker.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/layout/activity_demo.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_answer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_answer.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_close_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_close_camera.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_hang_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_hang_up.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_off.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_on.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_s_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_s_off.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_s_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_mic_s_on.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_open_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_open_camera.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_speaker_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_speaker_off.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_speaker_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_speaker_on.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_switch_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/mipmap-xxhdpi/ic_switch_camera.png
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/raw/incoming_call_ring.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/raw/incoming_call_ring.mp3
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/main/res/raw/outgoing_call_ring.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICalling/src/main/res/raw/outgoing_call_ring.mp3
--------------------------------------------------------------------------------
/OUIKit/OUICalling/src/test/java/io/openim/android/ouilive/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouilive;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/OUIKit/OUIContact/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/OUIKit/OUIContact/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/consumer-rules.pro
--------------------------------------------------------------------------------
/OUIKit/OUIContact/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/androidTest/java/io/openim/android/ouicontact/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicontact;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("io.openim.android.ouicontact.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/java/io/openim/android/ouicontact/DebugActivity.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicontact;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.os.Bundle;
6 |
7 | import io.openim.android.ouicontact.ui.fragment.ContactFragment;
8 |
9 | public class DebugActivity extends AppCompatActivity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.activity_debug);
15 |
16 | getSupportFragmentManager().beginTransaction()
17 | .add(R.id.fragment_container, new ContactFragment()).commit();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/java/io/openim/android/ouicontact/vm/SearchGroup.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicontact.vm;
2 |
3 | import android.text.TextUtils;
4 |
5 | import androidx.lifecycle.MutableLiveData;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | import io.openim.android.ouicore.base.BaseViewModel;
11 | import io.openim.android.sdk.models.GroupInfo;
12 |
13 | public class SearchGroup extends BaseViewModel {
14 | //我加入的群
15 | public MutableLiveData> groups = new MutableLiveData<>(new ArrayList<>());
16 | public MutableLiveData> searchGroups = new MutableLiveData<>(new ArrayList<>());
17 | public MutableLiveData searchKey = new MutableLiveData<>();
18 |
19 | public void search(String key) {
20 | searchGroups.getValue().clear();
21 | if (!TextUtils.isEmpty(key)) {
22 | for (GroupInfo groupInfo : groups.getValue()) {
23 | if (groupInfo.getGroupName().toUpperCase().contains(key.toUpperCase())) {
24 | searchGroups.getValue().add(groupInfo);
25 | }
26 | }
27 | }
28 | searchGroups.setValue(searchGroups.getValue());
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/layout/activity_debug.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_add_san.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_add_san.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_c_add_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_c_add_friend.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_c_add_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_c_add_group.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_c_create_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_c_create_group.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_friend_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_friend_add.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_my_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_my_friend.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_my_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_my_group.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_my_group2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIContact/src/main/res/mipmap-xxhdpi/ic_my_group2.png
--------------------------------------------------------------------------------
/OUIKit/OUIContact/src/test/java/io/openim/android/ouicontact/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicontact;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/consumer-rules.pro
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/libs/com.oliver.record.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/libs/com.oliver.record.aar
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/androidTest/java/io/openim/android/ouiconversation/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouiconversation;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("io.openim.android.OUIConversation.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/java/io/openim/android/ouiconversation/DebugActivity.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouiconversation;
2 |
3 | import android.os.Bundle;
4 |
5 | import io.openim.android.ouiconversation.databinding.ActivityDebugBinding;
6 |
7 | public class DebugActivity extends io.openim.android.ouicore.widget.DebugActivity {
8 | ActivityDebugBinding view;
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | view=ActivityDebugBinding.inflate(getLayoutInflater());
13 | setContentView(view.getRoot());
14 | }
15 |
16 | @Override
17 | public void onSuccess(String data) {
18 | super.onSuccess(data);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/anim/animation_repeat_spinning.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/ic_camera_enhance_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/selector_chat_checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/selector_custom_emoji.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/selector_emoji_checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/selector_white_gray.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/sty_radius_unleft_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/sty_radius_unleft_30_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/sty_radius_unleft_stroke_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
10 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/sty_radius_unleft_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/sty_radius_unright_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/drawable/sty_radius_unright_stroke_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
11 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/activity_debug.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/activity_shoot.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/emoji_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
15 |
21 |
22 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/fragment_input_expand.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/item_expand_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/item_history_merge.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/layout_loading_small.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/layout_send_state.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
21 |
22 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/layout/view_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/emoji.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_add_big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_add_big.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_add_emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_add_emoji.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_business_card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_business_card.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_copy.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_file.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_photo.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_search.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_send.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_video.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_video_meeting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_c_video_meeting.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_add.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_face.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_face2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_face2.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_keyboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_keyboard.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_location.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_menu_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_menu_file.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_shoot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_shoot.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_chat_voice.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_create_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_create_group.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_custom_emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_custom_emoji.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_custom_emoji2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_custom_emoji2.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_delete.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_delete_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_delete_grey.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_down_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_down_arrow.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_emoji_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_emoji_delete.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_ex_mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_ex_mark.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_01.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_01.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_02.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_02.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_03.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_03.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_04.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_04.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_05.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_05.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_06.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_06.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_07.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_07.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_08.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_08.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_09.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_09.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_10.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_10.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_11.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_11.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_12.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_12.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_13.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_13.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_14.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_14.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_15.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_15.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_16.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_face_16.webp
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_forward.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_forward_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_forward_grey.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_iv_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_iv_camera.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_iv_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_iv_more.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_loading.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_multiple_choice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_multiple_choice.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_notice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_notice.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_reply.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_reply.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_sync_err.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_sync_err.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_tools_video_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_tools_video_call.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_withdraw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxhdpi/ic_withdraw.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/bg_chat_voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/bg_chat_voice.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/bg_chat_voice2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/bg_chat_voice2.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_add_big3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_add_big3.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_cancel.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_cancel2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_cancel2.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_horn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_horn.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_speech.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_speech.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_speech2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_chat_speech2.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_meeting_tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_meeting_tag.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_phone.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_send_err.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIConversation/src/main/res/mipmap-xxxhdpi/ic_send_err.png
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 36dp
4 | 8dp
5 | 14dp
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUIConversation/src/test/java/io/openim/android/ouiconversation/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouiconversation;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/OUIKit/OUICore/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/OUIKit/OUICore/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/consumer-rules.pro
--------------------------------------------------------------------------------
/OUIKit/OUICore/libs/EasyWindow-10.2.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/libs/EasyWindow-10.2.aar
--------------------------------------------------------------------------------
/OUIKit/OUICore/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/androidTest/java/io/openim/android/ouicore/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("io.openim.android.ouicore.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/base/IView.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.base;
2 |
3 | import android.widget.Toast;
4 |
5 | /**
6 | * View
7 | */
8 | public interface IView {
9 | void onError(String error);
10 |
11 | void onSuccess(Object body);
12 |
13 | void toast(String tips);
14 |
15 | void close();
16 | }
17 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/base/vm/ISubscribe.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.base.vm;
2 |
3 | public interface ISubscribe {
4 | void onSubject(Subject subject);
5 | }
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/base/vm/State.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.base.vm;
2 |
3 | import androidx.lifecycle.MutableLiveData;
4 |
5 | public class State extends MutableLiveData {
6 |
7 | public State() {super();}
8 |
9 | public State(T value) {
10 | super(value);
11 | }
12 |
13 | public T val() {
14 | return super.getValue();
15 | }
16 |
17 | public void update() {
18 | setValue(getValue());
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/base/vm/Subject.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.base.vm;
2 |
3 | import java.util.Objects;
4 |
5 | public class Subject {
6 | public String key;
7 | public Object value;
8 |
9 | public Subject(String key) {
10 | this.key = key;
11 | }
12 |
13 | public Subject(String key, Object value) {
14 | this.key = key;
15 | this.value = value;
16 | }
17 | public boolean equals(String o){
18 | return key.equals(o);
19 | }
20 |
21 | @Override
22 | public boolean equals(Object o) {
23 | if (this == o) return true;
24 | if (o instanceof Subject) {
25 | Subject subject = (Subject) o;
26 | return Objects.equals(key, subject.key);
27 | }
28 | return this.key == o;
29 | }
30 |
31 | @Override
32 | public int hashCode() {
33 | return Objects.hash(key);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/AtMsgInfo.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.util.List;
4 |
5 | import io.openim.android.sdk.models.AtUserInfo;
6 |
7 | public class AtMsgInfo {
8 | public String text;
9 | public List atUserList;
10 | public List atUsersInfo;
11 | public boolean isAtSelf;
12 | }
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/BurnAfterReadingNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | public class BurnAfterReadingNotification {
4 | /// 接收者
5 | public String recvID;
6 |
7 | /// 发送者
8 | public String sendID;
9 |
10 | /// 是否开启
11 | public boolean isPrivate;
12 |
13 | // 会话Id
14 | public String conversationID;
15 | }
16 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/CustomEmojiEntity.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | public class CustomEmojiEntity {
4 | public int width;
5 | public String url;
6 | public int height;
7 | }
8 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/EnterGroupNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.sdk.models.GroupInfo;
4 | import io.openim.android.sdk.models.GroupMembersInfo;
5 |
6 | public class EnterGroupNotification {
7 | /// 群信息
8 | public GroupInfo group;
9 |
10 | /// 进入群的成员信息
11 | public GroupMembersInfo entrantUser;
12 | }
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/ExGroupMemberInfo.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.io.Serializable;
4 |
5 | import io.openim.android.ouicore.ex.CommEx;
6 | import io.openim.android.sdk.models.GroupMembersInfo;
7 |
8 | public class ExGroupMemberInfo extends CommEx implements Serializable {
9 | public GroupMembersInfo groupMembersInfo;
10 |
11 | /**
12 | * contains 方法
13 | *
14 | * @param o
15 | * @return
16 | */
17 | @Override
18 | public boolean equals(Object o) {
19 | if (this == o) return true;
20 | if (o == null || getClass() != o.getClass()) return false;
21 | ExGroupMemberInfo that = (ExGroupMemberInfo) o;
22 | if (that.groupMembersInfo.getUserID().equals(groupMembersInfo.getUserID()))
23 | return true;
24 | return false;
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/ExUserInfo.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.ouicore.ex.CommEx;
4 | import io.openim.android.sdk.models.UserInfo;
5 |
6 | public class ExUserInfo extends CommEx {
7 | public UserInfo userInfo;
8 | public ExGroupMemberInfo exGroupMemberInfo;
9 | }
10 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/ExtendUserInfo.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.ouicore.net.bage.Base;
4 | import io.openim.android.sdk.models.UserInfo;
5 |
6 | /**
7 | * 扩展客户业务的用户信息
8 | */
9 | public class ExtendUserInfo {
10 | public UserInfo userInfo;
11 | }
12 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/GroupNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.util.List;
4 |
5 | import io.openim.android.sdk.models.GroupInfo;
6 | import io.openim.android.sdk.models.GroupMembersInfo;
7 |
8 | public class GroupNotification {
9 | /// 群信息
10 | public GroupInfo group;
11 |
12 | /// 当前事件操作者信息
13 | public GroupMembersInfo opUser;
14 |
15 | /// 群拥有者信息
16 | public GroupMembersInfo groupOwnerUser;
17 |
18 | /// 产生影响的群成员列表
19 | public List memberList;
20 |
21 | /// 资料发生改变的成员
22 | GroupMembersInfo changedUser;
23 | }
24 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/GroupRightsTransferNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.sdk.models.GroupInfo;
4 | import io.openim.android.sdk.models.GroupMembersInfo;
5 |
6 | public class GroupRightsTransferNotification {
7 | /// 群信息
8 | public GroupInfo group;
9 |
10 | /// 操作者信息
11 | public GroupMembersInfo opUser;
12 |
13 | /// 群新的拥有者信息
14 | public GroupMembersInfo newGroupOwner;
15 | }
16 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/JoinKickedGroupNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.util.List;
4 |
5 | import io.openim.android.sdk.models.GroupInfo;
6 | import io.openim.android.sdk.models.GroupMembersInfo;
7 |
8 | public class JoinKickedGroupNotification {
9 | /// 群信息
10 | public GroupInfo group;
11 |
12 | /// 操作者信息
13 | public GroupMembersInfo opUser;
14 |
15 | /// 被邀请进群的成员信息
16 | public List invitedUserList;
17 | /// 被踢出群的成员信息列表
18 | public List kickedUserList;
19 | }
20 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/LocationInfo.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | public class LocationInfo {
4 | public String name;
5 | public String addr;
6 | public String url;
7 | }
8 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/MeetingInfo.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | public class MeetingInfo {
4 | public String inviterNickname;
5 | public String id;
6 | public String subject;
7 | public long start;
8 | public String startTime;
9 | public int duration;
10 | public String durationStr;
11 |
12 | public String inviterFaceURL;
13 | public String inviterUserID;
14 | }
15 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/MeetingInfoAttach.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | public class MeetingInfoAttach {
4 | public int customType;
5 | public MeetingInfo data;
6 | }
7 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/MsgExpand.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import android.text.SpannableStringBuilder;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | /**
9 | * message 的 ext
10 | */
11 | public class MsgExpand {
12 | public MsgExpand() {
13 | }
14 | //多选被选中
15 | public boolean isChoice;
16 | //此item 应该显示时间
17 | public boolean isShowTime;
18 | //富文本
19 | public transient SpannableStringBuilder sequence;
20 | }
21 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/MuteMemberNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.sdk.models.GroupInfo;
4 | import io.openim.android.sdk.models.GroupMembersInfo;
5 |
6 | public class MuteMemberNotification {
7 | /// 群信息
8 | public GroupInfo group;
9 |
10 | /// 操作者信息
11 | public GroupMembersInfo opUser;
12 |
13 | /// 被禁言的成员信息
14 | public GroupMembersInfo mutedUser;
15 |
16 | /// 禁言时间s
17 | public int mutedSeconds;
18 | }
19 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/NotificationContent.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.io.Serializable;
4 |
5 | public class NotificationContent implements Serializable {
6 | public String groupID;
7 |
8 | public String notification;
9 |
10 | public String ownerUserID;
11 |
12 | public long createTime;
13 |
14 | public int memberCount;
15 |
16 | public String creatorUserID;
17 | }
18 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/NotificationHead.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.io.Serializable;
4 |
5 | public class NotificationHead implements Serializable {
6 | public String groupID;
7 | public String notification;
8 | public String ownerUserID;
9 | public long createTime;
10 | public int memberCount;
11 | public String creatorUserID;
12 | }
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/NotificationMsg.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.io.Serializable;
4 |
5 | public class NotificationMsg implements Serializable {
6 | public NotificationHead opUser;
7 | public NotificationContent group;
8 | }
9 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/OANotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.sdk.models.FileElem;
4 | import io.openim.android.sdk.models.PictureElem;
5 | import io.openim.android.sdk.models.SoundElem;
6 | import io.openim.android.sdk.models.VideoElem;
7 |
8 | public class OANotification {
9 | /// 标题
10 | public String notificationName;
11 |
12 | /// 头像
13 | public String notificationFaceURL;
14 |
15 | /// 类型
16 | public int notificationType;
17 |
18 | /// 文本内容
19 | public String text;
20 |
21 | /// 跳转链接
22 | public String externalUrl;
23 |
24 | /// 0:纯文字通知 1:文字+图片通知 2:文字+视频通知 3:文字+文件通知
25 | public int mixType;
26 |
27 | /// 图片信息
28 | public PictureElem pictureElem;
29 |
30 | /// 语音信息
31 | public SoundElem soundElem;
32 |
33 | /// 视频信息
34 | public VideoElem videoElem;
35 |
36 | /// 文件信息
37 | public FileElem fileElem;
38 |
39 | /// 扩展字段
40 | public String ex;
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/ParticipantMeta.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.sdk.models.GroupInfo;
4 | import io.openim.android.sdk.models.GroupMembersInfo;
5 | import io.openim.android.sdk.models.UserInfo;
6 |
7 | public class ParticipantMeta {
8 | public GroupInfo groupInfo;
9 | public GroupMembersInfo groupMemberInfo;
10 | public UserInfo userInfo;
11 | public boolean setTop=false;
12 | }
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/QuitGroupNotification.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import io.openim.android.sdk.models.GroupInfo;
4 | import io.openim.android.sdk.models.GroupMembersInfo;
5 |
6 | public class QuitGroupNotification {
7 | /// 群信息
8 | public GroupInfo group;
9 |
10 | /// 退群的成员信息
11 | public GroupMembersInfo quitUser;
12 | }
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/SortLetter.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.io.Serializable;
4 |
5 | public class SortLetter implements Serializable {
6 | public String sortLetter; //显示数据拼音的首字母
7 | }
8 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/UserLabel.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.util.List;
4 |
5 | public class UserLabel {
6 | public UserLabel() {
7 | }
8 |
9 | private List tags;
10 |
11 | private String tagID;
12 |
13 | private String tagName;
14 |
15 | private List userList;
16 |
17 | public List getTags() {
18 | return tags;
19 | }
20 |
21 | public void setTags(List tags) {
22 | this.tags = tags;
23 | }
24 |
25 | public void setTagID(String tagID) {
26 | this.tagID = tagID;
27 | }
28 |
29 | public String getTagID() {
30 | return this.tagID;
31 | }
32 |
33 | public void setTagName(String tagName) {
34 | this.tagName = tagName;
35 | }
36 |
37 | public String getTagName() {
38 | return this.tagName;
39 | }
40 |
41 | public void setUserList(List userList) {
42 | this.userList = userList;
43 | }
44 |
45 | public List getUserList() {
46 | return this.userList;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/UserLabelChild.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | public class UserLabelChild {
4 | private String userID;
5 | private String userName;
6 |
7 | public UserLabelChild() {
8 | }
9 |
10 | public void setUserID(String userID) {
11 | this.userID = userID;
12 | }
13 |
14 | public String getUserID() {
15 | return userID;
16 | }
17 |
18 | public void setUserName(String userName) {
19 | this.userName = userName;
20 | }
21 |
22 | public String getUserName() {
23 | return userName;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/entity/UserList.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.entity;
2 |
3 | import java.util.List;
4 |
5 | import io.openim.android.sdk.models.UserInfo;
6 |
7 | public class UserList {
8 | public int total;
9 | public List users;
10 | }
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/ex/AtUser.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.ex;
2 |
3 | import java.io.Serializable;
4 |
5 | public class AtUser extends UserEx implements Serializable {
6 |
7 |
8 | public AtUser(String key) {
9 | super(key);
10 | }
11 | //用于在消息输入框监听删除键时 判断删除对应@的人
12 | public int spanHashCode;
13 | }
14 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/ex/CommEx.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.ex;
2 |
3 | import androidx.annotation.Nullable;
4 |
5 | import java.io.Serializable;
6 | import java.util.Objects;
7 |
8 | /**
9 | * 常用扩展字段
10 | */
11 | @Deprecated
12 | public class CommEx implements Serializable {
13 | public String key; //Id
14 | public boolean isSticky = false; //是否是Sticky
15 | public String sortLetter; //显示数据拼音的首字母
16 |
17 | public boolean isSelect = false;//是否被选中
18 | public boolean isEnabled = true;//是否可点击
19 |
20 | @Override
21 | public boolean equals(@Nullable Object obj) {
22 | if (null != obj) {
23 | if (hashCode() ==
24 | obj.hashCode()) return true;
25 | }
26 | return super.equals(obj);
27 | }
28 |
29 | @Override
30 | public int hashCode() {
31 | return Objects.hash(key);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/ex/Ex.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.ex;
2 |
3 | import androidx.annotation.Nullable;
4 |
5 | import java.io.Serializable;
6 | import java.util.Objects;
7 |
8 | public class Ex implements Serializable {
9 |
10 | public String key; //Id
11 |
12 | public Ex(String key) {
13 | this.key = key;
14 | }
15 |
16 | @Override
17 | public boolean equals(@Nullable Object obj) {
18 | if (null != obj) {
19 | if (hashCode() == obj.hashCode())
20 | return true;
21 | }
22 | return super.equals(obj);
23 | }
24 |
25 | @Override
26 | public int hashCode() {
27 | return Objects.hash(key);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/ex/MultipleChoice.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.ex;
2 |
3 | import java.io.Serializable;
4 |
5 | public class MultipleChoice extends CommEx implements Serializable {
6 | public MultipleChoice() {
7 | }
8 |
9 | public MultipleChoice(String key) {
10 | this.key = key;
11 | }
12 |
13 | public String name;
14 | public String icon;
15 | public boolean isGroup;
16 | public String groupId;
17 | }
18 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/ex/Title.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.ex;
2 |
3 | public class Title extends Ex {
4 | public Title(String key) {
5 | super(key);
6 | }
7 |
8 | public String title;
9 | }
10 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/ex/UserEx.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.ex;
2 |
3 | import java.io.Serializable;
4 |
5 | public class UserEx extends Ex implements Serializable {
6 |
7 | public UserEx(String key) {
8 | super(key);
9 | }
10 | public String name;
11 | public String faceUrl;
12 | }
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/im/IM.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.im;
2 |
3 |
4 | import android.app.Application;
5 |
6 | import io.openim.android.ouicore.base.BaseApp;
7 | import io.openim.android.ouicore.utils.Constants;
8 | import io.openim.android.ouicore.utils.L;
9 | import io.openim.android.sdk.OpenIMClient;
10 | import io.openim.android.sdk.models.InitConfig;
11 |
12 | public class IM {
13 | public static void initSdk(Application app) {
14 | L.e("App", "---IM--initSdk");
15 | InitConfig initConfig = new InitConfig(Constants.getImApiUrl(),
16 | Constants.getImWsUrl(), getStorageDir());
17 | initConfig.isLogStandardOutput = true;
18 | initConfig.logLevel=5;
19 |
20 | ///IM 初始化
21 | OpenIMClient.getInstance().initSDK(app,
22 | initConfig, IMEvent.getInstance().connListener);
23 |
24 | IMEvent.getInstance().init();
25 | }
26 |
27 | //存储路径
28 | public static String getStorageDir() {
29 | return BaseApp.inst().getFilesDir().getAbsolutePath();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/im/IMBack.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.im;
2 |
3 | import android.widget.Toast;
4 |
5 | import io.openim.android.ouicore.base.BaseApp;
6 | import io.openim.android.sdk.listener.OnBase;
7 |
8 | public class IMBack implements OnBase {
9 | @Override
10 | public void onError(int code, String error) {
11 | Toast.makeText(BaseApp.inst(), error+"("+code+")",
12 | Toast.LENGTH_LONG).show();
13 | }
14 |
15 | @Override
16 | public void onSuccess(T data) {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/net/RXRetrofit/Exception/NetworkException.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.net.RXRetrofit.Exception;
2 |
3 |
4 | import io.openim.android.ouicore.R;
5 | import io.openim.android.ouicore.base.BaseApp;
6 |
7 | public class NetworkException extends Exception {
8 |
9 | private static final long serialVersionUID = 114946L;
10 |
11 |
12 | public NetworkException() {
13 | super(BaseApp.inst().getString(R.string.network_unavailable_tips));
14 | }
15 |
16 | public NetworkException(String message) {
17 | super(message);
18 | }
19 |
20 |
21 | public NetworkException(String message, Throwable cause) {
22 | super(message, cause);
23 | }
24 |
25 | public NetworkException(Throwable cause) {
26 | super(cause);
27 | }
28 |
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/net/RXRetrofit/annotations/IdentityEncoding.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.net.RXRetrofit.annotations;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | @Retention(RetentionPolicy.RUNTIME)
9 | @Target(ElementType.METHOD)
10 | public @interface IdentityEncoding {
11 | }
12 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/net/RXRetrofit/interceptors/IdentityEncodingInterceptor.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.net.RXRetrofit.interceptors;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import java.io.IOException;
6 |
7 | import io.openim.android.ouicore.net.RXRetrofit.annotations.IdentityEncoding;
8 | import okhttp3.Interceptor;
9 | import okhttp3.Request;
10 | import okhttp3.Response;
11 | import retrofit2.Invocation;
12 |
13 | public class IdentityEncodingInterceptor implements Interceptor {
14 | @NonNull
15 | @Override
16 | public Response intercept(@NonNull Chain chain) throws IOException {
17 | Request request = chain.request();
18 | Invocation invocation = request.tag(Invocation.class);
19 | if (invocation != null && invocation.method().getAnnotation(IdentityEncoding.class) != null) {
20 | Request newRequest = request.newBuilder()
21 | .header("Accept-Encoding", "identity")
22 | .build();
23 | return chain.proceed(newRequest);
24 | }
25 | return chain.proceed(request);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/net/bage/Base.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.net.bage;
2 |
3 | /**
4 | * Created by WJ on 2017/12/29.
5 | */
6 |
7 | public class Base {
8 | public int errCode;
9 |
10 | public String errMsg;
11 | public String errDlt;
12 |
13 | public T data;
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/repository/OrganizationApi.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.repository;
2 |
3 | import io.reactivex.Observable;
4 | import okhttp3.RequestBody;
5 | import okhttp3.ResponseBody;
6 | import retrofit2.http.Body;
7 | import retrofit2.http.POST;
8 |
9 | public interface OrganizationApi {
10 |
11 | @POST("organization/department/find")
12 | Observable getDepartment(@Body RequestBody requestBody);
13 |
14 | /**
15 | * 获取所在部门
16 | * @param requestBody
17 | * @return
18 | */
19 | @POST("organization/user/department")
20 | Observable getInDepartment(@Body RequestBody requestBody);
21 | }
22 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/services/IConversationBridge.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.services;
2 |
3 | import androidx.lifecycle.LifecycleOwner;
4 |
5 | import com.alibaba.android.arouter.facade.template.IProvider;
6 |
7 | import io.openim.android.ouicore.im.IMUtil;
8 | import io.openim.android.sdk.models.ConversationInfo;
9 |
10 | public interface IConversationBridge extends IProvider {
11 | void deleteConversationFromLocalAndSvr(String groupID);
12 |
13 | void closeChatPage();
14 |
15 | ConversationInfo getConversationInfo();
16 | }
17 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/utils/ByteUtil.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.utils;
2 |
3 | import java.text.DecimalFormat;
4 |
5 | public class ByteUtil {
6 | private static final int GB = 1024 * 1024 *1024;
7 | private static final int MB = 1024 * 1024;
8 | private static final int KB = 1024;
9 |
10 | public static String bytes2kb(long bytes){
11 | DecimalFormat format = new DecimalFormat("###.0");
12 | if (bytes / GB >= 1){
13 | return format.format(bytes / GB) + "G";
14 | }
15 | else if (bytes / MB >= 1){
16 | return format.format(bytes / MB) + "M";
17 | }
18 | else if (bytes / KB >= 1){
19 | return format.format(bytes / KB) + "K";
20 | }else {
21 | return bytes + "B";
22 | }
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/utils/EmojiUtil.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.utils;
2 |
3 | import java.util.HashMap;
4 |
5 | public class EmojiUtil {
6 | public static HashMap emojiFaces = new HashMap() {
7 | {
8 | put("[亲亲]", "ic_face_01");
9 | put("[看穿]", "ic_face_02");
10 | put("[色]", "ic_face_03");
11 | put("[吓哭]", "ic_face_04");
12 | put("[笑脸]", "ic_face_05");
13 | put("[眨眼]", "ic_face_06");
14 | put("[搞怪]", "ic_face_07");
15 | put("[龇牙]", "ic_face_08");
16 | put("[无语]", "ic_face_09");
17 | put("[可怜]", "ic_face_10");
18 | put("[咒骂]", "ic_face_11");
19 | put("[晕]", "ic_face_12");
20 | put("[尴尬]", "ic_face_13");
21 | put("[暴怒]", "ic_face_14");
22 | put("[可爱]", "ic_face_15");
23 | put("[哭泣]", "ic_face_16");
24 | }
25 | };
26 | }
27 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/utils/FixSizeLinkedList.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.utils;
2 |
3 | import java.util.LinkedList;
4 |
5 | public class FixSizeLinkedList extends LinkedList {
6 |
7 | private int capacity;
8 |
9 | public FixSizeLinkedList(int capacity) {
10 | super();
11 | this.capacity = capacity;
12 | }
13 |
14 | @Override
15 | public void add(int index, T element) {
16 | super.add(index, element);
17 | if (size() > capacity) {
18 | super.removeFirst();
19 | }
20 | }
21 |
22 | @Override
23 | public boolean add(T t) {
24 | if (size() + 1 > capacity) {
25 | super.removeFirst();
26 | }
27 | return super.add(t);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/utils/Obs.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.utils;
2 |
3 | import java.util.Observable;
4 | import java.util.Observer;
5 |
6 | /**
7 | * 观察者
8 | */
9 | public class Obs extends Observable {
10 | private static Obs observer = null;
11 |
12 | public synchronized static Obs inst() {
13 | if (observer == null) {
14 | observer = new Obs();
15 | }
16 | return observer;
17 | }
18 |
19 | public static void newMessage(int tag) {
20 | inst().setMessage(new Message(tag));
21 | }
22 |
23 | public static void newMessage(int tag, Object object) {
24 | inst().setMessage(new Message(tag, object));
25 | }
26 |
27 | private void setMessage(Message message) {
28 | observer.setChanged();
29 | observer.notifyObservers(message);
30 | }
31 |
32 | public static class Message {
33 | public int tag;
34 | public Object object;
35 |
36 | public Message(int tag) {
37 | this.tag = tag;
38 | }
39 |
40 | public Message(int tag, Object object) {
41 | this.tag = tag;
42 | this.object = object;
43 | }
44 | }
45 |
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/utils/OnDedrepClickListener.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.utils;
2 |
3 |
4 | import android.os.Handler;
5 | import android.os.Looper;
6 | import android.view.View;
7 |
8 | /**
9 | * 去重点击
10 | */
11 | public abstract class OnDedrepClickListener implements View.OnClickListener {
12 | private long mLastClickTime;
13 | private long timeInterval = 700;
14 |
15 | public OnDedrepClickListener() {
16 | }
17 |
18 | public OnDedrepClickListener(long timeInterval) {
19 | this.timeInterval = timeInterval;
20 | }
21 |
22 | @Override
23 | public void onClick(View v) {
24 | long nowTime = System.currentTimeMillis();
25 | if (nowTime - mLastClickTime < timeInterval) return;
26 | mLastClickTime = nowTime;
27 | click(v);
28 | }
29 |
30 | public abstract void click(View v);
31 | }
32 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/vm/ForwardVM.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.vm;
2 |
3 | import io.openim.android.ouicore.base.vm.injection.BaseVM;
4 | import io.openim.android.ouicore.im.IMUtil;
5 | import io.openim.android.ouicore.utils.Constants;
6 | import io.openim.android.sdk.OpenIMClient;
7 | import io.openim.android.sdk.models.Message;
8 |
9 | public class ForwardVM extends BaseVM {
10 | public Message forwardMsg;
11 | //转发的内容 用于显示
12 | public String tips;
13 |
14 | public void createForwardMessage(Message message) {
15 | reset();
16 | tips = IMUtil.getMsgParse(message).toString();
17 | forwardMsg = OpenIMClient.getInstance().messageManager.createForwardMessage(message);
18 | }
19 |
20 | public void reset() {
21 | forwardMsg = null;
22 | tips="";
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/vm/PreviewMediaVM.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.vm;
2 |
3 | import io.openim.android.ouicore.base.vm.injection.BaseVM;
4 | import io.openim.android.ouicore.ex.Ex;
5 |
6 | public class PreviewMediaVM extends BaseVM {
7 | public MediaData mediaData;
8 | public int currentIndex; //当前选择
9 |
10 | public void preview(MediaData mediaData){
11 | this.mediaData = mediaData;
12 | }
13 |
14 | public static class MediaData extends Ex {
15 | public boolean isVideo;
16 | public String mediaUrl;
17 | public String thumbnail; //缩略图或第一帧
18 |
19 | public MediaData(String key) {
20 | super(key);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/voice/listener/OnDownloadListener.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.voice.listener;
2 |
3 | import java.io.File;
4 |
5 | public interface OnDownloadListener {
6 | void onDownloadSuccess(File file);
7 |
8 | void onDownloading(int progress);
9 |
10 | void onDownloadFailed(Exception e);
11 | }
12 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/voice/listener/PlayByAssetsListener.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.voice.listener;
2 |
3 |
4 | import io.openim.android.ouicore.voice.player.SMediaPlayer;
5 |
6 | public interface PlayByAssetsListener {
7 |
8 | void onCompletion(SMediaPlayer mediaPlayer);
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/voice/listener/PlayerListener.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.voice.listener;
2 |
3 |
4 | import io.openim.android.ouicore.voice.player.SMediaPlayer;
5 |
6 | public interface PlayerListener {
7 | void LoadSuccess(SMediaPlayer mediaPlayer);
8 |
9 | void Loading(SMediaPlayer mediaPlayer, int i);
10 |
11 | void onCompletion(SMediaPlayer mediaPlayer);
12 |
13 | void onError(Exception e);
14 | }
15 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/widget/ImageTxtViewHolder.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.widget;
2 |
3 | import android.view.LayoutInflater;
4 | import android.view.View;
5 | import android.view.ViewGroup;
6 |
7 | import androidx.annotation.NonNull;
8 | import androidx.recyclerview.widget.RecyclerView;
9 |
10 | import io.openim.android.ouicore.databinding.ItemImgTxtBinding;
11 |
12 | public class ImageTxtViewHolder extends RecyclerView.ViewHolder {
13 | public ItemImgTxtBinding view;
14 |
15 | public ImageTxtViewHolder(@NonNull View itemView) {
16 | super(ItemImgTxtBinding.inflate(LayoutInflater.from(itemView.getContext()), (ViewGroup) itemView,false).getRoot());
17 | view = ItemImgTxtBinding.bind(this.itemView);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/widget/PlaceHolderDrawable.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.widget;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.annotation.ColorInt;
6 | import androidx.annotation.ColorRes;
7 | import androidx.core.content.res.ResourcesCompat;
8 | import androidx.swiperefreshlayout.widget.CircularProgressDrawable;
9 |
10 | import io.openim.android.ouicore.R;
11 |
12 | public class PlaceHolderDrawable extends CircularProgressDrawable {
13 | /**
14 | * @param context application context
15 | */
16 | public PlaceHolderDrawable(Context context) {
17 | super(context);
18 | setColorSchemeColors(getColorById(context, R.color.def_bg), getColorById(context, R.color.img_bg), getColorById(context, R.color.gray));
19 | setCenterRadius(30f);
20 | setStrokeWidth(5f);
21 | start();
22 | }
23 |
24 | @ColorInt
25 | private int getColorById(Context context, @ColorRes int id) {
26 | return ResourcesCompat.getColor(context.getResources(), id, null);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/widget/zoom/ScaleGestureManager.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.widget.zoom;
2 |
3 | import android.content.Context;
4 | import android.view.MotionEvent;
5 | import android.view.ScaleGestureDetector;
6 |
7 | /**
8 | * Description :放大缩放手势的点击器
9 | */
10 |
11 | public class ScaleGestureManager extends ScaleGestureDetector {
12 |
13 | ScaleGestureManager(Context context, ScaleGestureListener scaleGestureListener) {
14 | super(context, scaleGestureListener);
15 | }
16 |
17 | @Override
18 | public boolean onTouchEvent(MotionEvent event) {
19 | return super.onTouchEvent(event);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/java/io/openim/android/ouicore/widget/zoom/ScrollGestureManager.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore.widget.zoom;
2 |
3 | import android.content.Context;
4 | import android.view.GestureDetector;
5 |
6 | /**
7 | * Description :滑动手势的管理类
8 | */
9 |
10 | class ScrollGestureManager extends GestureDetector {
11 |
12 | ScrollGestureManager(Context context, ScrollGestureListener scrollGestureListener) {
13 | super(context, scrollGestureListener);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/anim/anim_fade_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/anim/anim_fade_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/anim/dialog_enter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/anim/dialog_exit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/anim/infinite_rotation.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/bg_dialog_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/bg_edit_vercode.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 |
10 | -
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/progress_style.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
7 |
8 |
9 |
10 |
11 |
12 | -
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | -
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/selector_btn_theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/selector_checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/selector_guide_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/shape_guide_bg_defaut.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
9 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/shape_guide_bg_focus.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_10_aa666666.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_10_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_10_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_1_stroke.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_25_bottom_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_30_29e3a0.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_30_red.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_3_66000000.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_3_ff0089ff.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_3_ffffb300.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_3_stroke_418ae5.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_3_stroke_ffc7c7c8.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_33shallow.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_666666.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_bubble2.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_f0f0f0.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_f0f6ff.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_fff1f7ff.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_shallow.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_4_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_000000.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_330089ff.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_33warning.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_e8eaef.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_eeeeee.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_ff0089ff.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_red.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_stroke_418ae5.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_stroke_e6e6e6.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_tr_stroke_e6e6e6.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_warning.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_6_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_8_a2c9f8.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_8_fddfa1.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_max_10cc64.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_radius_max_ff999999.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/drawable/sty_top_radius_30_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/item_img_txt.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
22 |
29 |
30 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/item_psrson_sticky.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/item_search_title.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
28 |
29 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/layout_label_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
18 |
19 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/layout_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
25 |
26 |
33 |
34 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/often_recycler_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
14 |
15 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/transparent_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_back.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_badge.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_dividing_line.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_dividing_line_verticle.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_recycler_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_select_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_swipe_recycler_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/layout/view_waitdilog.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
12 |
13 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xhdpi/ic_apple_null.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xhdpi/ic_apple_null.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__copy.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__mic_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__mic_off.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__mic_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__mic_on.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__tree.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic__tree.webp
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_add_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_add_friend.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_angle_mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_angle_mark.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_back2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_back2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_blue_phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_blue_phone.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_chat_photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_chat_photo.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_chat_shoot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_chat_shoot.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_close3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_close3.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_close4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_close4.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_down_arrow2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_down_arrow2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_download.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_download_pause2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_download_pause2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_excel.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_mask.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_pdf.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_ppt.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_unknown.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_word.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_file_zip.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_group.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_logo.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_logo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_logo2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_logo2_void.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_logo2_void.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_my2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_my2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_my_friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_my_friend.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_my_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_my_group.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_net_excellent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_net_excellent.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_net_good.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_net_good.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_net_poor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_net_poor.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_scan_it.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_scan_it.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_tick.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_tools_video_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_tools_video_call.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_un_newsletter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_un_newsletter.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_video_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_video_pause.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_video_s2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_video_s2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_voice_s1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_voice_s1.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_white_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_white_down.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_zoom_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxhdpi/ic_zoom_out.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add3.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add_big2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add_big2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add_big3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_add_big3.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_call_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_call_white.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_chat_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_chat_file.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_check_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_check_select.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_check_unselect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_check_unselect.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_close.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_close2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_close2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_label.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_more.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_not_msg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_not_msg.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_online.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_online.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_qrcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_qrcode.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_right.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_right2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_right2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_search.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_search2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_search2.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_top_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_top_right.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_triangle.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_triangle_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_triangle_red.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_video_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_video_call.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_voice_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_voice_call.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_work_moments.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/mipmap-xxxhdpi/ic_work_moments.png
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/raw/message_ring.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUICore/src/main/res/raw/message_ring.wav
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/values/attr.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 52dp
4 | 57dp
5 | 48dp
6 |
7 | 260dp
8 | 240dp
9 | 80dp
10 |
11 | 48dp
12 | 42dp
13 |
14 | 17sp
15 | 25dp
16 | 14sp
17 | 12sp
18 | 10sp
19 |
20 |
21 | 6dp
22 | 6dp
23 |
24 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/xml/locales_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/OUIKit/OUICore/src/test/java/io/openim/android/ouicore/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouicore;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/consumer-rules.pro
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/androidTest/java/io/openim/android/ouigroup/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouigroup;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("io.openim.android.ouigroup.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_at_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_at_all.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_edit.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_edit2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_edit2.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_file.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_init_group_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_init_group_icon.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_photo.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_search_chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_search_chat.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_time.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_g_video.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_group_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_group_add.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_group_reduce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/OUIKit/OUIGroup/src/main/res/mipmap-xxhdpi/ic_group_reduce.png
--------------------------------------------------------------------------------
/OUIKit/OUIGroup/src/test/java/io/openim/android/ouigroup/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.openim.android.ouigroup;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/docs/images/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/docs/images/logo.jpg
--------------------------------------------------------------------------------
/docs/images/preview1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/docs/images/preview1.png
--------------------------------------------------------------------------------
/docs/images/preview2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openimsdk/open-im-android-demo/f805dadb686ec751a9d4023f84dd152bb4c8f2cc/docs/images/preview2.png
--------------------------------------------------------------------------------