Compare commits

...

130 Commits

Author SHA1 Message Date
18401019693
66849632e0 pdlive6.6.6版本改动合并 2024-04-12 14:13:13 +08:00
18401019693
06fa241af6 pdlive6.6.6版本改动合并 2024-04-11 16:43:01 +08:00
18401019693
b31ec9cddf pdlive6.6.6版本改动合并 2024-04-11 13:11:32 +08:00
80d89c8c0b 更新 版本号 2024-04-08 17:19:39 +08:00
99d92b8137 修复 更新问题
修复 删除聊天内容会恢复问题
2024-04-08 16:34:26 +08:00
dbebb942e3 修复 更新问题
修复 删除聊天内容会恢复问题
2024-04-08 16:34:14 +08:00
ed20df63eb 修复 2024-04-07 18:25:50 +08:00
67cca1b4fb 修复 2024-04-07 17:50:10 +08:00
hch
1e91f4c716 fix [修复] 2024-04-07 17:29:08 +08:00
7072aadcb6 修复 2024-04-07 15:22:21 +08:00
269ad6e808 修复 2024-04-07 14:46:08 +08:00
hch
954a14662b fix [修复-关注状态问题、动态必填信息问题] 2024-04-03 18:25:27 +08:00
35e0d3dc3e 修复 [通讯录搜索问题] 2024-04-03 18:02:36 +08:00
26af3fbbdd 修复 [反馈问题] 2024-04-03 17:46:51 +08:00
75da607022 修复 [分享密码房打不开的问题] 2024-04-03 17:08:23 +08:00
98c17b91fc 修复 [反餽問題] 2024-04-03 16:14:04 +08:00
0cb2918561 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-04-03 16:13:16 +08:00
hch
538fcc4331 fix [修改-短剧返回按钮] 2024-04-03 16:12:50 +08:00
088868201d 修复 [反餽問題] 2024-04-03 16:11:57 +08:00
fb81ca8c54 修复 [主播账号,更改为在线状态后,确定后重新进入,仍然显示离线] 2024-04-03 15:37:44 +08:00
703e3c16d1 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-04-03 15:23:21 +08:00
d06f4599fa 修复 [在直播间中,点击推送弹窗,进入聊天详情界面,点击聊天记录中的直播间【站内分享】,无法进入直播间] 2024-04-03 15:23:08 +08:00
b285512914 修复 [在直播间中,只有普通消息才能收到推送弹窗] 2024-04-03 15:06:00 +08:00
44fc3c651a Login.getCode加字段 2024-04-03 14:22:17 +08:00
7eb9aafd87 调整通讯录图片 2024-04-03 14:14:01 +08:00
ceaec086ad 调整push弹框内容 2024-04-03 14:07:47 +08:00
hch
7ab38b12d9 fix [修复-未上传成功,url清空] 2024-04-03 13:46:45 +08:00
47a3ba6b78 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-04-03 13:45:28 +08:00
260a6b91f3 fix [反馈内容] 2024-04-03 13:44:27 +08:00
hch
04bc9af501 fix [修复-bug] 2024-04-03 13:11:10 +08:00
0f9f53a080 fix [进入竖屏视频,点击头像,返回,视频变成横屏] 2024-04-03 10:13:34 +08:00
9652bcaf9a fix [英文版【连麦中,退出将断开语音连麦!】未翻译] 2024-04-02 18:16:32 +08:00
5c10820e98 fix [英文版【连麦中,退出将断开语音连麦!】未翻译] 2024-04-02 18:14:08 +08:00
dc65e2bdd3 fix [调整完善信息UI]
fix [站内分享 列表下标问题]
2024-04-02 17:54:01 +08:00
4685b7979b fix [头像問題] 2024-04-02 16:49:02 +08:00
d44df09e5c fix [爱好会遮挡] 2024-04-02 16:10:04 +08:00
hch
4c760e60b1 fix [修复-修復上傳視頻發佈提示問題] 2024-04-02 15:42:12 +08:00
4de32ec4e0 fix [调整is_chat开关] 2024-04-02 15:09:12 +08:00
hch
c35832487d fix [修复-去掉视频封面] 2024-04-02 13:20:15 +08:00
b52e1cea66 fix [找回密码无法登陆问题] 2024-04-02 13:19:29 +08:00
41874a5073 fix [找回密码无法登陆问题] 2024-04-02 13:19:23 +08:00
1f21d447e7 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-04-02 10:03:26 +08:00
hch
ddaed22630 fix [修复-视频播放问题] 2024-04-02 10:02:32 +08:00
hch
97c692d41d fix [修复-修改视频框架] 2024-04-01 18:20:10 +08:00
79f0237849 remove [移除已读未读标记] 2024-04-01 16:03:57 +08:00
6945414be3 fix [聊天时直播状态不正确] 2024-04-01 16:02:49 +08:00
5ed273f99b add 找回密码新增语言标记 2024-04-01 14:03:02 +08:00
f80e8016b5 add 登录新增语言标记 2024-04-01 13:26:43 +08:00
1dcd0c7882 add 客服页面都需要在链接后加一个中英文的isZh 2024-04-01 10:58:37 +08:00
962a07d6d1 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-04-01 10:47:27 +08:00
51ab918327 fix [换设备已读聊天信息依旧推送问题] 2024-04-01 10:47:13 +08:00
hch
10ea7d9735 fix [修复-视频问题] 2024-04-01 10:46:33 +08:00
91217e6bda Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-29 14:52:03 +08:00
081a2ee350 fix [PDL不能展示战令的弹窗] 2024-03-29 14:51:53 +08:00
6172b5ea9a fix [调整翻译] 2024-03-29 14:51:36 +08:00
3b7f273a6e fix [调整翻译] 2024-03-29 14:29:15 +08:00
bc412a0fb5 fix [Banner错误展示] 2024-03-29 14:25:53 +08:00
hch
326e376323 fix [修复-翻译--删除成功,回复] 2024-03-29 14:11:53 +08:00
3f717131cc Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-29 13:05:10 +08:00
hch
7f40b899a9 fix [修复-] 2024-03-29 11:24:52 +08:00
2a4ce7740b fix [消息推送的头像变形] 2024-03-29 10:57:00 +08:00
4725e67c75 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-28 16:29:19 +08:00
hch
f31c20f49a fix [修复-视频-不感兴趣还是中文] 2024-03-28 15:53:34 +08:00
hch
b975e5864f fix [修复-个人主页-动态无法删除问题] 2024-03-28 15:49:11 +08:00
df996435ec fix [卡片内的头像需要加直播状态&直播状态点击直播间] 2024-03-28 15:48:29 +08:00
c4117b80ee fix [出现中英文混搭的情况(偶现)] 2024-03-28 15:37:53 +08:00
hch
1d9930ed26 fix [修复-个人主页-标签颜色问题,视频点赞数量+1问题] 2024-03-28 15:23:43 +08:00
ab4a5cb077 fix [文案顺序问题] 2024-03-28 15:04:30 +08:00
8a480b51dd fix [性别问题] 2024-03-28 14:57:34 +08:00
01e4afe9c0 fix [英文文案需要左右换下 互动对应的是 Chats ] 2024-03-28 14:56:01 +08:00
462d7177c2 fix [性别显示问题] 2024-03-28 14:54:07 +08:00
2ab97cb0f6 fix [头像问题] 2024-03-28 14:47:50 +08:00
d8e002a8bd fix [英文版-用户-选择多个爱好后,内容与标签名隔开下;保存成功提示语还是中文;保存成功后,选择的内容项也是中文显示,参考右图] 2024-03-28 14:13:06 +08:00
dcf7cfa889 fix [注册界面-按钮与输入重叠] 2024-03-28 14:01:52 +08:00
6a5272d39f fix [注册界面-按钮与输入重叠] 2024-03-28 14:01:39 +08:00
6e6acd8871 fix [上滑无法关闭名片] 2024-03-28 13:48:20 +08:00
hch
4f590a78a8 fix [修复-个人主页-自己个人主页的三个点要去掉] 2024-03-28 13:40:28 +08:00
hch
ff57432814 fix [修复-个人主页-动态头像变形问题] 2024-03-28 13:37:55 +08:00
hch
2e9d1cb3dd fix [修复-个人主页-点击视频-无法跳转问题] 2024-03-28 13:36:20 +08:00
hch
54c97251b8 Revert "fix [修复-精彩直播显示位置]"
This reverts commit 415a532351.
2024-03-28 13:07:17 +08:00
hch
0481db2570 fix [修复-精彩直播显示位置] 2024-03-28 13:06:44 +08:00
hch
415a532351 fix [修复-精彩直播显示位置] 2024-03-28 13:06:19 +08:00
72a18a0500 fix [热门-分享-站内好友-列表缺好友的头像] 2024-03-28 10:28:26 +08:00
hch
6b616a4ff8 fix [关注按钮修复,直播状态跳转直播间,首页精彩直播位置展示问题,社区图片5张图片展示问题] 2024-03-27 16:58:01 +08:00
79c691f5b2 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-27 16:13:49 +08:00
2c41e9418d fix [打招呼的弹窗出现时,只会闪一下就自动消失] 2024-03-27 16:09:33 +08:00
e256b61238 fix [上滑无法关闭名片]
fix [聊天界面-聊天内容输入可超过300字符]
2024-03-27 15:52:16 +08:00
be214df23b fix [直播分类里的字体颜色需修改为之前潘多拉的颜色,参考截图] 2024-03-27 15:00:59 +08:00
4451403f46 fix [消息页面按钮与ui不一致] 2024-03-27 14:10:54 +08:00
hch
b0a9ebe0f3 add [个人主页-页面跳转] 2024-03-27 13:08:16 +08:00
b3aed71dd6 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-27 10:32:12 +08:00
hch
d2f4bb3d4f fix [修改-自己的动态-不能拉黑,不感兴趣] 2024-03-27 10:17:53 +08:00
863aef9a20 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-27 10:11:21 +08:00
25fbf11fbc fix [分享列表为空的时候设置背景图] 2024-03-26 18:28:18 +08:00
hch
9bb4ed1393 add [新增-个人主页-动态删除] 2024-03-26 18:20:48 +08:00
hch
e69be60d43 add [新增-个人主页-点击图片展示1] 2024-03-26 17:53:10 +08:00
hch
e352e5692c Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-26 17:51:47 +08:00
hch
c7a4c9f501 add [新增-个人主页-点击图片展示] 2024-03-26 17:51:23 +08:00
f2d7617ebe fix [修复直播数量不足且战令关闭情况下,显示角标Banner白屏问题]
update [替换战令角标]
add [从首页Banner进入战令入口]
add [从弹窗进入战令入口]
2024-03-26 17:47:19 +08:00
210d3a5184 Merge remote-tracking branch 'origin/dev_改版主分支-升级融云SDK&AGP8' into dev_改版主分支-升级融云SDK&AGP8 2024-03-26 17:39:10 +08:00
hch
fe2af299cb fix [修复-没有背景墙图片展示问题] 2024-03-26 17:31:45 +08:00
698b875a93 fix [打招呼弹窗被隐藏问题] 2024-03-26 16:52:31 +08:00
b3fe537b2c fix [身高未设置时,个人主页和名片 标签需要显示为空] 2024-03-26 16:51:30 +08:00
hch
453de855b9 fix [修复-个人主页-标签-身高cm] 2024-03-26 16:50:18 +08:00
hch
e386fbfdbb fix [修复动态发布,时间选择问题] 2024-03-26 16:48:37 +08:00
1d0500128b fix [个人主页身高标签,身高有误] 2024-03-26 16:46:24 +08:00
99bbffed21 fix [跨设备已读消息依旧推送问题] 2024-03-26 16:43:34 +08:00
7c669b338f fix [获取指导员备注信息 为空时的闪退问题] 2024-03-26 16:31:15 +08:00
7e6a296722 update 混淆配置 2024-03-26 16:30:48 +08:00
hch
80fd2a1bbc 三星SDK升级 2024-03-26 16:20:24 +08:00
9d528524be update 三星包 2024-03-26 15:25:23 +08:00
bb4621ee13 fix [从推送点击-回复-进入列表页面-头像没有显示,退出聊天页面重进头像正常显示] 2024-03-26 14:24:07 +08:00
631be1bd89 fix [跨设备已读消息依旧推送问题] 2024-03-26 14:23:50 +08:00
218b223320 Merge branch 'dev_改版主分支' into dev_改版主分支-升级融云SDK&AGP8 2024-03-26 13:46:38 +08:00
8c0398190e Merge remote-tracking branch 'origin/dev_改版主分支' into dev_改版主分支 2024-03-26 13:46:18 +08:00
460dfa87b3 升级融云sdk版本和APG版本 2024-03-26 13:43:13 +08:00
4337f0bdd6 升级融云sdk版本暂存 2024-03-26 10:35:53 +08:00
f391d1bee7 fix [关注状态有误] 2024-03-26 10:25:03 +08:00
33b1f6101f Merge remote-tracking branch 'origin/dev_改版主分支' into dev_改版主分支 2024-03-26 09:37:13 +08:00
7cffce8760 update 补充翻译 2024-03-25 18:09:02 +08:00
be4d05da79 fix [通讯录点击不该跳转到聊天页面] 2024-03-25 18:06:17 +08:00
f8c5b072af fix [分享直播和动态改成叫【站内分享】] 2024-03-25 18:05:59 +08:00
a497d70599 fix [注册默认不需要选择性别v2] 2024-03-25 17:12:20 +08:00
84520a4f2f fix [消息列表时间格式v2] 2024-03-25 16:50:38 +08:00
9a7054ce76 fix [一直存在草稿的问题]
fix [聊天通知改为可点击]
2024-03-25 16:38:47 +08:00
57333cdae8 update 气泡.9图格式 2024-03-25 13:51:25 +08:00
e50b00152d fix [消息列表时间格式] 2024-03-25 13:51:10 +08:00
253fe38067 Merge remote-tracking branch 'origin/dev_改版主分支' into dev_改版主分支 2024-03-25 13:07:34 +08:00
511a354155 fix [消息设置-图片-选择图片-点击裁剪左边的×,回到消息设置页面后卡住] 2024-03-25 10:09:44 +08:00
463e7b9040 fix [消息设置,删除已经上传的图片之后,×依然存在] 2024-03-25 10:09:28 +08:00
408 changed files with 13729 additions and 2360 deletions

View File

@ -1,12 +1,18 @@
apply plugin: 'com.android.library' //apply plugin: 'com.android.library'
apply plugin: 'img-optimizer' //apply plugin: 'img-optimizer'
apply plugin: 'kotlin-android' //apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' //apply plugin: 'kotlin-android-extensions'
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'kotlin-parcelize'
id 'img-optimizer'
}
android { android {
compileSdkVersion rootProject.ext.android.compileSdkVersion namespace "com.yunbao.faceunity"
buildToolsVersion rootProject.ext.android.buildToolsVersion compileSdk rootProject.ext.android.compileSdkVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -48,8 +54,11 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_18
}
buildFeatures {
buildConfig = true
} }
} }
repositories { repositories {

View File

@ -1,6 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.yunbao.faceunity"
> >
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
@ -11,7 +10,9 @@
<application <application
android:icon="@mipmap/ico_home_animoji" android:icon="@mipmap/ico_home_animoji"
android:allowBackup="true"> android:allowBackup="true"
tools:replace="allowBackup"
>
</application> </application>

View File

@ -1,15 +1,15 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion rootProject.ext.android.compileSdkVersion namespace "com.samsung.android.sdk.iap.lib"
buildToolsVersion rootProject.ext.android.buildToolsVersion compileSdk rootProject.ext.android.compileSdkVersion
defaultConfig { defaultConfig {
minSdkVersion minSdkVersion minSdkVersion rootProject.ext.android.minSdkVersion
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro" consumerProguardFiles "consumer-rules.pro"
versionCode versionCode versionCode rootProject.ext.android.versionCode
versionName versionName versionName rootProject.ext.android.versionName
targetSdkVersion targetSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion
} }
buildTypes { buildTypes {
@ -18,7 +18,15 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
} }
} }
buildFeatures {
buildConfig = true
}
}
repositories {
flatDir {
dirs 'libs', '../libs'
}
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
} }

Binary file not shown.

View File

@ -1,30 +1,31 @@
<manifest <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
package="com.samsung.android.sdk.iap.lib"
android:versionCode="601000004" android:versionCode="601000004"
android:versionName="6.1.0"> android:versionName="6.1.0">
<!-- version code [Major/Minor/Bug fix release/Build number ] : x xx xxx xxx --> <!-- version code [Major/Minor/Bug fix release/Build number ] : x xx xxx xxx -->
<application> <application
android:allowBackup="true"
tools:replace="allowBackup">
<!-- IAP 라이브러리 내 Activity 선언 시작--> <!-- IAP 라이브러리 내 Activity 선언 시작-->
<activity <activity
android:name="com.samsung.android.sdk.iap.lib.activity.DialogActivity" android:name="com.samsung.android.sdk.iap.lib2.activity.DialogActivity"
android:theme="@style/Theme.Empty" android:theme="@style/Theme.Empty"
android:configChanges="orientation|screenSize"/> android:configChanges="orientation|screenSize"/>
<activity <activity
android:name="com.samsung.android.sdk.iap.lib.activity.CheckPackageActivity" android:name="com.samsung.android.sdk.iap.lib2.activity.CheckPackageActivity"
android:theme="@style/Theme.Empty" android:theme="@style/Theme.Empty"
android:configChanges="orientation|screenSize"/> android:configChanges="orientation|screenSize"/>
<activity <activity
android:name="com.samsung.android.sdk.iap.lib.activity.AccountActivity" android:name="com.samsung.android.sdk.iap.lib2.activity.AccountActivity"
android:theme="@style/Theme.Transparent" android:theme="@style/Theme.Transparent"
android:configChanges="orientation|screenSize"/> android:configChanges="orientation|screenSize"/>
<activity <activity
android:name="com.samsung.android.sdk.iap.lib.activity.PaymentActivity" android:name="com.samsung.android.sdk.iap.lib2.activity.PaymentActivity"
android:theme="@style/Theme.Empty" android:theme="@style/Theme.Empty"
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|locale|uiMode|fontScale|density"/> android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|locale|uiMode|fontScale|density"/>

View File

@ -1,20 +0,0 @@
package com.samsung.android.sdk.iap.lib.listener;
import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.OwnedProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link GetOwnedListTask}
*/
public interface OnGetOwnedListListener {
/**
* Callback method to be invoked when {@link GetOwnedListTask} has been finished.
*
* @param _errorVO
* @param _ownedList
*/
void onGetOwnedProducts(ErrorVo _errorVO, ArrayList<OwnedProductVo> _ownedList);
}

View File

@ -1,20 +0,0 @@
package com.samsung.android.sdk.iap.lib.listener;
import com.samsung.android.sdk.iap.lib.helper.task.GetProductsDetailsTask;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.ProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link GetProductsDetailsTask}
*/
public interface OnGetProductsDetailsListener {
/**
* Callback method to be invoked when {@link GetProductsDetailsTask} has been finished.
*
* @param _errorVO
* @param _productList
*/
void onGetProducts(ErrorVo _errorVO, ArrayList<ProductVo> _productList);
}

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib.activity; package com.samsung.android.sdk.iap.lib2.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.HelperUtil; import com.samsung.android.sdk.iap.lib2.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
/** /**
* Created by sangbum7.kim on 2018-03-06. * Created by sangbum7.kim on 2018-03-06.
@ -16,12 +16,11 @@ import com.samsung.android.sdk.iap.lib.helper.IapHelper;
public class AccountActivity extends Activity { public class AccountActivity extends Activity {
private static final String TAG = AccountActivity.class.getSimpleName(); private static final String TAG = AccountActivity.class.getSimpleName();
IapHelper mIapHelper = null; com.samsung.android.sdk.iap.lib2.helper.IapHelper mIapHelper = null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mIapHelper = IapHelper.getInstance(this); mIapHelper = IapHelper.getInstance(this);
// ==================================================================== // ====================================================================
// 1. If IAP package is installed and valid, start SamsungAccount // 1. If IAP package is installed and valid, start SamsungAccount

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.activity; package com.samsung.android.sdk.iap.lib2.activity;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
@ -8,25 +8,25 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.dialog.BaseDialogFragment; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment;
import com.samsung.android.sdk.iap.lib.helper.HelperUtil; import com.samsung.android.sdk.iap.lib2.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.PurchaseVo; import com.samsung.android.sdk.iap.lib2.vo.PurchaseVo;
public abstract class BaseActivity extends Activity { public abstract class BaseActivity extends Activity {
private static final String TAG = BaseActivity.class.getSimpleName(); private static final String TAG = BaseActivity.class.getSimpleName();
protected ErrorVo mErrorVo = new ErrorVo(); protected com.samsung.android.sdk.iap.lib2.vo.ErrorVo mErrorVo = new com.samsung.android.sdk.iap.lib2.vo.ErrorVo();
private Dialog mProgressDialog = null; private Dialog mProgressDialog = null;
protected PurchaseVo mPurchaseVo = null; protected com.samsung.android.sdk.iap.lib2.vo.PurchaseVo mPurchaseVo = null;
/** /**
* Helper Class between IAPService and 3rd Party Application * Helper Class between IAPService and 3rd Party Application
*/ */
IapHelper mIapHelper = null; com.samsung.android.sdk.iap.lib2.helper.IapHelper mIapHelper = null;
/** /**
* Flag value to show successful pop-up. Error pop-up appears whenever it fails or not. * Flag value to show successful pop-up. Error pop-up appears whenever it fails or not.
@ -64,15 +64,15 @@ public abstract class BaseActivity extends Activity {
public boolean checkAppsPackage(Activity _activity) { public boolean checkAppsPackage(Activity _activity) {
// 1. If Galaxy Store is installed // 1. If Galaxy Store is installed
// ==================================================================== // ====================================================================
if (HelperUtil.isInstalledAppsPackage(this)) { if (com.samsung.android.sdk.iap.lib2.helper.HelperUtil.isInstalledAppsPackage(this)) {
// 1) If Galaxy Store is enabled // 1) If Galaxy Store is enabled
// ================================================================ // ================================================================
if (!HelperUtil.isEnabledAppsPackage(this)) { if (!com.samsung.android.sdk.iap.lib2.helper.HelperUtil.isEnabledAppsPackage(this)) {
HelperUtil.showEnableGalaxyStoreDialog(_activity); com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showEnableGalaxyStoreDialog(_activity);
// ================================================================ // ================================================================
// 2) If Galaxy Store is valid // 2) If Galaxy Store is valid
// ================================================================ // ================================================================
} else if (HelperUtil.isValidAppsPackage(this)) { } else if (com.samsung.android.sdk.iap.lib2.helper.HelperUtil.isValidAppsPackage(this)) {
return true; return true;
} else { } else {
// Set error to notify result to third-party application // Set error to notify result to third-party application
@ -84,7 +84,7 @@ public abstract class BaseActivity extends Activity {
R.string.dream_ph_body_contact_p1sscustomer_servicep2ss_for_more_information_n_nerror_code_c_p3ss), R.string.dream_ph_body_contact_p1sscustomer_servicep2ss_for_more_information_n_nerror_code_c_p3ss),
"", "", ERROR_ISSUER_IAP_CLIENT + ERROR_CODE_INVALID_GALAXY_STORE); "", "", ERROR_ISSUER_IAP_CLIENT + ERROR_CODE_INVALID_GALAXY_STORE);
mErrorVo.setError(HelperDefine.IAP_PAYMENT_IS_CANCELED, errorString); mErrorVo.setError(HelperDefine.IAP_PAYMENT_IS_CANCELED, errorString);
HelperUtil.showInvalidGalaxyStoreDialog(this); com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showInvalidGalaxyStoreDialog(this);
} }
// ================================================================ // ================================================================
@ -92,7 +92,7 @@ public abstract class BaseActivity extends Activity {
// 2. If Galaxy Store is not installed // 2. If Galaxy Store is not installed
// ==================================================================== // ====================================================================
} else { } else {
HelperUtil.installAppsPackage(this); com.samsung.android.sdk.iap.lib2.helper.HelperUtil.installAppsPackage(this);
} }
// ==================================================================== // ====================================================================
return false; return false;
@ -161,12 +161,12 @@ public abstract class BaseActivity extends Activity {
else { else {
Log.e(TAG, "finishPurchase: " + mErrorVo.dump()); Log.e(TAG, "finishPurchase: " + mErrorVo.dump());
if (mShowErrorDialog) { if (mShowErrorDialog) {
HelperUtil.showIapErrorDialog( com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showIapErrorDialog(
this, this,
getString(R.string.dream_ph_pheader_couldnt_complete_purchase), getString(R.string.dream_ph_pheader_couldnt_complete_purchase),
mErrorVo.getErrorString(), mErrorVo.getErrorString(),
mErrorVo.getErrorDetailsString(), mErrorVo.getErrorDetailsString(),
new BaseDialogFragment.OnClickListener() { new com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment.OnClickListener() {
@Override @Override
public void onClick() { public void onClick() {
finish(); finish();

View File

@ -1,12 +1,12 @@
package com.samsung.android.sdk.iap.lib.activity; package com.samsung.android.sdk.iap.lib2.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.HelperUtil; import com.samsung.android.sdk.iap.lib2.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
/** /**
* Created by sangbum7.kim on 2018-03-07. * Created by sangbum7.kim on 2018-03-07.
@ -27,12 +27,12 @@ public class CheckPackageActivity extends Activity {
int DialogType = extras.getInt("DialogType"); int DialogType = extras.getInt("DialogType");
switch (DialogType) { switch (DialogType) {
case HelperDefine.DIALOG_TYPE_INVALID_PACKAGE: { case HelperDefine.DIALOG_TYPE_INVALID_PACKAGE: {
HelperUtil.showInvalidGalaxyStoreDialog(this); com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showInvalidGalaxyStoreDialog(this);
mFinishFlag = false; mFinishFlag = false;
} }
break; break;
case HelperDefine.DIALOG_TYPE_DISABLE_APPLICATION: { case HelperDefine.DIALOG_TYPE_DISABLE_APPLICATION: {
HelperUtil.showEnableGalaxyStoreDialog(this); com.samsung.android.sdk.iap.lib2.helper.HelperUtil.showEnableGalaxyStoreDialog(this);
mFinishFlag = false; mFinishFlag = false;
} }
break; break;

View File

@ -1,16 +1,12 @@
package com.samsung.android.sdk.iap.lib.activity; package com.samsung.android.sdk.iap.lib2.activity;
import android.app.Activity; import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.dialog.BaseDialogFragment; import com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperUtil;
import com.samsung.android.sdk.iap.lib.helper.HelperUtil;
/** /**
* Created by sangbum7.kim on 2018-03-05. * Created by sangbum7.kim on 2018-03-05.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.activity; package com.samsung.android.sdk.iap.lib2.activity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@ -9,9 +9,9 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.HelperListenerManager; import com.samsung.android.sdk.iap.lib2.helper.HelperListenerManager;
import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener; import com.samsung.android.sdk.iap.lib2.listener.OnPaymentListener;
public class PaymentActivity extends BaseActivity { public class PaymentActivity extends BaseActivity {
private static final String TAG = PaymentActivity.class.getSimpleName(); private static final String TAG = PaymentActivity.class.getSimpleName();
@ -56,7 +56,7 @@ public class PaymentActivity extends BaseActivity {
super.preDestory(); super.preDestory();
if (isFinishing()) { if (isFinishing()) {
OnPaymentListener onPaymentListener = OnPaymentListener onPaymentListener =
HelperListenerManager.getInstance().getOnPaymentListener(); com.samsung.android.sdk.iap.lib2.helper.HelperListenerManager.getInstance().getOnPaymentListener();
HelperListenerManager.getInstance().setOnPaymentListener(null); HelperListenerManager.getInstance().setOnPaymentListener(null);
if (null != onPaymentListener) { if (null != onPaymentListener) {
onPaymentListener.onPayment(mErrorVo, mPurchaseVo); onPaymentListener.onPayment(mErrorVo, mPurchaseVo);

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.dialog; package com.samsung.android.sdk.iap.lib2.dialog;
import android.app.ActionBar; import android.app.ActionBar;
import android.app.Dialog; import android.app.Dialog;
@ -8,7 +8,6 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper; package com.samsung.android.sdk.iap.lib2.helper;
/** /**
* Created by sangbum7.kim on 2017-07-17. * Created by sangbum7.kim on 2017-07-17.

View File

@ -1,12 +1,12 @@
package com.samsung.android.sdk.iap.lib.helper; package com.samsung.android.sdk.iap.lib2.helper;
import com.samsung.android.sdk.iap.lib.helper.task.ConsumePurchasedItemsTask; import com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener;
import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask; import com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener;
import com.samsung.android.sdk.iap.lib.helper.task.GetProductsDetailsTask; import com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener;
import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener; import com.samsung.android.sdk.iap.lib2.listener.OnPaymentListener;
import com.samsung.android.sdk.iap.lib.listener.OnGetOwnedListListener; import com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask;
import com.samsung.android.sdk.iap.lib.listener.OnGetProductsDetailsListener; import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener; import com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask;
/** /**
* Created by sangbum7.kim on 2017-08-29. * Created by sangbum7.kim on 2017-08-29.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper; package com.samsung.android.sdk.iap.lib2.helper;
import android.app.Activity; import android.app.Activity;
import android.content.ComponentName; import android.content.ComponentName;
@ -14,9 +14,9 @@ import android.text.Html;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.activity.BaseActivity; import com.samsung.android.sdk.iap.lib2.activity.BaseActivity;
import com.samsung.android.sdk.iap.lib.dialog.BaseDialogFragment; import com.samsung.android.sdk.iap.lib2.dialog.BaseDialogFragment;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
/** /**
* Created by sangbum7.kim on 2017-08-17. * Created by sangbum7.kim on 2017-08-17.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper; package com.samsung.android.sdk.iap.lib2.helper;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@ -12,20 +12,20 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.activity.CheckPackageActivity; import com.samsung.android.sdk.iap.lib2.activity.CheckPackageActivity;
import com.samsung.android.sdk.iap.lib.activity.PaymentActivity; import com.samsung.android.sdk.iap.lib2.activity.PaymentActivity;
import com.samsung.android.sdk.iap.lib.helper.task.ConsumePurchasedItemsTask; import com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener;
import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask; import com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener;
import com.samsung.android.sdk.iap.lib.helper.task.GetProductsDetailsTask; import com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener;
import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener; import com.samsung.android.sdk.iap.lib2.listener.OnPaymentListener;
import com.samsung.android.sdk.iap.lib.listener.OnGetOwnedListListener; import com.samsung.android.sdk.iap.lib2.service.BaseService;
import com.samsung.android.sdk.iap.lib.listener.OnGetProductsDetailsListener; import com.samsung.android.sdk.iap.lib2.service.ConsumePurchasedItems;
import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener; import com.samsung.android.sdk.iap.lib2.service.OwnedProduct;
import com.samsung.android.sdk.iap.lib.service.BaseService; import com.samsung.android.sdk.iap.lib2.service.ProductsDetails;
import com.samsung.android.sdk.iap.lib.service.ConsumePurchasedItems; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.service.OwnedProduct; import com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask;
import com.samsung.android.sdk.iap.lib.service.ProductsDetails; import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo; import com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask;
import java.util.ArrayList; import java.util.ArrayList;
@ -46,9 +46,9 @@ public class IapHelper extends HelperDefine {
// AsyncTask for API // AsyncTask for API
// ======================================================================== // ========================================================================
private GetProductsDetailsTask mGetProductsDetailsTask = null; private com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask mGetProductsDetailsTask = null;
private GetOwnedListTask mGetOwnedListTask = null; private com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask mGetOwnedListTask = null;
private ConsumePurchasedItemsTask mConsumePurchasedItemsTask = null; private com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask mConsumePurchasedItemsTask = null;
// ======================================================================== // ========================================================================
private ArrayList<BaseService> mServiceQueue = new ArrayList<BaseService>(); private ArrayList<BaseService> mServiceQueue = new ArrayList<BaseService>();
@ -267,7 +267,7 @@ public class IapHelper extends HelperDefine {
if (mIapConnector == null || mContext == null) { if (mIapConnector == null || mContext == null) {
return false; return false;
} else { } else {
mGetProductsDetailsTask = new GetProductsDetailsTask(_baseService, mGetProductsDetailsTask = new com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask(_baseService,
mIapConnector, mIapConnector,
mContext, mContext,
_productIDs, _productIDs,
@ -344,7 +344,7 @@ public class IapHelper extends HelperDefine {
if (mIapConnector == null || mContext == null) { if (mIapConnector == null || mContext == null) {
return false; return false;
} else { } else {
mGetOwnedListTask = new GetOwnedListTask(_baseService, mGetOwnedListTask = new com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask(_baseService,
mIapConnector, mIapConnector,
mContext, mContext,
_productType, _productType,
@ -417,7 +417,7 @@ public class IapHelper extends HelperDefine {
mConsumePurchasedItemsTask.cancel(true); mConsumePurchasedItemsTask.cancel(true);
} }
mConsumePurchasedItemsTask = new ConsumePurchasedItemsTask(_baseService, mConsumePurchasedItemsTask = new com.samsung.android.sdk.iap.lib2.helper.task.ConsumePurchasedItemsTask(_baseService,
mIapConnector, mIapConnector,
mContext, mContext,
_purchaseIds, _purchaseIds,

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper.task; package com.samsung.android.sdk.iap.lib2.helper.task;
import android.content.Context; import android.content.Context;
import android.os.AsyncTask; import android.os.AsyncTask;
@ -6,9 +6,8 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.service.BaseService;
import com.samsung.android.sdk.iap.lib.service.BaseService; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
/** /**
* Created by sangbum7.kim on 2017-09-01. * Created by sangbum7.kim on 2017-09-01.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper.task; package com.samsung.android.sdk.iap.lib2.helper.task;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.service.ConsumePurchasedItems; import com.samsung.android.sdk.iap.lib2.service.ConsumePurchasedItems;
import com.samsung.android.sdk.iap.lib.vo.ConsumeVo; import com.samsung.android.sdk.iap.lib2.vo.ConsumeVo;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper.task; package com.samsung.android.sdk.iap.lib2.helper.task;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.service.OwnedProduct; import com.samsung.android.sdk.iap.lib2.service.OwnedProduct;
import com.samsung.android.sdk.iap.lib.vo.OwnedProductVo; import com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.helper.task; package com.samsung.android.sdk.iap.lib2.helper.task;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,9 @@ import android.util.Log;
import com.samsung.android.iap.IAPConnector; import com.samsung.android.iap.IAPConnector;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.service.ProductsDetails; import com.samsung.android.sdk.iap.lib2.service.ProductsDetails;
import com.samsung.android.sdk.iap.lib.vo.ProductVo; import com.samsung.android.sdk.iap.lib2.vo.ProductVo;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib.listener; package com.samsung.android.sdk.iap.lib2.listener;
import com.samsung.android.sdk.iap.lib.helper.task.GetOwnedListTask; import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib.vo.ConsumeVo; import com.samsung.android.sdk.iap.lib2.vo.ConsumeVo;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import java.util.ArrayList; import java.util.ArrayList;
/** /**
* Callback Interface used with {@link GetOwnedListTask} * Callback Interface used with {@link com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask}
*/ */
public interface OnConsumePurchasedItemsListener { public interface OnConsumePurchasedItemsListener {
/** /**

View File

@ -0,0 +1,20 @@
package com.samsung.android.sdk.iap.lib2.listener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link com.samsung.android.sdk.iap.lib2.helper.task.GetOwnedListTask}
*/
public interface OnGetOwnedListListener {
/**
* Callback method to be invoked when {@link GetOwnedListTask} has been finished.
*
* @param _errorVO
* @param _ownedList
*/
void onGetOwnedProducts(ErrorVo _errorVO, ArrayList<OwnedProductVo> _ownedList);
}

View File

@ -0,0 +1,20 @@
package com.samsung.android.sdk.iap.lib2.listener;
import com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask;
import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib2.vo.ProductVo;
import java.util.ArrayList;
/**
* Callback Interface used with {@link com.samsung.android.sdk.iap.lib2.helper.task.GetProductsDetailsTask}
*/
public interface OnGetProductsDetailsListener {
/**
* Callback method to be invoked when {@link GetProductsDetailsTask} has been finished.
*
* @param _errorVO
* @param _productList
*/
void onGetProducts(ErrorVo _errorVO, ArrayList<ProductVo> _productList);
}

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.listener; package com.samsung.android.sdk.iap.lib2.listener;
/** /**
* Callback Interface to be invoked when bind to IAPService has been finished. * Callback Interface to be invoked when bind to IAPService has been finished.

View File

@ -1,7 +1,7 @@
package com.samsung.android.sdk.iap.lib.listener; package com.samsung.android.sdk.iap.lib2.listener;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
import com.samsung.android.sdk.iap.lib.vo.PurchaseVo; import com.samsung.android.sdk.iap.lib2.vo.PurchaseVo;
/** /**
* Callback Interface to be invoked when payment has been finished. * Callback Interface to be invoked when payment has been finished.

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.listener; package com.samsung.android.sdk.iap.lib2.listener;
/** /**
* Created by sangbum7.kim on 2018-02-28. * Created by sangbum7.kim on 2018-02-28.

View File

@ -1,15 +1,15 @@
package com.samsung.android.sdk.iap.lib.service; package com.samsung.android.sdk.iap.lib2.service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.activity.AccountActivity; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.activity.DialogActivity; import com.samsung.android.sdk.iap.lib2.activity.AccountActivity;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.activity.DialogActivity;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
import com.samsung.android.sdk.iap.lib.vo.ErrorVo; import com.samsung.android.sdk.iap.lib2.vo.ErrorVo;
/** /**
* Created by sangbum7.kim on 2018-02-28. * Created by sangbum7.kim on 2018-02-28.
@ -18,8 +18,8 @@ import com.samsung.android.sdk.iap.lib.vo.ErrorVo;
public abstract class BaseService { public abstract class BaseService {
private static final String TAG = BaseService.class.getSimpleName(); private static final String TAG = BaseService.class.getSimpleName();
protected ErrorVo mErrorVo = new ErrorVo(); protected com.samsung.android.sdk.iap.lib2.vo.ErrorVo mErrorVo = new com.samsung.android.sdk.iap.lib2.vo.ErrorVo();
protected IapHelper mIapHelper = null; protected com.samsung.android.sdk.iap.lib2.helper.IapHelper mIapHelper = null;
protected Context mContext = null; protected Context mContext = null;
public BaseService(IapHelper _iapHelper, Context _context) { public BaseService(IapHelper _iapHelper, Context _context) {
@ -28,7 +28,7 @@ public abstract class BaseService {
mErrorVo.setError(HelperDefine.IAP_ERROR_INITIALIZATION, mContext.getString(R.string.mids_sapps_pop_unknown_error_occurred)); mErrorVo.setError(HelperDefine.IAP_ERROR_INITIALIZATION, mContext.getString(R.string.mids_sapps_pop_unknown_error_occurred));
} }
public ErrorVo getErrorVo() { public com.samsung.android.sdk.iap.lib2.vo.ErrorVo getErrorVo() {
return mErrorVo; return mErrorVo;
} }

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib.service; package com.samsung.android.sdk.iap.lib2.service;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener; import com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener;
import com.samsung.android.sdk.iap.lib.vo.ConsumeVo; import com.samsung.android.sdk.iap.lib2.vo.ConsumeVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,9 +18,9 @@ import java.util.ArrayList;
public class ConsumePurchasedItems extends BaseService { public class ConsumePurchasedItems extends BaseService {
private static final String TAG = ConsumePurchasedItems.class.getSimpleName(); private static final String TAG = ConsumePurchasedItems.class.getSimpleName();
private OnConsumePurchasedItemsListener mOnConsumePurchasedItemsListener = null; private com.samsung.android.sdk.iap.lib2.listener.OnConsumePurchasedItemsListener mOnConsumePurchasedItemsListener = null;
private static String mPurchaseIds = ""; private static String mPurchaseIds = "";
protected ArrayList<ConsumeVo> mConsumeList = null; protected ArrayList<com.samsung.android.sdk.iap.lib2.vo.ConsumeVo> mConsumeList = null;
public ConsumePurchasedItems(IapHelper _iapHelper, Context _context, OnConsumePurchasedItemsListener _onConsumePurchasedItemsListener) { public ConsumePurchasedItems(IapHelper _iapHelper, Context _context, OnConsumePurchasedItemsListener _onConsumePurchasedItemsListener) {
super(_iapHelper, _context); super(_iapHelper, _context);

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib.service; package com.samsung.android.sdk.iap.lib2.service;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
import com.samsung.android.sdk.iap.lib.listener.OnGetOwnedListListener; import com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener;
import com.samsung.android.sdk.iap.lib.vo.OwnedProductVo; import com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,9 +18,9 @@ import java.util.ArrayList;
public class OwnedProduct extends BaseService { public class OwnedProduct extends BaseService {
private static final String TAG = OwnedProduct.class.getSimpleName(); private static final String TAG = OwnedProduct.class.getSimpleName();
private OnGetOwnedListListener mOnGetOwnedListListener = null; private com.samsung.android.sdk.iap.lib2.listener.OnGetOwnedListListener mOnGetOwnedListListener = null;
private static String mProductType = ""; private static String mProductType = "";
protected ArrayList<OwnedProductVo> mOwnedList = null; protected ArrayList<com.samsung.android.sdk.iap.lib2.vo.OwnedProductVo> mOwnedList = null;
public OwnedProduct(IapHelper _iapHelper, Context _context, OnGetOwnedListListener _onGetOwnedListListener) { public OwnedProduct(IapHelper _iapHelper, Context _context, OnGetOwnedListListener _onGetOwnedListListener) {
super(_iapHelper, _context); super(_iapHelper, _context);

View File

@ -1,13 +1,13 @@
package com.samsung.android.sdk.iap.lib.service; package com.samsung.android.sdk.iap.lib2.service;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import com.samsung.android.sdk.iap.lib.R; import com.samsung.android.sdk.iap.lib.R;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib2.helper.IapHelper;
import com.samsung.android.sdk.iap.lib.listener.OnGetProductsDetailsListener; import com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener;
import com.samsung.android.sdk.iap.lib.vo.ProductVo; import com.samsung.android.sdk.iap.lib2.vo.ProductVo;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,9 +18,9 @@ import java.util.ArrayList;
public class ProductsDetails extends BaseService { public class ProductsDetails extends BaseService {
private static final String TAG = ProductsDetails.class.getSimpleName(); private static final String TAG = ProductsDetails.class.getSimpleName();
private OnGetProductsDetailsListener mOnGetProductsDetailsListener = null; private com.samsung.android.sdk.iap.lib2.listener.OnGetProductsDetailsListener mOnGetProductsDetailsListener = null;
private static String mProductIds = ""; private static String mProductIds = "";
protected ArrayList<ProductVo> mProductsDetails = null; protected ArrayList<com.samsung.android.sdk.iap.lib2.vo.ProductVo> mProductsDetails = null;
public ProductsDetails(IapHelper _iapHelper, Context _context, OnGetProductsDetailsListener _onGetProductsDetailsListener) { public ProductsDetails(IapHelper _iapHelper, Context _context, OnGetProductsDetailsListener _onGetProductsDetailsListener) {
super(_iapHelper, _context); super(_iapHelper, _context);

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.vo; package com.samsung.android.sdk.iap.lib2.vo;
import android.text.format.DateFormat; import android.text.format.DateFormat;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.vo; package com.samsung.android.sdk.iap.lib2.vo;
import android.util.Log; import android.util.Log;

View File

@ -1,6 +1,6 @@
package com.samsung.android.sdk.iap.lib.vo; package com.samsung.android.sdk.iap.lib2.vo;
import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib2.helper.HelperDefine;
public class ErrorVo { public class ErrorVo {
private int mErrorCode = HelperDefine.IAP_PAYMENT_IS_CANCELED; private int mErrorCode = HelperDefine.IAP_PAYMENT_IS_CANCELED;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.vo; package com.samsung.android.sdk.iap.lib2.vo;
import android.util.Base64; import android.util.Base64;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.vo; package com.samsung.android.sdk.iap.lib2.vo;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;

View File

@ -1,4 +1,4 @@
package com.samsung.android.sdk.iap.lib.vo; package com.samsung.android.sdk.iap.lib2.vo;
import android.util.Base64; import android.util.Base64;

View File

@ -1,12 +1,18 @@
apply plugin: 'com.android.library' //apply plugin: 'com.android.library'
apply plugin: 'img-optimizer' //apply plugin: 'img-optimizer'
apply plugin: 'kotlin-android' //apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' //apply plugin: 'kotlin-android-extensions'
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'kotlin-parcelize'
id 'img-optimizer'
}
android { android {
compileSdkVersion rootProject.ext.android.compileSdkVersion namespace "com.pdlive.shayu"
buildToolsVersion rootProject.ext.android.buildToolsVersion compileSdk rootProject.ext.android.compileSdkVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -48,8 +54,11 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_18
}
buildFeatures {
buildConfig = true
} }
} }
repositories { repositories {

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.pdlive.shayu"> >
<queries> <queries>
<package android:name="com.pandoralive.shayu"/> <package android:name="com.pandoralive.shayu"/>
@ -19,7 +19,7 @@
tools:ignore="ExportedContentProvider" /> tools:ignore="ExportedContentProvider" />
</queries> </queries>
<application android:allowBackup="true"> <application>
<activity <activity
android:name="com.facebook.FacebookActivity" android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"

View File

@ -1,9 +1,11 @@
package com.yunbao.share.adapters; package com.yunbao.share.adapters;
import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton; import android.widget.RadioButton;
import android.widget.TextView; import android.widget.TextView;
@ -12,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.ViewUtils;
import com.yunbao.common.views.weight.ClipPathCircleImage; import com.yunbao.common.views.weight.ClipPathCircleImage;
import java.util.ArrayList; import java.util.ArrayList;
@ -23,18 +26,36 @@ import io.rong.imlib.model.Conversation;
public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdapter.ViewHolder> { public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdapter.ViewHolder> {
List<SingleConversation> listData = new ArrayList<>(); List<SingleConversation> listData = new ArrayList<>();
int selectPosition = -1; int selectPosition = -1;
private int isEmpty = -233;
private Context mContext;
public InternalShareAdapter(Context mContext) {
this.mContext = mContext;
}
@NonNull @NonNull
@Override @Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == isEmpty) {
return new EmptyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.view_layout_msg, parent, false));
}
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_internal_user, parent, false)); return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_internal_user, parent, false));
} }
@Override @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
if (getItemViewType(position) == isEmpty) return;
holder.bind(listData.get(position), position); holder.bind(listData.get(position), position);
} }
@Override
public int getItemViewType(int position) {
if (listData.get(position).mCore.getTargetId().equals("isEmpty_-233-pdl-5YK76YC8")) {
return isEmpty;
}
return super.getItemViewType(position);
}
@Override @Override
public int getItemCount() { public int getItemCount() {
return listData.size(); return listData.size();
@ -44,6 +65,11 @@ public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdap
if (listData == null) { if (listData == null) {
listData = new ArrayList<>(); listData = new ArrayList<>();
} }
if (listData.isEmpty()) {
Conversation conversation = new Conversation();
conversation.setTargetId("isEmpty_-233-pdl-5YK76YC8");
listData.add(new SingleConversation(mContext, conversation));
}
this.listData = listData; this.listData = listData;
notifyDataSetChanged(); notifyDataSetChanged();
@ -53,6 +79,19 @@ public class InternalShareAdapter extends RecyclerView.Adapter<InternalShareAdap
return selectPosition; return selectPosition;
} }
public List<SingleConversation> getListData() {
return listData;
}
public class EmptyViewHolder extends ViewHolder {
public EmptyViewHolder(@NonNull View itemView) {
super(itemView);
ViewUtils.findViewById(itemView, R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_addressbook_not_search);
ViewUtils.findViewById(itemView, R.id.textView, TextView.class).setText(R.string.not_data_message_address_book_list);
}
}
public class ViewHolder extends RecyclerView.ViewHolder { public class ViewHolder extends RecyclerView.ViewHolder {
ClipPathCircleImage mAvatar; ClipPathCircleImage mAvatar;
TextView userName; TextView userName;

View File

@ -31,6 +31,16 @@ public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppVie
private List<ShareBean> list; private List<ShareBean> list;
ShareCallback shareCallback; ShareCallback shareCallback;
private onShareListener onShareListener;
public ShareAppAdapter.onShareListener getOnShareListener() {
return onShareListener;
}
public void setOnShareListener(ShareAppAdapter.onShareListener onShareListener) {
this.onShareListener = onShareListener;
}
public ShareAppAdapter(Context mContext) { public ShareAppAdapter(Context mContext) {
list = new ArrayList<>(); list = new ArrayList<>();
this.mContext = mContext; this.mContext = mContext;
@ -125,11 +135,17 @@ public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppVie
new Internal(itemView.getContext()).share(bean, shareCallback); new Internal(itemView.getContext()).share(bean, shareCallback);
break; break;
} }
if (onShareListener != null) {
onShareListener.onAddShareCount();
}
}); });
} }
} }
public interface onShareListener {
void onAddShareCount();
}
public static class ShareCallback implements ICallback { public static class ShareCallback implements ICallback {
@Override @Override

View File

@ -1,25 +1,38 @@
package com.yunbao.share.ui; package com.yunbao.share.ui;
import android.content.Context; import android.content.Context;
import android.net.Uri;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText; import android.widget.EditText;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFullScreenPopupWindow; import com.yunbao.common.dialog.AbsDialogFullScreenPopupWindow;
import com.yunbao.common.dialog.DebugDialog;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.InstructorRemarkManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.share.adapters.InternalShareAdapter; import com.yunbao.share.adapters.InternalShareAdapter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import io.rong.imkit.conversationlist.model.SingleConversation; import io.rong.imkit.conversationlist.model.SingleConversation;
import io.rong.imkit.userinfo.RongUserInfoManager;
import io.rong.imkit.widget.refresh.SmartRefreshLayout; import io.rong.imkit.widget.refresh.SmartRefreshLayout;
import io.rong.imkit.widget.refresh.api.RefreshLayout; import io.rong.imkit.widget.refresh.api.RefreshLayout;
import io.rong.imkit.widget.refresh.listener.OnLoadMoreListener; import io.rong.imkit.widget.refresh.listener.OnLoadMoreListener;
@ -29,6 +42,7 @@ import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum; import io.rong.imlib.IRongCoreEnum;
import io.rong.imlib.RongCoreClient; import io.rong.imlib.RongCoreClient;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.UserInfo;
public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow { public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
EditText search; EditText search;
@ -73,14 +87,14 @@ public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
return; return;
} }
if (onItemClickListener != null) { if (onItemClickListener != null) {
onItemClickListener.onItemClick(listData.get(adapter.getSelectPosition()).mCore.getTargetId(), adapter.getSelectPosition()); onItemClickListener.onItemClick(adapter.getListData().get(adapter.getSelectPosition()).mCore.getTargetId(), adapter.getSelectPosition());
} }
dismiss(); dismiss();
}); });
search = findViewById(R.id.search); search = findViewById(R.id.search);
mList = findViewById(R.id.recyclerView); mList = findViewById(R.id.recyclerView);
mRefreshLayout = findViewById(R.id.rc_refresh); mRefreshLayout = findViewById(R.id.rc_refresh);
adapter = new InternalShareAdapter(); adapter = new InternalShareAdapter(mContext);
mList.setAdapter(adapter); mList.setAdapter(adapter);
initRefreshView(); initRefreshView();
@ -140,6 +154,7 @@ public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
} }
private void onConversationListRefresh(RefreshLayout refreshLayout) { private void onConversationListRefresh(RefreshLayout refreshLayout) {
search.setText("");
listData.clear(); listData.clear();
startTime = 0; startTime = 0;
refreshData(); refreshData();
@ -147,22 +162,72 @@ public class AppInternalShareDialog extends AbsDialogFullScreenPopupWindow {
private void refreshData() { private void refreshData() {
RongCoreClient.getInstance().getConversationListByPage(new IRongCoreCallback.ResultCallback<List<Conversation>>() { RongCoreClient.getInstance().getConversationListByPage(new IRongCoreCallback.ResultCallback<List<Conversation>>() {
boolean isNeedData = false;
List<String> needUidList = new ArrayList<>();
@Override @Override
public void onSuccess(List<Conversation> conversations) { public void onSuccess(List<Conversation> conversations) {
isNeedData = false;
needUidList.clear();
if (conversations.isEmpty()) { if (conversations.isEmpty()) {
mRefreshLayout.finishLoadMoreWithNoMoreData(); mRefreshLayout.finishLoadMoreWithNoMoreData();
return; return;
} }
List<SingleConversation> tmp = new ArrayList<>(); List<SingleConversation> tmp = new ArrayList<>();
for (Conversation conversation : conversations) { for (Conversation conversation : conversations) {
if(conversation.getTargetId().contains("__system__")){
continue;
}
if (StringUtil.isEmpty(conversation.getPortraitUrl())) {
isNeedData = true;
needUidList.add(conversation.getTargetId());
continue;
}
tmp.add(new SingleConversation(getContext(), conversation)); tmp.add(new SingleConversation(getContext(), conversation));
} }
if (isNeedData) {
checkUserData();
return;
}
startTime = conversations.get(conversations.size() - 1).getSentTime(); startTime = conversations.get(conversations.size() - 1).getSentTime();
listData.addAll(tmp); listData.addAll(tmp);
adapter.setList(listData); adapter.setList(listData);
mRefreshLayout.finishRefresh(true); mRefreshLayout.finishRefresh(true);
} }
private void checkUserData() {
Iterator<String> iterator = needUidList.iterator();
while (iterator.hasNext()) {
String userId = iterator.next();
CommonHttpUtil.getUserBaseinfo(userId, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0 && !TextUtils.equals("__system__", userId)) {
JSONObject obj = JSON.parseObject(info[0]);
UserBean userBean = JSON.toJavaObject(obj, UserBean.class);
needUidList.remove(userBean.getId());
UserInfo userInfo = new UserInfo(userBean.getId(), userBean.getUserNiceName(), Uri.parse(userBean.getAvatar()));
userInfo.setExtra(obj.toString());
RongUserInfoManager.getInstance().refreshUserInfoCache(userInfo);
Conversation conversation=new Conversation();
conversation.setTargetId(userBean.getId());
conversation.setConversationTitle(userBean.getUserNiceName());
conversation.setPortraitUrl(userBean.getAvatar());
SingleConversation singleConversation = new SingleConversation(getContext(), conversation);
listData.add(singleConversation);
if (needUidList.isEmpty()) {
adapter.setList(listData);
mRefreshLayout.finishRefresh(true);
}
} else {
Log.i("刷新用户", "3>" + code + "|" + msg + "|" + info.length);
}
}
});
}
}
@Override @Override
public void onError(IRongCoreEnum.CoreErrorCode e) { public void onError(IRongCoreEnum.CoreErrorCode e) {
ToastUtil.show("出错了:" + e.getMessage()); ToastUtil.show("出错了:" + e.getMessage());

View File

@ -40,12 +40,16 @@ public class SharePopDialog extends AbsDialogPopupWindow {
private String shareLink; private String shareLink;
private int type; private int type;
private ShareBean bean; private ShareBean bean;
public onShareListener onShareListener;
public void setOnShareListener(SharePopDialog.onShareListener onShareListener) {
this.onShareListener = onShareListener;
}
public SharePopDialog(@NonNull Context context) { public SharePopDialog(@NonNull Context context) {
super(context); super(context);
} }
public SharePopDialog setShareType(int type) { public SharePopDialog setShareType(int type) {
this.type = type; this.type = type;
return this; return this;
@ -55,6 +59,7 @@ public class SharePopDialog extends AbsDialogPopupWindow {
this.bean = build; this.bean = build;
return this; return this;
} }
public SharePopDialog setShareLink(String link) { public SharePopDialog setShareLink(String link) {
this.shareLink = link + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0); this.shareLink = link + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
return this; return this;
@ -87,6 +92,14 @@ public class SharePopDialog extends AbsDialogPopupWindow {
dismiss(); dismiss();
} }
}); });
adapter.setOnShareListener(new ShareAppAdapter.onShareListener() {
@Override
public void onAddShareCount() {
if (onShareListener != null) {
onShareListener.onShareAddCount();
}
}
});
list.setLayoutManager(new GridLayoutManager(getContext(), 3)); list.setLayoutManager(new GridLayoutManager(getContext(), 3));
list.setAdapter(adapter); list.setAdapter(adapter);
initData(); initData();
@ -137,4 +150,8 @@ public class SharePopDialog extends AbsDialogPopupWindow {
ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success)); ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success));
} }
public interface onShareListener {
void onShareAddCount();
}
} }

View File

@ -95,7 +95,7 @@
android:layout_width="168dp" android:layout_width="168dp"
android:layout_height="54dp" android:layout_height="54dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:background="@drawable/bg_msg_address_book_user_btn_fan" android:background="@drawable/bg_msg_address_book_user_btn_fan_cuia"
android:gravity="center" android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -5,12 +5,12 @@
<string name="dialog_invite_title">Invite Friends</string> <string name="dialog_invite_title">Invite Friends</string>
<string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string> <string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string>
<string name="dialog_share_copy">Copy</string> <string name="dialog_share_copy">Copy</string>
<string name="dialog_share_app_internal">Friend</string> <string name="dialog_share_app_internal">Site friends</string>
<string name="dialog_share_internal_title">Share To</string> <string name="dialog_share_internal_title">Share To</string>
<string name="dialog_share_internal_cancel">cancel</string> <string name="dialog_share_internal_cancel">cancel</string>
<string name="dialog_share_internal_search">Search</string> <string name="dialog_share_internal_search">Search nickname</string>
<string name="dialog_share_internal_list_btn">Share</string> <string name="dialog_share_internal_list_btn">Send</string>
<string name="dialog_share_success">Success</string> <string name="dialog_share_success">Share success</string>
<string name="dialog_share_success_btn">Chat</string> <string name="dialog_share_success_btn">Go chat</string>
<string name="dialog_share_failure_not_select">Please select friends</string> <string name="dialog_share_failure_not_select">Please select friends</string>
</resources> </resources>

View File

@ -4,11 +4,9 @@ apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics' apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.alibaba.arouter' apply plugin: 'com.alibaba.arouter'
android { android {
namespace "com.pandoralive.shayu"
dexOptions { dexOptions {
jumboMode = true jumboMode = true
}
project.tasks.getByName("tasks").doFirst {
} }
/* applicationVariants.all { variant -> /* applicationVariants.all { variant ->
variant.mergeAssetsProvider.configure { variant.mergeAssetsProvider.configure {
@ -33,9 +31,7 @@ android {
} }
} }
}*/ }*/
compileSdk rootProject.ext.android.compileSdkVersion
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -105,8 +101,11 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_18
}
buildFeatures {
buildConfig = true
} }
applicationVariants.all { variant -> applicationVariants.all { variant ->
println "清空build文件夹"; println "清空build文件夹";

View File

@ -194,9 +194,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep public class com.alibaba.android.arouter.facade.**{*;} -keep public class com.alibaba.android.arouter.facade.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} -keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# If you use the byType method to obtain Service, add the following rules to protect the interface: # 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider -keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
-keep class * implements com.alibaba.android.arouter.facade.template.IProvider
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation # If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider # -keep class * implements com.alibaba.android.arouter.facade.template.IProvider
@ -292,3 +295,7 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.shayu.lib_google.**{*;} -keep class com.shayu.lib_google.**{*;}
-keep class com.shayu.lib_huawei.**{*;} -keep class com.shayu.lib_huawei.**{*;}
-keep class com.qiniu.**{*;}
-keep class com.qiniu.**{public <init>();}
-ignorewarnings

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="myname.pdlive.shayu"> >
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission <uses-permission
android:name="android.permission.CALL_PHONE" android:name="android.permission.CALL_PHONE"
tools:node="remove" /> tools:node="remove" />

View File

@ -4,6 +4,7 @@ import static com.yunbao.live.socket.SocketClient.mSocketHandler;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.LauncherActivity;
import android.content.Context; import android.content.Context;
import android.net.http.HttpResponseCache; import android.net.http.HttpResponseCache;
import android.os.Build; import android.os.Build;
@ -25,6 +26,7 @@ import com.blankj.utilcode.util.Utils;
import com.facebook.appevents.AppEventsLogger; import com.facebook.appevents.AppEventsLogger;
import com.fm.openinstall.OpenInstall; import com.fm.openinstall.OpenInstall;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.pandoralive.shayu.R;
import com.shayu.phonelive.utils.LogUtils; import com.shayu.phonelive.utils.LogUtils;
import com.tencent.imsdk.v2.V2TIMGroupMemberInfo; import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
@ -32,6 +34,7 @@ import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
import com.tencent.imsdk.v2.V2TIMUserInfo; import com.tencent.imsdk.v2.V2TIMUserInfo;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure; import com.umeng.commonsdk.UMConfigure;
import com.yalantis.ucrop.UCropActivity;
import com.yunbao.common.BuildConfig; import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext; import com.yunbao.common.CommonAppContext;
@ -55,6 +58,7 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MessageChatNotifyManager; import com.yunbao.common.utils.MessageChatNotifyManager;
import com.yunbao.common.utils.MessageSayHiNotifyManager; import com.yunbao.common.utils.MessageSayHiNotifyManager;
import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.SudGameActivity; import com.yunbao.live.activity.SudGameActivity;
import com.yunbao.live.socket.SocketReceiveBean; import com.yunbao.live.socket.SocketReceiveBean;
@ -63,10 +67,13 @@ import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.views.PortraitLiveManager; import com.yunbao.live.views.PortraitLiveManager;
import com.yunbao.live.views.RecommendLiveRoomProvider; import com.yunbao.live.views.RecommendLiveRoomProvider;
import com.yunbao.main.activity.CompleteUserInfoActivity; import com.yunbao.main.activity.CompleteUserInfoActivity;
import com.yunbao.main.activity.EntryActivity;
import com.yunbao.main.activity.LoginActivity;
import com.yunbao.main.activity.MainActivity; import com.yunbao.main.activity.MainActivity;
import com.yunbao.main.activity.MainHomeCommunityActivity; import com.yunbao.main.activity.MainHomeCommunityActivity;
import com.yunbao.main.activity.MsgSettActivity; import com.yunbao.main.activity.MsgSettActivity;
import com.yunbao.main.activity.PDLiveConversationActivity; import com.yunbao.main.activity.PDLiveConversationActivity;
import com.yunbao.main.activity.RegisterActivity;
import com.yunbao.video.activity.VideoPlayActivity; import com.yunbao.video.activity.VideoPlayActivity;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
@ -82,6 +89,9 @@ import io.rong.imkit.config.RongConfigCenter;
import io.rong.imlib.RongIMClient; import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.MessageContent; import io.rong.imlib.model.MessageContent;
import io.rong.message.HQVoiceMessage;
import io.rong.message.ImageMessage;
import io.rong.message.SightMessage;
import io.rong.message.TextMessage; import io.rong.message.TextMessage;
//import cn.tillusory.sdk.TiSDK; //import cn.tillusory.sdk.TiSDK;
@ -104,6 +114,7 @@ public class AppContext extends CommonAppContext {
@Override @Override
public void onActivityResumed(Activity activity) { public void onActivityResumed(Activity activity) {
Log.e("打招呼定时器", "onActivityResumed: " + activity); Log.e("打招呼定时器", "onActivityResumed: " + activity);
MessageChatNotifyManager.getInstance().restart(activity);
if (activity instanceof LiveActivity) { if (activity instanceof LiveActivity) {
MessageSayHiNotifyManager.getInstance().stop(); MessageSayHiNotifyManager.getInstance().stop();
return; return;
@ -131,6 +142,18 @@ public class AppContext extends CommonAppContext {
MessageSayHiNotifyManager.getInstance().stop(); MessageSayHiNotifyManager.getInstance().stop();
return; return;
} }
if (activity instanceof LoginActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
if (activity instanceof EntryActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
if (activity instanceof UCropActivity) {
MessageSayHiNotifyManager.getInstance().stop();
return;
}
MessageSayHiNotifyManager.getInstance().reload(); MessageSayHiNotifyManager.getInstance().reload();
} }
@ -244,6 +267,12 @@ public class AppContext extends CommonAppContext {
//注册屏蔽push弹窗的类 //注册屏蔽push弹窗的类
MessageChatNotifyManager.getInstance().addShieldClass(CompleteUserInfoActivity.class); MessageChatNotifyManager.getInstance().addShieldClass(CompleteUserInfoActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(PDLiveConversationActivity.class); MessageChatNotifyManager.getInstance().addShieldClass(PDLiveConversationActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(LauncherActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(EntryActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(LoginActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(RegisterActivity.class);
MessageChatNotifyManager.getInstance().addShieldClass(UCropActivity.class);
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() { RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
@Override @Override
@ -255,7 +284,21 @@ public class AppContext extends CommonAppContext {
msg.what = Constants.SOCKET_WHAT_BROADCAST; msg.what = Constants.SOCKET_WHAT_BROADCAST;
try { try {
if (!"".equals(message.getContent()) && message.getContent() != null) { if (!"".equals(message.getContent()) && message.getContent() != null) {
TextMessage content = (TextMessage) message.getContent(); TextMessage content;
if (message.getContent() instanceof MessageChatCardContent) {
content = new TextMessage(WordUtil.getNewString(R.string.activity_msg_chat_list_card));
} else if (message.getContent() instanceof TextMessage) {
content = (TextMessage) message.getContent();
}else if(message.getContent() instanceof ImageMessage){
content = new TextMessage(WordUtil.getNewString(R.string.rc_conversation_summary_content_image));
}else if(message.getContent() instanceof SightMessage){
content = new TextMessage(WordUtil.getNewString(R.string.rc_conversation_summary_content_sight));
}else if(message.getContent() instanceof HQVoiceMessage){
content = new TextMessage(WordUtil.getNewString(R.string.rc_conversation_summary_content_voice));
}else {
System.out.println("未知消息类型:"+message.getContent().getClass().getSimpleName()+"|"+message.getContent());
return false;
}
if (content.getContent().contains("_method_")) { if (content.getContent().contains("_method_")) {
msg.obj = content.getContent(); msg.obj = content.getContent();
//观众页面 //观众页面
@ -278,15 +321,35 @@ public class AppContext extends CommonAppContext {
} else if (message.getConversationType() == Conversation.ConversationType.PRIVATE) {//私聊信息 } else if (message.getConversationType() == Conversation.ConversationType.PRIVATE) {//私聊信息
EventBus.getDefault().post(message); EventBus.getDefault().post(message);
MessageIMManager.get(sInstance).resetImUnReadMessageCount(sInstance);
if (AppManager.getInstance().getLastActivity() instanceof CompleteUserInfoActivity) { if (AppManager.getInstance().getLastActivity() instanceof CompleteUserInfoActivity) {
return false; return false;
} }
Log.i("聊天推送", message.getTargetId() + "是否已读:" + message.getReceivedStatus().isRead());
if (message.getReceivedStatus().isRead()) {
return false;
}
RongIMClient.getInstance().getUnreadCount(Conversation.ConversationType.PRIVATE, message.getTargetId(), new RongIMClient.ResultCallback<Integer>() {
@Override
public void onSuccess(Integer integer) {
if (integer > 0) {
Log.i("聊天推送", message.getTargetId() + "是否已读:" + message.getReceivedStatus().isRead() + "|未读数" + integer);
MessageChatNotifyManager.getInstance().push(AppManager.getInstance().getLastActivity() MessageChatNotifyManager.getInstance().push(AppManager.getInstance().getLastActivity()
, message.getTargetId(), , message.getTargetId(),
content.getContent() content.getContent()
); );
} }
} }
@Override
public void onError(RongIMClient.ErrorCode e) {
}
});
}
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -29,6 +29,7 @@ import androidx.core.app.NotificationManagerCompat;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pandoralive.shayu.R;
import com.shayu.phonelive.AppContext; import com.shayu.phonelive.AppContext;
import com.tencent.rtmp.ITXLivePlayListener; import com.tencent.rtmp.ITXLivePlayListener;
import com.tencent.rtmp.TXLiveBase; import com.tencent.rtmp.TXLiveBase;
@ -72,7 +73,6 @@ import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import myname.pdlive.shayu.R;
/** /**
* Created by cxf on 2018/9/17. * Created by cxf on 2018/9/17.

View File

@ -35,6 +35,7 @@ import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.Transition;
import com.makeramen.roundedimageview.RoundedImageView; import com.makeramen.roundedimageview.RoundedImageView;
import com.pandoralive.shayu.R;
import com.shayu.phonelive.AppContext; import com.shayu.phonelive.AppContext;
import com.shayu.phonelive.activity.LauncherActivity; import com.shayu.phonelive.activity.LauncherActivity;
import com.yunbao.common.bean.NotificationMsgBean; import com.yunbao.common.bean.NotificationMsgBean;
@ -51,7 +52,6 @@ import io.rong.imlib.ConnectChangeReceiver;
import io.rong.push.PushType; import io.rong.push.PushType;
import io.rong.push.notification.PushMessageReceiver; import io.rong.push.notification.PushMessageReceiver;
import io.rong.push.notification.PushNotificationMessage; import io.rong.push.notification.PushNotificationMessage;
import myname.pdlive.shayu.R;
public class CustomMessageReceiver extends PushMessageReceiver { public class CustomMessageReceiver extends PushMessageReceiver {

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@ apply plugin: 'img-optimizer'
android { android {
compileSdkVersion rootProject.ext.android.compileSdkVersion compileSdk rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion targetSdk rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -42,8 +42,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_18
} }
} }
repositories { repositories {

View File

@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yunbao.baidu"
/> />

View File

@ -3,8 +3,8 @@ apply plugin: 'img-optimizer'
android { android {
compileSdkVersion rootProject.ext.android.compileSdkVersion compileSdk rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion targetSdk rootProject.ext.android.buildToolsVersion
packagingOptions { packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so"
@ -45,8 +45,8 @@ android {
} }
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_18
} }
} }
repositories { repositories {

View File

@ -1,2 +1,2 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yunbao.beauty"/> />

View File

@ -4,27 +4,28 @@ apply from: "dependencies.gradle"
buildscript { buildscript {
ext.kotlin_version = '1.6.20' ext.kotlin_version = '1.8.22'
repositories { repositories {
maven { url "https://mvn.mob.com/android" } maven { url "https://mvn.mob.com/android" }
maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.fabric.io/public' } maven { url 'https://maven.fabric.io/public' }
maven { url 'http://maven.faceunity.com/repository/maven-public/' }// maven { url 'https://maven.faceunity.com/repository/maven-public/' }//
maven { url 'https://repo1.maven.org/maven2/' }// maven { url 'https://repo1.maven.org/maven2/' }//
maven {url 'https://developer.huawei.com/repo/'} maven {url 'https://developer.huawei.com/repo/'}
maven { url "https://jitpack.io" }
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:4.0.2' classpath 'com.android.tools.build:gradle:8.3.1'
//png工具 //png工具
classpath 'com.chenenyu:img-optimizer:1.3.0' classpath 'com.chenenyu:img-optimizer:1.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.20" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.3' classpath 'com.google.gms:google-services:4.3.3'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
classpath "com.alibaba:arouter-register:1.0.2" classpath "com.github.jadepeakpoet.ARouter:arouter-register:1.0.3"
classpath 'com.huawei.agconnect:agcp:1.5.2.300' classpath 'com.huawei.agconnect:agcp:1.5.2.300'
} }
@ -40,9 +41,9 @@ allprojects {
maven { url "https://mvn.mob.com/android" } maven { url "https://mvn.mob.com/android" }
maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'http://developer.huawei.com/repo'}// maven { url 'https://developer.huawei.com/repo'}//
maven { url 'https://maven.fabric.io/public' } maven { url 'https://maven.fabric.io/public' }
maven { url 'http://maven.faceunity.com/repository/maven-public/' }// maven { url 'https://maven.faceunity.com/repository/maven-public/' }//
maven { url "https://jitpack.io" } maven { url "https://jitpack.io" }
maven { url 'https://repo1.maven.org/maven2/' }// maven { url 'https://repo1.maven.org/maven2/' }//
google() // Google's Maven repository google() // Google's Maven repository

View File

@ -3,8 +3,8 @@ apply plugin: 'img-optimizer'
android { android {
compileSdkVersion rootProject.ext.android.compileSdkVersion namespace "com.yunbao.common"
buildToolsVersion rootProject.ext.android.buildToolsVersion compileSdk rootProject.ext.android.compileSdkVersion
defaultConfig { defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion minSdkVersion rootProject.ext.android.minSdkVersion
@ -59,8 +59,11 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_18
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_18
}
buildFeatures {
buildConfig = true
} }
} }
repositories { repositories {
@ -70,6 +73,7 @@ repositories {
} }
dependencies { dependencies {
annotationProcessor rootProject.ext.dependencies["arouter-compiler"] annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
@ -165,14 +169,14 @@ dependencies {
//im //im
api 'com.tencent.imsdk:imsdk-plus:5.4.666' api 'com.tencent.imsdk:imsdk-plus:5.4.666'
api 'com.google.code.gson:gson:2.8.8' api 'com.google.code.gson:gson:2.8.8'
api 'cn.rongcloud.sdk:rtc_lib:5.2.0' // api 'cn.rongcloud.sdk:rtc_lib:5.6.9' //
// 5.1.2 // 5.1.2
api 'cn.rongcloud.sdk:im_lib:5.2.0.2' api 'cn.rongcloud.sdk:im_lib:5.6.10'
// 5.1.2 // 5.1.2
api 'cn.rongcloud.sdk:im_kit:5.2.5.4' // UI api 'cn.rongcloud.sdk:im_kit:5.6.10' // UI
// //
api 'cn.rongcloud.sdk:sight:5.2.5.4' api 'cn.rongcloud.sdk:sight:5.6.10'
api 'com.facebook.android:facebook-android-sdk:15.2.0' api 'com.facebook.android:facebook-android-sdk:15.2.0'
implementation 'com.facebook.android:facebook-android-sdk:15.2.0' implementation 'com.facebook.android:facebook-android-sdk:15.2.0'
@ -226,7 +230,7 @@ dependencies {
api project(':lib_google') api project(':lib_google')
//samsung插件包 //samsung插件包
api project(':IAP6Helper') //api project(':IAP6Helper')
// //
api 'com.contrarywind:Android-PickerView:4.1.9' api 'com.contrarywind:Android-PickerView:4.1.9'
@ -239,4 +243,13 @@ dependencies {
api 'com.github.xuexiangjys:XUI:1.1.6' api 'com.github.xuexiangjys:XUI:1.1.6'
api 'com.github.xuexiangjys.XUtil:xutil-core:2.0.0' api 'com.github.xuexiangjys.XUtil:xutil-core:2.0.0'
//ExoPlayer,
api 'com.google.android.exoplayer:exoplayer:2.18.2'
api 'com.google.android.exoplayer:exoplayer-core:2.18.2@aar'
//
api 'com.github.FlyJingFish:GradientTextView:1.2.4'
//
api 'com.github.xiaohaibin:XBanner:androidx_v1.2.6'
} }

Binary file not shown.

View File

@ -23,3 +23,6 @@
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
-keep class com.qiniu.**{*;}
-keep class com.qiniu.**{public <init>();}
-ignorewarnings

View File

@ -1,11 +1,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yunbao.common"> xmlns:tools="http://schemas.android.com/tools">
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />--> <!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- <uses-permission android:name="android.permission.INTERNET" />--> <!-- <uses-permission android:name="android.permission.INTERNET" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />--> <!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<application android:allowBackup="true"> <application
android:allowBackup="true"
tools:replace="allowBackup">
<!-- <meta-data--> <!-- <meta-data-->
<!-- android:name="com.google.ar.core"--> <!-- android:name="com.google.ar.core"-->
@ -65,6 +67,9 @@
android:name="com.yunbao.common.activity.PreviewVideoActivity" android:name="com.yunbao.common.activity.PreviewVideoActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name="com.yunbao.common.activity.VideoPlayActivity"
android:screenOrientation="portrait" />
</application> </application>
</manifest> </manifest>

View File

@ -128,23 +128,23 @@ public class CommonAppConfig {
newCommunityTypeList.add(type0); newCommunityTypeList.add(type0);
} }
NewCommunityType type17 = new NewCommunityType(); NewCommunityType type17 = new NewCommunityType();
type17.setId(17); type17.setId(5);
type17.setTalk_name(mContext.getResources().getString(R.string.main_active_type_01)); type17.setTalk_name(mContext.getResources().getString(R.string.main_active_type_01));
NewCommunityType type16 = new NewCommunityType(); NewCommunityType type16 = new NewCommunityType();
type16.setId(16); type16.setId(4);
type16.setTalk_name(mContext.getResources().getString(R.string.main_active_type_02)); type16.setTalk_name(mContext.getResources().getString(R.string.main_active_type_02));
NewCommunityType type15 = new NewCommunityType(); NewCommunityType type15 = new NewCommunityType();
type15.setId(15); type15.setId(3);
type15.setTalk_name(mContext.getResources().getString(R.string.main_active_type_03)); type15.setTalk_name(mContext.getResources().getString(R.string.main_active_type_03));
NewCommunityType type14 = new NewCommunityType(); NewCommunityType type14 = new NewCommunityType();
type14.setId(14); type14.setId(2);
type14.setTalk_name(mContext.getResources().getString(R.string.main_active_type_04)); type14.setTalk_name(mContext.getResources().getString(R.string.main_active_type_04));
NewCommunityType type13 = new NewCommunityType(); NewCommunityType type13 = new NewCommunityType();
type13.setId(13); type13.setId(1);
type13.setTalk_name(mContext.getResources().getString(R.string.main_active_type_05)); type13.setTalk_name(mContext.getResources().getString(R.string.main_active_type_05));
newCommunityTypeList.add(type17); newCommunityTypeList.add(type17);

View File

@ -0,0 +1,40 @@
package com.yunbao.common.activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.VideoView;
import androidx.annotation.Nullable;
import com.yunbao.common.R;
public class VideoPlayActivity extends AbsActivity {
private VideoView videoPlay;
@Override
protected int getLayoutId() {
return R.layout.activity_google_play;
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
Uri url = getIntent().getParcelableExtra("videoUri");
super.onCreate(savedInstanceState);
videoPlay = findViewById(R.id.videoPlay);
videoPlay.setVideoURI(url);
videoPlay.start();
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}

View File

@ -161,7 +161,7 @@ public class CommentAdapter extends RecyclerView.Adapter {
del.setVisibility(View.GONE); del.setVisibility(View.GONE);
} }
if (bean.getReplyCommentList() != null) { if (bean.getReplyCommentList() != null) {
replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>"); replyCount.setText(String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size())));
if (bean.getReplyCommentList().size() > 0) { if (bean.getReplyCommentList().size() > 0) {
report1.setTag(bean.getReplyCommentList().get(0)); report1.setTag(bean.getReplyCommentList().get(0));
del1.setTag(bean.getReplyCommentList().get(0)); del1.setTag(bean.getReplyCommentList().get(0));
@ -214,10 +214,11 @@ public class CommentAdapter extends RecyclerView.Adapter {
public void onClick(View v) { public void onClick(View v) {
if (!bean.isShow()) { if (!bean.isShow()) {
recyclerView.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.VISIBLE);
replyCount.setText("收起"); replyCount.setText(mContext.getResources().getString(R.string.close));
} else { } else {
recyclerView.setVisibility(View.GONE); recyclerView.setVisibility(View.GONE);
replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>"); replyCount.setText(String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size())))
;
} }
bean.setShow(!bean.isShow()); bean.setShow(!bean.isShow());
} }

View File

@ -148,7 +148,7 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
report.setTag(bean); report.setTag(bean);
replyTextView.setTag(bean); replyTextView.setTag(bean);
del1.setTag(bean); del1.setTag(bean);
ImgLoader.display(itemView.getContext(), bean.getUser_avatar(), mAvatar); ImgLoader.displayAvatar(itemView.getContext(), bean.getUser_avatar(), mAvatar);
name.setText(bean.getUser_name()); name.setText(bean.getUser_name());
content.setText(bean.getContent()); content.setText(bean.getContent());
if (bean.getUser_id().equals(authorId)) { if (bean.getUser_id().equals(authorId)) {
@ -162,7 +162,7 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
del.setVisibility(View.GONE); del.setVisibility(View.GONE);
} }
if (bean.getReplyCommentList() != null) { if (bean.getReplyCommentList() != null) {
replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>"); replyCount.setText( String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size())));
if (bean.getReplyCommentList().size() > 0) { if (bean.getReplyCommentList().size() > 0) {
del1.setTag(bean.getReplyCommentList().get(0)); del1.setTag(bean.getReplyCommentList().get(0));
replyContent.setText(bean.getReplyCommentList().get(0).getContent()); replyContent.setText(bean.getReplyCommentList().get(0).getContent());
@ -214,10 +214,10 @@ public class CommentVideoAdapter extends RefreshAdapter<CommentBean> {
public void onClick(View v) { public void onClick(View v) {
if (!bean.isShow()) { if (!bean.isShow()) {
recyclerView.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.VISIBLE);
replyCount.setText("收起"); replyCount.setText(mContext.getResources().getString(R.string.close));
} else { } else {
recyclerView.setVisibility(View.GONE); recyclerView.setVisibility(View.GONE);
replyCount.setText("" + bean.getReplyCommentList().size() + "条回复>"); replyCount.setText( String.format(mContext.getResources().getString(R.string.active_count), String.valueOf(bean.getReplyCommentList().size())));
} }
bean.setShow(!bean.isShow()); bean.setShow(!bean.isShow());
} }

View File

@ -0,0 +1,59 @@
package com.yunbao.common.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class DebugDialogAdapter extends RecyclerView.Adapter<DebugDialogAdapter.DebugViewHolder> {
TreeMap<String, String> paramMap = new TreeMap<>();
private Context mContext;
public DebugDialogAdapter(Context mContext) {
this.mContext = mContext;
}
public void setParamMap(TreeMap<String, String> paramMap) {
this.paramMap = paramMap;
notifyDataSetChanged();
}
@NonNull
@Override
public DebugViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new DebugViewHolder(new TextView(mContext));
}
@Override
public void onBindViewHolder(@NonNull DebugViewHolder holder, int position) {
List<String> list = new ArrayList<>(paramMap.keySet());
holder.setData(list.get(position), paramMap.get(list.get(position)));
}
@Override
public int getItemCount() {
return paramMap.size();
}
public class DebugViewHolder extends RecyclerView.ViewHolder {
public DebugViewHolder(@NonNull View itemView) {
super(itemView);
}
public void setData(String tag, String msg) {
((TextView) itemView).setText(tag + ":" + msg);
((TextView) itemView).setTextColor(Color.BLACK);
}
}
}

View File

@ -0,0 +1,93 @@
package com.yunbao.common.adapter;
import android.os.CountDownTimer;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.sendMoneyLongListModel;
import com.yunbao.common.views.DragonSendMoneyListViewHolder;
import java.util.ArrayList;
import java.util.List;
public class DragonSendMoneyListAdapter extends RecyclerView.Adapter {
RecyclerView send_money_list;
boolean isAnchor;
SparseArray<CountDownTimer> countDownMap;
boolean isAttention;
public DragonSendMoneyListAdapter setAnchor(boolean anchor) {
isAnchor = anchor;
return this;
}
public DragonSendMoneyListAdapter setAttention(boolean attention) {
isAttention = attention;
return this;
}
public List<sendMoneyLongListModel> getMoneyLongListModels() {
return moneyLongListModels;
}
public DragonSendMoneyListAdapter(RecyclerView send_money_list) {
this.send_money_list = send_money_list;
countDownMap = new SparseArray<>();
}
List<sendMoneyLongListModel> moneyLongListModels = new ArrayList<>();
DragonSendMoneyListViewHolder.DragonSendMoneyListClicksCallBack callBack;
public void setCallBack(DragonSendMoneyListViewHolder.DragonSendMoneyListClicksCallBack callBack) {
this.callBack = callBack;
}
public void setMoneyLongListModels(List<sendMoneyLongListModel> models) {
moneyLongListModels.clear();
moneyLongListModels.addAll(models);
notifyDataSetChanged();
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View goodGiftsView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_dragon_send_money_list, parent, false);
return new DragonSendMoneyListViewHolder(goodGiftsView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
DragonSendMoneyListViewHolder sendMoneyListViewHolder = (DragonSendMoneyListViewHolder) holder;
// sendMoneyLongListModel model = moneyLongListModels.get(position);
// long mPkTimeCount2 = Long.parseLong(model.getCountdown());
// long time = mPkTimeCount2 * 1000;
// if (sendMoneyListViewHolder.countDownTimer != null) {
// sendMoneyListViewHolder.countDownTimer.cancel();
// }
// if (time > 0) {
//
// }
sendMoneyListViewHolder.setData(moneyLongListModels.get(position), callBack, isAnchor,isAttention);
}
@Override
public int getItemCount() {
return moneyLongListModels.size();
}
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
}

View File

@ -0,0 +1,46 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.views.LiveBuyGuardPrivilegeViewHolder;
import java.util.ArrayList;
import java.util.List;
public class LiveBuyGuardPrivilegeAdapter extends RecyclerView.Adapter {
List<String> guardPrivilege = new ArrayList<>();
public void setGuardPrivilege(List<String> privilege) {
guardPrivilege.clear();
guardPrivilege.addAll(privilege);
notifyDataSetChanged();
}
public LiveBuyGuardPrivilegeAdapter(List<String> guardPrivilege) {
this.guardPrivilege = guardPrivilege;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_buy_guard_privilege_item, parent, false);
return new LiveBuyGuardPrivilegeViewHolder(herdView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
LiveBuyGuardPrivilegeViewHolder buyGuardSelectViewHolder = (LiveBuyGuardPrivilegeViewHolder) holder;
buyGuardSelectViewHolder.setData(guardPrivilege.get(position));
}
@Override
public int getItemCount() {
return guardPrivilege.size();
}
}

View File

@ -0,0 +1,50 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GuardPriceModel;
import com.yunbao.common.views.LiveBuyGuardSelectViewHolder;
import java.util.ArrayList;
import java.util.List;
public class LiveBuyGuardSelectAdapter extends RecyclerView.Adapter {
List<GuardPriceModel> price = new ArrayList<>();
GuardPriceModel model;
public LiveBuyGuardSelectAdapter(List<GuardPriceModel> price, GuardPriceModel mModel) {
this.price = price;
model = mModel;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_buy_guard_slelect_item, parent, false);
return new LiveBuyGuardSelectViewHolder(herdView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
LiveBuyGuardSelectViewHolder buyGuardSelectViewHolder = (LiveBuyGuardSelectViewHolder) holder;
buyGuardSelectViewHolder.setData(price.get(position), liveBuyGuardSelectClickListener,model);
}
@Override
public int getItemCount() {
return price.size();
}
private LiveBuyGuardSelectViewHolder.LiveBuyGuardSelectClickListener liveBuyGuardSelectClickListener;
public LiveBuyGuardSelectAdapter setLiveBuyGuardSelectClickListener(LiveBuyGuardSelectViewHolder.LiveBuyGuardSelectClickListener liveBuyGuardSelectClickListener) {
this.liveBuyGuardSelectClickListener = liveBuyGuardSelectClickListener;
return this;
}
}

View File

@ -45,7 +45,6 @@ public class SudTitleSelectAdapter extends RecyclerView.Adapter {
} }
} }
}); });
} }
@Override @Override

View File

@ -17,6 +17,7 @@ import com.alibaba.fastjson.JSONObject;
import com.makeramen.roundedimageview.RoundedImageView; import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.activity.AbsActivity; import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.ActiveBean;
import com.yunbao.common.bean.ActiveOtherBean; import com.yunbao.common.bean.ActiveOtherBean;
import com.yunbao.common.dialog.ImagePreviewDialog; import com.yunbao.common.dialog.ImagePreviewDialog;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
@ -27,17 +28,19 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class UserCommunityAdapter extends RecyclerView.Adapter { public class UserCommunityAdapter extends RecyclerView.Adapter {
private List<ActiveOtherBean> commentBeanList; private List<ActiveBean> commentBeanList;
private Context mContext; private Context mContext;
private onItemClickListener onItemClickListener; private onItemClickListener onItemClickListener;
private boolean isMe;
public void setOnItemClickListener(UserCommunityAdapter.onItemClickListener onItemClickListener) { public void setOnItemClickListener(UserCommunityAdapter.onItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener; this.onItemClickListener = onItemClickListener;
} }
public UserCommunityAdapter(Context content, List<ActiveOtherBean> commentBeanList) { public UserCommunityAdapter(Context content, List<ActiveBean> commentBeanList, boolean isMe) {
this.mContext = content; this.mContext = content;
this.commentBeanList = commentBeanList; this.commentBeanList = commentBeanList;
this.isMe = isMe;
} }
@NonNull @NonNull
@ -69,6 +72,7 @@ public class UserCommunityAdapter extends RecyclerView.Adapter {
private TextView likeCount; private TextView likeCount;
private TextView comCount; private TextView comCount;
private TextView shareCount; private TextView shareCount;
private ImageView more_del;
public CommentViewHolder(@NonNull View itemView) { public CommentViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
@ -82,19 +86,40 @@ public class UserCommunityAdapter extends RecyclerView.Adapter {
likeCount = itemView.findViewById(R.id.likeCount); likeCount = itemView.findViewById(R.id.likeCount);
comCount = itemView.findViewById(R.id.comCount); comCount = itemView.findViewById(R.id.comCount);
shareCount = itemView.findViewById(R.id.shareCount); shareCount = itemView.findViewById(R.id.shareCount);
more_del = itemView.findViewById(R.id.more_del);
more_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemMore((ActiveBean) v.getTag(), getPosition());
}
}
});
itemView.setOnClickListener(new View.OnClickListener() { itemView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
onItemClickListener.onImgItem((ActiveOtherBean) v.getTag(), getPosition()); if (onItemClickListener != null) {
ActiveBean activeOtherBean = (ActiveBean) v.getTag();
if (activeOtherBean.getImg_or_video().equals("1")) {
onItemClickListener.onImgItem(activeOtherBean, getPosition());
} else {
onItemClickListener.onItemVideo(activeOtherBean, getPosition());
}
}
} }
}); });
} }
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
public void setData(ActiveOtherBean bean) { public void setData(ActiveBean bean) {
itemView.setTag(bean); itemView.setTag(bean);
mAvatar.setTag(bean); mAvatar.setTag(bean);
more_del.setTag(bean);
if (isMe) {
more_del.setVisibility(View.VISIBLE);
} else {
more_del.setVisibility(View.INVISIBLE);
}
ImgLoader.display(mContext, bean.getUser_avatar(), mAvatar); ImgLoader.display(mContext, bean.getUser_avatar(), mAvatar);
userName.setText(bean.getUser_name()); userName.setText(bean.getUser_name());
time.setText(bean.getCreate_time()); time.setText(bean.getCreate_time());
@ -144,8 +169,10 @@ public class UserCommunityAdapter extends RecyclerView.Adapter {
} }
public interface onItemClickListener { public interface onItemClickListener {
void onImgItem(ActiveOtherBean activeBean, int position); void onImgItem(ActiveBean activeBean, int position);
void onVideoItem(String activeBean, int position); void onItemMore(ActiveBean activeBean, int position);
void onItemVideo(ActiveBean activeBean, int position);
} }
} }

View File

@ -0,0 +1,48 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class CheckUpgradesModel extends BaseModel {
/**
* {
* "level": 33, // 等级
* "rewards": [ // 奖励信息
* {
* "id": 1,
* "reward_name": "星之守護等級牌", // 奖励名称
* "image_path": "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png" // 图片链接
* },
* {
* "id": 2,
* "reward_name": "人氣票",
* "image_path": "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png"
* }
* ]
* }
* }
*/
@SerializedName("level")
private String level;
@SerializedName("rewards")
private List<RewardsModel> rewards;
public String getLevel() {
return level;
}
public CheckUpgradesModel setLevel(String level) {
this.level = level;
return this;
}
public List<RewardsModel> getRewards() {
return rewards;
}
public CheckUpgradesModel setRewards(List<RewardsModel> rewards) {
this.rewards = rewards;
return this;
}
}

View File

@ -43,6 +43,17 @@ public class EnterRoomNewModel extends BaseModel {
private int quickGiftRemainingQuantity;//剩余的小PD礼物数量 private int quickGiftRemainingQuantity;//剩余的小PD礼物数量
@SerializedName("if_viewing_duration_complete") @SerializedName("if_viewing_duration_complete")
private int ifViewingDurationComplete;//通过观看时间获取小PD礼物的次数 private int ifViewingDurationComplete;//通过观看时间获取小PD礼物的次数
@SerializedName("sendMoneyLongStatus")
private SendMoneyLongStatusModel model;
public SendMoneyLongStatusModel getModel() {
return model;
}
public EnterRoomNewModel setModel(SendMoneyLongStatusModel model) {
this.model = model;
return this;
}
public int getQuickGiftRemainingQuantity() { public int getQuickGiftRemainingQuantity() {
return quickGiftRemainingQuantity; return quickGiftRemainingQuantity;

View File

@ -0,0 +1,142 @@
package com.yunbao.common.bean;
import android.text.TextUtils;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class GuardDataTipModel extends BaseModel {
/**
* {
* "guard_name": "星之守護", // 守护名称
* "guard_type": 1, // 守护类型
* "close_img": "https://ceshi.yaoulive.com/data/upload/20240304/guard_xing_close.png", // 未开通图标
* "open_img": "https://ceshi.yaoulive.com/data/upload/20240304/guard_xing_open.png", // 已开通图标
* "is_open": true, // 是否开通 .true .false
* "price": { // 价格
* {
* "opening_time": "1個月", // 开通时长
* "original_price": "188000", // 原价
* "discount_price": "", // 折扣价
* "discount": "", // 折扣
* "price_key": 1
* },
* {
* "opening_time": "3個月",
* "original_price": "564000",
* "discount_price": "398000",
* "discount": "7.1折",
* "price_key": 3
* },
* {
* "opening_time": "6個月",
* "original_price": "1128000",
* "discount_price": "738000",
* "discount": "6.5折",
* "price_key": 6
* },
* {
* "opening_time": "12個月",
* "original_price": "2256000",
* "discount_price": "1314000",
* "discount": "5.8折",
* "price_key": 12
* }
* ],
* "guard_privilege": [
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_2.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_3.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_2.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_3.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_1.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_2.png",
* "https://ceshi.yaoulive.com/data/upload/20240304/tequan_3.png"
* ]
* }
*/
@SerializedName("guard_name")
private String guardName;
@SerializedName("guard_type")
private int guardType;
@SerializedName("close_img")
private String closeImg;
@SerializedName("open_img")
private String openImg;
@SerializedName("is_open")
private String isOpen;
@SerializedName("price")
private List<GuardPriceModel> price;
@SerializedName("guard_privilege")
private List<String> guardPrivilege;
public String getGuardName() {
return guardName;
}
public GuardDataTipModel setGuardName(String guardName) {
this.guardName = guardName;
return this;
}
public int getGuardType() {
return guardType;
}
public GuardDataTipModel setGuardType(int guardType) {
this.guardType = guardType;
return this;
}
public String getCloseImg() {
return closeImg;
}
public GuardDataTipModel setCloseImg(String closeImg) {
this.closeImg = closeImg;
return this;
}
public String getOpenImg() {
return openImg;
}
public GuardDataTipModel setOpenImg(String openImg) {
this.openImg = openImg;
return this;
}
public boolean isOpen() {
return TextUtils.equals(isOpen, "1");
}
public String getIsOpen() {
return isOpen;
}
public GuardDataTipModel setIsOpen(String isOpen) {
this.isOpen = isOpen;
return this;
}
public List<GuardPriceModel> getPrice() {
return price;
}
public GuardDataTipModel setPrice(List<GuardPriceModel> price) {
this.price = price;
return this;
}
public List<String> getGuardPrivilege() {
return guardPrivilege;
}
public GuardDataTipModel setGuardPrivilege(List<String> guardPrivilege) {
this.guardPrivilege = guardPrivilege;
return this;
}
}

View File

@ -0,0 +1,31 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class GuardGetGuardOpenInfoModel extends BaseModel {
@SerializedName("user_info")
private GuardUserInfoModel userInfo;
@SerializedName("guard_data")
private List<GuardDataTipModel> guardData;
public GuardUserInfoModel getUserInfo() {
return userInfo;
}
public GuardGetGuardOpenInfoModel setUserInfo(GuardUserInfoModel userInfo) {
this.userInfo = userInfo;
return this;
}
public List<GuardDataTipModel> getGuardData() {
return guardData;
}
public GuardGetGuardOpenInfoModel setGuardData(List<GuardDataTipModel> guardData) {
this.guardData = guardData;
return this;
}
}

View File

@ -0,0 +1,142 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardGetGuardUserInfoModel extends BaseModel {
/**
* "info": {
* "uid": "98923", // 用户ID
* "user_avatar": "https://downs.yaoulive.com/20230706/0572c0f694601f4d2695cd210effbe93.jpeg?imageView2/2/w/600/h/600", // 用户头像链接
* "liveuid": "98889", // 主播ID
* "live_avatar": "https://ceshi.yaoulive.com/data/upload/20230522/20230526102906.png", // 主播头像链接
* "guard_type": 0, // 守护类型 0.未开通 1.星之守护 2.王之守护 3.神之守护
* "exp": 0, // 守护经验值
* "level": 0, // 守护等级
* "endtime": 0, // 到期时间
* "user_language": "chinese",
* "live_language": "chinese"
* }
* }
*/
@SerializedName("uid")
private String uid;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("live_avatar")
private String liveAvatar;
@SerializedName("guard_type")
private int guardType;
@SerializedName("exp")
private String exp;
@SerializedName("level")
private int level;
@SerializedName("endtime")
private long endtime;
@SerializedName("user_language")
private String userLanguage;
@SerializedName("live_language")
private String liveLanguage;
@SerializedName("is_open")
private String isOpen;
public String getIsOpen() {
return isOpen;
}
public GuardGetGuardUserInfoModel setIsOpen(String isOpen) {
this.isOpen = isOpen;
return this;
}
public String getUid() {
return uid;
}
public GuardGetGuardUserInfoModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getUserAvatar() {
return userAvatar;
}
public GuardGetGuardUserInfoModel setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
return this;
}
public String getLiveuid() {
return liveuid;
}
public GuardGetGuardUserInfoModel setLiveuid(String liveuid) {
this.liveuid = liveuid;
return this;
}
public String getLiveAvatar() {
return liveAvatar;
}
public GuardGetGuardUserInfoModel setLiveAvatar(String liveAvatar) {
this.liveAvatar = liveAvatar;
return this;
}
public int getGuardType() {
return guardType;
}
public GuardGetGuardUserInfoModel setGuardType(int guardType) {
this.guardType = guardType;
return this;
}
public String getExp() {
return exp;
}
public GuardGetGuardUserInfoModel setExp(String exp) {
this.exp = exp;
return this;
}
public int getLevel() {
return level;
}
public GuardGetGuardUserInfoModel setLevel(int level) {
this.level = level;
return this;
}
public long getEndtime() {
return endtime;
}
public GuardGetGuardUserInfoModel setEndtime(long endtime) {
this.endtime = endtime;
return this;
}
public String getUserLanguage() {
return userLanguage;
}
public GuardGetGuardUserInfoModel setUserLanguage(String userLanguage) {
this.userLanguage = userLanguage;
return this;
}
public String getLiveLanguage() {
return liveLanguage;
}
public GuardGetGuardUserInfoModel setLiveLanguage(String liveLanguage) {
this.liveLanguage = liveLanguage;
return this;
}
}

View File

@ -0,0 +1,145 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardMaturityDateRemindModel extends BaseModel{
@SerializedName("_method_")
private String method;
@SerializedName("action")
private String action;
@SerializedName("is_overdue")
private int isOverdue;
@SerializedName("days")
private int days;
@SerializedName("uid")
private String uid;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("user_nicename")
private String userNicename;
@SerializedName("live_avatar")
private String liveAvatar;
@SerializedName("live_nicename")
private String liveNicename;
@SerializedName("ct")
private String ct;
@SerializedName("guard_type")
private String guardType;
public String getGuardType() {
return guardType;
}
public GuardMaturityDateRemindModel setGuardType(String guardType) {
this.guardType = guardType;
return this;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public int getIsOverdue() {
return isOverdue;
}
public void setIsOverdue(int isOverdue) {
this.isOverdue = isOverdue;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getLiveuid() {
return liveuid;
}
public void setLiveuid(String liveuid) {
this.liveuid = liveuid;
}
public String getUserAvatar() {
return userAvatar;
}
public void setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
}
public String getUserNicename() {
return userNicename;
}
public void setUserNicename(String userNicename) {
this.userNicename = userNicename;
}
public String getLiveAvatar() {
return liveAvatar;
}
public void setLiveAvatar(String liveAvatar) {
this.liveAvatar = liveAvatar;
}
public String getLiveNicename() {
return liveNicename;
}
public void setLiveNicename(String liveNicename) {
this.liveNicename = liveNicename;
}
public String getCt() {
return ct;
}
public void setCt(String ct) {
this.ct = ct;
}
@Override
public String toString() {
return "GuardMaturityDateRemindModel{" +
"method='" + method + '\'' +
", action='" + action + '\'' +
", isOverdue=" + isOverdue +
", days=" + days +
", uid='" + uid + '\'' +
", liveuid='" + liveuid + '\'' +
", userAvatar='" + userAvatar + '\'' +
", userNicename='" + userNicename + '\'' +
", liveAvatar='" + liveAvatar + '\'' +
", liveNicename='" + liveNicename + '\'' +
", ct='" + ct + '\'' +
'}';
}
}

View File

@ -8,6 +8,17 @@ public class GuardModel extends BaseModel {
private String type; private String type;
@SerializedName("endtime") @SerializedName("endtime")
private String endtime; private String endtime;
@SerializedName("guard_type")
private String guardType;
public String getGuardType() {
return guardType;
}
public GuardModel setGuardType(String guardType) {
this.guardType = guardType;
return this;
}
public String getType() { public String getType() {
return type; return type;

View File

@ -0,0 +1,70 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardPriceModel extends BaseModel {
/**
* {
* "opening_time": "1個月", // 开通时长
* "original_price": "188000", // 原价
* "discount_price": "", // 折扣价
* "discount": "", // 折扣
* "price_key": 1
* }
*/
@SerializedName("opening_time")
private String openingTime;
@SerializedName("original_price")
private String originalPrice;
@SerializedName("discount_price")
private String discountPrice;
@SerializedName("discount")
private String discount;
@SerializedName("price_key")
private int priceKey;
public String getOpeningTime() {
return openingTime;
}
public GuardPriceModel setOpeningTime(String openingTime) {
this.openingTime = openingTime;
return this;
}
public String getOriginalPrice() {
return originalPrice;
}
public GuardPriceModel setOriginalPrice(String originalPrice) {
this.originalPrice = originalPrice;
return this;
}
public String getDiscountPrice() {
return discountPrice;
}
public GuardPriceModel setDiscountPrice(String discountPrice) {
this.discountPrice = discountPrice;
return this;
}
public String getDiscount() {
return discount;
}
public GuardPriceModel setDiscount(String discount) {
this.discount = discount;
return this;
}
public int getPriceKey() {
return priceKey;
}
public GuardPriceModel setPriceKey(int priceKey) {
this.priceKey = priceKey;
return this;
}
}

View File

@ -0,0 +1,142 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardUserInfoModel extends BaseModel {
/**
* {
* "user_info": { // 用户开通信息
* "uid": "98888", // 用户ID
* "user_avatar": "https://downs.yaoulive.com/mannine.png", // 用户头像链接
* "liveuid": "98889", // 主播ID
* "live_avatar": "https://ceshi.yaoulive.com/data/upload/20230522/20230526102906.png", // 主播头像链接
* "guard_type": 1, // 守护类型
* "exp": 0, // 经验值
* "level": 1, // 等级
* "endtime": 1710145929, // 到期时间
* "user_language": "chinese", // 用户语言
* "live_language": "chinese" // 主播语言
* }
*/
@SerializedName("uid")
private String uid;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("live_avatar")
private String liveAvatar;
@SerializedName("guard_type")
private int guardType;
@SerializedName("exp")
private String exp;
@SerializedName("level")
private String level;
@SerializedName("endtime")
private String endtime;
@SerializedName("user_language")
private String userLanguage;
@SerializedName("live_language")
private String liveLanguage;
@SerializedName("is_open")
private String isOpen;
public String getIsOpen() {
return isOpen;
}
public GuardUserInfoModel setIsOpen(String isOpen) {
this.isOpen = isOpen;
return this;
}
public String getUid() {
return uid;
}
public GuardUserInfoModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getUserAvatar() {
return userAvatar;
}
public GuardUserInfoModel setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
return this;
}
public String getLiveuid() {
return liveuid;
}
public GuardUserInfoModel setLiveuid(String liveuid) {
this.liveuid = liveuid;
return this;
}
public String getLiveAvatar() {
return liveAvatar;
}
public GuardUserInfoModel setLiveAvatar(String liveAvatar) {
this.liveAvatar = liveAvatar;
return this;
}
public int getGuardType() {
return guardType;
}
public GuardUserInfoModel setGuardType(int guardType) {
this.guardType = guardType;
return this;
}
public String getExp() {
return exp;
}
public GuardUserInfoModel setExp(String exp) {
this.exp = exp;
return this;
}
public String getLevel() {
return level;
}
public GuardUserInfoModel setLevel(String level) {
this.level = level;
return this;
}
public String getEndtime() {
return endtime;
}
public GuardUserInfoModel setEndtime(String endtime) {
this.endtime = endtime;
return this;
}
public String getUserLanguage() {
return userLanguage;
}
public GuardUserInfoModel setUserLanguage(String userLanguage) {
this.userLanguage = userLanguage;
return this;
}
public String getLiveLanguage() {
return liveLanguage;
}
public GuardUserInfoModel setLiveLanguage(String liveLanguage) {
this.liveLanguage = liveLanguage;
return this;
}
}

View File

@ -56,6 +56,18 @@ public class LiveBean implements Parcelable {
private int redPacketStatus; private int redPacketStatus;
@SerializedName("giftId") @SerializedName("giftId")
private String giftId; private String giftId;
@SerializedName("sendMoneyLongStatus ")
private int sendMoneyLongStatus ;
public int getSendMoneyLongStatus() {
return sendMoneyLongStatus;
}
public LiveBean setSendMoneyLongStatus(int sendMoneyLongStatus) {
this.sendMoneyLongStatus = sendMoneyLongStatus;
return this;
}
private Map<String,String> params;//用于跳转Activity时扩展参数从首页Banner跳转到直播间时需要根据携带参数判断是否弹出新人特惠对话框 private Map<String,String> params;//用于跳转Activity时扩展参数从首页Banner跳转到直播间时需要根据携带参数判断是否弹出新人特惠对话框
public String getRecommendCardIconSizeTwo() { public String getRecommendCardIconSizeTwo() {

View File

@ -43,4 +43,14 @@ public class MessageSayHiBean extends BaseModel{
public void setStatus(int status) { public void setStatus(int status) {
this.status = status; this.status = status;
} }
@Override
public String toString() {
return "MessageSayHiBean{" +
"user=" + user +
", model='" + model + '\'' +
", nextTime=" + nextTime +
", status=" + status +
'}';
}
} }

View File

@ -14,9 +14,19 @@ public class MessageUserInfoBean extends BaseModel{
@SerializedName("msg") @SerializedName("msg")
String sayHiMsg; String sayHiMsg;
int id=-1;
int status; //0 需要跳转到 编辑资料页面 int status; //0 需要跳转到 编辑资料页面
String extras; String extras;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getExtras() { public String getExtras() {
return extras; return extras;
} }
@ -103,6 +113,8 @@ public class MessageUserInfoBean extends BaseModel{
private int is_hello; private int is_hello;
private String star_name; private String star_name;
private String career; private String career;
@SerializedName("en_career")
private String enCareer;
private String height; private String height;
private String age; private String age;
@SerializedName("open_off") @SerializedName("open_off")
@ -110,6 +122,14 @@ public class MessageUserInfoBean extends BaseModel{
@SerializedName("rong_online") @SerializedName("rong_online")
private int rongOnline;//0 在线 非0 其他 private int rongOnline;//0 在线 非0 其他
public String getEnCareer() {
return enCareer;
}
public void setEnCareer(String enCareer) {
this.enCareer = enCareer;
}
public void setOpenOff(int openOff) { public void setOpenOff(int openOff) {
this.openOff = openOff; this.openOff = openOff;
} }

View File

@ -0,0 +1,37 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class NewGuardLevelModel extends BaseModel{
@SerializedName("guard_type")
private int guardType;
@SerializedName("cn")
private String cn;
@SerializedName("en")
private String en;
public int getGuardType() {
return guardType;
}
public void setGuardType(int guardType) {
this.guardType = guardType;
}
public String getCn() {
return cn;
}
public void setCn(String cn) {
this.cn = cn;
}
public String getEn() {
return en;
}
public void setEn(String en) {
this.en = en;
}
}

View File

@ -96,6 +96,9 @@ public class OpenAdModel extends BaseModel {
} }
return url + "?t=" + System.currentTimeMillis() / 1000; return url + "?t=" + System.currentTimeMillis() / 1000;
} }
public String getOriginalUrl(){
return url;
}
public void setUrl(String url) { public void setUrl(String url) {
this.url = url; this.url = url;

View File

@ -0,0 +1,39 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class RewardsModel extends BaseModel {
@SerializedName("id")
private int id;
@SerializedName("reward_name")
private String rewardName;
@SerializedName("image_path")
private String imagePath;
public int getId() {
return id;
}
public RewardsModel setId(int id) {
this.id = id;
return this;
}
public String getRewardName() {
return rewardName;
}
public RewardsModel setRewardName(String rewardName) {
this.rewardName = rewardName;
return this;
}
public String getImagePath() {
return imagePath;
}
public RewardsModel setImagePath(String imagePath) {
this.imagePath = imagePath;
return this;
}
}

View File

@ -0,0 +1,137 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class SendMoneyLongModel extends BaseModel {
/**
* {
* "_method_": "SendMoneyLong",
* "action": "0",
* "uid": "98888",
* "user_nicename": "周末暴打小朋友",
* "user_avatar": "https://downs.yaoulive.com/mannine.png",
* "liveuid": "98889",
* "add_time": 1710318757,
* "gold_num": "5000"
* "countdown": 300 // 倒计时
* "send_money_long_key": "1710384258446",
* }
*/
@SerializedName("_method_")
private String method;
@SerializedName("action")
private String action;
@SerializedName("uid")
private String uid;
@SerializedName("user_nicename")
private String userNicename;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("liveuid")
private String liveuid;
@SerializedName("add_time")
private String addTime;
@SerializedName("gold_num")
private String goldNum;
@SerializedName("countdown")
private String countdown;
@SerializedName("send_money_long_key")
private String sendMoneyLongKey;
public String getSendMoneyLongKey() {
return sendMoneyLongKey;
}
public SendMoneyLongModel setSendMoneyLongKey(String sendMoneyLongKey) {
this.sendMoneyLongKey = sendMoneyLongKey;
return this;
}
public String getCountdown() {
return countdown;
}
public SendMoneyLongModel setCountdown(String countdown) {
this.countdown = countdown;
return this;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUserNicename() {
return userNicename;
}
public void setUserNicename(String userNicename) {
this.userNicename = userNicename;
}
public String getUserAvatar() {
return userAvatar;
}
public void setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
}
public String getLiveuid() {
return liveuid;
}
public void setLiveuid(String liveuid) {
this.liveuid = liveuid;
}
public String getAddTime() {
return addTime;
}
public void setAddTime(String addTime) {
this.addTime = addTime;
}
public String getGoldNum() {
return goldNum;
}
public void setGoldNum(String goldNum) {
this.goldNum = goldNum;
}
@Override
public String toString() {
return "SendMoneyLongModel{" +
"method='" + method + '\'' +
", action='" + action + '\'' +
", uid='" + uid + '\'' +
", userNicename='" + userNicename + '\'' +
", userAvatar='" + userAvatar + '\'' +
", liveuid='" + liveuid + '\'' +
", addTime=" + addTime +
", goldNum='" + goldNum + '\'' +
'}';
}
}

View File

@ -0,0 +1,154 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class SendMoneyLongStatusModel extends BaseModel {
/**
* "sendMoneyLongStatus": { // 未查询到数据时为空数组
* "liveuid": "98889", // 主播ID
* "uid": "98888", // 发起用户ID
* "addtime": "1710384258446", // 开始时间 毫秒时间戳
* "gold_num": "5000", // 金豆数量
* "user_nicename": "周末暴打小朋友", // 用户昵称
* "user_avatar": "https://downs.yaoulive.com/mannine.png", // 用户头像链接
* "countdown": 300 // 倒计时
* "start_status": false,
* "start_time": "",
* "send_money_long_key": "1710397575473",
* "participate": 0,
* "add_time": "1710397575473"
* }
*/
@SerializedName("liveuid")
private String liveuid;
@SerializedName("uid")
private String uid;
@SerializedName("addtime")
private String addtime;
@SerializedName("gold_num")
private String goldNum;
@SerializedName("user_nicename")
private String userNicename;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("countdown")
private String countdown;
@SerializedName("start_status")
private String startStatus;
@SerializedName("start_time")
private String startTime;
@SerializedName("send_money_long_key")
private String sendMoneyLongKey;
@SerializedName("participate")
private String participate;
@SerializedName("add_time")
private String addTime;
public String getLiveuid() {
return liveuid;
}
public SendMoneyLongStatusModel setLiveuid(String liveuid) {
this.liveuid = liveuid;
return this;
}
public String getUid() {
return uid;
}
public SendMoneyLongStatusModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getAddtime() {
return addtime;
}
public SendMoneyLongStatusModel setAddtime(String addtime) {
this.addtime = addtime;
return this;
}
public String getGoldNum() {
return goldNum;
}
public SendMoneyLongStatusModel setGoldNum(String goldNum) {
this.goldNum = goldNum;
return this;
}
public String getUserNicename() {
return userNicename;
}
public SendMoneyLongStatusModel setUserNicename(String userNicename) {
this.userNicename = userNicename;
return this;
}
public String getUserAvatar() {
return userAvatar;
}
public SendMoneyLongStatusModel setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
return this;
}
public String getCountdown() {
return countdown;
}
public SendMoneyLongStatusModel setCountdown(String countdown) {
this.countdown = countdown;
return this;
}
public String getStartStatus() {
return startStatus;
}
public SendMoneyLongStatusModel setStartStatus(String startStatus) {
this.startStatus = startStatus;
return this;
}
public String getStartTime() {
return startTime;
}
public SendMoneyLongStatusModel setStartTime(String startTime) {
this.startTime = startTime;
return this;
}
public String getSendMoneyLongKey() {
return sendMoneyLongKey;
}
public SendMoneyLongStatusModel setSendMoneyLongKey(String sendMoneyLongKey) {
this.sendMoneyLongKey = sendMoneyLongKey;
return this;
}
public String getParticipate() {
return participate;
}
public SendMoneyLongStatusModel setParticipate(String participate) {
this.participate = participate;
return this;
}
public String getAddTime() {
return addTime;
}
public SendMoneyLongStatusModel setAddTime(String addTime) {
this.addTime = addTime;
return this;
}
}

View File

@ -0,0 +1,47 @@
package com.yunbao.common.bean;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
/**
* 社區动态
*/
public class ShareBean extends BaseModel implements Parcelable {
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
protected ShareBean(Parcel in) {
num = in.readInt();
}
public static final Creator<ShareBean> CREATOR = new Creator<ShareBean>() {
@Override
public ShareBean createFromParcel(Parcel in) {
return new ShareBean(in);
}
@Override
public ShareBean[] newArray(int size) {
return new ShareBean[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(num);
}
}

View File

@ -67,6 +67,7 @@ public class UserBean implements Parcelable {
//随机天梯排位赛PK img仅在主播PK时使用 //随机天梯排位赛PK img仅在主播PK时使用
private String mRankPkImgUrl; private String mRankPkImgUrl;
//是否填写完整资料 //是否填写完整资料
@SerializedName("user_info_complete")
private int user_info_complete; private int user_info_complete;
//粉丝团等级 //粉丝团等级
private int fansLevel; private int fansLevel;
@ -169,6 +170,14 @@ public class UserBean implements Parcelable {
return user_info_complete; return user_info_complete;
} }
public int getUser_info_complete() {
return user_info_complete;
}
public void setUser_info_complete(int user_info_complete) {
this.user_info_complete = user_info_complete;
}
public UserBean seUserInfoComplete(int userInfoComplete) { public UserBean seUserInfoComplete(int userInfoComplete) {
this.user_info_complete = userInfoComplete; this.user_info_complete = userInfoComplete;
return this; return this;

View File

@ -0,0 +1,154 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class sendMoneyLongListModel extends BaseModel {
/**
* {
* "liveuid": "98889", // 主播ID
* "uid": "98888", // 用户ID
* "addtime": "1710397350011", // 创建时间 毫秒时间戳
* "gold_num": "5000", // 金豆数量
* "user_nicename": "周末暴打小朋友", // 用户昵称
* "user_avatar": "https://downs.yaoulive.com/mannine.png", // 用户头像
* "countdown": 300, // 倒计时
* "start_status": false,
* "start_time": "",
* "send_money_long_key": "1710397485729",
* "participate": 0, // 是否参与活动 0.未参与 1.已参与
* "add_time": "1710397485729"
* }
*/
@SerializedName("liveuid")
private String liveuid;
@SerializedName("uid")
private String uid;
@SerializedName("addtime")
private String addtime;
@SerializedName("gold_num")
private String goldNum;
@SerializedName("user_nicename")
private String userNicename;
@SerializedName("user_avatar")
private String userAvatar;
@SerializedName("countdown")
private String countdown;
@SerializedName("start_status")
private boolean startStatus;
@SerializedName("start_time")
private String startTime;
@SerializedName("send_money_long_key")
private String sendMoneyLongKey;
@SerializedName("participate")
private String participate;
@SerializedName("add_time")
private String addTime;
public String getLiveuid() {
return liveuid;
}
public sendMoneyLongListModel setLiveuid(String liveuid) {
this.liveuid = liveuid;
return this;
}
public String getUid() {
return uid;
}
public sendMoneyLongListModel setUid(String uid) {
this.uid = uid;
return this;
}
public String getAddtime() {
return addtime;
}
public sendMoneyLongListModel setAddtime(String addtime) {
this.addtime = addtime;
return this;
}
public String getGoldNum() {
return goldNum;
}
public sendMoneyLongListModel setGoldNum(String goldNum) {
this.goldNum = goldNum;
return this;
}
public String getUserNicename() {
return userNicename;
}
public sendMoneyLongListModel setUserNicename(String userNicename) {
this.userNicename = userNicename;
return this;
}
public String getUserAvatar() {
return userAvatar;
}
public sendMoneyLongListModel setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
return this;
}
public String getCountdown() {
return countdown;
}
public sendMoneyLongListModel setCountdown(String countdown) {
this.countdown = countdown;
return this;
}
public boolean isStartStatus() {
return startStatus;
}
public sendMoneyLongListModel setStartStatus(boolean startStatus) {
this.startStatus = startStatus;
return this;
}
public String getStartTime() {
return startTime;
}
public sendMoneyLongListModel setStartTime(String startTime) {
this.startTime = startTime;
return this;
}
public String getSendMoneyLongKey() {
return sendMoneyLongKey;
}
public sendMoneyLongListModel setSendMoneyLongKey(String sendMoneyLongKey) {
this.sendMoneyLongKey = sendMoneyLongKey;
return this;
}
public String getParticipate() {
return participate;
}
public sendMoneyLongListModel setParticipate(String participate) {
this.participate = participate;
return this;
}
public String getAddTime() {
return addTime;
}
public sendMoneyLongListModel setAddTime(String addTime) {
this.addTime = addTime;
return this;
}
}

View File

@ -0,0 +1,76 @@
package com.yunbao.common.dialog;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lzf.easyfloat.EasyFloat;
import com.lzf.easyfloat.enums.ShowPattern;
import com.lzf.easyfloat.interfaces.OnPermissionResult;
import com.lzf.easyfloat.permission.PermissionUtils;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.adapter.DebugDialogAdapter;
import com.yunbao.common.utils.ToastUtil;
import java.util.TreeMap;
public class DebugDialog {
RecyclerView recyclerView;
TreeMap<String, String> params;
DebugDialogAdapter adapter;
private static DebugDialog debugDialog;
Context mContext;
public static DebugDialog getInstance(Activity mainActivity) {
if (debugDialog == null) {
debugDialog = new DebugDialog(mainActivity);
}
return debugDialog;
}
public DebugDialog clear() {
params.clear();
return this;
}
public void setParams(String tag, String msg) {
params.put(tag, msg);
if (adapter != null)
adapter.setParamMap(params);
}
private DebugDialog(Context mContext) {
this.mContext = mContext;
params = new TreeMap<>();
if (PermissionUtils.checkPermission(mContext)) {
createView();
} else {
PermissionUtils.requestPermission((Activity) mContext, new OnPermissionResult() {
@Override
public void permissionResult(boolean b) {
ToastUtil.show("悬浮权限" + b);
if (b) {
createView();
}
}
});
}
}
protected void createView() {
recyclerView = new RecyclerView(mContext);
adapter = new DebugDialogAdapter(mContext);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
recyclerView.setAdapter(adapter);
recyclerView.setBackgroundColor(Color.WHITE);
EasyFloat.with(mContext)
.setTag("debug")
.setShowPattern(ShowPattern.ALL_TIME)
.setLayout(recyclerView)
.show();
}
}

View File

@ -0,0 +1,49 @@
package com.yunbao.common.dialog;
import android.content.Context;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.R;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class DragonRulePopup extends CenterPopupView {
LinearLayout list_no;
LinearLayout list;
boolean isList;
public DragonRulePopup(@NonNull Context context, boolean isList) {
super(context);
this.isList = isList;
}
// 返回自定义弹窗的布局
@Override
protected int getImplLayoutId() {
return R.layout.dragon_rule_popup;
}
// 执行初始化操作比如findView设置点击或者任何你弹窗内的业务逻辑
@Override
protected void onCreate() {
super.onCreate();
list_no = findViewById(R.id.list_no);
list = findViewById(R.id.list);
if (!isList){
list_no.setVisibility(VISIBLE);
list.setVisibility(GONE);
}else {
list_no.setVisibility(GONE);
list.setVisibility(VISIBLE);
}
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.dragon_close), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
dismiss();
}
});
}
}

View File

@ -0,0 +1,112 @@
package com.yunbao.common.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GuardGetGuardUserInfoModel;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.WordUtil;
public class GuardBuyTipsDialog {
/**
* @param context
* @param coin 钻石
* @param content 购买类型名称
* @param simpleCallback
*/
public static void showBuyOrRenewDialog(Context context, String coin, String content,
boolean isOpen, GuardGetGuardUserInfoModel mGuardUserInfoModel, int guardType,
DialogUitl.SimpleCallback simpleCallback) {
if (context instanceof Activity) {
if (((Activity) context).isDestroyed() || ((Activity) context).isFinishing()) {
return;
}
}
final Dialog dialog = new Dialog(context, R.style.dialog2);
dialog.setContentView(R.layout.dialog_guard_buy_tips);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
TextView btn_confirm = dialog.findViewById(R.id.btn_confirm);
TextView content1 = dialog.findViewById(R.id.content1);
TextView content2 = dialog.findViewById(R.id.content2);
TextView contentTextView = dialog.findViewById(R.id.content);
TextView buyTypeTextView = dialog.findViewById(R.id.buyType);
content1.setVisibility(View.VISIBLE);
contentTextView.setVisibility(View.VISIBLE);
buyTypeTextView.setVisibility(View.VISIBLE);
content2.setVisibility(View.GONE);
if (TextUtils.isEmpty(coin) && mGuardUserInfoModel == null && !isOpen && guardType == -200) {
content1.setVisibility(View.GONE);
contentTextView.setVisibility(View.VISIBLE);
buyTypeTextView.setVisibility(View.GONE);
content2.setVisibility(View.GONE);
contentTextView.setText(content);
} else {
if (!isOpen) {
if (!TextUtils.isEmpty(coin)) {
contentTextView.setText(context.getString(R.string.guard_buy_tips_1, coin));
}
if (!TextUtils.isEmpty(content)) {
buyTypeTextView.setText("" + content + "");
}
} else {
if (!TextUtils.isEmpty(coin)) {
contentTextView.setText(context.getString(R.string.guard_buy_tips_2, coin));
}
if (!TextUtils.isEmpty(content)) {
buyTypeTextView.setText("" + content + "");
}
}
if (mGuardUserInfoModel != null) {
if (mGuardUserInfoModel.getGuardType() != 0) {
if (TextUtils.equals(mGuardUserInfoModel.getIsOpen(), "1") &&
guardType < mGuardUserInfoModel.getGuardType()) {
content1.setVisibility(View.GONE);
contentTextView.setVisibility(View.GONE);
buyTypeTextView.setVisibility(View.GONE);
content2.setVisibility(View.VISIBLE);
} else if (TextUtils.equals(mGuardUserInfoModel.getIsOpen(), "1") && guardType > mGuardUserInfoModel.getGuardType()) {
content1.setVisibility(View.VISIBLE);
} else {
content1.setVisibility(View.GONE);
}
} else {
content1.setVisibility(View.GONE);
}
} else {
content1.setVisibility(View.GONE);
}
}
dialog.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
btn_confirm.setText(WordUtil.isNewZh() ? "確認" : "Confirm");
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (content2.getVisibility() == View.VISIBLE) {
dialog.dismiss();
} else {
simpleCallback.onConfirmClick(dialog, "");
dialog.dismiss();
}
}
});
dialog.show();
}
}

View File

@ -0,0 +1,171 @@
package com.yunbao.common.dialog;
import android.content.Context;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.R;
import com.yunbao.common.bean.CheckUpgradesModel;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.RewardsModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class GuardUpgradePopup extends CenterPopupView {
FragmentActivity activity;
String mLiveUid;
CheckUpgradesModel mUpgradesModel;
TextView leave_hint;
LinearLayout rewards_line1, rewards_line2, rewards_line3;
ImageView rewards_img1, rewards_img2, rewards_img3;
TextView rewards_text1, rewards_text2, rewards_text3;
public GuardUpgradePopup(@NonNull Context context, String liveUid, CheckUpgradesModel upgradesModel, GuardUpgradeCallBack guardUpgradeCallBack) {
super(context);
activity = (FragmentActivity) context;
mLiveUid = liveUid;
mUpgradesModel = upgradesModel;
mGuardUpgradeCallBack = guardUpgradeCallBack;
}
@Override
protected int getImplLayoutId() {
return R.layout.guard_upgrade_popup;
}
// 执行初始化操作比如findView设置点击或者任何你弹窗内的业务逻辑
@Override
protected void onCreate() {
super.onCreate();
leave_hint = findViewById(R.id.leave_hint);
rewards_line1 = findViewById(R.id.rewards_line1);
rewards_line2 = findViewById(R.id.rewards_line2);
rewards_line3 = findViewById(R.id.rewards_line3);
rewards_img1 = findViewById(R.id.rewards_img1);
rewards_img2 = findViewById(R.id.rewards_img2);
rewards_img3 = findViewById(R.id.rewards_img3);
rewards_text1 = findViewById(R.id.rewards_text1);
rewards_text2 = findViewById(R.id.rewards_text2);
rewards_text3 = findViewById(R.id.rewards_text3);
StringBuffer hintStringBuffer = new StringBuffer();
if (WordUtil.isNewZh()) {
hintStringBuffer.append("您的守護等級已達到")
.append(mUpgradesModel.getLevel())
.append("級 可以領取以下獎勵");
} else {
hintStringBuffer.append("Your guardian level has reached level ")
.append(mUpgradesModel.getLevel())
.append(" You can receive the following rewards")
;
}
leave_hint.setText(hintStringBuffer.toString());
if (mUpgradesModel.getRewards().size() > 0) {
if (mUpgradesModel.getRewards().size() == 1) {
rewards_line1.setVisibility(INVISIBLE);
rewards_line2.setVisibility(VISIBLE);
rewards_line3.setVisibility(INVISIBLE);
RewardsModel rewardsModel = mUpgradesModel.getRewards().get(0);
ImgLoader.display(getContext(), rewardsModel.getImagePath(), rewards_img2);
rewards_text2.setText(rewardsModel.getRewardName());
} else if (mUpgradesModel.getRewards().size() == 2) {
rewards_line1.setVisibility(VISIBLE);
rewards_line2.setVisibility(INVISIBLE);
rewards_line3.setVisibility(VISIBLE);
RewardsModel rewardsModel1 = mUpgradesModel.getRewards().get(0);
RewardsModel rewardsModel3 = mUpgradesModel.getRewards().get(1);
ImgLoader.display(getContext(), rewardsModel1.getImagePath(), rewards_img1);
rewards_text1.setText(rewardsModel1.getRewardName());
ImgLoader.display(getContext(), rewardsModel3.getImagePath(), rewards_img3);
rewards_text3.setText(rewardsModel3.getRewardName());
} else if (mUpgradesModel.getRewards().size() == 3) {
rewards_line1.setVisibility(VISIBLE);
rewards_line2.setVisibility(VISIBLE);
rewards_line3.setVisibility(VISIBLE);
RewardsModel rewardsModel1 = mUpgradesModel.getRewards().get(0);
RewardsModel rewardsModel2 = mUpgradesModel.getRewards().get(1);
RewardsModel rewardsModel3 = mUpgradesModel.getRewards().get(2);
ImgLoader.display(getContext(), rewardsModel1.getImagePath(), rewards_img1);
rewards_text1.setText(rewardsModel1.getRewardName());
ImgLoader.display(getContext(), rewardsModel2.getImagePath(), rewards_img2);
rewards_text2.setText(rewardsModel2.getRewardName());
ImgLoader.display(getContext(), rewardsModel3.getImagePath(), rewards_img3);
rewards_text3.setText(rewardsModel3.getRewardName());
} else {
rewards_line1.setVisibility(INVISIBLE);
rewards_line2.setVisibility(INVISIBLE);
rewards_line3.setVisibility(INVISIBLE);
}
} else {
rewards_line1.setVisibility(INVISIBLE);
rewards_line2.setVisibility(INVISIBLE);
rewards_line3.setVisibility(INVISIBLE);
}
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.confirm), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
LiveNetManager.get(getContext())
.guardGetRewards(mUpgradesModel.getLevel(), mLiveUid, new HttpCallback<Object>() {
@Override
public void onSuccess(Object data) {
ToastUtil.show(WordUtil.isNewZh() ? "領取成功" : "Receive successfully");
dismiss();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.view_grade), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
if (mGuardUpgradeCallBack != null) {
mGuardUpgradeCallBack.onGuardLevel();
}
dismiss();
StringBuffer htmlUrl = new StringBuffer();
IMLoginModel userInfo = IMLoginManager.get(getContext()).getUserInfo();
htmlUrl.append(CommonAppConfig.HOST)
.append("/h5/Guard/level.html?")
.append("token=")
.append(userInfo.getToken())
.append("&uid=")
.append(userInfo.getId())
.append("&anchorUid=")
.append(mLiveUid)
.append("&isZh=")
.append(((WordUtil.isNewZh()) ? "1" : "0"));
RouteUtil.forwardZhuangBanActivity(htmlUrl.toString());
}
});
}
private GuardUpgradeCallBack mGuardUpgradeCallBack;
public interface GuardUpgradeCallBack {
void onGuardLevel();
}
}

View File

@ -0,0 +1,134 @@
package com.yunbao.common.dialog;
import android.content.Context;
import android.content.DialogInterface;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.core.AttachPopupView;
import com.yunbao.common.R;
import com.yunbao.common.adapter.LiveBuyGuardSelectAdapter;
import com.yunbao.common.bean.GuardPriceModel;
import com.yunbao.common.views.LiveBuyGuardSelectViewHolder;
import java.util.ArrayList;
import java.util.List;
public class LiveBuyGuardSelectPopup extends AttachPopupView {
private int mType;
private DialogInterface.OnDismissListener onDismissListener;
private LiveBuyGuardSelectListener buyGuardSelectListener;
List<GuardPriceModel> price = new ArrayList<>();
LiveBuyGuardSelectAdapter liveBuyGuardSelectAdapter;
RecyclerView live_buy_guard_list;
GuardPriceModel model;
public LiveBuyGuardSelectPopup(@NonNull Context context, List<GuardPriceModel> mPrice, GuardPriceModel mModel) {
super(context);
price = mPrice;
model = mModel;
}
protected int getImplLayoutId() {
return R.layout.view_live_buy_guard_slelect;
}
@Override
protected void onCreate() {
live_buy_guard_list = findViewById(R.id.live_buy_guard_list);
liveBuyGuardSelectAdapter = new LiveBuyGuardSelectAdapter(price,model);
live_buy_guard_list.setAdapter(liveBuyGuardSelectAdapter);
live_buy_guard_list.setLayoutManager(new LinearLayoutManager(getContext()));
liveBuyGuardSelectAdapter.setLiveBuyGuardSelectClickListener(new LiveBuyGuardSelectViewHolder.LiveBuyGuardSelectClickListener() {
@Override
public void onClickListener(GuardPriceModel guardPriceModel) {
dialog.dismiss();
if (onDismissListener != null) {
onDismissListener.onDismiss(null);
}
if (buyGuardSelectListener != null) {
buyGuardSelectListener.onLiveBuyGuardSelectListener(guardPriceModel);
}
}
});
// ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.one_month), new ViewClicksAntiShake.ViewClicksCallBack() {
// @Override
// public void onViewClicks() {
// dialog.dismiss();
// if (onDismissListener != null) {
// onDismissListener.onDismiss(null);
// }
// if (buyGuardSelectListener != null) {
// buyGuardSelectListener.onLiveBuyGuardSelectListener(0);
// }
// }
// });
// ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.tree_month), new ViewClicksAntiShake.ViewClicksCallBack() {
// @Override
// public void onViewClicks() {
// dialog.dismiss();
// if (onDismissListener != null) {
// onDismissListener.onDismiss(null);
// }
// if (buyGuardSelectListener != null) {
// buyGuardSelectListener.onLiveBuyGuardSelectListener(1);
// }
// }
// });
// ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.six_month), new ViewClicksAntiShake.ViewClicksCallBack() {
// @Override
// public void onViewClicks() {
// dialog.dismiss();
// if (onDismissListener != null) {
// onDismissListener.onDismiss(null);
// }
// if (buyGuardSelectListener != null) {
// buyGuardSelectListener.onLiveBuyGuardSelectListener(2);
// }
// }
// });
// ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.one_two_month), new ViewClicksAntiShake.ViewClicksCallBack() {
// @Override
// public void onViewClicks() {
// dialog.dismiss();
// if (onDismissListener != null) {
// onDismissListener.onDismiss(null);
// }
// if (buyGuardSelectListener != null) {
// buyGuardSelectListener.onLiveBuyGuardSelectListener(3);
// }
// }
// });
if (model == null) {
} else {
}
}
public LiveBuyGuardSelectPopup setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
this.onDismissListener = onDismissListener;
return this;
}
public LiveBuyGuardSelectPopup setBuyGuardSelectListener(LiveBuyGuardSelectListener buyGuardSelectListener) {
this.buyGuardSelectListener = buyGuardSelectListener;
return this;
}
@Override
protected void onDismiss() {
super.onDismiss();
if (onDismissListener != null) {
onDismissListener.onDismiss(null);
}
}
public interface LiveBuyGuardSelectListener {
void onLiveBuyGuardSelectListener(GuardPriceModel guardPriceModel);
}
}

View File

@ -16,13 +16,12 @@ import com.yunbao.common.custom.RatioRoundImageView;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.ViewUtils;
import io.rong.imkit.utils.RouteUtils; import io.rong.imkit.utils.RouteUtils;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
public class MessageChatNotifyDialog extends AbsDialogPositionPopupWindow { public class MessageChatNotifyDialog extends AbsDialogPositionPopupWindow {
private static boolean dialogStatusShow =false;
private MessageUserInfoBean liveBean; private MessageUserInfoBean liveBean;
private DialogInterface.OnDismissListener onDismissListener; private DialogInterface.OnDismissListener onDismissListener;
@ -44,6 +43,10 @@ public class MessageChatNotifyDialog extends AbsDialogPositionPopupWindow {
return this; return this;
} }
public static boolean isDialogStatusShow() {
return dialogStatusShow;
}
@Override @Override
public void buildDialog(XPopup.Builder builder) { public void buildDialog(XPopup.Builder builder) {
builder.positionByWindowCenter(true); builder.positionByWindowCenter(true);
@ -67,6 +70,13 @@ public class MessageChatNotifyDialog extends AbsDialogPositionPopupWindow {
@Override @Override
protected void onShow() { protected void onShow() {
super.onShow(); super.onShow();
dialogStatusShow =true;
}
@Override
protected void onDismiss() {
super.onDismiss();
dialogStatusShow =false;
} }
@Override @Override
@ -83,7 +93,7 @@ public class MessageChatNotifyDialog extends AbsDialogPositionPopupWindow {
if (StringUtil.isEmpty(liveBean.getExtras())) { if (StringUtil.isEmpty(liveBean.getExtras())) {
((TextView) findViewById(R.id.description)).setText(liveBean.getUser().getSignature()); ((TextView) findViewById(R.id.description)).setText(liveBean.getUser().getSignature());
} else { } else {
((TextView) findViewById(R.id.description)).setText(liveBean.getUser().getSignature()); ((TextView) findViewById(R.id.description)).setText(liveBean.getExtras());
} }
new Handler(Looper.getMainLooper()).postDelayed(() -> { new Handler(Looper.getMainLooper()).postDelayed(() -> {
dismiss(); dismiss();

View File

@ -120,7 +120,20 @@ public class MessageLongClickPopuwindow implements View.OnClickListener {
IMCenter.getInstance().deleteMessages(message.getConversationType(), message.getTargetId(), new int[]{message.getMessageId()}, new RongIMClient.ResultCallback<Boolean>() { IMCenter.getInstance().deleteMessages(message.getConversationType(), message.getTargetId(), new int[]{message.getMessageId()}, new RongIMClient.ResultCallback<Boolean>() {
@Override @Override
public void onSuccess(Boolean aBoolean) { public void onSuccess(Boolean aBoolean) {
if(aBoolean){
IMCenter.getInstance().deleteRemoteMessages(message.getConversationType(), message.getTargetId(), new Message[]{message}, new RongIMClient.OperationCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
}
});
}
} }
@Override @Override

View File

@ -76,9 +76,9 @@ public class MessageSayHiNotifyDialog extends AbsDialogCenterPopupWindow {
@Override @Override
protected void onDismiss() { protected void onDismiss() {
super.onDismiss(); super.onDismiss();
/*if (onDismissListener != null) { if (onDismissListener != null) {
onDismissListener.onItemClick(userInfoBean.getUser().getId() + "", isSayHi ? 2 : 1); onDismissListener.onItemClick(userInfoBean.getUser().getId() + "", isSayHi ? 2 : 1);
}*/ }
} }
boolean isSayHi = false; boolean isSayHi = false;
@ -86,6 +86,10 @@ public class MessageSayHiNotifyDialog extends AbsDialogCenterPopupWindow {
@Override @Override
protected void onCreate() { protected void onCreate() {
super.onCreate(); super.onCreate();
if (userInfoBean.getId() == 0) {
dismiss();
return;
}
findViewById(R.id.liveGo).setOnClickListener(v -> { findViewById(R.id.liveGo).setOnClickListener(v -> {
isSayHi = true; isSayHi = true;
Conversation.ConversationType type = Conversation.ConversationType.PRIVATE; Conversation.ConversationType type = Conversation.ConversationType.PRIVATE;
@ -93,7 +97,7 @@ public class MessageSayHiNotifyDialog extends AbsDialogCenterPopupWindow {
sendMsg(userInfoBean.getSayHiMsg()); sendMsg(userInfoBean.getSayHiMsg());
dismiss(); dismiss();
}); });
/* avatar = findViewById(R.id.avatar); avatar = findViewById(R.id.avatar);
anchorName = findViewById(R.id.anchorName); anchorName = findViewById(R.id.anchorName);
ImgLoader.display(mContext, userInfoBean.getUser().getAvatar(), avatar); ImgLoader.display(mContext, userInfoBean.getUser().getAvatar(), avatar);
anchorName.setText(userInfoBean.getUser().getUserNicename()); anchorName.setText(userInfoBean.getUser().getUserNicename());
@ -105,14 +109,14 @@ public class MessageSayHiNotifyDialog extends AbsDialogCenterPopupWindow {
, WordUtil.isNewZh() ? "" : "years old" , WordUtil.isNewZh() ? "" : "years old"
) )
); );
showTag();*/ showTag();
} }
private void showTag() { private void showTag() {
List<String> tags = new ArrayList<>(); List<String> tags = new ArrayList<>();
tags.add(userInfoBean.getInfo().getSex() == 1 ? WordUtil.getNewString(R.string.sex_male) : WordUtil.getNewString(R.string.sex_female)); tags.add(userInfoBean.getInfo().getSex() == 1 ? WordUtil.getNewString(R.string.sex_male) : WordUtil.getNewString(R.string.sex_female));
if (!StringUtil.isEmpty(userInfoBean.getInfo().getCareer())) { if (!StringUtil.isEmpty(userInfoBean.getInfo().getCareer(), userInfoBean.getInfo().getEnCareer())) {
tags.add(userInfoBean.getInfo().getCareer()); tags.add(WordUtil.isNewZh() ? userInfoBean.getInfo().getCareer() : userInfoBean.getInfo().getEnCareer());
} }
if (!StringUtil.isEmpty(userInfoBean.getInfo().getHeight()) && !userInfoBean.getInfo().getHeight().equals("0")) { if (!StringUtil.isEmpty(userInfoBean.getInfo().getHeight()) && !userInfoBean.getInfo().getHeight().equals("0")) {
tags.add(userInfoBean.getInfo().getHeight()); tags.add(userInfoBean.getInfo().getHeight());

View File

@ -14,6 +14,7 @@ import com.yunbao.common.bean.OpenAdModel;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ScreenDimenUtil; import com.yunbao.common.utils.ScreenDimenUtil;
public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow { public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
@ -65,6 +66,11 @@ public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
mClose = findViewById(R.id.close); mClose = findViewById(R.id.close);
findViewById(R.id.layout).setOnClickListener(v -> dismiss()); findViewById(R.id.layout).setOnClickListener(v -> dismiss());
mImageView.setOnClickListener(v -> { mImageView.setOnClickListener(v -> {
if("home_page_banner_battle".equals(model.getOriginalUrl())){
RouteUtil.forwardBattlePass();
dismiss();
return;
}
WebViewActivity.forward(mContext, model.getUrl(), model.getType() != OpenAdModel.TYPE_HOME); WebViewActivity.forward(mContext, model.getUrl(), model.getType() != OpenAdModel.TYPE_HOME);
if (mListener != null) { if (mListener != null) {
mListener.onItemClick(model, 1); mListener.onItemClick(model, 1);

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