From 513f5a6d87031c6526dad480a69a12d50f42a397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=81=A5?= Date: Thu, 9 Dec 2021 13:36:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E9=80=9A=E8=AF=9D,=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 5 - .../citygovernance/BaseMyApplication.java | 110 +- baselib/build.gradle | 19 +- {chatmodule => baselib}/libs/HME-Audio.jar | Bin {chatmodule => baselib}/libs/HME-Video.jar | Bin {chatmodule => baselib}/libs/TsdkService.jar | Bin .../libs/TsdkServiceBase.jar | Bin {chatmodule => baselib}/libs/TupCall.jar | Bin .../libs/TupCmptService.jar | Bin {chatmodule => baselib}/libs/TupConfCtrl.jar | Bin {chatmodule => baselib}/libs/TupDns.jar | Bin {chatmodule => baselib}/libs/TupHttpTrans.jar | Bin {chatmodule => baselib}/libs/TupSocket.jar | Bin .../libs/arm64-v8a/libHME-Audio.so | Bin .../libs/arm64-v8a/libHME-Video.so | Bin .../libs/arm64-v8a/libcrypto_ossl.so | Bin .../libs/arm64-v8a/libgmcrypto.so | Bin .../libs/arm64-v8a/libgmssl.so | Bin .../libs/arm64-v8a/libipsi_crypto.so | Bin .../libs/arm64-v8a/libipsi_osal.so | Bin .../libs/arm64-v8a/libipsi_pse.so | Bin .../libs/arm64-v8a/librtp.so | Bin .../libs/arm64-v8a/libsecurec.so | Bin .../libs/arm64-v8a/libssl_ossl.so | Bin .../libs/arm64-v8a/libsys.so | Bin .../libs/arm64-v8a/libtensorflowlite_c.so | Bin .../libs/arm64-v8a/libtsdk_android.so | Bin .../libs/arm64-v8a/libtsdk_service.so | Bin .../libs/arm64-v8a/libtup_call_audio.so | Bin .../libs/arm64-v8a/libtup_call_bfcp.so | Bin .../arm64-v8a/libtup_call_mediaservice.so | Bin .../libs/arm64-v8a/libtup_call_service.so | Bin .../libs/arm64-v8a/libtup_call_sip.so | Bin .../libs/arm64-v8a/libtup_call_video.so | Bin .../libs/arm64-v8a/libtup_cmpt_service.so | Bin .../libs/arm64-v8a/libtup_commonlib.so | Bin .../libs/arm64-v8a/libtup_confctrl.so | Bin .../libs/arm64-v8a/libtup_dns.so | Bin .../libs/arm64-v8a/libtup_https_clt.so | Bin .../libs/arm64-v8a/libtup_httptrans.so | Bin .../libs/arm64-v8a/libtup_ipdetect.so | Bin .../libs/arm64-v8a/libtup_ldapfrontstage.so | Bin .../libs/arm64-v8a/libtup_login.so | Bin .../libs/arm64-v8a/libtup_logone.so | Bin .../libs/arm64-v8a/libtup_minidopra.so | Bin .../libs/arm64-v8a/libtup_msg.so | Bin .../libs/arm64-v8a/libtup_os_adapter.so | Bin .../libs/arm64-v8a/libtup_publiclib.so | Bin .../libs/arm64-v8a/libtup_socket.so | Bin .../libs/arm64-v8a/libtup_sslex.so | Bin .../libs/arm64-v8a/libtup_sslex_gm.so | Bin .../libs/arm64-v8a/libtup_vcomgmssl.so | Bin .../libs/arm64-v8a/libtup_vcomopenssl.so | Bin .../libs/arm64-v8a/libtup_xml.so | Bin .../libs/arm64-v8a/libtup_zip.so | Bin .../libs/arm64-v8a/libwebsockets.so | Bin baselib/src/main/assets/CameraBlack.BMP | Bin 0 -> 2764856 bytes baselib/src/main/assets/CameraBlack2.BMP | Bin 0 -> 2764856 bytes baselib/src/main/assets/check.bmp | Bin 0 -> 988 bytes baselib/src/main/assets/dpointer.bmp | Bin 0 -> 787 bytes .../src/main/assets/inCertificate/equip.pem | 79 + .../main/assets/inCertificate/equip_key.pem | 30 + baselib/src/main/assets/lp.bmp | Bin 0 -> 464 bytes baselib/src/main/assets/lpointer.bmp | Bin 0 -> 767 bytes baselib/src/main/assets/privacy.html | 245 ++ baselib/src/main/assets/privacy_en.html | 248 ++ baselib/src/main/assets/ring_back.wav | Bin 0 -> 86180 bytes baselib/src/main/assets/ringing.wav | Bin 0 -> 89366 bytes .../root/Actalis_Authentication_Root_CA.pem | 33 + ...is_Organization_Validated_Server_CA_G2.pem | 37 + .../assets/root/DigiCert_EV_RSA_CA_G2.pem | 30 + .../assets/root/DigiCert_Global_Root_G2.pem | 22 + ...ntrust_Root_Certification_Authority_G2.pem | 25 + .../main/assets/root/Geotrust_PCA_G3_Root.pem | 24 + baselib/src/main/assets/root/GlobalSign.pem | 21 + .../root/GlobalSign_RSA_OV_SSL_CA_2018.pem | 26 + .../main/assets/root/Huawei IT Product CA.pem | 28 + .../assets/root/Huawei_Equipment_Root_CA.pem | 31 + ...Universal_Root_Certification_Authority.pem | 28 + baselib/src/main/assets/root/ca_root.pem | 25 + .../src/main/assets/root/root_thundersoft.pem | 24 + baselib/src/main/assets/root/root_vc_pass.pem | 15 + baselib/src/main/assets/root/sc_root1.pem | 33 + baselib/src/main/assets/root/sc_root2.pem | 42 + baselib/src/main/assets/rpointer.bmp | Bin 0 -> 796 bytes .../assets/smCertificate/equip_cloudlink.pem | 54 + .../smCertificate/equip_cloudlink_enc.pem | 54 + .../smCertificate/equip_key_cloudlink.pem | 8 + .../smCertificate/equip_key_cloudlink_enc.pem | 8 + .../assets/smRoot/root_thundersoft_gm.pem | 16 + baselib/src/main/assets/upointer.bmp | Bin 0 -> 788 bytes baselib/src/main/assets/xcheck.bmp | Bin 0 -> 1158 bytes .../baselib/app/BaseAppContext.java | 82 +- .../baselib/constant/BroadcastConstant.java | 293 ++ .../baselib/constant/ConfConstant.java | 224 + .../baselib/constant/Constant.java | 452 ++ .../baselib/constant/ConstantsV2.java | 448 ++ .../baselib/constant/LionActions.java | 1 + .../baselib/constant/PathConfig.java | 25 +- .../baselib/constant/PermissionConstants.java | 57 + .../baselib/constant/StatusCode.java | 13 +- .../baselib/core/beans/CameraEntity.java | 139 + .../baselib/core/beans/Member.java | 568 +++ .../baselib/core/beans/SubtitleLanguage.java | 30 + .../baselib/core/listener/ScreenListener.java | 110 + .../baselib/core/retrofit_net/BaseUrlApi.java | 8 +- .../core/retrofit_net/RetrofitManager.java | 8 +- .../conver/BaseUrlInterceptor.java | 2 - .../core/widget/base/BaseActivity.java | 20 + .../core/widget/base/BaseFragment.java | 1 + .../widget/views/CenterInputChooseView.java | 176 + .../core/widget/views/EditOrDelPopup.java | 1 + .../core/widget/views/LoadingDialog.java | 5 + .../tenlionsoft/baselib/utils/AppUtils.java | 3 +- .../utils/EncryptedPreferencesUtils.java | 20 + .../baselib/utils/EncryptedSPTool.java | 344 ++ .../tenlionsoft/baselib/utils/FileUtils.java | 40 + .../baselib/utils/KeyBoardListener.java | 71 + .../tenlionsoft/baselib/utils/LogUtils.java | 2 + .../tenlionsoft/baselib/utils/TimeUtils.java | 15 + .../res/drawable-xhdpi/ic_edit_gray_icon.png | Bin 0 -> 674 bytes .../src/main/res/drawable/shp_circle_blue.xml | 13 + .../res/drawable/shp_top_shadow_white.xml | 62 + .../shp_top_shadow_white_no_radius.xml | 50 + .../res/layout/dialog_input_radio_oversee.xml | 104 + baselib/src/main/res/values/colors.xml | 1 + baselib/src/main/res/values/strings.xml | 7 + baselib/src/main/res/xml/provider_paths.xml | 24 +- build.gradle | 7 +- chatmodule/build.gradle | 13 +- chatmodule/src/main/AndroidManifest.xml | 70 +- .../activity/AddressUserDetailActivity.java | 832 +++- .../chatmodule/activity/ChatActivity.java | 714 +++- .../activity/InvitedPointCallActivity.java | 1705 ++++++++ .../activity/SponsorMeetingActivity.java | 3798 +++++++++++++++++ .../activity/WatchAllTextActivityV2.java | 78 + .../chatmodule/beans/BookConferenceInfo.java | 250 ++ .../chatmodule/beans/CallConstant.java | 111 + .../chatmodule/beans/CallInfo.java | 236 + .../chatmodule/beans/ConfBaseInfo.java | 389 ++ .../chatmodule/beans/ConferenceConstant.java | 15 + .../beans/ControlOperationsResults.java | 24 + .../chatmodule/beans/EmptyFactory.java | 16 + .../chatmodule/beans/IntentConstant.java | 10 + .../beans/LdapFrontstageConstant.java | 37 + .../beans/MeetingTitleInfoBean.java | 85 + .../chatmodule/beans/MyTsdkCallInfo.java | 99 + .../beans/ServiceSettingBeanV2.java | 87 + .../tengshisoft/chatmodule/beans/Session.java | 279 ++ .../beans/SponsorMeetingConstant.java | 12 + .../chatmodule/beans/SvcWatchStatus.java | 14 + .../chatmodule/beans/TSDKErrorConstant.java | 365 ++ .../chatmodule/beans/UserInfoBeanV2.java | 33 + .../chatmodule/hwclud/api/CallOnResponse.kt | 14 + .../hwclud/api/CancelConfResultCallBack.java | 11 + .../hwclud/api/CheckVersionCallBack.java | 11 + .../chatmodule/hwclud/api/IAgree.java | 11 + .../api/ILdapFrontstageNotification.java | 21 + .../chatmodule/hwclud/api/IPermission.java | 37 + .../hwclud/api/IPermissionFactory.java | 19 + .../chatmodule/hwclud/api/IRefuse.java | 13 + .../chatmodule/hwclud/api/LogUpload.java | 10 + .../chatmodule/hwclud/api/LoginView.java | 31 + .../chatmodule/hwclud/api/LogoutCallBack.java | 11 + .../api/SearchTimeZoneListCallBack.java | 11 + .../hwclud/api/SearchUsernameFormID.java | 12 + .../hwclud/controller/IMeetingController.java | 16 + .../controller/IMeetingSignalController.java | 73 + .../controller/IMeetingTitleController.java | 203 + .../hwclud/controller/MeetingController.java | 745 ++++ .../controller/MeetingSignalController.java | 240 ++ .../controller/MeetingTitleBarController.java | 349 ++ .../controller/TsdkConferenceLiveData.java | 20 + .../hwclud/listener/FloatingViewListener.java | 15 + .../hwclud/listener/ICallNotification.java | 12 + .../hwclud/listener/IConfNotification.java | 12 + .../hwclud/listener/ICtdNotification.java | 18 + .../hwclud/listener/LoginEventNotifyUi.java | 20 + .../listener/NoDoubleClickListener.java | 22 + .../hwclud/listener/OnDragTouchListener.java | 66 + .../hwclud/listener/OnLanguageListener.java | 27 + .../hwclud/listener/OrientationListener.java | 111 + .../hwclud/manager/AudioRouteManager.java | 83 + .../chatmodule/hwclud/manager/CallMgrV2.java | 1174 +++++ .../hwclud/manager/CloudLinkNotifyManager.kt | 97 + .../hwclud/manager/ConfConvertUtil.java | 354 ++ .../hwclud/manager/FloatingViewManager.java | 174 + .../chatmodule/hwclud/manager/ICallMgr.java | 203 + .../hwclud/manager/LdapFrontstageMgr.java | 183 + .../hwclud/manager/LoginMangerV2.java | 415 ++ .../hwclud/manager/MeetingMgrV2.java | 2262 ++++++++++ .../hwclud/manager/SaveRecentCalls.kt | 139 + .../hwclud/manager/SwitchAudioRouteManager.kt | 154 + .../chatmodule/hwclud/manager/VideoMgr.java | 1201 ++++++ .../chatmodule/hwclud/manager/WatchInfo.java | 36 + .../hwclud/notification/CallFunc.java | 464 ++ .../hwclud/notification/ConfFunc.java | 403 ++ .../hwclud/receiver/LocalBroadcast.java | 199 + .../receiver/LocalBroadcastReceiver.java | 18 + .../hwclud/receiver/LoginReceiver.java | 149 + .../hwclud/receiver/NetWorkStateReceiver.java | 70 + .../hwclud/receiver/PhoneReceiver.java | 64 + .../hwclud/serivce/AuxSendService.java | 406 ++ .../hwclud/serivce/CloudLinkService.kt | 126 + .../hwclud/serivce/FloatingViewService.java | 200 + .../hwclud/serivce/MinimizeService.java | 661 +++ .../hwclud/serivce/ServiceManger.java | 265 ++ .../hwclud/serivce/ServiceNotifyV2.java | 1485 +++++++ .../hwclud/ui/AuxMeetingFragment.java | 215 + .../hwclud/ui/AuxMeetingFragmentContract.java | 17 + .../ui/AuxMeetingFragmentPresenter.java | 70 + .../hwclud/ui/BaseConfContract.java | 102 + .../hwclud/ui/BaseConfPresenter.java | 669 +++ .../chatmodule/hwclud/ui/BaseContract.java | 39 + .../hwclud/ui/BaseDialPlateControl.java | 79 + .../hwclud/ui/BaseMvpActivityV2.java | 650 +++ .../hwclud/ui/BasePermissionActivityV2.java | 150 + .../chatmodule/hwclud/ui/BasePresenterV2.java | 64 + .../chatmodule/hwclud/ui/CloudLinkDialog.java | 336 ++ .../chatmodule/hwclud/ui/CustomViewPager.java | 71 + .../chatmodule/hwclud/ui/DialogUtil.java | 226 + .../chatmodule/hwclud/ui/EndConfDialog.java | 140 + .../chatmodule/hwclud/ui/FloatNormalView.java | 283 ++ .../chatmodule/hwclud/ui/FloatingView.java | 614 +++ .../hwclud/ui/FullScreenDialog.java | 38 + .../chatmodule/hwclud/ui/GestureKtx.kt | 31 + .../hwclud/ui/IMeetingBottomChanged.java | 21 + .../chatmodule/hwclud/ui/IPresenter.java | 25 + .../chatmodule/hwclud/ui/IView.java | 40 + .../hwclud/ui/LazyloadFragment.java | 188 + .../chatmodule/hwclud/ui/ListPopWindow.java | 97 + .../hwclud/ui/MeetingSubtitleView.java | 326 ++ .../hwclud/ui/MeetingTitlePopWindow.java | 179 + .../hwclud/ui/MySponsorPageAdapter.java | 308 ++ .../chatmodule/hwclud/ui/MyWindowManager.java | 86 + .../hwclud/ui/NullMenuEditText.java | 188 + .../chatmodule/hwclud/ui/RemoteFragment.java | 679 +++ .../hwclud/ui/RemoteFragmentContract.java | 42 + .../hwclud/ui/RemoteFragmentPresenter.java | 129 + .../hwclud/ui/SVCVideoFragmentContract.java | 54 + .../hwclud/ui/SVCVideoFragmentPresenter.java | 133 + .../chatmodule/hwclud/ui/ScaleHelper.java | 79 + .../chatmodule/hwclud/ui/ScaleView.java | 271 ++ .../hwclud/ui/SecondDialPlateControl.java | 63 + .../hwclud/ui/SponsorMeetingContract.java | 131 + .../hwclud/ui/SponsorMeetingPresenter.java | 450 ++ .../hwclud/ui/SponsorMorePopWindow.java | 355 ++ .../hwclud/ui/StreamInfoAdapter.java | 96 + .../hwclud/ui/StreamInfoDialog.java | 218 + .../chatmodule/hwclud/ui/SvcVideoFragment.kt | 729 ++++ .../chatmodule/hwclud/ui/VideoLayout.kt | 33 + .../chatmodule/hwclud/ui/VideoTwoLayout.kt | 33 + .../hwclud/ui/VoiceConfPresenter.java | 142 + .../chatmodule/hwclud/ui/ZoomLayout.java | 503 +++ .../chatmodule/hwclud/utils/ActivityUtil.java | 79 + .../chatmodule/hwclud/utils/AppUtil.java | 141 + .../hwclud/utils/BandWidthUtils.java | 154 + .../chatmodule/hwclud/utils/Closeables.java | 27 + .../hwclud/utils/CloudLinkPermission.java | 52 + .../hwclud/utils/ConfigAppUtil.java | 15 + .../chatmodule/hwclud/utils/Constant.java | 451 ++ .../chatmodule/hwclud/utils/DateUtil.java | 254 ++ .../chatmodule/hwclud/utils/DateUtils.java | 249 ++ .../hwclud/utils/DeviceManager.java | 575 +++ .../chatmodule/hwclud/utils/FileUtil.java | 838 ++++ .../hwclud/utils/FirstLetterUtil.java | 185 + .../chatmodule/hwclud/utils/GMUtil.java | 39 + .../chatmodule/hwclud/utils/HuaweiUtils.java | 114 + .../hwclud/utils/ImpPermission.java | 91 + .../hwclud/utils/ImportFileUtil.java | 84 + .../hwclud/utils/JoinMeetingHistoryUtils.java | 152 + .../chatmodule/hwclud/utils/ListTools.java | 65 + .../chatmodule/hwclud/utils/LocContext.java | 68 + .../chatmodule/hwclud/utils/LogTag.java | 55 + .../chatmodule/hwclud/utils/LogUtil.java | 573 +++ .../chatmodule/hwclud/utils/MYSPUtils.java | 263 ++ .../chatmodule/hwclud/utils/MathUtil.java | 34 + .../chatmodule/hwclud/utils/MediaUtil.java | 217 + .../chatmodule/hwclud/utils/MeizuUtils.java | 71 + .../chatmodule/hwclud/utils/MiuiUtils.java | 233 + .../chatmodule/hwclud/utils/MultiFactory.java | 17 + .../hwclud/utils/MultiPermission.java | 29 + .../chatmodule/hwclud/utils/NetUtil.java | 549 +++ .../chatmodule/hwclud/utils/NotifyUtil.java | 395 ++ .../chatmodule/hwclud/utils/OppoUtils.java | 70 + .../hwclud/utils/PermissionUtils.java | 145 + .../chatmodule/hwclud/utils/PhoneUtil.java | 110 + .../chatmodule/hwclud/utils/Platform.kt | 65 + .../chatmodule/hwclud/utils/QikuUtils.java | 78 + .../chatmodule/hwclud/utils/RomUtil.java | 244 ++ .../chatmodule/hwclud/utils/RomUtils.java | 189 + .../chatmodule/hwclud/utils/ScreenUtil.java | 32 + .../chatmodule/hwclud/utils/SdkHelpUtil.java | 139 + .../hwclud/utils/SingleLineUtil.java | 38 + .../hwclud/utils/StorageFactory.java | 19 + .../hwclud/utils/StoragePermission.java | 16 + .../hwclud/utils/SubtitleLanguage.java | 30 + .../chatmodule/hwclud/utils/SystemUtil.java | 127 + .../chatmodule/hwclud/utils/ThreadHelper.java | 45 + .../hwclud/utils/TimeSelectUtils.java | 47 + .../chatmodule/hwclud/utils/TimeUtils.java | 1702 ++++++++ .../chatmodule/hwclud/utils/TimerUtil.java | 87 + .../chatmodule/hwclud/utils/UIUtil.java | 1072 +++++ .../chatmodule/hwclud/utils/UiUtils.java | 108 + .../hwclud/utils/camera/CameraFactory.java | 19 + .../hwclud/utils/camera/CameraPermission.java | 16 + .../hwclud/utils/mic/RecordAudioFactory.java | 20 + .../utils/mic/RecordAudioPermission.java | 16 + .../utils/phone_state/PhoneStateFactory.java | 21 + .../phone_state/PhoneStatePermission.java | 16 + .../keeplive/services/BusinessService.java | 325 +- .../chatmodule/sockets/WsManager.java | 47 +- .../src/main/res/anim/dialog_in_anim.xml | 7 + .../src/main/res/anim/dialog_out_anim.xml | 7 + .../main/res/anim/photo_dialog_in_anim.xml | 11 + .../main/res/anim/photo_dialog_out_anim.xml | 11 + .../drawable-xhdpi/back_minimize_normal.png | Bin 0 -> 935 bytes .../drawable-xhdpi/back_minimize_select.png | Bin 0 -> 943 bytes .../res/drawable-xhdpi/call_voice_back.png | Bin 0 -> 103677 bytes .../res/drawable-xhdpi/camera_default.9.png | Bin 0 -> 3680 bytes .../main/res/drawable-xhdpi/camerablack2.png | Bin 0 -> 7513 bytes .../src/main/res/drawable-xhdpi/cb_select.png | Bin 0 -> 602 bytes .../main/res/drawable-xhdpi/cb_unselect.png | Bin 0 -> 421 bytes .../main/res/drawable-xhdpi/contact_fill.png | Bin 0 -> 644 bytes .../main/res/drawable-xhdpi/contact_line.png | Bin 0 -> 680 bytes .../src/main/res/drawable-xhdpi/corporate.png | Bin 0 -> 1553 bytes .../main/res/drawable-xhdpi/corporatex.png | Bin 0 -> 2493 bytes .../res/drawable-xhdpi/create_meeting.png | Bin 0 -> 2681 bytes .../main/res/drawable-xhdpi/dial_normal.png | Bin 0 -> 2903 bytes .../src/main/res/drawable-xhdpi/four.png | Bin 0 -> 1846 bytes .../main/res/drawable-xhdpi/green_call.png | Bin 0 -> 5620 bytes .../main/res/drawable-xhdpi/green_video.png | Bin 0 -> 2537 bytes .../src/main/res/drawable-xhdpi/hand_up.png | Bin 0 -> 2006 bytes .../drawable-xhdpi/ic_add_contact_icon.png | Bin 0 -> 823 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 2566 bytes .../drawable-xhdpi/ic_launcher_foreground.png | Bin 0 -> 6491 bytes .../res/drawable-xhdpi/ic_launcher_round.png | Bin 0 -> 5502 bytes .../res/drawable-xhdpi/ic_send_msg_icon.png | Bin 0 -> 1277 bytes .../res/drawable-xhdpi/ic_subtitle_close.png | Bin 0 -> 309 bytes .../res/drawable-xhdpi/ic_subtitle_down.png | Bin 0 -> 134 bytes .../ic_subtitle_fullscreen_close.png | Bin 0 -> 338 bytes .../ic_subtitle_fullscreen_open.png | Bin 0 -> 333 bytes .../drawable-xhdpi/ic_subtitle_minimize.png | Bin 0 -> 3179 bytes .../res/drawable-xhdpi/ic_subtitle_new.png | Bin 0 -> 812 bytes .../res/drawable-xhdpi/ic_video_call_icon.png | Bin 0 -> 897 bytes .../res/drawable-xhdpi/ic_voice_call_icon.png | Bin 0 -> 1099 bytes .../main/res/drawable-xhdpi/image_add_nor.png | Bin 0 -> 224 bytes .../main/res/drawable-xhdpi/image_add_sel.png | Bin 0 -> 223 bytes .../src/main/res/drawable-xhdpi/img_add.png | Bin 0 -> 520 bytes .../src/main/res/drawable-xhdpi/img_add_c.png | Bin 0 -> 543 bytes .../src/main/res/drawable-xhdpi/img_add_d.png | Bin 0 -> 879 bytes .../src/main/res/drawable-xhdpi/img_vedio.png | Bin 0 -> 587 bytes .../src/main/res/drawable-xhdpi/img_voice.png | Bin 0 -> 772 bytes .../main/res/drawable-xhdpi/join_meeting.png | Bin 0 -> 1116 bytes .../src/main/res/drawable-xhdpi/key.png | Bin 0 -> 609 bytes .../src/main/res/drawable-xhdpi/left.png | Bin 0 -> 449 bytes .../src/main/res/drawable-xhdpi/me_fill.png | Bin 0 -> 787 bytes .../src/main/res/drawable-xhdpi/me_line.png | Bin 0 -> 1044 bytes .../main/res/drawable-xhdpi/meeting_fill.png | Bin 0 -> 667 bytes .../main/res/drawable-xhdpi/meeting_line.png | Bin 0 -> 811 bytes .../meeting_title_down_image.png | Bin 0 -> 438 bytes .../src/main/res/drawable-xhdpi/mic.png | Bin 0 -> 4085 bytes .../main/res/drawable-xhdpi/mobile_phone.png | Bin 0 -> 852 bytes .../res/drawable-xhdpi/multipleicon_a02.png | Bin 0 -> 6756 bytes .../res/drawable-xhdpi/multipleicon_b02.png | Bin 0 -> 6857 bytes .../res/drawable-xhdpi/multipleicon_c02.png | Bin 0 -> 6770 bytes .../res/drawable-xhdpi/multipleicon_d02.png | Bin 0 -> 6749 bytes .../res/drawable-xhdpi/my_meeting_room.png | Bin 0 -> 891 bytes .../network_signal_quality_excellent.png | Bin 0 -> 204 bytes .../network_signal_quality_good.png | Bin 0 -> 198 bytes .../network_signal_quality_medium.png | Bin 0 -> 197 bytes .../main/res/drawable-xhdpi/nodata_search.png | Bin 0 -> 10712 bytes .../src/main/res/drawable-xhdpi/one.png | Bin 0 -> 2681 bytes .../main/res/drawable-xhdpi/recent_calls.png | Bin 0 -> 2643 bytes .../src/main/res/drawable-xhdpi/red_call.png | Bin 0 -> 5384 bytes .../res/drawable-xhdpi/select_img_add.xml | 6 + .../drawable-xhdpi/shape_meeting_subject.xml | 11 + .../src/main/res/drawable-xhdpi/share.png | Bin 0 -> 608 bytes .../src/main/res/drawable-xhdpi/share_dis.png | Bin 0 -> 563 bytes .../main/res/drawable-xhdpi/speakering.png | Bin 0 -> 652 bytes .../src/main/res/drawable-xhdpi/test_head.jpg | Bin 0 -> 10387 bytes .../src/main/res/drawable-xhdpi/three.png | Bin 0 -> 891 bytes .../main/res/drawable-xhdpi/title_copy.png | Bin 0 -> 1066 bytes .../src/main/res/drawable-xhdpi/two.png | Bin 0 -> 1116 bytes .../drawable-xhdpi/virtual_meeting_room.png | Bin 0 -> 1846 bytes .../src/main/res/drawable-xhdpi/voice.png | Bin 0 -> 3777 bytes .../res/drawable-xhdpi/voice_conf_back.png | Bin 0 -> 151004 bytes .../main/res/drawable-xhdpi/voice_phone.png | Bin 0 -> 377 bytes .../res/drawable-xhdpi/voice_to_video.png | Bin 0 -> 996 bytes chatmodule/src/main/res/drawable/a0.xml | 32 + chatmodule/src/main/res/drawable/a00.xml | 24 + chatmodule/src/main/res/drawable/a01.xml | 24 + chatmodule/src/main/res/drawable/a02.xml | 25 + chatmodule/src/main/res/drawable/a03.xml | 24 + chatmodule/src/main/res/drawable/a04.xml | 24 + chatmodule/src/main/res/drawable/a1.xml | 32 + chatmodule/src/main/res/drawable/a2.xml | 32 + chatmodule/src/main/res/drawable/a3.xml | 32 + chatmodule/src/main/res/drawable/b0.xml | 32 + chatmodule/src/main/res/drawable/b00.xml | 24 + chatmodule/src/main/res/drawable/b01.xml | 24 + chatmodule/src/main/res/drawable/b02.xml | 24 + chatmodule/src/main/res/drawable/b03.xml | 24 + chatmodule/src/main/res/drawable/b04.xml | 24 + chatmodule/src/main/res/drawable/b1.xml | 32 + chatmodule/src/main/res/drawable/b2.xml | 32 + chatmodule/src/main/res/drawable/b3.xml | 32 + .../src/main/res/drawable/backgroud.xml | 10 + .../src/main/res/drawable/backgroud2.xml | 10 + .../res/drawable/banner_round_checked.xml | 6 + .../res/drawable/banner_round_unchecked.xml | 6 + .../main/res/drawable/bg_conf_list_normal.xml | 7 + .../main/res/drawable/bg_conf_list_select.xml | 7 + .../src/main/res/drawable/bg_progress.xml | 24 + .../res/drawable/bg_subtitle_minimize.xml | 5 + .../src/main/res/drawable/blue_track.xml | 14 + .../src/main/res/drawable/btn_blue_radius.xml | 8 + .../src/main/res/drawable/btn_tran_back.xml | 7 + .../main/res/drawable/button_style_blue.xml | 21 + .../main/res/drawable/button_style_green.xml | 21 + chatmodule/src/main/res/drawable/c0.xml | 32 + chatmodule/src/main/res/drawable/c00.xml | 24 + chatmodule/src/main/res/drawable/c01.xml | 25 + chatmodule/src/main/res/drawable/c02.xml | 25 + chatmodule/src/main/res/drawable/c03.xml | 25 + chatmodule/src/main/res/drawable/c04.xml | 25 + chatmodule/src/main/res/drawable/c1.xml | 32 + chatmodule/src/main/res/drawable/c2.xml | 32 + chatmodule/src/main/res/drawable/c3.xml | 32 + .../src/main/res/drawable/camerablack.png | Bin 0 -> 7513 bytes .../src/main/res/drawable/cb_add_select.xml | 7 + .../checkbox_invite_contact_selector.xml | 6 + .../main/res/drawable/checkbox_selector.xml | 9 + .../src/main/res/drawable/color_cursor.xml | 5 + .../src/main/res/drawable/conf_tip_shape.xml | 9 + .../main/res/drawable/contact_selector.xml | 8 + .../main/res/drawable/contact_shape_bg.xml | 9 + .../main/res/drawable/contact_shape_bg_1.xml | 9 + .../main/res/drawable/contact_shape_bg_2.xml | 9 + .../main/res/drawable/contact_shape_bg_3.xml | 9 + .../src/main/res/drawable/corporatex.xml | 9 + chatmodule/src/main/res/drawable/d0.xml | 32 + chatmodule/src/main/res/drawable/d00.xml | 25 + chatmodule/src/main/res/drawable/d01.xml | 24 + chatmodule/src/main/res/drawable/d02.xml | 25 + chatmodule/src/main/res/drawable/d03.xml | 25 + chatmodule/src/main/res/drawable/d04.xml | 25 + chatmodule/src/main/res/drawable/d1.xml | 32 + chatmodule/src/main/res/drawable/d2.xml | 32 + chatmodule/src/main/res/drawable/d3.xml | 32 + .../main/res/drawable/dialog_background.xml | 8 + .../src/main/res/drawable/dialog_btn.xml | 8 + .../main/res/drawable/dialog_item_bg_only.xml | 15 + .../drawable/dialog_meeting_more_header.xml | 16 + .../src/main/res/drawable/dialog_shape.xml | 11 + chatmodule/src/main/res/drawable/e0.xml | 32 + chatmodule/src/main/res/drawable/e00.xml | 24 + chatmodule/src/main/res/drawable/e01.xml | 25 + chatmodule/src/main/res/drawable/e02.xml | 25 + chatmodule/src/main/res/drawable/e03.xml | 25 + chatmodule/src/main/res/drawable/e04.xml | 25 + chatmodule/src/main/res/drawable/e1.xml | 32 + chatmodule/src/main/res/drawable/e2.xml | 32 + chatmodule/src/main/res/drawable/e3.xml | 32 + .../drawable/edit_text_cursor_blue_color.xml | 1 + .../res/drawable/edit_text_cursor_color.xml | 6 + .../main/res/drawable/edit_text_select.xml | 16 + .../main/res/drawable/edit_text_selector.xml | 5 + .../main/res/drawable/edit_text_unselect.xml | 16 + chatmodule/src/main/res/drawable/f0.xml | 32 + chatmodule/src/main/res/drawable/f00.xml | 25 + chatmodule/src/main/res/drawable/f01.xml | 25 + chatmodule/src/main/res/drawable/f02.xml | 25 + chatmodule/src/main/res/drawable/f03.xml | 25 + chatmodule/src/main/res/drawable/f04.xml | 25 + chatmodule/src/main/res/drawable/f1.xml | 32 + chatmodule/src/main/res/drawable/f2.xml | 32 + chatmodule/src/main/res/drawable/f3.xml | 32 + .../res/drawable/fg_subtitle_minimize.xml | 9 + .../main/res/drawable/fg_subtitle_msg_new.xml | 4 + .../main/res/drawable/footer_text_color.xml | 5 + .../src/main/res/drawable/frame_black.xml | 8 + .../src/main/res/drawable/frame_blue.xml | 8 + chatmodule/src/main/res/drawable/g0.xml | 32 + chatmodule/src/main/res/drawable/g00.xml | 24 + chatmodule/src/main/res/drawable/g01.xml | 25 + chatmodule/src/main/res/drawable/g02.xml | 25 + chatmodule/src/main/res/drawable/g03.xml | 25 + chatmodule/src/main/res/drawable/g04.xml | 25 + chatmodule/src/main/res/drawable/g1.xml | 32 + chatmodule/src/main/res/drawable/g2.xml | 32 + chatmodule/src/main/res/drawable/g3.xml | 32 + .../src/main/res/drawable/gray_thumb.xml | 19 + .../src/main/res/drawable/gray_track.xml | 16 + .../src/main/res/drawable/green_thumb.xml | 19 + chatmodule/src/main/res/drawable/h0.xml | 32 + chatmodule/src/main/res/drawable/h00.xml | 24 + chatmodule/src/main/res/drawable/h01.xml | 25 + chatmodule/src/main/res/drawable/h02.xml | 25 + chatmodule/src/main/res/drawable/h03.xml | 25 + chatmodule/src/main/res/drawable/h04.xml | 25 + chatmodule/src/main/res/drawable/h1.xml | 32 + chatmodule/src/main/res/drawable/h2.xml | 32 + chatmodule/src/main/res/drawable/h3.xml | 32 + chatmodule/src/main/res/drawable/hangup.png | Bin 0 -> 717 bytes chatmodule/src/main/res/drawable/i0.xml | 32 + chatmodule/src/main/res/drawable/i00.xml | 25 + chatmodule/src/main/res/drawable/i01.xml | 25 + chatmodule/src/main/res/drawable/i02.xml | 25 + chatmodule/src/main/res/drawable/i03.xml | 24 + chatmodule/src/main/res/drawable/i04.xml | 24 + chatmodule/src/main/res/drawable/i1.xml | 32 + chatmodule/src/main/res/drawable/i2.xml | 32 + chatmodule/src/main/res/drawable/i3.xml | 32 + chatmodule/src/main/res/drawable/ic_add.xml | 22 + .../src/main/res/drawable/ic_add_16dp.xml | 7 + .../src/main/res/drawable/ic_add_24dp.xml | 13 + .../main/res/drawable/ic_add_24dp_blue.xml | 9 + .../src/main/res/drawable/ic_add_contact.xml | 13 + .../main/res/drawable/ic_audio_call_in.xml | 22 + .../main/res/drawable/ic_audio_call_out.xml | 22 + .../src/main/res/drawable/ic_back_24.xml | 5 + .../res/drawable/ic_baseline_backspace_24.xml | 5 + .../ic_baseline_bluetooth_connected_24.xml | 5 + .../res/drawable/ic_baseline_check_box_24.xml | 5 + .../res/drawable/ic_baseline_dialpad_24.xml | 5 + .../res/drawable/ic_bluetooth_default.xml | 17 + .../src/main/res/drawable/ic_camera_24dp.xml | 21 + .../drawable/ic_camera_24dp_close_seletor.xml | 6 + .../res/drawable/ic_camera_24dp_disable.xml | 21 + .../res/drawable/ic_camera_24dp_seletor.xml | 6 + .../main/res/drawable/ic_camera_gray_24dp.xml | 22 + .../res/drawable/ic_cammera_close_24dp.xml | 16 + .../ic_cammera_close_24dp_disable.xml | 16 + .../drawable/ic_cammera_gray_close_24dp.xml | 16 + .../main/res/drawable/ic_check_mark_24dp.xml | 5 + chatmodule/src/main/res/drawable/ic_clear.xml | 15 + .../src/main/res/drawable/ic_clear_grey.xml | 6 + chatmodule/src/main/res/drawable/ic_close.xml | 12 + .../src/main/res/drawable/ic_close2.xml | 12 + .../res/drawable/ic_collection_nor_24.xml | 5 + .../res/drawable/ic_collection_pre_24.xml | 5 + .../res/drawable/ic_collection_selector.xml | 6 + .../main/res/drawable/ic_cursor_drawable.xml | 12 + .../src/main/res/drawable/ic_default.xml | 32 + .../src/main/res/drawable/ic_default_1.xml | 32 + .../src/main/res/drawable/ic_default_2.xml | 32 + .../src/main/res/drawable/ic_default_3.xml | 32 + .../res/drawable/ic_default_no_border.xml | 13 + .../res/drawable/ic_default_no_border_1.xml | 13 + .../res/drawable/ic_default_no_border_2.xml | 13 + .../res/drawable/ic_default_no_border_3.xml | 13 + .../src/main/res/drawable/ic_delete.xml | 9 + chatmodule/src/main/res/drawable/ic_dial.xml | 18 + .../src/main/res/drawable/ic_dial_video.xml | 22 + .../src/main/res/drawable/ic_dial_vocie.xml | 22 + chatmodule/src/main/res/drawable/ic_edit.xml | 13 + chatmodule/src/main/res/drawable/ic_eye.xml | 9 + .../src/main/res/drawable/ic_eye_black.xml | 9 + .../src/main/res/drawable/ic_eye_white.xml | 9 + .../src/main/res/drawable/ic_hand_up.xml | 12 + .../main/res/drawable/ic_hand_up_white.xml | 9 + .../src/main/res/drawable/ic_headset.xml | 20 + .../res/drawable/ic_headset_disenable.xml | 20 + .../src/main/res/drawable/ic_hearing_24.xml | 5 + .../src/main/res/drawable/ic_help_24dp.xml | 13 + .../src/main/res/drawable/ic_import.xml | 5 + chatmodule/src/main/res/drawable/ic_key.xml | 9 + .../drawable/ic_keyboard_arrow_down_24dp.xml | 5 + .../ic_keyboard_arrow_down_gray_24dp.xml | 5 + .../ic_keyboard_arrow_left_black_24dp.xml | 9 + .../drawable/ic_keyboard_arrow_right_14dp.xml | 5 + .../drawable/ic_keyboard_arrow_right_24dp.xml | 5 + .../src/main/res/drawable/ic_launcher.png | Bin 0 -> 10743 bytes .../src/main/res/drawable/ic_link_24dp.xml | 5 + chatmodule/src/main/res/drawable/ic_logo.xml | 114 + .../src/main/res/drawable/ic_mail_24dp.xml | 4 + chatmodule/src/main/res/drawable/ic_mic.xml | 21 + .../src/main/res/drawable/ic_mic_close.xml | 26 + .../main/res/drawable/ic_mic_close_gray.xml | 16 + .../src/main/res/drawable/ic_mic_disable.xml | 21 + .../src/main/res/drawable/ic_mic_gray.xml | 22 + .../main/res/drawable/ic_mine_card_bg_0.xml | 15 + .../main/res/drawable/ic_mine_card_bg_1.xml | 15 + .../main/res/drawable/ic_mine_card_bg_2.xml | 15 + .../main/res/drawable/ic_mine_card_bg_3.xml | 15 + .../main/res/drawable/ic_mine_card_bg_4.xml | 15 + chatmodule/src/main/res/drawable/ic_more.xml | 21 + .../src/main/res/drawable/ic_more_disable.xml | 21 + .../src/main/res/drawable/ic_mymeeting.xml | 18 + chatmodule/src/main/res/drawable/ic_new.xml | 5 + .../src/main/res/drawable/ic_num0_1.xml | 32 + .../src/main/res/drawable/ic_num0_2.xml | 32 + .../src/main/res/drawable/ic_num0_3.xml | 32 + .../src/main/res/drawable/ic_num0_4.xml | 32 + .../src/main/res/drawable/ic_num1_1.xml | 32 + .../src/main/res/drawable/ic_num1_2.xml | 32 + .../src/main/res/drawable/ic_num1_3.xml | 32 + .../src/main/res/drawable/ic_num1_4.xml | 32 + .../src/main/res/drawable/ic_num2_1.xml | 32 + .../src/main/res/drawable/ic_num2_2.xml | 32 + .../src/main/res/drawable/ic_num2_3.xml | 32 + .../src/main/res/drawable/ic_num2_4.xml | 32 + .../src/main/res/drawable/ic_num3_1.xml | 32 + .../src/main/res/drawable/ic_num3_2.xml | 32 + .../src/main/res/drawable/ic_num3_3.xml | 32 + .../src/main/res/drawable/ic_num3_4.xml | 32 + .../src/main/res/drawable/ic_num4_1.xml | 32 + .../src/main/res/drawable/ic_num4_2.xml | 32 + .../src/main/res/drawable/ic_num4_3.xml | 32 + .../src/main/res/drawable/ic_num4_4.xml | 32 + .../src/main/res/drawable/ic_num5_1.xml | 32 + .../src/main/res/drawable/ic_num5_2.xml | 32 + .../src/main/res/drawable/ic_num5_3.xml | 32 + .../src/main/res/drawable/ic_num5_4.xml | 32 + .../src/main/res/drawable/ic_num6_1.xml | 32 + .../src/main/res/drawable/ic_num6_2.xml | 32 + .../src/main/res/drawable/ic_num6_3.xml | 32 + .../src/main/res/drawable/ic_num6_4.xml | 32 + .../src/main/res/drawable/ic_num7_1.xml | 32 + .../src/main/res/drawable/ic_num7_2.xml | 32 + .../src/main/res/drawable/ic_num7_3.xml | 32 + .../src/main/res/drawable/ic_num7_4.xml | 32 + .../src/main/res/drawable/ic_num8_1.xml | 32 + .../src/main/res/drawable/ic_num8_2.xml | 32 + .../src/main/res/drawable/ic_num8_3.xml | 32 + .../src/main/res/drawable/ic_num8_4.xml | 32 + .../src/main/res/drawable/ic_num9_1.xml | 32 + .../src/main/res/drawable/ic_num9_2.xml | 32 + .../src/main/res/drawable/ic_num9_3.xml | 32 + .../src/main/res/drawable/ic_num9_4.xml | 32 + .../src/main/res/drawable/ic_participant.xml | 20 + .../res/drawable/ic_password_not_view.xml | 9 + .../drawable/ic_password_not_view_black.xml | 9 + .../drawable/ic_password_not_view_white.xml | 9 + chatmodule/src/main/res/drawable/ic_phone.xml | 9 + .../src/main/res/drawable/ic_phone_24dp.xml | 13 + .../drawable/ic_recent_calls_empty_view.xml | 7 + .../src/main/res/drawable/ic_remove_24dp.xml | 9 + .../src/main/res/drawable/ic_right_24dp.xml | 10 + chatmodule/src/main/res/drawable/ic_safe.xml | 13 + .../res/drawable/ic_search_white_24dp.xml | 13 + .../src/main/res/drawable/ic_setting_24dp.xml | 13 + chatmodule/src/main/res/drawable/ic_share.xml | 13 + .../src/main/res/drawable/ic_share_24dp.xml | 13 + .../main/res/drawable/ic_share_stop_24dp.xml | 42 + .../src/main/res/drawable/ic_share_video.xml | 42 + .../res/drawable/ic_share_video_normal.xml | 26 + .../src/main/res/drawable/ic_sms_24dp.xml | 4 + .../src/main/res/drawable/ic_speaker.xml | 10 + .../src/main/res/drawable/ic_sphy_16dp.xml | 22 + .../main/res/drawable/ic_subtract_16dp.xml | 7 + .../main/res/drawable/ic_thumb_rv_slide.xml | 5 + .../src/main/res/drawable/ic_toolbar_back.xml | 9 + .../main/res/drawable/ic_track_rv_slide.xml | 5 + .../main/res/drawable/ic_video_call_in.xml | 22 + .../main/res/drawable/ic_video_call_out.xml | 22 + chatmodule/src/main/res/drawable/ic_voice.xml | 30 + .../src/main/res/drawable/ic_voice_phone.xml | 5 + .../src/main/res/drawable/ic_wechat_24dp.xml | 9 + chatmodule/src/main/res/drawable/ic_wlyc.xml | 13 + chatmodule/src/main/res/drawable/ic_xht.xml | 16 + chatmodule/src/main/res/drawable/ic_yhz.xml | 10 + .../src/main/res/drawable/ic_yhz_disable.xml | 10 + .../src/main/res/drawable/ic_yyhy_16dp.xml | 13 + chatmodule/src/main/res/drawable/ic_yyjt.xml | 21 + .../res/drawable/image_show_piceker_add.xml | 21 + .../src/main/res/drawable/ipcabackgroud.xml | 10 + chatmodule/src/main/res/drawable/j0.xml | 32 + chatmodule/src/main/res/drawable/j00.xml | 25 + chatmodule/src/main/res/drawable/j01.xml | 25 + chatmodule/src/main/res/drawable/j02.xml | 25 + chatmodule/src/main/res/drawable/j03.xml | 24 + chatmodule/src/main/res/drawable/j04.xml | 24 + chatmodule/src/main/res/drawable/j1.xml | 32 + chatmodule/src/main/res/drawable/j2.xml | 32 + chatmodule/src/main/res/drawable/j3.xml | 32 + chatmodule/src/main/res/drawable/k0.xml | 32 + chatmodule/src/main/res/drawable/k00.xml | 24 + chatmodule/src/main/res/drawable/k01.xml | 25 + chatmodule/src/main/res/drawable/k02.xml | 25 + chatmodule/src/main/res/drawable/k03.xml | 25 + chatmodule/src/main/res/drawable/k04.xml | 25 + chatmodule/src/main/res/drawable/k1.xml | 32 + chatmodule/src/main/res/drawable/k2.xml | 32 + chatmodule/src/main/res/drawable/k3.xml | 32 + chatmodule/src/main/res/drawable/key_bg.xml | 26 + chatmodule/src/main/res/drawable/l0.xml | 32 + chatmodule/src/main/res/drawable/l00.xml | 24 + chatmodule/src/main/res/drawable/l01.xml | 25 + chatmodule/src/main/res/drawable/l02.xml | 25 + chatmodule/src/main/res/drawable/l03.xml | 25 + chatmodule/src/main/res/drawable/l04.xml | 25 + chatmodule/src/main/res/drawable/l1.xml | 32 + chatmodule/src/main/res/drawable/l2.xml | 32 + chatmodule/src/main/res/drawable/l3.xml | 32 + .../src/main/res/drawable/list_item.xml | 7 + chatmodule/src/main/res/drawable/m0.xml | 32 + chatmodule/src/main/res/drawable/m00.xml | 24 + chatmodule/src/main/res/drawable/m01.xml | 25 + chatmodule/src/main/res/drawable/m02.xml | 25 + chatmodule/src/main/res/drawable/m03.xml | 25 + chatmodule/src/main/res/drawable/m04.xml | 25 + chatmodule/src/main/res/drawable/m1.xml | 32 + chatmodule/src/main/res/drawable/m2.xml | 32 + chatmodule/src/main/res/drawable/m3.xml | 32 + .../main/res/drawable/meeting_selector.xml | 8 + .../res/drawable/meeting_shape_button.xml | 9 + .../meeting_subtitle_user_name_bg.xml | 27 + .../main/res/drawable/mic_close_selector.xml | 6 + .../src/main/res/drawable/mic_selector.xml | 6 + .../src/main/res/drawable/mine_selector.xml | 8 + .../src/main/res/drawable/more_selector.xml | 6 + chatmodule/src/main/res/drawable/n0.xml | 32 + chatmodule/src/main/res/drawable/n00.xml | 24 + chatmodule/src/main/res/drawable/n01.xml | 25 + chatmodule/src/main/res/drawable/n02.xml | 24 + chatmodule/src/main/res/drawable/n03.xml | 24 + chatmodule/src/main/res/drawable/n04.xml | 24 + chatmodule/src/main/res/drawable/n1.xml | 32 + chatmodule/src/main/res/drawable/n2.xml | 32 + chatmodule/src/main/res/drawable/n3.xml | 32 + .../res/drawable/nav_item_color_state.xml | 5 + chatmodule/src/main/res/drawable/o0.xml | 32 + chatmodule/src/main/res/drawable/o00.xml | 24 + chatmodule/src/main/res/drawable/o01.xml | 25 + chatmodule/src/main/res/drawable/o02.xml | 25 + chatmodule/src/main/res/drawable/o03.xml | 25 + chatmodule/src/main/res/drawable/o04.xml | 25 + chatmodule/src/main/res/drawable/o1.xml | 32 + chatmodule/src/main/res/drawable/o2.xml | 32 + chatmodule/src/main/res/drawable/o3.xml | 32 + chatmodule/src/main/res/drawable/p0.xml | 32 + chatmodule/src/main/res/drawable/p00.xml | 24 + chatmodule/src/main/res/drawable/p01.xml | 25 + chatmodule/src/main/res/drawable/p02.xml | 25 + chatmodule/src/main/res/drawable/p03.xml | 25 + chatmodule/src/main/res/drawable/p04.xml | 25 + chatmodule/src/main/res/drawable/p1.xml | 32 + chatmodule/src/main/res/drawable/p2.xml | 32 + chatmodule/src/main/res/drawable/p3.xml | 32 + .../main/res/drawable/participants_shape.xml | 9 + .../src/main/res/drawable/photo_choose_bg.xml | 14 + .../src/main/res/drawable/profile_image.xml | 188 + .../main/res/drawable/profile_image_bg.xml | 454 ++ .../res/drawable/profile_mine_card_bg.xml | 7 + chatmodule/src/main/res/drawable/q0.xml | 32 + chatmodule/src/main/res/drawable/q00.xml | 24 + chatmodule/src/main/res/drawable/q01.xml | 25 + chatmodule/src/main/res/drawable/q02.xml | 25 + chatmodule/src/main/res/drawable/q03.xml | 24 + chatmodule/src/main/res/drawable/q04.xml | 24 + chatmodule/src/main/res/drawable/q1.xml | 32 + chatmodule/src/main/res/drawable/q2.xml | 32 + chatmodule/src/main/res/drawable/q3.xml | 32 + chatmodule/src/main/res/drawable/r0.xml | 32 + chatmodule/src/main/res/drawable/r00.xml | 24 + chatmodule/src/main/res/drawable/r01.xml | 25 + chatmodule/src/main/res/drawable/r02.xml | 25 + chatmodule/src/main/res/drawable/r03.xml | 24 + chatmodule/src/main/res/drawable/r04.xml | 24 + chatmodule/src/main/res/drawable/r1.xml | 32 + chatmodule/src/main/res/drawable/r2.xml | 32 + chatmodule/src/main/res/drawable/r3.xml | 32 + .../src/main/res/drawable/radius_white_bg.xml | 9 + chatmodule/src/main/res/drawable/s0.xml | 32 + chatmodule/src/main/res/drawable/s00.xml | 24 + chatmodule/src/main/res/drawable/s01.xml | 25 + chatmodule/src/main/res/drawable/s02.xml | 25 + chatmodule/src/main/res/drawable/s03.xml | 25 + chatmodule/src/main/res/drawable/s04.xml | 25 + chatmodule/src/main/res/drawable/s1.xml | 32 + chatmodule/src/main/res/drawable/s2.xml | 32 + chatmodule/src/main/res/drawable/s3.xml | 32 + .../res/drawable/search_edit_color_cursor.xml | 5 + .../src/main/res/drawable/search_line.xml | 15 + .../res/drawable/select_banner_redios.xml | 5 + .../res/drawable/select_button_blue_white.xml | 5 + .../drawable/select_dialog_item_bg_buttom.xml | 15 + .../drawable/select_dialog_item_bg_center.xml | 13 + .../drawable/select_dialog_item_bg_top.xml | 15 + .../res/drawable/selector_back_minimize.xml | 5 + .../main/res/drawable/selector_image_add.xml | 9 + .../main/res/drawable/selector_pwd_type.xml | 6 + .../res/drawable/selector_pwd_type_black.xml | 6 + .../src/main/res/drawable/shape_button.xml | 8 + .../res/drawable/shape_button_disable.xml | 10 + .../main/res/drawable/shape_button_gray.xml | 8 + .../main/res/drawable/shape_button_red.xml | 9 + .../res/drawable/shape_button_red_line.xml | 11 + .../main/res/drawable/shape_button_select.xml | 6 + .../main/res/drawable/shape_button_white.xml | 10 + .../res/drawable/shape_contacts_select_bg.xml | 6 + .../res/drawable/shape_share_circle_bg.xml | 6 + .../src/main/res/drawable/share_selector.xml | 6 + .../main/res/drawable/sw600_blue_track.xml | 14 + .../main/res/drawable/sw600_gray_thumb.xml | 19 + .../main/res/drawable/sw600_gray_track.xml | 16 + .../main/res/drawable/sw600_green_thumb.xml | 19 + .../src/main/res/drawable/sw600_ic_eye.xml | 9 + .../drawable/sw600_ic_password_not_view.xml | 9 + .../res/drawable/sw600_radio_button_check.xml | 33 + .../res/drawable/sw600_selector_pwd_type.xml | 6 + .../drawable/sw600_selector_radio_check.xml | 5 + .../src/main/res/drawable/sw600_thumb.xml | 6 + .../src/main/res/drawable/sw600_track.xml | 6 + chatmodule/src/main/res/drawable/t0.xml | 32 + chatmodule/src/main/res/drawable/t00.xml | 24 + chatmodule/src/main/res/drawable/t01.xml | 25 + chatmodule/src/main/res/drawable/t02.xml | 25 + chatmodule/src/main/res/drawable/t03.xml | 25 + chatmodule/src/main/res/drawable/t04.xml | 25 + chatmodule/src/main/res/drawable/t1.xml | 32 + chatmodule/src/main/res/drawable/t2.xml | 32 + chatmodule/src/main/res/drawable/t3.xml | 32 + .../src/main/res/drawable/text_view_line.xml | 16 + chatmodule/src/main/res/drawable/thumb.xml | 6 + .../src/main/res/drawable/thumb_rv_slide.xml | 6 + chatmodule/src/main/res/drawable/track.xml | 6 + .../src/main/res/drawable/track_rv_slide.xml | 5 + chatmodule/src/main/res/drawable/u0.xml | 32 + chatmodule/src/main/res/drawable/u00.xml | 24 + chatmodule/src/main/res/drawable/u01.xml | 25 + chatmodule/src/main/res/drawable/u02.xml | 25 + chatmodule/src/main/res/drawable/u03.xml | 25 + chatmodule/src/main/res/drawable/u04.xml | 25 + chatmodule/src/main/res/drawable/u1.xml | 32 + chatmodule/src/main/res/drawable/u2.xml | 32 + chatmodule/src/main/res/drawable/u3.xml | 32 + chatmodule/src/main/res/drawable/v0.xml | 32 + chatmodule/src/main/res/drawable/v00.xml | 24 + chatmodule/src/main/res/drawable/v01.xml | 25 + chatmodule/src/main/res/drawable/v02.xml | 25 + chatmodule/src/main/res/drawable/v03.xml | 25 + chatmodule/src/main/res/drawable/v04.xml | 25 + chatmodule/src/main/res/drawable/v1.xml | 32 + chatmodule/src/main/res/drawable/v2.xml | 32 + chatmodule/src/main/res/drawable/v3.xml | 32 + .../res/drawable/vector_drawable_extended.xml | 14 + .../src/main/res/drawable/video_accept.xml | 5 + .../main/res/drawable/video_accept_normal.png | Bin 0 -> 3795 bytes .../res/drawable/video_accept_pressed.png | Bin 0 -> 3813 bytes chatmodule/src/main/res/drawable/w0.xml | 32 + chatmodule/src/main/res/drawable/w00.xml | 25 + chatmodule/src/main/res/drawable/w01.xml | 25 + chatmodule/src/main/res/drawable/w02.xml | 25 + chatmodule/src/main/res/drawable/w03.xml | 25 + chatmodule/src/main/res/drawable/w04.xml | 25 + chatmodule/src/main/res/drawable/w1.xml | 32 + chatmodule/src/main/res/drawable/w2.xml | 32 + chatmodule/src/main/res/drawable/w3.xml | 32 + chatmodule/src/main/res/drawable/x0.xml | 32 + chatmodule/src/main/res/drawable/x00.xml | 24 + chatmodule/src/main/res/drawable/x01.xml | 25 + chatmodule/src/main/res/drawable/x02.xml | 25 + chatmodule/src/main/res/drawable/x03.xml | 25 + chatmodule/src/main/res/drawable/x04.xml | 25 + chatmodule/src/main/res/drawable/x1.xml | 32 + chatmodule/src/main/res/drawable/x2.xml | 32 + chatmodule/src/main/res/drawable/x3.xml | 32 + chatmodule/src/main/res/drawable/y0.xml | 32 + chatmodule/src/main/res/drawable/y00.xml | 24 + chatmodule/src/main/res/drawable/y01.xml | 25 + chatmodule/src/main/res/drawable/y02.xml | 25 + chatmodule/src/main/res/drawable/y03.xml | 25 + chatmodule/src/main/res/drawable/y04.xml | 25 + chatmodule/src/main/res/drawable/y1.xml | 32 + chatmodule/src/main/res/drawable/y2.xml | 32 + chatmodule/src/main/res/drawable/y3.xml | 32 + .../src/main/res/drawable/yhz_selector.xml | 6 + chatmodule/src/main/res/drawable/z0.xml | 32 + chatmodule/src/main/res/drawable/z00.xml | 24 + chatmodule/src/main/res/drawable/z01.xml | 24 + chatmodule/src/main/res/drawable/z02.xml | 25 + chatmodule/src/main/res/drawable/z03.xml | 24 + chatmodule/src/main/res/drawable/z04.xml | 24 + chatmodule/src/main/res/drawable/z1.xml | 32 + chatmodule/src/main/res/drawable/z2.xml | 32 + chatmodule/src/main/res/drawable/z3.xml | 32 + .../layout/activity_address_user_detail.xml | 516 ++- .../layout/activity_meeting_title_info.xml | 232 + .../main/res/layout/activity_point_call.xml | 197 + .../res/layout/activity_spponaor_meeting.xml | 421 ++ .../res/layout/activity_watch_all_text.xml | 20 + .../src/main/res/layout/call_float_view.xml | 39 + .../src/main/res/layout/endconf_dialog.xml | 77 + .../src/main/res/layout/float_normal_view.xml | 13 + .../main/res/layout/fragment_aux_meeting.xml | 12 + .../src/main/res/layout/fragment_remote.xml | 29 + .../main/res/layout/fragment_svc_video.xml | 188 + .../main/res/layout/item_conf_keyboard.xml | 193 + .../layout/item_conf_leave_bottom_layout.xml | 60 + .../main/res/layout/item_meeting_subtitle.xml | 47 + .../res/layout/layout_stream_info_item.xml | 52 + .../src/main/res/layout/list_popwindow.xml | 8 + .../res/layout/meeting_subtitle_layout.xml | 78 + chatmodule/src/main/res/layout/minimize.xml | 22 + .../src/main/res/layout/pop_is_chairman.xml | 236 + .../main/res/layout/popup_call_video_view.xml | 43 + .../main/res/layout/popup_conf_video_view.xml | 64 + .../res/layout/popup_conf_video_view2.xml | 53 + .../res/layout/popup_conf_video_view3.xml | 40 + .../res/layout/popup_conf_video_view4.xml | 54 + chatmodule/src/main/res/layout/share_stop.xml | 26 + chatmodule/src/main/res/layout/start_call.xml | 66 + .../src/main/res/layout/stream_info.xml | 632 +++ .../main/res/layout/stream_info_isaudio.xml | 164 + .../main/res/layout/video_point_footer.xml | 108 + .../layout/video_point_footer_audit_dir.xml | 25 + .../src/main/res/layout/video_toolbar.xml | 161 + .../src/main/res/layout/view_dialog.xml | 134 + .../res/layout/voice_suspended_window.xml | 35 + chatmodule/src/main/res/values/colors.xml | 94 + chatmodule/src/main/res/values/dimens.xml | 41 + chatmodule/src/main/res/values/strings.xml | 869 +++- chatmodule/src/main/res/values/styles.xml | 79 +- .../IncidentAcceptDetailActivity.java | 49 +- .../activity_incident_accept_detail.xml | 481 +-- .../activity_incident_dispatch_detail.xml | 4 +- commonmodule/src/main/AndroidManifest.xml | 10 +- .../cases/IncidentDetailActivity.java | 131 +- .../activitys/cases/IncidentEditActivity.java | 431 ++ .../cases/IncidentOverseeActivity.java | 104 + .../IncidentOverseeDetailOrReplyActivity.java | 216 + .../cases/IncidentReportActivity.java | 16 +- .../cases/IncidentSpecialActivity.java | 2 +- .../cases/IncidentSpecialDeptActivity.java | 107 + .../logs/StatisticsGridActivity.java | 229 +- .../adapters/ComponentAdapter.java | 17 +- .../adapters/ComponentSelAdapter.java | 37 +- .../adapters/IncidentByOverseeAdapter.java | 54 + .../adapters/IncidentMineOverseeAdapter.java | 55 + .../adapters/PenalSuspicionListAdapter.java | 2 +- .../adapters/PenalVictimListAdapter.java | 2 +- .../beans/GridStatistCountBean.java | 29 + .../beans/IncidentByOverseeListBean.java | 169 + .../beans/IncidentDetailBean.java | 64 +- .../beans/IncidentMineOverseeListBean.java | 170 + .../beans/IncidentOverseeDetailBean.java | 119 + .../beans/SaveIncidentOverseeBean.java | 38 + .../beans/SaveIncidentReplyBean.java | 20 + .../fragments/IncidentByOverseeFragment.java | 153 + .../IncidentCenterEarlyWarnFragment.java | 7 +- .../IncidentCenterTimeOutFragment.java | 10 +- .../IncidentDeptEarlyWarnFragment.java | 149 + .../IncidentDeptTimeOutFragment.java | 152 + .../IncidentMineOverseeFragment.java | 156 + .../fragments/SmartConsultFragment.java | 218 + .../holders/ComponentSelHolder.java | 46 + .../holders/IncidentOverseeHolder.java | 38 + .../commonmodule/nets/CenterApis.java | 38 + .../commonmodule/nets/DeptApis.java | 34 + .../commonmodule/nets/GridApis.java | 22 + .../res/layout/activity_incident_detail.xml | 2 +- .../res/layout/activity_incident_edit.xml | 344 ++ .../res/layout/activity_incident_oversee.xml | 22 + ...ivity_incident_oversee_detail_or_reply.xml | 208 + .../res/layout/activity_incident_report.xml | 3 +- .../layout/activity_incident_special_dept.xml | 41 + .../res/layout/activity_statistics_grid.xml | 104 +- .../layout/fragment_incident_by_oversee.xml | 7 + .../fragment_incident_dept_early_warn.xml | 7 + .../fragment_incident_dept_time_out.xml | 7 + .../layout/fragment_incident_mine_oversee.xml | 7 + .../res/layout/fragment_smart_consult.xml | 54 + .../src/main/res/layout/item_component.xml | 4 +- .../main/res/layout/item_component_sel.xml | 117 + .../res/layout/item_incident_by_oversee.xml | 104 + .../src/main/res/layout/item_school_list.xml | 4 +- .../security/PenalSuspicionAddActivity.java | 407 +- .../PenalSuspicionDetailActivity.java | 124 +- .../security/PenalSuspicionEditActivity.java | 441 +- .../security/PenalVictimAddActivity.java | 378 +- .../security/PenalVictimDetailActivity.java | 124 +- .../security/PenalVictimEditActivity.java | 440 +- .../layout/activity_penal_suspicion_add.xml | 76 +- .../activity_penal_suspicion_detail.xml | 36 +- .../layout/activity_penal_suspicion_edit.xml | 48 +- .../res/layout/activity_penal_victim_add.xml | 48 +- .../layout/activity_penal_victim_detail.xml | 39 +- mainmodule/build.gradle | 3 + mainmodule/src/main/AndroidManifest.xml | 10 +- .../mainmodule/base/MainTabActivity.java | 121 +- .../fragments/GridMainFragment.java | 25 +- .../fragments/LeaderMainFragment.java | 45 +- .../fragments/SupervisionMainFragment.java | 97 +- .../res/drawable-xhdpi/ic_customer_icon.png | Bin 0 -> 1665 bytes .../src/main/res/layout/activity_main_tab.xml | 7 +- .../activity_incident_accept_dept_detail.xml | 11 +- 989 files changed, 68764 insertions(+), 2061 deletions(-) rename {chatmodule => baselib}/libs/HME-Audio.jar (100%) rename {chatmodule => baselib}/libs/HME-Video.jar (100%) rename {chatmodule => baselib}/libs/TsdkService.jar (100%) rename {chatmodule => baselib}/libs/TsdkServiceBase.jar (100%) rename {chatmodule => baselib}/libs/TupCall.jar (100%) rename {chatmodule => baselib}/libs/TupCmptService.jar (100%) rename {chatmodule => baselib}/libs/TupConfCtrl.jar (100%) rename {chatmodule => baselib}/libs/TupDns.jar (100%) rename {chatmodule => baselib}/libs/TupHttpTrans.jar (100%) rename {chatmodule => baselib}/libs/TupSocket.jar (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libHME-Audio.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libHME-Video.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libcrypto_ossl.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libgmcrypto.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libgmssl.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libipsi_crypto.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libipsi_osal.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libipsi_pse.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/librtp.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libsecurec.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libssl_ossl.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libsys.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtensorflowlite_c.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtsdk_android.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtsdk_service.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_call_audio.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_call_bfcp.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_call_mediaservice.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_call_service.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_call_sip.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_call_video.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_cmpt_service.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_commonlib.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_confctrl.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_dns.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_https_clt.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_httptrans.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_ipdetect.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_ldapfrontstage.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_login.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_logone.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_minidopra.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_msg.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_os_adapter.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_publiclib.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_socket.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_sslex.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_sslex_gm.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_vcomgmssl.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_vcomopenssl.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_xml.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libtup_zip.so (100%) rename {chatmodule => baselib}/libs/arm64-v8a/libwebsockets.so (100%) create mode 100644 baselib/src/main/assets/CameraBlack.BMP create mode 100644 baselib/src/main/assets/CameraBlack2.BMP create mode 100644 baselib/src/main/assets/check.bmp create mode 100644 baselib/src/main/assets/dpointer.bmp create mode 100644 baselib/src/main/assets/inCertificate/equip.pem create mode 100644 baselib/src/main/assets/inCertificate/equip_key.pem create mode 100644 baselib/src/main/assets/lp.bmp create mode 100644 baselib/src/main/assets/lpointer.bmp create mode 100644 baselib/src/main/assets/privacy.html create mode 100644 baselib/src/main/assets/privacy_en.html create mode 100644 baselib/src/main/assets/ring_back.wav create mode 100644 baselib/src/main/assets/ringing.wav create mode 100644 baselib/src/main/assets/root/Actalis_Authentication_Root_CA.pem create mode 100644 baselib/src/main/assets/root/Actalis_Organization_Validated_Server_CA_G2.pem create mode 100644 baselib/src/main/assets/root/DigiCert_EV_RSA_CA_G2.pem create mode 100644 baselib/src/main/assets/root/DigiCert_Global_Root_G2.pem create mode 100644 baselib/src/main/assets/root/Entrust_Root_Certification_Authority_G2.pem create mode 100644 baselib/src/main/assets/root/Geotrust_PCA_G3_Root.pem create mode 100644 baselib/src/main/assets/root/GlobalSign.pem create mode 100644 baselib/src/main/assets/root/GlobalSign_RSA_OV_SSL_CA_2018.pem create mode 100644 baselib/src/main/assets/root/Huawei IT Product CA.pem create mode 100644 baselib/src/main/assets/root/Huawei_Equipment_Root_CA.pem create mode 100644 baselib/src/main/assets/root/VeriSign_Universal_Root_Certification_Authority.pem create mode 100644 baselib/src/main/assets/root/ca_root.pem create mode 100644 baselib/src/main/assets/root/root_thundersoft.pem create mode 100644 baselib/src/main/assets/root/root_vc_pass.pem create mode 100644 baselib/src/main/assets/root/sc_root1.pem create mode 100644 baselib/src/main/assets/root/sc_root2.pem create mode 100644 baselib/src/main/assets/rpointer.bmp create mode 100644 baselib/src/main/assets/smCertificate/equip_cloudlink.pem create mode 100644 baselib/src/main/assets/smCertificate/equip_cloudlink_enc.pem create mode 100644 baselib/src/main/assets/smCertificate/equip_key_cloudlink.pem create mode 100644 baselib/src/main/assets/smCertificate/equip_key_cloudlink_enc.pem create mode 100644 baselib/src/main/assets/smRoot/root_thundersoft_gm.pem create mode 100644 baselib/src/main/assets/upointer.bmp create mode 100644 baselib/src/main/assets/xcheck.bmp create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/constant/BroadcastConstant.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/constant/ConfConstant.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/constant/Constant.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/constant/ConstantsV2.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/core/beans/CameraEntity.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/core/beans/Member.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/core/beans/SubtitleLanguage.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/core/listener/ScreenListener.java create mode 100755 baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedPreferencesUtils.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedSPTool.java create mode 100644 baselib/src/main/java/com/tenlionsoft/baselib/utils/KeyBoardListener.java create mode 100644 baselib/src/main/res/drawable-xhdpi/ic_edit_gray_icon.png create mode 100644 baselib/src/main/res/drawable/shp_circle_blue.xml create mode 100644 baselib/src/main/res/drawable/shp_top_shadow_white.xml create mode 100644 baselib/src/main/res/drawable/shp_top_shadow_white_no_radius.xml create mode 100755 baselib/src/main/res/layout/dialog_input_radio_oversee.xml create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/InvitedPointCallActivity.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/SponsorMeetingActivity.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/WatchAllTextActivityV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/BookConferenceInfo.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/CallConstant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/CallInfo.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/ConfBaseInfo.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/ConferenceConstant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/ControlOperationsResults.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/EmptyFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/IntentConstant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/LdapFrontstageConstant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/MeetingTitleInfoBean.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/MyTsdkCallInfo.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/ServiceSettingBeanV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/Session.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/SponsorMeetingConstant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/SvcWatchStatus.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/TSDKErrorConstant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/beans/UserInfoBeanV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/CallOnResponse.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/CancelConfResultCallBack.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/CheckVersionCallBack.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/IAgree.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/ILdapFrontstageNotification.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/IPermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/IPermissionFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/IRefuse.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/LogUpload.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/LoginView.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/LogoutCallBack.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/SearchTimeZoneListCallBack.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/api/SearchUsernameFormID.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/IMeetingController.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/IMeetingSignalController.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/IMeetingTitleController.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/MeetingController.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/MeetingSignalController.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/MeetingTitleBarController.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/controller/TsdkConferenceLiveData.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/FloatingViewListener.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/ICallNotification.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/IConfNotification.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/ICtdNotification.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/LoginEventNotifyUi.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/NoDoubleClickListener.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/OnDragTouchListener.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/OnLanguageListener.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/listener/OrientationListener.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/AudioRouteManager.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/CallMgrV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/CloudLinkNotifyManager.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/ConfConvertUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/FloatingViewManager.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/ICallMgr.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/LdapFrontstageMgr.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/LoginMangerV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/MeetingMgrV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/SaveRecentCalls.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/SwitchAudioRouteManager.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/VideoMgr.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/WatchInfo.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/notification/CallFunc.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/notification/ConfFunc.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/receiver/LocalBroadcast.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/receiver/LocalBroadcastReceiver.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/receiver/LoginReceiver.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/receiver/NetWorkStateReceiver.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/receiver/PhoneReceiver.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/AuxSendService.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/CloudLinkService.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/FloatingViewService.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/MinimizeService.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/ServiceManger.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/ServiceNotifyV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragment.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragmentContract.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragmentPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseConfContract.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseConfPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseContract.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseDialPlateControl.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseMvpActivityV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BasePermissionActivityV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BasePresenterV2.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/CloudLinkDialog.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/CustomViewPager.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/DialogUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/EndConfDialog.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/FloatNormalView.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/FloatingView.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/FullScreenDialog.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/GestureKtx.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/IMeetingBottomChanged.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/IPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/IView.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/LazyloadFragment.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/ListPopWindow.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/MeetingSubtitleView.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/MeetingTitlePopWindow.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/MySponsorPageAdapter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/MyWindowManager.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/NullMenuEditText.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/RemoteFragment.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/RemoteFragmentContract.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/RemoteFragmentPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SVCVideoFragmentContract.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SVCVideoFragmentPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/ScaleHelper.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/ScaleView.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SecondDialPlateControl.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SponsorMeetingContract.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SponsorMeetingPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SponsorMorePopWindow.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/StreamInfoAdapter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/StreamInfoDialog.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SvcVideoFragment.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/VideoLayout.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/VideoTwoLayout.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/VoiceConfPresenter.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/ZoomLayout.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ActivityUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/AppUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/BandWidthUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/Closeables.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/CloudLinkPermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ConfigAppUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/Constant.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/DateUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/DateUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/DeviceManager.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/FileUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/FirstLetterUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/GMUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/HuaweiUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ImpPermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ImportFileUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/JoinMeetingHistoryUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ListTools.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/LocContext.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/LogTag.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/LogUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MYSPUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MathUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MediaUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MeizuUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MiuiUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MultiFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/MultiPermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/NetUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/NotifyUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/OppoUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/PermissionUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/PhoneUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/Platform.kt create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/QikuUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/RomUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/RomUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ScreenUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/SdkHelpUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/SingleLineUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/StorageFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/StoragePermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/SubtitleLanguage.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/SystemUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/ThreadHelper.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/TimeSelectUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/TimeUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/TimerUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/UIUtil.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/UiUtils.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/camera/CameraFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/camera/CameraPermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/mic/RecordAudioFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/mic/RecordAudioPermission.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/phone_state/PhoneStateFactory.java create mode 100644 chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/phone_state/PhoneStatePermission.java create mode 100644 chatmodule/src/main/res/anim/dialog_in_anim.xml create mode 100644 chatmodule/src/main/res/anim/dialog_out_anim.xml create mode 100644 chatmodule/src/main/res/anim/photo_dialog_in_anim.xml create mode 100644 chatmodule/src/main/res/anim/photo_dialog_out_anim.xml create mode 100644 chatmodule/src/main/res/drawable-xhdpi/back_minimize_normal.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/back_minimize_select.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/call_voice_back.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/camera_default.9.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/camerablack2.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/cb_select.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/cb_unselect.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/contact_fill.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/contact_line.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/corporate.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/corporatex.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/create_meeting.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/dial_normal.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/four.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/green_call.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/green_video.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/hand_up.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_add_contact_icon.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_launcher_foreground.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_launcher_round.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_send_msg_icon.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_subtitle_close.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_subtitle_down.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_subtitle_fullscreen_close.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_subtitle_fullscreen_open.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_subtitle_minimize.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_subtitle_new.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_video_call_icon.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/ic_voice_call_icon.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/image_add_nor.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/image_add_sel.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/img_add.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/img_add_c.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/img_add_d.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/img_vedio.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/img_voice.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/join_meeting.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/key.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/left.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/me_fill.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/me_line.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/meeting_fill.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/meeting_line.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/meeting_title_down_image.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/mic.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/mobile_phone.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/multipleicon_a02.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/multipleicon_b02.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/multipleicon_c02.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/multipleicon_d02.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/my_meeting_room.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/network_signal_quality_excellent.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/network_signal_quality_good.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/network_signal_quality_medium.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/nodata_search.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/one.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/recent_calls.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/red_call.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/select_img_add.xml create mode 100644 chatmodule/src/main/res/drawable-xhdpi/shape_meeting_subject.xml create mode 100644 chatmodule/src/main/res/drawable-xhdpi/share.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/share_dis.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/speakering.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/test_head.jpg create mode 100644 chatmodule/src/main/res/drawable-xhdpi/three.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/title_copy.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/two.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/virtual_meeting_room.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/voice.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/voice_conf_back.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/voice_phone.png create mode 100644 chatmodule/src/main/res/drawable-xhdpi/voice_to_video.png create mode 100644 chatmodule/src/main/res/drawable/a0.xml create mode 100644 chatmodule/src/main/res/drawable/a00.xml create mode 100644 chatmodule/src/main/res/drawable/a01.xml create mode 100644 chatmodule/src/main/res/drawable/a02.xml create mode 100644 chatmodule/src/main/res/drawable/a03.xml create mode 100644 chatmodule/src/main/res/drawable/a04.xml create mode 100644 chatmodule/src/main/res/drawable/a1.xml create mode 100644 chatmodule/src/main/res/drawable/a2.xml create mode 100644 chatmodule/src/main/res/drawable/a3.xml create mode 100644 chatmodule/src/main/res/drawable/b0.xml create mode 100644 chatmodule/src/main/res/drawable/b00.xml create mode 100644 chatmodule/src/main/res/drawable/b01.xml create mode 100644 chatmodule/src/main/res/drawable/b02.xml create mode 100644 chatmodule/src/main/res/drawable/b03.xml create mode 100644 chatmodule/src/main/res/drawable/b04.xml create mode 100644 chatmodule/src/main/res/drawable/b1.xml create mode 100644 chatmodule/src/main/res/drawable/b2.xml create mode 100644 chatmodule/src/main/res/drawable/b3.xml create mode 100644 chatmodule/src/main/res/drawable/backgroud.xml create mode 100644 chatmodule/src/main/res/drawable/backgroud2.xml create mode 100644 chatmodule/src/main/res/drawable/banner_round_checked.xml create mode 100644 chatmodule/src/main/res/drawable/banner_round_unchecked.xml create mode 100644 chatmodule/src/main/res/drawable/bg_conf_list_normal.xml create mode 100644 chatmodule/src/main/res/drawable/bg_conf_list_select.xml create mode 100644 chatmodule/src/main/res/drawable/bg_progress.xml create mode 100644 chatmodule/src/main/res/drawable/bg_subtitle_minimize.xml create mode 100644 chatmodule/src/main/res/drawable/blue_track.xml create mode 100644 chatmodule/src/main/res/drawable/btn_blue_radius.xml create mode 100644 chatmodule/src/main/res/drawable/btn_tran_back.xml create mode 100644 chatmodule/src/main/res/drawable/button_style_blue.xml create mode 100644 chatmodule/src/main/res/drawable/button_style_green.xml create mode 100644 chatmodule/src/main/res/drawable/c0.xml create mode 100644 chatmodule/src/main/res/drawable/c00.xml create mode 100644 chatmodule/src/main/res/drawable/c01.xml create mode 100644 chatmodule/src/main/res/drawable/c02.xml create mode 100644 chatmodule/src/main/res/drawable/c03.xml create mode 100644 chatmodule/src/main/res/drawable/c04.xml create mode 100644 chatmodule/src/main/res/drawable/c1.xml create mode 100644 chatmodule/src/main/res/drawable/c2.xml create mode 100644 chatmodule/src/main/res/drawable/c3.xml create mode 100644 chatmodule/src/main/res/drawable/camerablack.png create mode 100644 chatmodule/src/main/res/drawable/cb_add_select.xml create mode 100644 chatmodule/src/main/res/drawable/checkbox_invite_contact_selector.xml create mode 100644 chatmodule/src/main/res/drawable/checkbox_selector.xml create mode 100644 chatmodule/src/main/res/drawable/color_cursor.xml create mode 100644 chatmodule/src/main/res/drawable/conf_tip_shape.xml create mode 100644 chatmodule/src/main/res/drawable/contact_selector.xml create mode 100644 chatmodule/src/main/res/drawable/contact_shape_bg.xml create mode 100644 chatmodule/src/main/res/drawable/contact_shape_bg_1.xml create mode 100644 chatmodule/src/main/res/drawable/contact_shape_bg_2.xml create mode 100644 chatmodule/src/main/res/drawable/contact_shape_bg_3.xml create mode 100644 chatmodule/src/main/res/drawable/corporatex.xml create mode 100644 chatmodule/src/main/res/drawable/d0.xml create mode 100644 chatmodule/src/main/res/drawable/d00.xml create mode 100644 chatmodule/src/main/res/drawable/d01.xml create mode 100644 chatmodule/src/main/res/drawable/d02.xml create mode 100644 chatmodule/src/main/res/drawable/d03.xml create mode 100644 chatmodule/src/main/res/drawable/d04.xml create mode 100644 chatmodule/src/main/res/drawable/d1.xml create mode 100644 chatmodule/src/main/res/drawable/d2.xml create mode 100644 chatmodule/src/main/res/drawable/d3.xml create mode 100644 chatmodule/src/main/res/drawable/dialog_background.xml create mode 100644 chatmodule/src/main/res/drawable/dialog_btn.xml create mode 100644 chatmodule/src/main/res/drawable/dialog_item_bg_only.xml create mode 100644 chatmodule/src/main/res/drawable/dialog_meeting_more_header.xml create mode 100644 chatmodule/src/main/res/drawable/dialog_shape.xml create mode 100644 chatmodule/src/main/res/drawable/e0.xml create mode 100644 chatmodule/src/main/res/drawable/e00.xml create mode 100644 chatmodule/src/main/res/drawable/e01.xml create mode 100644 chatmodule/src/main/res/drawable/e02.xml create mode 100644 chatmodule/src/main/res/drawable/e03.xml create mode 100644 chatmodule/src/main/res/drawable/e04.xml create mode 100644 chatmodule/src/main/res/drawable/e1.xml create mode 100644 chatmodule/src/main/res/drawable/e2.xml create mode 100644 chatmodule/src/main/res/drawable/e3.xml create mode 100644 chatmodule/src/main/res/drawable/edit_text_cursor_blue_color.xml create mode 100644 chatmodule/src/main/res/drawable/edit_text_cursor_color.xml create mode 100644 chatmodule/src/main/res/drawable/edit_text_select.xml create mode 100644 chatmodule/src/main/res/drawable/edit_text_selector.xml create mode 100644 chatmodule/src/main/res/drawable/edit_text_unselect.xml create mode 100644 chatmodule/src/main/res/drawable/f0.xml create mode 100644 chatmodule/src/main/res/drawable/f00.xml create mode 100644 chatmodule/src/main/res/drawable/f01.xml create mode 100644 chatmodule/src/main/res/drawable/f02.xml create mode 100644 chatmodule/src/main/res/drawable/f03.xml create mode 100644 chatmodule/src/main/res/drawable/f04.xml create mode 100644 chatmodule/src/main/res/drawable/f1.xml create mode 100644 chatmodule/src/main/res/drawable/f2.xml create mode 100644 chatmodule/src/main/res/drawable/f3.xml create mode 100644 chatmodule/src/main/res/drawable/fg_subtitle_minimize.xml create mode 100644 chatmodule/src/main/res/drawable/fg_subtitle_msg_new.xml create mode 100644 chatmodule/src/main/res/drawable/footer_text_color.xml create mode 100644 chatmodule/src/main/res/drawable/frame_black.xml create mode 100644 chatmodule/src/main/res/drawable/frame_blue.xml create mode 100644 chatmodule/src/main/res/drawable/g0.xml create mode 100644 chatmodule/src/main/res/drawable/g00.xml create mode 100644 chatmodule/src/main/res/drawable/g01.xml create mode 100644 chatmodule/src/main/res/drawable/g02.xml create mode 100644 chatmodule/src/main/res/drawable/g03.xml create mode 100644 chatmodule/src/main/res/drawable/g04.xml create mode 100644 chatmodule/src/main/res/drawable/g1.xml create mode 100644 chatmodule/src/main/res/drawable/g2.xml create mode 100644 chatmodule/src/main/res/drawable/g3.xml create mode 100644 chatmodule/src/main/res/drawable/gray_thumb.xml create mode 100644 chatmodule/src/main/res/drawable/gray_track.xml create mode 100644 chatmodule/src/main/res/drawable/green_thumb.xml create mode 100644 chatmodule/src/main/res/drawable/h0.xml create mode 100644 chatmodule/src/main/res/drawable/h00.xml create mode 100644 chatmodule/src/main/res/drawable/h01.xml create mode 100644 chatmodule/src/main/res/drawable/h02.xml create mode 100644 chatmodule/src/main/res/drawable/h03.xml create mode 100644 chatmodule/src/main/res/drawable/h04.xml create mode 100644 chatmodule/src/main/res/drawable/h1.xml create mode 100644 chatmodule/src/main/res/drawable/h2.xml create mode 100644 chatmodule/src/main/res/drawable/h3.xml create mode 100644 chatmodule/src/main/res/drawable/hangup.png create mode 100644 chatmodule/src/main/res/drawable/i0.xml create mode 100644 chatmodule/src/main/res/drawable/i00.xml create mode 100644 chatmodule/src/main/res/drawable/i01.xml create mode 100644 chatmodule/src/main/res/drawable/i02.xml create mode 100644 chatmodule/src/main/res/drawable/i03.xml create mode 100644 chatmodule/src/main/res/drawable/i04.xml create mode 100644 chatmodule/src/main/res/drawable/i1.xml create mode 100644 chatmodule/src/main/res/drawable/i2.xml create mode 100644 chatmodule/src/main/res/drawable/i3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_add.xml create mode 100644 chatmodule/src/main/res/drawable/ic_add_16dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_add_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_add_24dp_blue.xml create mode 100644 chatmodule/src/main/res/drawable/ic_add_contact.xml create mode 100644 chatmodule/src/main/res/drawable/ic_audio_call_in.xml create mode 100644 chatmodule/src/main/res/drawable/ic_audio_call_out.xml create mode 100644 chatmodule/src/main/res/drawable/ic_back_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_baseline_backspace_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_baseline_bluetooth_connected_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_baseline_check_box_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_baseline_dialpad_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_bluetooth_default.xml create mode 100644 chatmodule/src/main/res/drawable/ic_camera_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_camera_24dp_close_seletor.xml create mode 100644 chatmodule/src/main/res/drawable/ic_camera_24dp_disable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_camera_24dp_seletor.xml create mode 100644 chatmodule/src/main/res/drawable/ic_camera_gray_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_cammera_close_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_cammera_close_24dp_disable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_cammera_gray_close_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_check_mark_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_clear.xml create mode 100644 chatmodule/src/main/res/drawable/ic_clear_grey.xml create mode 100644 chatmodule/src/main/res/drawable/ic_close.xml create mode 100644 chatmodule/src/main/res/drawable/ic_close2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_collection_nor_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_collection_pre_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_collection_selector.xml create mode 100644 chatmodule/src/main/res/drawable/ic_cursor_drawable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_no_border.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_no_border_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_no_border_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_default_no_border_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_delete.xml create mode 100644 chatmodule/src/main/res/drawable/ic_dial.xml create mode 100644 chatmodule/src/main/res/drawable/ic_dial_video.xml create mode 100644 chatmodule/src/main/res/drawable/ic_dial_vocie.xml create mode 100644 chatmodule/src/main/res/drawable/ic_edit.xml create mode 100644 chatmodule/src/main/res/drawable/ic_eye.xml create mode 100644 chatmodule/src/main/res/drawable/ic_eye_black.xml create mode 100644 chatmodule/src/main/res/drawable/ic_eye_white.xml create mode 100644 chatmodule/src/main/res/drawable/ic_hand_up.xml create mode 100644 chatmodule/src/main/res/drawable/ic_hand_up_white.xml create mode 100644 chatmodule/src/main/res/drawable/ic_headset.xml create mode 100644 chatmodule/src/main/res/drawable/ic_headset_disenable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_hearing_24.xml create mode 100644 chatmodule/src/main/res/drawable/ic_help_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_import.xml create mode 100644 chatmodule/src/main/res/drawable/ic_key.xml create mode 100644 chatmodule/src/main/res/drawable/ic_keyboard_arrow_down_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_keyboard_arrow_down_gray_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_keyboard_arrow_left_black_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_keyboard_arrow_right_14dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_keyboard_arrow_right_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_launcher.png create mode 100644 chatmodule/src/main/res/drawable/ic_link_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_logo.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mail_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mic.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mic_close.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mic_close_gray.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mic_disable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mic_gray.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mine_card_bg_0.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mine_card_bg_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mine_card_bg_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mine_card_bg_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mine_card_bg_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_more.xml create mode 100644 chatmodule/src/main/res/drawable/ic_more_disable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_mymeeting.xml create mode 100644 chatmodule/src/main/res/drawable/ic_new.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num0_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num0_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num0_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num0_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num1_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num1_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num1_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num1_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num2_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num2_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num2_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num2_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num3_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num3_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num3_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num3_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num4_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num4_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num4_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num4_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num5_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num5_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num5_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num5_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num6_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num6_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num6_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num6_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num7_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num7_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num7_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num7_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num8_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num8_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num8_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num8_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num9_1.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num9_2.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num9_3.xml create mode 100644 chatmodule/src/main/res/drawable/ic_num9_4.xml create mode 100644 chatmodule/src/main/res/drawable/ic_participant.xml create mode 100644 chatmodule/src/main/res/drawable/ic_password_not_view.xml create mode 100644 chatmodule/src/main/res/drawable/ic_password_not_view_black.xml create mode 100644 chatmodule/src/main/res/drawable/ic_password_not_view_white.xml create mode 100644 chatmodule/src/main/res/drawable/ic_phone.xml create mode 100644 chatmodule/src/main/res/drawable/ic_phone_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_recent_calls_empty_view.xml create mode 100644 chatmodule/src/main/res/drawable/ic_remove_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_right_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_safe.xml create mode 100644 chatmodule/src/main/res/drawable/ic_search_white_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_setting_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_share.xml create mode 100644 chatmodule/src/main/res/drawable/ic_share_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_share_stop_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_share_video.xml create mode 100644 chatmodule/src/main/res/drawable/ic_share_video_normal.xml create mode 100644 chatmodule/src/main/res/drawable/ic_sms_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_speaker.xml create mode 100644 chatmodule/src/main/res/drawable/ic_sphy_16dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_subtract_16dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_thumb_rv_slide.xml create mode 100644 chatmodule/src/main/res/drawable/ic_toolbar_back.xml create mode 100644 chatmodule/src/main/res/drawable/ic_track_rv_slide.xml create mode 100644 chatmodule/src/main/res/drawable/ic_video_call_in.xml create mode 100644 chatmodule/src/main/res/drawable/ic_video_call_out.xml create mode 100644 chatmodule/src/main/res/drawable/ic_voice.xml create mode 100644 chatmodule/src/main/res/drawable/ic_voice_phone.xml create mode 100644 chatmodule/src/main/res/drawable/ic_wechat_24dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_wlyc.xml create mode 100644 chatmodule/src/main/res/drawable/ic_xht.xml create mode 100644 chatmodule/src/main/res/drawable/ic_yhz.xml create mode 100644 chatmodule/src/main/res/drawable/ic_yhz_disable.xml create mode 100644 chatmodule/src/main/res/drawable/ic_yyhy_16dp.xml create mode 100644 chatmodule/src/main/res/drawable/ic_yyjt.xml create mode 100644 chatmodule/src/main/res/drawable/image_show_piceker_add.xml create mode 100644 chatmodule/src/main/res/drawable/ipcabackgroud.xml create mode 100644 chatmodule/src/main/res/drawable/j0.xml create mode 100644 chatmodule/src/main/res/drawable/j00.xml create mode 100644 chatmodule/src/main/res/drawable/j01.xml create mode 100644 chatmodule/src/main/res/drawable/j02.xml create mode 100644 chatmodule/src/main/res/drawable/j03.xml create mode 100644 chatmodule/src/main/res/drawable/j04.xml create mode 100644 chatmodule/src/main/res/drawable/j1.xml create mode 100644 chatmodule/src/main/res/drawable/j2.xml create mode 100644 chatmodule/src/main/res/drawable/j3.xml create mode 100644 chatmodule/src/main/res/drawable/k0.xml create mode 100644 chatmodule/src/main/res/drawable/k00.xml create mode 100644 chatmodule/src/main/res/drawable/k01.xml create mode 100644 chatmodule/src/main/res/drawable/k02.xml create mode 100644 chatmodule/src/main/res/drawable/k03.xml create mode 100644 chatmodule/src/main/res/drawable/k04.xml create mode 100644 chatmodule/src/main/res/drawable/k1.xml create mode 100644 chatmodule/src/main/res/drawable/k2.xml create mode 100644 chatmodule/src/main/res/drawable/k3.xml create mode 100644 chatmodule/src/main/res/drawable/key_bg.xml create mode 100644 chatmodule/src/main/res/drawable/l0.xml create mode 100644 chatmodule/src/main/res/drawable/l00.xml create mode 100644 chatmodule/src/main/res/drawable/l01.xml create mode 100644 chatmodule/src/main/res/drawable/l02.xml create mode 100644 chatmodule/src/main/res/drawable/l03.xml create mode 100644 chatmodule/src/main/res/drawable/l04.xml create mode 100644 chatmodule/src/main/res/drawable/l1.xml create mode 100644 chatmodule/src/main/res/drawable/l2.xml create mode 100644 chatmodule/src/main/res/drawable/l3.xml create mode 100644 chatmodule/src/main/res/drawable/list_item.xml create mode 100644 chatmodule/src/main/res/drawable/m0.xml create mode 100644 chatmodule/src/main/res/drawable/m00.xml create mode 100644 chatmodule/src/main/res/drawable/m01.xml create mode 100644 chatmodule/src/main/res/drawable/m02.xml create mode 100644 chatmodule/src/main/res/drawable/m03.xml create mode 100644 chatmodule/src/main/res/drawable/m04.xml create mode 100644 chatmodule/src/main/res/drawable/m1.xml create mode 100644 chatmodule/src/main/res/drawable/m2.xml create mode 100644 chatmodule/src/main/res/drawable/m3.xml create mode 100644 chatmodule/src/main/res/drawable/meeting_selector.xml create mode 100644 chatmodule/src/main/res/drawable/meeting_shape_button.xml create mode 100644 chatmodule/src/main/res/drawable/meeting_subtitle_user_name_bg.xml create mode 100644 chatmodule/src/main/res/drawable/mic_close_selector.xml create mode 100644 chatmodule/src/main/res/drawable/mic_selector.xml create mode 100644 chatmodule/src/main/res/drawable/mine_selector.xml create mode 100644 chatmodule/src/main/res/drawable/more_selector.xml create mode 100644 chatmodule/src/main/res/drawable/n0.xml create mode 100644 chatmodule/src/main/res/drawable/n00.xml create mode 100644 chatmodule/src/main/res/drawable/n01.xml create mode 100644 chatmodule/src/main/res/drawable/n02.xml create mode 100644 chatmodule/src/main/res/drawable/n03.xml create mode 100644 chatmodule/src/main/res/drawable/n04.xml create mode 100644 chatmodule/src/main/res/drawable/n1.xml create mode 100644 chatmodule/src/main/res/drawable/n2.xml create mode 100644 chatmodule/src/main/res/drawable/n3.xml create mode 100644 chatmodule/src/main/res/drawable/nav_item_color_state.xml create mode 100644 chatmodule/src/main/res/drawable/o0.xml create mode 100644 chatmodule/src/main/res/drawable/o00.xml create mode 100644 chatmodule/src/main/res/drawable/o01.xml create mode 100644 chatmodule/src/main/res/drawable/o02.xml create mode 100644 chatmodule/src/main/res/drawable/o03.xml create mode 100644 chatmodule/src/main/res/drawable/o04.xml create mode 100644 chatmodule/src/main/res/drawable/o1.xml create mode 100644 chatmodule/src/main/res/drawable/o2.xml create mode 100644 chatmodule/src/main/res/drawable/o3.xml create mode 100644 chatmodule/src/main/res/drawable/p0.xml create mode 100644 chatmodule/src/main/res/drawable/p00.xml create mode 100644 chatmodule/src/main/res/drawable/p01.xml create mode 100644 chatmodule/src/main/res/drawable/p02.xml create mode 100644 chatmodule/src/main/res/drawable/p03.xml create mode 100644 chatmodule/src/main/res/drawable/p04.xml create mode 100644 chatmodule/src/main/res/drawable/p1.xml create mode 100644 chatmodule/src/main/res/drawable/p2.xml create mode 100644 chatmodule/src/main/res/drawable/p3.xml create mode 100644 chatmodule/src/main/res/drawable/participants_shape.xml create mode 100644 chatmodule/src/main/res/drawable/photo_choose_bg.xml create mode 100644 chatmodule/src/main/res/drawable/profile_image.xml create mode 100644 chatmodule/src/main/res/drawable/profile_image_bg.xml create mode 100644 chatmodule/src/main/res/drawable/profile_mine_card_bg.xml create mode 100644 chatmodule/src/main/res/drawable/q0.xml create mode 100644 chatmodule/src/main/res/drawable/q00.xml create mode 100644 chatmodule/src/main/res/drawable/q01.xml create mode 100644 chatmodule/src/main/res/drawable/q02.xml create mode 100644 chatmodule/src/main/res/drawable/q03.xml create mode 100644 chatmodule/src/main/res/drawable/q04.xml create mode 100644 chatmodule/src/main/res/drawable/q1.xml create mode 100644 chatmodule/src/main/res/drawable/q2.xml create mode 100644 chatmodule/src/main/res/drawable/q3.xml create mode 100644 chatmodule/src/main/res/drawable/r0.xml create mode 100644 chatmodule/src/main/res/drawable/r00.xml create mode 100644 chatmodule/src/main/res/drawable/r01.xml create mode 100644 chatmodule/src/main/res/drawable/r02.xml create mode 100644 chatmodule/src/main/res/drawable/r03.xml create mode 100644 chatmodule/src/main/res/drawable/r04.xml create mode 100644 chatmodule/src/main/res/drawable/r1.xml create mode 100644 chatmodule/src/main/res/drawable/r2.xml create mode 100644 chatmodule/src/main/res/drawable/r3.xml create mode 100644 chatmodule/src/main/res/drawable/radius_white_bg.xml create mode 100644 chatmodule/src/main/res/drawable/s0.xml create mode 100644 chatmodule/src/main/res/drawable/s00.xml create mode 100644 chatmodule/src/main/res/drawable/s01.xml create mode 100644 chatmodule/src/main/res/drawable/s02.xml create mode 100644 chatmodule/src/main/res/drawable/s03.xml create mode 100644 chatmodule/src/main/res/drawable/s04.xml create mode 100644 chatmodule/src/main/res/drawable/s1.xml create mode 100644 chatmodule/src/main/res/drawable/s2.xml create mode 100644 chatmodule/src/main/res/drawable/s3.xml create mode 100644 chatmodule/src/main/res/drawable/search_edit_color_cursor.xml create mode 100644 chatmodule/src/main/res/drawable/search_line.xml create mode 100644 chatmodule/src/main/res/drawable/select_banner_redios.xml create mode 100644 chatmodule/src/main/res/drawable/select_button_blue_white.xml create mode 100644 chatmodule/src/main/res/drawable/select_dialog_item_bg_buttom.xml create mode 100644 chatmodule/src/main/res/drawable/select_dialog_item_bg_center.xml create mode 100644 chatmodule/src/main/res/drawable/select_dialog_item_bg_top.xml create mode 100644 chatmodule/src/main/res/drawable/selector_back_minimize.xml create mode 100644 chatmodule/src/main/res/drawable/selector_image_add.xml create mode 100644 chatmodule/src/main/res/drawable/selector_pwd_type.xml create mode 100644 chatmodule/src/main/res/drawable/selector_pwd_type_black.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button_disable.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button_gray.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button_red.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button_red_line.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button_select.xml create mode 100644 chatmodule/src/main/res/drawable/shape_button_white.xml create mode 100644 chatmodule/src/main/res/drawable/shape_contacts_select_bg.xml create mode 100644 chatmodule/src/main/res/drawable/shape_share_circle_bg.xml create mode 100644 chatmodule/src/main/res/drawable/share_selector.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_blue_track.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_gray_thumb.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_gray_track.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_green_thumb.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_ic_eye.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_ic_password_not_view.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_radio_button_check.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_selector_pwd_type.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_selector_radio_check.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_thumb.xml create mode 100644 chatmodule/src/main/res/drawable/sw600_track.xml create mode 100644 chatmodule/src/main/res/drawable/t0.xml create mode 100644 chatmodule/src/main/res/drawable/t00.xml create mode 100644 chatmodule/src/main/res/drawable/t01.xml create mode 100644 chatmodule/src/main/res/drawable/t02.xml create mode 100644 chatmodule/src/main/res/drawable/t03.xml create mode 100644 chatmodule/src/main/res/drawable/t04.xml create mode 100644 chatmodule/src/main/res/drawable/t1.xml create mode 100644 chatmodule/src/main/res/drawable/t2.xml create mode 100644 chatmodule/src/main/res/drawable/t3.xml create mode 100644 chatmodule/src/main/res/drawable/text_view_line.xml create mode 100644 chatmodule/src/main/res/drawable/thumb.xml create mode 100644 chatmodule/src/main/res/drawable/thumb_rv_slide.xml create mode 100644 chatmodule/src/main/res/drawable/track.xml create mode 100644 chatmodule/src/main/res/drawable/track_rv_slide.xml create mode 100644 chatmodule/src/main/res/drawable/u0.xml create mode 100644 chatmodule/src/main/res/drawable/u00.xml create mode 100644 chatmodule/src/main/res/drawable/u01.xml create mode 100644 chatmodule/src/main/res/drawable/u02.xml create mode 100644 chatmodule/src/main/res/drawable/u03.xml create mode 100644 chatmodule/src/main/res/drawable/u04.xml create mode 100644 chatmodule/src/main/res/drawable/u1.xml create mode 100644 chatmodule/src/main/res/drawable/u2.xml create mode 100644 chatmodule/src/main/res/drawable/u3.xml create mode 100644 chatmodule/src/main/res/drawable/v0.xml create mode 100644 chatmodule/src/main/res/drawable/v00.xml create mode 100644 chatmodule/src/main/res/drawable/v01.xml create mode 100644 chatmodule/src/main/res/drawable/v02.xml create mode 100644 chatmodule/src/main/res/drawable/v03.xml create mode 100644 chatmodule/src/main/res/drawable/v04.xml create mode 100644 chatmodule/src/main/res/drawable/v1.xml create mode 100644 chatmodule/src/main/res/drawable/v2.xml create mode 100644 chatmodule/src/main/res/drawable/v3.xml create mode 100644 chatmodule/src/main/res/drawable/vector_drawable_extended.xml create mode 100644 chatmodule/src/main/res/drawable/video_accept.xml create mode 100644 chatmodule/src/main/res/drawable/video_accept_normal.png create mode 100644 chatmodule/src/main/res/drawable/video_accept_pressed.png create mode 100644 chatmodule/src/main/res/drawable/w0.xml create mode 100644 chatmodule/src/main/res/drawable/w00.xml create mode 100644 chatmodule/src/main/res/drawable/w01.xml create mode 100644 chatmodule/src/main/res/drawable/w02.xml create mode 100644 chatmodule/src/main/res/drawable/w03.xml create mode 100644 chatmodule/src/main/res/drawable/w04.xml create mode 100644 chatmodule/src/main/res/drawable/w1.xml create mode 100644 chatmodule/src/main/res/drawable/w2.xml create mode 100644 chatmodule/src/main/res/drawable/w3.xml create mode 100644 chatmodule/src/main/res/drawable/x0.xml create mode 100644 chatmodule/src/main/res/drawable/x00.xml create mode 100644 chatmodule/src/main/res/drawable/x01.xml create mode 100644 chatmodule/src/main/res/drawable/x02.xml create mode 100644 chatmodule/src/main/res/drawable/x03.xml create mode 100644 chatmodule/src/main/res/drawable/x04.xml create mode 100644 chatmodule/src/main/res/drawable/x1.xml create mode 100644 chatmodule/src/main/res/drawable/x2.xml create mode 100644 chatmodule/src/main/res/drawable/x3.xml create mode 100644 chatmodule/src/main/res/drawable/y0.xml create mode 100644 chatmodule/src/main/res/drawable/y00.xml create mode 100644 chatmodule/src/main/res/drawable/y01.xml create mode 100644 chatmodule/src/main/res/drawable/y02.xml create mode 100644 chatmodule/src/main/res/drawable/y03.xml create mode 100644 chatmodule/src/main/res/drawable/y04.xml create mode 100644 chatmodule/src/main/res/drawable/y1.xml create mode 100644 chatmodule/src/main/res/drawable/y2.xml create mode 100644 chatmodule/src/main/res/drawable/y3.xml create mode 100644 chatmodule/src/main/res/drawable/yhz_selector.xml create mode 100644 chatmodule/src/main/res/drawable/z0.xml create mode 100644 chatmodule/src/main/res/drawable/z00.xml create mode 100644 chatmodule/src/main/res/drawable/z01.xml create mode 100644 chatmodule/src/main/res/drawable/z02.xml create mode 100644 chatmodule/src/main/res/drawable/z03.xml create mode 100644 chatmodule/src/main/res/drawable/z04.xml create mode 100644 chatmodule/src/main/res/drawable/z1.xml create mode 100644 chatmodule/src/main/res/drawable/z2.xml create mode 100644 chatmodule/src/main/res/drawable/z3.xml create mode 100644 chatmodule/src/main/res/layout/activity_meeting_title_info.xml create mode 100644 chatmodule/src/main/res/layout/activity_point_call.xml create mode 100644 chatmodule/src/main/res/layout/activity_spponaor_meeting.xml create mode 100644 chatmodule/src/main/res/layout/activity_watch_all_text.xml create mode 100644 chatmodule/src/main/res/layout/call_float_view.xml create mode 100644 chatmodule/src/main/res/layout/endconf_dialog.xml create mode 100644 chatmodule/src/main/res/layout/float_normal_view.xml create mode 100644 chatmodule/src/main/res/layout/fragment_aux_meeting.xml create mode 100644 chatmodule/src/main/res/layout/fragment_remote.xml create mode 100644 chatmodule/src/main/res/layout/fragment_svc_video.xml create mode 100644 chatmodule/src/main/res/layout/item_conf_keyboard.xml create mode 100644 chatmodule/src/main/res/layout/item_conf_leave_bottom_layout.xml create mode 100644 chatmodule/src/main/res/layout/item_meeting_subtitle.xml create mode 100644 chatmodule/src/main/res/layout/layout_stream_info_item.xml create mode 100644 chatmodule/src/main/res/layout/list_popwindow.xml create mode 100644 chatmodule/src/main/res/layout/meeting_subtitle_layout.xml create mode 100644 chatmodule/src/main/res/layout/minimize.xml create mode 100644 chatmodule/src/main/res/layout/pop_is_chairman.xml create mode 100644 chatmodule/src/main/res/layout/popup_call_video_view.xml create mode 100644 chatmodule/src/main/res/layout/popup_conf_video_view.xml create mode 100644 chatmodule/src/main/res/layout/popup_conf_video_view2.xml create mode 100644 chatmodule/src/main/res/layout/popup_conf_video_view3.xml create mode 100644 chatmodule/src/main/res/layout/popup_conf_video_view4.xml create mode 100644 chatmodule/src/main/res/layout/share_stop.xml create mode 100644 chatmodule/src/main/res/layout/start_call.xml create mode 100644 chatmodule/src/main/res/layout/stream_info.xml create mode 100644 chatmodule/src/main/res/layout/stream_info_isaudio.xml create mode 100644 chatmodule/src/main/res/layout/video_point_footer.xml create mode 100644 chatmodule/src/main/res/layout/video_point_footer_audit_dir.xml create mode 100644 chatmodule/src/main/res/layout/video_toolbar.xml create mode 100644 chatmodule/src/main/res/layout/view_dialog.xml create mode 100644 chatmodule/src/main/res/layout/voice_suspended_window.xml create mode 100644 chatmodule/src/main/res/values/colors.xml create mode 100644 chatmodule/src/main/res/values/dimens.xml create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentEditActivity.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentOverseeActivity.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentOverseeDetailOrReplyActivity.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialDeptActivity.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/IncidentByOverseeAdapter.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/IncidentMineOverseeAdapter.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/GridStatistCountBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/IncidentByOverseeListBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/IncidentMineOverseeListBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/IncidentOverseeDetailBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/SaveIncidentOverseeBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/SaveIncidentReplyBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentByOverseeFragment.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentDeptEarlyWarnFragment.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentDeptTimeOutFragment.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentMineOverseeFragment.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/SmartConsultFragment.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/ComponentSelHolder.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/IncidentOverseeHolder.java create mode 100644 commonmodule/src/main/res/layout/activity_incident_edit.xml create mode 100644 commonmodule/src/main/res/layout/activity_incident_oversee.xml create mode 100644 commonmodule/src/main/res/layout/activity_incident_oversee_detail_or_reply.xml create mode 100644 commonmodule/src/main/res/layout/activity_incident_special_dept.xml create mode 100644 commonmodule/src/main/res/layout/fragment_incident_by_oversee.xml create mode 100644 commonmodule/src/main/res/layout/fragment_incident_dept_early_warn.xml create mode 100644 commonmodule/src/main/res/layout/fragment_incident_dept_time_out.xml create mode 100644 commonmodule/src/main/res/layout/fragment_incident_mine_oversee.xml create mode 100644 commonmodule/src/main/res/layout/fragment_smart_consult.xml create mode 100644 commonmodule/src/main/res/layout/item_component_sel.xml create mode 100644 commonmodule/src/main/res/layout/item_incident_by_oversee.xml create mode 100644 mainmodule/src/main/res/drawable-xhdpi/ic_customer_icon.png diff --git a/app/build.gradle b/app/build.gradle index 5864754..a0890c6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,11 +25,6 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true } - sourceSets { - main { - jniLibs.srcDir 'libs' - } - } buildTypes { release { minifyEnabled false diff --git a/app/src/main/java/com/tengshisoft/citygovernance/BaseMyApplication.java b/app/src/main/java/com/tengshisoft/citygovernance/BaseMyApplication.java index 386c4a5..c4d7f3d 100644 --- a/app/src/main/java/com/tengshisoft/citygovernance/BaseMyApplication.java +++ b/app/src/main/java/com/tengshisoft/citygovernance/BaseMyApplication.java @@ -1,30 +1,39 @@ package com.tengshisoft.citygovernance; -import android.view.Gravity; +import android.os.Build; import com.alibaba.android.arouter.launcher.ARouter; import com.baidu.location.BDLocation; import com.baidu.mapapi.CoordType; import com.baidu.mapapi.SDKInitializer; -import com.github.promeg.pinyinhelper.Pinyin; -import com.hjq.toast.ToastUtils; -import com.scwang.smart.refresh.footer.ClassicsFooter; -import com.scwang.smart.refresh.layout.SmartRefreshLayout; +import com.huawei.ecterminalsdk.base.TsdkLocalAddress; +import com.huawei.ecterminalsdk.models.TsdkManager; import com.tencent.bugly.crashreport.CrashReport; +import com.tengshisoft.chatmodule.beans.ServiceSettingBeanV2; +import com.tengshisoft.chatmodule.hwclud.manager.CallMgrV2; +import com.tengshisoft.chatmodule.hwclud.manager.LoginMangerV2; +import com.tengshisoft.chatmodule.hwclud.manager.MeetingMgrV2; +import com.tengshisoft.chatmodule.hwclud.notification.CallFunc; +import com.tengshisoft.chatmodule.hwclud.notification.ConfFunc; +import com.tengshisoft.chatmodule.hwclud.receiver.LoginReceiver; +import com.tengshisoft.chatmodule.hwclud.serivce.ServiceManger; +import com.tengshisoft.chatmodule.hwclud.utils.Constant; +import com.tengshisoft.chatmodule.hwclud.utils.DeviceManager; +import com.tengshisoft.chatmodule.hwclud.utils.GMUtil; +import com.tengshisoft.chatmodule.hwclud.utils.LogUtil; +import com.tengshisoft.chatmodule.hwclud.utils.UIUtil; import com.tenlionsoft.baselib.app.BaseAppContext; -import com.tenlionsoft.baselib.core.db.AppDatabase; -import com.tenlionsoft.baselib.core.widget.refresh.BezierCircleHeader; +import com.tenlionsoft.baselib.constant.PathConfig; +import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi; +import com.tenlionsoft.baselib.utils.AppUtils; +import com.tenlionsoft.baselib.utils.EncryptedSPTool; +import com.tenlionsoft.baselib.utils.FileUtils; +import com.tenlionsoft.baselib.utils.LogUtils; -import androidx.multidex.MultiDex; -import androidx.multidex.MultiDexApplication; +import java.io.IOException; + +import androidx.annotation.RequiresApi; import cn.leo.magic.screen.MagicScreenAdapter; -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; -import io.reactivex.rxjava3.annotations.NonNull; -import io.reactivex.rxjava3.core.Observable; -import io.reactivex.rxjava3.core.ObservableEmitter; -import io.reactivex.rxjava3.core.ObservableOnSubscribe; -import io.reactivex.rxjava3.functions.Function; -import io.reactivex.rxjava3.schedulers.Schedulers; /** * 作者: adam @@ -41,8 +50,75 @@ public class BaseMyApplication extends BaseAppContext { super.onCreate(); MagicScreenAdapter.initDesignWidthInDp(1024, true); ARouter.init(BaseMyApplication.this); - initBaiduMap();//初始化百度地图 CrashReport.initCrashReport(getApplicationContext()); + initBaiduMap();//初始化百度地图 + if (AppUtils.isSupportCall()) { + //判断是否可以视频通话 + initCertificate(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + initHWClound();//初始化华为融合通信 + } + } + } + + // 初始化国密证书 + private void initCertificate() { + + try { + String[] list_inDir = getAssets().list(inDir); + assert list_inDir != null; + for (String fileName : + list_inDir) { + FileUtils.copyAssetToFiles(inDir, fileName); + } + + String[] list_smDir = getAssets().list(smDir); + assert list_smDir != null; + for (String fileName : + list_smDir) { + FileUtils.copyAssetToFiles(smDir, fileName); + } + + String[] list_root = getAssets().list(root); + assert list_root != null; + for (String fileName : + list_root) { + FileUtils.copyAssetToFiles(root, fileName); + } + + String[] list_smRoot = getAssets().list(smRoot); + assert list_smRoot != null; + for (String fileName : + list_smRoot) { + FileUtils.copyAssetToFiles(smRoot, fileName); + } + } catch (IOException e) { + LogUtils.e("初始化国密证书失败", ""); + e.printStackTrace(); + } + LogUtils.e("初始化国密证书成功", ""); + } + + /** + * 初始化华为融合通信 + */ + @RequiresApi(api = Build.VERSION_CODES.M) + private void initHWClound() { + String appPath = this.getApplicationInfo().dataDir + "/lib"; + ServiceManger.getServiceMgr().startService(this, appPath, 0); + LoginMangerV2.getInstance().regLoginEventNotification(LoginReceiver.getInstance());//注册登录时的各种广播 + CallMgrV2.getInstance().regCallServiceNotification(CallFunc.getInstance());// + MeetingMgrV2.getInstance().regConfServiceNotification(ConfFunc.getInstance()); + int port = BaseUrlApi.HW_CLOUD_PORT; + int transport = 1; + String ipAddr = BaseUrlApi.HW_CLOUD_URL; + ServiceManger.getServiceMgr().networkParam(port + "", ipAddr, transport); + String localIpAddress = DeviceManager.getLocalIpAddress(false); + TsdkLocalAddress localAddress = new TsdkLocalAddress(localIpAddress); +// //设置本地ip前必须先设置sip + TsdkManager.getInstance().setConfigParam(localAddress); + ServiceManger.getServiceMgr().securityParam(ServiceSettingBeanV2.getInstance().getRtpMode(), ServiceSettingBeanV2.getInstance().getBfpTransportMode()); + GMUtil.setSecretCertificate(this, ServiceSettingBeanV2.getInstance().getIsOpenGm()); } /** diff --git a/baselib/build.gradle b/baselib/build.gradle index c04dd4f..a11cb72 100755 --- a/baselib/build.gradle +++ b/baselib/build.gradle @@ -28,10 +28,15 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + sourceSets { + main { + jniLibs.srcDirs = ['libs'] + } + } } dependencies { - implementation fileTree(include: ['*.jar'], dir: 'libs') + api fileTree(include: ['*.jar'], dir: 'libs') //noinspection GradleCompatible implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' @@ -45,8 +50,6 @@ dependencies { //SmartRefreshLayout api "com.scwang.smart:refresh-layout-kernel:$rootProject.ext.gSmartRefreshLayoutVersion" api "com.scwang.smart:refresh-footer-classics:$rootProject.ext.gSmartRefreshLayoutVersion" - //经典加载 - //okhttp3 api "com.squareup.okhttp3:okhttp:$rootProject.ext.gOkHttp3Version" //Gson @@ -75,9 +78,9 @@ dependencies { api 'androidx.recyclerview:recyclerview:1.2.1' //选择器 api "com.nightonke:boommenu:$rootProject.ext.gBoomMenu" - // 基础依赖包,必须要依赖 + // 状态栏 基础依赖包,必须要依赖 api 'com.gyf.immersionbar:immersionbar:3.0.0' - // fragment快速实现(可选) + // 状态栏 fragment快速实现(可选) api 'com.gyf.immersionbar:immersionbar-components:3.0.0' //room api "androidx.room:room-runtime:$rootProject.room_version" @@ -86,7 +89,7 @@ dependencies { api "androidx.room:room-guava:$rootProject.room_version" //base popup window api "io.github.razerdp:BasePopup:$rootProject.popup_version" - // 选择器 + //选择器 api 'io.github.lucksiege:pictureselector:v2.7.3-rc08' api 'me.rosuh:AndroidFilePicker:0.7.0-x' @@ -102,5 +105,9 @@ dependencies { api 'com.google.android:flexbox:1.0.0'//flexbox 布局 //通知提示弹出库 api 'com.tapadoo.android:alerter:6.2.1' + //图表 + api "com.github.PhilJay:MPAndroidChart:${rootProject.ext.mpAndroidChart}" + //SharedPreferences加密 + api 'com.pddstudio:encrypted-preferences:1.3.0' } diff --git a/chatmodule/libs/HME-Audio.jar b/baselib/libs/HME-Audio.jar similarity index 100% rename from chatmodule/libs/HME-Audio.jar rename to baselib/libs/HME-Audio.jar diff --git a/chatmodule/libs/HME-Video.jar b/baselib/libs/HME-Video.jar similarity index 100% rename from chatmodule/libs/HME-Video.jar rename to baselib/libs/HME-Video.jar diff --git a/chatmodule/libs/TsdkService.jar b/baselib/libs/TsdkService.jar similarity index 100% rename from chatmodule/libs/TsdkService.jar rename to baselib/libs/TsdkService.jar diff --git a/chatmodule/libs/TsdkServiceBase.jar b/baselib/libs/TsdkServiceBase.jar similarity index 100% rename from chatmodule/libs/TsdkServiceBase.jar rename to baselib/libs/TsdkServiceBase.jar diff --git a/chatmodule/libs/TupCall.jar b/baselib/libs/TupCall.jar similarity index 100% rename from chatmodule/libs/TupCall.jar rename to baselib/libs/TupCall.jar diff --git a/chatmodule/libs/TupCmptService.jar b/baselib/libs/TupCmptService.jar similarity index 100% rename from chatmodule/libs/TupCmptService.jar rename to baselib/libs/TupCmptService.jar diff --git a/chatmodule/libs/TupConfCtrl.jar b/baselib/libs/TupConfCtrl.jar similarity index 100% rename from chatmodule/libs/TupConfCtrl.jar rename to baselib/libs/TupConfCtrl.jar diff --git a/chatmodule/libs/TupDns.jar b/baselib/libs/TupDns.jar similarity index 100% rename from chatmodule/libs/TupDns.jar rename to baselib/libs/TupDns.jar diff --git a/chatmodule/libs/TupHttpTrans.jar b/baselib/libs/TupHttpTrans.jar similarity index 100% rename from chatmodule/libs/TupHttpTrans.jar rename to baselib/libs/TupHttpTrans.jar diff --git a/chatmodule/libs/TupSocket.jar b/baselib/libs/TupSocket.jar similarity index 100% rename from chatmodule/libs/TupSocket.jar rename to baselib/libs/TupSocket.jar diff --git a/chatmodule/libs/arm64-v8a/libHME-Audio.so b/baselib/libs/arm64-v8a/libHME-Audio.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libHME-Audio.so rename to baselib/libs/arm64-v8a/libHME-Audio.so diff --git a/chatmodule/libs/arm64-v8a/libHME-Video.so b/baselib/libs/arm64-v8a/libHME-Video.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libHME-Video.so rename to baselib/libs/arm64-v8a/libHME-Video.so diff --git a/chatmodule/libs/arm64-v8a/libcrypto_ossl.so b/baselib/libs/arm64-v8a/libcrypto_ossl.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libcrypto_ossl.so rename to baselib/libs/arm64-v8a/libcrypto_ossl.so diff --git a/chatmodule/libs/arm64-v8a/libgmcrypto.so b/baselib/libs/arm64-v8a/libgmcrypto.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libgmcrypto.so rename to baselib/libs/arm64-v8a/libgmcrypto.so diff --git a/chatmodule/libs/arm64-v8a/libgmssl.so b/baselib/libs/arm64-v8a/libgmssl.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libgmssl.so rename to baselib/libs/arm64-v8a/libgmssl.so diff --git a/chatmodule/libs/arm64-v8a/libipsi_crypto.so b/baselib/libs/arm64-v8a/libipsi_crypto.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libipsi_crypto.so rename to baselib/libs/arm64-v8a/libipsi_crypto.so diff --git a/chatmodule/libs/arm64-v8a/libipsi_osal.so b/baselib/libs/arm64-v8a/libipsi_osal.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libipsi_osal.so rename to baselib/libs/arm64-v8a/libipsi_osal.so diff --git a/chatmodule/libs/arm64-v8a/libipsi_pse.so b/baselib/libs/arm64-v8a/libipsi_pse.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libipsi_pse.so rename to baselib/libs/arm64-v8a/libipsi_pse.so diff --git a/chatmodule/libs/arm64-v8a/librtp.so b/baselib/libs/arm64-v8a/librtp.so similarity index 100% rename from chatmodule/libs/arm64-v8a/librtp.so rename to baselib/libs/arm64-v8a/librtp.so diff --git a/chatmodule/libs/arm64-v8a/libsecurec.so b/baselib/libs/arm64-v8a/libsecurec.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libsecurec.so rename to baselib/libs/arm64-v8a/libsecurec.so diff --git a/chatmodule/libs/arm64-v8a/libssl_ossl.so b/baselib/libs/arm64-v8a/libssl_ossl.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libssl_ossl.so rename to baselib/libs/arm64-v8a/libssl_ossl.so diff --git a/chatmodule/libs/arm64-v8a/libsys.so b/baselib/libs/arm64-v8a/libsys.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libsys.so rename to baselib/libs/arm64-v8a/libsys.so diff --git a/chatmodule/libs/arm64-v8a/libtensorflowlite_c.so b/baselib/libs/arm64-v8a/libtensorflowlite_c.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtensorflowlite_c.so rename to baselib/libs/arm64-v8a/libtensorflowlite_c.so diff --git a/chatmodule/libs/arm64-v8a/libtsdk_android.so b/baselib/libs/arm64-v8a/libtsdk_android.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtsdk_android.so rename to baselib/libs/arm64-v8a/libtsdk_android.so diff --git a/chatmodule/libs/arm64-v8a/libtsdk_service.so b/baselib/libs/arm64-v8a/libtsdk_service.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtsdk_service.so rename to baselib/libs/arm64-v8a/libtsdk_service.so diff --git a/chatmodule/libs/arm64-v8a/libtup_call_audio.so b/baselib/libs/arm64-v8a/libtup_call_audio.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_call_audio.so rename to baselib/libs/arm64-v8a/libtup_call_audio.so diff --git a/chatmodule/libs/arm64-v8a/libtup_call_bfcp.so b/baselib/libs/arm64-v8a/libtup_call_bfcp.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_call_bfcp.so rename to baselib/libs/arm64-v8a/libtup_call_bfcp.so diff --git a/chatmodule/libs/arm64-v8a/libtup_call_mediaservice.so b/baselib/libs/arm64-v8a/libtup_call_mediaservice.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_call_mediaservice.so rename to baselib/libs/arm64-v8a/libtup_call_mediaservice.so diff --git a/chatmodule/libs/arm64-v8a/libtup_call_service.so b/baselib/libs/arm64-v8a/libtup_call_service.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_call_service.so rename to baselib/libs/arm64-v8a/libtup_call_service.so diff --git a/chatmodule/libs/arm64-v8a/libtup_call_sip.so b/baselib/libs/arm64-v8a/libtup_call_sip.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_call_sip.so rename to baselib/libs/arm64-v8a/libtup_call_sip.so diff --git a/chatmodule/libs/arm64-v8a/libtup_call_video.so b/baselib/libs/arm64-v8a/libtup_call_video.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_call_video.so rename to baselib/libs/arm64-v8a/libtup_call_video.so diff --git a/chatmodule/libs/arm64-v8a/libtup_cmpt_service.so b/baselib/libs/arm64-v8a/libtup_cmpt_service.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_cmpt_service.so rename to baselib/libs/arm64-v8a/libtup_cmpt_service.so diff --git a/chatmodule/libs/arm64-v8a/libtup_commonlib.so b/baselib/libs/arm64-v8a/libtup_commonlib.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_commonlib.so rename to baselib/libs/arm64-v8a/libtup_commonlib.so diff --git a/chatmodule/libs/arm64-v8a/libtup_confctrl.so b/baselib/libs/arm64-v8a/libtup_confctrl.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_confctrl.so rename to baselib/libs/arm64-v8a/libtup_confctrl.so diff --git a/chatmodule/libs/arm64-v8a/libtup_dns.so b/baselib/libs/arm64-v8a/libtup_dns.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_dns.so rename to baselib/libs/arm64-v8a/libtup_dns.so diff --git a/chatmodule/libs/arm64-v8a/libtup_https_clt.so b/baselib/libs/arm64-v8a/libtup_https_clt.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_https_clt.so rename to baselib/libs/arm64-v8a/libtup_https_clt.so diff --git a/chatmodule/libs/arm64-v8a/libtup_httptrans.so b/baselib/libs/arm64-v8a/libtup_httptrans.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_httptrans.so rename to baselib/libs/arm64-v8a/libtup_httptrans.so diff --git a/chatmodule/libs/arm64-v8a/libtup_ipdetect.so b/baselib/libs/arm64-v8a/libtup_ipdetect.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_ipdetect.so rename to baselib/libs/arm64-v8a/libtup_ipdetect.so diff --git a/chatmodule/libs/arm64-v8a/libtup_ldapfrontstage.so b/baselib/libs/arm64-v8a/libtup_ldapfrontstage.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_ldapfrontstage.so rename to baselib/libs/arm64-v8a/libtup_ldapfrontstage.so diff --git a/chatmodule/libs/arm64-v8a/libtup_login.so b/baselib/libs/arm64-v8a/libtup_login.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_login.so rename to baselib/libs/arm64-v8a/libtup_login.so diff --git a/chatmodule/libs/arm64-v8a/libtup_logone.so b/baselib/libs/arm64-v8a/libtup_logone.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_logone.so rename to baselib/libs/arm64-v8a/libtup_logone.so diff --git a/chatmodule/libs/arm64-v8a/libtup_minidopra.so b/baselib/libs/arm64-v8a/libtup_minidopra.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_minidopra.so rename to baselib/libs/arm64-v8a/libtup_minidopra.so diff --git a/chatmodule/libs/arm64-v8a/libtup_msg.so b/baselib/libs/arm64-v8a/libtup_msg.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_msg.so rename to baselib/libs/arm64-v8a/libtup_msg.so diff --git a/chatmodule/libs/arm64-v8a/libtup_os_adapter.so b/baselib/libs/arm64-v8a/libtup_os_adapter.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_os_adapter.so rename to baselib/libs/arm64-v8a/libtup_os_adapter.so diff --git a/chatmodule/libs/arm64-v8a/libtup_publiclib.so b/baselib/libs/arm64-v8a/libtup_publiclib.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_publiclib.so rename to baselib/libs/arm64-v8a/libtup_publiclib.so diff --git a/chatmodule/libs/arm64-v8a/libtup_socket.so b/baselib/libs/arm64-v8a/libtup_socket.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_socket.so rename to baselib/libs/arm64-v8a/libtup_socket.so diff --git a/chatmodule/libs/arm64-v8a/libtup_sslex.so b/baselib/libs/arm64-v8a/libtup_sslex.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_sslex.so rename to baselib/libs/arm64-v8a/libtup_sslex.so diff --git a/chatmodule/libs/arm64-v8a/libtup_sslex_gm.so b/baselib/libs/arm64-v8a/libtup_sslex_gm.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_sslex_gm.so rename to baselib/libs/arm64-v8a/libtup_sslex_gm.so diff --git a/chatmodule/libs/arm64-v8a/libtup_vcomgmssl.so b/baselib/libs/arm64-v8a/libtup_vcomgmssl.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_vcomgmssl.so rename to baselib/libs/arm64-v8a/libtup_vcomgmssl.so diff --git a/chatmodule/libs/arm64-v8a/libtup_vcomopenssl.so b/baselib/libs/arm64-v8a/libtup_vcomopenssl.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_vcomopenssl.so rename to baselib/libs/arm64-v8a/libtup_vcomopenssl.so diff --git a/chatmodule/libs/arm64-v8a/libtup_xml.so b/baselib/libs/arm64-v8a/libtup_xml.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_xml.so rename to baselib/libs/arm64-v8a/libtup_xml.so diff --git a/chatmodule/libs/arm64-v8a/libtup_zip.so b/baselib/libs/arm64-v8a/libtup_zip.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libtup_zip.so rename to baselib/libs/arm64-v8a/libtup_zip.so diff --git a/chatmodule/libs/arm64-v8a/libwebsockets.so b/baselib/libs/arm64-v8a/libwebsockets.so similarity index 100% rename from chatmodule/libs/arm64-v8a/libwebsockets.so rename to baselib/libs/arm64-v8a/libwebsockets.so diff --git a/baselib/src/main/assets/CameraBlack.BMP b/baselib/src/main/assets/CameraBlack.BMP new file mode 100644 index 0000000000000000000000000000000000000000..ddbd1e0db8b06fb2fdb3ef797b6d6fcf6038b8da GIT binary patch literal 2764856 zcmeI*$!;Xa5e8sdfKR^pR`K6IfBE3AZ*Two>Fw<=Z~yq^v$vn(`+xu2+pquq`i1!4zr6?$ zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72;>l0 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 Y04pe!KyDUcp8x;=07*qoM6N<$f-#j_ssI20 literal 0 HcmV?d00001 diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java b/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java index c8ee2a9..684da37 100644 --- a/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java @@ -1,12 +1,18 @@ package com.tenlionsoft.baselib.app; import android.content.Context; +import android.content.Intent; +import android.os.PowerManager; import android.view.Gravity; import com.hjq.toast.ToastUtils; import com.scwang.smart.refresh.footer.ClassicsFooter; import com.scwang.smart.refresh.layout.SmartRefreshLayout; +import com.tenlionsoft.baselib.constant.BroadcastConstant; +import com.tenlionsoft.baselib.core.beans.Member; +import com.tenlionsoft.baselib.core.listener.ScreenListener; import com.tenlionsoft.baselib.core.widget.refresh.BezierCircleHeader; +import com.tenlionsoft.baselib.utils.LogUtils; import androidx.multidex.MultiDex; import androidx.multidex.MultiDexApplication; @@ -23,6 +29,18 @@ public class BaseAppContext extends MultiDexApplication { private String username = ""; private String roomId = ""; private String otherUserId = ""; + //非国密证书路径 + public static String inDir = "inCertificate"; + //国密证书路径 + public static String smDir = "smCertificate"; + //根证 + public static String root = "root"; + private boolean isScreenOn; + public static String smRoot = "smRoot"; + /** + * 锁屏监听器 + */ + private ScreenListener screenListener; //static 代码段可以防止内存泄露 static { @@ -32,14 +50,57 @@ public class BaseAppContext extends MultiDexApplication { SmartRefreshLayout.setDefaultRefreshFooterCreator((context, layout) -> new ClassicsFooter(context)); } + @Override + public void onCreate() { + super.onCreate(); + app = this; + ToastUtils.init(this); + ToastUtils.setGravity(Gravity.BOTTOM, 0, 100); + PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); + isScreenOn = powerManager.isInteractive(); + screenTurningOff(); + } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); - app = this; - ToastUtils.init(this); - ToastUtils.setGravity(Gravity.BOTTOM, 0, 100); + + } + + private void screenTurningOff() { + screenListener = new ScreenListener(this); + screenListener.begin(new ScreenListener.ScreenStateListener() { + @Override + public void onScreenOn() { + // 开屏 + isScreenOn = true; + LogUtils.d("screenTurningOff()", "The screen turned on"); + } + + @Override + public void onScreenOff() { + // 锁屏 + isScreenOn = false; + sendBroadcast(new Intent(BroadcastConstant.ACTION_EVT_LOCK_SCREEN_NOTIFICATION)); + } + + @Override + public void onUserPresent() { + // 解锁 + isScreenOn = true; + LogUtils.d("screenTurningOff()", "Unlocked"); + } + }); + } + + /** + * 获取手机是否锁屏状态 + * + * @return true锁屏,false非锁屏 + */ + public boolean isScreenOn() { + return isScreenOn; } public static BaseAppContext getInstance() { @@ -69,4 +130,19 @@ public class BaseAppContext extends MultiDexApplication { public void setOtherUserId(String otherUserId) { this.otherUserId = otherUserId; } + + + /** + * 临时缓存的member,刷新选看状态用 + */ + private Member member; + + public Member getMember() { + return member; + } + + public void setMember(Member member) { + this.member = member; + } + } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/BroadcastConstant.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/BroadcastConstant.java new file mode 100644 index 0000000..14ee1f1 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/BroadcastConstant.java @@ -0,0 +1,293 @@ +package com.tenlionsoft.baselib.constant; + +/** + * @date : 2021/5/27 + * @author : isoftstone + * @Description : 广播常量类 + */ +public class BroadcastConstant { + public static final String ACTION_CALL_MEDIA_CONNECTED = "com.isoftstone.cloundlink.call.mediaconnected"; + public static final String ACTION_CALL_END = "com.isoftstone.cloundlink.call.end"; + public static final String ACTION_CALL_END_SERVICE = "com.isoftstone.cloundlink.call.end.service"; + public static final String ACTION_CALL_END_FAILED = "com.isoftstone.cloundlink.call.end.failed"; + public static final String ACTION_ADD_LOCAL_VIEW = "com.isoftstone.cloundlink.call.addlocalview"; + public static final String ACTION_DEL_LOCAL_VIEW = "com.isoftstone.cloundlink.call.dellocalview"; + public static final String ACTION_BOOK_CONF_SUCCESS = "com.isoftstone.cloundlink.conf.bookconfresult"; + public static final String ACTION_CREATE_SELF_CONF_SUCCESS = "com.isoftstone.cloundlink.conf.createselfconf"; + public static final String ACTION_GET_VMR_LIST_RESULT = "com.isoftstone.cloundlink.conf.getvmrlistresult"; + public static final String ACTION_GET_VMR_LIST_FAIL = "com.isoftstone.cloundlink.conf.getvmrlistresultfail"; + public static final String ACTION_GET_CONF_LIST_RESULT = "com.isoftstone.cloundlink.conf.getconflistresult"; + public static final String ACTION_GET_CONF_DETAIL_RESULT = "com.isoftstone.cloundlink.conf.getconfdetailresult"; + public static final String ACTION_GET_CONF_SUBSCRIBE_RESULT = "com.isoftstone.cloundlink.conf.getconfsubscriberesult"; + public static final String ACTION_ADD_SELF_RESULT = "com.isoftstone.cloundlink.conf.addselfresult"; + public static final String ACTION_ADD_ATTENDEE_RESULT = "com.isoftstone.cloundlink.conf.addattendeeresult"; + public static final String ACTION_DEL_ATTENDEE_RESULT = "com.isoftstone.cloundlink.conf.delattendeeresult"; + public static final String ACTION_GET_CONF_CONNECTED = "com.isoftstone.cloundlink.conf.getconfconnected"; + public static final String ACTION_GET_CONF_END = "com.isoftstone.cloundlink.conf.getconfend"; + public static final String ACTION_CONF_STATE_UPDATE = "com.isoftstone.cloundlink.conf.confstateupdate"; + public static final String ACTION_CONF_BASE_INFO = "com.isoftstone.cloundlink.conf.confbaseinfo"; + + public static final String ACTION_VIDEO_TO_AUDIO = "com.isoftstone.cloundlink.call.videoswitchaudio"; + public static final String ACTION_CALL_UPGRADE_ACTION = "com.isoftstone.cloundlink.call.upgrade"; + public static final String ACTION_REQUEST_CONF_RIGHT_RESULT = + "com.isoftstone.cloundlink.conf.requestconfrightresult"; + public static final String ACTION_CONF_CALL_ANSWERED = "com.isoftstone.cloundlink.conf.confcallanswered"; + public static final String ACTION_LOGIN_SUCCESS = "com.isoftstone.cloundlink.login.success"; + public static final String ACTION_REFRESH_MEETINGS = "com.isoftstone.cloundlink.login.refreshmeetings"; + public static final String ACTION_AUTH_FAILED = "com.isoftstone.cloundlink.login.authfailed"; + public static final String ACTION_LOGIN_FAILED = "com.isoftstone.cloundlink.login.failed"; + public static final String ACTION_FIRST_CHANGE_PWD = "com.isoftstone.cloundlink.login.firstchangepwd"; + public static final String ACTION_CHANGE_PWD = "com.isoftstone.cloundlink.login.changepwd"; + public static final String ACTION_LOGOUT = "com.isoftstone.cloundlink.login.logout"; + public static final String ACTION_MUTE_ATTENDEE_RESULT = "com.isoftstone.cloundlink.conf.muteattendeeresult"; + public static final String ACTION_UN_MUTE_ATTENDEE_RESULT = "com.isoftstone.cloundlink.conf.unmuteattendeeresult"; + public static final String ACTION_MUTE_CONF_RESULT = "com.isoftstone.cloundlink.conf.muteconfresult"; + public static final String ACTION_UN_MUTE_CONF_RESULT = "com.isoftstone.cloundlink.conf.unmuteconfresult"; + public static final String ACTION_LOCK_CONF_RESULT = "com.isoftstone.cloundlink.conf.lockconfresult"; + public static final String ACTION_UN_LOCK_CONF_RESULT = "com.isoftstone.cloundlink.conf.unlockconfresult"; + public static final String ACTION_START_RECORD_RESULT = "com.isoftstone.cloundlink.conf.startrecordresult"; + public static final String ACTION_STOP_RECORD_RESULT = "com.isoftstone.cloundlink.conf.stoprecordresult"; + public static final String ACTION_SESSION_MODIFIED_RESULT = "com.isoftstone.cloundlink.conf.sessionmodifiedresult"; + public static final String ACTION_REQUEST_CHAIRMAN_RESULT = "com.isoftstone.cloundlink.conf.requestchairmanresult"; + public static final String ACTION_RELEASE_CHAIRMAN_RESULT = "com.isoftstone.cloundlink.conf.releasechairmanresult"; + public static final String ACTION_HAND_UP_RESULT = "com.isoftstone.cloundlink.conf.handupresult"; + public static final String ACTION_CANCEL_HAND_UP_RESULT = "com.isoftstone.cloundlink.conf.cancelhandupresult"; + public static final String ACTION_WILL_TIMEOUT = "com.isoftstone.cloundlink.conf.willtimeout"; + public static final String ACTION_POSTPONE_CONF_RESULT = "com.isoftstone.cloundlink.conf.postponeconfresult"; + public static final String ACTION_SPEAKER_LIST_IND = "com.isoftstone.cloundlink.conf.speakerlistind"; + public static final String ACTION_REQUEST_PRESENTER_RESULT = "com.isoftstone.cloundlink.conf.requestpesenterresult"; + public static final String ACTION_OPEN_VIDEO = "com.isoftstone.cloundlink.conf.openvideo"; + public static final String ACTION_REFUSE_OPEN_VIDEO = "com.isoftstone.cloundlink.RefuseOpenVideo"; + public static final String ACTION_BAND_CHANGED_WATCH = "com.isoftstone.cloundlink.bandChangedWatch"; + public static final String ACTION_REFRESH_SVC_VIEW = "com.isoftstone.cloundlink.conf.refreshsvcview"; + public static final String ACTION_SET_CONF_MODE_RESULT = "com.isoftstone.cloundlink.conf.setconfmoderesult"; + public static final String ACTION_HOLD_CALL_RESULT = "com.isoftstone.cloundlink.conf.holdcallresult"; + public static final String ACTION_CONF_CALL_CONNECTED = "com.isoftstone.cloundlink.conf.confcallconnected"; + public static final String ACTION_CALL_CONNECTED = "com.isoftstone.cloundlink.call.call_connected"; + public static final String ACTION_DIVERT_RESULT = "com.isoftstone.cloundlink.conf.divertresult"; + public static final String ACTION_BLD_TRANSFER_RESULT = "com.isoftstone.cloundlink.conf.bldtransferresult"; + public static final String ACTION_UPGRADE_CONF_RESULT = "com.isoftstone.cloundlink.conf.upgradeconfresult"; + public static final String ACTION_WATCH_ATTENDEE_CONF_RESULT = "com.isoftstone.cloundlink.conf.watchattendeeconfresult"; + public static final String ACTION_BROADCAST_ATTENDEE_CONF_RESULT = "com.isoftstone.cloundlink.conf.broadcastattendeeconfresult"; + public static final String ACTION_CANCEL_BROADCAST_CONF_RESULT = "com.isoftstone.cloundlink.conf.cancelbroadcastconfresult"; + public static final String ACTION_ACCESS_RESERVED_CONF = "com.isoftstone.cloundlink.conf.accessreservedconf"; + public static final String ACTION_GET_TEMP_USER_RESULT = "com.isoftstone.cloundlink.conf.gettempuserresult"; + public static final String ACTION_CALL_TRANSFER_TO_CONFERENCE = "com.isoftstone.cloundlink.conf.calltransfertoconference"; + + /** + * DataConf + */ + public static final String ACTION_CONF_INFO_PARAM = "com.isoftstone.cloundlink.conf.dataconfparam"; + public static final String ACTION_GET_DATA_CONF_PARAM_RESULT = "com.isoftstone.cloundlink.conf.getdataconfparamresult"; + public static final String ACTION_UPDATE_HOST_INFO = "com.isoftstone.cloundlink.conf.updatehostinfo"; + public static final String ACTION_DATA_CONF_USER_LEAVE = "com.isoftstone.cloundlink.conf.dataconfuserleave"; + public static final String ACTION_CONF_MSG_ON_CONFERENCE_TERMINATE = "com.isoftstone.cloundlink.conf.confmsgonconferenceterminate"; + public static final String ACTION_CONF_MSG_ON_CONFERENCE_LEAVE = "com.isoftstone.cloundlink.conf.confmsgonconferenceleave"; + public static final String ACTION_COMPT_MSG_VIDEO_ON_NOTIFY = "com.isoftstone.cloundlink.conf.comptmsgvideoonnotify"; + public static final String ACTION_DATA_CONFERENCE_JOIN_RESULT = "com.isoftstone.cloundlink.conf.dataconferencejoinresult"; + public static final String ACTION_DATA_CONFERENCE_USER_JOIN = "com.isoftstone.cloundlink.conf.dataconferenceuserjoin"; + public static final String ACTION_DATA_CONFERENCE_PRESENTER_CHANGE_IND = "com.isoftstone.cloundlink.conf.dataconferencepresenterchangeind"; + public static final String ACTION_DATA_CONFERENCE_HOST_CHANGE_IND = "com.isoftstone.cloundlink.conf.dataconferencehostchangeind"; + public static final String ACTION_DATA_CONFERENCE_GET_DEVICE_INFO_RESULT = "com.isoftstone.cloundlink.conf.dataconferencegetdeviceinforesult"; + public static final String ACTION_DATA_CONFERENCE_EXTEND_DEVICE_INFO = "com.isoftstone.cloundlink.conf.dataconferenceextenddeviceinfo"; + public static final String ACTION_DATA_CONFERENCE_CAMERA_STATUS_UPDATE = "com.isoftstone.cloundlink.conf.dataconferencecamerastatusupdate"; + public static final String ACTION_DATE_CONFERENCE_START_SHARE_STATUS = "com.isoftstone.cloundlink.conf.dateconferencestartsharestatus"; + public static final String ACTION_DATE_CONFERENCE_CHAT_MSG = "com.isoftstone.cloundlink.conf.dateconferencechatmsg"; + + /** + * IM + */ + public static final String ACTION_LOGIN_IM = "com.isoftstone.cloundlink.im.imlogin"; + public static final String ACTION_RECEIVE_SESSION_CHANGE = "com.isoftstone.cloundlink.im.messagereceive"; + public static final String ACTION_IM_LOGIN_SUCCESS = "com.isoftstone.cloundlink.im.loginsuccess"; + public static final String ACTION_IM_LOGIN_ERROR = "com.isoftstone.cloundlink.im.loginerror"; + public static final String ACTION_IM_QUERY_HISTORY = "com.isoftstone.cloundlink.im.queryhistory"; + public static final String ACTION_IM_DELETE_CONTACT_RESULT = "com.isoftstone.cloundlink.im.deletecontactresult"; + public static final String ACTION_IM_SEARCH_CONTACT_RESULT = "com.isoftstone.cloundlink.im.searchcontactresult"; + public static final String ACTION_IM_ADD_CONTACT_RESULT = "com.isoftstone.cloundlink.im.addcontactresult"; + public static final String ACTION_IM_FRIEND_STATUS_CHANGE = "com.isoftstone.cloundlink.im.friendstatuschange"; + public static final String ACTION_DOWNLOAD_PROCESS = "com.isoftstone.cloundlink.im.downloadprocess"; + public static final String ACTION_DOWNLOAD_FINISH = "com.isoftstone.cloundlink.im.downloadfinish"; + public static final String ACTION_SEND_MESSAGE_SUCCESS = "com.isoftstone.cloundlink.im.sendmessagesuccess"; + public static final String ACTION_SEND_MESSAGE_FAIL = "com.isoftstone.cloundlink.im.sendmessagefail"; + public static final String ACTION_QUERY_GROUP_MEMBER = "com.isoftstone.cloundlink.im.querygroupmember"; + public static final String ACTION_REFRESH_GROUP_MEMBER = "com.isoftstone.cloundlink.im.refreshgroupmember"; + public static final String ACTION_MODIFY_GROUP_MEMBER = "com.isoftstone.cloundlink.im.modifygroupmember"; + public static final String ACTION_CREATE_GROUP_RESULT = "com.isoftstone.cloundlink.im.creategroupresult"; + public static final String ACTION_SET_STATUS = "com.isoftstone.cloundlink.im.modifygroupmember"; + public static final String ACTION_IM_SET_HEAD_PHOTO = "com.isoftstone.cloundlink.im.setheadphoto"; + public static final String ACTION_REFRESH_TEAM_MEMBER = "com.isoftstone.cloundlink.im.refreshteammember"; + + public static final String ACTION_IM_USER_INFO_CHANGE = "com.isoftstone.cloundlink.im.userinfochange"; + public static final String ACTION_IM_USER_INFO_CHANGE_FAILED = "com.isoftstone.cloundlink.im.userinfochangefailed"; + public static final String ACTION_IM_CHAT_GROUP_ADD = "com.isoftstone.cloundlink.im.chatgroupadd"; + public static final String ACTION_IM_CHAT_GROUP_DISMISS = "com.isoftstone.cloundlink.im.chatgroupupdismiss"; + public static final String ACTION_IM_CHAT_GROUP_UPDATE = "com.isoftstone.cloundlink.im.chatgroupupdate"; + public static final String ACTION_IM_CHAT_GROUP_ADD_MEMBER = "com.isoftstone.cloundlink.im.chatgroupaddmember"; + public static final String ACTION_IM_CHAT_GROUP_DEL_MEMBER = "com.isoftstone.cloundlink.im.chatgroupdelmember"; + public static final String ACTION_IM_CHAT_GROUP_LEAVE_RESULT = "com.isoftstone.cloundlink.im.chatgroupleaveresult"; + + /** + * Enterprise address book + */ + public static final String ACTION_ENTERPRISE_GET_SELF_RESULT = "com.isoftstone.cloundlink.eaddr.getselfresult"; + public static final String ACTION_ENTERPRISE_GET_CONTACT_RESULT = "com.isoftstone.cloundlink.eaddr.getcontactresult"; + public static final String ACTION_ENTERPRISE_GET_CONTACT_NULL = "com.isoftstone.cloundlink.eaddr.getcontactnull"; + public static final String ACTION_ENTERPRISE_GET_CONTACT_FAILED = "com.isoftstone.cloundlink.eaddr.getcontactfailed"; + public static final String ACTION_ENTERPRISE_GET_SELF_PHOTO_RESULT = "com.isoftstone.cloundlink.eaddr.getselfphotoresult"; + public static final String ACTION_ENTERPRISE_GET_HEAD_PHOTO_FAILED = "com.isoftstone.cloundlink.eaddr.getheadphotofailed"; + public static final String ACTION_ENTERPRISE_GET_HEAD_SYS_PHOTO = "com.isoftstone.cloundlink.eaddr.getheadsysphoto"; + public static final String ACTION_ENTERPRISE_GET_HEAD_DEF_PHOTO = "com.isoftstone.cloundlink.eaddr.getheaddefphoto"; + public static final String ACTION_ENTERPRISE_GET_DEPARTMENT_RESULT = "com.isoftstone.cloundlink.eaddr.getdepartmentresult"; + public static final String ACTION_ENTERPRISE_GET_DEPARTMENT_NULL = "com.isoftstone.cloundlink.eaddr.getdepartmentnull"; + public static final String ACTION_ENTERPRISE_GET_DEPARTMENT_FAILED = "com.isoftstone.cloundlink.eaddr.getdepartmentfailed"; + + public static final String ACTION_DATE_CONFERENCE_AUX_DATA_STATE = "com.isoftstone.cloundlink.conf.dateconferenceauxdatastate"; + public static final String ACTION_CONF_AUX_DATA_SEND = "com.isoftstone.cloundlink.conf.auxdatasend"; + public static final String ACTION_CONF_AUX_DATA_FAILED = "com.isoftstone.cloundlink.conf.auxdatafailed"; + + /** + * conference to call + */ + public static final String ACTION_CONF_INCOMING_TO_CALL_INCOMING = "com.isoftstone.cloundlink.conf.conftocall"; + public static final String ACTION_MINIMIZE_SERVICE_VOICE_TO_VIDEO = "com.isoftstone.cloundlink.minimize_Service_voice_to_video"; + public static final String ACTION_MINIMIZE_SERVICE_VIDEO_TO_VOICE = "com.isoftstone.cloundlink.minimize_service_video_to_voice"; + public static final String ACTION_MINIMIZE_SERVICE_OPEN_VIDEO = "com.isoftstone.cloundlink.minimize_service_open_video"; + public static final String ACTION_BOOK_CONF_FAILED = "com.isoftstone.cloundlink.conf.bookconffail"; + public static final String ACTION_CONF_CALL_FAILED = "com.isoftstone.cloundlink.conf.conf_call_failed"; + public static final String ACTION_GET_CONF_LIST_FAILED = "com.isoftstone.cloundlink.conf.get_conf_list_failed"; + public static final String ACTION_GET_CONF_LIST_NULL = "com.isoftstone.cloundlink.conf.get_conf_list_null"; + public static final String ACTION_JOIN_MEETING_OVERTIME = "com.huawei.join_meeting_overtime"; + + public static final String ACTION_CALL_GOING = "com.isoftstone.cloundlink.call.call_going"; + public static final String ACTION_CALL_COMING = "com.isoftstone.cloundlink.call.call_coming"; + public static final String ACTION_JOIN_ACCESS_VOICE_CONF_SUCCESS = "com.isoftstone.cloundlink.conf.join_access_voice_conf_success"; + public static final String ACTION_JOIN_ACCESS_VIDEO_CONF_SUCCESS = "com.isoftstone.cloundlink.conf.join_access_video_conf_success"; + + public static final String ACTION_CONF_AUDIT_DIR = "com.isoftstone.cloundlink.call.confauditdir"; + public static final String ACTION_HWCLOUDLINK_LOGOUT = "com.isoftstone.cloundlink.call.hwcloudlink.logout"; + public static final String ACTION_HWCLOUDLINK_WATCH_ATTENDEE = "com.isoftstone.cloundlink.call.hwcloudlink.watchattendee"; + public static final String ACTION_SCCHANGEREFRESH = "com.isoftstone.cloundlink.scchangerefresh"; + public static final String ACTION_NET_WORK_IS_CONNECT = "com.isoftstone.cloundlink.networkstate"; + public static final String ACTION_CLOSE_ACTIVITY = "com.isoftstone.cloundlink.closeactivity"; + public static final String ACTION_LOG_UPDATE = "com.isoftstone.cloundlink.loguploading"; + public static final String ACTION_NO_STREAM_DURATION = "com.isoftstone.cloundlink.nostreamduration"; + public static final String ACTION_NO_DURATION = "com.isoftstone.cloundlink.noduration"; + public static final String ACTION_JOIN_CONF_SUCESSS = "com.isoftstone.cloundlink.joinconfsuccess"; + public static final String ACTION_JOIN_CONF_SUCCESS_FINISH_SPONSOR = "com.isoftstone.cloundlink.joinconfsuccess__FINISH_SPONSOR"; + + public static final String ACTION_CALL_DEVICES_STATUS_CHANGE = "com.isoftstone.cloundlink.call.devices.status.change"; + public static final String ACTION_CALL_ROUTE_CHANGE = "com.isoftstone.cloundlink.call.route.change"; + public static final String ACTION_MUTESUCCESS_AND_UPDATEUI = "com.isoftstone.cloundlink.mutesuccessandupdateui"; + + public static final String ACTION_CHECKINRESULT = "com.isoftstone.cloundlink.checkinresult"; + + public static final String ACTION_BACK_TO_DESK = "com.isoftstone.cloundlink.backtodesk"; + public static final String ACTION_BACK_TO_APP = "com.isoftstone.cloundlink.backtoapp"; + public static final String ACTION_CHANGE_PWD_CLOSE = "com.isoftstone.cloundlink.changepwdclose"; + public static final String ACTION_START_BEFORE_SERVICE = "com.isoftstone.cloundlink.start_before_service"; + public static final String ACTION_STOP_BEFORE_SERVICE = "com.isoftstone.cloundlink.stop_before_service"; + + /** + * 接收到 服务端 网络状态 + * 0-5 0:最差 5:最好 + */ + public static final String ACTION_UPDATE_SERVER_NET_LEVEL = "com.isoftstone.cloundlink.UPDATE_SERVER_NET_LEVEL"; + /** + * 最小化停止共享 + */ + public static final String ACTION_AUX_STOP = "com.isoftstone.cloundlink.action_aux_stop"; + + public static final String ACTION_GET_USER_INFO_RESULT = "com.isoftstone.cloundlink.GetUserInfoResult"; + + public static final String ACTION_CONF_UPDATE_VMR_SUCCEED = "com.isoftstone.cloundlink.conf.updateVmrSucceed"; + + /** + * sim卡来电 + */ + public static final String ACTION_CALL_STATE_RINGING = "com.isoftstone.cloundlink.call_state_ringing"; + + /** + * 接听sim卡来电 + */ + public static final String ACTION_CALL_STATE_OFFHOOK = "com.isoftstone.cloundlink.call_state_offhook"; + + /** + * 挂断sim卡来电 + */ + public static final String ACTION_CALL_STATE_IDLE = "com.isoftstone.cloundlink.call_state_idle"; + public static final String ACTION_GET_SUBJECT_SUCCEED = "com.isoftstone.cloundlink.meeting_get_subject"; + + public static final String ACTION_HAS_HANDUP_MEMBER = "com.isoftstone.cloundlink.has_handup_member"; + + public static final String ACTION_CHANGE_SC = "com.isoftstone.cloundlink.change_sc"; + public static final String ACTION_SC = "com.isoftstone.cloundlink.sc"; + public static final String ACTION_AUX_FAILED = "com.isoftstone.cloundlink.aux_failed"; + public static final String ACTION_FLOAT_VISIBILITY = "com.isoftstone.cloundlink.float_visibility"; + public static final String ACTION_NEED_UPDATE_MUTE_STATE = "com.isoftstone.cloundlink.need_update_mute_state"; + /** + * 关闭辅流 + */ + public static final String ACTION_EVT_VIDEO_STOP = "com.isoftstone.cloundlink.evt_video_switch_notify"; + /** + * 会议锁定 + */ + public static final String ACTION_EVT_MEETING_LOCK = "com.isoftstone.cloundlink.evt_meeting_lock"; + + /** + * 入会会议密码验证 + */ + public static final String ACTION_VERIFY_CONF_PWD = "com.isoftstone.cloundlink.verify_conf_pwd"; + /** + * 入会会议密码查询 + */ + public static final String ACTION_QUERY_CONF_PWD = "com.isoftstone.cloundlink.query_conf_pwd"; + /** + * 会议字幕开关 + */ + public static final String ACTION_MEETING_SUBTITLE_SWITCH = "com.isoftstone.cloundlink.evt_meeting_subtitle_switch"; + /** + * 会议字幕列表 + */ + public static final String ACTION_EVT_MEETING_SUBTITLE_INFO = "com.isoftstone.cloundlink.evt_meeting_subtitle_info"; + /** + * 入会后会议字幕是否开启 + */ + public static final String ACTION_EVT_MEETING_SUBTITLE_ENABLE = "com.isoftstone.cloundlink.evt_meeting_subtitle_enable"; + /** + * 会控字幕开关状态 + */ + public static final String ACTION_EVT_MEETING_SUBTITLE_STATUS = "com.isoftstone.cloundlink.evt_meeting_subtitle_status"; + + /** + * 手机锁屏通知 + */ + public static final String ACTION_EVT_LOCK_SCREEN_NOTIFICATION = "com.isoftstone.cloundlink.evt_lock_screen_notification"; + + /** + * 取消会议通知 + */ + public static final String ACTION_REFRESH_MEETINGS_LIST = "com.isoftstone.cloundlink.refresh_meetings_list"; + + /** + * 会控通知 + */ + public static final String ACTION_CONF_CTRL_OPERATION_RESULT = "com.isoftstone.cloundlink.conf.ctrlOperation"; + + /** + * 与会者列表被动刷新的时候,SVC大画面 选看/点名/广播 所展示内容 + */ + public static final String ACTION_SPONSOR_MEETING_REFLUSHED = "sponsor_meeting_reflushed"; + + /** + * 广播取消 + */ + public static final String ACTION_SPONSOR_MEETING_BROAD_MEMBER_CANCEL = "sponsor_meeting_broad_member_cancel"; + + /** + * 会话类型变更刷新选看 + */ + public static final String ACTION_SESSION_MODIFIED_REFRESH = "session_modified_refresh"; + + public static final String ACTION_CONF_OPTION_SUCCESS = "com.isoftstone.cloundlink.conf.option.successs"; +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/ConfConstant.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/ConfConstant.java new file mode 100644 index 0000000..ed089e1 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/ConfConstant.java @@ -0,0 +1,224 @@ +package com.tenlionsoft.baselib.constant; + +/** + * This class is about conference module constants, unified management Meeting constants + * 会议模块常量类,统一管理会议常量 + */ +public class ConfConstant { + + public static final int PAGE_SIZE = 8; + + /** + * Book conference status. + */ + public enum BookConfStatus { + IDLE(), + INSTANT_BOOKING(), + RESERVED_BOOKING(), + } + + /** + * Conference convening status. + */ + public enum ConfConveneStatus { + UNKNOWN(), + SCHEDULE(), + CREATING(), + GOING(), + DESTROYED() + } + + /** + * participant status + */ + public enum ParticipantStatus { + IN_CONF(), + CALLING(), + JOINING(), + LEAVED(), + NO_EXIST(), + BUSY(), + NO_ANSWER(), + REJECT(), + CALL_FAILED(), + UNKNOWN() + } + + /** + * Meeting Message Distribution constants + */ + public enum CONF_EVENT { + BOOK_CONF_SUCCESS(), //预约会议成功 + BOOK_CONF_FAILED(), //预约会议失败 + + QUERY_CONF_LIST_SUCCESS(), //获取会议列表成功 + QUERY_CONF_LIST_NULL(), // 获取会议列表为空 + QUERY_CONF_LIST_FAILED(), //获取会议列表失败 + + GET_VMR_LIST_SUCCESS(), // 请求vmr列表成功 + GET_VMR_LIST_FAILED(), // 请求vmr列表失败 + + QUERY_CONF_DETAIL_SUCCESS(), //获取会议详情成功 + QUERY_CONF_DETAIL_FAILED(), //获取会议详情失败 + + JOIN_VOICE_CONF_SUCCESS(), + JOIN_VIDEO_CONF_SUCCESS(), + JOIN_CONF_FAILED(), + //JOIN_ACCESS_VOICE_CONF_SUCCESS(), + //JOIN_ACCESS_VIDEO_CONF_SUCCESS(), + + REQUEST_RIGHT_FAILED(), + + ADD_YOURSELF_FAILED(), + ADD_ATTENDEE_RESULT(), + DEL_ATTENDEE_RESULT(), + + MUTE_ATTENDEE_RESULT(), + UN_MUTE_ATTENDEE_RESULT(), + + MUTE_CONF_RESULT(), + UN_MUTE_CONF_RESULT(), + + LOCK_CONF_RESULT(), + UN_LOCK_CONF_RESULT(), + + START_RECORD_RESULT(), + STOP_RECORD_RESULT(), + + HAND_UP_RESULT(), + CANCEL_HAND_UP_RESULT(), + + REQUEST_CHAIRMAN_RESULT(), + RELEASE_CHAIRMAN_RESULT(), + + WILL_TIMEOUT(), + POSTPONE_CONF_RESULT(), + + SET_CONF_MODE_RESULT(), + GET_DATA_CONF_PARAM_RESULT(), + + WATCH_ATTENDEE_RESULT(), + BROADCAST_ATTENDEE_RESULT(), + CANCEL_BROADCAST_RESULT(), + + UPGRADE_CONF_RESULT(), + + SPEAKER_LIST_IND(), + STATE_UPDATE(), + + JOIN_DATA_CONF_RESULT(), + JOIN_DATA_CONF_LEAVE(), + JOIN_DATA_CONF_TERMINATE(), + START_DATA_CONF_SHARE(), + END_DATA_CONF_SHARE(), + + CAMERA_STATUS_UPDATE(), + + CONF_INCOMING_TO_CALL_INCOMING(),//会议来电转到呼叫来电 为了显示呼叫界面 + + LEAVE_CONF(), + + CONF_CHAT_MSG(), + + GET_TEMP_USER_RESULT(),//匿名会议临时账户结果 + + CALL_TRANSFER_TO_CONFERENCE(),//通话转会议,创会成功 + /** + * 获取会议主题成功 + */ + GET_SUBJECT_SUCCEED(), + UPDATE_VMR_SUCCEED(), // VMR更新成功 + REQUEST_PRESENTER_RESULT(), + CONF_HANG_UP_ATTENDEE(), + MUTESUCCESS_AND_UPDATEUI(), // 有噪声 + AUX_DATA_STATE(),//辅流状态 + AUX_DATA_SEND(),//辅流发送成功 + AUX_DATA_FAILED(),//辅流发送失败 + HAS_HANDUP_MEMBER(), // 有人举手 + CHANGE_SC(), // 转换SC + SCCHANGEREFRESH(), + BUTT(), + BAND_WATCH(), + NEED_UPDATE_STATE(), + // 入会密码验证 + VERIFY_CONF_PWD(), + // 入会密码查询 + QUERY_CONF_PWD(), + CONF_SUBTITLE_SWITCH(); + } + + /** + * Conference media type + */ + public enum ConfMediaType { + VOICE_CONF(), + VIDEO_CONF(), + VOICE_AND_DATA_CONF(), + VIDEO_AND_DATA_CONF() + } + + /** + * Conference role + */ + public enum ConfRole { + CHAIRMAN(), + ATTENDEE() + } + + /** + * Conference right + */ + public enum ConfRight { + MY_CREATE(), + MY_JOIN(), + MY_CREATE_AND_JOIN() + } + + /** + * Conference protocol type + */ + public enum ConfProtocol { + IDO_PROTOCOL(), + REST_PROTOCOL() + } + + /** + * Conference video mode + */ + public enum ConfVideoMode { + CONF_VIDEO_BROADCAST(), + CONF_VIDEO_VAS(), + CONF_VIDEO_FREE() + } + + /** + * 网络状态监听 + */ + public enum NETWORK { + WIFI_CONNECT(), + MOBILE_CONNECT(), + ALL_NOT_CONNECT(), + ALL_CONNECT() + } + + /** + * 预约会议结果码 + */ + public enum BookConfResult { + // 会议人数超过限制 + TSDK_E_CONF_ERR_PARAM_ERROR(67108866), + // 67108895 => 0x400001F TSDK_E_CONF_ERR_RESULT_NETWORK_ERROR 网络错误 + TSDK_E_CONF_ERR_RESULT_NETWORK_ERROR(67108895); + // 67108906 TSDK_E_CONF_ERR_RESULT_UNKNOWN 0x400002A 服务器返回未知错误 + + private int resultCode; + + BookConfResult(int resultCode) { + this.resultCode = resultCode; + } + + public int getResultCode() { + return resultCode; + } + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/Constant.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/Constant.java new file mode 100644 index 0000000..dde5eca --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/Constant.java @@ -0,0 +1,452 @@ +package com.tenlionsoft.baselib.constant; + + +import com.tenlionsoft.baselib.core.beans.SubtitleLanguage; + +public class Constant { + /** + * 主页面跳转 + */ + public static final int FRAGMENT_MEETING = 0; + public static final int FRAGMENT_CONTACTS = 1; + public static final int FRAGMENT_MINE = 2; + /** + * 会议设置 1 + */ + public static final int MEETING_SETTING_1 = 1; + public static final int MEETING_SETTING_2 = 2; + public static final int MEETING_SETTING_3 = 3; + /** + * 服务器设置 1 + */ + public static final int SERVER_SETTING_1 = 1; + /** + * 加入会议 1登录加入会议 + */ + public static final int JOIN_MEETING_1 = 1; + + /** + * 跳转本地通讯录,显示sheet页面 + */ + public static final int CONTACT_ADAPTER_LOCAL = 1; + + /** + * 企业通讯录 + */ + public static final int CONTACT_ADAPTER_COMPANY = 2; + + public static final int CONTACT_ADAPTER_MAIN = 3; + + public static final int INVITE_CONTACT = 4; + + public static final int CONTACT_ADAPTER_ADD = 5; + + public static final int INVITE_COMPANY_CONTACT = 6; + + public static final int CONTACT_RECENT_CALLS = 7; + + public static final String CONTACT_ADAPTER_ADD_content = "ldapContactsInfo"; + + public static final int VOICE_CONF_COMING = 1; + + /** + * 音频会议进行中 + */ + public static final int VOICE_CONF_ING = 2; + + /** + * 视频会议来电 + */ + public static final int CONF_VIDEO_COMING = 4; + + //点对点语音主叫 + public static final int POINT_CALL = 5; + //点对点语音被叫 + public static final int POINT_CALLED = 6; + //点对点视频已连接 + public static final int POINT_CONNECTED = 7; + //点对点视频主叫 + public static final int POINT_VIDEO = 8; + //点对点视频被叫 + public static final int POINT_VIDEOED = 9; + + public static final int VOICE_ACCESS_CONF_ING = 10; + + public static final int PIC_ADD = 20; + + public static final int PIC_DELETE = 21; + + //加入语音会议 + public static final int VOICE_LIST_JOIN = 11; + + /** + * 授权联系人被拒 + */ + public static final int MEETING_TYPE = 105; + public static final int UPDATE_VOICE = 10; + public static final String CONF_LIST_DATA = "conf_list_data"; + public static final int UPDATE_CONF_CONNECT = 12; + public static final int CALL_UPDATE_VOICE = 13; + public static final int UPDATE_CALL_CONNECT = 14; + public static final String CALLED_NAME = "called_name"; + public static final int CALL_VOICE_GOING = 15; + public static final int CALL_VIDEO_GOING = 16; + public static final String DIAL = "dial"; + public static final int VIDEO_CLOSE = 17; + public static final String VIDEO_CALL_NUM = "video_call_num"; + public static final int BOOK_CONF_LIST = 18; + public static final int ACTION_VIDEO_TO_AUDIO = 19; + public static final int CALL_UPGRADE_ACTION = 20; + public static final int OPEN_VIDEO = 21; + public static final int REFUSE_OPEN_VIDEO = 23; + + /** + * 单向直播 + */ + public static final int AUDIT_DIR = 101; + + + public static final int RECEIVED_MOBILE_CALL = 200; + + public static final int END_MOBILE_CALL = 201; + + /** + * 修改VMR密码错误码 + */ + public static final int UPDATE_VMR_PWD_ERROR_CODE2 = 67109102; + + /** + * 发起或预约会议修改VMR密码错误码 + */ + public static final int UPDATE_VMR_PWD_ERROR_CODE1 = 67109101; + + /** + * 发起或预约会议失败错误码 + */ + public static final int BOOK_MEETING_ERROR_CODE = 67109096; + + public static final String SHOW_NO_NET_DIALOG_INFO = "showNoNetDialogInfo"; + public static final String BOOK_CONF_LIST_DATA = "book_conf_list_data"; + public static final String INVITE_CONF_LIST_DATA = "invite_conf_list_data"; + public static final String VOICE_CALL_NUM = "voice_call_num"; + public static final String CONF_IS_COMING = "conf_is_coming"; + public static final int UPDATE_VIDEO_STATUS = 22; + public static final String CONF_IS_CONNECT = "conf_is_connect"; + public static final String LOGIN_SERVER_SIP_URL = "login_server_sip_url"; + public static final String UPD_TLS = "upd_tls"; + public static final String SIPNUMBER = "sipnumber"; + public static final String BFCP_TRANSPORT_MODE = "bfcpTransportMode"; + public static final String IS_OPEN_GM = "isOpenGm"; + public static final String IS_AGREE_RISK_GUEST_PWD_RANDOM_WARNING = "isAgreeRiskGuestPwdRandomWarning"; + public static final String IS_AGREE_RISK_PERSONAL_ID_WARNING = "isAgreeRiskPersonalId"; + public static final String IS_AGREE_RISK_CHAIRMAN_PWD_WARNING = "isAgreeRiskChairmanPwd"; + public static final String IS_AGREE_RISK_GUEST_PWD_WARNING = "isAgreeRiskGuestPwd"; + public static final int AUX_DATA = 25; + public static final String VMR_TITLE = "vir_title"; + public static final String VMR_ACCESSNUMBER = "vmr_acceddnumber"; + public static final String VMR_CHAIRMANPWD = "vmr_chairmanpwd"; + public static final String VMR_GUESTPWD = "vmr_guestpwd"; + public static final String VMR_CONF_ID = "vmr_conf_id"; + public static final String VMR_SIP_NUMBER = "vmr_sip_number"; + public static final String IS_FIRST_IN = "is_first_in"; + public static final String IS_FROM_SPALSH = "is_from_spalsh"; + public static final String ALL_TEXT = "all_text"; + public static final String WATCH_MEMBER = "watch_member"; //选看成员 + public static final String IS_WATCH_MEMBER = "is_watch_member"; //是否选看 + public static final String IS_BROAD_MEMBER = "is_broad_member"; //是否有广播 + public static final String IS_SVC_MEETING = "is_svc_meeting"; //是否是SVC会议 + public static final String IS_CLOSE_AUX = "is_close_aux";//开关控制共享的时候进自己应用关不关辅流 + public static final String IS_AUX = "isAuxData"; //是否有辅流 + public static final String IS_FROM_ATTENDEELIST = "is_from_attendeelist"; //是否有辅流 + public static final String ID = "id"; + public static final String MINE_USER_NAME = "mine_user_name"; + public static final String HOWL_AUTO_MUTE = "howl_auto_mute"; + public static final String CHOOSE_ARRAY = "choose_array"; + public static final String CHOOSE_POSITION = "choose_position"; + public static final String CHOOSE_TITLE = "choose_title"; + public static final String INITIATE_VMR = "initiate_vmr"; + public static final int CHOOSE_CODE1 = 10001; + public static final int CHOOSE_CODE2 = 10002; + public static final int CHOOSE_CODE_ZONE = 10003; + public static final String ACTION_HEADSET_PLUG = "action_headset_plug"; + //手动打开或者隐藏悬浮窗 + public static final String SPONSOR_MEETING_WATCH_MEMBER = "sponsor_meeting_watch_member";//选看成功 + /** + * 广播 + */ + public static final String SPONSOR_MEETING_BROAD_MEMBER = "sponsor_meeting_broad_member";//广播成功 + public static final String SPONSOR_MEETING_BROAD_MEMBER_CANCEL = "sponsor_meeting_broad_member_cancel";//广播取消 + /** + * 点名 + */ + public static final String SPONSOR_MEETING_ROLL_MEMBER = "sponsor_meeting_roll_member";//点名成功 + public static final String SPONSOR_MEETING_REFLUSHED = "sponsor_meeting_reflushed";//与会者列表被动刷新的时候,SVC大画面 选看/点名/广播 所展示内容 + public static final String MEETING_DESTORY = "meeting_destory"; //会议销毁 + /** + * 是否关闭摄像头 + */ + public static final String IS_CLOSE_VIDEO = "is_close_video"; // 是否关闭摄像头 + public static final String IS_MINIMIZE_CLICK = "is_minimize_click"; + public static final int REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = 102; + public static final String LDAP_CONTACTS_INFO = "ldapContact"; + public static final String IS_COLLECTION_CONTACT = "MailContact"; + public static final String IS_LOCAL_ADD_CONTACT = "LocalContact"; + public static final String CONTACTS_TYPE = "contacts_type"; + public static final String IS_VIBRATION = "is_vibration"; + public static final String IS_RECEIVING_RING = "is_receiving_ring"; + public static final String AUX = "aux"; + public static final boolean END_CALL = true; + + public static String LOGIN_ACCOUNT = "login_account"; + public static String ANONYMOUS = "anonymous"; + public static String SERVICE_TYPE = "service_type"; + public static String USER_TYPE = "user_type"; + public static String AUTH_TYPE = "auth_type"; + public static String IS_LOGOUT = "is_logout"; + public static String IS_NO_STREAM_DURATION = "is_no_steam_duration"; + public static String DEVICE_ID = "device_id"; + public static boolean IS_BACK_MINIMIZE = false; + public static boolean IS_SHOW_PARTICIPANTS = false; + + public static String DEFINITION_SETTING = "definition_setting"; + public static int WATCH_ATTENDEE_REQUEST_CODE = 1004; + + + // 与会者列表操作事件广播,用来通知会议界面 + public static String WATCH_MYSELF_CAMERA_STATE = "watch_myself_camera_state"; + /** + * 点对点 + */ + public static final int POP_CALL_VIDEO = 0x0101; + /** + * 主席 + */ + public static final int POP_IS_CHAIRMAN = 0x0111; + /** + * 非主席 + */ + public static final int POP_IS_NOT_CHAIRMAN = 0x1000; + /** + * 主席密码 + */ + public static final String MEETING_CHAIRMAN = "meeting_chairman"; + + public static final String SCREEN_OFF = "screen_off"; + + public static final int NAME_CHARACTER_LENGTH_192 = 192; + + /** + * 登录结果枚举类 + */ + public enum LoginUIEvent { + + VOIP_LOGIN_SUCCESS(), + + LOGIN_FAILED(), + + AUTH_FAILED(), + + FIREWALL_DETECT_FAILED(), + + BUILD_STG_FAILED(), + + LOGOUT(), + + FIRST_CHANGE_PWD(), + + CHANGE_PWD() + } + + /** + * 服务器登录地址 + */ + public static final String LOGIN_SERVER_ADDRESS = "login_server_address"; + + /** + * 服务器端口 + */ + public static final String LOGIN_SERVER_PORT = "login_server_port"; + + /** + * Https Port + */ + public static final String LOGIN_SERVER_HTTPSPORT = "login_server_httpsport"; + + /** + * 服务器地址是否变更 + */ + public static final String LOGIN_SERVER_CHANGE = "login_server_change"; + + /** + * 判断是否匿名链接入会 + */ + public static final String JOIN_MEETING_NOLOGIN = "join_meeting_nologin"; + /** + * 判断是否处于匿名链接入会中,此时不允许用户点击登录 + */ + public static final String JOIN_MEETING_NOLOGIN_ING = "join_meeting_nologin_ing"; + + /** + * 判断3.0日志是否正在上传状态(true正在上传,false非上传状态) + */ + public static final String FEEDBACK_UPDATE_3 = "feedback_update_3"; + + public static final String LOGIN_SERVER_SRTP_MODE = "login_server_srtp_mode"; + + public static final String IS_VIDEO_CONF = "is_video_conf"; + public static final String IS_AUTO_LOGIN = "is_auto_login"; + + public static final String CAMERAM_STATE = "camera_state"; + + public static final String CAMERA_INDEX = "camera_index"; + + public static final String CONF_ID = "conf_id"; + + public static final String IS_AUTO_JUMP = "isAutoJump"; + + public static final String MY_CONF_INFO = "my_conf_info"; + + public static String TEMP_CONF_INFO = ""; + + public static final String CONF_INFO = "conf_info"; + + public static final String IS_VMR_2_ID = "is_vmr_2.0_id"; + + public static final String IS_VMR_3_ID = "is_vmr_3.0_id"; + + public static final String CONF_TEMPORARY = "conf_temporary"; + + public static final String CALL_INFO = "call_info"; + + public static final String CALL_VIDEO_TO_VOICE = "call_video_to_voice"; + + public static final String LOGIN_SERVER_PROXY_SWITCH_STATE = "login_server_proxy_switch_state"; + + public static final String LOGIN_SERVER_SECRET_SWITCH_STATE = "login_server_secret_switch_state"; + + public static final String LOGIN_SERVER_TLS_MODE_SWITCH_STATE = "login_server_TLS_mode_switch_state"; + + public static final String SERVER_PORT = "5061"; + + /** + * 来宾密码开关标志 + */ + public static final String IS_GUEST_SWITCH_OPEN = "is_guest_switch_open"; + + /** + * 主席密码开关标志 + */ + public static final String IS_CHAIRMAN_SWITCH_OPEN = "is_chairman_switch_open"; + + /** + * 判断是否是Vmr标志 + */ + public static final String IS_VMR = "is_vmr"; + /** + * 判断是否修改密码 + */ + public static final String CHANGE_PWD = "change_pwd"; + /** + * 判断联系人图标索引 + */ + public static final String CONTACT_INDEX = "contact_index"; + + /** + * 判断联系人背景颜色所用 + */ + public static final String CONTACT_BG_COLOR_INDEX = "contact_bg_color_index"; + + /** + * 密码置空字符串 + */ + public static final String PASSWORD_NULL_STRING = ""; + + /** + * 空格字符串 + */ + public static final String SPACE_STRING = " "; + /** + * 广播action + */ + + public static final String BROADCAST_ACTION_STOP_SHARE = "action_stop_share"; + + /** + * 进入语音会议页面的type + * 1:语音会议来电通知 + * 2.语音会议进入页面 + * 3.点对点呼叫进入 + * 4.视频会议来电通知 + */ + public static final String VOICE_JOIN_TYPE = "VOICE_JOIN_TYPE"; + + /** + * 与会者枚举类 + */ + public enum ParticipantEvent { + + REQUEST_CHAIRMAN_SUCCESS(), + + REQUEST_CHAIRMAN_FAILED(), + + RELEASE_CHAIRMAN_FAILED(), + + RELEASE_CHAIRMAN_SUCCESS(), + } + + + /** + * 网络异常 提示最大值 [0,5] 0 :最差,5:最好 + */ + public static final int NET_LEVEL_MIN_TOAST = 3; + /** + * 网络 toast 间隔时间 单位: 毫秒 + */ + public static final int NET_LEVEL_MIN_TOAST_INTERVAL = 1 * 30 * 1000; + + /** + * 申请会议主席 result + */ + public static final String REQUEST_CHAIRMAN_SUCCESS = "result_action_request_chairman_success"; + + /** + * 记录2.0发起会议自己输入的主席密码,用来2.0申请主席使用 + */ + public static final String CHAIRMANPWD_SMC_2 = "chairmanpwd_smc_2"; + + /** + * 判断2.0是否是自己创建的会议 + */ + public static final String CREATE_MEETING_SMC_2 = "create_meeting_smc_2"; + + /** + * 关闭无码流弹框 + */ + public static final String NO_DURATION_DIALOG_CLOSE = "noduration_dialog_close"; + + public static boolean DownLoadDialogIsShow = false; + + public static final int MEETING_HIGH_SETTING_CODE = 10005; + + public static final String MEETING_HIGH_SETTING_VIDEO = "isVideo"; + + public static final String MEETING_HIGH_SETTING_AUDIO = "isAudio"; + + public static final String MEETING_HIGH_SETTING_SUBTITLE = "isSubtitle"; + + public static final String MEETING_HIGH_SETTING_SUBTITLE_LANGUAGE = "subtitle_language"; + + public static final String MEETING_HIGH_SETTING_TYPE_VIDEO = "isVideoConf"; + + public static final String MEETING_CAPTION_ENABLE = "isSubtitleEnable"; + + public static final String MEETING_CONF_CAPTION_ENABLE = "isConfSubtitleEnable"; + + public static final String MEETING_CONF_CAPTION_SHOWING = "isSubtitleShowing"; + + public static final SubtitleLanguage[] LANGUAGE_LIST_DATA = { + new SubtitleLanguage(1, "中文"), + new SubtitleLanguage(0, "English")}; + + public static final String MEETING_CONF_CONTROL_ENABLE = "isConfControlEnable"; +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/ConstantsV2.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/ConstantsV2.java new file mode 100644 index 0000000..54d8ffd --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/ConstantsV2.java @@ -0,0 +1,448 @@ +package com.tenlionsoft.baselib.constant; + +import android.os.Environment; + + +import com.tenlionsoft.baselib.app.BaseAppContext; +import com.tenlionsoft.baselib.core.beans.SubtitleLanguage; + +import java.io.File; + + +/** + * @Time: 2021/5/31 + * @Author: isoftstone + * @Description:页面相关常规 + */ +public class ConstantsV2 { + /*** + *魔法int值: + */ + public static final int NUMBER_0 = 0; + public static final int NUMBER_1 = 1; + public static final int NUMBER_2 = 2; + public static final int NUMBER_3 = 3; + public static final int NUMBER_4 = 4; + public static final int NUMBER_6 = 6; + public static final int NUMBER_7 = 7; + public static final int NUMBER_8 = 8; + public static final int NUMBER_10 = 10; + public static final int NUMBER_13 = 13; + public static final int NUMBER_15 = 15; + public static final int NUMBER_21 = 21; + public static final int NUMBER_30 = 30; + public static final int NUMBER_32 = 32; + public static final int NUMBER_127 = 127; + public static final int NUMBER_128 = 128; + public static final int NUMBER_192 = 192; + public static final int NUMBER_255 = 255; + public static final int NUMBER_256 = 256; + public static final int NUMBER_350 = 350; + public static final int NUMBER_500 = 500; + public static final int NUMBER_2000 = 2000; + + /** + * SplashActivityV2闪屏页相关常量 + */ + public static final String RINGING_FILE = "ringing.wav"; + public static final String RING_BACK_FILE = "ring_back.wav"; + public static final String BMP_FILE = "CameraBlack.BMP"; + public static final String CLOUNDLINK = "HWCloudLink"; + public static final String ANNOT_FILE = "annotImages"; + public static final int REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = 102; + + /** + * MainActivity页面相关常量 + */ + public static final String MAIN_SITE_URL = "site_url"; + public static final String MAIN_SITE_RANDOM = "random"; + /** + * 会议fragment tag + */ + public static final String MEETING_FRAGMENT = "meeting_fragment"; + /** + * 联系人fragment tag + */ + public static final String CONTACT_FRAGMENT = "contact_fragment"; + /** + * 我的fragment tag + */ + public static final String MINE_FRAGMENT = "mine_fragment"; + /** + * 会议索引 + */ + public static final int FRAGMENT_MEETING = 0; + /** + * 联系人索引 + */ + public static final int FRAGMENT_CONTACTS = 1; + /** + * 我的索引 + */ + public static final int FRAGMENT_MINE = 2; + + /** + * 邮箱正则表达式 + */ + public static final String EMAIL_REGULAR = + "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; + + /** + * 联系人添加方式 + */ + public static final String CONTACT_ADD_TYPE = "LocalContact"; + + /** + * 我的页面相关常量 + */ + public static final String USER_DISPLAY_NAME = "GetUserInfo_DisplayName"; + public static final String USER_TERMINAL = "GetUserInfo_Terminal"; + public static final String SYMBOL_AT = "@"; + + /** + * 查询会议列表结束时间,大于这个时间,底层时间转换失败 + */ + public static final String QUERY_END_TIME = "2037-12-31 23:59:59"; + + public static final int CONSTANTSV2_ZERO = 0; + public static final int CONSTANTSV2_ONE = 1; + public static final int CONSTANTSV2_TWO = 2; + public static final int CONSTANTSV2_THREE = 3; + public static final int CONSTANTSV2_FOUR = 4; + public static final int CONSTANTSV2_FIVE = 5; + public static final int CONSTANTSV2_SIX = 6; + public static final int CONSTANTSV2_SEVEN = 7; + public static final int CONSTANTSV2_EIGHT = 8; + public static final int CONSTANTSV2_NINE = 9; + public static final int CONSTANTSV2_TEN = 10; + /** + * 登录页面相关常量 + */ + public static final int PASSWORD_MAX_LENGTH = 32; + public static final int VIDEO_DEFINITION_POLICY = 2; + public static final int LOGIN_STATUS_CODE_255 = 255; + public static final int LOGIN_STATUS_CODE_5 = 5; + public static final String LOGIN_STATUS_CODE_0 = "0"; + public static final String LOGIN_STATUS_CODE_1 = "1"; + public static final String LOGIN_LOWER_BAR = "_"; + public static final int LOGIN_SERVER_PORT_5061 = 5061; + public static final int CERT_TYPE_1 = 1; + public static final int CERT_TYPE_2 = 2; + + /** + * 延迟处理时间相关常量 + */ + public static final int DELAY_MILLIS_100 = 100; + public static final int DELAY_MILLIS_500 = 500; + public static final int DELAY_MILLIS_600 = 600; + public static final int DELAY_MILLIS_1000 = 1000; + public static final int DELAY_MILLIS_1500 = 1500; + public static final int DELAY_MILLIS_2000 = 2000; + + /** + * 链接入会传递参数key + */ + public static final String KEY_SITE_URL = "site_url"; + public static final String KEY_RANDOM = "random"; + /** + * 本地存储帐号key + */ + public static final String KEY_ACCOUNT = "account"; + /** + * 本地账号存储文件名 + */ + public static final String PREFS_ACCOUNT = "prefs_account"; + /** + * 企业通讯录跳转参数key + */ + public static final String PARAM_ENTERPRISE_ADDRESS_BOOK = "param_enterprise_address_book"; + /** + * 搜索页面跳转参数key + */ + public static final String PARAM_SEARCH_CONTACT = "param_search_contact"; + + /** + * 隐私说明页面相关常量 + */ + public static final String PRIVACY_STATEMENT_CHINESE = "file:///android_asset/privacy.html"; + public static final String PRIVACY_STATEMENT_EN = "file:///android_asset/privacy_en.html"; + /** + * 登录设置页面相关常量 + */ + public static final String LOGIN_SET_BEFORE_LOGIN = "before_login"; + public static final String SERVER_PORT_5060 = "5060"; + public static final String SERVER_PORT_5061 = "5061"; + public static final String SERVER_HTTP_PORT_443 = "443"; + public static final int MAX_SERVER_PORT = 65535; + public static final String MAX_SERVER_PORT_STR = "65535"; + public static final int SERVER_ADDRESS_LENGTH = 256; + public static final int SERVER_PORT_LENGTH = 5; + /** + * 意见反馈页面相关常量 + */ + public static final String LOG_ZIP_FILES = Environment.getExternalStorageDirectory() + + "/Zip_CloudLink_Log/"; + public static final String LOG_OLD_FILES = Environment.getExternalStorageDirectory() + + "/CloudLink_Log"; + public static final String BMP_FILE_PATH = BaseAppContext.getInstance().getFilesDir() + + File.separator + BMP_FILE; + public static final String CLOUD_LINK_AUTHORITY = "com.isoftstone.cloundlink"; + public static final int REQUEST_CODE_CHOOSE_PHOTO_ALBUM = 233; + public static final int REQUEST_CODE_TAKE_PICTURE = 234; + public static final double LOG_MAX_SIZE = 600.0; + public static final String SIMPLE_DATE_FORMAT = "yyyy-MM-dd"; + public static final String CONTENT_LENGTH_LIMIT = "/200"; + public static final String STRING_NULL = "null"; + /** + * 设置新密码界面相关常量 + */ + public static final String RULE_COMMA = ","; + public static final String RULE_COLON = " "; + public static final String RULE_UPPERCASE_LETTER = ".*[A-Z]+.*"; + public static final String RULE_LOWER_CASE_LETTERS = ".*[a-z]+.*"; + public static final String RULE_DIGITAL = ".*[0-9]+.*"; + public static final String RULE_SPECIAL_CHARACTERS = + ".*[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!{}【】‘;:”“’。,、?\\\\\\\\]+.*"; + + /** + * 修改密码返回状态值: 系统不支持修改密码 + */ + public static final int CHANG_PWD_0X2000018 = 0x2000018; + /** + * 修改密码返回状态值: 旧密码错误 + */ + public static final int CHANG_PWD_0X2000019 = 0x2000019; + /** + * 修改密码返回状态值: 新密码长度非法 + */ + public static final int CHANG_PWD_0X200001A = 0x200001A; + /** + * 修改密码返回状态值: 新密码复杂度不满足要求 + */ + public static final int CHANG_PWD_0X200001B = 0x200001B; + /** + * 修改密码返回状态值: 新密码不能与最近旧密码相同 + */ + public static final int CHANG_PWD_0X200001C = 0x200001C; + /** + * 修改密码返回状态值: 新密码不能包含3个以上重复字符 + */ + public static final int CHANG_PWD_0X200001D = 0x200001D; + /** + * 修改密码返回状态值: 上次修改密码后5分钟内不能更新密码 + */ + public static final int CHANG_PWD_0X200001E = 0x200001E; + /** + * 修改密码返回状态值: 密码不能包含帐号或其逆序帐号 + */ + public static final int CHANG_PWD_0X200001F = 0x200001F; + /** + * 修改密码返回状态值: 新密码相较于旧密码至少要有两个不同的字符 + */ + public static final int CHANG_PWD_0X2000020 = 0x2000020; + /** + * 修改密码返回状态值: 用户名或者密码错误 + */ + public static final int CHANG_PWD_0X2000022 = 0x2000022; + /** + * 修改密码返回状态值: 用户已被锁定 + */ + public static final int CHANG_PWD_0X2000023 = 0x2000023; + /** + * 修改密码返回状态值: 新密码不能和旧密码相同 + */ + public static final int CHANG_PWD_0X2000035 = 0x2000035; + /** + * 修改密码返回状态值: 密码过于简单或不安全 + */ + public static final int CHANG_PWD_0X2000041 = 0x2000041; + + /** + * 增加40秒后自动隐藏dialog机制,避免服务端丢失某个请求结果 + */ + public static final long LOAD_OVER_TIME = 40; + + /** + * 清晰度设置:高清 + */ + public static final String VIDEO_DEFINITION_1 = "1"; + /** + * 清晰度设置:普清 + */ + public static final String VIDEO_DEFINITION_2 = "2"; + + /** + * 帮助与反馈页面传值 + */ + public static final String PARAMS_HELP_TITLE = "params_help_title"; + + /** + * 发起、加入会议 + */ + public static final String VIDEO = "_VIDEO"; + public static final String AUDIO = "_AUDIO"; + public static final String SUBTITLE = "_SUBTITLE"; + public static final String IS_VIDEO = "isVideo"; + public static final String IS_AUDIO = "isAudio"; + public static final String ACTION = "action"; + + /** + * 最大分钟,秒钟数 + */ + public static final int MAX_MINUTE_VALUE = 59; + /** + * 分钟数 + */ + public static final int MINUTE_VALUE = 60; + /** + * 会议显示最大小时数 + */ + public static final int MAX_HOUR_VALUE = 99; + + /** + * 会议字幕相关常量 + */ + public static final String MEETING_HIGH_SETTING_SUBTITLE = "isSubtitle"; + public static final String MEETING_HIGH_SETTING_SUBTITLE_LANGUAGE = "subtitle_language"; + public static final String MEETING_CAPTION_ENABLE = "isSubtitleEnable"; + public static final String MEETING_CONF_CAPTION_ENABLE = "isConfSubtitleEnable"; + public static final String MEETING_CONF_CAPTION_SHOWING = "isSubtitleShowing"; + /** + * 默认0值 + */ + public static final int ERO_VALUE = 0; + /** + * 默认北京时间时区 + */ + public static final String DEFAULT_TIME_ZONE_ID = "58"; + + /** + * SMC3.0 区分会议室和与会人 1 会议室 + */ + public static final String ATTENDEE_TYPE_CONF_ROOM = "1"; + + /** + * SMC3.0 区分会议室和与会人 5 与会人 + */ + public static final String ATTENDEE_TYPE_ATTENDEES = "5"; + /** + * 默认时区偏移值 + */ + public static final int DEFAULT_TIME_OFFSET = 28800000; + + /** + * 会议主题最大长度 + */ + public static final int SUBJECT_MAX_LENGTH = 64; + + /** + * 密码最小长度 + */ + public static final int PASSWORD_MIN_LENGTH = 6; + /** + * 3.0 预约会议人数限制512 + */ + public static final int BOOK_MAX_NUMBER_3 = 512; + /** + * 2.0 预约会议人数限制30 + */ + public static final int BOOK_MAX_NUMBER_2 = 30; + + /** + * 预约会议默认小时 + */ + public static final String MEETING_DEFAULT_TIME = "1 "; + + /** + * 是否视频会议 + */ + public static final String IS_VIDEO_CONF = "isVideoConf"; + /** + * 时区id + */ + public static final String TIME_ZINE_ID = "timeZoneId"; + /** + * 判断是否是Vmr标志 + */ + public static final String IS_VMR = "isVmr"; + /** + * 判断是否是Vmr开启标志 + */ + public static final String IS_SWITCH_VMR = "isSwitchVmr"; + /** + * 时区间隔时间 + */ + public static final String TIME_OFFSET = "timeOffset"; + + + public static final String MEETING_TYPE = "type"; + + /** + * 是否查询会议列表 + */ + public static final String IS_QUERY_MEETING_LIST = "isqueryMeetingList"; + + public static final SubtitleLanguage[] LANGUAGE_LIST_DATA = { + new SubtitleLanguage(1, "中文"), + new SubtitleLanguage(0, "English")}; + + /** + * 会议高级设置请求码 + */ + public static final int MEETING_HIGH_SETTING_CODE = 10005; + /** + * 会议管理员 + */ + public static final String CONF_ADMIN = "confAdmin"; + + /** + * 是否支持会议字幕 + */ + public static final String IS_SUPPORT_SUBTITLE = "_isSupportSubtitle"; + + /** + * 会议控制->与会人员相关 + */ + public static final int MEMBER_LIST_TYPE_MAIN = 0; + public static final int MEMBER_LIST_TYPE_SPEC = 1; + public static final int MEMBER_LIST_TYPE_NUM = 2; + public static final int MEMBER_LIST_TYPE_EN = 3; + public static final String MEMBER_LIST_SORT_FIRST = "-1"; + public static final String MEMBER_LIST_SORT_SECOND = "-2"; + public static final String MEMBER_LIST_SORT_THIRD = "-3"; + public static final String MEMBER_LIST_SORT_FOURTH = "-4"; + public static final String MEMBER_LIST_SORT_FIFTH = "-5"; + public static final String MEMBER_LIST_GENDER_3 = "3"; + public static final String MEMBER_LIST_GENDER_6 = "6"; + public static final String MEMBER_LIST_GENDER_7 = "7"; + public static final long MEMBER_LIST_LOAD_DELAY = 500L; + + /** + * 举手失败 + */ + public static final int PARTICIPANTS_ERROR_CODE_HAND_UP = 67109039; + + /** + * 申请主持人失败 + */ + public static final int PARTICIPANTS_ERROR_CODE_REQUEST_CHAIRMAN = 67109022; + + /** + * 申请主持人失败,需要密码 + */ + public static final int PARTICIPANTS_REQUEST_CHAIRMAN_NEED_PWD = 67109017; + + /** + * 联系人列表->联系人分组显示相关 + */ + public static final int CONTACT_LIST_TYPE_ITEM = 0; + public static final int CONTACT_LIST_TYPE_TITLE = 1; + public static final int CONTACT_LIST_TYPE_GROUP = 2; + public static final int CONTACT_LIST_TYPE_LOOK_MORE = 3; + public static final int CONTACT_LIST_TYPE_LOAD_MORE = 4; + public static final int CONTACT_LIST_FIRST_LOAD_LIMIT = 5; + public static final int CONTACT_LIST_LOAD_MAX_SIZE = 50; + public static final long CONTACT_LIST_LOAD_DELAY = 500L; + public static final long CONTACT_LIST_SEARCH_DELAY = 1000L; + public static final float CONTACT_LIST_FLOAT_0_5 = 0.5F; +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/LionActions.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/LionActions.java index 40cf345..b190d92 100644 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/LionActions.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/LionActions.java @@ -18,6 +18,7 @@ public class LionActions { /*=========Action==========*/ public static final String ACTION_PUSH_MSG_ACTIVITY = "com.tenlionsoft.pushMsg";//隐式启动推送的activity + public static final String ACTION_CATEGORY_CALL = "android.intent.category.calllink"; public static final String ACTION_PUSH_MSG_DISPOSE = "com.tenlionsoft.pushMsgDispose";//处理推送过来的消息 public static final String ACTION_VOIP_RECEIVER = "com.tenlionsoft.action_";//socket广播 diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java index 253cc06..22deae2 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java @@ -2,6 +2,8 @@ package com.tenlionsoft.baselib.constant; import android.os.Environment; +import com.tenlionsoft.baselib.app.BaseAppContext; + import java.io.File; /** @@ -11,7 +13,7 @@ import java.io.File; */ public class PathConfig { - public static final String PROVIDER_URL = "content://com.tengshisoft.citygovernance";//内容提供者url + public static final String PROVIDER_URL = "content://com.tengshisoft.citygovernance.content_provider";//内容提供者url /*===========================================*/ @@ -35,9 +37,15 @@ public class PathConfig { public static final String ACTION_IS_UPLOAD_LOCATION = "com.sucstepsoft.city-governance.is.upload"; public static final String ACTION_STOP_LOCATION = "com.sucstepsoft.city-governance.stop_listener"; public static final String ACTION_START_LOCATION = "com.sucstepsoft.city-governance.start_listener"; - + public static final String ACTION_CALL_MSG = "com.tenlionsoft.call_msg"; + public static final String ACTION_NOTIFY_CONTACT_LOGIN = "com.tengshisoft.city-governance.notify_login";//通知对方登录 + public static final String ACTION_NOTIFY_CONTACT_LOGIN_SUCCESS = "com.tengshisoft.city-governance.notify_login_success";//对方登录成功 + public static final String ACTION_NOTIFY_CONTACT_LOGIN_FAIL = "com.tengshisoft.city-governance.notify_login_failed";//对方登录不成功 + public static final String ACTION_CALL_OTHER_NO_SUPPORT = "com.tengshisoft.city-governance.call_other_no_support";//对方手机不支持视频语音通话 + public static final String ACTION_USER_OFFLINE = "com.tengshisoft.city-governance.user_offline";//用户不在线 //=============================主页按钮模块类型=========================== public static final String SECRET = "CMXX_TOKEN_INFOS";//秘钥 + public static final String SOCKET_MSG_SECRET = "SocKEtsEcReT_KeY";//消息秘钥 public static final String PROJECT_NAME = "city-governance";/* ===项目名称==*/ public static final String PROJECT_NAME_CH = "智慧城市"; @@ -53,6 +61,7 @@ public class PathConfig { public static final String CITY_DEFAULT_NAME = "日喀则市"; public static final int CITY_DEFAULT_LEVEL = 3; public static final String DID_CITY_CODE = "640675";//日喀则市编码 + public static final boolean IS_SECRET = false;//websocket 是否信息是否加密 //包头坐标 109.926934,40.574501 //呼市坐标 40.823879 111.771815 @@ -176,6 +185,7 @@ public class PathConfig { public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";//事件上报 + public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_EDIT = "/modulecommon/activity/incidentEdit";//事件修改 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_LOG = "/modulecommon/activity/incidentLog";//事件日志 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DONE = "/modulecommon/activity/incidentDone";//已办事件 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DETAIL = "/modulecommon/activity/incidentDetail";//事件详情 @@ -185,10 +195,19 @@ public class PathConfig { public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_HANDLE = "/modulecommon/activity/incidentHandle";//事件处理 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_LIST = "/modulecommon/activity/incidentCheckList";//事件核查 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_DETAIL = "/modulecommon/activity/incidentCheckDetail";//事件核查详情 + + public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEPT_SPECIAL = "/modulecommon/activity/incidentDeptSpecial";//部门端特殊事件 预警和超时 + public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEPT_TIME_OUT = "/modulecommon/fragment/incidentDeptTimeOut";//部门端超时事件 + public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEPT_EARLY_WARN = "/modulecommon/fragment/incidentDeptEarlyWarn";//部门端预警事件 + public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_SPECIAL = "/modulecommon/activity/incidentCenterSpecial";//中心端特殊事件 预警和超时 public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_CENTER_TIME_OUT = "/modulecommon/fragment/incidentCenterTimeOut";//中心端超时事件 public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_CENTER_EARLY_WARN = "/modulecommon/fragment/incidentCenterEarlyWarn";//中心端预警事件 + public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE = "/modulecommon/activity/incidentOversee";//事件督办 + public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_OVERSEE_MINE = "/modulecommon/fragment/incidentOverseeMine";//我发起的督办消息 + public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_OVERSEE_BY = "/modulecommon/fragment/incidentByOversee";//我被督办的消息 + public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE_DETAIL = "/modulecommon/activity/incidentOverseeDetail";//督办详情 public static final String PATH_MODULE_COMMON_ACTIVITY_GRID_STATISTICS = "/modulecommon/activity/gridStatistics";//统计分析 public static final String PATH_MODULE_COMMON_ACTIVITY_DEPT_STATISTICS = "/modulecommon/activity/deptStatistics";//统计分析 @@ -211,6 +230,7 @@ public class PathConfig { public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_DEPT = "/modulecommon/fragment/knowLedgeDept";//部门端知识库 + public static final String PATH_MODULE_COMMON_FRAGMENT_SMART_CONSULT = "/modulecommon/fragment/smartConsult";//智能咨询 public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_ADD = "/modulecommon/activity/knowLedgeAskAdd";//知识索要发起 public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_EDIT = "/modulecommon/activity/knowLedgeAskEdit";//知识索要编辑 public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_DETAIL = "/modulecommon/activity/knowLedgeAskDetail";//知识索要详情 @@ -480,5 +500,4 @@ public class PathConfig { public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_LIST = "/modulesupervision/activity/incidentDeptList";//事件核查 public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_DETAIL = "/modulesupervision/activity/incidentDeptListDetail";//事件核查详情 - } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PermissionConstants.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PermissionConstants.java index f649a90..d71bfb2 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PermissionConstants.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PermissionConstants.java @@ -3,11 +3,16 @@ package com.tenlionsoft.baselib.constant; import android.Manifest; import android.Manifest.permission; import android.annotation.SuppressLint; +import android.content.Context; + +import com.tenlionsoft.baselib.R; import androidx.annotation.StringDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; +import java.util.List; @SuppressLint("InlinedApi") @@ -87,4 +92,56 @@ public final class PermissionConstants { } return new String[]{permission}; } + public static final int REQUEST_CODE_STORAGE = 101; + public static final int REQUEST_CODE_RECORD_AUDIO = 102; + public static final int REQUEST_CODE_CAMERA = 103; + public static final int REQUEST_CODE_PHONE_STATE = 104; + public static final int REQUEST_CODE_MULTI = 107; + public static final String WRITE_EXTERNAL_STORAGE = Manifest.permission.WRITE_EXTERNAL_STORAGE; + public static final String READ_EXTERNAL_STORAGE = Manifest.permission.READ_EXTERNAL_STORAGE; + public static final String RECORD_AUDIO = Manifest.permission.RECORD_AUDIO; + public static final String READ_PHONE_STATE = Manifest.permission.READ_PHONE_STATE; + + + @SuppressWarnings("unused") + public static List getPermissionRes(Context context, String[] permissions) { + List res = new ArrayList<>(); + for (String permission : permissions) { + switch (permission) { + case WRITE_EXTERNAL_STORAGE: + case READ_EXTERNAL_STORAGE: + String storage = context.getString(R.string.cloudLink_permission_storage); + if (res.indexOf(storage) < 0) { + res.add(storage); + } + break; + case RECORD_AUDIO: + res.add(context.getString(R.string.cloudLink_permission_recordAudio)); + break; + case CAMERA: + res.add(context.getString(R.string.cloudLink_permission_camera)); + break; + case READ_PHONE_STATE: + res.add(context.getString(R.string.cloudLink_permission_phoneState)); + break; + } + } + return res; + } + + public static String getPermissionRes(Context context, String permission) { + switch (permission) { + case WRITE_EXTERNAL_STORAGE: + case READ_EXTERNAL_STORAGE: + return context.getString(R.string.cloudLink_permission_storage); + case RECORD_AUDIO: + return context.getString(R.string.cloudLink_permission_recordAudio); + case CAMERA: + return context.getString(R.string.cloudLink_permission_camera); + case READ_PHONE_STATE: + return context.getString(R.string.cloudLink_permission_phoneState); + default: + return ""; + } + } } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/StatusCode.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/StatusCode.java index 0e6900a..f241521 100644 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/StatusCode.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/StatusCode.java @@ -29,13 +29,21 @@ public class StatusCode { public static final int MSG_TYPE_AUDIO = 2005;//聊天消息 音频 public static final int MSG_TYPE_VIDEO = 2006;//聊天消息 视频 - // + public static final int MSG_STATE_USER_OFFLINE_TXT = 411;//发送文本消息用户不在线 + public static final int MSG_STATE_USER_OFFLINE_CALL = 412;//发送实时语音用户不在线 + + public static final int MSG_TYPE_NOTIFY_LOGIN = 11002;//通知对方登录 华为实时通讯呼叫 + public static final int MSG_TYPE_USER_NO_SUPPORT = 11401;//华为实时通讯呼叫不支持 + public static final int MSG_TYPE_USER_LOGIN_FAILED = 11402;//华为实时通讯呼叫登录失败 + public static final int MSG_TYPE_USER_LOGIN_SUCCESS = 11201;//华为实时通讯呼叫登录成功 + public static final int MSG_TYPE_NOTIFY_LOGOUT = 11403;//通知对方退出登录 + + public static final int MSG_TYPE_POINT = 11001;//发送定位信息 public static final int MSG_NOTICE = 3001;//系统通知 public static final int MSG_CHAT = 232432;//聊天信息 public static final int MSG_NOTICE_TARGET = 3003;//系统带参数的通知 public static final int MSG_TYPE_STATE = 9001;//消息发送的状态 - public static final int MSG_GROUP_MESSAGE = 102; public static final int MSG_SYSTEM_MESSAGE = 103; public static final int MSG_SYSTEM_GROUP_MESSAGE = 104; @@ -51,4 +59,5 @@ public class StatusCode { public static final String KEY_MSG_FROM = "msgBody"; public static final String KEY_UPCOMING_SYS_DATA = "upcomingMsgSys"; public static final String PUSH_DATA_KEY = "pushDataKey";//websocket推送过来的消息 key + } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/CameraEntity.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/CameraEntity.java new file mode 100644 index 0000000..093e814 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/CameraEntity.java @@ -0,0 +1,139 @@ +package com.tenlionsoft.baselib.core.beans; + +import java.io.Serializable; + +/** + * This class is about camera + * 摄像头实体类 + */ +public class CameraEntity implements Serializable +{ + /** + * camera status + * 摄像头状态 + */ + public static final int CAMERA_STATUS_CLOSED = 0; + public static final int CAMERA_STATUS_OPENED = 1; + public static final int CAMERA_STATUS_RESUMED = 2; + public static final int CAMERA_STATUS_PAUSED = 4; + + /** + * camera index + * 摄像头索引 + */ + private int index; + + /** + * device ID + * 设备id + */ + private long deviceID; + + /** + * device name + * 设备名称 + */ + private String deviceName; + + /** + * user ID + * 用户id + */ + private long userID; + + /** + * device status + * 设备状态 + */ + private int deviceStatus; + + /** + * camera status + * 摄像头状态 + */ + private int cameraStatus = CAMERA_STATUS_CLOSED; + + + public int getIndex() + { + return index; + } + + public void setIndex(int index) + { + this.index = index; + } + + public long getDeviceID() + { + return deviceID; + } + + public void setDeviceID(long deviceID) + { + this.deviceID = deviceID; + } + + public String getDeviceName() + { + return deviceName; + } + + public void setDeviceName(String deviceName) + { + this.deviceName = deviceName; + } + + public long getUserID() + { + return userID; + } + + public void setUserID(long userID) + { + this.userID = userID; + } + + public int getDeviceStatus() + { + return deviceStatus; + } + + public void setDeviceStatus(int deviceStatus) + { + this.deviceStatus = deviceStatus; + } + + public int getCameraStatus() + { + return cameraStatus; + } + + public void setCameraStatus(int cameraStatus) + { + this.cameraStatus = cameraStatus; + } + + @Override + public boolean equals(Object o) + { + if (null != o){ + if (o instanceof CameraEntity){ + CameraEntity cameraEntity = (CameraEntity) o; + return deviceID == cameraEntity.getDeviceID(); + }else { + return false; + } + + }else { + return false; + } + + } + + @Override + public int hashCode() + { + return (int) deviceID; + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/Member.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/Member.java new file mode 100644 index 0000000..2d255b6 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/Member.java @@ -0,0 +1,568 @@ +package com.tenlionsoft.baselib.core.beans; + + +import com.huawei.ecterminalsdk.base.TsdkAttendee; +import com.huawei.ecterminalsdk.base.TsdkAttendeeBaseInfo; +import com.huawei.ecterminalsdk.base.TsdkAttendeeStatusInfo; +import com.huawei.ecterminalsdk.base.TsdkConfParticipantStatus; +import com.huawei.ecterminalsdk.base.TsdkConfRole; +import com.tenlionsoft.baselib.constant.ConfConstant; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * This method is used to conf member info. + * 与会者信息 + */ +public class Member implements Serializable { + + // 与会者列表排序字段 + private String sort; + + /** + * SMC3.0 会议室必传字段 + */ + private String tpSpeed; + + /** + * SMC3.0 区分会议室和与会人 + */ + private String attendeeType; + + /** + * 与会者号码 + */ + private String number; + /** + * 与会者标识 + */ + private int userId; + /** + * 是否选看 + */ + private boolean isWatching = false; + + + /** + * 组织名称 + */ + private String organizationName; + + /** + * 与会人用户绑定的终端 + */ + private String uri; + + /** + * 终端类型 + */ + private String terminalType; + + public String getTerminalType() { + return terminalType; + } + + public void setTerminalType(String terminalType) { + this.terminalType = terminalType; + } + + public String getOrganizationName() { + return organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + private boolean isOpenCamera = true; + + public String getAttendeeType() { + return attendeeType; + } + + public void setAttendeeType(String attendeeType) { + this.attendeeType = attendeeType; + } + + public String getTpSpeed() { + return tpSpeed; + } + + public void setTpSpeed(String tpSpeed) { + this.tpSpeed = tpSpeed; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + /** + * 来电姓名 + */ + private String displayName; + + /** + * email + * 邮箱 + */ + private String email; + + /** + * email + * 邮箱 + */ + private String mobile; + + + /** + * SMS + */ + private String sms; + + /** + * 帐号 + */ + private String accountId; + + /** + * 与会者状态 + */ + private ConfConstant.ParticipantStatus status; + + /** + * 与会者角色 + */ + private TsdkConfRole role; + + /** + * 是否静音 + */ + private boolean isMute; + + /** + * 是否举手 + */ + private boolean isHandUp; + + /** + * 是否申请发言 + */ + private boolean isReqTalk; + + /** + * 是否已在数据会议中 + */ + private boolean inDataConference; + + /** + * 是否是主席 + */ + private boolean isHost; + + /** + * 是否主讲人 + */ + private boolean isPresent; + + /** + * 用户id + */ + private long dataUserId; + + /** + * 与会者id + */ + private String participantId; + + /** + * 是否是自己 + */ + private boolean isSelf; + + /** + * 是否自动邀请 + */ + private boolean isAutoInvite; + + /** + * 是否广播自己 + */ + private boolean isBroadcastSelf; + /** + * 是否语音入会 + */ + private boolean isAudio; + + /** + * 摄像头列表 + */ + private List cameraEntityList = new ArrayList<>(); + /** + * 点名 + */ + private boolean rollCall = false; + + private int decodeSsrc; + + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public boolean isRollCall() { + return rollCall; + } + + public void setRollCall(boolean rollCall) { + this.rollCall = rollCall; + } + + public Member() { + + } + + public Member(String number, String accountId, TsdkConfRole role, String displayName) { + this.number = number; + this.accountId = accountId; + this.role = role; + this.displayName = displayName; + } + + public boolean isWatching() { + return isWatching; + } + + public void setWatching(boolean watching) { + isWatching = watching; + } + + public Member(String number) { + this.number = number; + } + + public boolean isReqTalk() { + return isReqTalk; + } + + public void setReqTalk(boolean reqTalk) { + isReqTalk = reqTalk; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getDisplayName() { + if ((displayName == null) || (displayName.equals(""))) { + return number; + } + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getSms() { + return sms; + } + + public void setSms(String sms) { + this.sms = sms; + } + + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public boolean isMute() { + return isMute; + } + + public void setMute(boolean mute) { + isMute = mute; + } + + public boolean isAutoInvite() { + return isAutoInvite; + } + + public void setAutoInvite(boolean autoInvite) { + isAutoInvite = autoInvite; + } + + public boolean isBroadcastSelf() { + return isBroadcastSelf; + } + + public void setBroadcastSelf(boolean broadcastSelf) { + isBroadcastSelf = broadcastSelf; + } + + public TsdkConfRole getRole() { + return role; + } + + public void setRole(TsdkConfRole role) { + this.role = role; + } + + public void setIsAudio(boolean audio) { + isAudio = audio; + } + + public boolean getIsAudio() { + return isAudio; + } + + + public boolean isHandUp() { + return isHandUp; + } + + public void setHandUp(boolean handUp) { + isHandUp = handUp; + } + + + public ConfConstant.ParticipantStatus getStatus() { + return status; + } + + public void setStatus(ConfConstant.ParticipantStatus status) { + this.status = status; + } + + public boolean isSelf() { + return isSelf; + } + + public void setSelf(boolean self) { + isSelf = self; + } + + + public List getCameraEntityList() { + return cameraEntityList; + } + + public void setCameraEntityList(List cameraEntityList) { + this.cameraEntityList = cameraEntityList; + } + + public void replaceCamera(CameraEntity cameraEntity) { + int index = cameraEntityList.indexOf(cameraEntity); + if (index == -1) { + cameraEntityList.add(cameraEntity); + } else { + cameraEntityList.set(index, cameraEntity); + } + } + + public void updateCamera(long deviceID, int status) { + for (CameraEntity cameraEntity : cameraEntityList) { + if (cameraEntity.getDeviceID() == deviceID) { + cameraEntity.setCameraStatus(status); + return; + } + } + } + + public CameraEntity getOpenedCamera() { + for (CameraEntity cameraEntity : cameraEntityList) { + if (cameraEntity.getCameraStatus() == CameraEntity.CAMERA_STATUS_OPENED) { + return cameraEntity; + } + } + return null; + } + + public boolean isHost() { + return isHost; + } + + public void setHost(boolean host) { + isHost = host; + } + + public boolean isPresent() { + return isPresent; + } + + public void setPresent(boolean present) { + this.isPresent = present; + } + + public boolean isInDataConference() { + return inDataConference; + } + + public void setInDataConference(boolean inDataConference) { + this.inDataConference = inDataConference; + } + + public long getDataUserId() { + return dataUserId; + } + + public void setDataUserId(long dataUserId) { + this.dataUserId = dataUserId; + } + + + public String getParticipantId() { + return participantId; + } + + public void setParticipantId(String participantId) { + this.participantId = participantId; + } + + public void update(TsdkAttendee attendeeInfo) { + TsdkAttendeeStatusInfo attendeeStatusInfo = attendeeInfo.getStatusInfo(); + TsdkAttendeeBaseInfo attendeeBaseInfo = attendeeInfo.getBaseInfo(); + setParticipantId(attendeeStatusInfo.getParticipantId()); + setNumber(attendeeBaseInfo.getNumber()); + setDisplayName(attendeeBaseInfo.getDisplayName()); + setAccountId(attendeeBaseInfo.getAccountId()); + setEmail(attendeeBaseInfo.getEmail()); + setSms(attendeeBaseInfo.getSms()); + setMute(attendeeStatusInfo.getIsMute() == 1); + setHandUp(attendeeStatusInfo.getIsHandup() == 1); + setReqTalk(attendeeStatusInfo.getIsReqTalk() == 1); + TsdkConfRole role = (TsdkConfRole.enumOf(attendeeBaseInfo.getRole())); + setRole(role); + setBroadcastSelf(attendeeStatusInfo.getIsBroadcast() == 1); + TsdkConfParticipantStatus participantStatus = TsdkConfParticipantStatus.enumOf(attendeeStatusInfo.getState()); + if (participantStatus != null) { + setStatus(convertConfctrlParticipantStatus(participantStatus)); + } + + setSelf((attendeeStatusInfo.getIsSelf() == 1)); + setInDataConference(attendeeStatusInfo.getIsJoinDataconf() == 1); + setPresent(attendeeStatusInfo.getIsPresent() == 1); + + } + public ConfConstant.ParticipantStatus convertConfctrlParticipantStatus(TsdkConfParticipantStatus state) { + ConfConstant.ParticipantStatus status = ConfConstant.ParticipantStatus.UNKNOWN; + switch (state) { + case TSDK_E_CONF_PARTICIPANT_STATUS_IN_CONF: + status = ConfConstant.ParticipantStatus.IN_CONF; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_CALLING: + status = ConfConstant.ParticipantStatus.CALLING; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_JOINING: + status = ConfConstant.ParticipantStatus.JOINING; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_LEAVED: + status = ConfConstant.ParticipantStatus.LEAVED; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_NO_EXIST: + status = ConfConstant.ParticipantStatus.NO_EXIST; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_BUSY: + status = ConfConstant.ParticipantStatus.BUSY; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_NO_ANSWER: + status = ConfConstant.ParticipantStatus.NO_ANSWER; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_REJECT: + status = ConfConstant.ParticipantStatus.REJECT; + break; + + case TSDK_E_CONF_PARTICIPANT_STATUS_CALL_FAILED: + status = ConfConstant.ParticipantStatus.CALL_FAILED; + break; + + default: + break; + } + return status; + } + public boolean isOpenCamera() { + return isOpenCamera; + } + + public void setOpenCamera(boolean openCamera) { + isOpenCamera = openCamera; + } + + public int getDecodeSsrc() { + return decodeSsrc; + } + + public void setDecodeSsrc(int decodeSsrc) { + this.decodeSsrc = decodeSsrc; + } + + @Override + public int hashCode() { + return number.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if ((obj == null) || (obj.getClass() != this.getClass())) { + return false; + } + + Member member = (Member) obj; + + return member.number.equals(this.number); + } + +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/SubtitleLanguage.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/SubtitleLanguage.java new file mode 100644 index 0000000..168de3a --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/SubtitleLanguage.java @@ -0,0 +1,30 @@ +package com.tenlionsoft.baselib.core.beans; + +/** + * 字幕源语言实体类 + */ +public class SubtitleLanguage { + private int id; + private String name; + + public SubtitleLanguage(int id, String name) { + this.id = id; + this.name = name; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/listener/ScreenListener.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/listener/ScreenListener.java new file mode 100644 index 0000000..251e302 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/listener/ScreenListener.java @@ -0,0 +1,110 @@ +package com.tenlionsoft.baselib.core.listener; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.PowerManager; + +/** + * @Time: 2021/8/2 + * @Author: isoftstone + * @Description:屏幕状态监听器 + */ +public class ScreenListener { + private final Context mContext; + private final ScreenBroadcastReceiver mScreenReceiver; + private ScreenStateListener mScreenStateListener; + + public ScreenListener(Context context) { + mContext = context; + mScreenReceiver = new ScreenBroadcastReceiver(); + } + + /** + * screen状态广播接收者 + */ + private class ScreenBroadcastReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (Intent.ACTION_SCREEN_ON.equals(action)) { + // 开屏 + mScreenStateListener.onScreenOn(); + } else if (Intent.ACTION_SCREEN_OFF.equals(action)) { + // 锁屏 + mScreenStateListener.onScreenOff(); + } else if (Intent.ACTION_USER_PRESENT.equals(action)) { + // 解锁 + mScreenStateListener.onUserPresent(); + } + } + } + + /** + * 开始监听screen状态 + * + * @param listener 监听器 + */ + public void begin(ScreenStateListener listener) { + mScreenStateListener = listener; + registerListener(); + getScreenState(); + } + + /** + * 获取screen状态 + */ + private void getScreenState() { + PowerManager manager = (PowerManager) mContext + .getSystemService(Context.POWER_SERVICE); + if (manager.isInteractive()) { + if (mScreenStateListener != null) { + mScreenStateListener.onScreenOn(); + } + } else { + if (mScreenStateListener != null) { + mScreenStateListener.onScreenOff(); + } + } + } + + /** + * 停止screen状态监听 + */ + public void unregisterListener() { + mContext.unregisterReceiver(mScreenReceiver); + } + + /** + * 启动screen状态广播接收器 + */ + private void registerListener() { + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_SCREEN_ON); + filter.addAction(Intent.ACTION_SCREEN_OFF); + filter.addAction(Intent.ACTION_USER_PRESENT); + mContext.registerReceiver(mScreenReceiver, filter); + } + + /** + * 返回给调用者屏幕状态信息 + */ + public interface ScreenStateListener { + /** + * 开屏 + */ + void onScreenOn(); + + /** + * 锁屏 + */ + void onScreenOff(); + + /** + * 解锁 + */ + void onUserPresent(); + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java index 83df0a4..a9a73f2 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java @@ -18,6 +18,7 @@ public class BaseUrlApi { public static final String SYS_SECURITY = "systembase/";/*社会治安*/ public static final String SYS_TASK = "systemtask/";/*任务系统*/ public static final String SYS_LIBRARY = "library/";/*知识库系统*/ + public static final String SYS_VISITS = "systemvisits/";/*信访系统*/ public static final String TEMP_IP = "http://192.168.0.120:8080/"; public static final String BASE_MAIN_IP = IP + SYS_USERCENTER; @@ -26,7 +27,8 @@ public class BaseUrlApi { public static final String BASE_HOUSE_IP = "http://192.168.0.111:8083/" + SYS_HOUSE; public static final String BASE_LIBRARY_IP = "http://192.168.0.109:9000/" + SYS_LIBRARY; public static final String BASE_PERSON_IP = "http://192.168.0.109:8080/" + SYS_POPULATION; - public static final String BASE_TASK_IP = "http://192.168.0.0.111:8080/" + SYS_TASK; + public static final String BASE_TASK_IP = "http://192.168.0.111:8080/" + SYS_TASK; + public static final String BASE_VISITS = "http://192.168.0.111:8084/" + SYS_VISITS; public static final String BASE_URL = BASE_MAIN_IP;//基础URL public static final String SOCKET_IP = "http://192.168.0.155:1991/websocket";/*SocketIP*/ @@ -46,4 +48,8 @@ public class BaseUrlApi { public static final int CAMERA_REQUEST_VIDEO = 0x2223;//相机视频 public static final int CAMERA_REQUEST_PHOTO = 0x2224;//相册视频 + + public static final int HW_CLOUD_PORT = 5061; + public static final String HW_CLOUD_URL = "123.60.231.50"; + public static final String SMART_CONSULT_URL = "https://www.cispirit.com/IntelligentConsulting"; } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/RetrofitManager.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/RetrofitManager.java index 7c88445..5c167c3 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/RetrofitManager.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/RetrofitManager.java @@ -20,7 +20,7 @@ public class RetrofitManager { /** * 超时时间 */ - public static final int TIMEOUT = 60; + public static final int TIMEOUT = 2; private static volatile RetrofitManager mInstance; private Retrofit mRetrofit; @@ -57,9 +57,9 @@ public class RetrofitManager { private OkHttpClient.Builder getOkBuilder() { OkHttpClient.Builder builder = new OkHttpClient.Builder(); // 设置超时 - builder.connectTimeout(TIMEOUT, TimeUnit.SECONDS); - builder.readTimeout(TIMEOUT, TimeUnit.SECONDS); - builder.writeTimeout(TIMEOUT, TimeUnit.SECONDS); + builder.connectTimeout(TIMEOUT, TimeUnit.MINUTES); + builder.readTimeout(TIMEOUT, TimeUnit.MINUTES); + builder.writeTimeout(TIMEOUT, TimeUnit.MINUTES); //封装公共参数 builder.addInterceptor(new AreaInterceptor()); //builder.addInterceptor(new CommInterceptor()); diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/conver/BaseUrlInterceptor.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/conver/BaseUrlInterceptor.java index b571102..84239d7 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/conver/BaseUrlInterceptor.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/conver/BaseUrlInterceptor.java @@ -2,8 +2,6 @@ package com.tenlionsoft.baselib.core.retrofit_net.conver; import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi; -import com.tenlionsoft.baselib.utils.LogUtils; -import com.tenlionsoft.baselib.utils.UserLgUtils; import java.io.IOException; import java.util.List; diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java index 3434795..9700863 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java @@ -23,6 +23,7 @@ import android.text.TextWatcher; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.Menu; +import android.view.MotionEvent; import android.view.TouchDelegate; import android.view.View; import android.view.ViewGroup; @@ -114,6 +115,7 @@ public abstract class BaseActivity extends AppCompatActivity { protected AfxTextView mTvSearchBack; private boolean mIsExpand;//搜索框是否展开 + @SuppressLint("ClickableViewAccessibility") @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -513,6 +515,24 @@ public abstract class BaseActivity extends AppCompatActivity { hideSoftKeyboard(getCurrentFocus()); } + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + View v = getCurrentFocus(); + if (v != null) { + InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (im != null) { + im.hideSoftInputFromWindow(v.getWindowToken(), 0); + } + } + return super.dispatchTouchEvent(ev); + } + if (getWindow().superDispatchTouchEvent(ev)) { + return true; + } + return onTouchEvent(ev); + } + public void hideSoftKeyboard(View view) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (view != null) { diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseFragment.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseFragment.java index 251e3fa..8f4a85a 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseFragment.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseFragment.java @@ -14,6 +14,7 @@ import android.widget.TextView; import com.scwang.smart.refresh.layout.SmartRefreshLayout; import com.tenlionsoft.baselib.R; +import com.tenlionsoft.baselib.utils.LogUtils; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java new file mode 100755 index 0000000..9376426 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java @@ -0,0 +1,176 @@ +package com.tenlionsoft.baselib.core.widget.views; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.DisplayMetrics; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.RadioGroup; + +import com.bigkoo.pickerview.view.TimePickerView; +import com.hjq.toast.ToastUtils; +import com.tenlionsoft.baselib.R; + +import java.text.SimpleDateFormat; + + +/** + * 作者 : Adam on 2018/7/23. + * 邮箱 : itgaojian@163.com + * 描述 : 时间加输入 + */ +public class CenterInputChooseView extends Dialog { + + private boolean iscancelable; + private boolean isBackCancelable; + private View view; + private Context context; + private int gravity; + private OnChoseListener mListener; + private boolean mIsShow; + private boolean mIsShowOther; + private TimePickerView mTimePicker; + private EditText mEtContent; + private String mNoticeWay = "NOTICE"; + + private CenterInputChooseView(Context context, boolean isCancelable, boolean isBackCancelable, int gravity, boolean isShow, boolean isShowOther) { + super(context, R.style.dialog_center_alpha); + this.context = context; + this.gravity = gravity; + this.iscancelable = isCancelable; + this.isBackCancelable = isBackCancelable; + this.mIsShow = isShow; + this.mIsShowOther = isShowOther; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + view = LayoutInflater.from(context).inflate(R.layout.dialog_input_radio_oversee, null); + setContentView(view); + setCancelable(iscancelable); + setCanceledOnTouchOutside(isBackCancelable); + mEtContent = view.findViewById(R.id.et_content); + RadioGroup rgWay = view.findViewById(R.id.rg_way); + rgWay.setOnCheckedChangeListener((group, checkedId) -> { + if (checkedId == R.id.rb_way_1) { + //站内通知 + mNoticeWay = "NOTICE"; + } else if (checkedId == R.id.rb_way_2) { + //站内通知+短信 + mNoticeWay = "NM"; + } + }); + view.findViewById(R.id.btn_cancel).setOnClickListener(v -> this.dismiss()); + view.findViewById(R.id.btn_confirm).setOnClickListener(v -> doConfirm()); + DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); + Window window = this.getWindow(); + window.setGravity(Gravity.CENTER); + window.setWindowAnimations(R.style.dialog_center_alpha); + WindowManager.LayoutParams params = window.getAttributes(); + params.width = (int) (displayMetrics.widthPixels * 0.9); + params.height = WindowManager.LayoutParams.WRAP_CONTENT; + window.setAttributes(params); + window.setBackgroundDrawable(new ColorDrawable()); + } + + public void HideSoftKeyBoardDialog(Activity activity) { + try { + InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0); + } catch (Exception ex) { + + + } + } + + private void doConfirm() { + if (checkParams()) { + String content = mEtContent.getText().toString().trim(); + mListener.doConfirm(mNoticeWay, content); + } + } + + /** + * 校验参数 + */ + private boolean checkParams() { + String content = mEtContent.getText().toString().trim(); + if (TextUtils.isEmpty(content)) { + ToastUtils.show("请输入督办内容"); + return false; + } + return true; + } + + + public void addOnChoseListener(OnChoseListener listener) { + this.mListener = listener; + } + + /** + * 选择 + * + * @param i + */ + private void choseType(int i) { + this.dismiss(); + } + + public interface OnChoseListener { + void doConfirm(String list, String ids); + } + + public static class DialogBuilder { + private Context mContext; + private boolean isCancelable; + private boolean mIsBackable; + private int mGravity = Gravity.BOTTOM; + private OnChoseListener mListener; + private boolean mIsShowOther; + + public DialogBuilder(Context context) { + this.mContext = context; + } + + public DialogBuilder setIscancelable(boolean iscancelable) { + this.isCancelable = iscancelable; + return this; + } + + public DialogBuilder setIsBackCancelable(boolean isBackCancelable) { + this.mIsBackable = isBackCancelable; + return this; + } + + public DialogBuilder setShowLocation(int gravity) { + this.mGravity = gravity; + return this; + } + + private boolean mIsShow; + + public DialogBuilder setIsShowFile(boolean isShowFile) { + mIsShow = isShowFile; + return this; + } + + public DialogBuilder setIsShowOther(boolean isShow) { + mIsShowOther = isShow; + return this; + } + + public CenterInputChooseView build() { + return new CenterInputChooseView(this.mContext, this.isCancelable, this.mIsBackable, this.mGravity, mIsShow, mIsShowOther); + } + } +} \ No newline at end of file diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/EditOrDelPopup.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/EditOrDelPopup.java index 1df2c80..8430537 100644 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/EditOrDelPopup.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/EditOrDelPopup.java @@ -9,6 +9,7 @@ import com.tenlionsoft.baselib.R; import razerdp.basepopup.BasePopupWindow; + /** * 作者: adam * 日期: 2021/9/30 - 2:58 下午 diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LoadingDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LoadingDialog.java index bc63ce5..5cb670e 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LoadingDialog.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LoadingDialog.java @@ -12,6 +12,11 @@ public class LoadingDialog extends ProgressDialog { this.setCanceledOnTouchOutside(false); } + public LoadingDialog setLoadingText(String hint) { + this.setMessage(hint); + return this; + } + public void showDialog() { this.show(); } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/AppUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/AppUtils.java index 64ec0c1..4e6eed5 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/AppUtils.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/AppUtils.java @@ -128,7 +128,8 @@ public final class AppUtils { */ public static boolean isSupportCall() { String cpuSupportAbi = getCpuSupportAbi(); - return cpuSupportAbi.contains("arm64-v8a"); + boolean isSupport = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && cpuSupportAbi.contains("arm64-v8a"); + return isSupport; } /** diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedPreferencesUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedPreferencesUtils.java new file mode 100644 index 0000000..963db26 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedPreferencesUtils.java @@ -0,0 +1,20 @@ +package com.tenlionsoft.baselib.utils; + + +import com.pddstudio.preferences.encrypted.EncryptedPreferences; +import com.tenlionsoft.baselib.app.BaseAppContext; + +public class EncryptedPreferencesUtils { + + private static EncryptedPreferences instance; + + private EncryptedPreferencesUtils() { + } + + public static synchronized EncryptedPreferences getInstance() { + if (instance == null) { + instance = new EncryptedPreferences.Builder(BaseAppContext.getInstance()).withEncryptionPassword("citygovernance").build(); + } + return instance; + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedSPTool.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedSPTool.java new file mode 100644 index 0000000..baaf610 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/EncryptedSPTool.java @@ -0,0 +1,344 @@ +package com.tenlionsoft.baselib.utils; + +import android.content.Context; +import android.content.SharedPreferences; +import android.net.Uri; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.pddstudio.preferences.encrypted.EncryptedPreferences; +import com.tenlionsoft.baselib.constant.ConstantsV2; + +import java.lang.reflect.Type; +import java.util.LinkedList; + + +/** + * 加密本地缓存 + */ +public class EncryptedSPTool { + + /** + * SP中写入String类型value + * + * @param key 键 + * @param value 值 + */ + public static void putString(Context context, String key, String value) { + EncryptedPreferences.EncryptedEditor editor = EncryptedPreferencesUtils.getInstance().edit(); + editor.putString(key, value); + editor.apply(); + } + + /** + * SP中写入String类型value + * + * @param key 键 + * @param value 值 + */ + public static void putString(String key, String value) { + EncryptedPreferences.EncryptedEditor editor = EncryptedPreferencesUtils.getInstance().edit(); + editor.putString(key, value); + editor.apply(); + } + + /** + * SP中读取String + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值{@code defaultValue} + */ + public static String getString(Context context, String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + String value; + value = sp.getString(key, ""); + return value; + } + + /** + * SP中读取String + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值{@code defaultValue} + */ + public static String getString(String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + String value; + value = sp.getString(key, ""); + return value; + } + + /** + * SP中写入int类型value + * + * @param key 键 + * @param value 值 + */ + public static void putInt(String key, int value) { + EncryptedPreferences encryptedPreferences = EncryptedPreferencesUtils.getInstance(); + EncryptedPreferences.EncryptedEditor editor = encryptedPreferences.edit(); + editor.putInt(key, value); + editor.apply(); + } + + /** + * SP中读取int + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值-1 + */ + public static int getInt(Context context, String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + int value; + value = sp.getInt(key, -1); + return value; + } + + /** + * SP中读取int + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值0 + */ + public static int getInt(String key, int defaultValue) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + int value; + value = sp.getInt(key, defaultValue); + return value; + } + + /** + * SP中写入long类型value + * + * @param key 键 + * @param value 值 + */ + public static void putLong(Context context, String key, long value) { + EncryptedPreferences encryptedPreferences = EncryptedPreferencesUtils.getInstance(); + EncryptedPreferences.EncryptedEditor editor = encryptedPreferences.edit(); + editor.putLong(key, value); + editor.apply(); + } + + /** + * SP中读取long + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值-1 + */ + public static long getLong(Context context, String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + long value; + value = sp.getLong(key, -1L); + return value; + } + + /** + * SP中写入float类型value + * + * @param key 键 + * @param value 值 + */ + public static void putFloat(Context context, String key, float value) { + EncryptedPreferences encryptedPreferences = EncryptedPreferencesUtils.getInstance(); + EncryptedPreferences.EncryptedEditor editor = encryptedPreferences.edit(); + editor.putFloat(key, value); + editor.apply(); + } + + /** + * SP中读取float + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值-1 + */ + public static float getFloat(Context context, String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + float value; + value = sp.getFloat(key, -1F); + return value; + } + + /** + * SP中写入boolean类型value + * + * @param key 键 + * @param value 值 + */ + public static void putBoolean(String key, boolean value) { + EncryptedPreferences encryptedPreferences = EncryptedPreferencesUtils.getInstance(); + EncryptedPreferences.EncryptedEditor editor = encryptedPreferences.edit(); + editor.putBoolean(key, value); + editor.apply(); + } + + + /** + * SP中读取boolean + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值{@code defaultValue} + */ + public static boolean getBoolean(String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + boolean value; + value = sp.getBoolean(key, false); + return value; + } + + /** + * SP中读取boolean + * + * @param key 键 + * @return 存在返回对应值,不存在返回默认值{@code defaultValue} + */ + public static boolean getBoolean(String key, boolean b) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + boolean value; + value = sp.getBoolean(key, b); + return value; + } + + /** + * SP中移除该key + * + * @param key 键 + */ + public static void remove(String key) { + EncryptedPreferences sp = EncryptedPreferencesUtils.getInstance(); + sp.edit().remove(key).apply(); + } + + + /** + * 清除指定的信息 + * + * @param context 上下文 + * @param name 键名 + * @param key 若为null 则删除name下所有的键值 + */ + public static void clearPreference(Context context, String name, String key) { + EncryptedPreferences encryptedPreferences = EncryptedPreferencesUtils.getInstance(); + EncryptedPreferences.EncryptedEditor editor = encryptedPreferences.edit(); + if (key != null) { + editor.remove(key); + } else { + editor.clear(); + } + editor.apply(); + } + + /** + * 用于保存集合 + * + * @param context 上下文 + * @param key key + * @param list 集合数据 + * @return 保存结果 + */ + public static boolean putListData(Context context, String key, LinkedList list) { + boolean result; + SharedPreferences sp = context.getSharedPreferences(ConstantsV2.PREFS_ACCOUNT, + Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sp.edit(); + JsonArray array = new JsonArray(); + if (list.size() <= 0) { + editor.putString(key, array.toString()); + editor.apply(); + return false; + } + String type = list.get(0).getClass().getSimpleName(); + try { + switch (type) { + case "Boolean": + for (int i = 0; i < list.size(); i++) { + array.add((Boolean) list.get(i)); + } + break; + case "Long": + for (int i = 0; i < list.size(); i++) { + array.add((Long) list.get(i)); + } + break; + case "Float": + for (int i = 0; i < list.size(); i++) { + array.add((Float) list.get(i)); + } + break; + case "String": + for (int i = 0; i < list.size(); i++) { + array.add((String) list.get(i)); + } + break; + case "Integer": + for (int i = 0; i < list.size(); i++) { + array.add((Integer) list.get(i)); + } + break; + default: + Gson gson = new GsonBuilder() + .registerTypeAdapter(Uri.class, new UriSerializer()) + .create(); + for (int i = 0; i < list.size(); i++) { + JsonElement obj = gson.toJsonTree(list.get(i)); + array.add(obj); + } + break; + } + editor.putString(key, array.toString()); + result = true; + } catch (Exception e) { + result = false; + e.printStackTrace(); + } + editor.apply(); + return result; + } + + /** + * 获取保存的List + * + * @param context 上下文 + * @param key key + * @return 对应的Lis集合 + */ + public static LinkedList getListData(Context context, String key, Class cls) { + LinkedList list = new LinkedList<>(); + SharedPreferences sp = context.getSharedPreferences(ConstantsV2.PREFS_ACCOUNT, + Context.MODE_PRIVATE); + String json = sp.getString(key, ""); + if (!json.equals("") && json.length() > 0) { + Gson gson = new GsonBuilder() + .registerTypeAdapter(Uri.class, new UriSerializer()) + .create(); + JsonArray array = new JsonParser().parse(json).getAsJsonArray(); + for (JsonElement elem : array) { + list.add(gson.fromJson(elem, cls)); + } + } + return list; + } + + + public static class UriSerializer implements JsonSerializer, JsonDeserializer { + @Override + public JsonElement serialize(Uri src, Type typeOfSrc, JsonSerializationContext context) { + return new JsonPrimitive(src.toString()); + } + + @Override + public Uri deserialize(final JsonElement src, final Type srcType, + final JsonDeserializationContext context) throws JsonParseException { + return Uri.parse(src.getAsString()); + } + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/FileUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/FileUtils.java index 4b0ced9..458e8b5 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/FileUtils.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/FileUtils.java @@ -4,6 +4,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; +import com.tenlionsoft.baselib.app.BaseAppContext; + import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; @@ -1331,4 +1333,42 @@ public final class FileUtils { } } } + /** + * 将asset文件写入缓存 + */ + public static boolean copyAssetToFiles(String dirsName, String fileName) { + try { + File cacheDir = new File(BaseAppContext.getInstance().getFilesDir().getAbsolutePath() + "/" + dirsName); + if (!cacheDir.exists()) { + cacheDir.mkdirs(); + } + File outFile = new File(cacheDir, fileName); + if (!outFile.exists()) { + boolean res = outFile.createNewFile(); + if (!res) { + return false; + } + } else { + if (outFile.length() > 10) {//表示已经写入一次 + return true; + } + } + InputStream is = BaseAppContext.getInstance().getAssets().open(dirsName + "/" + fileName); + FileOutputStream fos = new FileOutputStream(outFile); + byte[] buffer = new byte[1024]; + int byteCount; + while ((byteCount = is.read(buffer)) != -1) { + fos.write(buffer, 0, byteCount); + } + fos.flush(); + is.close(); + fos.close(); + return true; + } catch (IOException e) { + e.printStackTrace(); + } + + return false; + } + } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/KeyBoardListener.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/KeyBoardListener.java new file mode 100644 index 0000000..63b2616 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/KeyBoardListener.java @@ -0,0 +1,71 @@ +package com.tenlionsoft.baselib.utils; + +import android.app.Activity; +import android.graphics.Rect; +import android.view.View; +import android.widget.FrameLayout; + +/** + * 作者: adam + * 日期: 2021/12/6 - 6:13 下午 + * 邮箱: itgaojian@163.com + * 描述: + */ +public class KeyBoardListener { + private Activity activity; + private View mChildOfContent; + private int usableHeightPrevious; + private FrameLayout.LayoutParams frameLayoutParams; + + private static KeyBoardListener keyBoardListener; + + + public static KeyBoardListener getInstance(Activity activity) { + keyBoardListener = new KeyBoardListener(activity); + return keyBoardListener; + } + + + public KeyBoardListener(Activity activity) { + super(); + this.activity = activity; + } + + + public void init() { + FrameLayout content = activity + .findViewById(android.R.id.content); + mChildOfContent = content.getChildAt(0); + mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener( + () -> possiblyResizeChildOfContent()); + frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent + .getLayoutParams(); + + + } + + + private void possiblyResizeChildOfContent() { + int usableHeightNow = computeUsableHeight(); + if (usableHeightNow != usableHeightPrevious) { + int usableHeightSansKeyboard = mChildOfContent.getRootView() + .getHeight(); + int heightDifference = usableHeightSansKeyboard - usableHeightNow; + if (heightDifference > (usableHeightSansKeyboard / 4)) { + frameLayoutParams.height = usableHeightSansKeyboard + - heightDifference; + } else { + frameLayoutParams.height = usableHeightSansKeyboard; + } + mChildOfContent.requestLayout(); + usableHeightPrevious = usableHeightNow; + } + } + + + private int computeUsableHeight() { + Rect r = new Rect(); + mChildOfContent.getWindowVisibleDisplayFrame(r); + return (r.bottom - r.top); + } +} diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/LogUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/LogUtils.java index 3b986bb..84ecf8e 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/LogUtils.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/LogUtils.java @@ -1067,4 +1067,6 @@ public final class LogUtils { } return objClass; } + + } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java index 348afce..a9ccc0b 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java @@ -10,6 +10,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.GregorianCalendar; import java.util.List; import java.util.Locale; @@ -123,6 +124,20 @@ public final class TimeUtils { return format.format(date); } + public static String getCurrentMonth() { + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); + return format.format(date); + } + + public static String getMonthEnd() { + Date date = new Date(); + GregorianCalendar cal = new GregorianCalendar(); + cal.setTime(date); + int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + return actualMaximum + ""; + } + /** * 获取当前时间 * diff --git a/baselib/src/main/res/drawable-xhdpi/ic_edit_gray_icon.png b/baselib/src/main/res/drawable-xhdpi/ic_edit_gray_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ba326538efdce5e1efa54c1c694ba1a56d8b5faf GIT binary patch literal 674 zcmV;T0$u%yP)Px%TuDShR9HvFm$8czK@`Tnofwiz5XC|Zn@Gs=#;7PZdZe%rD~q!e4l9d85KgcV zR8TBbEG!Nyi?cg8tSl^qC&6qJxHZ@GBR=rb7MByO?GqB?dbCf2auLLqgsN9{s3Sh#EmG5EXcn$ z696K52H?5_{g9b&&jdh9dC3^_%2mu5^HgiSlnBsjwf1C`80~g@%m1cUtL?2;s}X=B z&bux%A0KIf1&HH#GXunLX0G_-iRcA@t8RY~1TCf1yTSp8=n8-0GGXBr| zKuUSd81vkd{+8DI(XgCKR3MJyUm22c%O+u?(KuQvl@tIsA>T0bg`~N1Eks208o)&- z*k%v}$COfE3kM(~TUefW(l2VQmq#g?s6f)`IBb`MVR%9a@!1Qs#?15MY|I6Kh-_h* zbAoLMA!HOq>k|Wv`_QQ$cLChN;Fd_&Hvj6}907*qo IM6N<$f~|KYh5!Hn literal 0 HcmV?d00001 diff --git a/baselib/src/main/res/drawable/shp_circle_blue.xml b/baselib/src/main/res/drawable/shp_circle_blue.xml new file mode 100644 index 0000000..918a08a --- /dev/null +++ b/baselib/src/main/res/drawable/shp_circle_blue.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/baselib/src/main/res/drawable/shp_top_shadow_white.xml b/baselib/src/main/res/drawable/shp_top_shadow_white.xml new file mode 100644 index 0000000..85c70a7 --- /dev/null +++ b/baselib/src/main/res/drawable/shp_top_shadow_white.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/baselib/src/main/res/drawable/shp_top_shadow_white_no_radius.xml b/baselib/src/main/res/drawable/shp_top_shadow_white_no_radius.xml new file mode 100644 index 0000000..c212de3 --- /dev/null +++ b/baselib/src/main/res/drawable/shp_top_shadow_white_no_radius.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/baselib/src/main/res/layout/dialog_input_radio_oversee.xml b/baselib/src/main/res/layout/dialog_input_radio_oversee.xml new file mode 100755 index 0000000..8b32766 --- /dev/null +++ b/baselib/src/main/res/layout/dialog_input_radio_oversee.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +