Compare commits

...

60 Commits

Author SHA1 Message Date
4e4b5f90bb fix 重复调用弹窗接口 2023-09-21 11:14:01 +08:00
bcd8f7af52 Merge branch 'master' into dev_6.5.6 2023-09-16 14:38:28 +08:00
3595b89672 fix 调整英文PK惩罚倒计时过长问题 2023-09-16 14:24:06 +08:00
6e8842d30d update config加入网络失败提示 2023-09-16 14:23:43 +08:00
7b5cd9b797 update 中英文 2023-09-16 10:53:08 +08:00
9ec241f2a3 update 弹窗 2023-09-15 18:28:46 +08:00
a876018b0a update 弹窗布局 2023-09-15 18:12:40 +08:00
ea397af123 update 弹窗接口 2023-09-15 16:55:36 +08:00
a475e5dc2f update 中英文 2023-09-15 16:15:51 +08:00
54258c3f13 新增【弹框功能优化】 2023-09-15 14:54:45 +08:00
d383a08013 新增【弹框功能优化】 2023-09-15 10:04:02 +08:00
d1edf6bdd8 新增主播关播时,用户端调用离开房间 2023-09-11 10:41:56 +08:00
18401019693
7ca8694aed 修复在直播间内跳转自己的直播间问题 2023-09-11 10:29:16 +08:00
18401019693
406c67bf3a 修复在直播间内跳转自己的直播间问题 2023-09-08 15:58:32 +08:00
18401019693
d643df72bc 埋点配置 2023-09-08 15:57:33 +08:00
a3dacf1f59 调整盲盒说明页面地址 2023-09-06 18:28:10 +08:00
37605f46b7 調整中英文 2023-09-06 15:27:03 +08:00
18401019693
a4895df622 埋点配置 2023-09-06 14:40:45 +08:00
fc63cbbf50 update 2023-09-06 11:09:50 +08:00
b7ba717cb9 Merge branch 'dev_6.5.5'
# Conflicts:
#	common/src/main/res/values-en-rUS/string.xml
#	common/src/main/res/values-zh-rHK/strings.xml
#	common/src/main/res/values-zh-rTW/strings.xml
#	common/src/main/res/values-zh/strings.xml
#	common/src/main/res/values/strings.xml
#	live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
2023-09-06 10:42:05 +08:00
0c5ef0befe 跳转七日留存:新增点击打开用户卡片,新增@用户名颜色 2023-09-05 17:59:29 +08:00
18401019693
84d4423069 埋点配置 2023-09-05 14:25:50 +08:00
18401019693
0721ff4f37 Merge branch 'master_umeng'
# Conflicts:
#	app/proguard-rules.pro
#	common/src/main/res/values/strings.xml
#	live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java
2023-09-05 14:18:42 +08:00
a5b0ee757c 新增H5网页跳转直播间并打开礼物栏选中礼物功能 2023-09-05 13:52:45 +08:00
18401019693
82fd35305a 埋点配置 2023-09-05 13:24:21 +08:00
e89e82483b 调整中英文
调整开播频道接口
2023-09-04 16:25:06 +08:00
57bda40a82 调整中英文
调整开播频道接口
2023-09-02 11:16:01 +08:00
18401019693
93aa8e55e5 埋点配置 2023-09-02 10:10:50 +08:00
2e907bc1ed 移除重复点击事件监听 2023-08-31 16:16:36 +08:00
8d984951c3 新增主動PK結束通知 2023-08-31 15:14:15 +08:00
18401019693
dd6600a89e 埋点配置 2023-08-31 09:56:41 +08:00
18401019693
233469c7e4 埋点配置 2023-08-30 13:44:56 +08:00
357ece2ebe 补充Android13权限问题 2023-08-30 13:28:42 +08:00
18401019693
72e9633045 埋点配置 2023-08-30 13:21:40 +08:00
18401019693
7a31ca52da 埋点配置 2023-08-30 09:44:26 +08:00
18401019693
33930f3e32 埋点配置 2023-08-29 13:35:38 +08:00
8e19ddcc99 兼容Android13 连麦权限问题 2023-08-29 09:54:21 +08:00
18401019693
1a58311e26 埋点配置 2023-08-28 16:52:19 +08:00
9360e5438c 修复svga库被混淆不显示问题 2023-08-28 10:30:56 +08:00
fa8d8a7421 调整红包倒计时范围 2023-08-28 10:14:38 +08:00
18401019693
bebf0820ca 埋点配置 2023-08-25 15:12:48 +08:00
e1f4e8dde4 update 6.5.5 2023-08-24 16:31:14 +08:00
2b59b1b4fe Merge branch 'master' into dev_6.5.5 2023-08-24 15:02:05 +08:00
cee1476ab1 update 6.5.5 2023-08-24 14:26:38 +08:00
20a6bae5ff 更新美颜中英文繁体 2023-08-24 13:34:08 +08:00
b6732adfd2 调整礼物栏触碰事件拦截 2023-08-24 10:54:12 +08:00
bec031688e 调整礼物栏触碰事件拦截 2023-08-24 10:46:40 +08:00
7f11195ede update 6.5.5 2023-08-24 09:43:33 +08:00
d4ff9c3072 兼容Android13权限问题 2023-08-23 17:10:52 +08:00
0a442e7df9 兼容Android13权限问题 2023-08-23 17:02:16 +08:00
52f1a78e36 update 红包优化 2023-08-23 16:37:53 +08:00
18401019693
6bcaf2ba9c 埋点配置 2023-08-23 15:05:32 +08:00
18401019693
75b176a81e 6.5.4礼物冠名 2023-08-22 14:10:09 +08:00
18401019693
3de972d12c 6.5.4礼物冠名 2023-08-22 14:03:04 +08:00
18401019693
95252f2f02 6.5.4礼物冠名 2023-08-22 13:31:32 +08:00
18401019693
3b351ffad8 6.5.4礼物冠名 2023-08-22 10:13:57 +08:00
2332255b37 礼物栏等级页面补充中英文标识 2023-08-21 17:38:41 +08:00
18401019693
90c2f3e2da 6.5.4礼物冠名 2023-08-21 17:20:29 +08:00
18401019693
644615ffc0 6.5.4礼物冠名 2023-08-21 15:28:29 +08:00
18401019693
345c9067aa 6.5.4礼物冠名 2023-08-19 16:05:30 +08:00
168 changed files with 3297 additions and 1235 deletions

View File

@@ -1,96 +1,96 @@
<resources>
<string name="camera_dialog_title">警告</string>
<string name="sorry_no_permission">抱歉,你所使用的证书权限或SDK不包括功能。</string>
<string name="camera_dialog_message">机权限被禁用或者相机被别的应用占用!</string>
<string name="camera_dialog_open"></string>
<string name="sorry_no_permission">抱歉,你所使用的證書權限或SDK不包括功能。</string>
<string name="camera_dialog_message">機權限被禁用或者相機被別的應用佔用!</string>
<string name="camera_dialog_open"></string>
<string name="camera_dialog_back">退出</string>
<string name="fu_base_debug">Resolution:\n\t%dX%d\nFPS: %d\nRender time:\n\t%dms</string>
<string name="save_photo_success">保存照片成功!</string>
<string name="save_video_success">保存视频成功!</string>
<string name="save_video_failed">保存视频失败</string>
<string name="save_video_too_short">视频太短啦!</string>
<string name="save_video_wait">视频处理中稍等</string>
<string name="fu_base_is_tracking_text">检测到人</string>
<string name="fu_base_incomplete_face_text">不全</string>
<string name="fu_base_input_type_single">单输</string>
<string name="fu_base_input_type_double">双输</string>
<string name="save_video_success">保存視頻成功!</string>
<string name="save_video_failed">保存視頻失敗</string>
<string name="save_video_too_short">視頻太短啦!</string>
<string name="save_video_wait">視頻處理中稍等</string>
<string name="fu_base_is_tracking_text">檢測到人</string>
<string name="fu_base_incomplete_face_text">不全</string>
<string name="fu_base_input_type_single">單輸</string>
<string name="fu_base_input_type_double">雙輸</string>
<string name="beauty_box_heavy_blur_fine">磨皮</string>
<string name="beauty_box_color_level">美白</string>
<string name="beauty_box_red_level">红润</string>
<string name="beauty_box_sharpen"></string>
<string name="beauty_box_red_level">紅潤</string>
<string name="beauty_box_sharpen"></string>
<string name="beauty_box_eye_bright">亮眼</string>
<string name="beauty_box_tooth_whiten">美牙</string>
<string name="beauty_box_eye_enlarge">大眼</string>
<string name="beauty_box_eye_circle"></string>
<string name="beauty_box_eye_circle"></string>
<string name="beauty_box_cheek_natural">自然</string>
<string name="beauty_box_cheek_goddess">女神</string>
<string name="beauty_box_cheek_long_face">长脸</string>
<string name="beauty_box_cheek_round_face">圆脸</string>
<string name="beauty_box_cheek_thinning"></string>
<string name="beauty_box_cheek_v">V</string>
<string name="beauty_box_cheek_narrow"></string>
<string name="beauty_box_cheek_short"></string>
<string name="beauty_box_cheek_small"></string>
<string name="beauty_box_cheek_long_face">長臉</string>
<string name="beauty_box_cheek_round_face">圓臉</string>
<string name="beauty_box_cheek_thinning"></string>
<string name="beauty_box_cheek_v">V</string>
<string name="beauty_box_cheek_narrow"></string>
<string name="beauty_box_cheek_short"></string>
<string name="beauty_box_cheek_small"></string>
<string name="beauty_box_intensity_chin">下巴</string>
<string name="beauty_box_intensity_forehead">额头</string>
<string name="beauty_box_intensity_forehead">額頭</string>
<string name="beauty_box_intensity_nose">瘦鼻</string>
<string name="beauty_box_intensity_mouth">嘴型</string>
<string name="beauty_box_cheekbones"></string>
<string name="beauty_box_lower_jaw">瘦下</string>
<string name="beauty_radio_skin_beauty"></string>
<string name="beauty_box_cheekbones"></string>
<string name="beauty_box_lower_jaw">瘦下</string>
<string name="beauty_radio_skin_beauty"></string>
<string name="beauty_radio_face_shape">美型</string>
<string name="beauty_radio_filter">滤镜</string>
<string name="beauty_radio_style">格推</string>
<string name="beauty_radio_filter">濾鏡</string>
<string name="beauty_radio_style">格推</string>
<string name="beauty_micro_pouch">去黑眼圈</string>
<string name="beauty_micro_nasolabial">去法令</string>
<string name="beauty_micro_nasolabial">去法令</string>
<string name="beauty_micro_smile">微笑嘴角</string>
<string name="beauty_brow_height">眉毛上下</string>
<string name="beauty_brow_space"></string>
<string name="beauty_micro_canthus">眼角</string>
<string name="beauty_micro_philtrum">人中</string>
<string name="beauty_micro_long_nose"></string>
<string name="beauty_brow_space"></string>
<string name="beauty_micro_canthus">眼角</string>
<string name="beauty_micro_philtrum">人中</string>
<string name="beauty_micro_long_nose"></string>
<string name="beauty_micro_eye_space">眼距</string>
<string name="beauty_micro_eye_rotate">眼睛角度</string>
<string name="makeup_radio_lipstick"></string>
<string name="makeup_radio_blusher"></string>
<string name="makeup_radio_lipstick"></string>
<string name="makeup_radio_blusher"></string>
<string name="makeup_radio_eyebrow">眉毛</string>
<string name="makeup_radio_eye_shadow">眼影</string>
<string name="makeup_radio_eye_liner">线</string>
<string name="makeup_radio_eye_liner"></string>
<string name="makeup_radio_eyelash">睫毛</string>
<string name="makeup_radio_contact_lens">美瞳</string>
<string name="makeup_radio_foundation">粉底</string>
<string name="makeup_radio_highlight">高光</string>
<string name="makeup_radio_shadow"></string>
<string name="makeup_radio_remove"></string>
<string name="makeup_customize">自定</string>
<string name="makeup_radio_shadow"></string>
<string name="makeup_radio_remove"></string>
<string name="makeup_customize">自定</string>
<string name="makeup_peach_blossom">桃花</string>
<string name="makeup_boyfriend">男友</string>
<string name="makeup_clear">清透</string>
<string name="makeup_grapefruit">西柚</string>
<string name="select_data_photo">选择图</string>
<string name="select_data_video">选择视频</string>
<string name="select_data_title">请从相册中选择图片或视频</string>
<string name="image_file_does_not_exist">选图片文件不存在。</string>
<string name="video_file_does_not_exist">选视频文件不存在。</string>
<string name="select_data_photo">選擇圖</string>
<string name="select_data_video">選擇視頻</string>
<string name="select_data_title">請從相冊中選擇圖片或視頻</string>
<string name="image_file_does_not_exist">選圖片文件不存在。</string>
<string name="video_file_does_not_exist">選視頻文件不存在。</string>
<string name="future_warrior">张嘴试试</string>
<string name="jet_mask">鼓腮</string>
<string name="sdx2">皱眉试试</string>
<string name="future_warrior">張嘴試試</string>
<string name="jet_mask">鼓腮</string>
<string name="sdx2">皺眉試試</string>
<string name="luhantongkuan_ztt_fu">眨一眨眼</string>
<string name="qingqing_ztt_fu">嘟嘴试试</string>
<string name="xiaobianzi_zh_fu">微笑触发</string>
<string name="xiaoxueshen_ztt_fu">气触发</string>
<string name="hez_ztt_fu">张嘴试试</string>
<string name="qingqing_ztt_fu">嘟嘴試試</string>
<string name="xiaobianzi_zh_fu">微笑觸發</string>
<string name="xiaoxueshen_ztt_fu">氣觸發</string>
<string name="hez_ztt_fu">張嘴試試</string>
<string name="push_hand">推出手掌</string>
<string name="fu_lm_koreaheart">手手指比心</string>
<string name="ssd_thread_six"></string>
<string name="ssd_thread_cute">拳靠近脸颊卖</string>
<string name="fu_lm_koreaheart">手手指比心</string>
<string name="ssd_thread_six"></string>
<string name="ssd_thread_cute">拳靠近臉頰賣</string>
<string name="origin"></string>
<string name="origin"></string>
<string name="bailiang_1">白亮 1</string>
<string name="bailiang_2">白亮 2</string>
<string name="bailiang_3">白亮 3</string>
@@ -109,23 +109,23 @@
<string name="xiaoqingxin_3">小清新 3</string>
<string name="xiaoqingxin_4">小清新 4</string>
<string name="xiaoqingxin_6">小清新 6</string>
<string name="lengsediao_1">冷色 1</string>
<string name="lengsediao_2">冷色 2</string>
<string name="lengsediao_3">冷色 3</string>
<string name="lengsediao_4">冷色 4</string>
<string name="lengsediao_7">冷色 7</string>
<string name="lengsediao_8">冷色 8</string>
<string name="lengsediao_11">冷色 11</string>
<string name="nuansediao_1">暖色 1</string>
<string name="nuansediao_2">暖色 2</string>
<string name="gexing_1">性 1</string>
<string name="gexing_2">性 2</string>
<string name="gexing_3">性 3</string>
<string name="gexing_4">性 4</string>
<string name="gexing_5">性 5</string>
<string name="gexing_7">性 7</string>
<string name="gexing_10">性 10</string>
<string name="gexing_11">性 11</string>
<string name="lengsediao_1">冷色調 1</string>
<string name="lengsediao_2">冷色調 2</string>
<string name="lengsediao_3">冷色調 3</string>
<string name="lengsediao_4">冷色調 4</string>
<string name="lengsediao_7">冷色調 7</string>
<string name="lengsediao_8">冷色調 8</string>
<string name="lengsediao_11">冷色調 11</string>
<string name="nuansediao_1">暖色調 1</string>
<string name="nuansediao_2">暖色調 2</string>
<string name="gexing_1">性 1</string>
<string name="gexing_2">性 2</string>
<string name="gexing_3">性 3</string>
<string name="gexing_4">性 4</string>
<string name="gexing_5">性 5</string>
<string name="gexing_7">性 7</string>
<string name="gexing_10">性 10</string>
<string name="gexing_11">性 11</string>
<string name="heibai_1">黑白 1</string>
<string name="heibai_2">黑白 2</string>
<string name="heibai_3">黑白 3</string>
@@ -138,14 +138,14 @@
<string name="ziran_6">自然 6</string>
<string name="ziran_7">自然 7</string>
<string name="ziran_8">自然 8</string>
<string name="zhiganhui_1">感灰 1</string>
<string name="zhiganhui_2">感灰 2</string>
<string name="zhiganhui_3">感灰 3</string>
<string name="zhiganhui_4">感灰 4</string>
<string name="zhiganhui_5">感灰 5</string>
<string name="zhiganhui_6">感灰 6</string>
<string name="zhiganhui_7">感灰 7</string>
<string name="zhiganhui_8">感灰 8</string>
<string name="zhiganhui_1">感灰 1</string>
<string name="zhiganhui_2">感灰 2</string>
<string name="zhiganhui_3">感灰 3</string>
<string name="zhiganhui_4">感灰 4</string>
<string name="zhiganhui_5">感灰 5</string>
<string name="zhiganhui_6">感灰 6</string>
<string name="zhiganhui_7">感灰 7</string>
<string name="zhiganhui_8">感灰 8</string>
<string name="mitao_1">蜜桃 1</string>
<string name="mitao_2">蜜桃 2</string>
<string name="mitao_3">蜜桃 3</string>
@@ -155,85 +155,85 @@
<string name="mitao_7">蜜桃 7</string>
<string name="mitao_8">蜜桃 8</string>
<string name="beauty_face_style_none"></string>
<string name="beauty_face_style_1">格 1</string>
<string name="beauty_face_style_2">格 2</string>
<string name="beauty_face_style_3">格 3</string>
<string name="beauty_face_style_4">格 4</string>
<string name="beauty_face_style_5">格 5</string>
<string name="beauty_face_style_6">格 6</string>
<string name="beauty_face_style_7">格 7</string>
<string name="beauty_face_style_toast">使用%s先取消“格推</string>
<string name="beauty_face_style_none"></string>
<string name="beauty_face_style_1">格 1</string>
<string name="beauty_face_style_2">格 2</string>
<string name="beauty_face_style_3">格 3</string>
<string name="beauty_face_style_4">格 4</string>
<string name="beauty_face_style_5">格 5</string>
<string name="beauty_face_style_6">格 6</string>
<string name="beauty_face_style_7">格 7</string>
<string name="beauty_face_style_toast">使用%s先取消“格推</string>
<string name="poster_take_photo">对准线框 正脸拍摄</string>
<string name="poster_change_face_error">换失败</string>
<string name="poster_template_face_none">识别模板的人脸,请重新选择模板</string>
<string name="dialog_no_track_face">检测到人脸,请重新拍</string>
<string name="dialog_no_incomplete_face">不全,重新拍</string>
<string name="dialog_face_rotation_not_valid">脸偏转角度大,请正脸拍摄</string>
<string name="poster_take_photo">對準線框 正臉拍攝</string>
<string name="poster_change_face_error">換失敗</string>
<string name="poster_template_face_none">識別模板的人臉,請重新選擇模板</string>
<string name="dialog_no_track_face">檢測到人臉,請重新拍</string>
<string name="dialog_no_incomplete_face">不全,重新拍</string>
<string name="dialog_face_rotation_not_valid">臉偏轉角度大,請正臉拍攝</string>
<string name="dialog_got">知道啦</string>
<string name="tip_dual_face">检测到多人,请选择一人进行换脸</string>
<string name="tip_dual_face">檢測到多人,請選擇一人進行換臉</string>
<string name="animoji_filter">Animoji</string>
<string name="cartoon_filter">动漫滤镜</string>
<string name="cartoon_filter">動漫濾鏡</string>
<string name="delete_avatar_model">除模型</string>
<string name="delete_avatar_model">除模型</string>
<string name="new_avatar_model">新建模型</string>
<string name="edit_avatar_model">编辑模型</string>
<string name="edit_avatar_model">編輯模型</string>
<string name="avatar_face_hair"></string>
<string name="avatar_face_face"></string>
<string name="avatar_face_hair"></string>
<string name="avatar_face_face"></string>
<string name="avatar_face_eye">眼睛</string>
<string name="avatar_face_lip">嘴唇</string>
<string name="avatar_face_nose">鼻子</string>
<string name="avatar_face_length">脸型长</string>
<string name="avatar_face_width">脸颊宽</string>
<string name="avatar_chin_width">颚宽</string>
<string name="avatar_face_length">臉型長</string>
<string name="avatar_face_width">臉頰寬</string>
<string name="avatar_chin_width">顎寬</string>
<string name="avatar_chin_height">下巴高低</string>
<string name="avatar_eye_position">眼睛位置</string>
<string name="avatar_eye_corner_height">眼角高度</string>
<string name="avatar_eye_height">眼睛高低</string>
<string name="avatar_eye_width">眼睛</string>
<string name="avatar_eye_width">眼睛</string>
<string name="avatar_nose_position">鼻子位置</string>
<string name="avatar_nose_width">鼻翼</string>
<string name="avatar_nose_height">高低</string>
<string name="avatar_nose_width">鼻翼</string>
<string name="avatar_nose_height">高低</string>
<string name="avatar_mouth_position">嘴部位置</string>
<string name="avatar_up_lip_thickness">上唇厚度</string>
<string name="avatar_down_lip_thickness">下唇厚度</string>
<string name="avatar_lip_width">嘴唇</string>
<string name="model_empty_tip">还没有创建过模型哦</string>
<string name="dialog_reset_avatar_model">是否所有参数恢复到默值?</string>
<string name="avatar_face_customize">自定</string>
<string name="avatar_lip_width">嘴唇</string>
<string name="model_empty_tip">還沒有創建過模型哦</string>
<string name="dialog_reset_avatar_model">是否所有參數恢復到默值?</string>
<string name="avatar_face_customize">自定</string>
<string name="avatar_save_succeed">保存成功</string>
<string name="live_photo_back_not_save">返回后前操作将不会被保存哦</string>
<string name="live_photo_btn_delete"></string>
<string name="live_photo_back_not_save">返回后前操作將不會被保存哦</string>
<string name="live_photo_btn_delete"></string>
<string name="live_photo_btn_cancel">取消</string>
<string name="live_photo_btn_delete_">除(%d)</string>
<string name="live_photo_delete_effect">除道具</string>
<string name="live_photo__delete_all"></string>
<string name="live_photo_empty_list_tip">还没有创建过道具哦</string>
<string name="confirm"></string>
<string name="live_photo_btn_delete_">除(%d)</string>
<string name="live_photo_delete_effect">除道具</string>
<string name="live_photo__delete_all"></string>
<string name="live_photo_empty_list_tip">還沒有創建過道具哦</string>
<string name="confirm"></string>
<string name="cancel">取消</string>
<string name="dialog_confirm_delete">确定删除所中的道具?</string>
<string name="toast_delete_succeed">除成功</string>
<string name="toast_delete_failed">除失</string>
<string name="dialog_confirm_delete">確定刪除所中的道具?</string>
<string name="toast_delete_succeed">除成功</string>
<string name="toast_delete_failed">除失</string>
<string name="live_photo_save_succeed">道具保存成功</string>
<string name="recover"></string>
<string name="recover"></string>
<string name="makeup_lip_fog"></string>
<string name="makeup_lip_moist1">润泽</string>
<string name="makeup_lip_moist2">润泽</string>
<string name="makeup_lip_fog"></string>
<string name="makeup_lip_moist1">潤澤</string>
<string name="makeup_lip_moist2">潤澤</string>
<string name="makeup_lip_pearl">珠光</string>
<string name="makeup_lip_bitelip">咬唇</string>
<string name="makeup_blusher_apple">果肌</string>
<string name="makeup_blusher_apple">果肌</string>
<string name="makeup_blusher_fan">扇形</string>
<string name="makeup_blusher_eye_corner">眼角</string>
<string name="makeup_blusher_slight_drunk">微醺</string>
<string name="makeup_highlight_one">高光 I</string>
<string name="makeup_highlight_two">高光 II</string>
<string name="makeup_shadow_one">影 I</string>
<string name="makeup_shadow_one">影 I</string>
<string name="makeup_pupil_1">蜜糖</string>
<string name="makeup_pupil_2">奶茶</string>
<string name="makeup_pupil_3">水波</string>
@@ -241,106 +241,106 @@
<string name="makeup_pupil_5">孔雀</string>
<string name="makeup_pupil_6">星河</string>
<string name="makeup_pupil_7">落目</string>
<string name="makeup_pupil_8"></string>
<string name="makeup_eyebrow_willow"></string>
<string name="makeup_pupil_8"></string>
<string name="makeup_eyebrow_willow">恭弘=叶 恭弘</string>
<string name="makeup_eyebrow_wild">野生眉</string>
<string name="makeup_eyebrow_classical">古典眉</string>
<string name="makeup_eyebrow_standard">标准</string>
<string name="makeup_eye_shadow_single">色眼影</string>
<string name="makeup_eye_shadow_double1">色眼影 I</string>
<string name="makeup_eye_shadow_double2">色眼影 II</string>
<string name="makeup_eye_shadow_double3">色眼影 III</string>
<string name="makeup_eyebrow_standard">標準</string>
<string name="makeup_eye_shadow_single">色眼影</string>
<string name="makeup_eye_shadow_double1">色眼影 I</string>
<string name="makeup_eye_shadow_double2">色眼影 II</string>
<string name="makeup_eye_shadow_double3">色眼影 III</string>
<string name="makeup_eye_shadow_triple1">三色眼影 I</string>
<string name="makeup_eye_shadow_triple2">三色眼影 II</string>
<string name="makeup_eyelash_natural1">自然型 I</string>
<string name="makeup_eyelash_natural2">自然型 II</string>
<string name="makeup_eyelash_thick1">密型 I</string>
<string name="makeup_eyelash_thick2">密型 II</string>
<string name="makeup_eyelash_exaggerate1">夸张型 I</string>
<string name="makeup_eyelash_exaggerate2">夸张型 II</string>
<string name="makeup_eye_linear_cat"></string>
<string name="makeup_eyelash_thick1">密型 I</string>
<string name="makeup_eyelash_thick2">密型 II</string>
<string name="makeup_eyelash_exaggerate1">誇張型 I</string>
<string name="makeup_eyelash_exaggerate2">誇張型 II</string>
<string name="makeup_eye_linear_cat"></string>
<string name="makeup_eye_linear_drooping">下垂眼</string>
<string name="makeup_eye_linear_pull_open">眼距</string>
<string name="makeup_eye_linear_pull_open">眼距</string>
<string name="makeup_eye_linear_pull_close">拉近眼距</string>
<string name="makeup_eye_linear_long"></string>
<string name="makeup_eye_linear_circular"></string>
<string name="makeup_eye_linear_long"></string>
<string name="makeup_eye_linear_circular"></string>
<string name="makeup_combination_diadiatu">嗲嗲兔</string>
<string name="makeup_combination_dongling">冻龄</string>
<string name="makeup_combination_guofeng">国风</string>
<string name="makeup_combination_dongling">凍齡</string>
<string name="makeup_combination_guofeng">國風</string>
<string name="makeup_combination_hunxie">混血</string>
<string name="makeup_combination_sexy">性感</string>
<string name="makeup_combination_sweet">甜美</string>
<string name="makeup_combination_neighbor"></string>
<string name="makeup_combination_occident"></string>
<string name="makeup_combination_charming"></string>
<string name="makeup_combination_jianling">减龄</string>
<string name="makeup_combination_neighbor"></string>
<string name="makeup_combination_occident"></string>
<string name="makeup_combination_charming"></string>
<string name="makeup_combination_jianling">減齡</string>
<string name="makeup_combination_nuandong">暖冬</string>
<string name="makeup_combination_hongfeng">红枫</string>
<string name="makeup_combination_hongfeng">紅楓</string>
<string name="makeup_combination_shaonv">少女</string>
<string name="makeup_combination_ziyun"></string>
<string name="makeup_combination_yanshimao">厌世猫</string>
<string name="makeup_combination_renyu"></string>
<string name="makeup_combination_ziyun"></string>
<string name="makeup_combination_yanshimao">厭世貓</string>
<string name="makeup_combination_renyu"></string>
<string name="makeup_combination_chuqiu">初秋</string>
<string name="makeup_combination_qianzhihe">纸鹤</string>
<string name="makeup_combination_qianzhihe">紙鶴</string>
<string name="makeup_combination_chaomo">超模</string>
<string name="makeup_combination_chuju"></string>
<string name="makeup_combination_gangfeng"></string>
<string name="makeup_combination_chuju"></string>
<string name="makeup_combination_gangfeng"></string>
<string name="makeup_combination_rose">Rose</string>
<string name="slimming">瘦身</string>
<string name="long_legs"></string>
<string name="thin_waist"></string>
<string name="long_legs"></string>
<string name="thin_waist"></string>
<string name="beautify_shoulder">美肩</string>
<string name="beautify_hip_slim">美臀</string>
<string name="beautify_head_slim"></string>
<string name="beautify_head_slim"></string>
<string name="beautify_leg_thin_slim">瘦腿</string>
<string name="toast_not_detect_body">检测到人</string>
<string name="pta_human_full_body">全身驱动</string>
<string name="pta_human_half_body">半身驱动</string>
<string name="toast_not_detect_body">檢測到人</string>
<string name="pta_human_full_body">全身驅動</string>
<string name="pta_human_half_body">半身驅動</string>
<string name="select_data_photo_or_video">载入图片或视频</string>
<string name="toast_not_detect_gesture">检测到手</string>
<string name="select_data_photo_or_video">載入圖片或視頻</string>
<string name="toast_not_detect_gesture">檢測到手</string>
<string name="bg_seg_green_graphic"></string>
<string name="bg_seg_green_graphic"></string>
<string name="bg_seg_green_background">背景</string>
<string name="bg_seg_green_key_color">关键颜</string>
<string name="bg_seg_green_key_color">關鍵顏</string>
<string name="bg_seg_green_similarity">相似度</string>
<string name="bg_seg_green_smooth">平滑</string>
<string name="bg_seg_green_alpha">祛色度</string>
<string name="bg_seg_green_safe_area">安全</string>
<string name="bg_seg_green_safe_area">安全</string>
<string name="bg_seg_green_science">科技</string>
<string name="bg_seg_green_beach"></string>
<string name="bg_seg_green_beach"></string>
<string name="bg_seg_green_classroom">教室</string>
<string name="bg_seg_green_forest">森林</string>
<string name="bg_seg_green_ink">水墨</string>
<string name="dialog_guide_bg_seg_green">使用色背景拍,推荐绿色幕布效果最佳</string>
<string name="bg_seg_green_ink">水墨</string>
<string name="dialog_guide_bg_seg_green">使用色背景拍,推薦綠色幕布效果最佳</string>
<string name="dialog_i_know">我知道了</string>
<string name="download_error">载失败</string>
<string name="download_error">載失敗</string>
<string name="back">返回</string>
<string name="safe_area_tips">白色区域为安全域,不参与绿幕抠</string>
<string name="safe_area_tips">白色區域為安全域,不參与綠幕摳</string>
<string name="brow_height_tips">眉毛上下功能支持在高端上使用</string>
<string name="brow_space_tips">距功能支持在高端上使用</string>
<string name="brow_height_tips">眉毛上下功能支持在高端上使用</string>
<string name="brow_space_tips">距功能支持在高端上使用</string>
<string name="home_function_name_beauty"></string>
<string name="home_function_name_makeup"></string>
<string name="home_function_name_sticker">贴纸</string>
<string name="home_function_name_beauty_body"></string>
<string name="home_function_name_beauty"></string>
<string name="home_function_name_makeup"></string>
<string name="home_function_name_sticker">貼紙</string>
<string name="home_function_name_beauty_body"></string>
<string name="toast_not_detect_face">检测到人</string>
<string name="toast_not_detect_face_or_body">检测到人或人</string>
<string name="toast_not_detect_face">檢測到人</string>
<string name="toast_not_detect_face_or_body">檢測到人或人</string>
<string name="makeup_combination_naicha">奶茶</string>
<string name="makeup_combination_dousha">豆沙</string>
<string name="makeup_combination_chaoa">超A</string>
<string name="home_function_name_big_head">搞笑大</string>
<string name="home_function_name_big_head">搞笑大</string>
<string name="home_function_name_animoji">Animoji</string>
<string name="home_function_name_fine_sticker">精品贴纸</string>
<string name="home_function_name_fine_sticker">精品貼紙</string>
<string name="dialog_reset">重置</string>
<string name="menu_diy">自定義</string>

View File

@@ -16,33 +16,33 @@
<string name="fu_base_input_type_single">SingleInput</string>
<string name="fu_base_input_type_double">DualInput</string>
<string name="beauty_box_heavy_blur_fine">Fine smooth</string>
<string name="beauty_box_color_level">Whiten</string>
<string name="beauty_box_red_level">Ruddy</string>
<string name="beauty_box_heavy_blur_fine">Buffing</string>
<string name="beauty_box_color_level">Skin Tone</string>
<string name="beauty_box_red_level">Rosy</string>
<string name="beauty_box_sharpen">Sharpen</string>
<string name="beauty_box_eye_bright">Eye brighten</string>
<string name="beauty_box_tooth_whiten">Tooth whiten</string>
<string name="beauty_box_eye_enlarge">Eye enlarge</string>
<string name="beauty_box_eye_circle">Eye round</string>
<string name="beauty_box_cheek_natural">Natural</string>
<string name="beauty_box_eye_bright">Brighen</string>
<string name="beauty_box_tooth_whiten">Whiten</string>
<string name="beauty_box_eye_enlarge">Enlarge</string>
<string name="beauty_box_eye_circle">Round</string>
<string name="beauty_box_cheek_natural">Origin</string>
<string name="beauty_box_cheek_goddess">Goddess</string>
<string name="beauty_box_cheek_long_face">Long face</string>
<string name="beauty_box_cheek_round_face">Round face</string>
<string name="beauty_box_cheekbones">Cheekbone</string>
<string name="beauty_box_lower_jaw">Jawbone</string>
<string name="beauty_box_cheek_thinning">Cheek thin</string>
<string name="beauty_box_cheek_v">V face</string>
<string name="beauty_box_cheek_narrow">CheekNarrow</string>
<string name="beauty_box_cheek_short">Cheek short</string>
<string name="beauty_box_cheek_small">Cheek small</string>
<string name="beauty_box_intensity_chin">Chin</string>
<string name="beauty_box_intensity_forehead">Forehead</string>
<string name="beauty_box_intensity_nose">Nose</string>
<string name="beauty_box_intensity_mouth">Mouth</string>
<string name="beauty_radio_skin_beauty">Skin</string>
<string name="beauty_radio_face_shape">Reshape</string>
<string name="beauty_box_cheekbones">Cheek</string>
<string name="beauty_box_lower_jaw">Jaw</string>
<string name="beauty_box_cheek_thinning">Lower Width</string>
<string name="beauty_box_cheek_v">V Shape</string>
<string name="beauty_box_cheek_narrow">Upper Width</string>
<string name="beauty_box_cheek_short">Short Face</string>
<string name="beauty_box_cheek_small">Size Face</string>
<string name="beauty_box_intensity_chin">Chin Length</string>
<string name="beauty_box_intensity_forehead">Hairline</string>
<string name="beauty_box_intensity_nose">Nose Size</string>
<string name="beauty_box_intensity_mouth">Mouth Size</string>
<string name="beauty_radio_skin_beauty">Skincare</string>
<string name="beauty_radio_face_shape">Beauty type</string>
<string name="beauty_radio_filter">Filter</string>
<string name="beauty_radio_style">Presets</string>
<string name="beauty_radio_style">Style recommend</string>
<string name="makeup_radio_lipstick">Lipstick</string>
<string name="makeup_radio_blusher">Blush</string>
<string name="makeup_radio_eyebrow">Eyebrow</string>
@@ -59,16 +59,16 @@
<string name="makeup_boyfriend">Boyfriend</string>
<string name="makeup_clear">Clear</string>
<string name="makeup_grapefruit">Grapefruit</string>
<string name="beauty_micro_pouch">Circle</string>
<string name="beauty_micro_nasolabial">Wrinkles</string>
<string name="beauty_micro_pouch">Dark Circles</string>
<string name="beauty_micro_nasolabial">Laugh Line</string>
<string name="beauty_micro_smile">Smile</string>
<string name="beauty_brow_height">Brow height</string>
<string name="beauty_brow_space">Brow space</string>
<string name="beauty_micro_canthus">Canthus</string>
<string name="beauty_micro_philtrum">Philtrum</string>
<string name="beauty_micro_long_nose">Length</string>
<string name="beauty_micro_eye_space">Eye distance</string>
<string name="beauty_micro_eye_rotate">Slant</string>
<string name="beauty_brow_height">Brow Position</string>
<string name="beauty_brow_space">Brow Distance</string>
<string name="beauty_micro_canthus">Inner Corner</string>
<string name="beauty_micro_philtrum">Mouth Position</string>
<string name="beauty_micro_long_nose">Nose Lift</string>
<string name="beauty_micro_eye_space">Eye Distance</string>
<string name="beauty_micro_eye_rotate">Eye Upturn</string>
<string name="beauty_face_style_none">None</string>
<string name="beauty_face_style_1">Style 1</string>
<string name="beauty_face_style_2">Style 2</string>
@@ -77,7 +77,7 @@
<string name="beauty_face_style_5">Style 5</string>
<string name="beauty_face_style_6">Style 6</string>
<string name="beauty_face_style_7">Style 7</string>
<string name="beauty_face_style_toast">To use %s, cancel \'Presets\' first.</string>
<string name="beauty_face_style_toast">To use %s, cancel \'Style recommend\' first.</string>
<string name="select_data_photo">Photo</string>
<string name="select_data_video">Video</string>

View File

@@ -235,4 +235,23 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
}
-keep class com.faceunity.wrapper.faceunity$LoadConfig*{
private static boolean sLoadedLibrary;
}
-keep class com.umeng.** {*;}
-keep class org.repackage.** {*;}
-keep class com.uyumao.** { *; }
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#----svga
-keep class com.opensource.svgaplayer.**{
public <methods>;
public static <fields>;
}

View File

@@ -6,7 +6,8 @@
<uses-permission
android:name="android.permission.CALL_PHONE"
tools:node="remove" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
<uses-permission
android:name="android.permission.CHANGE_CONFIGURATION"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.READ_LOGS"
@@ -62,6 +63,9 @@
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
@@ -81,12 +85,12 @@
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- Android11新增 -->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<queries>
<package android:name="com.twitter.android"/>
<package android:name="jp.naver.line.android"/>
<package android:name="com.twitter.android" />
<package android:name="jp.naver.line.android" />
</queries>
<application
@@ -95,30 +99,30 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:preserveLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="theme,label,icon,allowBackup">
<!-- <service-->
<!-- android:name="com.shayu.phonelive.utils.MyNotificationService">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<!-- <service-->
<!-- android:name="com.shayu.phonelive.utils.MyNotificationService">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<service
android:name="io.rong.push.platform.google.RongFirebaseMessagingService"
android:stopWithTask="false"
android:exported="false">
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity
android:name="com.shayu.phonelive.activity.LauncherActivity"
android:exported="true"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
android:exported="true">
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -130,7 +134,8 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="smvslm" />
<data android:scheme="um.64e40ee55488fe7b3afa2c96" />
</intent-filter>
</activity>
@@ -162,13 +167,16 @@
<meta-data
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="false"/>
<meta-data
android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
android:value="false" />
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
<receiver
android:name="com.shayu.phonelive.utils.CustomMessageReceiver"
android:exported="true">
@@ -186,12 +194,12 @@
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.appid"-->
<!-- android:value="106936673"/>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.cpid"-->
<!-- android:value="30086000612391734"/>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.appid"-->
<!-- android:value="106936673"/>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.cpid"-->
<!-- android:value="30086000612391734"/>-->
</application>
</manifest>

View File

@@ -32,6 +32,8 @@ import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
import com.tencent.imsdk.v2.V2TIMUserInfo;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
@@ -163,8 +165,23 @@ public class AppContext extends CommonAppContext {
if (isMainProcess()) {
OpenInstall.init(this);
}
//设置LOG开关默认为false
UMConfigure.setLogEnabled(true);
//友盟正式初始化
UMConfigure.init(getApplicationContext(), "64e40ee55488fe7b3afa2c96", "PDLive", UMConfigure.DEVICE_TYPE_PHONE,
"64e40ee55488fe7b3afa2c96");
//集成umeng-crash-vx.x.x.aar则需要关闭原有统计SDK异常捕获功能
MobclickAgent.setCatchUncaughtExceptions(false);
//PushSDK初始化(如使用推送SDK必须调用此方法)
//统计SDK是否支持采集在子进程中打点的自定义事件默认不支持
UMConfigure.setProcessEvent(true);//支持多进程打点
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
//初始化 AndroidUtilCode
Utils.init(this);

View File

@@ -229,8 +229,11 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
} else {
checkUidAndToken();
}
}else{
ToastUtil.show(getString(R.string.net_error));
}
}
});
}

View File

@@ -11,6 +11,7 @@ buildscript {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.fabric.io/public' }
maven { url 'http://maven.faceunity.com/repository/maven-public/' }//美颜库
maven { url 'https://repo1.maven.org/maven2/' }//埋点
google()
mavenCentral()
}
@@ -41,6 +42,7 @@ allprojects {
maven { url 'https://maven.fabric.io/public' }
maven { url 'http://maven.faceunity.com/repository/maven-public/' }//美颜库
maven { url "https://jitpack.io" }
maven { url 'https://repo1.maven.org/maven2/' }//埋点
google() // Google's Maven repository
}
}

View File

@@ -196,4 +196,8 @@ dependencies {
api 'com.github.gzu-liyujiang.AndroidPicker:WheelView:4.1.11'
//自定义圆角图片
api 'com.makeramen:roundedimageview:2.3.0'
// 友盟统计SDK
api 'com.umeng.umsdk:common:9.6.3'// 必选
api 'com.umeng.umsdk:asms:1.8.0'// 必选
api 'com.umeng.umsdk:uyumao:1.1.2' //高级运营分析功能依赖库使用卸载分析、开启反作弊能力请务必集成以免影响高级功能使用。common需搭配v9.6.3及以上版本asms需搭配v1.7.0及以上版本。需更新隐私声明。
}

View File

@@ -185,6 +185,7 @@ public class Constants {
public static final String LIVE_PK_END = "endPK";//结束PK以这个PK获取到的参数为准
public static final String RED_PACKET = "RedPacket";//红包通知
public static final String RED_PACKET_SUPER_JACKPOT = "RedPacketSuperJackpot";//超级红包通知
public static final String SOCKET_LIVE_MSG_TO_USER = "SendMsgToUser";//七日用户主播提示语
//游戏socket
public static final String SOCKET_GAME_ZJH = "startGame";//炸金花

View File

@@ -24,6 +24,7 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.R;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.LifeCycleListener;
@@ -178,11 +179,15 @@ public abstract class AbsActivity extends AppCompatActivity {
}
//友盟统计
// MobclickAgent.onResume(this);
MobclickAgent.onPageStart(this.mTag);
Log.e("MobclickAgent","MobclickAgent:_onResume_"+this.mTag);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPageEnd(this.mTag);
Log.e("MobclickAgent","MobclickAgent:_onPause_"+this.mTag);
if (mLifeCycleListeners != null) {
for (LifeCycleListener listener : mLifeCycleListeners) {
listener.onPause();
@@ -376,4 +381,5 @@ public abstract class AbsActivity extends AppCompatActivity {
break;
}
}
}

View File

@@ -25,6 +25,7 @@ import androidx.annotation.RequiresApi;
import com.alibaba.fastjson.JSON;
import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
@@ -169,7 +170,7 @@ public class WebViewActivity extends AbsActivity {
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
String appCachePath = mContext.getCacheDir().getAbsolutePath();
mWebView.getSettings().setAppCachePath(appCachePath);
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setUseWideViewPort(true); // 关键点
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
@@ -248,7 +249,10 @@ public class WebViewActivity extends AbsActivity {
mValueCallback2 = null;
}
public static void forward(Context context, String url, boolean addArgs) {
private static boolean mIsLive = false;
public static void forward(Context context, String url, boolean addArgs, boolean isLive) {
mIsLive = isLive;
if (Constants.LoginKefu) {
if (addArgs) {
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
@@ -259,8 +263,8 @@ public class WebViewActivity extends AbsActivity {
context.startActivity(intent);
}
public static void forward(Context context, String url) {
forward(context, url, true);
public static void forward(Context context, String url,boolean isLive) {
forward(context, url, true, isLive);
}
@@ -327,6 +331,7 @@ public class WebViewActivity extends AbsActivity {
if (Constants.isShowPage != -1) {
finish();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -405,7 +410,16 @@ public class WebViewActivity extends AbsActivity {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
if (mIsLive) {
finish();
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
}
finish();
}
@@ -422,4 +436,10 @@ public class WebViewActivity extends AbsActivity {
}
@Override
protected void onPause() {
super.onPause();
}
}

View File

@@ -12,6 +12,17 @@ public class GiftWallGiftDetail extends BaseModel {
private String avatar;
@SerializedName("naming_coin")
private String namingCoin;
@SerializedName("default_naming_coin")
private String default_naming_coin;
public String getDefault_naming_coin() {
return default_naming_coin;
}
public GiftWallGiftDetail setDefault_naming_coin(String default_naming_coin) {
this.default_naming_coin = default_naming_coin;
return this;
}
public int getUid() {
return uid;

View File

@@ -54,7 +54,8 @@ public class LiveBean implements Parcelable {
private String recommendCardIconSizeThree = "";
@SerializedName("red_packet_status")
private int redPacketStatus;
@SerializedName("giftId")
private String giftId;
private Map<String,String> params;//用于跳转Activity时扩展参数从首页Banner跳转到直播间时需要根据携带参数判断是否弹出新人特惠对话框
public String getRecommendCardIconSizeTwo() {
@@ -66,6 +67,14 @@ public class LiveBean implements Parcelable {
return this;
}
public String getGiftId() {
return giftId;
}
public void setGiftId(String giftId) {
this.giftId = giftId;
}
public String getRecommendCardIcon() {
if (TextUtils.isEmpty(recommendCardIconSizeThree)) {
if (!TextUtils.isEmpty(recommendCardIconSizeTwo)) {
@@ -444,6 +453,7 @@ public class LiveBean implements Parcelable {
this.recommendCardtype = in.readString();
this.recommendCardIconSizeTwo = in.readString();
this.recommendCardIconSizeThree = in.readString();
this.giftId = in.readString();
}
@Override
@@ -488,6 +498,7 @@ public class LiveBean implements Parcelable {
dest.writeString(this.recommendCardtype);
dest.writeString(this.recommendCardIconSizeTwo);
dest.writeString(this.recommendCardIconSizeThree);
dest.writeString(this.giftId);
}
public static final Creator<LiveBean> CREATOR = new Creator<LiveBean>() {

View File

@@ -1,6 +1,7 @@
package com.yunbao.common.bean;
import com.alibaba.fastjson.annotation.JSONField;
import com.google.gson.annotations.SerializedName;
/**
* Created by cxf on 2018/9/25.
@@ -16,6 +17,8 @@ public class LiveClassBean {
private boolean checked;
private String chinese;
private String english;
@SerializedName("channel_show")
private int channel_show;
public String getChinese() {
return chinese;
@@ -92,4 +95,12 @@ public class LiveClassBean {
public void setChecked(boolean checked) {
this.checked = checked;
}
public int getChannel_show() {
return channel_show;
}
public void setChannel_show(int channel_show) {
this.channel_show = channel_show;
}
}

View File

@@ -66,6 +66,28 @@ public class LiveGiftBean {
private String namingCoin;
@JSONField(name = "naming_user_coin")
private String namingUserCoin;
@JSONField(name = "blind_box_ticket")
private int blindBoxTicket;
@JSONField(name = "blind_box_ticket_id")
private int blindBoxTicketId;
public int getBlindBoxTicketId() {
return blindBoxTicketId;
}
public LiveGiftBean setBlindBoxTicketId(int blindBoxTicketId) {
this.blindBoxTicketId = blindBoxTicketId;
return this;
}
public int getBlindBoxTicket() {
return blindBoxTicket;
}
public LiveGiftBean setBlindBoxTicket(int blindBoxTicket) {
this.blindBoxTicket = blindBoxTicket;
return this;
}
public String getNamingUserCoin() {
return namingUserCoin;
@@ -202,7 +224,7 @@ public class LiveGiftBean {
return this;
}
private int fansGiftLevel=0;//粉丝团礼物等级要求
private int fansGiftLevel = 0;//粉丝团礼物等级要求
public int getFansGiftLevel() {
return fansGiftLevel;

View File

@@ -0,0 +1,169 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.StringUtil;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class OpenAdModel extends BaseModel {
public static final int TYPE_HOME = 1;//主页
public static final int TYPE_LIVE = 2;//直播间
public static final int TYPE_LIVE_DELAY = 3;//直播间延迟
public static final int MODEL_SQUARE = 1;//正方形
public static final int MODEL_RECTANGLE = 2;//长方形
public static final int MODEL_BOTTOM = 3;//底部
@SerializedName("id")
private int id;
@SerializedName("popup_location")
private int type = TYPE_HOME;
@SerializedName("activity_url")
private String url;
@SerializedName("image_url")
private String imageUrl;
@SerializedName("display_time")
private int showTime; //持续展示时间
@SerializedName("delay_show_time")
private int delayShowTime;//延迟展示时间
@SerializedName("popup_model")
private int model = MODEL_SQUARE;
@SerializedName("start_show_time")
private String startTime;//活动开始时间
@SerializedName("end_show_time")
private String endTime;//活动结束时间
@SerializedName("popup_permission")
private int permission;
public OpenAdModel() {
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getUrl() {
if (!url.startsWith("http://") || !url.startsWith("https://")) {
url = CommonAppConfig.HOST + url;
}
return url + "?t=" + System.currentTimeMillis() / 1000;
}
public void setUrl(String url) {
this.url = url;
}
public int getShowTime() {
return showTime * 1000;
}
public void setShowTime(int showTime) {
this.showTime = showTime;
}
public int getDelayShowTime() {
return delayShowTime * 1000;
}
public void setDelayShowTime(int delayShowTime) {
this.delayShowTime = delayShowTime;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public int getModel() {
return model;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public void setModel(int model) {
this.model = model;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPermission() {
return permission;
}
public void setPermission(int permission) {
this.permission = permission;
}
public boolean isInTime() {
if (StringUtil.isEmpty(startTime, endTime)) {
return true;
}
Date startTime = null;
Date endTime = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
try {
startTime = sdf.parse(this.startTime);
endTime = sdf.parse(this.endTime);
} catch (ParseException e) {
e.printStackTrace();
}
long time = System.currentTimeMillis();
return startTime.getTime() <= time && time <= endTime.getTime();
}
public boolean userIsPermission(boolean isGuard) {
if (permission == 4 && !isGuard) {//守护不可见
return false;
}
return true;
}
@Override
public String toString() {
return "OpenAdModel{" +
"id=" + id +
", type=" + type +
", url='" + url + '\'' +
", imageUrl='" + imageUrl + '\'' +
", showTime=" + showTime +
", delayShowTime=" + delayShowTime +
", model=" + model +
", startTime='" + startTime + '\'' +
", endTime='" + endTime + '\'' +
", permission='" + permission + '\'' +
'}';
}
}

View File

@@ -19,6 +19,8 @@ public class RedPacketInfoModel extends BaseModel {
private String redPacketMoney;
@SerializedName("red_packet_quantity")
private String redPacketQuantity;
@SerializedName("is_fans")
private String isFans;
@SerializedName("conditions")
private String conditions;
@SerializedName("create_time")
@@ -270,4 +272,12 @@ public class RedPacketInfoModel extends BaseModel {
this.userGoldenBean = userGoldenBean;
return this;
}
public boolean getIsFans() {
return isFans.equals("1");
}
public void setIsFans(String isFans) {
this.isFans = isFans;
}
}

View File

@@ -0,0 +1,39 @@
package com.yunbao.common.dialog;
import android.content.Context;
import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.impl.FullScreenPopupView;
/**
* 居中弹窗
*/
public abstract class AbsDialogFullScreenPopupWindow extends FullScreenPopupView {
public final Context mContext;
public AbsDialogFullScreenPopupWindow(@NonNull Context context) {
super(context);
this.mContext = context;
}
/**
* <a href="https://github.com/li-xiaojun/XPopup/wiki/5.-%E5%B8%B8%E7%94%A8%E8%AE%BE%E7%BD%AE">参考配置</a>
*/
public abstract void buildDialog(XPopup.Builder builder);
public abstract int bindLayoutId();
@Override
protected int getImplLayoutId() {
return bindLayoutId();
}
public void showDialog() {
XPopup.Builder builder = new XPopup.Builder(mContext);
builder.isDestroyOnDismiss(true);
builder.enableDrag(false);
buildDialog(builder);
builder.asCustom(this).show();
}
}

View File

@@ -0,0 +1,70 @@
package com.yunbao.common.dialog;
import android.content.Context;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.R;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.OpenAdModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
public class OpenAdBottomDialogPopup extends AbsDialogPopupWindow {
private ImageView mImageView;
private ImageView mClose;
private OpenAdModel model;
private OnItemClickListener<OpenAdModel> mListener;
public OpenAdBottomDialogPopup(@NonNull Context context, OpenAdModel model) {
super(context);
this.model = model;
}
@Override
public void buildDialog(XPopup.Builder builder) {
}
@Override
public int bindLayoutId() {
return R.layout.dialog_open_bottom_ad;
}
@Override
public void dismiss() {
super.dismiss();
if (mListener != null) {
mListener.onItemClick(model, 0);
mListener = null;
}
}
public OpenAdBottomDialogPopup setListener(OnItemClickListener<OpenAdModel> mListener) {
this.mListener = mListener;
return this;
}
@Override
protected void onCreate() {
super.onCreate();
mImageView = findViewById(R.id.img);
mClose = findViewById(R.id.close);
mImageView.setOnClickListener(v -> {
WebViewActivity.forward(mContext, model.getUrl(), model.getType() != OpenAdModel.TYPE_HOME);
if (mListener != null) {
mListener.onItemClick(model, 1);
mListener = null;
}
dismiss();
});
mClose.setOnClickListener(v -> dismiss());
ImgLoader.display(mContext, model.getImageUrl(), mImageView);
if (model.getShowTime() > 0) {
mClose.postDelayed(this::dismiss, model.getShowTime());
}
}
}

View File

@@ -0,0 +1,82 @@
package com.yunbao.common.dialog;
import android.content.Context;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.R;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.OpenAdModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ScreenDimenUtil;
public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
private ImageView mImageView;
private ImageView mClose;
private OpenAdModel model;
private OnItemClickListener<OpenAdModel> mListener;
public OpenAdCenterDialogPopup(@NonNull Context context, OpenAdModel model) {
super(context);
this.model = model;
}
public OpenAdCenterDialogPopup setListener(OnItemClickListener<OpenAdModel> mListener) {
this.mListener = mListener;
return this;
}
@Override
public void buildDialog(XPopup.Builder builder) {
}
@Override
public int bindLayoutId() {
return R.layout.dialog_open_center_ad;
}
@Override
public void dismiss() {
super.dismiss();
if (mListener != null) {
mListener.onItemClick(model, 0);
mListener = null;
}
}
@Override
protected void onCreate() {
super.onCreate();
mImageView = findViewById(R.id.img);
mClose = findViewById(R.id.close);
findViewById(R.id.layout).setOnClickListener(v -> dismiss());
mImageView.setOnClickListener(v -> {
WebViewActivity.forward(mContext, model.getUrl(), model.getType() != OpenAdModel.TYPE_HOME);
if (mListener != null) {
mListener.onItemClick(model, 1);
mListener = null;
}
dismiss();
});
mClose.setOnClickListener(v -> dismiss());
ImgLoader.display(mContext, model.getImageUrl(), mImageView);
int width = ScreenDimenUtil.getInstance().getScreenWdith() - DpUtil.dp2px(40);
int height = (int) (width * 1.4);
if (model.getModel() == OpenAdModel.MODEL_SQUARE) {
height = width;
}
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mImageView.getLayoutParams();
params.width = width;
params.height = height;
mImageView.setLayoutParams(params);
if (model.getShowTime() > 0) {
mClose.postDelayed(this::dismiss, model.getShowTime());
}
}
}

View File

@@ -7,6 +7,16 @@ public class GiftWallItemEvent extends BaseModel {
private GiftWallModel giftWallModel;
private boolean unlit;
private boolean csb;
public boolean isCsb() {
return csb;
}
public GiftWallItemEvent setCsb(boolean csb) {
this.csb = csb;
return this;
}
public GiftWallModel getGiftWallModel() {
return giftWallModel;

View File

@@ -13,6 +13,7 @@ import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
import com.lzy.okgo.request.PostRequest;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.R;
import com.yunbao.common.activity.ErrorActivity;
import com.yunbao.common.bean.ConfigBean;
@@ -260,6 +261,8 @@ public class CommonHttpUtil {
AppManager.getInstance().AppExit();
}
}).build().show();
} else {
ToastUtil.show(CommonAppContext.getTopActivity().getString(R.string.net_error) + "code:" + code + " msg:" + msg);
}
}

View File

@@ -6,10 +6,6 @@ import com.lzy.okgo.request.GetRequest;
import com.lzy.okgo.request.PostRequest;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.JsonBean;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MD5Util;
@@ -292,6 +288,7 @@ public class LiveHttpUtil {
/**
* 主播或管理员禁言
*
* @param time 禁言时间 (分)
*/
public static void setShutUp(String liveUid, String stream, int type, String touid, String time, HttpCallback callback) {
@@ -619,17 +616,19 @@ public class LiveHttpUtil {
* 观众给主播送礼物
*/
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, HttpCallback callback) {
sendGift(by, liveUid, stream, giftId, giftCount, 0, false,callback);
sendGift(by, liveUid, stream, giftId, giftCount, 0, false, callback);
}
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, HttpCallback callback) {
sendGift(by, liveUid, stream, giftId, giftCount, isContactGift, false,callback);
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, HttpCallback callback) {
sendGift(by, liveUid, stream, giftId, giftCount, isContactGift, false, callback);
}
/**
* 观众给主播送礼物
*
* @param isContactGift 是否为联系方式礼物
*/
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, boolean isFansGroupGift,HttpCallback callback) {
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, boolean isFansGroupGift, HttpCallback callback) {
HttpClient.getInstance().get("Live.sendGift", LiveHttpConsts.SEND_GIFT)
.params("liveuid", liveUid)
.params("stream", stream)
@@ -637,7 +636,20 @@ public class LiveHttpUtil {
.params("isContactGift", isContactGift)
.params("giftcount", giftCount)
.params("isprank", by)
.params("fans_exclusive_pack",isFansGroupGift?"1":"0")
.params("fans_exclusive_pack", isFansGroupGift ? "1" : "0")
.params("appVersion", CommonAppConfig.getInstance().getVersion())
.execute(callback);
}
public static void sendBlindBoxTicket(String by, String liveUid, String stream, int giftId, HttpCallback callback) {
HttpClient.getInstance().get("Live.sendBlindBoxTicket", LiveHttpConsts.SEND_GIFT)
.params("liveuid", liveUid)
.params("stream", stream)
.params("giftid", giftId)
.params("isContactGift", 0)
.params("giftcount", "1")
.params("isprank", by)
.params("fans_exclusive_pack", "0")
.params("appVersion", CommonAppConfig.getInstance().getVersion())
.execute(callback);
}

View File

@@ -40,6 +40,7 @@ import com.yunbao.common.bean.MsgSwitchDetailModel;
import com.yunbao.common.bean.NewPeopleInfo;
import com.yunbao.common.bean.NobleRankHideUserListModel;
import com.yunbao.common.bean.NobleTrumpetModel;
import com.yunbao.common.bean.OpenAdModel;
import com.yunbao.common.bean.PkRankBean;
import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.bean.PrankHttpTurntableBean;
@@ -766,18 +767,19 @@ public interface PDLiveApi {
/**
* 获取盲盒礼物当前数据
* 创建红包
*/
@GET("/api/public/?service=Live.createRedPacket")
Observable<ResponseModel<Object>> createRedPacket(
@Query("liveuid") String liveUid,
@Query("is_fans") int needFansGroup,
@Query("red_packet_money") String redPacketMoney,
@Query("red_packet_quantity") String redPacketQuantity,
@Query("conditions") String conditions
);
/**
* 获取盲盒礼物当前数据
* 获取红包数据
*/
@GET("/api/public/?service=Live.redPacketInfo")
Observable<ResponseModel<RedPacketInfoModel>> redPacketInfo(
@@ -889,7 +891,8 @@ public interface PDLiveApi {
@GET("/api/public/?service=Gift.giftDetail")
Observable<ResponseModel<GiftWallGiftDetail>> giftDetail(
@Query("liveuid") String liveUid,
@Query("gift_id") String giftId
@Query("gift_id") String giftId,
@Query("to_uid") String toUid
);
/**
@@ -967,5 +970,11 @@ public interface PDLiveApi {
@GET("/api/public/?service=gift.getGiftNamingInfo")
Observable<ResponseModel<GiftNamingInfoModel>> getGiftNamingInfo(@Query("gift_id") String giftId);
/**
* 活动弹窗
*/
@GET("/api/public/?service=Home.activityPopup")
Observable<ResponseModel<List<OpenAdModel>>> activityPopup();
}

View File

@@ -39,6 +39,7 @@ import com.yunbao.common.bean.LiveUserMailBoxModel;
import com.yunbao.common.bean.MedalAchievementModel;
import com.yunbao.common.bean.NobleRankHideUserListModel;
import com.yunbao.common.bean.NobleTrumpetModel;
import com.yunbao.common.bean.OpenAdModel;
import com.yunbao.common.bean.PkRankBean;
import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.bean.PrankHttpTurntableBean;
@@ -1631,10 +1632,11 @@ public class LiveNetManager {
* @param redPacketMoney 红包金额
* @param redPacketQuantity 红包数量
* @param conditions 红包领取条件 0.无 1.关注主播
* @param needFansGroup 是否需要加入粉丝团条件
*/
public void createRedPacket(String liveUid, String redPacketMoney, String redPacketQuantity, String conditions, HttpCallback<String> callback) {
public void createRedPacket(String liveUid, String redPacketMoney, String redPacketQuantity, String conditions, boolean needFansGroup, HttpCallback<String> callback) {
API.get().pdLiveApi(mContext)
.createRedPacket(liveUid, redPacketMoney, redPacketQuantity, conditions)
.createRedPacket(liveUid, needFansGroup ? 1 : 0, redPacketMoney, redPacketQuantity, conditions)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<Object>>() {
@@ -1929,9 +1931,9 @@ public class LiveNetManager {
}).isDisposed();
}
public void giftDetail(String liveUid, String giftId, HttpCallback<GiftWallGiftDetail> callback) {
public void giftDetail(String liveUid, String giftId, String toUid, HttpCallback<GiftWallGiftDetail> callback) {
API.get().pdLiveApi(mContext)
.giftDetail(liveUid, giftId)
.giftDetail(liveUid, giftId, toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<GiftWallGiftDetail>>() {
@@ -2171,7 +2173,7 @@ public class LiveNetManager {
}).isDisposed();
}
public void getGiftNamingInfo(String giftId,HttpCallback<GiftNamingInfoModel> callback) {
public void getGiftNamingInfo(String giftId, HttpCallback<GiftNamingInfoModel> callback) {
API.get().pdLiveApi(mContext)
.getGiftNamingInfo(giftId)
.subscribeOn(Schedulers.io())
@@ -2179,7 +2181,7 @@ public class LiveNetManager {
.subscribe(new Consumer<ResponseModel<GiftNamingInfoModel>>() {
@Override
public void accept(ResponseModel<GiftNamingInfoModel> liveGiftBeanResponseModel) throws Exception {
if (callback!=null){
if (callback != null) {
callback.onSuccess(liveGiftBeanResponseModel.getData().getInfo());
}
}
@@ -2193,6 +2195,29 @@ public class LiveNetManager {
}).isDisposed();
}
public void activityPopup(HttpCallback<List<OpenAdModel>> callback) {
API.get().pdLiveApi(mContext)
.activityPopup()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<OpenAdModel>>>() {
@Override
public void accept(ResponseModel<List<OpenAdModel>> listResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
throwable.printStackTrace();
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
/**
* 直播间取消网络请求
*/

View File

@@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.lzf.easyfloat.EasyFloat;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.event.DataUserInfoEvent;
@@ -301,6 +302,8 @@ public class IMLoginManager extends BaseCacheManager {
* @param model
*/
public void setupLoginUser(@NonNull IMLoginModel model) {
//当用户使用自有账号登录时,可以这样统计:
MobclickAgent.onProfileSignIn(String.valueOf(model.getId()));
this.userInfo = model;
if (userInfo != null && !TextUtils.isEmpty(userInfo.getToken())) {
token = userInfo.getToken();
@@ -425,6 +428,8 @@ public class IMLoginManager extends BaseCacheManager {
// IMCenter.getInstance().clearConversations(null, Conversation.ConversationType.PRIVATE);
RongcloudIMManager.logoutIM();
MessageIMManager.get(activity).logout();
//登出
MobclickAgent.onProfileSignOff();
put(IS_HINT, 0);
APPEasyFloat.getInstance().dismiss(activity);
if (EasyFloat.isShow("LiveFloatView")) {

View File

@@ -0,0 +1,175 @@
package com.yunbao.common.manager;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.OpenAdModel;
import com.yunbao.common.dialog.OpenAdBottomDialogPopup;
import com.yunbao.common.dialog.OpenAdCenterDialogPopup;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class OpenAdManager {
public static final int TYPE_HOME = 1;
public static final int TYPE_LIVE = 2;
private static final String TAG = "-----弹窗-----";
private Map<Integer, Boolean> showMap;
private List<OpenAdModel> list = null;
private Handler handler = new Handler(Looper.getMainLooper());
private Map<Integer, AdRunnable> runnableMap = new HashMap<>();
private int showType;
private OpenAdManager() {
showMap = new HashMap<>();
init(false);
}
public void reset() {
dismiss();
runnableMap.clear();
showMap.clear();
list.clear();
}
private static final class MInstanceHolder {
static final OpenAdManager mInstance = new OpenAdManager();
}
public static OpenAdManager getInstance() {
return MInstanceHolder.mInstance;
}
private void init(boolean isShow) {
if (list != null && list.isEmpty()) {
return;
}
LiveNetManager.get(CommonAppContext.getTopActivity())
.activityPopup(new HttpCallback<List<OpenAdModel>>() {
@Override
public void onSuccess(List<OpenAdModel> data) {
if (data == null || data.isEmpty()) {
Log.i(TAG, "onSuccess: 没有数据");
list = new ArrayList<>();
return;
}
list = data;
if (isShow) {
show(TYPE_HOME, false);
}
}
@Override
public void onError(String error) {
System.err.println("弹框列表:" + error);
}
});
}
public synchronized void show(int type, boolean isGuard) {
if (list == null) {
init(true);
return;
}
showType = type;
for (OpenAdModel model : list) {
if (model.getType() == type) {
if (type == OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)) {
continue;
}
if (runnableMap.containsKey(model.getId())) {
AdRunnable runnable = runnableMap.get(model.getId());
if (runnable != null) {
Log.d(TAG, "reset: " + model);
handler.removeCallbacks(runnable);
runnableMap.remove(model.getId());
}
}
if (!isShow(model)) {
Log.i(TAG, "show: " + model);
handler.postDelayed(new AdRunnable(model), model.getDelayShowTime());
} else {
Log.i(TAG, "notshow: " + model);
}
}
}
Log.i(TAG, "------------------------------");
}
public synchronized void dismiss() {
Log.d(TAG, "准备dismiss:" + runnableMap.size());
for (Integer model : runnableMap.keySet()) {
AdRunnable runnable = runnableMap.get(model);
Log.d(TAG, "dismiss:" + runnable);
if (runnable != null) {
runnable.dismiss();
handler.removeCallbacks(runnable);
}
}
runnableMap.clear();
}
private synchronized boolean isShow(OpenAdModel type) {
if (showMap.containsKey(type.getId()) && showMap.get(type.getId()) != null) {
return Boolean.TRUE.equals(showMap.get(type.getId()));
}
return false;
}
private class AdRunnable implements Runnable {
OpenAdModel model;
public AdRunnable(OpenAdModel model) {
this.model = model;
runnableMap.put(model.getId(), this);
}
public void dismiss() {
Log.e(TAG, "dismiss: " + model);
}
@Override
public synchronized void run() {
Log.i(TAG, "run: " + model);
if (model == null) {
ToastUtil.showDebug("model为空");
return;
}
if (!model.isInTime()) {
ToastUtil.showDebug("不在展示时间内:" + model.getStartTime() + "|" + model.getEndTime());
return;
}
if (isShow(model)) {
ToastUtil.showDebug(model.getId() + "|model展示过了");
return;
}
if (model.getType() != showType) {
return;
}
showMap.put(model.getId(), true);
if (model.getModel() == OpenAdModel.MODEL_BOTTOM) {
new OpenAdBottomDialogPopup(CommonAppContext.getTopActivity(), model)
.setListener((bean, position) -> {
})
.showDialog();
} else {
new OpenAdCenterDialogPopup(CommonAppContext.getTopActivity(), model)
.setListener((bean, position) -> {
})
.showDialog();
}
}
}
}

View File

@@ -239,7 +239,7 @@ public class PayPresenter {
public void open(String url){
//支付时内部跳转 false要添加
WebViewActivity.forward(mActivity,url,false);
WebViewActivity.forward(mActivity,url,false,false);
}

View File

@@ -7,6 +7,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
/**
@@ -88,7 +89,11 @@ public class FileUtil {
duration= Long.parseLong(time);
} catch (Exception ex) {
} finally {
mmr.release();
try {
mmr.release();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return duration;
}

View File

@@ -3,6 +3,7 @@ package com.yunbao.common.utils;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import com.yunbao.common.CommonAppConfig;
@@ -151,16 +152,19 @@ public class GiftCacheUtil {
return;
}
clickId.add(bean.getId()+"");
getFile(context,getDownloadSaveName(bean.getId()), bean.getSwf(), "0", new CommonCallback<File>() {
@Override
public void callback(File bean) {
if(bean!=null) {
clickId.remove(getIdForFileName(bean.getName())+"");
downloadCache.remove(getIdForFileName(bean.getName()));
if (!TextUtils.isEmpty( bean.getSwf())){
getFile(context,getDownloadSaveName(bean.getId()), bean.getSwf(), "0", new CommonCallback<File>() {
@Override
public void callback(File bean) {
if(bean!=null) {
clickId.remove(getIdForFileName(bean.getName())+"");
downloadCache.remove(getIdForFileName(bean.getName()));
}
mDownloadGifCallback.callback(bean);
}
mDownloadGifCallback.callback(bean);
}
});
});
}
}
/**
@@ -241,7 +245,7 @@ public class GiftCacheUtil {
if (clickId.contains(id+"")) {
continue;
}
if (bean.getSwf().isEmpty()) {
if (TextUtils.isEmpty(bean.getSwf())) {
handler.post(() -> commonCallback.callback(null));
continue;
}

View File

@@ -17,13 +17,16 @@ import com.alibaba.fastjson.JSONObject;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.ReportCommunityBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.VideoBean;
import com.yunbao.common.bean.VideoListBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
@@ -253,6 +256,49 @@ public class JavascriptInterfaceUtils {
}
/**
* 跳转直播并打开礼物栏选中礼物
* @param liveId 直播间id
* @param giftId 礼物id
*/
@JavascriptInterface
public void androidMethodLookToLiveGift(String liveId,String giftId){
LiveHttpUtil.getLiveInfo(liveId, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
if (liveBean == null) {
return;
}
liveBean.setGiftId(giftId);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
if (!"".endsWith(Constants.mStream)) {
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
}
androidGoBack();
}
@Override
public void onCheckError(String contextError) {
}
});
}
}
});
}
@JavascriptInterface
public void androidMethodLookToLive(String liveId) {
Bus.get().post(new JavascriptInterfaceEvent()
@@ -550,28 +596,32 @@ public class JavascriptInterfaceUtils {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("clickLogOffAccount"));
}
@JavascriptInterface
public void androidFansGroupBuy(String id){
public void androidFansGroupBuy(String id) {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidFansGroupBuy").setUserId(id));
}
@JavascriptInterface
public void androidFansGroupPack(){
public void androidFansGroupPack() {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidFansGroupPack"));
}
@JavascriptInterface
public void androidFansGroupInfo(){
public void androidFansGroupInfo() {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidFansGroupInfo"));
}
@JavascriptInterface
public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl,int isAnchor ) {
RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0,isAnchor==1);
public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl, int isAnchor) {
RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0, isAnchor == 1);
}
@JavascriptInterface
public void wearOrCancelFanMedal(){
public void wearOrCancelFanMedal() {
HttpClient.getInstance().get("User.getBaseInfos", "getBaseInfo")
.params("uid", IMLoginManager.get(mContext).getUserInfo().getId())
.params("token", IMLoginManager.get(mContext).getUserInfo().getToken())
@@ -587,8 +637,9 @@ public class JavascriptInterfaceUtils {
}
});
}
@JavascriptInterface
public void androidCancelAnchorAttention(){
public void androidCancelAnchorAttention() {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidCancelAnchorAttention"));
}

View File

@@ -134,7 +134,11 @@ public class MicStatusManager {
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
MicStatusManager.getInstance().clear();
ToastUtil.show("已成功退出語音連麥");
if(WordUtil.isNewZh()) {
ToastUtil.show("已成功退出語音連麥");
}else{
ToastUtil.show("You have successfully exited the voice connection");
}
}
});
}
@@ -193,7 +197,11 @@ public class MicStatusManager {
* 显示退出连麦状态对话框
*/
public void showDownMicDialog(Context context) {
DialogUitl.showSimpleDialog(context, "當前正在連麥中", new DialogUitl.SimpleCallback() {
String content="當前正在連麥中";
if(!WordUtil.isNewZh()){
content="Currently connecting the wheat";
}
DialogUitl.showSimpleDialog(context, content, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
// downMic(); //不做下麦跳转

View File

@@ -49,6 +49,15 @@ public class ProcessImageUtil extends ProcessResultUtil {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
mCameraPermissions = new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.CAMERA
};
mAlumbPermissions = new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
};
}
mCameraPermissionCallback = new Runnable() {
@Override
public void run() {

View File

@@ -80,7 +80,7 @@ public class ToastUtil {
}
public static void showDebug(String s){
if(BuildConfig.DEBUG){
show(s);
show("开发模式:"+s);
}
}
public static void showDebug(int s){

View File

@@ -1,5 +1,6 @@
package com.yunbao.common.utils;
import android.content.res.Configuration;
import android.content.res.Resources;
import com.yunbao.common.CommonAppContext;
@@ -31,8 +32,20 @@ public class WordUtil {
String language = locale.getLanguage();
return language.endsWith("zh");
}
public static boolean isNewZh(){
return IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE;
public static boolean isNewZh() {
return IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE;
}
public static String getNewString(int res) {
Configuration config = new Configuration();
Configuration tmp = sResources.getConfiguration();
config.setToDefaults();
config.locale = IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage();
sResources.updateConfiguration(config, sResources.getDisplayMetrics());
String str = sResources.getString(res);
sResources.updateConfiguration(tmp, sResources.getDisplayMetrics());
return str;
}
/**

View File

@@ -9,6 +9,7 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.R;
import com.yunbao.common.adapter.FunGamesAdapter;
@@ -22,7 +23,9 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FunGamesViewHolder extends RecyclerView.ViewHolder {
private FunGamesAdapter funGamesAdapter;
@@ -76,6 +79,7 @@ public class FunGamesViewHolder extends RecyclerView.ViewHolder {
.append("&token=")
.append(userInfo.getToken());
}
Bus.get().post(new CustomDrawerPopupEvent()
.setDisMiss(true)
.setHtmlUrl(htmlUrl.toString())

View File

@@ -25,14 +25,14 @@ public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder {
giftNumber = itemView.findViewById(R.id.gift_number);
}
public void showData(GiftWallModel giftWallModel,boolean sbWy) {
public void showData(GiftWallModel giftWallModel, boolean sbWy) {
giftTitle.setText(giftWallModel.getGiftname());
giftNumber.setText("*" + giftWallModel.getGiftCountNumber());
ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg);
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(true));
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(true).setCsb(true));
}
});
}

View File

@@ -30,7 +30,7 @@ public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder {
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(false));
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(false).setCsb(false));
}
});
}

View File

@@ -250,7 +250,8 @@ public class NobleNoticeView extends FrameLayout {
@Override
public void onStep(int frame, double v) {
System.out.println("frame = " + frame);
if (frame == 20) {
System.out.println("scrollLayout.getMeasuredWidth() = " + scrollLayout.getMeasuredWidth());
if (frame == 21) {
setButtonPosition(roleType);
observable.observeOn(AndroidSchedulers.mainThread())
.subscribe(bitmap -> {

View File

@@ -6,77 +6,194 @@
android:layout_gravity="bottom"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ImageView
android:id="@+id/operate_image"
android:layout_width="122dp"
android:layout_height="50dp"
android:layout_gravity="end|bottom"
android:layout_marginEnd="5dp"
android:scaleType="fitXY" />
<FrameLayout
android:id="@+id/blind_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:visibility="invisible">
<include
layout="@layout/view_blind_box" />
</FrameLayout>
<FrameLayout
android:id="@+id/naming_layout"
android:id="@+id/overlay"
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_gravity="bottom"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:layout_marginBottom="5dp">
android:layout_height="0dp"
android:layout_weight="1">
<ImageView
android:id="@+id/operate_image"
android:layout_width="122dp"
android:layout_height="50dp"
android:layout_gravity="end|bottom"
android:layout_marginEnd="5dp"
android:scaleType="fitXY" />
<FrameLayout
android:id="@+id/blind_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:visibility="invisible">
<include
layout="@layout/view_blind_box" />
</FrameLayout>
<FrameLayout
android:id="@+id/naming_layout"
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_gravity="bottom"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:layout_marginBottom="5dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/background_live_gift_gift_itle" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<ImageView
android:id="@+id/gift_itle"
android:layout_width="54dp"
android:layout_height="13dp"
android:layout_marginStart="13dp"
android:src="@mipmap/icon_live_gift_gift_itle" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/naming_avatar"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerHorizontal="true"
android:layout_marginStart="6dp"
android:scaleType="centerCrop"
android:src="@drawable/m_chu_xia"
app:riv_oval="true" />
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/naming_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="4dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="#FFFFFFFF"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
</FrameLayout>
<RelativeLayout
android:id="@+id/gift_list"
android:layout_width="match_parent"
android:layout_height="323dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/git_background2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/background_live_gift_gift_itle" />
android:src="@drawable/backgroud_custom_gift2"
app:riv_corner_radius_bottom_left="0dp"
app:riv_corner_radius_bottom_right="0dp"
app:riv_corner_radius_top_left="10dp"
app:riv_corner_radius_top_right="10dp" />
<LinearLayout
android:id="@+id/git_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:animateLayoutChanges="true">
<ImageView
android:id="@+id/gift_itle"
android:layout_width="54dp"
android:layout_height="13dp"
android:layout_marginStart="13dp"
android:src="@mipmap/icon_live_gift_gift_itle" />
<LinearLayout
android:id="@+id/leveling_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/naming_avatar"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_centerHorizontal="true"
android:layout_marginStart="6dp"
android:scaleType="centerCrop"
android:src="@drawable/m_chu_xia"
app:riv_oval="true" />
<FrameLayout
android:layout_width="40dp"
android:layout_height="22dp"
android:layout_marginStart="17dp"
android:layout_marginTop="9dp"
android:background="@mipmap/icon_grade_angle_mark">
<TextView
android:id="@+id/lv_str"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Lv.8"
android:textColor="@color/white"
android:textSize="12sp" />
</FrameLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="18dp"
android:layout_weight="1"
android:orientation="vertical">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="4dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progress_bg_user" />
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/leave_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="2dp"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/leveling_points"
android:textColor="#BBBBBB"
android:textSize="9sp" />
</LinearLayout>
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="14dp"
android:background="@mipmap/icon_right" />
</LinearLayout>
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/naming_name"
android:id="@+id/gift_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="4dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:ellipsize="marquee"
@@ -86,361 +203,245 @@
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="#FFFFFFFF"
android:textColor="#80FFFFFF"
android:textSize="12sp" />
</LinearLayout>
</FrameLayout>
</FrameLayout>
<RelativeLayout
android:id="@+id/gift_list"
android:layout_width="match_parent"
android:layout_height="323dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/git_background2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/backgroud_custom_gift2"
app:riv_corner_radius_bottom_left="0dp"
app:riv_corner_radius_bottom_right="0dp"
app:riv_corner_radius_top_left="10dp"
app:riv_corner_radius_top_right="10dp" />
<LinearLayout
android:id="@+id/git_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:animateLayoutChanges="true">
<LinearLayout
android:id="@+id/leveling_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone">
<FrameLayout
android:layout_width="40dp"
android:layout_height="22dp"
android:layout_marginStart="17dp"
android:layout_marginTop="9dp"
android:background="@mipmap/icon_grade_angle_mark">
android:id="@+id/btn_luck_gift_tip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<include layout="@layout/view_nobility" />
<TextView
android:id="@+id/lv_str"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Lv.8"
android:textColor="@color/white"
android:textSize="12sp" />
</FrameLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/gift_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="8dp"
android:paddingStart="16dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="18dp"
android:layout_weight="1"
android:orientation="vertical">
android:id="@+id/diamond_linear"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/background_gift_money"
android:gravity="center_vertical"
android:paddingStart="4dp"
android:paddingTop="7dp"
android:paddingBottom="7dp">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="4dp"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/progress_bg_user" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:clickable="false"
android:focusable="false"
android:src="@mipmap/diamond" />
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/leave_hint"
android:layout_width="match_parent"
<TextView
android:id="@+id/diamond_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="2dp"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:clickable="false"
android:focusable="false"
android:text="0"
android:textColor="@color/white"
android:textSize="12sp" />
<ImageView
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_marginEnd="4dp"
android:background="@mipmap/icon_right" />
</LinearLayout>
<LinearLayout
android:id="@+id/gold_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="8dp"
android:layout_toRightOf="@id/diamond_linear"
android:gravity="center_vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:clickable="false"
android:focusable="false"
android:src="@mipmap/gold_coin" />
<TextView
android:id="@+id/gold_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:clickable="false"
android:focusable="false"
android:text="10000000"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<FrameLayout
android:id="@+id/gift_send_layout"
android:layout_width="130dp"
android:layout_height="32dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="14dp">
<FrameLayout
android:id="@+id/gift_number_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="42dp"
android:background="@drawable/background_gift_money2">
<TextView
android:id="@+id/gift_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
android:text="1"
android:textColor="#F5C05A"
android:textSize="14sp" />
<ImageView
android:id="@+id/icon_arrow"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="30dp"
android:src="@mipmap/icon_arrow_right_2" />
</FrameLayout>
<TextView
android:id="@+id/live_gift_send"
android:layout_width="62dp"
android:layout_height="32dp"
android:layout_gravity="end"
android:background="@drawable/bg_live_gift_send_new"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/leveling_points"
android:textColor="#BBBBBB"
android:textSize="9sp" />
android:text="@string/live_gift_send"
android:textColor="@color/white"
android:textSize="14sp" />
</FrameLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/gift_bottom"
android:layout_below="@id/git_title"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp">
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/gift_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="8dp"
android:layout_marginEnd="10dp" />
<ImageView
android:layout_width="27dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="@drawable/icon_covering_layer"
android:scaleType="centerCrop" />
</FrameLayout>
<View
android:layout_width="1dp"
android:layout_height="11dp"
android:layout_gravity="center_vertical"
android:background="@color/white" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="10dp">
<TextView
android:id="@+id/live_wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="8dp"
android:text="@string/live_wrap"
android:textColor="#CCCDCE"
android:textSize="16sp" />
<View
android:id="@+id/red_point"
android:layout_width="6dp"
android:layout_height="6dp"
android:layout_gravity="end"
android:layout_marginEnd="6dp"
android:background="@drawable/bg_red_point" />
</FrameLayout>
</LinearLayout>
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="14dp"
android:background="@mipmap/icon_right" />
</LinearLayout>
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/gift_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="#80FFFFFF"
android:textSize="12sp" />
<FrameLayout
android:id="@+id/btn_luck_gift_tip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<include layout="@layout/view_nobility" />
</FrameLayout>
</LinearLayout>
<RelativeLayout
android:id="@+id/gift_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="8dp"
android:paddingStart="16dp">
<LinearLayout
android:id="@+id/diamond_linear"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/background_gift_money"
android:gravity="center_vertical"
android:paddingStart="4dp"
android:paddingTop="7dp"
android:paddingBottom="7dp">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:clickable="false"
android:focusable="false"
android:src="@mipmap/diamond" />
<TextView
android:id="@+id/diamond_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:clickable="false"
android:focusable="false"
android:text="0"
android:textColor="@color/white"
android:textSize="12sp" />
<ImageView
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_marginEnd="4dp"
android:background="@mipmap/icon_right" />
</LinearLayout>
<LinearLayout
android:id="@+id/gold_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="8dp"
android:layout_toRightOf="@id/diamond_linear"
android:gravity="center_vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:clickable="false"
android:focusable="false"
android:src="@mipmap/gold_coin" />
<TextView
android:id="@+id/gold_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:clickable="false"
android:focusable="false"
android:text="10000000"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<FrameLayout
android:id="@+id/gift_send_layout"
android:layout_width="130dp"
android:layout_height="32dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="14dp">
<FrameLayout
android:id="@+id/gift_number_layout"
android:id="@+id/context_layout_gift"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="42dp"
android:background="@drawable/background_gift_money2">
<TextView
android:id="@+id/gift_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
android:text="1"
android:textColor="#F5C05A"
android:textSize="14sp" />
<ImageView
android:id="@+id/icon_arrow"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="30dp"
android:src="@mipmap/icon_arrow_right_2" />
</FrameLayout>
<TextView
android:id="@+id/live_gift_send"
android:layout_width="62dp"
android:layout_height="32dp"
android:layout_gravity="end"
android:background="@drawable/bg_live_gift_send_new"
android:gravity="center"
android:text="@string/live_gift_send"
android:textColor="@color/white"
android:textSize="14sp" />
</FrameLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/gift_bottom"
android:layout_below="@id/git_title"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp">
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/gift_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="8dp"
android:layout_marginEnd="10dp" />
<ImageView
android:layout_width="27dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="@drawable/icon_covering_layer"
android:scaleType="centerCrop" />
</FrameLayout>
<View
android:layout_width="1dp"
android:layout_height="11dp"
android:layout_gravity="center_vertical"
android:background="@color/white" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="10dp">
<TextView
android:id="@+id/live_wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="8dp"
android:text="@string/live_wrap"
android:textColor="#CCCDCE"
android:textSize="16sp" />
<View
android:id="@+id/red_point"
android:layout_width="6dp"
android:layout_height="6dp"
android:layout_gravity="end"
android:layout_marginEnd="6dp"
android:background="@drawable/bg_red_point" />
</FrameLayout>
android:layout_height="196dp"
android:layout_marginTop="12dp" />
</LinearLayout>
<FrameLayout
android:id="@+id/context_layout_gift"
android:layout_width="match_parent"
android:layout_height="196dp"
android:layout_marginTop="12dp" />
<RelativeLayout
android:id="@+id/btn_send_lian"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:background="@mipmap/icon_live_gift_lian"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/live_gift_send_lian"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/lian_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:textColor="#fff"
android:textSize="14sp" />
<RelativeLayout
android:id="@+id/btn_send_lian"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:background="@mipmap/icon_live_gift_lian"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/live_gift_send_lian"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/lian_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:textColor="#fff"
android:textSize="14sp" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>

View File

@@ -15,7 +15,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="主播:"
android:text="@string/live_mic_anchor_to_user_dialog"
android:textColor="#161616"
android:textStyle="bold"
android:textSize="16sp"

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/img"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:scaleType="fitXY"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:adjustViewBounds="true"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@mipmap/background_gift_wall" />
<ImageView
android:id="@+id/close"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="14dp"
android:layout_marginBottom="12dp"
app:layout_constraintBottom_toTopOf="@+id/img"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@mipmap/ic_open_ad_close" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="12dp"
android:scaleType="fitEnd"
app:layout_constraintBottom_toTopOf="@+id/close"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/type1" />
<ImageView
android:id="@+id/close"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginBottom="202dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/img"
app:layout_constraintStart_toStartOf="@+id/img"
app:srcCompat="@mipmap/ic_open_ad_close" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -19,12 +19,14 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:gravity="center"
android:text="@string/instant_light"
android:textColor="#FFFFFF"
android:textSize="14sp" />
<TextView
android:id="@+id/gift_number"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"

View File

@@ -25,6 +25,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:text="@string/instant_light"
android:gravity="center"
android:textColor="#54618F"
android:textSize="14sp" />
</LinearLayout>

View File

@@ -42,7 +42,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="19dp"
android:layout_marginStart="75dp"
android:layout_marginTop="42dp"
android:layout_marginEnd="20dp"
android:layout_toStartOf="@+id/goto_room_view"

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

View File

@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="refresh_header_pulling">Drop down to refresh</string>
<string name="refresh_header_refreshing">Refreshing</string>
<string name="refresh_header_pulling">Pull down to refresh</string>
<string name="refresh_header_refreshing">Loading...</string>
<string name="refresh_header_loading">Loading</string>
<string name="refresh_header_release">Release refresh now</string>
<string name="refresh_header_release">Release to refresh</string>
<string name="refresh_header_finish">Refresh finish</string>
<string name="refresh_header_failed">refresh failed</string>
<string name="refresh_header_update">M-d HH:mm</string>
<string name="refresh_footer_pulling">Pull up to load more</string>
<string name="refresh_footer_release">Release load now</string>
<string name="refresh_footer_loading">Loading</string>
<string name="refresh_footer_refreshing">Refreshing</string>
<string name="refresh_footer_refreshing">Loading...</string>
<string name="refresh_footer_finish">Load complete</string>
<string name="refresh_footer_failed">Failed to load</string>
<string name="edit_one_1">Are you sure to use the data?</string>
@@ -56,14 +56,14 @@
<string name="coin_qq_not_install">No QQ installed</string>
<string name="copy_link">Replication link</string>
<string name="copy_success">Replication success</string>
<string name="edit_profile">Editing materials</string>
<string name="edit_profile_avatar">Head portrait</string>
<string name="edit_profile_nickname">Nickname</string>
<string name="edit_profile">Edit</string>
<string name="edit_profile_avatar">Photo</string>
<string name="edit_profile_nickname">Name</string>
<string name="edit_profile_update_nickname">ModifyName</string>
<string name="edit_profile_update_remarks">Modify remarks</string>
<string name="edit_profile_remarks">Please enter comments~</string>
<string name="edit_profile_update_sign">Signature</string>
<string name="edit_profile_sign">autograph</string>
<string name="edit_profile_sign">Bio</string>
<string name="bind_phone">Binding phone</string>
<string name="task1">TASK1</string>
<string name="task2">TASK2</string>
@@ -181,7 +181,7 @@
<string name="guard_tip_2">You are the current anchor\'s annual guardian \ n the guardian date expires</string>
<string name="guard_gift_tip">Special gift for annual guard</string>
<string name="guard_no_data_2">You haven\'t guarded</string>
<string name="guard_buy_tip">您為當前主播的月守護\n無法開通周守護</string>
<string name="guard_buy_tip">You are the monthly guardian of the current anchor\nUnable to enable weekly guard</string>
<string name="guard_buy_tip_2">You are the monthly guard of the current anchor. Opening the annual guard will cover your monthly guard time. Do you want to open it?</string>
<string name="guard_buy_tip_3">You will spend%1$s%2$s to open%3$s for the anchor</string>
<!-- <string name="guard_name_1">Guardian of the 7 day</string>-->
@@ -242,8 +242,8 @@
<string name="login_tip_2">Service and privacy terms</string>
<string name="login_other_type">Other login methods</string>
<string name="login_tip_3">More exciting experience after registering!</string>
<string name="login_input_phone">Please enter your mobile number</string>
<string name="login_input_pwd">Please input a password</string>
<string name="login_input_phone">Phone Number</string>
<string name="login_input_pwd">Password</string>
<string name="login_immediately_login">Login immediately</string>
<string name="login_ing">Logon</string>
<string name="login_immediately_register">Immediate registration</string>
@@ -254,9 +254,9 @@
<string name="login_auth_failure">privilege grant failed</string>
<string name="login_auth_cancle">Authorization cancelled</string>
<string name="live">Live broadcast</string>
<string name="login_tip_4">Login</string>
<string name="login_tip_4">Log in</string>
<string name="shopmall">shopmall</string>
<string name="recomment">Recomm</string>
<string name="recomment">Recommend</string>
<string name="cust_server">CSD</string>
<string name="live_anchor">anchor</string>
<string name="live_start">Live broadcast</string>
@@ -289,7 +289,7 @@
<string name="live_zg">Trickster</string>
<string name="live_dr">MultiplayerPK</string>
<string name="live_mic">Voice Link</string>
<string name="live_wks">Start</string>
<string name="live_wks">billboard</string>
<string name="live_zslk">LeaveTemporarily</string>
<string name="live_zslk1">ResumeLive</string>
<string name="live_flash">Flash lamp</string>
@@ -491,11 +491,11 @@
<string name="reg_register">register</string>
<string name="reg_input_phone">Please enter your mobile number</string>
<string name="reg_input_code">Please enter the verification code</string>
<string name="reg_input_pwd_1">Please fill in the password</string>
<string name="reg_input_pwd_2">Please confirm the password</string>
<string name="reg_input_pwd_3">Fill in the invitation code (optional)</string>
<string name="reg_input_pwd_1">Password</string>
<string name="reg_input_pwd_2">Password Again</string>
<string name="reg_input_pwd_3">Invite Code(Optional)</string>
<string name="reg_register_and_login">Register and log in</string>
<string name="reg_get_code">Get verification code</string>
<string name="reg_get_code">Get Code</string>
<string name="reg_get_code_again">Regain</string>
<string name="reg_pwd_error">Passwords are inconsistent</string>
<string name="reg_register_ing">In registration</string>
@@ -659,7 +659,7 @@
<string name="save">Preservation</string>
<string name="reg">Register</string>
<string name="no_more_mic">No one is currently in the voice link</string>
<string name="welcome_pdlive">Welcome to PDLIVE</string>
<string name="welcome_pdlive">Welcome to PDLive</string>
<string name="newcomer">Newcomer Bonus</string>
<string name="exp">EXP</string>
<string name="new_rewards">Complete newcomer tasks for more rewards</string>
@@ -829,17 +829,17 @@
<string name="live_issend">You can only speak after completing the previous task</string>
<string name="live_hot_give">Heat addition</string>
<string name="live_hot_time">Hot &#38; Time</string>
<string name="live_hot_give">HEATING</string>
<string name="live_hot_time">Heat &#38; Time</string>
<string name="live_hot_ruletext1"> 熱度可以給主播的房間增加曝光度,熱度越高的直播間,在首頁的排名也越靠前,從而帶來更多的進房用戶,幫助主播在一段時間內迅速提高房間熱度,送出之後立即生效。</string>
<string name="live_hot_ruletext2">熱度卡如何獲得?</string>
<string name="live_hot_ruletext3">1、周星榜主播冠軍的第一名用戶每週可自動獲得;</string>
<string name="live_hot_ruletext4">2、通過參與官方活動,具體活動可留意官方消息。</string>
<string name="live_hot_ruletext21">熱度卡如何使用?</string>
<string name="live_hot_ruletext22">前往「個人中心」-「我的包裹」中,即可使用熱度卡。</string>
<string name="live_hot_ruletext31">熱度卡生效多久?</string>
<string name="live_hot_ruletext32">對指定主播使用熱度卡後將會立即生效效果時長為24小時不管主播是否在線熱度時長都將會持續減少</string>
<string name="live_hot_ruletext1">The popularity can increase the exposure to the anchor\'s room. The higher the live broadcast room, the more popular on the homepage, which will bring more users in the house and help the anchor to quickly increase the room heat in a period of time. Immediately after the delivery Effective.</string>
<string name="live_hot_ruletext2">How to get the heat card?</string>
<string name="live_hot_ruletext3">1. The first user of Zhou Xingbang\'s anchor champion can automatically get it every week;</string>
<string name="live_hot_ruletext4">2. By participating in the official activities, the official news can be paid attention to.</string>
<string name="live_hot_ruletext21">How to use the heat card?</string>
<string name="live_hot_ruletext22">Go to the \"Personal Center\"-\"My Package\" to use the heat card.</string>
<string name="live_hot_ruletext31">How long does the heat card take effect?</string>
<string name="live_hot_ruletext32">After using the hot card for the designated anchor, it will take effect immediately. The effect time is 24 hours. Regardless of whether the anchor is online, the heat time will continue to decrease</string>
<string name="welcome_pd">Rewards coming!</string>
<string name="welcome_pd_tip">Receive free
Limited ride And limited avatar frame</string>
@@ -888,7 +888,7 @@ Limited ride And limited avatar frame</string>
<string name="online_service">Online Service</string>
<string name="popular_tickets">Hot Ticket</string>
<string name="register_and_log_in">Register and log in</string>
<string name="sign_up_for">Sign up for PD LIVE</string>
<string name="sign_up_for">Sign in PDlive</string>
<string name="tell_the_world">Tell the world</string>
<string name="better_emperor_hint">Tell the world! %s recommends anchor %s to everyone!</string>
<string name="emperor_hint">Tell the world! %s recommends the anchor %s to everyone, and the splendid glance is amazing</string>
@@ -1018,7 +1018,7 @@ Limited ride And limited avatar frame</string>
<string name="live_user_ban_fhd">There is no choice, the anchor is not turned on FHD live.</string>
<string name="live_user_ban_hd">There is no choice, the anchor is not turned on HD live.</string>
<string name="function_is_suspended">Sorry, this feature is on hold.</string>
<string name="phone_number">phone</string>
<string name="phone_number">Phone Number</string>
<string name="broadcast_data">Broadcast</string>
<string name="click_to_view">Click To View</string>
<string name="anchor_task">Anchor Task</string>
@@ -1047,14 +1047,14 @@ Limited ride And limited avatar frame</string>
<string name="go_to_the_sign">Go to the sign-in center</string>
<string name="confirm_pick_up">Confirm pick up</string>
<string name="customer_service2">Unable to login? Click here to contact customer service</string>
<string name="next_step_is_consent">By logging in, you agree to the Terms of</string>
<string name="user_protocol2"> Service</string>
<string name="and">and</string>
<string name="privacy_terms">Privacy</string>
<string name="next_step_is_consent">By continuing, you are agree to our Terms of </string>
<string name="user_protocol2"> use</string>
<string name="and">&amp;</string>
<string name="privacy_terms">Privacy Policy</string>
<string name="terms_and_policies">Terms and policies</string>
<string name="install_the_application">For details, please read the following message to install the application:</string>
<string name="treat_and_protect">Welcome to PD LIVE. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
<string name="anti_cheating_services">In order to provide you with one-click sharing service, our product integrates Mob+U-Share SDK, The Mob+SDK needs to collect your device Mac address, unique device identifier (1MEIandroid IDIDFAOPENUDIDGUID, SIM card IMSI information), and public social account information that you need to share in order to complete the one-click sharing service. And through the geographical location calibration report data accuracy, provide basic anti-cheating services. For the sake of your information security, we have made data security and confidentiality agreements with third-party SDK service providers, and these companies will strictly abide by our data privacy and security requirements. We will not share your personally identifiable information with them unless we have your consent. To facilitate you better understand/Mob + data types and USES, and how to protect your personal information, you can log on to https:www.mob.com aboutpolicy understand [Mob +] privacy policy).</string>
<string name="anti_cheating_services">In order to provide users with better services, our products integrate [Alliance SDK], SDK needs to collect your device information (IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP address /SIM card IMSI information, etc.), In order for you to better understand the types and purposes of the data collected by [Alliance SDK] and how to protect your personal information, you can log on to: https://www.umeng.com/page/policy Learn about [Alliance SDK] Privacy Policy [Alliance +] Privacy Policy [Alliance +], a third-party global big data service provider, providing customers with PC/APP/ offline statistics, advertising effect monitoring, message push/micro community/sharing /IM and other operating tools,DIP, global index and industry reports. https://www.umeng.com/page/policy</string>
<string name="read_and_agre">Clicking Agree means you have read and agree to all of the above.。</string>
<string name="agreement">agreement</string>
<string name="come_to">Welcome to PD LIVE.</string>
@@ -1126,7 +1126,7 @@ Limited ride And limited avatar frame</string>
<string name="unfollow_cancel">unfollow</string>
<string name="unfollow"> Where is the host doing badly~\nBrother, are you sure you want to unfollow?</string>
<string name="unfollow_confrim">follow</string>
<string name="heat_add">Heat Add</string>
<string name="heat_add">Heating</string>
<string name="live_room_chat_fount_size_low">LOW</string>
<string name="live_room_chat_fount_size_def">DEFAULT</string>
<string name="live_room_chat_fount_size_high">HIGH</string>
@@ -1150,7 +1150,7 @@ Limited ride And limited avatar frame</string>
<string name="delete_account1">Do you want to delete the account</string>
<string name="delete_account2">After clicking delete, it will take effect immediately and cannot be restored. Are you sure you want to continue?</string>
<string name="delete_account3">Confirm deletion</string>
<string name="complete_information">Fill And gift</string>
<string name="complete_information">Fill for Gift</string>
<string name="complete_information_consumable">Fill in the \'*\' option to complete</string>
<string name="love_powder">True love powder\nPhoto Frame(7 days)</string>
<string name="golden_beans_128">128 Golden Beans</string>
@@ -1211,7 +1211,7 @@ Limited ride And limited avatar frame</string>
<string name="red_packet_info_residue_none">None</string>
<string name="red_packet_info_residue_back">Return to account</string>
<string name="red_packet_user_tips2">Popularity Red packet</string>
<string name="main_tabs_red_packet">Red packets</string>
<string name="main_tabs_red_packet">Earn Cash</string>
<string name="save_popular_red_packets">Popular red packets</string>
<string name="amount">amount</string>
<string name="drill">Diamonds</string>
@@ -1312,6 +1312,12 @@ Limited ride And limited avatar frame</string>
<string name="cancel_ca">cancel</string>
<string name="settings_ser">settings</string>
<string name="too_many_gifts">Too many gifts</string>
<string name="list_for_lianmai">Current</string>
<string name="user_apply_for_lianmai">Apply for list</string>
<string name="live_mic_anchor_to_user_dialog">Anchor:</string>
<string name="trial_coupon">Whether to use trial coupons</string>
<string name="use_diamonds">Use diamonds</string>
<string name="live_send_red_packge_fans_group">Join a fans club</string>
<string name="live_pk_link_error">Sorry, your network failed to pull the other party.</string>
<string name="live_user_dialog_tips">say something</string>
</resources>

View File

@@ -1080,7 +1080,7 @@
<string name="terms_and_policies">條款和政策</string>
<string name="treat_and_protect">歡迎來到PD LIVE對於您的個人信息及隱私我們將採用最高標準對待和保護。</string>
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。</string>
<string name="anti_cheating_services">為了給用戶提供更好的服務,我們的產品集成[友盟SDK]SDK需要收集您的设备信息IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP地址/SIM 卡 IMSI 信息等),為便於您更好地了解[友盟SDK]采集的數據類型及用途,以及何保護您的個人信息,您可以登陸https://www.umeng.com/page/policy 了解[友盟SDK]隱私權政策【友盟+】隐私政策【友盟+】,第三方全域大数据服务提供商,为客户提供PC/APP/线下统计,广告效果监测,消息推送/微社区/分享/IM等运营工具,DIP,全域指数与行业报告等。https://www.umeng.com/page/policy</string>
<string name="agreement">同意</string>
<string name="read_and_agre">點擊同意後即代表您已閱讀並同意以上所有內容。</string>
<string name="support_login">本應用會收集位置數據以支持登錄和註冊的功能使用。</string>
@@ -1308,4 +1308,13 @@
<string name="cancel_ca">不再設置</string>
<string name="settings_ser">去設置</string>
<string name="too_many_gifts">重複添加禮物</string>
<string name="list_for_lianmai">當前連麥</string>
<string name="user_apply_for_lianmai">連麥申請</string>
<string name="live_mic_anchor_to_user_dialog">主播:</string>
<string name="trial_coupon">是否使用試用劵</string>
<string name="use_diamonds">使用鑽石</string>
<string name="live_send_red_packge_fans_group">加入粉絲團</string>
<string name="live_pk_link_error">抱歉,您的網絡不佳拉取對方畫面失敗</string>
<string name="live_user_dialog_tips">這家夥很懶,什麽都沒留下</string>
</resources>

View File

@@ -1080,7 +1080,7 @@
<string name="terms_and_policies">條款和政策</string>
<string name="treat_and_protect">歡迎來到PD LIVE對於您的個人信息及隱私我們將採用最高標準對待和保護。</string>
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。</string>
<string name="anti_cheating_services">為了給用戶提供更好的服務,我們的產品集成[友盟SDK]SDK需要收集您的设备信息IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP地址/SIM 卡 IMSI 信息等),為便於您更好地了解[友盟SDK]采集的數據類型及用途,以及何保護您的個人信息,您可以登陸https://www.umeng.com/page/policy 了解[友盟SDK]隱私權政策【友盟+】隐私政策【友盟+】,第三方全域大数据服务提供商,为客户提供PC/APP/线下统计,广告效果监测,消息推送/微社区/分享/IM等运营工具,DIP,全域指数与行业报告等。https://www.umeng.com/page/policy</string>
<string name="agreement">同意</string>
<string name="read_and_agre">點擊同意後即代表您已閱讀並同意以上所有內容。</string>
<string name="support_login">本應用會收集位置數據以支持登錄和註冊的功能使用。</string>
@@ -1307,4 +1307,13 @@
<string name="cancel_ca">不再設置</string>
<string name="settings_ser">去設置</string>
<string name="too_many_gifts">重複添加禮物</string>
<string name="live_send_red_packge_fans_group">加入粉絲團</string>
<string name="list_for_lianmai">當前連麥</string>
<string name="user_apply_for_lianmai">連麥申請</string>
<string name="live_mic_anchor_to_user_dialog">主播:</string>
<string name="trial_coupon">是否使用試用劵</string>
<string name="use_diamonds">使用鑽石</string>
<string name="live_pk_link_error">抱歉,您的網絡不佳拉取對方畫面失敗</string>
<string name="live_user_dialog_tips">這家夥很懶,什麽都沒留下</string>
</resources>

View File

@@ -1080,7 +1080,7 @@
<string name="terms_and_policies">條款和政策</string>
<string name="treat_and_protect">歡迎來到PD LIVE對於您的個人信息及隱私我們將採用最高標準對待和保護。</string>
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]採集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。</string>
<string name="anti_cheating_services">為了給用戶提供更好的服務,我們的產品集成[友盟SDK]SDK需要收集您的设备信息IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP地址/SIM 卡 IMSI 信息等),為便於您更好地了解[友盟SDK]采集的數據類型及用途,以及何保護您的個人信息,您可以登陸https://www.umeng.com/page/policy 了解[友盟SDK]隱私權政策【友盟+】隐私政策【友盟+】,第三方全域大数据服务提供商,为客户提供PC/APP/线下统计,广告效果监测,消息推送/微社区/分享/IM等运营工具,DIP,全域指数与行业报告等。https://www.umeng.com/page/policy</string>
<string name="agreement">同意</string>
<string name="read_and_agre">點擊同意後即代表您已閱讀並同意以上所有內容。</string>
<string name="support_login">本應用會收集位置數據以支持登錄和註冊的功能使用。</string>
@@ -1307,6 +1307,13 @@
<string name="cancel_ca">不再設置</string>
<string name="settings_ser">去設置</string>
<string name="too_many_gifts">重複添加禮物</string>
<string name="trial_coupon">是否使用試用劵</string>
<string name="use_diamonds">使用鑽石</string>
<string name="list_for_lianmai">當前連麥</string>
<string name="user_apply_for_lianmai">連麥申請</string>
<string name="live_mic_anchor_to_user_dialog">主播:</string>
<string name="live_send_red_packge_fans_group">加入粉絲團</string>
<string name="live_pk_link_error">抱歉,您的網絡不佳拉取對方畫面失敗</string>
<string name="live_user_dialog_tips">這家夥很懶,什麽都沒留下</string>
</resources>

View File

@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="refresh_header_pulling">Drop down to refresh</string>
<string name="refresh_header_refreshing">Refreshing</string>
<string name="refresh_header_pulling">Pull down to refresh</string>
<string name="refresh_header_refreshing">Loading...</string>
<string name="refresh_header_loading">Loading</string>
<string name="refresh_header_release">Release refresh now</string>
<string name="refresh_header_release">Release to refresh</string>
<string name="refresh_header_finish">Refresh finish</string>
<string name="refresh_header_failed">refresh failed</string>
<string name="refresh_header_update">M-d HH:mm</string>
<string name="refresh_footer_pulling">Pull up to load more</string>
<string name="refresh_footer_release">Release load now</string>
<string name="refresh_footer_loading">Loading</string>
<string name="refresh_footer_refreshing">Refreshing</string>
<string name="refresh_footer_refreshing">Loading...</string>
<string name="refresh_footer_finish">Load complete</string>
<string name="refresh_footer_failed">Failed to load</string>
<string name="edit_one_1">Are you sure to use the data?</string>
@@ -56,14 +56,14 @@
<string name="coin_qq_not_install">No QQ installed</string>
<string name="copy_link">Replication link</string>
<string name="copy_success">Replication success</string>
<string name="edit_profile">Editing materials</string>
<string name="edit_profile_avatar">Head portrait</string>
<string name="edit_profile_nickname">Nickname</string>
<string name="edit_profile">Edit</string>
<string name="edit_profile_avatar">Photo</string>
<string name="edit_profile_nickname">Name</string>
<string name="edit_profile_update_nickname">ModifyName</string>
<string name="edit_profile_update_remarks">Modify remarks</string>
<string name="edit_profile_remarks">Please enter comments~</string>
<string name="edit_profile_update_sign">Signature</string>
<string name="edit_profile_sign">autograph</string>
<string name="edit_profile_sign">Bio</string>
<string name="bind_phone">Binding phone</string>
<string name="task1">TASK1</string>
<string name="task2">TASK2</string>
@@ -181,7 +181,7 @@
<string name="guard_tip_2">You are the current anchor\'s annual guardian \ n the guardian date expires</string>
<string name="guard_gift_tip">Special gift for annual guard</string>
<string name="guard_no_data_2">You haven\'t guarded</string>
<string name="guard_buy_tip">您為當前主播的月守護\n無法開通周守護</string>
<string name="guard_buy_tip">You are the monthly guardian of the current anchor\nUnable to enable weekly guard</string>
<string name="guard_buy_tip_2">You are the monthly guard of the current anchor. Opening the annual guard will cover your monthly guard time. Do you want to open it?</string>
<string name="guard_buy_tip_3">You will spend%1$s%2$s to open%3$s for the anchor</string>
<!-- <string name="guard_name_1">Guardian of the 7 day</string>-->
@@ -242,8 +242,8 @@
<string name="login_tip_2">Service and privacy terms</string>
<string name="login_other_type">Other login methods</string>
<string name="login_tip_3">More exciting experience after registering!</string>
<string name="login_input_phone">Please enter your mobile number</string>
<string name="login_input_pwd">Please input a password</string>
<string name="login_input_phone">Phone Number</string>
<string name="login_input_pwd">Password</string>
<string name="login_immediately_login">Login immediately</string>
<string name="login_ing">Logon</string>
<string name="login_immediately_register">Immediate registration</string>
@@ -254,9 +254,9 @@
<string name="login_auth_failure">privilege grant failed</string>
<string name="login_auth_cancle">Authorization cancelled</string>
<string name="live">Live broadcast</string>
<string name="login_tip_4">Login</string>
<string name="login_tip_4">Log in</string>
<string name="shopmall">shopmall</string>
<string name="recomment">Recomm</string>
<string name="recomment">Recommend</string>
<string name="cust_server">CSD</string>
<string name="live_anchor">anchor</string>
<string name="live_start">Live broadcast</string>
@@ -289,7 +289,7 @@
<string name="live_zg">Trickster</string>
<string name="live_dr">MultiplayerPK</string>
<string name="live_mic">Voice Link</string>
<string name="live_wks">Start</string>
<string name="live_wks">billboard</string>
<string name="live_zslk">LeaveTemporarily</string>
<string name="live_zslk1">ResumeLive</string>
<string name="live_flash">Flash lamp</string>
@@ -491,11 +491,11 @@
<string name="reg_register">register</string>
<string name="reg_input_phone">Please enter your mobile number</string>
<string name="reg_input_code">Please enter the verification code</string>
<string name="reg_input_pwd_1">Please fill in the password</string>
<string name="reg_input_pwd_2">Please confirm the password</string>
<string name="reg_input_pwd_3">Fill in the invitation code (optional)</string>
<string name="reg_input_pwd_1">Password</string>
<string name="reg_input_pwd_2">Password Again</string>
<string name="reg_input_pwd_3">Invite Code(Optional)</string>
<string name="reg_register_and_login">Register and log in</string>
<string name="reg_get_code">Get verification code</string>
<string name="reg_get_code">Get Code</string>
<string name="reg_get_code_again">Regain</string>
<string name="reg_pwd_error">Passwords are inconsistent</string>
<string name="reg_register_ing">In registration</string>
@@ -659,7 +659,7 @@
<string name="save">Preservation</string>
<string name="reg">Register</string>
<string name="no_more_mic">No one is currently in the voice link</string>
<string name="welcome_pdlive">Welcome to PDLIVE</string>
<string name="welcome_pdlive">Welcome to PDLive</string>
<string name="newcomer">Newcomer Bonus</string>
<string name="exp">EXP</string>
<string name="new_rewards">Complete newcomer tasks for more rewards</string>
@@ -829,17 +829,17 @@
<string name="live_issend">You can only speak after completing the previous task</string>
<string name="live_hot_give">Heat addition</string>
<string name="live_hot_time">Hot &#38; Time</string>
<string name="live_hot_give">HEATING</string>
<string name="live_hot_time">Heat &#38; Time</string>
<string name="live_hot_ruletext1"> 熱度可以給主播的房間增加曝光度,熱度越高的直播間,在首頁的排名也越靠前,從而帶來更多的進房用戶,幫助主播在一段時間內迅速提高房間熱度,送出之後立即生效。</string>
<string name="live_hot_ruletext2">熱度卡如何獲得?</string>
<string name="live_hot_ruletext3">1、周星榜主播冠軍的第一名用戶每週可自動獲得;</string>
<string name="live_hot_ruletext4">2、通過參與官方活動,具體活動可留意官方消息。</string>
<string name="live_hot_ruletext21">熱度卡如何使用?</string>
<string name="live_hot_ruletext22">前往「個人中心」-「我的包裹」中,即可使用熱度卡。</string>
<string name="live_hot_ruletext31">熱度卡生效多久?</string>
<string name="live_hot_ruletext32">對指定主播使用熱度卡後將會立即生效效果時長為24小時不管主播是否在線熱度時長都將會持續減少</string>
<string name="live_hot_ruletext1">The popularity can increase the exposure to the anchor\'s room. The higher the live broadcast room, the more popular on the homepage, which will bring more users in the house and help the anchor to quickly increase the room heat in a period of time. Immediately after the delivery Effective.</string>
<string name="live_hot_ruletext2">How to get the heat card?</string>
<string name="live_hot_ruletext3">1. The first user of Zhou Xingbang\'s anchor champion can automatically get it every week;</string>
<string name="live_hot_ruletext4">2. By participating in the official activities, the official news can be paid attention to.</string>
<string name="live_hot_ruletext21">How to use the heat card?</string>
<string name="live_hot_ruletext22">Go to the \"Personal Center\"-\"My Package\" to use the heat card.</string>
<string name="live_hot_ruletext31">How long does the heat card take effect?</string>
<string name="live_hot_ruletext32">After using the hot card for the designated anchor, it will take effect immediately. The effect time is 24 hours. Regardless of whether the anchor is online, the heat time will continue to decrease</string>
<string name="welcome_pd">Rewards coming!</string>
<string name="welcome_pd_tip">Receive free
Limited ride And limited avatar frame</string>
@@ -888,7 +888,7 @@ Limited ride And limited avatar frame</string>
<string name="online_service">Online Service</string>
<string name="popular_tickets">Hot Ticket</string>
<string name="register_and_log_in">Register and log in</string>
<string name="sign_up_for">Sign up for PD LIVE</string>
<string name="sign_up_for">Sign in PDlive</string>
<string name="tell_the_world">Tell the world</string>
<string name="better_emperor_hint">Tell the world! %s recommends anchor %s to everyone!</string>
<string name="emperor_hint">Tell the world! %s recommends the anchor %s to everyone, and the splendid glance is amazing</string>
@@ -956,7 +956,7 @@ Limited ride And limited avatar frame</string>
<string name="chat_chat">Chat</string>
<string name="lucky_angel">Congratulations %s have won %s in the Lucky Angel! The next lucky angel will be you!</string>
<string name="lucky_100">Congratulations on %s winning %s in Luck 100 %%! Go pass on the good luck!</string>
<string name="user_card_guard">Guardian %s </string>
<string name="user_card_guard">guard %s </string>
<string name="to_receive">receive</string>
<string name="to_complete">To finish</string>
<string name="already_collected">Already collected</string>
@@ -1018,7 +1018,7 @@ Limited ride And limited avatar frame</string>
<string name="live_user_ban_fhd">There is no choice, the anchor is not turned on FHD live.</string>
<string name="live_user_ban_hd">There is no choice, the anchor is not turned on HD live.</string>
<string name="function_is_suspended">Sorry, this feature is on hold.</string>
<string name="phone_number">phone</string>
<string name="phone_number">Phone Number</string>
<string name="broadcast_data">Broadcast</string>
<string name="click_to_view">Click To View</string>
<string name="anchor_task">Anchor Task</string>
@@ -1047,14 +1047,14 @@ Limited ride And limited avatar frame</string>
<string name="go_to_the_sign">Go to the sign-in center</string>
<string name="confirm_pick_up">Confirm pick up</string>
<string name="customer_service2">Unable to login? Click here to contact customer service</string>
<string name="next_step_is_consent">By logging in, you agree to the Terms of</string>
<string name="user_protocol2"> Service</string>
<string name="and">and</string>
<string name="privacy_terms">Privacy</string>
<string name="next_step_is_consent">By continuing, you are agree to our Terms of </string>
<string name="user_protocol2"> use</string>
<string name="and">&amp;</string>
<string name="privacy_terms">Privacy Policy</string>
<string name="terms_and_policies">Terms and policies</string>
<string name="install_the_application">For details, please read the following message to install the application:</string>
<string name="treat_and_protect">Welcome to PD LIVE. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
<string name="anti_cheating_services">In order to provide you with one-click sharing service, our product integrates Mob+U-Share SDK, The Mob+SDK needs to collect your device Mac address, unique device identifier (1MEIandroid IDIDFAOPENUDIDGUID, SIM card IMSI information), and public social account information that you need to share in order to complete the one-click sharing service. And through the geographical location calibration report data accuracy, provide basic anti-cheating services. For the sake of your information security, we have made data security and confidentiality agreements with third-party SDK service providers, and these companies will strictly abide by our data privacy and security requirements. We will not share your personally identifiable information with them unless we have your consent. To facilitate you better understand/Mob + data types and USES, and how to protect your personal information, you can log on to https:www.mob.com aboutpolicy understand [Mob +] privacy policy).</string>
<string name="anti_cheating_services">In order to provide users with better services, our products integrate [Alliance SDK], SDK needs to collect your device information (IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP address /SIM card IMSI information, etc.), In order for you to better understand the types and purposes of the data collected by [Alliance SDK] and how to protect your personal information, you can log on to: https://www.umeng.com/page/policy Learn about [Alliance SDK] Privacy Policy [Alliance +] Privacy Policy [Alliance +], a third-party global big data service provider, providing customers with PC/APP/ offline statistics, advertising effect monitoring, message push/micro community/sharing /IM and other operating tools,DIP, global index and industry reports. https://www.umeng.com/page/policy</string>
<string name="read_and_agre">Clicking Agree means you have read and agree to all of the above.。</string>
<string name="agreement">agreement</string>
<string name="come_to">Welcome to PD LIVE.</string>
@@ -1126,7 +1126,7 @@ Limited ride And limited avatar frame</string>
<string name="unfollow_cancel">unfollow</string>
<string name="unfollow"> Where is the host doing badly~\nBrother, are you sure you want to unfollow?</string>
<string name="unfollow_confrim">follow</string>
<string name="heat_add">Heat Add</string>
<string name="heat_add">Heating</string>
<string name="live_room_chat_fount_size_low">LOW</string>
<string name="live_room_chat_fount_size_def">DEFAULT</string>
<string name="live_room_chat_fount_size_high">HIGH</string>
@@ -1168,7 +1168,7 @@ Limited ride And limited avatar frame</string>
<string name="live_vote_hide_text">VOTE</string>
<string name="live_room_vote_over_tip">%s <br /> box disappears after %s seconds</string>
<string name="live_anchor_vote_tip">Please complete the form.</string>
<string name="complete_information">Fill And gift</string>
<string name="complete_information">Fill for Gift</string>
<string name="complete_information_consumable">Fill in the \'*\' option to complete</string>
<string name="love_powder">True love powder\nPhoto Frame(7 days)</string>
<string name="golden_beans_128">128 Golden Beans</string>
@@ -1212,7 +1212,7 @@ Limited ride And limited avatar frame</string>
<string name="red_packet_info_residue_none">None</string>
<string name="red_packet_info_residue_back">Return to account</string>
<string name="red_packet_user_tips2">Popularity Red packet</string>
<string name="main_tabs_red_packet">Red packets</string>
<string name="main_tabs_red_packet">Earn Cash</string>
<string name="save_popular_red_packets">Popular red packets</string>
<string name="amount">amount</string>
<string name="drill">Diamonds</string>
@@ -1313,5 +1313,14 @@ Limited ride And limited avatar frame</string>
<string name="cancel_ca">cancel</string>
<string name="settings_ser">settings</string>
<string name="too_many_gifts">Too many gifts</string>
<string name="trial_coupon">Whether to use trial coupons</string>
<string name="use_diamonds">Use diamonds</string>
<string name="list_for_lianmai">Current</string>
<string name="user_apply_for_lianmai">Apply for list</string>
<string name="live_mic_anchor_to_user_dialog">Anchor:</string>
<string name="live_send_red_packge_fans_group">Join a fans club</string>
<string name="live_pk_link_error">Sorry, your network failed to pull the other party.</string>
<string name="live_user_dialog_tips">say something</string>
</resources>

View File

@@ -1,30 +1,30 @@
ext {
android = [
compileSdkVersion: 31,
compileSdkVersion: 33,
buildToolsVersion: "29.0.2",
minSdkVersion : 21,
targetSdkVersion : 31,
versionCode : 444,
versionName : "6.5.4"
targetSdkVersion : 33,
versionCode : 450,
versionName : "6.5.5"
]
manifestPlaceholders = [
//正式、
serverHost : "https://napi.yaoulive.com",
// 测试
// serverHost : "https://ceshi.yaoulive.com",
// serverHost : "https://napi.yaoulive.com",
// 测试
serverHost : " https://ceshi.yaoulive.com",
//百度语音识别
baiduAppId : "23774720",
baiduAppKey : "zgCgFhUKEOV7I3ZXDFpTfnRB",
baiduAppKey : "zgCgFhUKEOV7I3ZXDFpTfnR B",
baiduAppSecretKey: "nEVSgmuGpU0pjPr6VleEGGAl0hzGW52S",
// true表示谷歌支付 false
isGooglePlay : false,
//是否上报异常日志
isUploadLog : true,
//是否打包成插件包模式
isPluginModel : true,
]
isPluginModel : true, ]
}

View File

@@ -198,7 +198,7 @@ public class GiftWallActivity extends AbsActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onGiftWallItemEvent(GiftWallItemEvent event) {
new XPopup.Builder(this)
.asCustom(new GiftWallItemPopup(this, event.getGiftWallModel(), event.isUnlit(), mLiveUid, mLiveUid, mStream, false))
.asCustom(new GiftWallItemPopup(this, event.getGiftWallModel(), event.isUnlit(), mLiveUid, mLiveUid, mStream, false,event.isCsb()))
.show();
}

View File

@@ -898,7 +898,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onClick(View v) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&tabIndex=1";
WebViewActivity.forward(mContext, url);
WebViewActivity.forward(mContext, url,true);
dialog.dismiss();
}
});

View File

@@ -282,7 +282,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
+ CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid
+ "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
ZhuangBanActivity.forward(mContext, url, false);
ZhuangBanActivity.forward(mContext, url, false,0);
break;
case Constants.LIVE_FUNC_LINK_MIC://连麦
openLinkMicAnchorWindow();

View File

@@ -37,6 +37,7 @@ import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.enums.PopupPosition;
import com.lxj.xpopup.interfaces.XPopupCallback;
import com.lzf.easyfloat.EasyFloat;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
@@ -63,21 +64,26 @@ import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveErrorEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.pay.PayCallback;
import com.yunbao.common.pay.PayPresenter;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.GiftCacheUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.RouteUtil;
@@ -90,6 +96,7 @@ import com.yunbao.live.R;
import com.yunbao.live.adapter.VerticalPagerAdapter;
import com.yunbao.live.bean.ImUserBean;
import com.yunbao.live.bean.LiveChatBean;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.dialog.LiveFansFragment;
import com.yunbao.live.dialog.LiveGameDialogFragment;
import com.yunbao.live.dialog.LiveGiftPopup;
@@ -101,12 +108,9 @@ import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience;
import com.yunbao.live.dialog.SignDialogFragment;
import com.yunbao.live.event.LinkMicTxAccEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.live.http.ImHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.views.LiveRoomPlayViewHolder;
import com.yunbao.live.views.LiveRoomViewHolder;
import com.yunbao.live.views.PortraitLiveManager;
import com.yunbao.share.ui.SharePopDialog;
@@ -119,6 +123,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum;
import io.rong.imlib.chatroom.base.RongChatRoomClient;
/**
* Created by cxf on 2018/10/10.
* 看直播
@@ -129,7 +137,7 @@ public class LiveAudienceActivity extends LiveActivity {
private static final String TAG = "LiveAudienceActivity";
public static String anyway;
public JSONObject pkInfo;
public static LiveAudienceActivity liveAudienceActivity;
public LiveAudienceActivity liveAudienceActivity;
// 竖直滑动 ViewPager
private VerticalViewPager verticalViewPager;
@@ -194,6 +202,7 @@ public class LiveAudienceActivity extends LiveActivity {
mLiveBean = intent.getParcelableExtra(Constants.LIVE_BEAN);
mLiveUid = mLiveBean.getUid();
mStream = mLiveBean.getStream();
Constants.mStream = mStream;
initData();
MicStatusManager.getInstance().addOnMicListener(onMicStatusListener);
if (!IMLoginManager.get(mContext).IsXiaJBG() && (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)) {
@@ -392,9 +401,11 @@ public class LiveAudienceActivity extends LiveActivity {
mLiveTypeVal = 0;
}
mLiveType = liveType;
String giftId = mLiveBean.getGiftId();
String json = GsonUtils.toJson(data);
mLiveBean = GsonUtils.fromJson(json, LiveBean.class);
mLiveBean.setUserNiceName(data.getUserNicename());
mLiveBean.setGiftId(giftId);
mLiveUid = mLiveBean.getUid();
mStream = mLiveBean.getStream();
mAncherName = mLiveBean.getUserNiceName();
@@ -502,6 +513,7 @@ public class LiveAudienceActivity extends LiveActivity {
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
CommonHttpUtil.cancel(CommonHttpConsts.GET_BALANCE);
PortraitLiveManager.liveID = "";
Constants.mStream = "";
super.release();
}
@@ -549,6 +561,8 @@ public class LiveAudienceActivity extends LiveActivity {
@Override
public void onBackPressed() {
MobclickAgent.onEvent(mContext, "live_room_close", "退出直播间");
OpenAdManager.getInstance().dismiss();
try {
manager.onBackPressed();
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
@@ -722,26 +736,33 @@ public class LiveAudienceActivity extends LiveActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveRoomChangeEvent(LiveRoomChangeEvent e) {
LiveBean liveBean = e.getLiveBean();
if (e.isLiveEnd()) {
manager.removeLiveEnd();
}
if (liveBean != null) {
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
manager.onRemove(false);
mLiveType = e.getLiveType();
mLiveTypeVal = e.getLiveTypeVal();
mLiveBean = liveBean;
mLiveUid = liveBean.getUid();
mStream = liveBean.getStream();
mAncherName = liveBean.getUserNiceName();
mAncherIcon = liveBean.getAvatar();
manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK);
if (TextUtils.equals(mLiveUid, liveBean.getUid())) {
ToastUtil.show(R.string.current_live_room);
} else {
if (e.isLiveEnd()) {
manager.removeLiveEnd();
}
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
}
if (liveBean != null) {
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
manager.onRemove(false);
mLiveType = e.getLiveType();
mLiveTypeVal = e.getLiveTypeVal();
mLiveBean = liveBean;
mLiveUid = liveBean.getUid();
mStream = liveBean.getStream();
mAncherName = liveBean.getUserNiceName();
mAncherIcon = liveBean.getAvatar();
manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK);
}
}
}
@Override
@@ -753,10 +774,15 @@ public class LiveAudienceActivity extends LiveActivity {
if (manager != null && !StringUtil.isEmpty(is_fans)) {
if (is_fans.equals("-2")) {
manager.setAttention(0);
mLiveRoomViewHolder.setFansGroup("0");
is_fans = "2";
}
}
GiftCacheUtil.getInstance().restart();
if (manager.isEnterRoom()) {
new Handler(Looper.getMainLooper()).postDelayed(() -> OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,
LiveGuardInfo.isGuard(mLiveGuardInfo)), 400);
}
}
@Override
@@ -886,7 +912,7 @@ public class LiveAudienceActivity extends LiveActivity {
RouteUtil.forwardEditProfileActivity();
} else {
if (!screen) {
ZhuangBanActivity.forward(mContext, htmlUrl, false);
ZhuangBanActivity.forward(mContext, htmlUrl, false, 1);
} else {
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl);
@@ -1093,7 +1119,7 @@ public class LiveAudienceActivity extends LiveActivity {
String weeklyStarUrl = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid="
+ userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false);
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false, 1);
break;
case NOBLE:
Constants.isTitle = true;
@@ -1103,7 +1129,7 @@ public class LiveAudienceActivity extends LiveActivity {
+ "&anchorUid=" + mLiveBean.getUid()
+ "&ancherName=" + mLiveBean.getUserNiceName()
+ "&uid=" + userInfo.getId();
ZhuangBanActivity.forward(mContext, nobleUrl, false);
ZhuangBanActivity.forward(mContext, nobleUrl, false, 1);
break;
case LIAN_MAI:
if (event.getMicIng() == 1) {
@@ -1131,7 +1157,7 @@ public class LiveAudienceActivity extends LiveActivity {
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment");
LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext);
} else {
ToastUtil.show(R.string.no_mic_opn);
ToastUtil.show(mContext.getString(R.string.no_mic_opn));
}
}
});
@@ -1468,11 +1494,12 @@ public class LiveAudienceActivity extends LiveActivity {
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveErrorEvent(LiveErrorEvent event){
public void onLiveErrorEvent(LiveErrorEvent event) {
//主播未直播时自动下滑至下一个直播间
mCurrentPage = mCurrentPage + 1;
liveHandler.post(liveRunnable);
}
/**
* 跳转到消息中心的系统信息web
*
@@ -1500,7 +1527,7 @@ public class LiveAudienceActivity extends LiveActivity {
FirebaseAnalytics.getInstance(mContext).logEvent("FS_customer_service", null);
AppEventsLogger.newLogger(mContext).logEvent("FB_customer_service");
if (bean.getLink() != null && !"".equals(bean.getLink())) {
WebViewActivity.forward(mContext, bean.getLink());
WebViewActivity.forward(mContext, bean.getLink(), true);
} else {
startActivity(new Intent(mContext, SystemMessageActivity.class)
.putExtra("type", bean.getType())

View File

@@ -488,7 +488,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
break;
case Constants.LIVE_FUNC_WKS:
String url = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, url, false);
ZhuangBanActivity.forward(mContext, url, false,0);
break;
case Constants.LIVE_FUNC_LINK_MIC://连麦
if (isDRPK != 1) {
@@ -1539,7 +1539,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
String weeklyStarUrl = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid="
+ userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false);
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false,0);
break;
case WISH_LIST:
LiveWishListDialogFragment4Audience fragment4Audience = new LiveWishListDialogFragment4Audience();

View File

@@ -29,6 +29,7 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.live.dialog.LiveBeautyDialogFragment;
@@ -208,7 +209,7 @@ public class LiveTRTCAnchorActivity extends TRTCBaseActivity {
*/
private void createRoom() {
if (mLiveClassID == 0) {
ToastUtil.show(R.string.live_choose_live_class);
ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
return;
}
String title = mEditTitle.getText().toString().trim();

View File

@@ -172,7 +172,7 @@ public class MyTUIConversationFragment extends Fragment {
systemMessageActivity.forward(getContext(), bean.getType(), "", bean.getTitle(), "");
} else if ("3".equals(bean.getType())) {
if (bean.getLink() != null && !"".equals(bean.getLink())) {
WebViewActivity.forward(getActivity(), bean.getLink());
WebViewActivity.forward(getActivity(), bean.getLink(),false);
} else {
systemMessageActivity.forward(getContext(), bean.getType(), "", bean.getTitle(), "");
}

View File

@@ -4,6 +4,7 @@ import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -164,15 +165,22 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
//intoIndex 1=调用相机,2=照片选取,3=视频选取
public void jumpPic(int intoIndex) {
String permission1=Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2= Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permission1=Manifest.permission.READ_MEDIA_IMAGES;
permission2=Manifest.permission.READ_MEDIA_VIDEO;
}
//选择图片
int isPermission1 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int isPermission1 = ContextCompat.checkSelfPermission(mContext, permission1);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, permission2);
if (isPermission1 == PackageManager.PERMISSION_GRANTED && isPermission2 == PackageManager.PERMISSION_GRANTED) {
startActivity(intoIndex);
} else {
//申请权限
ActivityCompat.requestPermissions(mContext, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
ActivityCompat.requestPermissions(mContext, new String[]{permission1,
permission2}, PERMISSION_REQUEST_CODE);
}
}

View File

@@ -32,16 +32,17 @@ import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.dialog.LiveUserDialogFragment;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -172,7 +173,15 @@ public class WebViewActivityMedal extends AbsActivity {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
if (liveBean == null) {
return;
}
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
finish();
}
@Override
@@ -293,7 +302,7 @@ public class WebViewActivityMedal extends AbsActivity {
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
}
Intent intent = new Intent(context, WebViewActivityMedal.class);
intent.putExtra(Constants.URL, url+ "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
intent.putExtra(Constants.URL, url + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
context.startActivity(intent);
}

View File

@@ -39,19 +39,19 @@ import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.share.ui.InvitePopDialog;
import org.greenrobot.eventbus.EventBus;
@@ -76,6 +76,7 @@ public class ZhuangBanActivity extends AbsActivity {
private FrameLayout title;
private TextView titleView, htmlError;
private RelativeLayout rootView;
private boolean mIsLive = false;
@Override
protected int getLayoutId() {
@@ -87,6 +88,7 @@ public class ZhuangBanActivity extends AbsActivity {
Bus.getOn(this);
String url = getIntent().getStringExtra(Constants.URL);
String titleString = getIntent().getStringExtra("title");
mIsLive = getIntent().getIntExtra("isLive", 0) == 1;
L.e("H5---2s>" + url);
LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
@@ -275,11 +277,7 @@ public class ZhuangBanActivity extends AbsActivity {
if (isNeedExitActivity()) {
finish();
} else {
// if (canGoBack()) {
// mWebView.goBack();
// } else {
finish();
// }
}
}
@@ -296,7 +294,8 @@ public class ZhuangBanActivity extends AbsActivity {
return false;
}
public static void forward(Context context, String url, boolean addArgs) {
public static void forward(Context context, String url, boolean addArgs, int isLive) {
if (addArgs) {
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
}
@@ -306,11 +305,12 @@ public class ZhuangBanActivity extends AbsActivity {
if (url.contains("Noble/index.html") || url.contains("RongYuQiang")) {
intent.putExtra("title", "");
}
intent.putExtra("isLive", isLive);
context.startActivity(intent);
}
public static void forward(Context context, String url) {
forward(context, url, true);
public static void forward(Context context, String url, int isLive) {
forward(context, url, true, isLive);
}
@Override
@@ -406,7 +406,17 @@ public class ZhuangBanActivity extends AbsActivity {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
if (mIsLive) {
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
finish();
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
}
finish();
}

View File

@@ -66,4 +66,14 @@ public class FrameGiftAdapter extends RecyclerView.Adapter {
public int getItemCount() {
return giftJson.size();
}
public void refreshWrapListAfterSend(LiveGiftBean model) {
for (int i = 0; i < giftJson.size(); i++) {
if (giftJson.get(i).getId() == model.getId()) {
int giftNum = giftJson.get(i).getBlindBoxTicket();
giftJson.get(i).setBlindBoxTicket(giftNum - 1);
}
}
notifyDataSetChanged();
}
}

View File

@@ -18,6 +18,7 @@ import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.common.http.LiveHttpUtil;
@@ -81,10 +82,17 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
public HeadViewHolder(@NonNull View itemView) {
super(itemView);
}
public void setData(RandomPkUserBean bean, int position) {
if (!WordUtil.isNewZh() && itemView.findViewById(R.id.text1)!=null) {
((TextView) itemView.findViewById(R.id.text1)).setText("number");
((TextView) itemView.findViewById(R.id.text2)).setText("user");
((TextView) itemView.findViewById(R.id.text3)).setText("status");
((TextView) itemView.findViewById(R.id.text4)).setText("Controls");
((TextView) itemView.findViewById(R.id.text5)).setText("follow");
}
}
}
@@ -115,7 +123,7 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
}
if (freePkNum == 0 && mDrPkNum == -1) {
ToastUtil.show(R.string.free_pk_num_null);
// return;
// return;
}
LiveHttpUtil.getMicList(LiveRyAnchorActivity.mLiveUid, 0, new com.yunbao.common.http.HttpCallback() {
@@ -125,7 +133,11 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
//非0认为未开通连麦权限
if (code != 0) {
if (mDrPkNum == -1) {
ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功");
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功");
} else {
ToastUtil.show("invite " + bean.getUserNiceName() + " successful");
}
mOnItemClickListener.onItemClick(bean, -1);
((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString()
@@ -133,13 +145,21 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
return;
}
if (mDrPkNum <= 0) {
ToastUtil.show("多人次數已用完");
if (WordUtil.isNewZh()) {
ToastUtil.show("多人次數已用完");
} else {
ToastUtil.show("Multiple times have been used up");
}
return;
}
((LiveRyAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId());
} else {
ToastUtil.show("請先關閉語言連麥");
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
} else {
ToastUtil.show("Please disable the voice connection first");
}
}
}
});
@@ -192,9 +212,15 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
if (bean.isPk()) {
mStatus.setText("PK中");
ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk, mPkStatus);
if (!WordUtil.isNewZh()) {
mStatus.setText("PK");
}
} else {
mStatus.setText("空闲");
ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk_unselect, mPkStatus);
if (!WordUtil.isNewZh()) {
mStatus.setText("free");
}
}
if (bean.isAttention()) {
ImgLoader.display(mContext, R.mipmap.ic_random_pk_like, mFollow);

View File

@@ -39,7 +39,7 @@ public class GiftTitleAdapter extends RecyclerView.Adapter {
notifyDataSetChanged();
}
});
itemViewHolder.selectData(index == position);
itemViewHolder.selectData(index == position,name.get(position).getName());
}
@Override
@@ -57,4 +57,9 @@ public class GiftTitleAdapter extends RecyclerView.Adapter {
index = -1;
notifyDataSetChanged();
}
public void setTitleIndex(int i) {
index=i;
notifyDataSetChanged();
}
}

View File

@@ -137,6 +137,9 @@ public class GuardAdapter extends RefreshAdapter<GuardUserBean> {
mSex = (ImageView) itemView.findViewById(R.id.sex);
mLevel = (ImageView) itemView.findViewById(R.id.level);
mVotes = (TextView) itemView.findViewById(R.id.votes);
if(!WordUtil.isNewZh()) {
((TextView) itemView.findViewById(R.id.votesTitle)).setText("Contribution");
}
}
void setData(GuardUserBean bean) {

View File

@@ -6,6 +6,7 @@ import static com.yunbao.live.bean.LiveChatBean.LUCKY_ANGEL;
import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY;
import static com.yunbao.live.bean.LiveChatBean.STAR_CHALLENGE_UPGRADE_NOTIFY;
import static com.yunbao.live.bean.LiveChatBean.SYSTEM3_COLOR;
import static com.yunbao.live.bean.LiveChatBean.TYPE_TO_USER_MSG;
import static com.yunbao.live.bean.LiveChatBean.WISH_LIST_PROGRESS;
import static com.yunbao.live.bean.LiveChatBean.XYD_COMPLETE;
@@ -39,6 +40,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.IMLoginModel;
@@ -158,6 +160,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
Log.i(TAG, "onScrolled: " + dy);
mRecyclerViewScrolledDy = dy;
isBottom = false;
}
@Override
@@ -242,7 +245,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (!TextUtils.isEmpty(bean.getId())&&!TextUtils.isEmpty(bean.getUserNiceName())){
if (!TextUtils.isEmpty(bean.getId()) && !TextUtils.isEmpty(bean.getUserNiceName())) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.INPUT_DIALOG)
.setOlineUserlistModel(new OlineUserlistModel().setId(bean.getId()).setUserNicename(bean.getUserNiceName())));
@@ -391,10 +394,13 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
mTextView.setText(bean.getContent());
}
} else if (bean.getType() == LiveChatBean.SYSTEM2) {
} else if (bean.getType() == LiveChatBean.SYSTEM2 ) {
mTextView.setTextColor(Color.parseColor("#ffffff"));
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
mTextView.setText(bean.getContent());
}else if(bean.getType()==TYPE_TO_USER_MSG){
mTextView.setText(Html.fromHtml("<font color='#FBEABF'>@" + bean.getUserNiceName() + "</font> &nbsp;" + bean.getContent()));
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
}
// else if (bean.getType() == -1) {//自动消息,关注
// boolean isContains = false;
@@ -530,6 +536,10 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
if (bean == null) {
return;
}
if(bean.getType()==LiveChatBean.TYPE_TO_USER_MSG
&&!CommonAppConfig.getInstance().getUid().equals(bean.getAtUserID())){
return;
}
// Log.i(TAG, "insertItem: " + bean.getContent()+" size = "+(mList.size()+1));
int size = mList.size();
//设置最大展示99条消息
@@ -551,7 +561,9 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER));
if (bean.getAtUserID() != null && bean.getAtUserID().contains(String.valueOf(model.getId()))) {
if (bean.getType() != LiveChatBean.TYPE_TO_USER_MSG &&
bean.getAtUserID() != null
&& bean.getAtUserID().contains(String.valueOf(model.getId()))) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE));
mPosition = size;

View File

@@ -98,7 +98,7 @@ public class SystemChatMessageAdapter extends RecyclerView.Adapter {
forward(mContext, model1.getType(), "", model1.getTitle(), "");
} else if ("3".equals(model1.getType())) {
if (model1.getLink() != null && !"".equals(model1.getLink())) {
WebViewActivity.forward(mContext, model1.getLink());
WebViewActivity.forward(mContext, model1.getLink(),false);
} else {
forward(mContext, model1.getType(), "", model1.getTitle(), "");
}

View File

@@ -34,15 +34,20 @@ public class CoinModel extends BaseModel {
public String getCoin() {
long coinMoney = Long.parseLong(coin);
String coinStr = coin;
if (999999999 < coinMoney && coinMoney <= 999999999999L) {
coin = coin.substring(0, coin.length() - 3);
coin = coin + "k";
coinStr = coinStr.substring(0, coinStr.length() - 3);
coinStr = coinStr + "k";
}
if (999999999999L < coinMoney && coinMoney <= 999999999999999L) {
coin = coin.substring(0, coin.length() - 6);
coin = coin + "M";
coinStr = coinStr.substring(0, coinStr.length() - 6);
coinStr = coinStr + "M";
}
return coin;
return coinStr;
}
public Long getCoinLong() {
return Long.parseLong(coin);
}
public CoinModel setCoin(String coin) {

View File

@@ -27,6 +27,7 @@ public class LiveChatBean {
public static final int XYD_COMPLETE = 207;//心愿单完成通知
public static final int WISH_LIST_PROGRESS = 307;//心愿单进度通知
public static final int BLIND_BOX = 409;//盲盒礼物消息
public static final int TYPE_TO_USER_MSG=500;//指定信息
private String id;
@@ -53,6 +54,7 @@ public class LiveChatBean {
private String hot_card;
private MsgModel msgModel = new MsgModel();//自定义消息体
private String giftName;
private String toUid;
public String getGiftName() {
return giftName;
@@ -63,6 +65,14 @@ public class LiveChatBean {
return this;
}
public String getToUid() {
return toUid;
}
public void setToUid(String toUid) {
this.toUid = toUid;
}
private AiAutomaticSpeechModel aiAutomaticSpeechModel = new AiAutomaticSpeechModel();//机器人消息体
public AiAutomaticSpeechModel getAiAutomaticSpeechModel() {

View File

@@ -3,6 +3,8 @@ package com.yunbao.live.bean;
import android.os.Parcel;
import android.os.Parcelable;
import com.yunbao.common.Constants;
/**
* Created by cxf on 2018/11/14.
*/
@@ -72,5 +74,8 @@ public class LiveGuardInfo implements Parcelable {
}
};
public static boolean isGuard(LiveGuardInfo info){
return info != null && info.getMyGuardType() != Constants.GUARD_TYPE_NONE;
}
}

View File

@@ -13,6 +13,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
@@ -135,6 +136,7 @@ public class BlowkissDialog extends AbsDialogFragment {
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MobclickAgent.onEvent(mContext, "live_room_follow_sendgif", "弹的关注并送礼的按钮");
follow();
LiveHttpUtil.sendGift("0", mLiveUid, LiveActivity.mStream, gif_id, "1", new HttpCallback() {
@Override

View File

@@ -27,6 +27,7 @@ import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.FreePkRecyclerAdapter;
@@ -128,8 +129,15 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
}
});
if(!WordUtil.isNewZh()){
mPkNumText.setText("Free PK remaining number");
((TextView)findViewById(R.id.tmp_text2)).setText("Updated daily at 6am");
}
if (mDrPkNum != -1) {
mPkNumText.setText("多人PK剩余次數");
if(!WordUtil.isNewZh()){
mPkNumText.setText("multi-user PK remaining number");
}
}
initRecycler();
}
@@ -183,6 +191,10 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
searchTag.setText("主播搜索");
listTag.setTag(TAB_STATUS_FOLLOW);
listTag.setText("關注列表");
if (!WordUtil.isNewZh()) {
searchTag.setText("search");
listTag.setText("follow list");
}
tabLayout.addTab(searchTag);
tabLayout.addTab(listTag);
tabStatus = TAB_STATUS_SEARCH;

View File

@@ -232,7 +232,8 @@ public class GiftWallDialog extends AbsDialogFragment {
mLiveUid,
toUid,
mStream,
sbWy))
sbWy,
event.isCsb()))
.show();
}

View File

@@ -31,10 +31,10 @@ public class GiftWallItemPopup extends CenterPopupView {
private GiftWallModel giftWallModel;
private boolean unlit;
private String mLiveUid, mStream, toUid;
private boolean isAnchor = false, sbWy;
private boolean isAnchor = false, sbWy, csb;
public GiftWallItemPopup(@NonNull Context context, GiftWallModel giftWallModel,
boolean unlit, String mLiveUid, String toUid, String mStream, boolean sbWy) {
boolean unlit, String mLiveUid, String toUid, String mStream, boolean sbWy, boolean csb) {
super(context);
this.giftWallModel = giftWallModel;
this.unlit = unlit;
@@ -42,6 +42,7 @@ public class GiftWallItemPopup extends CenterPopupView {
this.toUid = toUid;
this.mStream = mStream;
this.sbWy = sbWy;
this.csb = csb;
if (this.mLiveUid.equals(CommonAppConfig.getInstance().getUid())) {
isAnchor = true;
}
@@ -100,10 +101,10 @@ public class GiftWallItemPopup extends CenterPopupView {
public void loadData() {
LiveNetManager.get(getContext()).
giftDetail(mLiveUid, String.valueOf(giftWallModel.getId()), new HttpCallback<GiftWallGiftDetail>() {
giftDetail(mLiveUid, String.valueOf(giftWallModel.getId()), toUid, new HttpCallback<GiftWallGiftDetail>() {
@Override
public void onSuccess(GiftWallGiftDetail data) {
if (data.getUid() == 0) {
if (data.getUid() == 0 || !csb) {
ImgLoader.display(getContext(), R.mipmap.icon_vacant_position_awaits, avatar);
vacantPositionAwaits.setText(getContext().getText(R.string.vacant_position_awaits));
vacantPosition.setText("?");
@@ -112,17 +113,36 @@ public class GiftWallItemPopup extends CenterPopupView {
vacantPositionAwaits.setText(data.getUserNicename());
vacantPosition.setText(giftWallModel.getGiftname());
}
if (TextUtils.isEmpty(data.getNamingCoin()) || TextUtils.equals(data.getNamingCoin(), "0")) {
distanceNaming.setVisibility(GONE);
if (csb) {
if (TextUtils.isEmpty(data.getNamingCoin()) || TextUtils.equals(data.getNamingCoin(), "0")) {
distanceNaming.setVisibility(GONE);
} else {
distanceNaming.setVisibility(VISIBLE);
distanceNaming.setText(String.format(getContext().getString(R.string.distance_naming), String.valueOf(data.getNamingCoin())));
}
} else {
distanceNaming.setVisibility(VISIBLE);
distanceNaming.setText(String.format(getContext().getString(R.string.distance_naming), String.valueOf(data.getNamingCoin())));
if (TextUtils.isEmpty(data.getDefault_naming_coin()) || TextUtils.equals(data.getDefault_naming_coin(), "0")) {
distanceNaming.setVisibility(GONE);
} else {
distanceNaming.setVisibility(VISIBLE);
distanceNaming.setText(String.format(getContext().getString(R.string.distance_naming), String.valueOf(data.getDefault_naming_coin())));
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
ImgLoader.display(getContext(), R.mipmap.icon_vacant_position_awaits, avatar);
vacantPositionAwaits.setText(getContext().getText(R.string.vacant_position_awaits));
vacantPosition.setText("?");
}
});
}

View File

@@ -55,7 +55,7 @@ public class HighNobilityDialog extends AbsDialogFragment {
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname="
+ u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&uid="
+ CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
ZhuangBanActivity.forward(mContext, url, false);
ZhuangBanActivity.forward(mContext, url, false,0);
});

View File

@@ -186,7 +186,7 @@ public class LiveChatListDialogFragment extends AbsDialogFragment {
systemMessageActivity.forward(getContext(), bean.getType(), "", bean.getTitle(), "");
} else if ("3".equals(bean.getType())) {
if (bean.getLink() != null && !"".equals(bean.getLink())) {
WebViewActivity.forward(getActivity(), bean.getLink());
WebViewActivity.forward(getActivity(), bean.getLink(),false);
} else {
systemMessageActivity.forward(getContext(), bean.getType(), "", bean.getTitle(), "");
}

View File

@@ -18,6 +18,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.glide.ImgLoader;
@@ -148,6 +149,7 @@ public class LiveContactDetailsSendGiftDialog extends AbsDialogPopupWindow {
}
private void send() {
MobclickAgent.onEvent(mContext, "contact_obtain", "点获取联系方式");
LiveHttpUtil.sendGift("0", mLiveUid, mStream, bean.getId(), "1", 1, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -164,6 +166,7 @@ public class LiveContactDetailsSendGiftDialog extends AbsDialogPopupWindow {
}
}).build().show();
} else {
MobclickAgent.onEvent(mContext, "contact_obtain_send_gif", "送出联系方式礼物");
dismiss();
}
}

View File

@@ -132,6 +132,7 @@ public class LiveFansFragment extends AbsDialogFragment {
int num = LiveAudienceActivity.fansNum - 1;
LiveRoomViewHolder.setFansNum(num);
ToastUtil.show("退出成功");
EventBus.getDefault().post("exitFansGroup");
dismiss();
} else if (TextUtils.equals(event.getMethod(), "sendFansCard")) {
if (LiveRoomViewHolder.mBtnFollow != null && LiveRoomViewHolder.mBtnFollow.getVisibility() == View.VISIBLE) {

View File

@@ -23,6 +23,7 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.android.material.tabs.TabLayout;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.ActiveModel;
@@ -31,11 +32,13 @@ import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -43,13 +46,13 @@ import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 趣味游戏对话框
@@ -160,9 +163,9 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
String appCachePath = mContext.getCacheDir().getAbsolutePath();
mWebView.getSettings().setAppCachePath(appCachePath);
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
// mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
@@ -202,7 +205,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
@Override
public void onError(String error) {
Log.i("debug", "onError: " + error);
ToastUtil.show( R.string.net_error);
ToastUtil.show(R.string.net_error);
dismiss();
}
});
@@ -252,6 +255,25 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
if (tab != null) {
tab.select();
ActiveModel model = (ActiveModel) tab.getTag();
Map<String, String> map_ekv = new HashMap<String, String>();
map_ekv.put("link", model.getActiveSrc());
MobclickAgent.onEvent(mContext, "live_room_slide", map_ekv);
switch (model.getActiveName()) {
case "闖關熱戀":
MobclickAgent.onEvent(mContext, "through_index", "进入闯关页面");
break;
case "怪物大作戰":
MobclickAgent.onEvent(mContext, "plant_index", "进入怪物页面");
break;
case "甜蜜約會":
MobclickAgent.onEvent(mContext, "sweet_index", "进入甜蜜页面");
break;
case "娛樂整蠱":
MobclickAgent.onEvent(mContext, "tricky_index", "进入娱乐整蛊页面");
break;
case "幸运天使":
MobclickAgent.onEvent(mContext, "angel_index", "进入幸运天使页面");
break; }
if (model != null) {
if (!StringUtil.isEmpty(model.getBgColor()) && !"#".equals(model.getBgColor())) {
tabLayout.setBackgroundColor(Color.parseColor(model.getBgColor()));
@@ -297,7 +319,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
}
@Override

View File

@@ -2,7 +2,9 @@ package com.yunbao.live.dialog;
import static com.yunbao.common.CommonAppConfig.isGetNewWrap;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import static com.yunbao.live.views.LiveRoomViewHolder.bean1;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.DialogInterface;
import android.graphics.Color;
@@ -15,6 +17,7 @@ import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -39,6 +42,7 @@ import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
@@ -55,6 +59,7 @@ import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.AppManager;
@@ -65,6 +70,7 @@ import com.yunbao.common.utils.NobleUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.GiftNumberPopup;
import com.yunbao.common.views.weight.MarqueeTextView;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -78,7 +84,6 @@ import com.yunbao.live.event.GiftTitleEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveGiftItemEvent;
import com.yunbao.live.event.LiveParcelItemRefreshEvent;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.views.LiveGiftFragment;
import com.yunbao.live.views.LiveParcelFragment;
@@ -102,7 +107,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
private TextView diamondText, goldText, liveWrap, vipGoldDesc, vipGoldTitle, giftNumber;
private RecyclerView giftTitle;
private GiftTitleAdapter giftTitleAdapter;
private FrameLayout contextLayoutGift;
private FrameLayout contextLayoutGift, overlay;
private String mStream, mLiveUid;
private FrameLayout blindBox, frameBlindTop, noNobility, giftNumberLayout, giftSendLayout, namingLayout;
private ProgressBar progressBlind, progressBlind1, progressBlind2;
@@ -140,6 +145,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
@SuppressLint("ClickableViewAccessibility")
private void initView() {
gitBackground = mRootView.findViewById(R.id.git_background2);
contextLayoutGift = mRootView.findViewById(R.id.context_layout_gift);
@@ -181,6 +187,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
leaveHint = mRootView.findViewById(R.id.leave_hint);
progressBar = mRootView.findViewById(R.id.progressBar);
levelingLayout = mRootView.findViewById(R.id.leveling_layout);
overlay = mRootView.findViewById(R.id.overlay);
namingLayout.setVisibility(View.GONE);
//设置礼物弹窗背景
ImgLoader.displayBlurLive(getContext(), R.drawable.backgroud_custom_gift2, gitBackground);
@@ -198,10 +205,32 @@ public class LiveGiftPopup extends AbsDialogFragment {
giftDescription.setVisibility(View.GONE);
operateImage.setVisibility(View.GONE);
levelingLayout.setVisibility(View.VISIBLE);
updateOverlayVisibility();
blindBox.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.performClick();
}
return true;
});
namingLayout.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.performClick();
}
return true;
});
operateImage.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.performClick();
}
return true;
});
overlay.setOnClickListener(v -> dismiss());
//点击包裹
ViewClicksAntiShake.clicksAntiShake(liveWrap, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_pack_list", "用户点礼物栏包裹礼物按钮");
giftTitleAdapter.uncheck();
liveWrap.setAlpha(1.0f);
liveWrap.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
@@ -216,6 +245,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
mBtnSendGroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MobclickAgent.onEvent(mContext, "gif_list_seed_gif", "用户送礼物");
sendGiftHandler.post(sendGiftRunnble);
}
});
@@ -224,7 +255,37 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(liveGiftSend, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
sendGiftHandler.post(sendGiftRunnble);
MobclickAgent.onEvent(mContext, "gif_list_seed_gif", "用户送礼物");
if (liveGiftModel != null && liveGiftModel.getBlindBoxTicket() > 0) {
BigDecimal needcoin = new BigDecimal(liveGiftModel.getPrice()).multiply(new BigDecimal(mCount));
if (needcoin.longValue() > diamond) {
sendBlindBoxTicket();
} else {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.aristocrat_determine))
.setCancelString(mContext.getString(R.string.use_diamonds))
.setContent(mContext.getString(R.string.trial_coupon))
.setClickCallback(new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
sendGiftHandler.post(sendGiftRunnble);
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
sendBlindBoxTicket();
}
}).setCancelable(true).build().show();
}
} else {
sendGiftHandler.post(sendGiftRunnble);
}
}
});
@@ -232,6 +293,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.diamond_linear), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_recharge_list", "用户点礼物栏充值按钮");
forwardMyCoin(0);
}
});
@@ -246,17 +308,21 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(description, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_blind_box_info", "用户点开礼物列表盲盒页面的盲盒说明");
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
StringBuffer htmlUrl = new StringBuffer();
htmlUrl.append(CommonAppConfig.HOST)
.append("/h5/info/index.html?uid=")
.append("/h5/blindBoxInfo/index.html?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken())
.append("&no_back=1")
.append("&type=")
.append(blindBoxType-1)
;
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl.toString());
// System.out.println("盲盒页面 = "+htmlUrl.toString());
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
fragment.setArguments(bundle);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
@@ -266,6 +332,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_luck_gift_tip), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_opened_noble", "用户点击开通贵族");
dismiss();
((LiveActivity) mContext).openLuckGiftTip();
}
@@ -274,6 +341,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.leveling_layout), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_grade", "用户点击等级页面");
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
StringBuffer htmlUrl = new StringBuffer();
htmlUrl.append(CommonAppConfig.HOST)
@@ -282,7 +350,9 @@ public class LiveGiftPopup extends AbsDialogFragment {
.append("&token=")
.append(userInfo.getToken())
.append("&no_back=1")
.append("&for");
.append("&for")
.append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl.toString());
bundle.putInt("height", DeviceUtils.getScreenHeight(getActivity()) / 5 * 3);
@@ -313,6 +383,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
StringBuffer htmlUrl = new StringBuffer();
htmlUrl.append(CommonAppConfig.HOST)
.append(liveGiftModel.getOperateUrl())
.append("?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken())
@@ -325,6 +396,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
}
});
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
ImgLoader.display(mContext, R.mipmap.icon_live_gift_gift_itle, giftItle);
} else {
@@ -376,6 +448,16 @@ public class LiveGiftPopup extends AbsDialogFragment {
GiftTopBean giftTopBean = new GiftTopBean();
giftTopBean.setName(data.getString("name"));
name.add(giftTopBean);
if (bean1 != null && IMLoginManager.get(mContext).isNewUserGif() && (data.getString("name").equals("熱門") || data.getString("name").equals("Hot"))) {
String giftJson = data.getString("giftlist");
List<LiveGiftBean> liveGiftBeans = JSONArray.parseArray(giftJson, LiveGiftBean.class);
liveGiftBeans.add(0, bean1);
if (mWishGiftId == null) {
mWishGiftId = "" + bean1.getId();
}
liveGiftList.getJSONObject(i).put("giftlist", JSONArray.toJSONString(liveGiftBeans));
}
}
giftTitleAdapter.addAllData(name);
if (!TextUtils.isEmpty(mWishGiftId) && liveGiftList.size() > 0) {
@@ -390,6 +472,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
liveGiftList.getJSONObject(i).getString("name"),
mStream, mLiveUid, mWishGiftId));
transaction.commit();
giftTitleAdapter.setTitleIndex(i);
break;
}
}
}
@@ -440,6 +524,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
/**
* 获取砖石和金豆余额
*/
long diamond = 0;
private void getCoin() {
LiveHttpUtil.getCoin(new HttpCallback() {
@Override
@@ -449,6 +535,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
CoinModel coinModel = GsonUtils.fromJson(info[0], CoinModel.class);
goldText.setText(coinModel.getGold());
diamondText.setText(coinModel.getCoin());
diamond = coinModel.getCoinLong();
lvStr.setText("Lv." + coinModel.getUserLevel());
findViewById(R.id.red_point).setVisibility((!TextUtils.isEmpty(coinModel.getUsersPackRedDot())) &&
@@ -457,7 +544,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
int nextLeve = Integer.parseInt(coinModel.getUserNextLevelRewards());
BigDecimal maxLeve = new BigDecimal(coinModel.getUserLevelUpgrades()).add( new BigDecimal(coinModel.getUserLevelCurrentConsumption()));
BigDecimal maxLeve = new BigDecimal(coinModel.getUserLevelUpgrades()).add(new BigDecimal(coinModel.getUserLevelCurrentConsumption()));
try {
String leveNext = String.valueOf(nextLeve);
String userNextLevel = coinModel.getUserLevelUpgrades();
@@ -515,15 +602,102 @@ public class LiveGiftPopup extends AbsDialogFragment {
private Runnable sendGiftRunnble = new Runnable() {
@Override
public void run() {
sendGift();
if (isWrap && liveGiftModel.getType() == 7) {
sendBlindBoxTicket();
} else {
sendGift();
}
}
};
//使用优惠券
public void sendBlindBoxTicket() {
if (TextUtils.isEmpty(mLiveUid) ||
TextUtils.isEmpty(mStream) ||
liveGiftModel == null)
return;
LiveHttpUtil.sendBlindBoxTicket((by != null ? "1" : "0"),
mLiveUid,
mStream,
isWrap ? liveGiftModel.getId() : liveGiftModel.getBlindBoxTicketId(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
if (liveGiftModel.getSwf().contains("svga")) {
dismiss();
}
if (info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
String coin = obj.getString("coin");
String goldCoin = obj.getString("gold");
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null) {
u.setLevel(obj.getIntValue("level"));
//送礼物后更新粉丝徽章等级
u.setMedalLevel(obj.getIntValue("medal_level"));
u.setMedalName(obj.getString("medal_name"));
u.setCoin(coin);
}
if (diamondText != null) {
diamondText.setText(coin);
}
if (goldText != null) {
goldText.setText(goldCoin);
}
if (!isWrap) {
liveGiftModel.setBlindBoxTicket(liveGiftModel.getBlindBoxTicket() - 1);
} else {
for (int i = 0; i < liveGiftList.size(); i++) {
JSONObject data = liveGiftList.getJSONObject(i);
String giftJson = data.getString("giftlist");
List<LiveGiftBean> liveGiftBeans = JSONArray.parseArray(giftJson, LiveGiftBean.class);
List<LiveGiftBean> liveGiftModels = new ArrayList<>();
for (LiveGiftBean model : liveGiftBeans) {
if (model.getBlindBoxTicketId() == liveGiftModel.getId() && model.getBlindBoxTicket() > 0) {
model.setBlindBoxTicket(model.getBlindBoxTicket() - 1);
}
liveGiftModels.add(model);
}
liveGiftList.getJSONObject(i).put("giftlist", JSONArray.toJSONString(liveGiftModels));
}
LiveHttpUtil.getNewGiftList(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
liveGiftList = obj.getJSONArray("listarray");
CommonAppConfig.getInstance().setGiftListJson(obj.getString("listarray"));
}
}
@Override
public void onFinish() {
}
});
}
isGetNewWrap = true;
if (isWrap) {
Bus.get().post(new LiveParcelItemRefreshEvent().setLiveGiftModel(liveGiftModel));
}
}
} else {
ToastUtil.show(msg);
}
}
});
}
/**
* 赠送礼物
*/
public void sendGift() {
if (liveGiftModel == null) return;
if (liveGiftModel.getType() == 7) {
MobclickAgent.onEvent(mContext, "gif_list_blind_box_seed", "用户发送盲盒");
}
if (liveGiftModel.getTag() != null) {
if (mCount.equals("1")) {
LiveHttpUtil.setFrontTask("sendgift", mLiveUid, new HttpCallback() {
@@ -639,39 +813,45 @@ public class LiveGiftPopup extends AbsDialogFragment {
lianSongHandler.removeCallbacks(lianSongRunnable);
mShowLianBtn = false;
getCoin();
LiveNetManager.get(mContext)
.getGiftNamingInfo(liveGiftModel.getId() + "", new com.yunbao.common.http.base.HttpCallback<GiftNamingInfoModel>() {
@Override
public void onSuccess(GiftNamingInfoModel data) {
liveGiftModel = JSONObject.parseObject(GsonUtils.toJson(data), LiveGiftBean.class);
if (!TextUtils.isEmpty(liveGiftModel.getNamingLiveuid()) &&
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
!TextUtils.equals(liveGiftModel.getNamingUid(), "0")) {
namingLayout.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, liveGiftModel.getNamingLiveAvatar(), namingAvatar);
StringBuffer namingNameText = new StringBuffer();
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
namingNameText.append("获取冠名:")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
if (TextUtils.equals(data.getNamingStatus(), "1")) {
liveGiftModel = JSONObject.parseObject(GsonUtils.toJson(data), LiveGiftBean.class);
if (!TextUtils.isEmpty(liveGiftModel.getNamingLiveuid()) &&
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
!TextUtils.equals(liveGiftModel.getNamingUid(), "0")) {
namingLayout.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, liveGiftModel.getNamingLiveAvatar(), namingAvatar);
StringBuffer namingNameText = new StringBuffer();
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
namingNameText.append("获取冠名:")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
} else {
namingNameText.append("Get title: ")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
}
namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor))
.append(liveGiftModel.getNamingLiveName())
.append(" ")
.append(mContext.getText(com.yunbao.live.R.string.the_title_financier))
.append(" ")
.append(liveGiftModel.getNamingUserName());
namingName.setText(namingNameText.toString());
} else {
namingNameText.append("Get title: ")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
namingLayout.setVisibility(View.GONE);
}
namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor))
.append(liveGiftModel.getNamingLiveName())
.append(" ")
.append(mContext.getText(com.yunbao.live.R.string.the_title_financier))
.append(" ")
.append(liveGiftModel.getNamingUserName());
namingName.setText(namingNameText.toString());
} else {
namingLayout.setVisibility(View.GONE);
}
}
@Override
@@ -728,7 +908,9 @@ public class LiveGiftPopup extends AbsDialogFragment {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveGiftItemEvent(LiveGiftItemEvent event) {
liveGiftModel = event.getLiveGiftModel();
MobclickAgent.onEvent(mContext, "gif_list_choose", "用户选中某个礼物:" + liveGiftModel.getName());
updateOverlayVisibility();
if (!TextUtils.isEmpty(liveGiftModel.getNamingLiveuid()) &&
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
@@ -756,8 +938,10 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
if (liveGiftModel.getType() == 7) {
MobclickAgent.onEvent(mContext, "gif_list_blind_box", "用户点开礼物列表盲盒");
iconArrow.setVisibility(View.GONE);
showBlindProgress(liveGiftModel.getBlind_box_type());
description.setTag(liveGiftModel.getBlind_box_type());
} else {
blindBox.setVisibility(View.INVISIBLE);
mCount = DEFAULT_COUNT;
@@ -782,6 +966,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
if (!TextUtils.isEmpty(liveGiftModel.getOperateImage())) {
operateImage.setVisibility(View.VISIBLE);
ImgLoader.display(getContext(), liveGiftModel.getOperateImage(), operateImage);
} else {
operateImage.setVisibility(View.GONE);
}
}
@@ -1165,12 +1351,15 @@ public class LiveGiftPopup extends AbsDialogFragment {
if (goldText != null) {
goldText.setText(goldCoin);
}
if (!mGiftBean.getSwf().contains("svga")) {
showLianBtn();
}
if (mGiftBean.getType() == 7) {
showLianBtn();
}
// //刷新包裹列表wrap_gift_num -1:表示数量没有变化
// mObjGiftSendback = obj;
isGetNewWrap = true;
@@ -1228,6 +1417,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
@Override
public void onConfirmClick(Dialog dialog, String content) {
forwardMyCoin(0);
MobclickAgent.onEvent(mContext, "user_to_recharge", "app内任意提示用户余额不足 用户充值点了提示里面的去充值");
}
}).build().show();
} else {
@@ -1237,4 +1428,15 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
}
private void updateOverlayVisibility() {
/* if (
blindBox.getVisibility() == View.VISIBLE ||
operateImage.getVisibility() == View.VISIBLE ||
namingLayout.getVisibility() == View.VISIBLE
) {
overlay.setVisibility(View.VISIBLE);
} else {
overlay.setVisibility(View.GONE);
}*/
}
}

View File

@@ -157,9 +157,9 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
String appCachePath = mContext.getCacheDir().getAbsolutePath();
mWebView.getSettings().setAppCachePath(appCachePath);
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
// mWebView.getSettings().setAppCacheEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
@@ -371,7 +371,7 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname="
+ u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&uid="
+ CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&active=" + event.getData() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, url, false);
ZhuangBanActivity.forward(mContext, url, false,0);
}
}

View File

@@ -27,6 +27,7 @@ import android.widget.RadioGroup;
import androidx.fragment.app.FragmentActivity;
import com.blankj.utilcode.util.GsonUtils;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.NobleTrumpetModel;
@@ -143,6 +144,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
MobclickAgent.onEvent(mContext, "chat_btn_enter", "用户输入文字");
if (s.length() == 0) {
mMyRadioButton.doChecked(false);
} else {
@@ -190,6 +192,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
ViewClicksAntiShake.clicksAntiShake(mRootView.findViewById(R.id.ai_te), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "chat_btn_at", "用户点聊天框上的艾特");
Intent intent = new Intent(getActivity(), OlineListActivity.class);
intent.putExtra("liveID", mLiveUid);
intent.putExtra("stream", bundle.getString(Constants.LIVE_STREAM));
@@ -211,6 +214,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onClick(View v) {
MobclickAgent.onEvent(mContext, "chat_btn_seed_msg", "用户点发送按钮");
sendMessage();
}
@@ -318,10 +322,12 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
mInput.setHint(mHint2);
messageType = SendMessageType.GENERALMESSAGE;
} else if (radioButton.getId() == R.id.btn_1) {
MobclickAgent.onEvent(mContext, "chat_btn_wind", "用户点输入框上飘屏按钮");
radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(popupScreenP, null, null, null);
mInput.setHint(mHint1);
messageType = SendMessageType.POPUPSCREEN;
} else {
MobclickAgent.onEvent(mContext, "chat_btn_trumpet", "用户点输入框上全站喇叭按钮");
radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(worldHornP, null, null, null);
mInput.setHint(String.format(mContext.getString(R.string.whole_station_horn_hint), trumpetNum + ""));
messageType = SendMessageType.WORLDHORN;

View File

@@ -27,6 +27,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.adapter.AnchorUserMicInfoAdapter;
@@ -151,7 +152,17 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
mOpenMicBtn = mRootView.findViewById(R.id.open_mic);
mNoMoreDesc = mRootView.findViewById(R.id.no_more_desc);
Tips = bundle.getString("By");
requestMicBtn = mRootView.findViewById(R.id.guard_btn);
mDisconnectMic = mRootView.findViewById(R.id.apply_btn);
inviteMicBtn = mRootView.findViewById(R.id.fans_btn);
if (!WordUtil.isNewZh()) {
listMicbtn.setText("connection");
requestMicBtn.setText("apply list");
mDisconnectMic.setText("apply");
inviteMicBtn.setText("invite");
((TextView) mRootView.findViewById(R.id.title)).setText("Open the voice permission");
((TextView) mRootView.findViewById(R.id.des)).setText("fan level 5 or above can apply for voice");
}
listMicbtn.setOnClickListener(view -> {
if (!MicStatusManager.getInstance().isAnchorOpenRoom()) {
return;
@@ -161,7 +172,6 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
type = "guanzhong";
mRefreshView.initData();
});
requestMicBtn = mRootView.findViewById(R.id.guard_btn);
requestMicBtn.setOnClickListener(view -> {
if (!MicStatusManager.getInstance().isAnchorOpenRoom()) {
return;
@@ -171,7 +181,7 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
type = "guard";
mRefreshView.initData();
});
inviteMicBtn = mRootView.findViewById(R.id.fans_btn);
inviteMicBtn.setVisibility(View.VISIBLE);
inviteMicBtn.setOnClickListener(view -> {
if (!MicStatusManager.getInstance().isAnchorOpenRoom()) {
@@ -202,13 +212,13 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
mRefreshView = mRootView.findViewById(R.id.refreshView);
view_no = mRootView.findViewById(R.id.view_no);
mDisconnectMic = mRootView.findViewById(R.id.apply_btn);
mDisconnectMic.setBackgroundResource(R.drawable.background_eb6877);
mDisconnectMic.setText(R.string.close_mic);
mDisconnectMic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogUitl.showSimpleDialog(mContext, "是否確認關閉語音連麥", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh()?"是否確認關閉語音連麥":"Whether to disable the voice", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
MicStatusManager.getInstance().closeMic(mContext);
@@ -340,12 +350,18 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
requestMicBtn.setTextColor(Color.parseColor("#fff6f7fb"));
inviteMicBtn.setTextColor(Color.parseColor("#ff646464"));
mNoMoreDesc.setText("當前沒有人申請");
if (!WordUtil.isNewZh()) {
mNoMoreDesc.setText("No one has applied at the moment");
}
type = "guard";
} else if (Tips.equals("3")) {
listMicbtn.setTextColor(Color.parseColor("#ff646464"));
requestMicBtn.setTextColor(Color.parseColor("#ff646464"));
inviteMicBtn.setTextColor(Color.parseColor("#fff6f7fb"));
mNoMoreDesc.setText("當前沒有觀眾");
if (!WordUtil.isNewZh()) {
mNoMoreDesc.setText("No audience at the moment");
}
type = "fans";
}
}

View File

@@ -4,6 +4,7 @@ import android.Manifest;
import android.app.ActionBar;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
@@ -27,6 +28,7 @@ import com.yunbao.common.http.HttpClient;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
@@ -149,23 +151,32 @@ public class LiveMicUserDialogFragment extends AbsDialogFragment implements View
apply_btn = mRootView.findViewById(R.id.apply_btn);
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_DEFAULT) {
apply_btn.setBackgroundResource(R.drawable.background_0fdab8);
apply_btn.setText(R.string.apply_for_lianmai);
apply_btn.setText(mContext.getString(R.string.apply_for_lianmai));
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
apply_btn.setBackgroundResource(R.drawable.background_00a0e9);
apply_btn.setText(R.string.cancel_application);
apply_btn.setText(mContext.getString(R.string.cancel_application));
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
apply_btn.setBackgroundResource(R.drawable.background_eb6877);
apply_btn.setText(R.string.quit_mic);
apply_btn.setText(mContext.getString(R.string.quit_mic));
}
apply_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_DEFAULT) {
LiveAudienceActivity.mProcessResultUtil.requestPermissions(new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
}, new Runnable() {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissions=new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.RECORD_AUDIO
};
}else{
permissions=new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
};
}
LiveAudienceActivity.mProcessResultUtil.requestPermissions(permissions, new Runnable() {
@Override
public void run() {
@@ -267,8 +278,12 @@ public class LiveMicUserDialogFragment extends AbsDialogFragment implements View
});
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
String content="連麥中,退出將斷開語音連麥!";
if(!WordUtil.isNewZh()){
content="Connect, exit will disconnect voice connect!";
}
//退出连麦
DialogUitl.showSimpleDialog(mContext, "連麥中,退出將斷開語音連麥!", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext,content , new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Log.e("ry", "退出112");

View File

@@ -64,13 +64,7 @@ public class LiveNewRoomClassDialogFragment extends AbsDialogFragment implements
if (configBean != null) {
List<LiveClassBean> list1 = configBean.getLiveClass();
for (int i = 0; i < list1.size(); i++) {
if (!list1.get(i).getName().equals("New") &&
!list1.get(i).getName().equals("新秀") &&
!list1.get(i).getName().equals("熱門") &&
!list1.get(i).getName().equals("Hot") &&
!list1.get(i).getName().equals("男神") &&
!list1.get(i).getName().equals("Mr.Right")
) {
if(list1.get(i).getChannel_show()==1){
list.add(list1.get(i));
}
}

View File

@@ -31,12 +31,16 @@ import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
@@ -45,11 +49,10 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveReportActivity;
import com.yunbao.live.bean.ImpressBean;
import com.yunbao.live.custom.MyTextView;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.utils.LiveTextRender;
import org.greenrobot.eventbus.EventBus;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -137,43 +140,7 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
DialogUitl.showSimpleDialog(mContext, "是否確認前往對方直播間?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
RongChatRoomClient.getInstance().quitChatRoom("g" + mLiveUid, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功");
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
}
});
V2TIMManager.getInstance().quitGroup("g" + mLiveUid, new V2TIMCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功" + mLiveUid);
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(int code, String desc) {
Log.i("tx", "退出失败");
}
});
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -182,7 +149,11 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
if (liveBean == null) {
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
dismiss();
}
@Override
@@ -457,7 +428,7 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
}
mFollowing = obj.getIntValue("isattention") == 1;
if (mFollowText != null) {
mFollowText.setText(mFollowing ?mContext.getString(R.string.following) :mContext.getString(R.string.follow));
mFollowText.setText(mFollowing ? mContext.getString(R.string.following) : mContext.getString(R.string.follow));
}
if (mFollowImage != null) {
mFollowImage.setImageDrawable(mFollowing ? mFollowDrawable : mUnFollowDrawable);
@@ -570,7 +541,7 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
}
if (isAttention == 1 && mLiveUid.equals(mToUid)) {//关注了主播
((LiveActivity) mContext).sendSystemMessage(
CommonAppConfig.getInstance().getUserBean().getUserNiceName() +mContext.getString(R.string.live_follow_anchor));
CommonAppConfig.getInstance().getUserBean().getUserNiceName() + mContext.getString(R.string.live_follow_anchor));
}
}
};

View File

@@ -69,9 +69,9 @@ public class LiveUserAnchorMailBoxWebInfoPopDialog extends AbsDialogPopupWindow
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
String appCachePath = getContext().getCacheDir().getAbsolutePath();
mWebView.getSettings().setAppCachePath(appCachePath);
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
// mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

View File

@@ -24,6 +24,7 @@ import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.tencent.imsdk.v2.V2TIMCallback;
import com.tencent.imsdk.v2.V2TIMManager;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.FansModel;
@@ -32,14 +33,17 @@ import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.OlineUserlistModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.NobleUtil;
import com.yunbao.common.utils.RouteUtil;
@@ -52,9 +56,6 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveReportActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.utils.LiveTextRender;
import org.greenrobot.eventbus.EventBus;
@@ -249,7 +250,18 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
mLvVal = mRootView.findViewById(R.id.user_card_lv_val);
mNobleIconLayout.setOnClickListener(this);
mSetting.setOnClickListener(this);
mHonorLayout.setOnClickListener(v -> forwardHomePage());
mHonorLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!isAnchor) {
MobclickAgent.onEvent(mContext, "user_avatar_honor", "荣誉墙按钮");
} else {
MobclickAgent.onEvent(mContext, "anchor_avatar_honor", "主播荣誉墙");
}
forwardHomePage();
}
});
//用户名片连点三次粉丝弹出视频debug窗
/*mFansVal.setOnClickListener(new View.OnClickListener() {
@@ -610,6 +622,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
* 跳转到个人主页
*/
private void forwardHomePage() {
dismiss();
Constants.mStream = mStream;
RouteUtil.forwardUserHome(mContext, mToUid, true, mLiveUid, 0);
@@ -627,44 +640,8 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.party_studio), new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveUserDialogFragment.this.dismiss();
RongChatRoomClient.getInstance().quitChatRoom("g" + mLiveUid, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功");
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
}
});
V2TIMManager.getInstance().quitGroup("g" + mLiveUid, new V2TIMCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功" + mLiveUid);
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(int code, String desc) {
Log.i("tx", "退出失败");
}
});
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -681,6 +658,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
}
@Override
@@ -702,14 +680,30 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
public void onClick(View v) {
int i = v.getId();
if (i == R.id.btn_follow) {
if (isAnchor) {
MobclickAgent.onEvent(mContext, "anchor_avatar_follow", "点关注主播");
} else {
MobclickAgent.onEvent(mContext, "user_avatar_follow", "点关注用户");
}
setAttention();
} else if (i == R.id.btn_home_page) {
if (isAnchor) {
MobclickAgent.onEvent(mContext, "anchor_avatar_index", "点主播主页");
} else {
MobclickAgent.onEvent(mContext, "user_avatar_index", "主页按钮");
}
forwardHomePage();
} else if (i == R.id.btn_report) {
report();
} else if (i == R.id.avatar) {
if (isAnchor) {
MobclickAgent.onEvent(mContext, "anchor_avatar_btn", "点主播头像");
}
forwardHomePage();
} else if (i == R.id.btn_guard) {
MobclickAgent.onEvent(mContext, "anchor_avatar_guard", "守护按钮");
((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity, mToUid);
} else if (i == R.id.btn_live) {
gotoLive(mToUid);
@@ -718,6 +712,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
dismiss();
((LiveActivity) mContext).openFansWindow(mToUid);
} else {
MobclickAgent.onEvent(mContext, "user_avatar_noble", "贵族按钮");
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.NOBLE));
}

View File

@@ -111,7 +111,7 @@ public class MedalAchievementPopup extends BottomPopupView {
.append(userInfo.getToken())
.append("&uid=")
.append(userInfo.getId());
ZhuangBanActivity.forward(getContext(), htmlUrl.toString(), false);
ZhuangBanActivity.forward(getContext(), htmlUrl.toString(), false,0);
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() {

View File

@@ -3,6 +3,7 @@ package com.yunbao.live.dialog;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
@@ -162,15 +163,21 @@ public class PDLIiveChatConversationFragment extends AbsDialogFragment implement
//intoIndex 1=调用相机,2=照片选取,3=视频选取
public void jumpPic(int intoIndex) {
String permission1=Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2= Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permission1=Manifest.permission.READ_MEDIA_IMAGES;
permission2=Manifest.permission.READ_MEDIA_IMAGES;
}
//选择图片
int isPermission1 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int isPermission1 = ContextCompat.checkSelfPermission(mContext, permission1);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, permission2);
if (isPermission1 == PackageManager.PERMISSION_GRANTED && isPermission2 == PackageManager.PERMISSION_GRANTED) {
startActivity(intoIndex);
} else {
//申请权限
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
ActivityCompat.requestPermissions(getActivity(), new String[]{permission1,
permission2}, PERMISSION_REQUEST_CODE);
}
}

View File

@@ -19,6 +19,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -223,7 +224,13 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
if (data.getCode() == 0) {
setSwitchBtn(!(boolean) mRandomPkSwitch.getTag());
} else if (data.getCode() == 500) {
DialogUitl.showSimpleDialog(mContext, "您因拒绝随机PK被限制关闭", "随机PK可打开时间" + data.getMsg(), false, new DialogUitl.SimpleCallback() {
String title="您因拒絕隨機PK被限制關閉";
String content="隨機PK可打開時間";
if(!WordUtil.isNewZh()){
title="You are restricted for refusing random PK";
content="Random PK can open time:";
}
DialogUitl.showSimpleDialog(mContext,title , content + data.getMsg(), false, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
dialog.dismiss();
@@ -248,7 +255,12 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
*/
private void randomPk() {
if (mRandomPkSwitch.getTag() == null || !(boolean) mRandomPkSwitch.getTag()) {
ToastUtil.show("未开启随机PK开关");
if (WordUtil.isNewZh()) {
ToastUtil.show("未開啟隨機PK開關");
} else {
ToastUtil.show("The random PK switch is not enabled");
}
return;
}
if ((mPkBtn.getTag() != null && (boolean) mPkBtn.getTag()) || RandomPkManager.getInstance().isRequestPk()) {
@@ -267,7 +279,11 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
mPkBtn.setTag(true);
}
} else {
ToastUtil.show("請先關閉語言連麥");
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
} else {
ToastUtil.show("Please disable the voice connection first");
}
}
}
});

View File

@@ -25,6 +25,7 @@ import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.TimeUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.CircleProgress;
import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -46,10 +47,13 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
private ImageView isAttention;
private RedPacketInfoModel redPacketInfoModel;
private boolean isSuperJackpot;
private boolean isFans = false;
public ReceiveRendPacketPopup(@NonNull Context context, int time, String mLiveUid, String stream,
String redPacketId, RedPacketInfoModel redPacketInfoModel,
boolean isSuperJackpot) {
boolean isSuperJackpot,
boolean isFans
) {
super(context);
this.time = time;
@@ -58,7 +62,7 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
this.redPacketId = redPacketId;
this.redPacketInfoModel = redPacketInfoModel;
this.isSuperJackpot = isSuperJackpot;
this.isFans = isFans;
}
// 返回自定义弹窗的布局离开
@@ -95,6 +99,7 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
}
userID = redPacketInfoModel.getUserId();
}
private Handler timeHandler = new Handler();
@@ -102,7 +107,7 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
private Runnable timeRunnable = new Runnable() {
@Override
public void run() {
if (time > 0) {
if (time > 1) {
circleProgress.setCurrent(time--);
timeHandler.postDelayed(timeRunnable, 1000);
String countdown = TimeUtils.getTime(time);
@@ -149,6 +154,11 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
redPacketTimeLayout.setVisibility(GONE);
redPacketOpen.setVisibility(VISIBLE);
}
ViewClicksAntiShake.clicksAntiShake(redPacketTimeLayout, () -> {
if (!isFans && redPacketInfoModel.getIsFans()) {
ToastUtil.show(getContext().getString(R.string.live_rad_pack_join_fans_group_click_tip));
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.red_packet_open), () -> {
if (isSuperJackpot) {
@@ -179,6 +189,10 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
}
});
} else {
if (!isFans && redPacketInfoModel.getIsFans()) {
ToastUtil.show(getContext().getString(R.string.live_rad_pack_join_fans_group_click_tip));
return;
}
if (TextUtils.equals(redPacketInfoModel.getConditions(), "1") && LiveAudienceActivity.isattention == 0) {
LiveRoomViewHolder.follow();
}

View File

@@ -16,6 +16,7 @@ import androidx.annotation.NonNull;
import com.alibaba.android.arouter.launcher.ARouter;
import com.lxj.xpopup.core.CenterPopupView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
@@ -24,7 +25,7 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
public class SendRendPacketPopup extends CenterPopupView {
private Button thereIsNo, followingAnchor;
private Button thereIsNo, followingAnchor, joinFansGroup;
private TextView redEnvelopeRill, totalConsumptionOfDrill;
private TextView rill, total;
private FrameLayout redPacketIllustrate;
@@ -58,6 +59,7 @@ public class SendRendPacketPopup extends CenterPopupView {
redPacketIllustrate = findViewById(R.id.red_packet_illustrate);
illustrateClose = findViewById(R.id.illustrate_close);
iconInstructions = findViewById(R.id.icon_instructions);
joinFansGroup = findViewById(R.id.fans_group);
rill = findViewById(R.id.rill);
total = findViewById(R.id.total);
selectText(thereIsNo, true);
@@ -65,13 +67,21 @@ public class SendRendPacketPopup extends CenterPopupView {
ViewClicksAntiShake.clicksAntiShake(thereIsNo, () -> {
selectText(thereIsNo, true);
selectText(followingAnchor, false);
selectText(joinFansGroup, false);
conditions = "0";
});
ViewClicksAntiShake.clicksAntiShake(followingAnchor, () -> {
selectText(thereIsNo, false);
selectText(joinFansGroup, false);
selectText(followingAnchor, true);
conditions = "1";
});
ViewClicksAntiShake.clicksAntiShake(joinFansGroup, () -> {
selectText(thereIsNo, false);
selectText(joinFansGroup, true);
selectText(followingAnchor, false);
conditions = "0";
});
redEnvelopeRill.setText(String.format(getContext().getString(R.string.red_envelope_rill), "0"));
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), "0"));
rill.addTextChangedListener(new TextWatcher() {
@@ -156,7 +166,13 @@ public class SendRendPacketPopup extends CenterPopupView {
//红包初始数量
rill.setText("200");
total.setText("10");
ViewClicksAntiShake.clicksAntiShake(iconInstructions, () -> redPacketIllustrate.setVisibility(VISIBLE));
ViewClicksAntiShake.clicksAntiShake(iconInstructions, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(getContext(), "gif_list_redpk_info", "用户点开礼物列表红包页面的红包说明");
redPacketIllustrate.setVisibility(VISIBLE);
}
});
ViewClicksAntiShake.clicksAntiShake(illustrateClose, () -> redPacketIllustrate.setVisibility(GONE));
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.top_up_now), () -> {
//我们的
@@ -198,9 +214,13 @@ public class SendRendPacketPopup extends CenterPopupView {
.createRedPacket(mLiveID,
rillNumber,
number,
conditions, new HttpCallback<String>() {
conditions,
joinFansGroup.getTag() != null && (boolean) joinFansGroup.getTag(),
new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
MobclickAgent.onEvent(getContext(), "gif_list_redpk_seed", "用户发送红包");
ToastUtil.show(getContext().getString(R.string.red_envelope_released_successfully));
dismiss();
}
@@ -214,10 +234,10 @@ public class SendRendPacketPopup extends CenterPopupView {
}
});
if(WordUtil.isNewZh()){
((ImageView)findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_zh);
}else{
((ImageView)findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_en);
if (WordUtil.isNewZh()) {
((ImageView) findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_zh);
} else {
((ImageView) findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_en);
}
}
@@ -225,8 +245,10 @@ public class SendRendPacketPopup extends CenterPopupView {
textView.setSelected(select);
if (select) {
textView.setTextColor(Color.parseColor("#E12801"));
textView.setTag(true);
} else {
textView.setTextColor(Color.parseColor("#FDD04A"));
textView.setTag(false);
}
}

View File

@@ -0,0 +1,17 @@
package com.yunbao.live.event;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LiveGiftBean;
public class LiveGiftItemRefreshEvent extends BaseModel {
private LiveGiftBean liveGiftModel;
public LiveGiftBean getLiveGiftModel() {
return liveGiftModel;
}
public LiveGiftItemRefreshEvent setLiveGiftModel(LiveGiftBean liveGiftModel) {
this.liveGiftModel = liveGiftModel;
return this;
}
}

View File

@@ -373,7 +373,7 @@ public class LiveGiftAnimPresenter {
mGifGiftTipGroupBuyZuoji.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WebViewActivity.forward(mContext, HtmlConfig.SHOP + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
WebViewActivity.forward(mContext, HtmlConfig.SHOP + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"),true);
}
});
}
@@ -382,7 +382,7 @@ public class LiveGiftAnimPresenter {
mGifGiftTipGroupBuyLiangName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WebViewActivity.forward(mContext, HtmlConfig.SHOP + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
WebViewActivity.forward(mContext, HtmlConfig.SHOP + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"),true);
}
});
}

View File

@@ -5,6 +5,7 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -587,12 +588,22 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
if (processResultUtil == null) {
return;
}
processResultUtil.requestPermissions(new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
}, new Runnable() {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissions=new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
};
}else{
permissions=new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
};
}
processResultUtil.requestPermissions(permissions, new Runnable() {
@Override
public void run() {
SocketLinkMicUtil.audienceApplyLinkMic(mSocketClient);

View File

@@ -642,6 +642,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -768,6 +769,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -924,6 +926,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode);
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1000,6 +1003,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "订阅资源失败: " + rtcErrorCode);
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1773,6 +1777,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
//2. 合流画布设置
@@ -1963,6 +1968,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});

Some files were not shown because too many files have changed in this diff Show More