Compare commits
176 Commits
develop_hi
...
molistar_r
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e43b3348bf | ||
![]() |
8f552d6663 | ||
![]() |
a7c528fff1 | ||
![]() |
afc1d5ef69 | ||
![]() |
4a3c8cbdac | ||
![]() |
1c9c084c3e | ||
![]() |
39cd73b021 | ||
![]() |
f6e5017fbb | ||
![]() |
8562768556 | ||
![]() |
7d6f0c360b | ||
![]() |
e635f69b1f | ||
![]() |
66e9a1442e | ||
![]() |
30036526bd | ||
![]() |
de71c445c1 | ||
![]() |
088d27c51c | ||
![]() |
42007aa075 | ||
![]() |
bc441a8ac2 | ||
![]() |
5b9ada0902 | ||
![]() |
5f441aa8eb | ||
![]() |
9e8a95c1d6 | ||
![]() |
ac14be2c88 | ||
![]() |
e334c7ce16 | ||
![]() |
32b0fba6fb | ||
![]() |
d9a39877f1 | ||
![]() |
681bd8bca9 | ||
![]() |
fc62f8cd28 | ||
![]() |
696dc32234 | ||
![]() |
99e85366b3 | ||
![]() |
70785fdf47 | ||
![]() |
b353105ca2 | ||
![]() |
62dc2e3c9d | ||
![]() |
9c63c56488 | ||
![]() |
d3b16529e1 | ||
![]() |
d73770cfe2 | ||
![]() |
191990426a | ||
![]() |
87052c52c1 | ||
![]() |
568a42799d | ||
![]() |
c0663e4aa8 | ||
![]() |
a8e7634920 | ||
![]() |
8d292ccac0 | ||
![]() |
b81f0c0808 | ||
![]() |
b354931ed2 | ||
![]() |
f538dde6da | ||
![]() |
a37ff5d9b8 | ||
![]() |
f675e3e085 | ||
![]() |
63553473bf | ||
![]() |
15f8ae439b | ||
![]() |
f73b56726a | ||
![]() |
cbca06b03d | ||
![]() |
9b0168f614 | ||
![]() |
70b9e5cbdd | ||
![]() |
f95f8fb0f5 | ||
![]() |
8b90c472e3 | ||
![]() |
c924a2b2ac | ||
![]() |
e7d2c0cf75 | ||
![]() |
5946726d0b | ||
![]() |
ca266841ac | ||
![]() |
5c9ad5b2fb | ||
![]() |
68e6d2aa15 | ||
![]() |
fcecc29add | ||
![]() |
81ba536dba | ||
![]() |
3bf1af2c0b | ||
![]() |
48de4c765b | ||
![]() |
eb6fb9b2da | ||
![]() |
5cf07b86b3 | ||
![]() |
0fce835c0c | ||
![]() |
dcbd5aae25 | ||
![]() |
b5541afc5d | ||
![]() |
25e0c29dbc | ||
![]() |
46c6ee3e99 | ||
![]() |
6277322ebe | ||
![]() |
a8bc86b5aa | ||
![]() |
291f85c310 | ||
![]() |
26ea3dbfd5 | ||
![]() |
14a70f29c8 | ||
![]() |
96174fbfeb | ||
![]() |
492b5f7263 | ||
![]() |
408afcebcb | ||
![]() |
18904e853e | ||
![]() |
61ac515cf9 | ||
![]() |
c47281401e | ||
![]() |
58abce7456 | ||
![]() |
fdd6f1836f | ||
![]() |
5928151853 | ||
![]() |
c4cc6153df | ||
![]() |
ecdeee3e76 | ||
![]() |
a39a11343c | ||
![]() |
c5d0b80f1b | ||
![]() |
520efa04f8 | ||
![]() |
5b1b469316 | ||
![]() |
7ce3990728 | ||
![]() |
542e12a88b | ||
![]() |
7373093946 | ||
![]() |
792b140f0f | ||
![]() |
c64d74aa7d | ||
![]() |
73f24839d4 | ||
![]() |
9a532c5c3f | ||
![]() |
1b74aa08ce | ||
![]() |
831d219f36 | ||
![]() |
6858130a7e | ||
![]() |
db9077fbbc | ||
![]() |
e67ab3c1b3 | ||
![]() |
df0b246062 | ||
![]() |
bf133e5dc6 | ||
![]() |
b4f26d324c | ||
![]() |
4a2618a76b | ||
![]() |
1b56fd075b | ||
![]() |
f1586fb0ac | ||
![]() |
66aa5a5671 | ||
![]() |
52bfc9636b | ||
![]() |
7c0665b9ce | ||
![]() |
ecb3c46407 | ||
![]() |
6ce3a64ea3 | ||
![]() |
408ec37ff2 | ||
![]() |
ecdbf9e9c3 | ||
![]() |
d8ae8a559d | ||
![]() |
2f8511ca16 | ||
![]() |
7e6c8bc4d3 | ||
![]() |
30c63dd35d | ||
![]() |
40b54bdf53 | ||
![]() |
7bdbae1d9e | ||
![]() |
30dbebc696 | ||
![]() |
d3c70fa0d9 | ||
![]() |
bc5a20263c | ||
![]() |
2205c59d69 | ||
![]() |
a7f8c413d6 | ||
![]() |
2c098a9092 | ||
![]() |
e547fff367 | ||
![]() |
b7951341b2 | ||
![]() |
30d81ebbfd | ||
![]() |
3cb2267032 | ||
![]() |
85dcb4806e | ||
![]() |
40a93939ad | ||
![]() |
98b66940e5 | ||
![]() |
7b4bb010bf | ||
![]() |
9bc58277aa | ||
![]() |
5a69f092a2 | ||
![]() |
1873359e36 | ||
![]() |
eae1539375 | ||
![]() |
c49d8c0f0c | ||
![]() |
642b0cc1fc | ||
![]() |
9850069824 | ||
![]() |
038aded819 | ||
![]() |
bffe6916e9 | ||
![]() |
9bb7ee73f5 | ||
![]() |
81769854ee | ||
![]() |
614b5ad042 | ||
![]() |
da86497b95 | ||
![]() |
c37635d6d1 | ||
![]() |
1a1d2cf46c | ||
![]() |
a686dcc19d | ||
![]() |
1ffd596ab2 | ||
![]() |
4c01a2eb2c | ||
![]() |
93ebf4f8e1 | ||
![]() |
c264a25d66 | ||
![]() |
44c76eb00d | ||
![]() |
36d80dc7f0 | ||
![]() |
6905425adb | ||
![]() |
79aa0754d5 | ||
![]() |
abad8212a5 | ||
![]() |
f4626dc8b7 | ||
![]() |
f383b23ad9 | ||
![]() |
e31545ddb0 | ||
![]() |
b9d090cd25 | ||
![]() |
c55b1ba737 | ||
![]() |
a93f3acdc9 | ||
![]() |
500d5ca1a8 | ||
![]() |
fdfa571d16 | ||
![]() |
8c14c2e1ab | ||
![]() |
b999193f42 | ||
![]() |
1c1eb1c959 | ||
![]() |
1b02f13ea2 | ||
![]() |
96e7b58446 | ||
![]() |
3b3b3cea18 | ||
![]() |
a1144d47c8 | ||
![]() |
4bd9865ac2 |
735
app/build.gradle
735
app/build.gradle
@@ -10,7 +10,7 @@ android {
|
||||
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
|
||||
|
||||
defaultConfig {
|
||||
applicationId isolationMode ? 'com.example.gogo' : 'app.hiyoo.fun'
|
||||
applicationId isolationMode ? 'com.e.oos' : 'com.hhchu.molistar'
|
||||
minSdkVersion MIN_SDK_VERSION.toInteger()
|
||||
targetSdkVersion TARGET_SDK_VERSION.toInteger()
|
||||
versionCode Integer.valueOf(version_code)
|
||||
@@ -20,11 +20,11 @@ android {
|
||||
|
||||
flavorDimensions 'default'
|
||||
buildConfigField "boolean", "ISOLATION_MODE", "$isolationMode"
|
||||
|
||||
resConfigs "en", "zh-rTW", "ar"
|
||||
if (isolationMode) {
|
||||
resValue "string", "app_name", "Hi-debug"
|
||||
resValue "string", "app_name", "Mo-debug"
|
||||
} else {
|
||||
resValue "string", "app_name", "Hiyoo"
|
||||
resValue "string", "app_name", "MoliStar"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ android {
|
||||
if (abi == null) {
|
||||
abi = "universal"
|
||||
}
|
||||
outputFileName = "hiyoo_${buildType.name}_v${defaultConfig.versionName}_${abi}_${date}.apk"
|
||||
outputFileName = "MoliStar_${buildType.name}_v${defaultConfig.versionName}_${abi}_${date}.apk"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,19 +84,19 @@ android {
|
||||
signingConfigs {
|
||||
|
||||
debug {
|
||||
storeFile file('../app_debug.jks')
|
||||
storePassword "debug2023"
|
||||
keyAlias "debug"
|
||||
keyPassword "debug2023"
|
||||
storeFile file('../molistar_debug.jks')
|
||||
storePassword "molistar"
|
||||
keyAlias "molistar"
|
||||
keyPassword "molistar"
|
||||
v2SigningEnabled true
|
||||
v1SigningEnabled true
|
||||
}
|
||||
|
||||
release {
|
||||
storeFile file('../hiyoo.jks')
|
||||
storePassword "hiyoo2023"
|
||||
keyAlias "hiyoo"
|
||||
keyPassword "hiyoo2023"
|
||||
storeFile file('../molistar.jks')
|
||||
storePassword "molistar"
|
||||
keyAlias "molistar"
|
||||
keyPassword "molistar"
|
||||
v2SigningEnabled true
|
||||
v1SigningEnabled true
|
||||
}
|
||||
@@ -107,40 +107,28 @@ android {
|
||||
main {
|
||||
java.srcDirs = [
|
||||
'src/main/java',
|
||||
'src/module_public_chat_hall/java',
|
||||
'src/module_upgrade_app/java',
|
||||
'src/module_mentoring_relationship/java',
|
||||
'src/module_labour_union/java',
|
||||
'src/module_room_chat/java',
|
||||
'src/model_customer_server/java',
|
||||
'src/module_music/java',
|
||||
'src/module_mini_world/java',
|
||||
'src/module_lottery_dialog/java',
|
||||
'src/module_bank_card/java',
|
||||
'src/module_super_admin/java',
|
||||
'src/module_treasure_box/java',
|
||||
'src/module_community/java',
|
||||
'src/module_album/java',
|
||||
'src/module_treasure_box/java',
|
||||
|
||||
]
|
||||
|
||||
res.srcDirs = [
|
||||
'src/main/res',
|
||||
'src/common/res',
|
||||
'src/module_public_chat_hall/res',
|
||||
'src/module_upgrade_app/res',
|
||||
'src/module_mentoring_relationship/res',
|
||||
'src/module_labour_union/res',
|
||||
'src/module_room_chat/res',
|
||||
'src/model_customer_server/res',
|
||||
'src/module_music/res',
|
||||
'src/module_mini_world/res',
|
||||
'src/module_lottery_dialog/res',
|
||||
'src/module_bank_card/res',
|
||||
'src/module_super_admin/res',
|
||||
'src/module_treasure_box/res',
|
||||
'src/module_community/res',
|
||||
'src/module_album/res',
|
||||
'src/module_treasure_box/res',
|
||||
|
||||
]
|
||||
|
||||
@@ -149,15 +137,12 @@ android {
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
def server_url_debug = '"http://beta.api.hiyoo.fun/"'
|
||||
def server_url_release = '"https://api.hiyoo.fun/"'
|
||||
def server_url_debug = '"http://beta.api.molistar.xyz/"'
|
||||
def server_url_release = '"https://api.molistar.xyz/"'
|
||||
|
||||
debug {
|
||||
println("minifyEnabled = " + minify_enabled)
|
||||
|
||||
// ext.enableCrashlytics = false
|
||||
// ext.alwaysUpdateBuildId = false // Firebase Crashlytics禁用更新构建ID
|
||||
|
||||
buildConfigField "String", "BASE_URL", server_url_debug
|
||||
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
|
||||
buildConfigField "String", "BASE_URL_STAGING", "BASE_URL"
|
||||
@@ -178,10 +163,6 @@ android {
|
||||
release {
|
||||
ext.enableCrashlytics = CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
|
||||
ext.alwaysUpdateBuildId = CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
|
||||
// firebaseCrashlytics {
|
||||
// //Firebase Crashlytics控制上传混淆文件开关
|
||||
// mappingFileUploadEnabled CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
|
||||
// }
|
||||
|
||||
buildConfigField "String", "BASE_URL", server_url_release
|
||||
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
|
||||
@@ -275,21 +256,8 @@ dependencies {
|
||||
|
||||
implementation 'com.github.mmin18:realtimeblurview:1.2.1'
|
||||
|
||||
// implementation 'com.appsflyer:af-android-sdk:6.8.2'
|
||||
|
||||
implementation 'com.github.zhpanvip:BannerViewPager:3.5.6'
|
||||
|
||||
//fireBase
|
||||
// implementation platform('com.google.firebase:firebase-bom:31.1.1')
|
||||
// implementation 'com.google.firebase:firebase-crashlytics-ktx'
|
||||
// implementation 'com.google.firebase:firebase-analytics-ktx'
|
||||
|
||||
//Adjust接入
|
||||
// implementation 'com.adjust.sdk:adjust-android:4.33.0'
|
||||
// implementation 'com.android.installreferrer:installreferrer:2.2'
|
||||
// Add the following if you are using the Adjust SDK inside web views on your app
|
||||
// implementation 'com.adjust.sdk:adjust-android-webbridge:4.33.0'
|
||||
|
||||
implementation 'com.github.yalantis:ucrop:2.2.7'
|
||||
|
||||
implementation 'com.github.lihangleo2:ShadowLayout:3.3.2'
|
||||
@@ -297,7 +265,6 @@ dependencies {
|
||||
//wheelView
|
||||
implementation 'com.contrarywind:wheelview:4.1.0'
|
||||
|
||||
// implementation 'tech.sud.mgp:SudMGP-static:1.3.3.1158'
|
||||
|
||||
implementation project(':modules:module_base')
|
||||
if (!isolationMode && file("../modules/module_google/build.gradle").exists()) {
|
||||
@@ -309,7 +276,7 @@ channel {
|
||||
//多渠道包的输出目录,默认为new File(project.buildDir,"channel")
|
||||
outputDir = new File(project.buildDir, "channelapk")
|
||||
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}-${buildTime}
|
||||
apkNameFormat = 'hiyoo-${buildType}-${flavorName}-v${versionName}-${buildTime}'
|
||||
apkNameFormat = 'MoliStar-${buildType}-${flavorName}-v${versionName}-${buildTime}'
|
||||
//快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
|
||||
fastMode = false
|
||||
//buildTime的时间格式,默认格式:yyyyMMdd-HHmmss
|
||||
@@ -324,7 +291,7 @@ aabResGuard {
|
||||
"*.R.raw.*",
|
||||
"*.R.drawable.icon"
|
||||
]
|
||||
obfuscatedBundleFileName = "duplicated-app.aab" // Obfuscated file name, must end with '.aab'
|
||||
obfuscatedBundleFileName = "MoliStar-app.aab" // Obfuscated file name, must end with '.aab'
|
||||
mergeDuplicatedRes = true // Whether to allow the merge of duplicate resources
|
||||
enableFilterFiles = false // Whether to allow filter files
|
||||
filterList = [ // file filter rules
|
||||
@@ -334,7 +301,7 @@ aabResGuard {
|
||||
|
||||
enableFilterStrings = false // switch of filter strings
|
||||
unusedStringPath = file("unused.txt").toPath() // strings will be filtered in this file
|
||||
languageWhiteList = ["en", "zh"] // keep en,en-xx,zh,zh-xx etc. remove others.
|
||||
languageWhiteList = ["en", "zh", "ar", "zh-rTW"] // keep en,en-xx,zh,zh-xx etc. remove others.
|
||||
}
|
||||
|
||||
//以下均为非必须
|
||||
@@ -343,5 +310,665 @@ xmlClassGuard {
|
||||
//用于增量混淆的 mapping 文件
|
||||
mappingFile = file("xml-class-mapping.txt")
|
||||
//更改manifest文件的package属性,即包名
|
||||
packageChange = ["com.chwl.app": "co.ch.a"]
|
||||
packageChange = ["com.chwl.app": "com.hhchu.molistar",
|
||||
"com.chwl.core": "com.hhchu.core",
|
||||
"com.chwl.library": "com.hhchu.library"]
|
||||
moveDir = [
|
||||
"com.chwl.library.language" : "faceb.abded",
|
||||
"com.chwl.app.ui.invite" : "cfdd.baac",
|
||||
"com.chwl.app.ui.link" : "fdb.ddbd",
|
||||
"com.chwl.app.ui.language" : "cffafe.edafba",
|
||||
"com.chwl.core.file.cos" : "cccdbdcce.eccffeccb",
|
||||
"com.chwl.app.notify.views" : "fbbdbcaa.dbfaeadb",
|
||||
"com.chwl.app.notify" : "eaafaa.edeeef",
|
||||
"com.chwl.app.support.float" : "eadbfff.eccceee",
|
||||
"com.chwl.app.avroom.gameplay" : "dfcf.dbdcb",
|
||||
"com.chwl.app.treasure_box.activity" : "fdbac.cdfab",
|
||||
"com.chwl.app.treasure_box.adapter" : "febab.bdfcb",
|
||||
"com.chwl.app.treasure_box.fragment" : "ecbbc.baaada",
|
||||
"com.chwl.app.treasure_box.module" : "aecae.aeacf",
|
||||
"com.chwl.app.treasure_box.presenter" : "ddaaee.bacbdcb",
|
||||
"com.chwl.app.treasure_box.widget" : "bedacc.bbbceb",
|
||||
"com.chwl.app.treasure_box" : "afccebdddd.ecdedbfcea",
|
||||
"com.chwl.core.treasure_box.bean" : "eeaaaa.bbedeee",
|
||||
"com.chwl.core.treasure_box.event" : "dfbfa.edacdb",
|
||||
"com.chwl.core.treasure_box.model" : "abdf.ebeab",
|
||||
"com.example.lib_utils.spannable" : "babdfb.baacfc",
|
||||
"com.example.lib_utils.log" : "cade.bebee",
|
||||
"com.example.lib_utils.ktx" : "aedbdf.cbfffd",
|
||||
"com.example.lib_utils" : "edadfda.cbddcda",
|
||||
"com.soundcloud.crop" : "eccbecc.eefdcbdd",
|
||||
"com.example.lib_core.component" : "cebecef.abcfbdda",
|
||||
"com.example.lib_core" : "ffedce.affffdf",
|
||||
"com.chwl.library.luban" : "cdbffbd.eadcbca",
|
||||
"com.chwl.library.easyphoto.utils.uri" : "dbbffdafc.aaadcdfcca",
|
||||
"com.chwl.library.easyphoto.utils.system" : "adb.ffd",
|
||||
"com.chwl.library.easyphoto.utils.string" : "bebbc.efcaca",
|
||||
"com.chwl.library.easyphoto.utils.settings" : "defee.eaccbb",
|
||||
"com.chwl.library.easyphoto.utils.result" : "eecdc.cddbfa",
|
||||
"com.chwl.library.easyphoto.utils.permission" : "fea.fcef",
|
||||
"com.chwl.library.easyphoto.utils.media" : "ddddcde.bfececea",
|
||||
"com.chwl.library.easyphoto.utils.color" : "ddc.cacb",
|
||||
"com.chwl.library.easyphoto.utils.bitmap" : "fadfc.bcaac",
|
||||
"com.chwl.library.easyphoto.ui.widget" : "bfafdb.ffeeadd",
|
||||
"com.chwl.library.easyphoto.ui.dialog" : "fbaaaf.cdadedd",
|
||||
"com.chwl.library.easyphoto.ui.adapter" : "fcada.cbadea",
|
||||
"com.chwl.library.easyphoto.ui" : "beefbfb.bffbefaf",
|
||||
"com.chwl.library.easyphoto.setting" : "edfd.dbfda",
|
||||
"com.chwl.library.easyphoto.result" : "fddd.dbae",
|
||||
"com.chwl.library.easyphoto.models.sticker.view" : "bacccfc.abbadfec",
|
||||
"com.chwl.library.easyphoto.models.sticker.listener" : "edecfbdbb.fbdcbfaaed",
|
||||
"com.chwl.library.easyphoto.models.sticker.entity" : "bbfeef.fdaefba",
|
||||
"com.chwl.library.easyphoto.models.sticker.cache" : "cfeefddf.daadadef",
|
||||
"com.chwl.library.easyphoto.models.sticker" : "eadfab.aaffafa",
|
||||
"com.chwl.library.easyphoto.models.puzzle.template.straight" : "cbbfdd.fdbaab",
|
||||
"com.chwl.library.easyphoto.models.puzzle.template.slant" : "fcffbcef.cbefeefa",
|
||||
"com.chwl.library.easyphoto.models.puzzle.straight" : "bbacbff.ecbddeb",
|
||||
"com.chwl.library.easyphoto.models.puzzle.slant" : "ebbbf.bfcbc",
|
||||
"com.chwl.library.easyphoto.models.puzzle" : "afbfbfd.dffbcec",
|
||||
"com.chwl.library.easyphoto.models.album.entity" : "baf.edaf",
|
||||
"com.chwl.library.easyphoto.models.album" : "daddbf.cebdcdd",
|
||||
"com.chwl.library.easyphoto.models.ad" : "adecece.cdedecc",
|
||||
"com.chwl.library.easyphoto.engine" : "ecadb.effbcc",
|
||||
"com.chwl.library.easyphoto.constant" : "abcfbde.cefbdbb",
|
||||
"com.chwl.library.easyphoto.callback" : "acbfefebc.aefecbfea",
|
||||
"com.chwl.library.easyphoto.builder" : "cccbcd.fabeea",
|
||||
"com.chwl.library.easyphoto" : "cebee.abfded",
|
||||
"com.chwl.library.easypermisssion.helper" : "dcbcfd.abebba",
|
||||
"com.chwl.library.easypermisssion" : "fdecdffb.cbddcdadd",
|
||||
"com.chwl.library.common.widget" : "dbcccf.adbaeab",
|
||||
"com.chwl.library.common.util" : "abadefdd.bbdedefbe",
|
||||
"com.chwl.library.common.transform" : "ddecee.dbeafe",
|
||||
"com.chwl.library.common.photo" : "bdbbad.cbbefbe",
|
||||
"com.chwl.library.common.glide" : "faacc.afcba",
|
||||
"com.chwl.library.common.fragmentation.windowcallback" : "bafbddf.cdcdbdb",
|
||||
"com.chwl.library.common.fragmentation.queue" : "ffceba.caedfea",
|
||||
"com.chwl.library.common.fragmentation.internal" : "fcfc.dceae",
|
||||
"com.chwl.library.common.fragmentation" : "cafcfb.febddef",
|
||||
"com.chwl.library.common.file" : "cdcdeb.ccfddae",
|
||||
"com.chwl.library.common.entity" : "acdb.aacb",
|
||||
"com.chwl.library.common.delegate" : "cbdf.beed",
|
||||
"com.chwl.library.common.base" : "daebfd.bfaada",
|
||||
"com.chwl.library.common.application" : "afdbd.ffcebb",
|
||||
"com.chwl.library.common" : "fede.deddf",
|
||||
"com.chwl.library.widget.xlist" : "ccbecd.ffdfcdb",
|
||||
"com.chwl.library.widget.decoration" : "dacceb.bcfbca",
|
||||
"com.chwl.library.widget" : "eacad.fcafd",
|
||||
"com.chwl.library.utils.valid" : "eccee.fdbec",
|
||||
"com.chwl.library.utils.pref" : "aaebaf.edefdcf",
|
||||
"com.chwl.library.utils.net" : "aadbf.cfabd",
|
||||
"com.chwl.library.utils.log" : "cdefbea.aedfceec",
|
||||
"com.chwl.library.utils.keyboard" : "acbbf.ecdbcf",
|
||||
"com.chwl.library.utils.json" : "cad.dcad",
|
||||
"com.chwl.library.utils.image" : "ccdabf.fefcfbc",
|
||||
"com.chwl.library.utils.file" : "cfe.bbdd",
|
||||
"com.chwl.library.utils.constant" : "fcde.abaf",
|
||||
"com.chwl.library.utils.config" : "edaaebed.afbeccda",
|
||||
"com.chwl.library.utils.codec" : "ffbedacf.cadbdefa",
|
||||
"com.chwl.library.utils.cache" : "beaeed.adcfbd",
|
||||
"com.chwl.library.utils.asynctask" : "dacf.bbfea",
|
||||
"com.chwl.library.utils.anim" : "dbcbbd.cbccefa",
|
||||
"com.chwl.library.utils" : "fdeaee.fddfeca",
|
||||
"com.chwl.library.threadmgr" : "eddebea.dcbdfbf",
|
||||
"com.chwl.library.swipeactivity" : "eaacbeb.fddeacad",
|
||||
"com.chwl.library.softinput" : "ecefea.cfddea",
|
||||
"com.chwl.library.service" : "efdcc.dfcbe",
|
||||
"com.chwl.library.rxbus" : "aefdcd.dbadbed",
|
||||
"com.chwl.library.rx" : "eab.bee",
|
||||
"com.chwl.library.record" : "dafcbfe.afcdffa",
|
||||
"com.chwl.library.net.rxnet.utils" : "acfbbb.ceeeab",
|
||||
"com.chwl.library.net.rxnet.model" : "cefdcae.ecabacf",
|
||||
"com.chwl.library.net.rxnet.manager" : "fdccbc.fbdadfe",
|
||||
"com.chwl.library.net.rxnet.interceptor" : "fcce.cbdf",
|
||||
"com.chwl.library.net.rxnet.https" : "dcdca.eafdc",
|
||||
"com.chwl.library.net.rxnet.factory" : "afbebbbdb.eafdafcbb",
|
||||
"com.chwl.library.net.rxnet.exception" : "eeeab.bebfa",
|
||||
"com.chwl.library.net.rxnet.converter" : "baaccbeb.efccaccde",
|
||||
"com.chwl.library.net.rxnet.callback" : "dfad.eccaf",
|
||||
"com.chwl.library.net.rxnet" : "facdef.bbedadd",
|
||||
"com.chwl.library.manager" : "cbaf.aadf",
|
||||
"com.chwl.library.list" : "bddaaa.ffeead",
|
||||
"com.chwl.library.coremanager" : "aadcbecd.fedbababd",
|
||||
"com.chwl.library.bindinglist" : "afabdcf.feacfbfb",
|
||||
"com.chwl.library.base.factory" : "ddbfbdf.acbaddc",
|
||||
"com.chwl.library.base" : "bfba.fcbd",
|
||||
"com.chwl.library.annatation" : "bcfcaaa.cefecab",
|
||||
"com.chwl.library.animator" : "acbc.afcdd",
|
||||
"com.chwl.library.adapters" : "caffe.edbbcd",
|
||||
"com.chwl.core.upgrade.model" : "cad.abdd",
|
||||
"com.chwl.core.upgrade.event" : "fffdf.aaaccc",
|
||||
"com.chwl.core.upgrade.bean" : "aea.baaf",
|
||||
"com.chwl.core.super_admin.util" : "cacffea.cbcafbe",
|
||||
"com.chwl.core.super_admin.model.exception" : "cabed.eeaede",
|
||||
"com.chwl.core.super_admin.model" : "bdbd.affda",
|
||||
"com.chwl.core.super_admin.bean" : "ddfb.edcab",
|
||||
"com.chwl.core.super_admin.attachment" : "bfeea.cbedcb",
|
||||
"com.chwl.core.super_admin" : "cddaaf.ddabfc",
|
||||
"com.chwl.core.code" : "aeabedb.eebbdcaa",
|
||||
"com.chwl.core.public_chat_hall.manager" : "cefdad.fefbeef",
|
||||
"com.chwl.core.public_chat_hall.event" : "ccff.dfccf",
|
||||
"com.chwl.core.public_chat_hall.bean" : "aeaaa.dedad",
|
||||
"com.chwl.core.public_chat_hall.attachment" : "fedd.fadb",
|
||||
"com.chwl.core.music.view" : "dafddd.eecfdad",
|
||||
"com.chwl.core.music.model" : "ecabcfecb.bafeafaeb",
|
||||
"com.chwl.core.music.event" : "dbbfcd.fcacbed",
|
||||
"com.chwl.core.music.db.model" : "dcaac.ddecf",
|
||||
"com.chwl.core.music.db.dao" : "fafafcea.fbfbbfda",
|
||||
"com.chwl.core.music.db.converter" : "baf.fac",
|
||||
"com.chwl.core.music.db.bean" : "acbfad.dcbefe",
|
||||
"com.chwl.core.music.bean" : "deafc.bebac",
|
||||
"com.chwl.core.miniworld.model" : "cdcbc.cfbbc",
|
||||
"com.chwl.core.miniworld.event" : "babacc.becdde",
|
||||
"com.chwl.core.miniworld.bean" : "ffbe.bdac",
|
||||
"com.chwl.core.mentoring_relationship.view" : "aadffbfa.fedbaace",
|
||||
"com.chwl.core.mentoring_relationship.model" : "dfdeb.baabec",
|
||||
"com.chwl.core.mentoring_relationship.exception" : "beebbbe.debeffc",
|
||||
"com.chwl.core.mentoring_relationship.event" : "fcaceace.afcfdceb",
|
||||
"com.chwl.core.mentoring_relationship.bean" : "eaedcce.eebdfabf",
|
||||
"com.chwl.core.mentoring_relationship.attachment" : "faebfdc.bcbbbbfc",
|
||||
"com.chwl.core.module_hall.team.event" : "ebfdfe.fcefebd",
|
||||
"com.chwl.core.module_hall.team.bean" : "edcbb.bcfca",
|
||||
"com.chwl.core.module_hall.team" : "bbeafe.ffebdfa",
|
||||
"com.chwl.core.module_hall.secretcode.bean" : "ffdab.eabbd",
|
||||
"com.chwl.core.module_hall.secretcode" : "eedbec.ffbcbed",
|
||||
"com.chwl.core.module_hall.income.event" : "bdecee.edfdbad",
|
||||
"com.chwl.core.module_hall.income.bean" : "fcfc.debbb",
|
||||
"com.chwl.core.module_hall.income" : "afdaaf.afcbfd",
|
||||
"com.chwl.core.module_hall.im.bean" : "bfbcaedcbf.fddedfaafe",
|
||||
"com.chwl.core.module_hall.im" : "fabf.dada",
|
||||
"com.chwl.core.module_hall.hall.event" : "fdcc.edcba",
|
||||
"com.chwl.core.module_hall.hall.bean" : "eacfafb.adbcafda",
|
||||
"com.chwl.core.module_hall.hall" : "bfdade.fbabba",
|
||||
"com.chwl.core.db" : "dccfb.bfeca",
|
||||
"com.chwl.core.community.square" : "fbacff.ebfcca",
|
||||
"com.chwl.core.community.im" : "ddfc.bbcdb",
|
||||
"com.chwl.core.community.event" : "baaeac.edbfbcd",
|
||||
"com.chwl.core.community.dynamic" : "abdce.bdebca",
|
||||
"com.chwl.core.community.bean.comment" : "aedfcaaf.cdfbbcce",
|
||||
"com.chwl.core.community.bean" : "bbcf.abac",
|
||||
"com.chwl.core.community.attachment" : "ceebd.fefcbb",
|
||||
"com.chwl.core.community" : "fcefbba.abbefae",
|
||||
"com.chwl.core.channel_page.model" : "eed.bae",
|
||||
"com.chwl.core.channel_page.bean" : "edfea.cddcb",
|
||||
"com.chwl.core.bank_card.view" : "fbefdfd.fecfadeb",
|
||||
"com.chwl.core.bank_card.model" : "afdeac.aecbbce",
|
||||
"com.chwl.core.bank_card.exception" : "dccfcc.cbdaacd",
|
||||
"com.chwl.core.bank_card.bean" : "ccaad.bddfa",
|
||||
"com.chwl.core.withdraw.bean" : "aaffcba.daeefdac",
|
||||
"com.chwl.core.web.event" : "ecefca.fecfafc",
|
||||
"com.chwl.core.web.bean" : "cbcdae.acdabfe",
|
||||
"com.chwl.core.vip.bean" : "eedbaeb.defbdfae",
|
||||
"com.chwl.core.vip" : "bfcdb.eeabef",
|
||||
"com.chwl.core.utils.net" : "dadebe.fbcfaa",
|
||||
"com.chwl.core.utils.extension" : "aeef.afaa",
|
||||
"com.chwl.core.utils" : "eafcbdd.abaeccf",
|
||||
"com.chwl.core.user.event" : "ffbae.efabfb",
|
||||
"com.chwl.core.user.bean" : "cfeddda.aafffbc",
|
||||
"com.chwl.core.user" : "afacaed.bbaefab",
|
||||
"com.chwl.core.treasurefairy.bean" : "eaffcdbc.daeffdba",
|
||||
"com.chwl.core.treasurefairy" : "bcdefdc.efbefada",
|
||||
"com.chwl.core.team.model" : "eefedae.dfccaca",
|
||||
"com.chwl.core.team.bean" : "bfbdcd.fafefd",
|
||||
"com.chwl.core.support.room.lifecycle.rx" : "defdaecac.ccedeecec",
|
||||
"com.chwl.core.support.room.lifecycle" : "afcfafa.dffefaa",
|
||||
"com.chwl.core.support.room" : "ddaddaf.fccabdf",
|
||||
"com.chwl.core.support.config" : "cfacaac.feafadc",
|
||||
"com.chwl.core.statistic.protocol" : "ccefcc.aecaac",
|
||||
"com.chwl.core.statistic" : "dbdef.bfdea",
|
||||
"com.chwl.core.sound.model" : "beffe.abfeac",
|
||||
"com.chwl.core.skill.event" : "edaba.ddedb",
|
||||
"com.chwl.core.skill.entity" : "bacfcf.dddbef",
|
||||
"com.chwl.core.share.bean" : "aceac.ecabfe",
|
||||
"com.chwl.core.settings.bean" : "cdccdab.ebdbacb",
|
||||
"com.chwl.core.settings" : "adcfbfced.fadbfddca",
|
||||
"com.chwl.core.set.model" : "efcb.ccac",
|
||||
"com.chwl.core.set.bean" : "bababbc.cecaffca",
|
||||
"com.chwl.core.room.treasure_box.event" : "fdccbea.eacbffe",
|
||||
"com.chwl.core.room.treasure_box.bean" : "edbce.fdbbbc",
|
||||
"com.chwl.core.room.recommendpos.bean" : "dfaabac.aabbefcc",
|
||||
"com.chwl.core.room.recommendpos" : "ffbadbcda.dfdcbffdf",
|
||||
"com.chwl.core.room.queuing_mic.event" : "abfbcbe.bceaabda",
|
||||
"com.chwl.core.room.queuing_mic.bean" : "edccdc.abfbfcc",
|
||||
"com.chwl.core.room.queuing_mic.attachment" : "eabbdce.ecdbefc",
|
||||
"com.chwl.core.room.queue.bean" : "eebfd.aaccca",
|
||||
"com.chwl.core.room.pk.model" : "acefeab.bddecfb",
|
||||
"com.chwl.core.room.pk.event" : "fbbefcc.efafcfb",
|
||||
"com.chwl.core.room.pk.bean.response" : "ecaed.eebace",
|
||||
"com.chwl.core.room.pk.bean.request" : "cfeee.cdeea",
|
||||
"com.chwl.core.room.pk.bean" : "afb.eaca",
|
||||
"com.chwl.core.room.pk.attachment" : "cdd.cfde",
|
||||
"com.chwl.core.room.model.inteface" : "bfcaceb.eaaeaae",
|
||||
"com.chwl.core.room.model" : "bdefe.abaefa",
|
||||
"com.chwl.core.room.giftvalue.helper" : "ffaaa.aceba",
|
||||
"com.chwl.core.room.giftvalue.bean" : "bdebccd.fbfaecdb",
|
||||
"com.chwl.core.room.giftvalue" : "caeb.acffa",
|
||||
"com.chwl.core.room.game.bean" : "eacfafb.aadfdcee",
|
||||
"com.chwl.core.room.game" : "acecfafb.cdacfdabe",
|
||||
"com.chwl.core.room.face" : "cfcefbebdc.fecabacfcb",
|
||||
"com.chwl.core.room.exception" : "baebbfcb.debebcfe",
|
||||
"com.chwl.core.room.event" : "afdece.ecaeae",
|
||||
"com.chwl.core.room.dragonball" : "adbbbaa.bcccfdf",
|
||||
"com.chwl.core.room.core" : "efddaaf.aaabbfcd",
|
||||
"com.chwl.core.room.bean" : "bceba.bbfce",
|
||||
"com.chwl.core.room.auction.bean" : "fddadcc.fbdbaaa",
|
||||
"com.chwl.core.room.auction" : "bacebdb.bceeffa",
|
||||
"com.chwl.core.room.anotherroompk" : "edbcdb.efbadd",
|
||||
"com.chwl.core.room.activitytimer" : "adabddff.ccfdcfbd",
|
||||
"com.chwl.core.room" : "fcea.defb",
|
||||
"com.chwl.core.retry" : "dbee.cafae",
|
||||
"com.chwl.core.relation.cp.bean" : "bdabfb.aecccbc",
|
||||
"com.chwl.core.relation.cp" : "caedeb.abacfbc",
|
||||
"com.chwl.core.redpackage.bean" : "edbaad.bbdcdfc",
|
||||
"com.chwl.core.redpackage" : "bcc.ffd",
|
||||
"com.chwl.core.redPacket.event" : "efcdfd.fdfbcae",
|
||||
"com.chwl.core.redPacket.bean" : "acdfe.ebeaed",
|
||||
"com.chwl.core.redPacket" : "edfebe.eebcfad",
|
||||
"com.chwl.core.recall.event" : "eebebe.eeeacfa",
|
||||
"com.chwl.core.recall.bean" : "fabffdc.ffcdadbe",
|
||||
"com.chwl.core.recall" : "cbdac.cadea",
|
||||
"com.chwl.core.realm" : "bdbdef.cffbbf",
|
||||
"com.chwl.core.radish.task.bean" : "abbefdab.daeaadad",
|
||||
"com.chwl.core.radish.task" : "bbedaaf.fbdfcce",
|
||||
"com.chwl.core.radish.signin.bean" : "def.cff",
|
||||
"com.chwl.core.radish.signin" : "ecabbcaca.eddcdecfe",
|
||||
"com.chwl.core.radish.event" : "cdfaedb.eecdebad",
|
||||
"com.chwl.core.radish" : "fdbeeb.eddbbaf",
|
||||
"com.chwl.core.praise.event" : "fdddf.ceacfd",
|
||||
"com.chwl.core.praise" : "becbbbfc.beafebfff",
|
||||
"com.chwl.core.pay.event" : "dbdfe.efdce",
|
||||
"com.chwl.core.pay.bean" : "fbefaae.fddefebe",
|
||||
"com.chwl.core.pay" : "eefbfb.ccdcdeb",
|
||||
"com.chwl.core.patriarch.exception" : "bbcdfae.eddfdbfe",
|
||||
"com.chwl.core.patriarch.event" : "eabff.eccdc",
|
||||
"com.chwl.core.patriarch.bean" : "fbdfcae.fefbfee",
|
||||
"com.chwl.core.noble.bean" : "dfefd.bacabc",
|
||||
"com.chwl.core.noble" : "fdfb.adfec",
|
||||
"com.chwl.core.newbie.event" : "facdeeb.fbeaaff",
|
||||
"com.chwl.core.newbie.bean" : "ffedae.acfcdbb",
|
||||
"com.chwl.core.msg.sysv2.bean" : "ddeeb.bdcdf",
|
||||
"com.chwl.core.msg.sysv2" : "accaef.bfedba",
|
||||
"com.chwl.core.msg.sys.bean" : "dcabc.bbdaea",
|
||||
"com.chwl.core.msg.sys" : "ecdbfa.bedeee",
|
||||
"com.chwl.core.msg" : "bafbfed.efeeebd",
|
||||
"com.chwl.core.monsterhunting.rxevent" : "dfafbbe.afcbecce",
|
||||
"com.chwl.core.monsterhunting.model" : "eabaaa.afcbcd",
|
||||
"com.chwl.core.monsterhunting.manager" : "bdabaef.eaeccdc",
|
||||
"com.chwl.core.monsterhunting.bean" : "adbaee.fffffc",
|
||||
"com.chwl.core.monsterhunting" : "dddbd.cecfcf",
|
||||
"com.chwl.core.market_verify.event" : "bedbcf.ffcdfb",
|
||||
"com.chwl.core.market_verify.bean" : "fffba.cdbfee",
|
||||
"com.chwl.core.market_verify" : "ecddaa.decfae",
|
||||
"com.chwl.core.manager.trtc" : "cdffbe.cfbefa",
|
||||
"com.chwl.core.manager.event" : "ebeccadeab.daaebfafbc",
|
||||
"com.chwl.core.manager.agora" : "bdfbed.baaadfc",
|
||||
"com.chwl.core.manager" : "eada.dedbf",
|
||||
"com.chwl.core.magic.toolbox" : "feaabe.faacdb",
|
||||
"com.chwl.core.magic.exception" : "bdc.dbdc",
|
||||
"com.chwl.core.magic.bean" : "cbeee.efcdfb",
|
||||
"com.chwl.core.magic" : "effdcba.daeaeedf",
|
||||
"com.chwl.core.luckymoney.bean" : "cdaabd.cfabfca",
|
||||
"com.chwl.core.linked.event" : "dccdeb.adfceff",
|
||||
"com.chwl.core.linked.bean" : "dbeef.acefca",
|
||||
"com.chwl.core.linked" : "dfcbeac.affedbe",
|
||||
"com.chwl.core.level.event" : "ecbafad.dceddabe",
|
||||
"com.chwl.core.level" : "eeaeecb.efdafbdc",
|
||||
"com.chwl.core.kick" : "fccbdc.febfaf",
|
||||
"com.chwl.core.interceptor" : "abeb.bdbf",
|
||||
"com.chwl.core.initial.bean" : "edbabbab.acdccacc",
|
||||
"com.chwl.core.initial" : "dfbcef.ddbeede",
|
||||
"com.chwl.core.im.sysmsg" : "cdfe.ddaf",
|
||||
"com.chwl.core.im.state" : "ddcefccc.baeddeeec",
|
||||
"com.chwl.core.im.room" : "efafb.cccabc",
|
||||
"com.chwl.core.im.notification" : "cbace.fedfba",
|
||||
"com.chwl.core.im.login" : "febec.facfc",
|
||||
"com.chwl.core.im.friend" : "ea.ea",
|
||||
"com.chwl.core.im.custom.bean" : "dedfdbd.ebffbcba",
|
||||
"com.chwl.core.im.custom" : "ccfbca.bcccebd",
|
||||
"com.chwl.core.im.chatterbox.bean" : "dfdefbe.fedadcf",
|
||||
"com.chwl.core.im.chatterbox" : "ffdffe.ccecbfc",
|
||||
"com.chwl.core.im.avroom" : "bcafa.eadbc",
|
||||
"com.chwl.core.im" : "dffa.ebaa",
|
||||
"com.chwl.core.home.model" : "ffdbfa.ddcfcea",
|
||||
"com.chwl.core.home.event" : "dfbbd.cefeaf",
|
||||
"com.chwl.core.home.bean" : "accd.bbdff",
|
||||
"com.chwl.core.home" : "bccfeaf.fbdedea",
|
||||
"com.chwl.core.helper" : "fcddab.afabccd",
|
||||
"com.chwl.core.gift.toolbox" : "bcbed.ffcdaf",
|
||||
"com.chwl.core.gift.exception" : "beccc.cccee",
|
||||
"com.chwl.core.gift.event" : "ccde.faea",
|
||||
"com.chwl.core.gift.bean" : "ebbffdf.beebece",
|
||||
"com.chwl.core.gift" : "dbbcc.dbceee",
|
||||
"com.chwl.core.file" : "ccafedb.bddaadf",
|
||||
"com.chwl.core.fansteam.bean" : "fcfdaa.edabfab",
|
||||
"com.chwl.core.fansteam" : "adbfd.adeecd",
|
||||
"com.chwl.core.family.model" : "bbcedbab.caaefbfb",
|
||||
"com.chwl.core.family.event" : "efa.edde",
|
||||
"com.chwl.core.family.bean.response.moneyManagement" : "afbba.abdcd",
|
||||
"com.chwl.core.family.bean.response.memberList" : "dbcce.ecaeff",
|
||||
"com.chwl.core.family.bean.response.familyPlaza" : "fbbcdb.ddfadba",
|
||||
"com.chwl.core.family.bean.response" : "bbecb.daedaf",
|
||||
"com.chwl.core.family.bean" : "cdade.adeda",
|
||||
"com.chwl.core.exception" : "eeceaead.ceacebbe",
|
||||
"com.chwl.core.earn.model" : "ffebb.edbcaf",
|
||||
"com.chwl.core.earn.bean" : "bbcabbb.dcabfcd",
|
||||
"com.chwl.core.decoration.nameplate.bean" : "cfadf.caddb",
|
||||
"com.chwl.core.decoration.nameplate" : "cbddeb.bebdcc",
|
||||
"com.chwl.core.decoration.headwear.throwable" : "bebcb.aefce",
|
||||
"com.chwl.core.decoration.headwear.bean" : "bdbabbdc.ffafceeac",
|
||||
"com.chwl.core.decoration.headwear" : "cbcebdb.bdebbebd",
|
||||
"com.chwl.core.decoration.car.bean" : "ccbd.abca",
|
||||
"com.chwl.core.decoration.car" : "ebdefd.befcae",
|
||||
"com.chwl.core.decoration.bean" : "fbeebae.ebcadebe",
|
||||
"com.chwl.core.decoration.backgroud.bean" : "aaecbd.bfafacd",
|
||||
"com.chwl.core.decoration.backgroud" : "ecabbc.ccafec",
|
||||
"com.chwl.core.decoration" : "babeeeb.ecbaceee",
|
||||
"com.chwl.core.contacts" : "becea.cccca",
|
||||
"com.chwl.core.community" : "fcefbba.abbefae",
|
||||
"com.chwl.core.channel" : "ccb.fcf",
|
||||
"com.chwl.core.certification.event" : "ceecd.bebccf",
|
||||
"com.chwl.core.certification" : "fafbaf.febcecf",
|
||||
"com.chwl.core.bills.result" : "defceb.bddedaa",
|
||||
"com.chwl.core.bills.bean" : "fcef.caffe",
|
||||
"com.chwl.core.bills" : "ebcfbec.defbbcbc",
|
||||
"com.chwl.core.bean.response.result" : "decd.efffc",
|
||||
"com.chwl.core.bean.response" : "cdfaac.caaeba",
|
||||
"com.chwl.core.bean.attachmsg" : "fdab.dbaad",
|
||||
"com.chwl.core.bean" : "dbcdb.edafab",
|
||||
"com.chwl.core.base" : "eadbead.cefeacdf",
|
||||
"com.chwl.core.auth.exception" : "bfcced.baedbeb",
|
||||
"com.chwl.core.auth.event" : "ddcbacef.ebcaacba",
|
||||
"com.chwl.core.auth.entity" : "cfeaf.ddccec",
|
||||
"com.chwl.core.auth" : "debfc.deefa",
|
||||
"com.chwl.core.audio.event" : "edfdda.fdabdf",
|
||||
"com.chwl.core.audio.bean" : "feacbcff.edcaafbbb",
|
||||
"com.chwl.core.audio" : "eeaca.ebabbb",
|
||||
"com.chwl.core.association.model" : "eacfeca.adcbbfa",
|
||||
"com.chwl.core.association.bean" : "ebdeaeb.dbccefdb",
|
||||
"com.chwl.core.activity.model" : "debbcfdb.edbdfdeaf",
|
||||
"com.chwl.core.activity.event" : "cfaafeb.ffdedef",
|
||||
"com.chwl.core.activity.bean" : "feacdf.cefdbd",
|
||||
"com.chwl.core" : "dddeaae.cfddfded",
|
||||
"com.chwl.app.sadmin.utils" : "cccafa.feaeab",
|
||||
"com.chwl.app.sadmin" : "accdab.baeeaee",
|
||||
"com.chwl.app.room_chat.utils" : "ebdddaa.feeeabb",
|
||||
"com.chwl.app.room_chat.fragment" : "afeccfe.dcfbfca",
|
||||
"com.chwl.app.room_chat.event" : "cebb.fcbd",
|
||||
"com.chwl.app.room_chat.adapter" : "baad.cfcfa",
|
||||
"com.chwl.app.room_chat.activity" : "eaaadcc.ebdbede",
|
||||
"com.chwl.app.room_chat" : "cdfaf.eceabb",
|
||||
"com.chwl.app.music.widget" : "fadfedef.abeacebff",
|
||||
"com.chwl.app.music.presenter" : "cdfa.baab",
|
||||
"com.chwl.app.music.fragment" : "edfcdf.aabfdc",
|
||||
"com.chwl.app.music.adapter" : "fadcdbbe.cebcdaae",
|
||||
"com.chwl.app.music.activity" : "baddf.dbacfa",
|
||||
"com.chwl.app.module_hall.viewmodel" : "fddae.dbafab",
|
||||
"com.chwl.app.module_hall.team.view.widget" : "fecfabd.ffecdfb",
|
||||
"com.chwl.app.module_hall.team.view" : "fead.fecfb",
|
||||
"com.chwl.app.module_hall.team.presenter" : "edbfcf.eddebd",
|
||||
"com.chwl.app.module_hall.team.adapter" : "dceeca.cabfcb",
|
||||
"com.chwl.app.module_hall.team.activity" : "bdefdae.dbdbbbeb",
|
||||
"com.chwl.app.module_hall.team" : "acfaacfd.aaddcbfed",
|
||||
"com.chwl.app.module_hall.secretcode" : "eaafad.ebbdfca",
|
||||
"com.chwl.app.module_hall.income.view" : "eefbddf.bebcebcf",
|
||||
"com.chwl.app.module_hall.income.presenter" : "afbba.afcffb",
|
||||
"com.chwl.app.module_hall.income.adapter" : "eabcac.bebbec",
|
||||
"com.chwl.app.module_hall.income" : "acaede.cfecbe",
|
||||
"com.chwl.app.module_hall.im.msgholder" : "decfc.acfca",
|
||||
"com.chwl.app.module_hall.im.dialog" : "caca.dcdfa",
|
||||
"com.chwl.app.module_hall.im" : "ebfceeb.dcaaedfe",
|
||||
"com.chwl.app.module_hall.hall.view.indicator" : "bcdebe.cceeae",
|
||||
"com.chwl.app.module_hall.hall.view.dialog" : "beffcef.ddaebdd",
|
||||
"com.chwl.app.module_hall.hall.view" : "efbe.ccbe",
|
||||
"com.chwl.app.module_hall.hall.presenter" : "bbebecb.bdacbefa",
|
||||
"com.chwl.app.module_hall.hall.fragment" : "dffdae.dbaeadb",
|
||||
"com.chwl.app.module_hall.hall.adapter" : "badadbfc.feddfdcae",
|
||||
"com.chwl.app.module_hall.hall.activity" : "bdcdd.aaccc",
|
||||
"com.chwl.app.module_hall" : "aedebf.dbedcab",
|
||||
"com.chwl.app.bank_card.presenter" : "fcefbfa.bbabedeb",
|
||||
"com.chwl.app.bank_card.adapter" : "ecdae.feffda",
|
||||
"com.chwl.app.bank_card.activity" : "baaebb.adacabb",
|
||||
"com.chwl.app.bank_card" : "afdfbbee.acccbcafe",
|
||||
"com.example.matisse.widget" : "fafdc.ccdcea",
|
||||
"com.example.matisse.ui" : "bddeecdf.daebcbca",
|
||||
"com.example.matisse.listener" : "fdeec.edddcc",
|
||||
"com.example.matisse.internal.utils" : "daadd.dccbda",
|
||||
"com.example.matisse.internal.ui.widget" : "feebb.dcbfa",
|
||||
"com.example.matisse.internal.ui.adapter" : "dcaaa.cabef",
|
||||
"com.example.matisse.internal.ui" : "cabaff.aababab",
|
||||
"com.example.matisse.internal.model" : "cdadc.cccccd",
|
||||
"com.example.matisse.internal.loader" : "bcbcac.cfecdb",
|
||||
"com.example.matisse.internal.entity" : "fecfdeeae.aefaabccf",
|
||||
"com.example.matisse.filter" : "aabfe.eacfa",
|
||||
"com.example.matisse.engine.impl" : "debe.ddbed",
|
||||
"com.example.matisse.engine" : "bfcfa.aabec",
|
||||
"com.example.matisse" : "badbf.fadfea",
|
||||
"com.jph.takephoto.uitl" : "fbbaffa.faecdbe",
|
||||
"com.jph.takephoto.permission" : "accbfce.fccdabb",
|
||||
"com.jph.takephoto.model" : "afbfaa.afcdcd",
|
||||
"com.jph.takephoto.compress" : "aecbcaf.acdbabae",
|
||||
"com.jph.takephoto.app" : "edeebee.fefabfb",
|
||||
"com.chwl.app.vip.view" : "ecad.baecf",
|
||||
"com.chwl.app.vip.util" : "bcfe.ccaa",
|
||||
"com.chwl.app.vip.dialog" : "cafded.caafcba",
|
||||
"com.chwl.app.vip.bean" : "efbbc.adeda",
|
||||
"com.chwl.app.vip.adapter" : "dceeffbc.eaffbcfd",
|
||||
"com.chwl.app.vip" : "abaeec.bdedac",
|
||||
"com.chwl.app.view.layoutmanager" : "fabcc.cffdbf",
|
||||
"com.chwl.app.view" : "cabdb.accfda",
|
||||
"com.chwl.app.utils" : "bcead.dfdbfb",
|
||||
"com.chwl.app.ui.widget.viewpager" : "cbffcedc.ceeebada",
|
||||
"com.chwl.app.ui.widget.rollviewpager.hintview" : "eedaced.ccaeddd",
|
||||
"com.chwl.app.ui.widget.rollviewpager.adapter" : "bdeeebd.aaacacf",
|
||||
"com.chwl.app.ui.widget.rollviewpager" : "ebffacb.ecccaaf",
|
||||
"com.chwl.app.ui.widget.recyclerview.layoutmanager" : "faffb.bbcdba",
|
||||
"com.chwl.app.ui.widget.recyclerview.decoration" : "afbbfef.dbebefb",
|
||||
"com.chwl.app.ui.widget.password" : "cdbdc.cfcdde",
|
||||
"com.chwl.app.ui.widget.marqueeview" : "fe.cff",
|
||||
"com.chwl.app.ui.widget.magicindicator.ext" : "edcebdc.abcdfda",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.titles.badge" : "aefeb.bfcdf",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.titles" : "eacbbaf.edaceeb",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.model" : "afcebbb.bcbbaba",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.indicators" : "ddede.cbafa",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs" : "aebeae.dcddcfc",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator" : "acab.aaea",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins.circlenavigator" : "acdcf.aecead",
|
||||
"com.chwl.app.ui.widget.magicindicator.buildins" : "eaeaabd.ccbaeabc",
|
||||
"com.chwl.app.ui.widget.magicindicator.abs" : "beeadefa.cffedbfa",
|
||||
"com.chwl.app.ui.widget.magicindicator" : "deecdc.cefebd",
|
||||
"com.chwl.app.ui.widget.interfacex" : "afef.cbfae",
|
||||
"com.chwl.app.ui.widget.higuide" : "cfc.cefd",
|
||||
"com.chwl.app.ui.widget.dynamicface" : "bacace.febaea",
|
||||
"com.chwl.app.ui.widget.drawgift" : "cae.cbb",
|
||||
"com.chwl.app.ui.widget.dialog" : "bccfaa.eeedea",
|
||||
"com.chwl.app.ui.widget.bubble" : "fccea.caeaa",
|
||||
"com.chwl.app.ui.widget.XRecyclerView" : "cff.dfb",
|
||||
"com.chwl.app.ui.widget" : "efaded.babadae",
|
||||
"com.chwl.app.ui.webview.room_banner" : "cada.eecbe",
|
||||
"com.chwl.app.ui.webview.event" : "ffbbb.ceebbb",
|
||||
"com.chwl.app.ui.webview" : "aaadff.eebecc",
|
||||
"com.chwl.app.ui.wallet.adapter" : "deccfe.bcbbbe",
|
||||
"com.chwl.app.ui.utils.sys" : "dfcdebe.adfefffe",
|
||||
"com.chwl.app.ui.utils" : "dcbeeada.dfeedeab",
|
||||
"com.chwl.app.ui.user.viewmodel" : "fafab.bedbf",
|
||||
"com.chwl.app.ui.user.fragment" : "dcbf.bdefe",
|
||||
"com.chwl.app.ui.user.event" : "feea.afda",
|
||||
"com.chwl.app.ui.user.dialog" : "feeaaf.cdbbab",
|
||||
"com.chwl.app.ui.user.decorationsend" : "abfbeaad.badffeebd",
|
||||
"com.chwl.app.ui.user.adapter" : "bbdbd.acccbd",
|
||||
"com.chwl.app.ui.user.activity" : "cbce.cfaac",
|
||||
"com.chwl.app.ui.setting.viewmodel" : "bfafaedcc.fbdbadacae",
|
||||
"com.chwl.app.ui.setting.bean" : "bccd.dddee",
|
||||
"com.chwl.app.ui.setting.adapter" : "ffcaca.fbfaafc",
|
||||
"com.chwl.app.ui.setting" : "ecaccbb.beccadff",
|
||||
"com.chwl.app.ui.search.view" : "fdbeb.deffd",
|
||||
"com.chwl.app.ui.search.presenter" : "adcae.bcfdca",
|
||||
"com.chwl.app.ui.search.event" : "acfa.ffcb",
|
||||
"com.chwl.app.ui.search" : "ddbffcaa.ffbccbbe",
|
||||
"com.chwl.app.ui.relation.adapter" : "fdcecaf.eabaeaef",
|
||||
"com.chwl.app.ui.relation" : "bedfeb.eeedcfb",
|
||||
"com.chwl.app.ui.radish" : "ffbac.dfaec",
|
||||
"com.chwl.app.ui.praise.base" : "eacffed.bfaeded",
|
||||
"com.chwl.app.ui.praise" : "cdcbd.fbecf",
|
||||
"com.chwl.app.ui.pay" : "eaddab.fdfdafb",
|
||||
"com.chwl.app.ui.patriarch.help" : "dfcbd.cdcfcc",
|
||||
"com.chwl.app.ui.patriarch" : "dfdeaddb.dbbdcaee",
|
||||
"com.chwl.app.ui.login.ui" : "aaadcea.bdbfdaba",
|
||||
"com.chwl.app.ui.login.helper" : "defefbb.cbfaccae",
|
||||
"com.chwl.app.ui.login.fragment" : "dcfb.bfdce",
|
||||
"com.chwl.app.ui.login" : "fbdb.abea",
|
||||
"com.chwl.app.ui.list" : "afbeccf.eeadfbf",
|
||||
"com.chwl.app.ui.keepalive" : "aabffd.fbaccfa",
|
||||
"com.chwl.app.ui.indicator_impl" : "cead.ddea",
|
||||
"com.chwl.app.ui.im.recent.holder" : "bdcb.eedb",
|
||||
"com.chwl.app.ui.im.recent.adapter" : "eeefed.becfad",
|
||||
"com.chwl.app.ui.im.recent" : "dfaebff.aabdecc",
|
||||
"com.chwl.app.ui.im.model" : "cbafae.dbecfdc",
|
||||
"com.chwl.app.ui.im.friend" : "dbecb.ccfcda",
|
||||
"com.chwl.app.ui.im.fragment" : "fcfffef.cdaaffee",
|
||||
"com.chwl.app.ui.im.chat" : "cddcabe.afbdedeb",
|
||||
"com.chwl.app.ui.im.avtivity" : "bebec.afdec",
|
||||
"com.chwl.app.ui.im.audio" : "accfdc.cdcbfac",
|
||||
"com.chwl.app.ui.im.actions" : "feefed.becfccf",
|
||||
"com.chwl.app.ui.im" : "beafbfbeb.dedfbbdbcb",
|
||||
"com.chwl.app.ui.gift.widget" : "bfaeacf.aabcdbfa",
|
||||
"com.chwl.app.ui.gift.util" : "deacecd.addbcee",
|
||||
"com.chwl.app.ui.gift.gif" : "befcb.affcf",
|
||||
"com.chwl.app.ui.gift.dialog" : "dccddf.bfcedeb",
|
||||
"com.chwl.app.ui.gift.callback" : "dceed.febbe",
|
||||
"com.chwl.app.ui.gift.adapter" : "eceedadb.dcfbbfdec",
|
||||
"com.chwl.app.ui.behavior" : "ccdfda.debfad",
|
||||
"com.chwl.app.ui.bean" : "faafdf.cefbbcb",
|
||||
"com.chwl.app.ui.anim" : "bacee.daccf",
|
||||
"com.chwl.app.ui.adapter" : "bdbce.adbdfc",
|
||||
"com.chwl.app.team.viewmodel" : "bfeace.ffbefff",
|
||||
"com.chwl.app.team.view" : "caead.eedace",
|
||||
"com.chwl.app.team.event" : "cacdecf.ddebcbd",
|
||||
"com.chwl.app.team.dialog" : "fdfcfc.aafcdc",
|
||||
"com.chwl.app.team.bean" : "fcebb.eebee",
|
||||
"com.chwl.app.team.adapter" : "bfddccfa.eadeaddae",
|
||||
"com.chwl.app.sys" : "cbebab.dacbed",
|
||||
"com.chwl.app.support" : "bdbeedc.fcdfcfa",
|
||||
"com.chwl.app.star" : "bffcec.cebfbb",
|
||||
"com.chwl.app.skill.widget" : "daeec.fdbbfb",
|
||||
"com.chwl.app.skill.repository" : "bbcdaeca.dcfbfcfbe",
|
||||
"com.chwl.app.skill.dialog" : "aedad.fefbab",
|
||||
"com.chwl.app.skill.decoration" : "bbeee.feabad",
|
||||
"com.chwl.app.skill.adapter" : "eeababfbe.accdfbdbd",
|
||||
"com.chwl.app.skill.activity" : "ebceceb.facbeebc",
|
||||
"com.chwl.app.skill" : "bfbacc.eabfde",
|
||||
"com.chwl.app.share.viewholder" : "dcdaef.bbcdfa",
|
||||
"com.chwl.app.share" : "bad.fabf",
|
||||
"com.chwl.app.service" : "ddacadb.abafdaa",
|
||||
"com.chwl.app.relation.extention" : "caedcc.deceffc",
|
||||
"com.chwl.app.relation.cp.widget" : "cefecca.adfcdaf",
|
||||
"com.chwl.app.relation.cp.viewmodel" : "bcabafedc.ccbfeeada",
|
||||
"com.chwl.app.relation.cp.model" : "ccfafe.fbdbaec",
|
||||
"com.chwl.app.relation.cp.fragment" : "bceb.dadfb",
|
||||
"com.chwl.app.relation.cp.dialog" : "fbceea.cefbefb",
|
||||
"com.chwl.app.relation.cp.adapter" : "abccbf.eaacbd",
|
||||
"com.chwl.app.relation.cp.activity" : "efaeff.aececca",
|
||||
"com.chwl.app.relation.cp" : "eabafed.efacabe",
|
||||
"com.chwl.app.reciever" : "cca.cba",
|
||||
"com.chwl.app.radish.widget" : "ffbea.aaddd",
|
||||
"com.chwl.app.radish.wallet" : "efeedaeccc.cfcaeacafa",
|
||||
"com.chwl.app.radish.view" : "becee.bcfeee",
|
||||
"com.chwl.app.radish.task.view" : "faaee.afbce",
|
||||
"com.chwl.app.radish.task.presenter" : "faedd.eecbcd",
|
||||
"com.chwl.app.radish.task.fragment" : "abfacfbc.deefaddda",
|
||||
"com.chwl.app.radish.task.adpter" : "bbdadbc.bcdcddbc",
|
||||
"com.chwl.app.radish.task.activity" : "dceccff.aafdfebc",
|
||||
"com.chwl.app.radish.presenter" : "acaecc.eaeddf",
|
||||
"com.chwl.app.radish.helper" : "faaeb.fffedc",
|
||||
"com.chwl.app.radish.adapter" : "fcfbbe.ddeecf",
|
||||
"com.chwl.app.radish.activity" : "bdfffab.dffcdfbf",
|
||||
"com.chwl.app.photo" : "eecccd.bfdbfcc",
|
||||
"com.chwl.app.pay.view" : "eacfaa.fbeaac",
|
||||
"com.chwl.app.pay.presenter" : "afceab.feabbff",
|
||||
"com.chwl.app.other.view" : "ddacd.cdbfca",
|
||||
"com.chwl.app.other.present" : "bbddcabe.bebbbdae",
|
||||
"com.chwl.app.other.dialog" : "cedb.bdeeb",
|
||||
"com.chwl.app.other.activity" : "e.ba",
|
||||
"com.chwl.app.other" : "faedfe.fabffda",
|
||||
"com.chwl.app.monsterhunting.bean" : "cedec.faddde",
|
||||
"com.chwl.app.monsterhunting" : "fbabff.dbfeac",
|
||||
"com.chwl.app.module" : "efdfeaf.efcddef",
|
||||
"com.chwl.app.luckymoney.viewholder" : "dfedf.eedab",
|
||||
"com.chwl.app.luckymoney.view" : "ddaddcd.caccbde",
|
||||
"com.chwl.app.luckymoney.dialog" : "ffecde.ebbcfef",
|
||||
"com.chwl.app.luckymoney.adapter" : "efeefc.eccdbf",
|
||||
"com.chwl.app.home.widget" : "dfaafb.fcdcae",
|
||||
"com.chwl.app.home.view" : "edfeb.efbcb",
|
||||
"com.chwl.app.home.refresh" : "cfadbacde.cfaedfcccf",
|
||||
"com.chwl.app.home.presenter" : "bdfece.fbefff",
|
||||
"com.chwl.app.home.helper" : "fadcf.dfbdfa",
|
||||
"com.chwl.app.home.fragment" : "beffafaea.aaccfbeab",
|
||||
"com.chwl.app.home.event" : "aadff.cfbdd",
|
||||
"com.chwl.app.home.dialog" : "bfbfb.ccacbc",
|
||||
"com.chwl.app.home.adapter" : "dcaaa.bacefa",
|
||||
"com.chwl.app.home.activity" : "cbafdaea.dabbbcef",
|
||||
"com.chwl.app.home" : "facc.ffdec",
|
||||
"com.chwl.app.guide" : "bafbbace.feffabda",
|
||||
"com.chwl.app.friend.view" : "dabb.cedce",
|
||||
"com.chwl.app.friend.action" : "deeead.dfedfad",
|
||||
"com.chwl.app.friend" : "bfddd.dfdef",
|
||||
"com.chwl.app.fansteam" : "eabdedaed.cfeadaacfe",
|
||||
"com.chwl.app.event" : "bdff.bafcc",
|
||||
"com.chwl.app.earn.adapter" : "dbddedf.cecfafa",
|
||||
"com.chwl.app.earn.activity" : "aedee.bcdadb",
|
||||
"com.chwl.app.earn" : "ffdbec.afddefd",
|
||||
"com.chwl.app.decoration.viewmodel" : "dccaca.cbaaeea",
|
||||
"com.chwl.app.decoration.view.widgets" : "dafde.edfde",
|
||||
"com.chwl.app.decoration.view" : "affeefb.cddaaab",
|
||||
"com.chwl.app.decoration.helper" : "bdbfa.aeccba",
|
||||
"com.chwl.app.decoration.adapter" : "ebbd.edae",
|
||||
"com.chwl.app.constants" : "ddeeea.cbabbd",
|
||||
"com.chwl.app.common.widget.dialog" : "adbbdfcb.abacbeeb",
|
||||
"com.chwl.app.common.widget" : "cdcbfd.cdcdaad",
|
||||
"com.chwl.app.common.util" : "bcaabadbafe.cbdddabbbcfd",
|
||||
"com.chwl.app.common.svga" : "dedde.effdb",
|
||||
"com.chwl.app.common.server" : "abbadac.adcefdc",
|
||||
"com.chwl.app.common.photo" : "bceefea.bcefcab",
|
||||
"com.chwl.app.common.permission" : "acfda.dfeeab",
|
||||
"com.chwl.app.common.dialog" : "deaeba.ffcaae",
|
||||
"com.chwl.app.common.app" : "dbcedb.cccffe",
|
||||
"com.chwl.app.common" : "cbaca.adadbb",
|
||||
"com.chwl.app.bindadapter" : "bacefd.cdbedf",
|
||||
"com.chwl.app.bills.widget" : "cdcfbd.fcadcaa",
|
||||
"com.chwl.app.bills.view" : "cda.aedf",
|
||||
"com.chwl.app.bills.presenter" : "bcbdbd.cfaccfd",
|
||||
"com.chwl.app.bills.fragmemt" : "baffeb.dedcfc",
|
||||
"com.chwl.app.bills.event" : "bdacea.effdae",
|
||||
"com.chwl.app.bills.adapter" : "dffcceeb.cfbbbddde",
|
||||
"com.chwl.app.bills.activities" : "ffaf.eadaa",
|
||||
"com.chwl.app.base.list" : "dffcde.efbadaa",
|
||||
"com.chwl.app.base" : "aedbb.fbfebd",
|
||||
"com.chwl.app.avroom.widget" : "caeddfb.efcaeecd",
|
||||
"com.chwl.app.avroom.view" : "bbaff.dbaabe",
|
||||
"com.chwl.app.avroom.singleroompk" : "bbadb.dbabde",
|
||||
"com.chwl.app.avroom.room_album" : "fffc.cdafe",
|
||||
"com.chwl.app.avroom.recommendcard" : "aaefc.cffadd",
|
||||
"com.chwl.app.avroom.rank" : "edadcb.beeaca",
|
||||
"com.chwl.app.avroom.presenter" : "dddee.cfdea",
|
||||
"com.chwl.app.avroom.newuserchargegift" : "bbfcc.bdbbb",
|
||||
"com.chwl.app.avroom.helper" : "bcfbb.dffeae",
|
||||
"com.chwl.app.avroom.giftvalue" : "acfcd.fbbcdd",
|
||||
"com.chwl.app.avroom.fragment" : "beefbb.fbcafec",
|
||||
"com.chwl.app.avroom.dialog" : "abbcea.ceadbc",
|
||||
"com.chwl.app.avroom.core" : "fbebb.bdbebf",
|
||||
"com.chwl.app.avroom.bean" : "affae.fcdff",
|
||||
"com.chwl.app.avroom.anotherroompk" : "bbdba.edbbe",
|
||||
"com.chwl.app.avroom.adapter" : "bffc.bbcd",
|
||||
"com.chwl.app.avroom.activity" : "dccdfed.ccdfdde",
|
||||
"com.chwl.app.avroom" : "bfedffaa.adfffbef",
|
||||
"com.chwl.app.audio.widget" : "bfcafa.fbbfdb",
|
||||
"com.chwl.app.audio.viewmodel" : "bdfe.bfccf",
|
||||
"com.chwl.app.audio.view" : "abdfdcc.bbcaebb",
|
||||
"com.chwl.app.audio.presenter" : "aeef.cbbaf",
|
||||
"com.chwl.app.audio.helper" : "cfeb.ebade",
|
||||
"com.chwl.app.audio.adapter" : "ddeceecf.dddcbccf",
|
||||
"com.chwl.app.audio" : "cdedecf.fbddecef",
|
||||
"com.chwl.app.application" : "cfd.ccae",
|
||||
"com.chwl.app" : "cfdd.baac",
|
||||
]
|
||||
|
||||
}
|
158
app/proguard-rules.pro
vendored
158
app/proguard-rules.pro
vendored
@@ -481,4 +481,160 @@
|
||||
|
||||
-keep public class com.alibaba.android.arouter.routes.**{*;}
|
||||
-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{*;}
|
||||
|
||||
|
||||
#new after proguard
|
||||
-dontwarn bdcb.eedb.**
|
||||
-keep class bdcb.eedb.** {*;}
|
||||
-keep class cddcabe.afbdedeb.** {*;}
|
||||
-keep class dfedf.eedab.** {*;}
|
||||
-keep class dcdaef.bbcdfa.** {*;}
|
||||
-keep class com.chwl.app.public_chat_hall.msg.viewholder.** {*;}
|
||||
-keep class decfc.acfca.** {*;}
|
||||
-keep class com.chwl.app.mentoring_relationship.viewholder.** {*;}
|
||||
-keep class b.** { *; }
|
||||
-keep class cb.** { *; }
|
||||
-keep public class * extends b.NP
|
||||
-keep public class * extends ddbfbdf.acbaddc.AbstractMvpPresenter
|
||||
-dontwarn bacefd.cdbedf.**
|
||||
-keep class bacefd.cdbedf.** {*;}
|
||||
-keep class f.DG{*;}
|
||||
-keep class bf.CA{*;}
|
||||
-keep class q.Y {*;}
|
||||
|
||||
-keep class bacccfc.abbadfec.** { *; }
|
||||
-keep class edecfbdbb.fbdcbfaaed.** { *; }
|
||||
-keep class bbfeef.fdaefba.** { *; }
|
||||
-keep class cfeefddf.daadadef.** { *; }
|
||||
-keep class eadfab.aaffafa.** { *; }
|
||||
-keep class cbbfdd.fdbaab.** { *; }
|
||||
-keep class fcffbcef.cbefeefa.** { *; }
|
||||
-keep class bbacbff.ecbddeb.** { *; }
|
||||
-keep class ebbbf.bfcbc.** { *; }
|
||||
-keep class afbfbfd.dffbcec.** { *; }
|
||||
-keep class el.** {*;}
|
||||
-keep class baf.edaf.** { *; }
|
||||
-keep class daddbf.cebdcdd.** { *; }
|
||||
-keep class adecece.cdedecc.** { *; }
|
||||
|
||||
-keep class fbbaffa.faecdbe.** { *; }
|
||||
-keep class accbfce.fccdabb.** { *; }
|
||||
-keep class afbfaa.afcdcd.** { *; }
|
||||
-keep class aecbcaf.acdbabae.** { *; }
|
||||
-keep class edeebee.fefabfb.** { *; }
|
||||
-dontwarn fbbaffa.faecdbe.**
|
||||
-dontwarn accbfce.fccdabb.**
|
||||
-dontwarn afbfaa.afcdcd.**
|
||||
-dontwarn aecbcaf.acdbabae.**
|
||||
-dontwarn edeebee.fefabfb.**
|
||||
|
||||
-keep class cp.** { *; }
|
||||
-dontwarn cp.**
|
||||
-keep public class * extends com.netease.nim.uikit.common.ui.recyclerview.holder.RecyclerViewHolder {*;}
|
||||
-keep public class * extends com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase {*;}
|
||||
|
||||
-keep class aea.baaf.** { *; }
|
||||
-keep class ddfb.edcab.** { *; }
|
||||
-keep class aeaaa.dedad.** { *; }
|
||||
-keep class acbfad.dcbefe.** { *; }
|
||||
-keep class deafc.bebac.** { *; }
|
||||
-keep class ffbe.bdac.** { *; }
|
||||
-keep class eaedcce.eebdfabf.** { *; }
|
||||
-keep class edcbb.bcfca.** { *; }
|
||||
-keep class ffdab.eabbd.** { *; }
|
||||
-keep class fcfc.debbb.** { *; }
|
||||
-keep class bfbcaedcbf.fddedfaafe.** { *; }
|
||||
-keep class eacfafb.adbcafda.** { *; }
|
||||
-keep class aedfcaaf.cdfbbcce.** { *; }
|
||||
-keep class bbcf.abac.** { *; }
|
||||
-keep class edfea.cddcb.** { *; }
|
||||
-keep class ccaad.bddfa.** { *; }
|
||||
-keep class aaffcba.daeefdac.** { *; }
|
||||
-keep class cbcdae.acdabfe.** { *; }
|
||||
-keep class eedbaeb.defbdfae.** { *; }
|
||||
-keep class cfeddda.aafffbc.** { *; }
|
||||
-keep class y.** {*;}
|
||||
-keep class eaffcdbc.daeffdba.** { *; }
|
||||
-keep class bfbdcd.fafefd.** { *; }
|
||||
-keep class ba.** {*;}
|
||||
-keep class aceac.ecabfe.** { *; }
|
||||
-keep class cdccdab.ebdbacb.** { *; }
|
||||
-keep class bababbc.cecaffca.** { *; }
|
||||
-keep class edbce.fdbbbc.** { *; }
|
||||
-keep class dfaabac.aabbefcc.** { *; }
|
||||
-keep class edccdc.abfbfcc.** { *; }
|
||||
-keep class eebfd.aaccca.** { *; }
|
||||
-keep class ecaed.eebace.** { *; }
|
||||
-keep class cfeee.cdeea.** { *; }
|
||||
-keep class afb.eaca.** { *; }
|
||||
-keep class bdebccd.fbfaecdb.** { *; }
|
||||
-keep class eacfafb.aadfdcee.** { *; }
|
||||
-keep class bceba.bbfce.** { *; }
|
||||
-keep class cd.** {*;}
|
||||
-keep class fddadcc.fbdbaaa.** { *; }
|
||||
-keep class bdabfb.aecccbc.** { *; }
|
||||
-keep class g.** {*;}
|
||||
-keep class edbaad.bbdcdfc.** { *; }
|
||||
-keep class acdfe.ebeaed.** { *; }
|
||||
-keep class fabffdc.ffcdadbe.** { *; }
|
||||
-keep class abbefdab.daeaadad.** { *; }
|
||||
-keep class def.cff.** { *; }
|
||||
-keep class fbefaae.fddefebe.** { *; }
|
||||
-keep class fbdfcae.fefbfee.** { *; }
|
||||
-keep class dfefd.bacabc.** { *; }
|
||||
-keep class ffedae.acfcdbb.** { *; }
|
||||
-keep class ddeeb.bdcdf.** { *; }
|
||||
-keep class dcabc.bbdaea.** { *; }
|
||||
-keep class adbaee.fffffc.** { *; }
|
||||
-keep class bb.** {*;}
|
||||
-keep class fffba.cdbfee.** { *; }
|
||||
-keep class cbeee.efcdfb.** { *; }
|
||||
-keep class cdaabd.cfabfca.** { *; }
|
||||
-keep class dbeef.acefca.** { *; }
|
||||
-keep class edbabbab.acdccacc.** { *; }
|
||||
-keep class dedfdbd.ebffbcba.** { *; }
|
||||
-keep class dfdefbe.fedadcf.** { *; }
|
||||
-keep class accd.bbdff.** { *; }
|
||||
-keep class u.** {*;}
|
||||
-keep class ebbffdf.beebece.** { *; }
|
||||
-keep class fcfdaa.edabfab.** { *; }
|
||||
-keep class afbba.abdcd.** { *; }
|
||||
-keep class dbcce.ecaeff.** { *; }
|
||||
-keep class fbbcdb.ddfadba.** { *; }
|
||||
-keep class bbecb.daedaf.** { *; }
|
||||
-keep class cdade.adeda.** { *; }
|
||||
-keep class bg.** {*;}
|
||||
-keep class bbcabbb.dcabfcd.** { *; }
|
||||
-keep class cfadf.caddb.** { *; }
|
||||
-keep class bdbabbdc.ffafceeac.** { *; }
|
||||
-keep class bd.** {*;}
|
||||
-keep class ccbd.abca.** { *; }
|
||||
-keep class j.** {*;}
|
||||
-keep class fbeebae.ebcadebe.** { *; }
|
||||
-keep class aaecbd.bfafacd.** { *; }
|
||||
-keep class fcef.caffe.** { *; }
|
||||
-keep class decd.efffc.** { *; }
|
||||
-keep class cdfaac.caaeba.** { *; }
|
||||
-keep class fdab.dbaad.** { *; }
|
||||
-keep class dbcdb.edafab.** { *; }
|
||||
-keep class feacbcff.edcaafbbb.** { *; }
|
||||
-keep class ebdeaeb.dbccefdb.** { *; }
|
||||
-keep class feacdf.cefdbd.** { *; }
|
||||
-keep class efbbc.adeda.** { *; }
|
||||
-keep class bccd.dddee.** { *; }
|
||||
-keep class faafdf.cefbbcb.** { *; }
|
||||
-keep class fcebb.eebee.** { *; }
|
||||
-keep class cedec.faddde.** { *; }
|
||||
-keep class affae.fcdff.** { *; }
|
||||
|
||||
-keep class eecdc.cddbfa.** { *; }
|
||||
-keep class fddd.dbae.** { *; }
|
||||
-keep class defceb.bddedaa.** { *; }
|
||||
-keep class decd.efffc.** { *; }
|
||||
|
||||
-keep class bbfeef.fdaefba.** { *; }
|
||||
-keep class baf.edaf.** { *; }
|
||||
-keep class acdb.aacb.** { *; }
|
||||
-keep class bacfcf.dddbef.** { *; }
|
||||
-keep class cfeaf.ddccec.** { *; }
|
@@ -127,6 +127,24 @@
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.link.LinkActivity"
|
||||
android:configChanges="orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/transparent_activity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<data
|
||||
android:host="app"
|
||||
android:scheme="molistar" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="firebase_crashlytics_collection_enabled"-->
|
||||
<!-- android:value="${CRASHLYTICS_COLLECTION_ENABLED}" /> <!– 刘海屏适配 begin –>-->
|
||||
@@ -162,7 +180,7 @@
|
||||
如果 SDKOptions 中提供了,取 SDKOptions 中的值。
|
||||
-->
|
||||
<!-- <activity-->
|
||||
<!-- android:name="app.hiyoo.fun.lineapi.LineAuthenticationCallbackActivity"-->
|
||||
<!-- android:name="app.molistar.fun.lineapi.LineAuthenticationCallbackActivity"-->
|
||||
<!-- android:exported="true"-->
|
||||
<!-- android:launchMode="singleTask"-->
|
||||
<!-- android:noHistory="true">-->
|
||||
@@ -223,7 +241,7 @@
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize"
|
||||
android:label="Hiyoo"
|
||||
android:label="MoliStar"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustPan|stateAlwaysHidden" /> <!-- 配置的service和receiver -->
|
||||
@@ -303,10 +321,6 @@
|
||||
android:name=".home.activity.CollectionRoomActivity"
|
||||
android:label="@string/main_androidmanifest_019"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.wallet.ExchangeGoldActivity"
|
||||
android:label="@string/main_androidmanifest_020"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.setting.SettingActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -316,18 +330,6 @@
|
||||
<activity
|
||||
android:name=".ui.relation.FansListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.withdraw.WithdrawActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.withdraw.bankcard.BindWithdrawBankCardActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.withdraw.WithdrawRuleActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.withdraw.BinderAlipayActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.user.activity.AboutActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -404,10 +406,6 @@
|
||||
android:name=".decoration.view.MyDecorationActivity"
|
||||
android:label="@string/main_androidmanifest_027"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".decoration.view.DecorationStoreActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".ui.user.activity.UserGiftActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -416,42 +414,6 @@
|
||||
android:name=".friend.view.SelectFriendActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyPlazaActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyHomeActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilySearchActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyListActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyManageActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyCurrencyActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyMemberListActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyInfoActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyMemberSearchActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".team.view.NimTeamMessageActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -496,10 +458,6 @@
|
||||
android:name=".luckymoney.view.LuckyMoneyDetailActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- android:launchMode="singleTask" -->
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyMemberCurrencyActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".ErbanTakePhotoActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -509,17 +467,14 @@
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilySelectFriendActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
android:name=".treasure_box.activity.TreasureBoxActivity"
|
||||
android:theme="@style/transparent_activity" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyTextInputActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
android:name=".treasure_box.activity.BoxRankingActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyGameListActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
android:name=".treasure_box.activity.TreasureBoxHonourActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
<activity android:name=".ui.setting.VerifyPhoneActivity" />
|
||||
<activity android:name=".ui.setting.ModifyPwdActivity" />
|
||||
<activity
|
||||
@@ -531,17 +486,6 @@
|
||||
android:name=".ui.widget.RecallDialog"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/dialog_activity_close_inside" />
|
||||
<activity
|
||||
android:name=".public_chat_hall.activity.PublicChatHallHomeActivity"
|
||||
android:configChanges="keyboardHidden|orientation"
|
||||
android:label="@string/main_androidmanifest_028"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".public_chat_hall.activity.PublicChatHallAitFriendsActivity"
|
||||
android:configChanges="keyboardHidden|orientation"
|
||||
android:label="@string/main_androidmanifest_029"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.user.decorationsend.DecorationSendActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -552,14 +496,6 @@
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomOnlineUserActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".public_chat_hall.activity.PublicChatHallRelatedToMeActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".public_chat_hall.activity.AitFriendsSearchActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".ui.login.ShowBindPhoneActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -625,9 +561,6 @@
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.MemberSearchActivity"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".avroom.activity.CpRoomInviteActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.HallSearchActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -640,11 +573,6 @@
|
||||
<activity
|
||||
android:name=".module_hall.team.activity.HTeamMemberListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name="com.chwl.app.mentoring_relationship.activity.MentoringRelationshipActivity"
|
||||
android:label="@string/main_androidmanifest_030"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".avroom.recommendcard.MyRecommendCardActivity"
|
||||
android:launchMode="singleTask"
|
||||
@@ -655,12 +583,6 @@
|
||||
<activity
|
||||
android:name="com.chwl.app.room_chat.activity.RoomMsgActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name="com.chwl.app.room_chat.activity.RoomNewbieActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name="com.chwl.app.room_chat.activity.RoomNewbieMessageActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name="com.chwl.app.room_chat.activity.RoomInviteFansActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
@@ -678,9 +600,6 @@
|
||||
<activity
|
||||
android:name=".radish.activity.RadishRecordActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".radish.signin.SignInActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".radish.task.activity.TaskCenterActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -704,42 +623,6 @@
|
||||
<activity
|
||||
android:name=".audio.VoiceMatchActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldGuestPageActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 推荐位 -->
|
||||
<activity
|
||||
android:name=".miniworld.activity.TopicMainActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldEditActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldMemberListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldTeamMessageActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MWTeamRoomMessageAct"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldGroupThemeActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.AllTopicActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
|
||||
<!-- 萝卜-签到-任务 -->
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldSearchActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".miniworld.activity.MiniWorldMainActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity android:name=".ui.im.friend.ActFriendList" />
|
||||
<activity
|
||||
android:name=".bank_card.activity.BankCardListActivity"
|
||||
@@ -760,19 +643,10 @@
|
||||
android:name=".home.activity.CommunityNoticeAct"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".community.publish.view.PublishActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustNothing" />
|
||||
<activity
|
||||
android:name=".community.dynamic.view.DynamicDetailActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".community.photo.PreviewPhotoActivity"
|
||||
android:name=".photo.PreviewPhotoActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".community.photo.BigPhotoActivity"
|
||||
android:name=".photo.BigPhotoActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name="com.example.matisse.ui.MatisseActivity"
|
||||
@@ -783,41 +657,21 @@
|
||||
<activity
|
||||
android:name="com.example.matisse.internal.ui.SelectedPreviewActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
|
||||
<activity
|
||||
android:name=".ui.wallet.sendgold.SendGoldActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldDetailActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldToUserActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldSearchActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".ui.setting.PrivacySettingActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 银行卡列表 -->
|
||||
<activity
|
||||
android:name=".ui.setting.NoticeSettingActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 解除绑定银行卡 -->
|
||||
<activity
|
||||
android:name=".ui.login.LoginActivity"
|
||||
android:label="@string/main_androidmanifest_031"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait" /> <!-- 绑定银行卡 -->
|
||||
<activity
|
||||
android:name=".ui.webview.DialogWebViewActivity"
|
||||
android:theme="@style/dialog_web_view_activity"
|
||||
android:windowSoftInputMode="adjustPan" /> <!-- 隐私政策 -->
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".ui.webview.room_banner.RoomWebDialogActivity"
|
||||
android:theme="@style/room_dialog_web_view_activity"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<!-- 隐私政策 -->
|
||||
<activity
|
||||
android:name=".ui.webview.DatingRuleWebViewActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
@@ -830,6 +684,7 @@
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
<activity
|
||||
android:name=".ui.login.LoginPasswordActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait" /> <!-- 社区 -->
|
||||
<activity
|
||||
android:name=".ui.setting.ResetPasswordActivity"
|
||||
@@ -857,9 +712,6 @@
|
||||
android:name=".avroom.singleroompk.SingleRoomPKSearchActivity"
|
||||
android:theme="@style/dialog_web_view_activity"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".avroom.firstcharge.FirstChargeDialog"
|
||||
android:theme="@style/dialogactivity" />
|
||||
<activity
|
||||
android:name=".ui.setting.GrantedPermissionsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -899,21 +751,6 @@
|
||||
<activity
|
||||
android:name=".relation.cp.activity.CpInviteRecordActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".fansteam.FansTeamJoinActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
<activity
|
||||
android:name=".fansteam.FansTeamJoinedActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
<activity
|
||||
android:name=".fansteam.FansTeamListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".shipantics.PullRadishActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
<activity
|
||||
android:name=".shipantics.RadishRankingActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name=".AgentActivity"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
||||
@@ -933,11 +770,6 @@
|
||||
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".earn.activity.EarnWithdrawActivity"
|
||||
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" /> <!-- com.chwl.core.skill -->
|
||||
<activity
|
||||
android:name=".earn.activity.BindWithdrawMsgActivity"
|
||||
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||
@@ -968,11 +800,6 @@
|
||||
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.user.activity.EditUserLabelActivity"
|
||||
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||
android:exported="false"
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
<activity
|
||||
android:name=".ui.webview.FairyDialogWebViewActivity"
|
||||
@@ -1051,6 +878,8 @@
|
||||
|
||||
<activity android:name=".avroom.room_album.RoomAlbumActivity" />
|
||||
|
||||
<activity android:name=".ui.language.LanguageActivity" />
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
BIN
app/src/main/assets/mp4/home_star.mp4
Normal file
BIN
app/src/main/assets/mp4/home_star.mp4
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
app/src/main/assets/svga/bubble_tran_bg.svga
Normal file
BIN
app/src/main/assets/svga/bubble_tran_bg.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gold_box_bg.svga
Normal file
BIN
app/src/main/assets/svga/gold_box_bg.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/home_star_gift.svga
Normal file
BIN
app/src/main/assets/svga/home_star_gift.svga
Normal file
Binary file not shown.
Binary file not shown.
BIN
app/src/main/assets/svga/room_pk_pb_indicator.svga
Normal file
BIN
app/src/main/assets/svga/room_pk_pb_indicator.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/single_room_pk_pb_indicator.svga
Normal file
BIN
app/src/main/assets/svga/single_room_pk_pb_indicator.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/single_room_pk_vs.svga
Normal file
BIN
app/src/main/assets/svga/single_room_pk_vs.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/smash_eggs_open.svga
Normal file
BIN
app/src/main/assets/svga/smash_eggs_open.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/svga_voice_like_button.svga
Normal file
BIN
app/src/main/assets/svga/svga_voice_like_button.svga
Normal file
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
@@ -23,6 +23,8 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.chwl.app.star.StarFragment;
|
||||
import com.chwl.app.ui.login.LoginPasswordActivity;
|
||||
import com.chwl.core.settings.SettingsModel;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
@@ -38,7 +40,6 @@ import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
|
||||
import com.netease.nimlib.sdk.team.model.Team;
|
||||
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.chwl.app.upgrade.AppUpgradeHelper;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.chwl.app.application.IReportConstants;
|
||||
import com.chwl.app.application.ReportManager;
|
||||
@@ -47,9 +48,6 @@ import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.common.widget.CircleImageView;
|
||||
import com.chwl.app.common.widget.DragLayout;
|
||||
import com.chwl.app.community.dynamic.view.DynamicDetailActivity;
|
||||
import com.chwl.app.community.publish.view.PublishActivity;
|
||||
import com.chwl.app.family.view.activity.FamilyHomeActivity;
|
||||
import com.chwl.app.home.HomeViewModel;
|
||||
import com.chwl.app.home.dialog.NewUserHelloDialog;
|
||||
import com.chwl.app.home.dialog.ProtocolUpdateDialog;
|
||||
@@ -59,15 +57,12 @@ import com.chwl.app.home.fragment.MeFragment;
|
||||
import com.chwl.app.home.presenter.MainPresenter;
|
||||
import com.chwl.app.home.view.IMainView;
|
||||
import com.chwl.app.home.widget.AnchorCardView;
|
||||
import com.chwl.app.main.helper.NoticationsUiHelper;
|
||||
import com.chwl.app.miniworld.activity.MiniWorldGuestPageActivity;
|
||||
import com.chwl.app.module.Extras;
|
||||
import com.chwl.app.module_hall.secretcode.PwdCodeMgr;
|
||||
import com.chwl.app.service.DaemonService;
|
||||
import com.chwl.app.ui.im.ImInitHelper;
|
||||
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.chwl.app.ui.login.BindPhoneActivity;
|
||||
import com.chwl.app.ui.login.LoginActivity;
|
||||
import com.chwl.app.ui.login.fragment.AddUserInfoFragment;
|
||||
import com.chwl.app.ui.patriarch.help.LimitEnterRoomHelper;
|
||||
import com.chwl.app.ui.patriarch.help.PmDialogShowMrg;
|
||||
@@ -114,7 +109,6 @@ import com.chwl.core.utils.SharedPreferenceUtils;
|
||||
import com.chwl.core.utils.StringFormatUtils;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.threadmgr.ThreadPoolManager;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@@ -147,7 +141,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
private MainTabLayout mMainTabLayout;
|
||||
private AnchorCardView anchorCardView;
|
||||
private View viewClose;
|
||||
private int mCurrentTabType = MainTabType.TAB_TYPE_HOME;
|
||||
private int mCurrentTabType = MainTabType.TAB_TYPE_STAR;
|
||||
/**
|
||||
* 房间最小化动画,换成属性动画,原先的补间动画影响了activity的生命周期
|
||||
*/
|
||||
@@ -165,8 +159,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
private Runnable touchRunnable;
|
||||
|
||||
{
|
||||
fragmentArray.put(MainTabType.TAB_TYPE_STAR, new StarFragment());
|
||||
fragmentArray.put(MainTabType.TAB_TYPE_HOME, new HomeFragment());
|
||||
// fragmentArray.put(MainTabType.TAB_TYPE_SQUARE, new SquareFragment());
|
||||
fragmentArray.put(MainTabType.TAB_TYPE_MSG, new ContactsListFragment());
|
||||
fragmentArray.put(MainTabType.TAB_TYPE_ME, new MeFragment());
|
||||
}
|
||||
@@ -199,16 +193,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
// 跳转
|
||||
if (!StringUtil.isEmpty(linkedInfo.getRoomUid()) && linkedInfo.getType().equals("2")) {
|
||||
AVRoomActivity.start(context, Long.parseLong(linkedInfo.getRoomUid()));
|
||||
} else if (!StringUtil.isEmpty(linkedInfo.getFamilyId()) && linkedInfo.getType().equals("4")) {
|
||||
FamilyHomeActivity.start(context, linkedInfo.getFamilyId());
|
||||
} else if (!TextUtils.isEmpty(linkedInfo.getUrl()) && linkedInfo.getType().equals("3")) {
|
||||
CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl()));
|
||||
} else if (!TextUtils.isEmpty(linkedInfo.getWorldId()) && linkedInfo.getType().equals("5")) {
|
||||
MiniWorldGuestPageActivity.start(context, linkedInfo.getWorldId());
|
||||
} else if (linkedInfo.getType().equals("6") && !TextUtils.isEmpty(linkedInfo.getWorldId()) &&
|
||||
!TextUtils.isEmpty(linkedInfo.getDynamicId())) {
|
||||
DynamicDetailActivity.start(context, JavaUtil.str2long(linkedInfo.getDynamicId()),
|
||||
JavaUtil.str2long(linkedInfo.getWorldId()), 6);
|
||||
} else if (linkedInfo.getType().equals("7") && !TextUtils.isEmpty(linkedInfo.getUid())) {
|
||||
NimP2PMessageActivity.start(context, linkedInfo.getUid());
|
||||
} else {
|
||||
@@ -249,8 +235,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
mMainTabLayout.setMainTabInfoList(mainTabInfo);
|
||||
}
|
||||
});
|
||||
//检测更新
|
||||
AppUpgradeHelper.checkAppUpgrade(this);
|
||||
initMaterialView();
|
||||
onParseIntent();
|
||||
updateDatas();
|
||||
@@ -327,34 +311,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
||||
if (userInfo != null) {
|
||||
handleLinkedJump(this);
|
||||
// if (userInfo.isShowLimitCharge() &&
|
||||
// PmDialogShowMrg.get().isHasShow() &&
|
||||
// DemoCache.readNewUserChargeGift() == 1) {
|
||||
// StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_NUGIFT_POP_SHOW, getString(R.string.enjoy_the_popup_exposure));
|
||||
// NewUserChargeGiftDialog.start(context);
|
||||
// DemoCache.saveNewUserChargeGift(2);
|
||||
// }
|
||||
// checkShowAnchorCardView();
|
||||
}
|
||||
}
|
||||
|
||||
// private void checkShowAnchorCardView() {
|
||||
// if (touchRunnable != null || !mResumed || AvRoomDataManager.get().mCurrentRoomInfo != null)
|
||||
// return;
|
||||
// int anchorCardViewType = DemoCache.readAnchorCardView();
|
||||
// if (anchorCardViewType == 2) {
|
||||
// if (CurrentTimeUtils.getCurrentTime() - DemoCache.readAnchorCardViewTime() > 15 * 60 * 1000) {
|
||||
// touchRunnable = () -> {
|
||||
// touchRunnable = null;
|
||||
// homeViewModel.requestAnchorInfo();
|
||||
// };
|
||||
// mMainTabLayout.postDelayed(touchRunnable, 5000);
|
||||
// }
|
||||
// } else if (anchorCardViewType == 1 || DemoCache.readLaunchCount() == 1) {
|
||||
// homeViewModel.requestAnchorInfo();
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
@@ -388,10 +347,10 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
userLivingView.setColor(Color.WHITE);
|
||||
mMainTabLayout.setOnTabClickListener(this);
|
||||
anchorCardView = findViewById(R.id.vs_anchor_card);
|
||||
mMainTabLayout.setDefaultTabType(mCurrentTabType);
|
||||
}
|
||||
|
||||
private void updateDatas() {
|
||||
mMainTabLayout.setDefaultTabType(mCurrentTabType);
|
||||
handleNimIntent();
|
||||
}
|
||||
|
||||
@@ -506,8 +465,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
Log.i("checkLostUser", "onLogin");
|
||||
|
||||
//登录成功查询未读信息数量
|
||||
mMainTabLayout.setUnReadDynamicCount(0);
|
||||
int unreadCount = IMMessageManager.get().queryUnreadMsg();
|
||||
mMainTabLayout.setMsgNum(unreadCount);
|
||||
openCommunityNotice();
|
||||
@@ -522,14 +479,14 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
public void onLogout() {
|
||||
Logger.e(TAG, "onLogout Success ~~~~");
|
||||
getMvpPresenter().exitRoom();
|
||||
LoginActivity.start(MainActivity.this);
|
||||
LoginPasswordActivity.start(MainActivity.this);
|
||||
PmDialogShowMrg.get().onLogout();
|
||||
finish();
|
||||
}
|
||||
|
||||
public void onNeedLogin() {
|
||||
NimMiddleActivity.openCommunity = false;
|
||||
LoginActivity.start(MainActivity.this);
|
||||
LoginPasswordActivity.start(MainActivity.this);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
@@ -641,9 +598,19 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
transaction.add(R.id.main_fragment, showFragment, null);
|
||||
}
|
||||
transaction.show(showFragment);
|
||||
if (tempFragment != null) transaction.hide(tempFragment);
|
||||
if (tempFragment != null) {
|
||||
transaction.hide(tempFragment);
|
||||
if (tempFragment instanceof MainTabContentView) {
|
||||
((MainTabContentView) tempFragment).onVisibleStateChanged(false);
|
||||
}
|
||||
}
|
||||
tempFragment = showFragment;
|
||||
if (!isDestroyed()) transaction.commitNowAllowingStateLoss();
|
||||
if (!isDestroyed()) {
|
||||
transaction.commitNowAllowingStateLoss();
|
||||
if (tempFragment instanceof MainTabContentView) {
|
||||
((MainTabContentView) tempFragment).onVisibleStateChanged(true);
|
||||
}
|
||||
}
|
||||
mCurrentTabType = tabType;
|
||||
|
||||
//每次点击我的都更新当前用户信息
|
||||
@@ -655,9 +622,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
case MainTabType.TAB_TYPE_HOME:
|
||||
reportTabClick(IReportConstants.ELEVEN);
|
||||
break;
|
||||
case MainTabType.TAB_TYPE_SQUARE:
|
||||
reportTabClick(IReportConstants.TWELVE);
|
||||
break;
|
||||
case MainTabType.TAB_TYPE_MSG:
|
||||
reportTabClick(IReportConstants.THIRTEEN);
|
||||
break;
|
||||
@@ -676,7 +640,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
//登录页展示时
|
||||
HashMap<String, Object> map = new HashMap<>(3);
|
||||
map.put(IReportConstants.HOMEPAGE_TYPE, type);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_HOMEPAGE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE);
|
||||
ReportManager.get().reportEvent(IReportConstants.MODULE_HOMEPAGE_CLICK, map);
|
||||
}
|
||||
|
||||
@@ -694,9 +658,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
//青少年弹窗处理
|
||||
PmDialogShowMrg.get().handle(new WeakReference<>(this));
|
||||
|
||||
//通知栏权限判断
|
||||
NoticationsUiHelper.handle(this, getDialogManager());
|
||||
|
||||
handleChannelPageInfo();
|
||||
|
||||
checkProtocolUpdate();
|
||||
@@ -847,16 +808,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUnReadCount(UnReadCountEvent event) {
|
||||
mMainTabLayout.setUnReadDynamicCount(event.getTotal());
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void SquarePublish(SquareTaskEvent event) {
|
||||
if (getDialogManager() != null) {
|
||||
PublishActivity.start(getDialogManager());
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePmExitRoom() {
|
||||
|
5
app/src/main/java/com/chwl/app/MainTabContentView.kt
Normal file
5
app/src/main/java/com/chwl/app/MainTabContentView.kt
Normal file
@@ -0,0 +1,5 @@
|
||||
package com.chwl.app
|
||||
|
||||
interface MainTabContentView {
|
||||
fun onVisibleStateChanged(showOrHide: Boolean) {}
|
||||
}
|
@@ -12,7 +12,6 @@ import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.base.BaseActivity;
|
||||
import com.chwl.app.radish.signin.SignInActivity;
|
||||
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.app.utils.PushMessageHandler;
|
||||
@@ -106,11 +105,6 @@ public class NimMiddleActivity extends BaseActivity {
|
||||
if (noticeAttachment.getUid() > 0) {
|
||||
AVRoomActivity.start(this, noticeAttachment.getUid());
|
||||
}
|
||||
} else if (attachment instanceof OpenSignInAttachment) {
|
||||
if (AuthModel.get().isImLogin()
|
||||
&& !UIUtils.isTopActivity(this, SignInActivity.class.getSimpleName())) {
|
||||
SignInActivity.start(this);
|
||||
}
|
||||
} else if (attachment.getFirst() == CustomAttachment.CUSTOM_MSG_RED_PACKAGE) {
|
||||
if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND) {
|
||||
RedPackageAttachment redPackageAttachment = (RedPackageAttachment) attachment;
|
||||
|
@@ -10,7 +10,6 @@ import com.chwl.app.audio.SoundSignatureActivity;
|
||||
import com.chwl.app.ui.login.AddUserInfoActivity;
|
||||
import com.chwl.app.ui.login.ModifyInfoActivity;
|
||||
import com.chwl.app.ui.setting.SettingActivity;
|
||||
import com.chwl.app.ui.user.activity.EditUserLabelActivity;
|
||||
import com.chwl.app.ui.user.activity.UserInfoActivity;
|
||||
import com.chwl.app.ui.user.activity.UserInfoModifyActivity;
|
||||
import com.chwl.app.ui.user.activity.UserModifyPhotosActivity;
|
||||
@@ -108,12 +107,7 @@ public class UIHelper {
|
||||
|
||||
public static void showMonsterResult(Context context, String monsterId) {
|
||||
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL +
|
||||
"/hiyoo/modules/monster/index.html?monsterId=" + monsterId);
|
||||
}
|
||||
|
||||
public static void showLabelInfoAct(Activity mActivity, int requestCode) {
|
||||
Intent intent = new Intent(mActivity, EditUserLabelActivity.class);
|
||||
mActivity.startActivityForResult(intent, requestCode);
|
||||
"/molistar/modules/monster/index.html?monsterId=" + monsterId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,11 +126,11 @@ public class UIHelper {
|
||||
*/
|
||||
public static void showRecommendPosH5(Context context) {
|
||||
String cardUrl = UriProvider.JAVA_WEB_URL +
|
||||
"/hiyoo/modules/recommend-card/index.html";
|
||||
"/molistar/modules/recommend-card/index.html";
|
||||
CommonWebViewActivity.start(context, cardUrl);
|
||||
}
|
||||
|
||||
public static void openContactUs(Context context) {
|
||||
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL + "/hiyoo/modules/contact/contact.html");
|
||||
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL + "/molistar/modules/contact/contact.html");
|
||||
}
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TY
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Color;
|
||||
import android.net.http.HttpResponseCache;
|
||||
import android.os.Build;
|
||||
@@ -12,12 +13,14 @@ import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.util.Supplier;
|
||||
import androidx.multidex.MultiDex;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.bumptech.glide.request.target.ViewTarget;
|
||||
import com.chwl.app.support.IMUserInfoProvider;
|
||||
import com.example.lib_utils.LanguageUtils;
|
||||
import com.chwl.library.language.LanguageHelper;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.example.lib_utils.ServiceTime;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
@@ -66,9 +69,7 @@ import com.chwl.core.interceptor.TimeSyncInterceptor;
|
||||
import com.chwl.core.manager.IMMessageManager;
|
||||
import com.chwl.core.manager.IMSystemMsgManager;
|
||||
import com.chwl.core.market_verify.MarketVerifyModel;
|
||||
import com.chwl.core.mentoring_relationship.model.MentoringRelationshipModel;
|
||||
import com.chwl.core.pay.PayModel;
|
||||
import com.chwl.core.public_chat_hall.model.PublicChatHallModel;
|
||||
import com.chwl.core.radish.RadishModel;
|
||||
import com.chwl.core.radish.signin.bean.ImNotice;
|
||||
import com.chwl.core.room.face.DynamicFaceModel;
|
||||
@@ -418,9 +419,9 @@ public class App extends BaseApp {
|
||||
httpParams.put("deviceId", DeviceUuidFactory.getDeviceId(context));
|
||||
httpParams.put("androidId", MD5Utils.getMD5String(Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID)));
|
||||
httpParams.put("channel", AppMetaDataUtil.getChannelID());
|
||||
httpParams.put("lang", LanguageUtils.INSTANCE.getSystemLanguage().toLanguageTag());
|
||||
httpParams.put("lang", LanguageHelper.INSTANCE.getSystemLanguage().toLanguageTag());
|
||||
RxNet.init(context)
|
||||
.debug(Env.isDebug())
|
||||
.debug(Env.isRealDebug())
|
||||
.setBaseUrl(url)
|
||||
.addInterceptors(new ParamsInterceptor(httpParams))
|
||||
.addInterceptors(new NoParamsInterceptor())//注意:拦截器的添加顺序,请求的拦截顺序
|
||||
@@ -480,11 +481,9 @@ public class App extends BaseApp {
|
||||
ChannelModel.get();
|
||||
MarketVerifyModel.get();
|
||||
GiftModel.get();
|
||||
PublicChatHallModel.get();
|
||||
GiftModel.get().tryLoadGiftList();
|
||||
// 模厅
|
||||
HallDataManager.get().application();
|
||||
// 师徒
|
||||
MentoringRelationshipModel.get();
|
||||
//全局处理
|
||||
GlobalHandleManager.get().init();
|
||||
|
||||
@@ -527,11 +526,13 @@ public class App extends BaseApp {
|
||||
BasicConfig.INSTANCE.setAppContext(this.getApplicationContext());
|
||||
SharedPreferenceUtils.init(this);
|
||||
ResUtil.init(this);
|
||||
ResUtil.contextSupplier = () -> App.gStack.getTopContext();
|
||||
LanguageHelper.INSTANCE.wrapContext(instance);
|
||||
initOtherSDK();
|
||||
initContext(this);
|
||||
//首次启动事件
|
||||
HashMap<String, Object> map = new HashMap<>(2);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_ACTIVATE);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_ACTIVATE);
|
||||
ReportManager.get().reportEvent(IReportConstants.ACTIVATE_FIRST, map);
|
||||
}
|
||||
|
||||
@@ -555,6 +556,12 @@ public class App extends BaseApp {
|
||||
MultiDex.install(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
LanguageHelper.INSTANCE.wrapContext(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTerminate() {
|
||||
super.onTerminate();
|
||||
|
@@ -2,15 +2,11 @@ package com.chwl.app.application;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
import com.chwl.app.upgrade.AppUpgradeHelper;
|
||||
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
|
||||
import com.chwl.app.avroom.newuserchargegift.NewUserChargePrizeDialog;
|
||||
import com.chwl.app.relation.cp.dialog.CpGlobalDialog;
|
||||
import com.chwl.app.ui.widget.LevelUpDialog;
|
||||
import com.chwl.app.ui.widget.RecallDialog;
|
||||
import com.chwl.app.ui.widget.lottery_dialog.LotteryDialogManager;
|
||||
import com.chwl.app.vip.dialog.VipUpgradeDialog;
|
||||
import com.chwl.core.activity.bean.LotteryInfo;
|
||||
import com.chwl.core.level.event.CharmLevelUpEvent;
|
||||
import com.chwl.core.level.event.LevelUpEvent;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
@@ -55,14 +51,6 @@ public class GlobalHandleManager {
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onImPushUpdateAppEvent(ImPushUpdateAppEvent event) {
|
||||
AppUpgradeHelper.checkAppUpgrade((RxAppCompatActivity) getActivity(), event.getInfo());
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onReceiveLotteryActivity(LotteryInfo lotteryInfo) {
|
||||
Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
LotteryDialogManager.checkLotteryDialog(activity);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
@@ -32,9 +32,9 @@ public interface IReportConstants {
|
||||
int FIFTEEN = 15;
|
||||
|
||||
String ACTIVATE_FIRST = "activate_first";
|
||||
String PEKO_ACTIVATE = "peko_activate";
|
||||
String MOLISTAR_ACTIVATE = "molistar_activate";
|
||||
String AGREEMENT_SHOW = "agreement_show";
|
||||
String PEKO_LOGIN = "peko_login";
|
||||
String MOLISTAR_LOGIN = "molistar_login";
|
||||
String AGREEMENT_CLICK = "agreement_click";
|
||||
String CLICK_TYPE = "click_type";
|
||||
String PAGE = "page";
|
||||
@@ -47,7 +47,7 @@ public interface IReportConstants {
|
||||
String FAIL_DETAIL = "fail_detail";
|
||||
String MODULE_HOMEPAGE_CLICK = "module_homepage_click";
|
||||
String HOMEPAGE_TYPE = "homepage_type";
|
||||
String PEKO_HOMEPAGE = "peko_homepage";
|
||||
String MOLISTAR_HOMEPAGE = "molistar_homepage";
|
||||
String TAB_HOMEPAGE_CLICK = "tab_homepage_click";
|
||||
String HOMEPAGE_TAB = "homepage_tab";
|
||||
String PAYPAGE_SHOW = "paypage_show";
|
||||
@@ -55,6 +55,6 @@ public interface IReportConstants {
|
||||
String ACCOUNT_BALANCE = "account_balance";
|
||||
String PAY_CLICK = "pay_click";
|
||||
String MONEY = "money";
|
||||
String PEKO_PAY = "peko_pay";
|
||||
String MOLISTAR_PAY = "molistar_pay";
|
||||
|
||||
}
|
@@ -23,38 +23,8 @@ public class ReportManager implements IReportService {
|
||||
}
|
||||
|
||||
public void init() {
|
||||
// initFirebase();
|
||||
// initAdjust();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化Firebase相关库
|
||||
*/
|
||||
// private void initFirebase() {
|
||||
// // FirebaseCrashlytics注册公共属性
|
||||
// FirebaseCrashlytics.getInstance().setCustomKey(IReportConstants.CHANNEL, AppMetaDataUtil.getChannelID());
|
||||
// // FirebaseAnalytics注册公共属性
|
||||
// Bundle params = new Bundle();
|
||||
// if (AuthModel.get().getCurrentUid() != 0) {
|
||||
// params.putLong(IReportConstants.UID, AuthModel.get().getCurrentUid());
|
||||
// }
|
||||
// params.putString(IReportConstants.CHANNEL, AppMetaDataUtil.getChannelID());
|
||||
// setFirebaseAnalyticsDefaultEventParameters(params);
|
||||
// }
|
||||
|
||||
//Adjust初始化
|
||||
// private void initAdjust() {
|
||||
// String appToken = XChatConstants.ADJUST_APP_TOKEN;
|
||||
// String environment;
|
||||
// if (XChatApplication.isDebug()) {
|
||||
// environment = AdjustConfig.ENVIRONMENT_SANDBOX;
|
||||
// } else {
|
||||
// environment = AdjustConfig.ENVIRONMENT_PRODUCTION;
|
||||
// }
|
||||
// AdjustConfig config = new AdjustConfig(XChatApplication.instance(), appToken, environment);
|
||||
// config.setLogLevel(LogLevel.WARN);
|
||||
// Adjust.onCreate(config);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 设置FirebaseAnalytics公共属性
|
||||
@@ -63,9 +33,6 @@ public class ReportManager implements IReportService {
|
||||
*/
|
||||
@Override
|
||||
public void setFirebaseAnalyticsDefaultEventParameters(Bundle bundle) {
|
||||
// if (bundle != null) {
|
||||
// FirebaseAnalytics.getInstance(XChatApplication.instance()).setDefaultEventParameters(bundle);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,30 +53,10 @@ public class ReportManager implements IReportService {
|
||||
*/
|
||||
@Override
|
||||
public void reportEvent(String eventId, Map<String, Object> map) {
|
||||
// try {
|
||||
// Logger.i(TAG, "reportEvent: eventId=%s, map=%s", eventId, new Gson().toJson(map));
|
||||
// Bundle bundle = null;
|
||||
// if (map != null) {
|
||||
// bundle = new Bundle();
|
||||
// for (Map.Entry<String, Object> item : map.entrySet()) {
|
||||
// String key = item.getKey();
|
||||
// Object value = item.getValue();
|
||||
// if (!TextUtils.isEmpty(key) && value != null) {
|
||||
// bundle.putString(key, String.valueOf(value));
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// //所有事件都上报到Google Analytics
|
||||
// FirebaseAnalytics.getInstance(XChatApplication.instance()).logEvent(eventId, bundle);
|
||||
// } catch (Exception e) {
|
||||
// Logger.e(TAG, "reportEvent", e);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportAdjustEvent(String eventId) {
|
||||
// AdjustEvent adjustEvent = new AdjustEvent(eventId);
|
||||
// Adjust.trackEvent(adjustEvent);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -13,7 +13,6 @@ import com.chwl.app.R;
|
||||
import com.chwl.app.UIHelper;
|
||||
import com.chwl.app.avroom.widget.ViewItem;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.public_chat_hall.widget.ShutUpDialog;
|
||||
import com.chwl.app.ui.im.avtivity.NimFriendModel;
|
||||
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.chwl.app.ui.widget.ButtonItem;
|
||||
@@ -27,7 +26,6 @@ import com.chwl.core.initial.bean.InitInfo;
|
||||
import com.chwl.core.kick.KickModel;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.public_chat_hall.manager.PublicChatHallDataManager;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.room.model.AvRoomModel;
|
||||
import com.chwl.core.statistic.StatLogKey;
|
||||
@@ -195,42 +193,6 @@ public class ButtonItemFactory {
|
||||
return buttonItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建相关的buttons 添加到资料卡片
|
||||
*
|
||||
* @param context context
|
||||
* @param uid uid or 云信account
|
||||
* @param listener dialog的监听回调
|
||||
* @return List<ViewItem>
|
||||
*/
|
||||
public static List<ViewItem> createPublicChatHallButtonItems(
|
||||
Context context,
|
||||
long uid,
|
||||
boolean isInRoom,
|
||||
GiftDialog.OnGiftDialogBtnClickListener listener) {
|
||||
if (uid <= 0) return null;
|
||||
String currentUid = String.valueOf(AuthModel.get().getCurrentUid());
|
||||
String account = String.valueOf(uid);
|
||||
//account和chatRoomMember 不会同时为空,如果同时为空,则是前面传参出错
|
||||
boolean isMySelf = Objects.equals(currentUid, account);
|
||||
if (isMySelf) {
|
||||
return null;
|
||||
}
|
||||
List<ViewItem> buttonItems = new ArrayList<>();
|
||||
//不在房间内,也不需要魔法
|
||||
buttonItems.add(createSendGiftItem(context, uid, true, true, listener));
|
||||
// 私聊
|
||||
buttonItems.add(createPrivateChatItem(context, account, isInRoom));
|
||||
//装扮和关注目前是都有的操作
|
||||
//buttonItems.add(createSendDecorationItem(context, uid));
|
||||
buttonItems.add(createAttentItem());
|
||||
buttonItems.add(createFindMeItem());
|
||||
if (PublicChatHallDataManager.get().isRoomAdmin()) {
|
||||
buttonItems.add(createShutupItem(context, uid));
|
||||
}
|
||||
return buttonItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* 踩TA,当该人再房间中的时候,进入他所在的房间
|
||||
*
|
||||
@@ -463,15 +425,6 @@ public class ButtonItemFactory {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 公聊大厅禁言
|
||||
*/
|
||||
public static ViewItem createShutupItem(Context context, long uid) {
|
||||
return new ViewItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_028), R.drawable.icon_shut_up, () -> {
|
||||
new ShutUpDialog(context, uid).openDialog();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param isInRoom true 在房间内弹起
|
||||
|
@@ -1,17 +1,13 @@
|
||||
package com.chwl.app.avroom.activity;
|
||||
|
||||
import static android.view.View.VISIBLE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ALL_SERVICE_GIFT;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_BOX;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_FAIRY;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_ALL;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA_GIFT_SERVER_ALL;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ROOM_PK;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_DRAW_GIFT_L5;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_NOTIFY;
|
||||
|
||||
@@ -44,7 +40,9 @@ import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.chwl.app.notify.RoomNotifyManager;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterDataBean;
|
||||
import com.chwl.core.support.room.RoomWidget;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.NIMSDK;
|
||||
import com.netease.nimlib.sdk.Observer;
|
||||
@@ -57,18 +55,15 @@ import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.dialog.NewUserGiftDialog;
|
||||
import com.chwl.app.avroom.dialog.SingleRoomTipDialog;
|
||||
import com.chwl.app.avroom.firstcharge.FirstChargeDialog;
|
||||
import com.chwl.app.avroom.fragment.FakeSingleRoomBackFragment;
|
||||
import com.chwl.app.avroom.fragment.FakeSingleRoomFragment;
|
||||
import com.chwl.app.avroom.fragment.HomePartyFragment;
|
||||
import com.chwl.app.avroom.fragment.InputPwdDialogFragment;
|
||||
import com.chwl.app.avroom.presenter.AvRoomPresenter;
|
||||
import com.chwl.app.avroom.presenter.HomePartyPresenter;
|
||||
import com.chwl.app.avroom.redpackage.RedPackageHandler;
|
||||
import com.chwl.app.avroom.view.IAvRoomView;
|
||||
import com.chwl.app.avroom.widget.VerticalViewPagerAdapter;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
@@ -81,12 +76,10 @@ import com.chwl.app.ui.patriarch.help.LimitEnterRoomHelper;
|
||||
import com.chwl.app.ui.user.activity.UserInfoActivity;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity;
|
||||
import com.chwl.app.ui.widget.NobleOpenNoticeView;
|
||||
import com.chwl.app.ui.widget.dialog.AllServiceGiftLevelDialog;
|
||||
import com.chwl.app.ui.widget.dialog.MonsterDialog;
|
||||
import com.chwl.app.utils.UserUtils;
|
||||
import com.chwl.app.room_chat.activity.RoomMsgActivity;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.DemoCache;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
@@ -100,8 +93,6 @@ import com.chwl.core.im.custom.bean.CustomAttachment;
|
||||
import com.chwl.core.im.custom.bean.FairyMsgAttachment;
|
||||
import com.chwl.core.im.custom.bean.NotifyH5Attachment;
|
||||
import com.chwl.core.im.custom.bean.NotifyH5Info;
|
||||
import com.chwl.core.im.custom.bean.RoomBoxPrizeAttachment;
|
||||
import com.chwl.core.im.custom.bean.RoomBoxPrizeInfo;
|
||||
import com.chwl.core.im.custom.bean.RoomLuckySeaAttachment;
|
||||
import com.chwl.core.im.custom.bean.RoomLuckySeaMsgBean;
|
||||
import com.chwl.core.im.custom.bean.RoomPKAttachment;
|
||||
@@ -117,7 +108,6 @@ import com.chwl.core.module_hall.hall.HallModel;
|
||||
import com.chwl.core.module_hall.hall.bean.SuperAdminInfo;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterHuntingResult;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterInfo;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterProtocol;
|
||||
import com.chwl.core.monsterhunting.manager.MonsterDataManager;
|
||||
import com.chwl.core.noble.bean.AllServiceGiftProtocol;
|
||||
import com.chwl.core.noble.bean.NobleInfo;
|
||||
@@ -142,7 +132,6 @@ import com.chwl.core.support.room.RoomContext;
|
||||
import com.chwl.core.support.room.RoomView;
|
||||
import com.chwl.core.treasurefairy.bean.FairyMsgInfoBean;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.FirstChargeInfo;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.core.utils.LogUtils;
|
||||
import com.chwl.core.utils.StringFormatUtils;
|
||||
@@ -160,13 +149,12 @@ import java.lang.ref.WeakReference;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
|
||||
|
||||
/**
|
||||
@@ -229,6 +217,8 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
// 是否禁用VP滑动(true:不允许滑动;false:某些条件下可以滑动)
|
||||
private boolean viewPagerInputDisable;
|
||||
|
||||
private RoomNotifyManager roomNotify;
|
||||
|
||||
public static void start(Context context, long roomUid) {
|
||||
startForFromType(context, roomUid, FROM_TYPE_NORMAL, null, null);
|
||||
}
|
||||
@@ -507,6 +497,17 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
}
|
||||
});
|
||||
|
||||
roomNotify = new RoomNotifyManager(this);
|
||||
roomNotify.setOnShowUserCard(new Function1<String, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(String s) {
|
||||
if (mCurrentFragment != null) {
|
||||
mCurrentFragment.showUserCardDialog(s);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
roomNotify.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -690,11 +691,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
if (roomContext != null) {
|
||||
roomContext.onViewAttach(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 每次View重新创建(意味着可能在房间外点了红包),就重新尝试加载红包并展示
|
||||
*/
|
||||
tryShowSourceRedPackage();
|
||||
}
|
||||
|
||||
private void showLiveFinishView(long uid) {
|
||||
@@ -731,23 +727,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
AvRoomDataManager.get().release();
|
||||
}
|
||||
|
||||
/**
|
||||
* 尝试展示来源红包(在房间外点击红包入口进入房间时)
|
||||
*/
|
||||
private void tryShowSourceRedPackage() {
|
||||
try {
|
||||
if (redPackageNotifyInfo != null) {
|
||||
RedPackageHandler handler = getRoomContext().findAbility(RedPackageHandler.class.getSimpleName());
|
||||
if (handler != null) {
|
||||
long id = Long.parseLong(redPackageNotifyInfo.getRedEnvelopeId());
|
||||
handler.tryShowRedPackage(id);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void dismissRedPackageDialog() {
|
||||
if (mCurrentFragment != null) {
|
||||
mCurrentFragment.dismissSendRedPackageDialog();
|
||||
@@ -1194,56 +1173,56 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
if (baseProtocol == null) return;
|
||||
if (!isValid()) return;
|
||||
switch (baseProtocol.getFirst()) {
|
||||
case CUSTOM_MSG_HEADER_TYPE_GIFT:
|
||||
if (giftList == null) {
|
||||
giftList = new LinkedList<>();
|
||||
}
|
||||
int second2 = baseProtocol.getSecond();
|
||||
AllServiceGiftProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), AllServiceGiftProtocol.DataBean.class);
|
||||
if (data == null || (data.getGiftUrl()) == null)
|
||||
return;
|
||||
giftList.add(data);
|
||||
if (second2 == CUSTOM_MSG_ALL_SERVICE_GIFT) {
|
||||
if (giftDialog != null && giftDialog.isShowing()) {
|
||||
// 如果当前以及有礼物弹窗在展示,则需要等到他 dismiss 后再显示下一个
|
||||
AllServiceGiftProtocol.DataBean dataBean = giftList.peekFirst();
|
||||
if (dataBean != null) {
|
||||
return;
|
||||
} else {
|
||||
giftDialog.dismiss();
|
||||
}
|
||||
} else {
|
||||
showGiftDialog();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CUSTOM_MSG_BOX://寻爱之旅
|
||||
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
|
||||
RoomBoxPrizeAttachment roomBoxPrizeAttachment = new RoomBoxPrizeAttachment(CUSTOM_MSG_BOX, CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA);
|
||||
RoomBoxPrizeInfo roomBoxPrizeBean = JSON.parseObject(String.valueOf(baseProtocol.getData()), RoomBoxPrizeInfo.class);
|
||||
roomBoxPrizeAttachment.setUid(roomBoxPrizeBean.getUid());
|
||||
roomBoxPrizeAttachment.setPrizeName(roomBoxPrizeBean.getPrizeName());
|
||||
roomBoxPrizeAttachment.setNick(roomBoxPrizeBean.getNick());
|
||||
roomBoxPrizeAttachment.setBoxTypeStr(roomBoxPrizeBean.getBoxTypeStr());
|
||||
roomBoxPrizeAttachment.setRoomUid(roomBoxPrizeBean.getRoomUid());
|
||||
roomBoxPrizeAttachment.setPrizeNum(roomBoxPrizeBean.getPrizeNum());
|
||||
roomBoxPrizeAttachment.setUserLevelLimit(roomBoxPrizeBean.getUserLevelLimit());
|
||||
if (AvRoomDataManager.get().isOpenPureMode()) {
|
||||
// 純凈模式打開後,僅能看跟自己相關的砸蛋消息
|
||||
if (Objects.equals(roomBoxPrizeAttachment.getUid(), AuthModel.get().getCurrentUid())) {
|
||||
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
|
||||
IMNetEaseManager.get().addMessages(message);
|
||||
}
|
||||
} else {
|
||||
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
|
||||
IMNetEaseManager.get().addMessages(message);
|
||||
IMNetEaseManager.get().getChatRoomEventObservable()
|
||||
.onNext(new RoomEvent()
|
||||
.setEvent(RoomEvent.BOX_NOTIFY_SVGA)
|
||||
.setChatRoomMessage(message));
|
||||
}
|
||||
}
|
||||
break;
|
||||
// case CUSTOM_MSG_HEADER_TYPE_GIFT:
|
||||
// if (giftList == null) {
|
||||
// giftList = new LinkedList<>();
|
||||
// }
|
||||
// int second2 = baseProtocol.getSecond();
|
||||
// AllServiceGiftProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), AllServiceGiftProtocol.DataBean.class);
|
||||
// if (data == null || (data.getGiftUrl()) == null)
|
||||
// return;
|
||||
// giftList.add(data);
|
||||
// if (second2 == CUSTOM_MSG_ALL_SERVICE_GIFT) {
|
||||
// if (giftDialog != null && giftDialog.isShowing()) {
|
||||
// // 如果当前以及有礼物弹窗在展示,则需要等到他 dismiss 后再显示下一个
|
||||
// AllServiceGiftProtocol.DataBean dataBean = giftList.peekFirst();
|
||||
// if (dataBean != null) {
|
||||
// return;
|
||||
// } else {
|
||||
// giftDialog.dismiss();
|
||||
// }
|
||||
// } else {
|
||||
// showGiftDialog();
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case CUSTOM_MSG_BOX://寻爱之旅
|
||||
// if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
|
||||
// RoomBoxPrizeAttachment roomBoxPrizeAttachment = new RoomBoxPrizeAttachment(CUSTOM_MSG_BOX, CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA);
|
||||
// RoomBoxPrizeInfo roomBoxPrizeBean = JSON.parseObject(String.valueOf(baseProtocol.getData()), RoomBoxPrizeInfo.class);
|
||||
// roomBoxPrizeAttachment.setUid(roomBoxPrizeBean.getUid());
|
||||
// roomBoxPrizeAttachment.setPrizeName(roomBoxPrizeBean.getPrizeName());
|
||||
// roomBoxPrizeAttachment.setNick(roomBoxPrizeBean.getNick());
|
||||
// roomBoxPrizeAttachment.setBoxTypeStr(roomBoxPrizeBean.getBoxTypeStr());
|
||||
// roomBoxPrizeAttachment.setRoomUid(roomBoxPrizeBean.getRoomUid());
|
||||
// roomBoxPrizeAttachment.setPrizeNum(roomBoxPrizeBean.getPrizeNum());
|
||||
// roomBoxPrizeAttachment.setUserLevelLimit(roomBoxPrizeBean.getUserLevelLimit());
|
||||
// if (AvRoomDataManager.get().isOpenPureMode()) {
|
||||
// // 純凈模式打開後,僅能看跟自己相關的砸蛋消息
|
||||
// if (Objects.equals(roomBoxPrizeAttachment.getUid(), AuthModel.get().getCurrentUid())) {
|
||||
// ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
|
||||
// IMNetEaseManager.get().addMessages(message);
|
||||
// }
|
||||
// } else {
|
||||
// ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
|
||||
// IMNetEaseManager.get().addMessages(message);
|
||||
// IMNetEaseManager.get().getChatRoomEventObservable()
|
||||
// .onNext(new RoomEvent()
|
||||
// .setEvent(RoomEvent.BOX_NOTIFY_SVGA)
|
||||
// .setChatRoomMessage(message));
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
case CustomAttachment.CUSTOM_MESS_TAROT:
|
||||
if (baseProtocol.getSecond() == CustomAttachment.CUSTOM_MESS_TAROT_SENIOR_PRIZE_WINNING) {
|
||||
TarotMsgBean tarotMsgBean = JSON.parseObject(String.valueOf(baseProtocol.getData()), TarotMsgBean.class);
|
||||
@@ -1286,7 +1265,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
RoomReceivedLuckyGiftAttachment attachment = new RoomReceivedLuckyGiftAttachment(CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY);
|
||||
attachment.setLuckyBagNoticeInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), LuckyBagNoticeInfo.class));
|
||||
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), attachment);
|
||||
IMNetEaseManager.get().noticeServiceLuckyBagNotice(message);
|
||||
// IMNetEaseManager.get().noticeServiceLuckyBagNotice(message);
|
||||
IMNetEaseManager.get().addMessages(message);
|
||||
}
|
||||
break;
|
||||
@@ -1363,22 +1342,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
new NewUserGiftDialog(giftInfo).show(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showFirstChargeDialog(FirstChargeInfo firstChargeInfo) {
|
||||
Single.timer(firstChargeInfo.getShowAfterSecond() * 1000L, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())
|
||||
.compose(bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.doOnSuccess(aLong -> {
|
||||
if (!DemoCache.readBoolean("FirstCharge", false) &&
|
||||
(UIUtils.isTopActivity(AVRoomActivity.this)
|
||||
// || UIUtils.isTopActivity(this, TreasureBoxActivity.class.getName())
|
||||
|| UIUtils.isTopActivity(this, DialogWebViewActivity.class.getName())
|
||||
|| UIUtils.isTopActivity(this, RoomMsgActivity.class.getName()))) {
|
||||
FirstChargeDialog.start(this);
|
||||
}
|
||||
})
|
||||
.subscribe();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onImPushMsgPmLimitTimeEvent(ImPushMsgPmLimitTimeEvent event) {
|
||||
//时间到限制时间段之后,后台推送im消息
|
||||
@@ -1403,6 +1366,12 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
return this;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public RoomWidget findWidget(@NonNull String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static class GiftBroadcastObserver implements Observer<BroadcastMessage> {
|
||||
private WeakReference<AVRoomActivity> mReference;
|
||||
|
||||
@@ -1422,14 +1391,14 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
JSONObject jsonObject;
|
||||
try {
|
||||
jsonObject = JSON.parseObject(contentStr);
|
||||
if (jsonObject == null) return;
|
||||
if (jsonObject.containsKey("body")) {
|
||||
String body = jsonObject.getString("body");
|
||||
if (TextUtils.isEmpty(body)) return;
|
||||
activity.onReceivedGiftBroadcastMessage(body);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
jsonObject = null;
|
||||
}
|
||||
if (jsonObject == null) return;
|
||||
if (jsonObject.containsKey("body")) {
|
||||
String body = jsonObject.getString("body");
|
||||
if (TextUtils.isEmpty(body)) return;
|
||||
activity.onReceivedGiftBroadcastMessage(body);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,146 +0,0 @@
|
||||
package com.chwl.app.avroom.activity;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.fragment.InviteFriendListFragment;
|
||||
import com.chwl.app.base.BaseBindingActivity;
|
||||
import com.chwl.app.databinding.ActivityCpRoomInviteBinding;
|
||||
import com.chwl.app.public_chat_hall.event.AitFriendEvent;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.room.model.RoomSettingModel;
|
||||
import com.chwl.core.share.bean.SessionType;
|
||||
import com.chwl.core.utils.net.DontWarnObserver;
|
||||
import com.chwl.library.annatation.ActLayoutRes;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
@ActLayoutRes(R.layout.activity_cp_room_invite)
|
||||
public class CpRoomInviteActivity extends BaseBindingActivity<ActivityCpRoomInviteBinding> {
|
||||
|
||||
private List<String> uids = new ArrayList<>();
|
||||
private List<String> userNames = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
EventBus.getDefault().register(this);
|
||||
initTitleBar(ResUtil.getString(R.string.avroom_activity_cproominviteactivity_01));
|
||||
getSupportFragmentManager().beginTransaction().add(R.id.content, new InviteFriendListFragment(), null).commitAllowingStateLoss();
|
||||
|
||||
mBinding.tvInvite.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (AvRoomDataManager.get().mCurrentRoomInfo == null) return;
|
||||
if (uids.size() == 0) {
|
||||
toast(ResUtil.getString(R.string.avroom_activity_cproominviteactivity_02));
|
||||
return;
|
||||
}
|
||||
String uid = "";
|
||||
for (int i = 0; i < uids.size(); i++) {
|
||||
String targetUid = uids.get(i);
|
||||
String nick = userNames.get(i);
|
||||
uid += uids.get(i) + ",";
|
||||
int sessionType = SessionType.P2P;
|
||||
IMNetEaseManager.get().sendSharingRoomMessage(sessionType, targetUid);
|
||||
}
|
||||
|
||||
RoomSettingModel model = new RoomSettingModel();
|
||||
|
||||
model.invite(AvRoomDataManager.get().mCurrentRoomInfo.getUid(), uid)
|
||||
.flatMap((Function<String, SingleSource<RoomInfo>>) s -> updateRoomInfo("", RoomInfo.IS_INVITE))
|
||||
.subscribe(new DontWarnObserver<RoomInfo>() {
|
||||
@Override
|
||||
public void accept(RoomInfo roomInfo, String error) {
|
||||
super.accept(roomInfo, error);
|
||||
if (error != null) {
|
||||
toast(error);
|
||||
} else {
|
||||
toast(ResUtil.getString(R.string.avroom_activity_cproominviteactivity_03));
|
||||
finish();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private Single<RoomInfo> updateRoomInfo(String encryptPwd, String limitType) {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null) {
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.avroom_activity_cproominviteactivity_04)));
|
||||
}
|
||||
//更新房间接口调用成功后,会发事件RoomEvent.ROOM_INFO_UPDATE
|
||||
RoomSettingModel model = new RoomSettingModel();
|
||||
if (AvRoomDataManager.get().isRoomOwner()) {
|
||||
return model.updateRoomInfo(roomInfo.title,
|
||||
roomInfo.getRoomDesc(),
|
||||
roomInfo.getIntroduction(),
|
||||
encryptPwd,
|
||||
roomInfo.getRoomTag(),
|
||||
roomInfo.tagId,
|
||||
AuthModel.get().getCurrentUid(),
|
||||
AuthModel.get().getTicket(),
|
||||
roomInfo.isHasAnimationEffect(),
|
||||
roomInfo.getAudioQuality(),
|
||||
limitType,
|
||||
roomInfo.isPureMode(),
|
||||
roomInfo.getType(),
|
||||
roomInfo.getMgId());
|
||||
} else {
|
||||
return model.updateByAdmin(roomInfo.getUid(), roomInfo.title,
|
||||
roomInfo.getRoomDesc(),
|
||||
roomInfo.getIntroduction(),
|
||||
encryptPwd,
|
||||
roomInfo.getRoomTag(),
|
||||
roomInfo.tagId,
|
||||
AuthModel.get().getCurrentUid(),
|
||||
AuthModel.get().getTicket(),
|
||||
roomInfo.isHasAnimationEffect(),
|
||||
roomInfo.getAudioQuality(),
|
||||
roomInfo.isPureMode());
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void countingAitFriends(AitFriendEvent event) {
|
||||
switch (event.getType()) {
|
||||
case AitFriendEvent.TYPE_ADD:
|
||||
if (uids.size() == 20) {
|
||||
toast(ResUtil.getString(R.string.avroom_activity_cproominviteactivity_05));
|
||||
return;
|
||||
}
|
||||
if (!uids.contains(event.getUid())) {
|
||||
uids.add(event.getUid());
|
||||
userNames.add(event.getNick());
|
||||
}
|
||||
break;
|
||||
|
||||
case AitFriendEvent.TYTPE_REMOVE:
|
||||
if (uids.contains(event.getUid())) {
|
||||
uids.remove(event.getUid());
|
||||
userNames.remove(event.getNick());
|
||||
}
|
||||
break;
|
||||
}
|
||||
initTitleBar(ResUtil.getString(R.string.avroom_activity_cproominviteactivity_06) + uids.size() + "/20)");
|
||||
}
|
||||
}
|
@@ -7,6 +7,7 @@ import android.text.TextUtils;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
@@ -20,7 +21,6 @@ import com.chwl.app.avroom.view.IRoomInviteView;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.noble.NobleResourceType;
|
||||
import com.chwl.core.room.bean.OnlineChatMember;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
@@ -106,8 +106,9 @@ public class RoomInviteActivity extends BaseMvpActivity<IRoomInviteView, RoomInv
|
||||
getMvpPresenter().requestChatMemberByPage(mPage, time, onlyManager);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRequestChatMemberByPageSuccess(List<OnlineChatMember> memberList, int page) {
|
||||
public void onRequestRoomOnlineListSuccess(List<RoomOnlineUserBean> memberList) {
|
||||
|
||||
}
|
||||
|
||||
|
@@ -7,8 +7,10 @@ import android.view.View;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter;
|
||||
import com.chwl.app.avroom.fragment.RoomCharmListFragment;
|
||||
import com.chwl.app.avroom.fragment.RoomContributeListFragment;
|
||||
import com.chwl.app.base.BaseBindingActivity;
|
||||
@@ -39,18 +41,8 @@ public class RoomRankListActivity extends BaseBindingActivity<ActivityRoomRankLi
|
||||
List<Fragment> list = new ArrayList<>();
|
||||
list.add(RoomCharmListFragment.newInstance());
|
||||
list.add(new RoomContributeListFragment());
|
||||
mBinding.viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return list.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return list.size();
|
||||
}
|
||||
});
|
||||
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
mBinding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(),getLifecycle(),list));
|
||||
mBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
|
||||
|
@@ -1,134 +0,0 @@
|
||||
package com.chwl.app.avroom.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.public_chat_hall.bean.PublicChatHallFriendInfo;
|
||||
import com.chwl.app.public_chat_hall.event.AitFriendEvent;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.app.ui.widget.NobleAvatarView;
|
||||
import com.chwl.core.noble.NobleUtil;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
public class InviteFriendListAdapter extends BaseQuickAdapter<PublicChatHallFriendInfo, BaseViewHolder> {
|
||||
|
||||
private Activity context;
|
||||
|
||||
public InviteFriendListAdapter(Activity context) {
|
||||
super(R.layout.item_public_chat_hall_friend_list);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
private OnItemClickListener onItemClickListener;
|
||||
|
||||
public interface OnItemClickListener {
|
||||
void sendListener(UserInfo attentionInfo);
|
||||
}
|
||||
|
||||
public void setRylListener(OnItemClickListener onClickListener) {
|
||||
onItemClickListener = onClickListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, PublicChatHallFriendInfo pchFriendInfo) {
|
||||
if (pchFriendInfo == null) return;
|
||||
final UserInfo item = pchFriendInfo.getUserInfo();
|
||||
|
||||
CheckBox cbFriend = helper.getView(R.id.cb_friend);
|
||||
|
||||
helper.setText(R.id.tv_userName, item.getNick())
|
||||
.setText(R.id.tv_user_desc, item.getUserDesc() != null ?
|
||||
item.getUserDesc()
|
||||
: helper.itemView.getContext().getResources().getString(R.string.msg_no_user_desc))
|
||||
.setVisible(R.id.view_line, helper.getLayoutPosition() != getItemCount() - 1)
|
||||
;
|
||||
|
||||
NobleAvatarView nobleAvatarView = helper.getView(R.id.noble_avatar_view);
|
||||
nobleAvatarView.setSize(47, 70, 13);
|
||||
nobleAvatarView.setData(item.getAvatar(), item.getNobleUsers());
|
||||
|
||||
|
||||
AppCompatImageView ivGender = helper.getView(R.id.iv_gender);
|
||||
if (item.getGender() == 1) {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_male);
|
||||
} else {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_female);
|
||||
}
|
||||
|
||||
AppCompatImageView ivNobleLevel = helper.getView(R.id.iv_noble_level);
|
||||
if (item.getNobleUsers() != null) {
|
||||
ivNobleLevel.setVisibility(View.VISIBLE);
|
||||
String badgeByLevel = NobleUtil.getBadgeByLevel(item.getNobleUsers().getLevel());
|
||||
if (!TextUtils.isEmpty(badgeByLevel)) {
|
||||
NobleUtil.loadResource(badgeByLevel, ivNobleLevel);
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
AppCompatImageView ivUserLevel = helper.getView(R.id.iv_user_level);
|
||||
ivUserLevel.setVisibility(View.GONE);
|
||||
if (item.getUserLevelVo() != null && !TextUtils.isEmpty(item.getUserLevelVo().getExperUrl())) {
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, item.getUserLevelVo().getExperUrl(), ivUserLevel);
|
||||
}
|
||||
|
||||
AppCompatImageView ivCharmLevel = helper.getView(R.id.iv_charm_level);
|
||||
ivCharmLevel.setVisibility(View.GONE);
|
||||
if (item.getUserLevelVo() != null && !TextUtils.isEmpty(item.getUserLevelVo().getCharmUrl())) {
|
||||
ivCharmLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, item.getUserLevelVo().getCharmUrl(), ivCharmLevel);
|
||||
}
|
||||
|
||||
cbFriend.setChecked(pchFriendInfo.isSelected());
|
||||
// cbFriend.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// onSelect(cbFriend, pchFriendInfo, item);
|
||||
// }
|
||||
// });
|
||||
// cbFriend.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
//
|
||||
// });
|
||||
helper.getView(R.id.container).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onSelect(cbFriend, pchFriendInfo, item);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void onSelect(CheckBox cbFriend, PublicChatHallFriendInfo pchFriendInfo, UserInfo item) {
|
||||
int count = 0;
|
||||
for (PublicChatHallFriendInfo publicChatHallFriendInfo : getData()) {
|
||||
if (publicChatHallFriendInfo.isSelected()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count == 20 && !pchFriendInfo.isSelected()) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_adapter_invitefriendlistadapter_01));
|
||||
return;
|
||||
}
|
||||
cbFriend.setChecked(!cbFriend.isChecked());
|
||||
pchFriendInfo.setSelected(!pchFriendInfo.isSelected());
|
||||
EventBus.getDefault().post(new AitFriendEvent()
|
||||
.setType(pchFriendInfo.isSelected() ? AitFriendEvent.TYPE_ADD : AitFriendEvent.TYTPE_REMOVE)
|
||||
.setUid(String.valueOf(item.getUid()))
|
||||
.setNick(item.getNick()));
|
||||
}
|
||||
|
||||
}
|
@@ -12,6 +12,9 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.chwl.app.utils.NamePlateHelper;
|
||||
import com.chwl.core.level.UserLevelVo;
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
|
||||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||||
import com.netease.nimlib.sdk.uinfo.constant.GenderEnum;
|
||||
@@ -41,19 +44,16 @@ import io.reactivex.disposables.Disposable;
|
||||
* @author Administrator
|
||||
* @date 2017/12/4
|
||||
*/
|
||||
public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<OnlineChatMember, BaseViewHolder> {
|
||||
|
||||
public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<RoomOnlineUserBean, BaseViewHolder> {
|
||||
private boolean mIsHomeParty;
|
||||
private Disposable mDisposable;
|
||||
private Context context;
|
||||
private OnRoomOnlineNumberChangeListener mListener;
|
||||
|
||||
public OnlineUserAdapter(Context context, boolean isHomeParty) {
|
||||
super(null);
|
||||
addItemType(OnlineChatMember.NORMAL, R.layout.list_item_online_user);
|
||||
addItemType(OnlineChatMember.NOBLE, R.layout.list_item_online_user_mystery);
|
||||
addItemType(RoomOnlineUserBean.NORMAL, R.layout.list_item_online_user);
|
||||
addItemType(RoomOnlineUserBean.NOBLE, R.layout.list_item_online_user_mystery);
|
||||
mIsHomeParty = isHomeParty;
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,147 +63,76 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<OnlineChatMembe
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(@NonNull BaseViewHolder baseViewHolder, OnlineChatMember onlineChatMember) {
|
||||
if (onlineChatMember != null && onlineChatMember.chatRoomMember != null) {
|
||||
if (onlineChatMember.getItemType() == OnlineChatMember.NORMAL) {
|
||||
setNormalData(baseViewHolder, onlineChatMember);
|
||||
} else {
|
||||
setMysteryData();
|
||||
}
|
||||
protected void convert(@NonNull BaseViewHolder helper, RoomOnlineUserBean item) {
|
||||
if (item.getItemType() == OnlineChatMember.NOBLE) {
|
||||
return;
|
||||
}
|
||||
// 性别
|
||||
final ImageView sexImage = helper.getView(R.id.sex);
|
||||
if (item.getGender() == 1) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_male);
|
||||
} else if (item.getGender() == 2) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_female);
|
||||
} else {
|
||||
sexImage.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void setMysteryData() {
|
||||
//do nothing
|
||||
}
|
||||
// 昵称
|
||||
helper.setText(R.id.nick, RegexUtil.getPrintableString(item.getNick()));
|
||||
|
||||
private void setNormalData(BaseViewHolder baseViewHolder, OnlineChatMember onlineChatMember) {
|
||||
setSexData(baseViewHolder, onlineChatMember);
|
||||
|
||||
ImageView roomOnlineTag = baseViewHolder.getView(R.id.room_online_tag);
|
||||
ImageView managerLogo = baseViewHolder.getView(R.id.manager_logo);
|
||||
roomOnlineTag.setVisibility(onlineChatMember.isOnMic ? View.VISIBLE : View.GONE);
|
||||
managerLogo.setVisibility((onlineChatMember.isAdmin || onlineChatMember.isRoomOwer)
|
||||
? View.VISIBLE : View.GONE);
|
||||
managerLogo.setImageResource(onlineChatMember.isAdmin ? R.drawable.icon_admin_logo
|
||||
: R.drawable.icon_user_list_room_ownner);
|
||||
|
||||
baseViewHolder.setText(R.id.nick, RegexUtil.getPrintableString(onlineChatMember.chatRoomMember.getNick()));
|
||||
|
||||
NobleAvatarView nobleAvatarView = baseViewHolder.getView(R.id.noble_avatar_view);
|
||||
// 头像
|
||||
NobleAvatarView nobleAvatarView = helper.getView(R.id.noble_avatar_view);
|
||||
nobleAvatarView.setSize(37, 54, 0);
|
||||
nobleAvatarView.setData(onlineChatMember.chatRoomMember);
|
||||
nobleAvatarView.setData(item);
|
||||
|
||||
// 官字
|
||||
baseViewHolder.getView(R.id.iv_user_official).setVisibility(onlineChatMember.isOfficial() ? View.VISIBLE : View.GONE);
|
||||
helper.getView(R.id.iv_user_official).setVisibility(item.isOfficial() ? View.VISIBLE : View.GONE);
|
||||
|
||||
// 管理
|
||||
ImageView ivManager = helper.getView(R.id.manager_logo);
|
||||
if (item.getMemberType() != null && item.getMemberType().equals("MANAGER")) {
|
||||
ivManager.setVisibility(View.VISIBLE);
|
||||
ivManager.setImageResource(R.drawable.icon_admin_logo);
|
||||
} else if (item.getMemberType() != null && item.getMemberType().equals("CREATOR")) {
|
||||
ivManager.setVisibility(View.VISIBLE);
|
||||
ivManager.setImageResource(R.drawable.icon_user_list_room_ownner);
|
||||
} else {
|
||||
ivManager.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 在麦
|
||||
ImageView ivMic = helper.getView(R.id.room_online_tag);
|
||||
ivMic.setVisibility(item.isInMic() ? View.VISIBLE : View.GONE);
|
||||
|
||||
|
||||
//等级
|
||||
UserLevelVo levelVo = item.getUserLevelVo();
|
||||
String experLevelUrl = null;
|
||||
String charmLevelUrl = null;
|
||||
if (levelVo != null) {
|
||||
experLevelUrl = levelVo.getExperUrl();
|
||||
charmLevelUrl = levelVo.getCharmUrl();
|
||||
}
|
||||
//经验等级
|
||||
AppCompatImageView ivUserExper = baseViewHolder.getView(R.id.iv_user_exper);
|
||||
String experLevelUrl = NobleUtil.getLevel(UserLevelResourceType.EXPER_URL, onlineChatMember.chatRoomMember);
|
||||
AppCompatImageView ivUserExper = helper.getView(R.id.iv_user_exper);
|
||||
boolean isExperLevelUrlEmpty = TextUtils.isEmpty(experLevelUrl);
|
||||
ivUserExper.setVisibility(!isExperLevelUrlEmpty ? View.VISIBLE : View.GONE);
|
||||
if (!isExperLevelUrlEmpty) {
|
||||
ImageLoadUtils.loadImage(mContext, experLevelUrl, ivUserExper);
|
||||
}
|
||||
//魅力等级
|
||||
AppCompatImageView ivUserCharm = baseViewHolder.getView(R.id.iv_user_charm);
|
||||
String charmLevelUrl = NobleUtil.getLevel(UserLevelResourceType.CHARM_URL, onlineChatMember.chatRoomMember);
|
||||
AppCompatImageView ivUserCharm = helper.getView(R.id.iv_user_charm);
|
||||
boolean isCharmLevelUrlEmpty = TextUtils.isEmpty(charmLevelUrl);
|
||||
ivUserCharm.setVisibility(!isCharmLevelUrlEmpty ? View.VISIBLE : View.GONE);
|
||||
if (!isCharmLevelUrlEmpty) {
|
||||
ImageLoadUtils.loadImage(mContext, charmLevelUrl, ivUserCharm);
|
||||
}
|
||||
|
||||
// 官方主播铭牌标识
|
||||
String fixWord = NobleUtil.getLevel(UserInfo.OAC_NAME, onlineChatMember.chatRoomMember);
|
||||
String iconPic = NobleUtil.getLevel(UserInfo.OAC_ICON, onlineChatMember.chatRoomMember);
|
||||
View inOfficialMask = baseViewHolder.getView(R.id.in_official_mask);
|
||||
if (!TextUtils.isEmpty(fixWord) && !TextUtils.isEmpty(iconPic)) {
|
||||
inOfficialMask.setVisibility(View.VISIBLE);
|
||||
TextView tvOfficialMask = inOfficialMask.findViewById(R.id.tv_official_mask);
|
||||
if (tvOfficialMask != null) {
|
||||
tvOfficialMask.setText(fixWord);
|
||||
}
|
||||
|
||||
ImageView ivOfficialMask = inOfficialMask.findViewById(R.id.iv_official_mask);
|
||||
if (ivOfficialMask != null) {
|
||||
ImageLoadUtils.loadImage(mContext, iconPic, ivOfficialMask);
|
||||
}
|
||||
|
||||
} else {
|
||||
inOfficialMask.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 铭牌
|
||||
String namePlateWord = NobleUtil.getLevel(UserInfo.NAMEPLATE_WORD, onlineChatMember.chatRoomMember);
|
||||
String namePlatePic = NobleUtil.getLevel(UserInfo.NAMEPLATE_PIC, onlineChatMember.chatRoomMember);
|
||||
View inNamePlate = baseViewHolder.getView(R.id.in_nameplate);
|
||||
if (!TextUtils.isEmpty(namePlateWord) && !TextUtils.isEmpty(namePlatePic)) {
|
||||
inNamePlate.setVisibility(View.VISIBLE);
|
||||
TextView tvNamePlate = inNamePlate.findViewById(R.id.tv_official_mask);
|
||||
if (tvNamePlate != null) {
|
||||
tvNamePlate.setText(namePlateWord);
|
||||
}
|
||||
|
||||
ImageView ivNamePlate = inNamePlate.findViewById(R.id.iv_official_mask);
|
||||
if (ivNamePlate != null) {
|
||||
ImageLoadUtils.loadImage(mContext, namePlatePic, ivNamePlate);
|
||||
}
|
||||
|
||||
} else {
|
||||
inNamePlate.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
AppCompatImageView ivUserLevel = baseViewHolder.getView(R.id.iv_noble_level);
|
||||
String resource = (String) NobleUtil.getResource(NobleResourceType.KEY_BADGE, onlineChatMember.chatRoomMember);
|
||||
if (TextUtils.isEmpty(resource)) {
|
||||
ivUserLevel.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
NobleUtil.loadResource(resource, ivUserLevel);
|
||||
}
|
||||
|
||||
private void setSexData(BaseViewHolder baseViewHolder, OnlineChatMember onlineChatMember) {
|
||||
final ImageView sexImage = baseViewHolder.getView(R.id.sex);
|
||||
String gender = NobleUtil.getLevel(UserInfo.GENDER, onlineChatMember.chatRoomMember);
|
||||
if ("1".equals(gender)) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_male);
|
||||
} else if ("2".equals(gender)) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_female);
|
||||
} else {
|
||||
NimUserInfo nimUserInfo = NimUserInfoCache.getInstance().getUserInfo(onlineChatMember.chatRoomMember.getAccount());
|
||||
if (nimUserInfo == null) {
|
||||
NimUserInfoCache.getInstance().getUserInfoFromRemote(onlineChatMember.chatRoomMember.getAccount(),
|
||||
new RequestCallbackWrapper<NimUserInfo>() {
|
||||
@Override
|
||||
public void onResult(int i, NimUserInfo nimUserInfo, Throwable throwable) {
|
||||
if (nimUserInfo != null) {
|
||||
if (nimUserInfo.getGenderEnum() == GenderEnum.MALE) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_male);
|
||||
} else if (nimUserInfo.getGenderEnum() == GenderEnum.FEMALE) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_female);
|
||||
} else {
|
||||
sexImage.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (nimUserInfo.getGenderEnum() == GenderEnum.MALE) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_male);
|
||||
} else if (nimUserInfo.getGenderEnum() == GenderEnum.FEMALE) {
|
||||
sexImage.setVisibility(View.VISIBLE);
|
||||
sexImage.setImageResource(R.drawable.ic_gender_female);
|
||||
} else {
|
||||
sexImage.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
View inNamePlate = helper.getView(R.id.in_nameplate);
|
||||
NamePlateHelper.INSTANCE.load(inNamePlate, inNamePlate.findViewById(R.id.tv_official_mask), inNamePlate.findViewById(R.id.iv_official_mask), item);
|
||||
}
|
||||
|
||||
private void registerRoomEvent() {
|
||||
@@ -240,7 +169,7 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<OnlineChatMembe
|
||||
updateMemberIn(roomEvent);
|
||||
} else if (event == RoomEvent.ROOM_MEMBER_EXIT) {
|
||||
if (mListener != null) {
|
||||
mListener.onMemberExit(roomEvent.getAccount(), mData);
|
||||
mListener.onMemberExit(roomEvent.getAccount());
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -248,19 +177,19 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<OnlineChatMembe
|
||||
|
||||
private void updateMemberIn(RoomEvent roomEvent) {
|
||||
if (mListener != null) {
|
||||
mListener.onMemberIn(roomEvent.getAccount(), mData);
|
||||
mListener.onMemberIn(roomEvent.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
private void updateManager(RoomEvent roomEvent) {
|
||||
if (mListener != null)
|
||||
mListener.onUpdateMemberManager(roomEvent.getAccount(),
|
||||
roomEvent.getEvent() == RoomEvent.ROOM_MANAGER_REMOVE, mData);
|
||||
roomEvent.getEvent() == RoomEvent.ROOM_MANAGER_REMOVE);
|
||||
}
|
||||
|
||||
private void updateDownUpMic(String account, boolean isUpMic) {
|
||||
if (mListener != null) {
|
||||
mListener.onMemberDownUpMic(account, isUpMic, mData);
|
||||
mListener.onMemberDownUpMic(account, isUpMic);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,34 +210,29 @@ public class OnlineUserAdapter extends BaseMultiItemQuickAdapter<OnlineChatMembe
|
||||
*
|
||||
* @param account
|
||||
*/
|
||||
void onMemberIn(String account, List<OnlineChatMember> dataList);
|
||||
void onMemberIn(String account);
|
||||
|
||||
/**
|
||||
* 成员出去回调
|
||||
*
|
||||
* @param account
|
||||
* @param dataList
|
||||
*/
|
||||
void onMemberExit(String account, List<OnlineChatMember> dataList);
|
||||
void onMemberExit(String account);
|
||||
|
||||
/**
|
||||
* 成员上下麦更新
|
||||
*
|
||||
* @param account
|
||||
* @param isUpMic
|
||||
* @param dataList
|
||||
*/
|
||||
void onMemberDownUpMic(String account, boolean isUpMic,
|
||||
List<OnlineChatMember> dataList);
|
||||
void onMemberDownUpMic(String account, boolean isUpMic);
|
||||
|
||||
/**
|
||||
* 设置管理员回调
|
||||
*
|
||||
* @param account
|
||||
* @param dataList
|
||||
*/
|
||||
void onUpdateMemberManager(String account, boolean isRemoveManager,
|
||||
List<OnlineChatMember> dataList);
|
||||
void onUpdateMemberManager(String account, boolean isRemoveManager);
|
||||
|
||||
void addMemberBlack();
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ class RoomPKSearchAdapter :
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: SimpleRoomInfo) {
|
||||
helper.setText(R.id.tv_room_title,item.title.subAndReplaceDot(7))
|
||||
.setText(R.id.tv_room_id,"Hiyoo号:${item.erbanNo}")
|
||||
.setText(R.id.tv_room_id,"ID:${item.erbanNo}")
|
||||
.setChecked(R.id.check_box,item.checked)
|
||||
ImageLoadUtils.loadImage(mContext,item.avatar,helper.getView(R.id.iv_avatar))
|
||||
helper.addOnClickListener(R.id.iv_avatar,R.id.check_box)
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package com.chwl.app.avroom.core
|
||||
|
||||
import com.chwl.app.avroom.redpackage.RedPackageHandler
|
||||
import com.chwl.core.support.room.RoomAbility
|
||||
import com.chwl.core.support.room.RoomContext
|
||||
|
||||
@@ -13,7 +12,5 @@ class AudioRoomContext(roomId: Long) : RoomContext(roomId) {
|
||||
|
||||
override fun loadAbility(list: MutableMap<String, RoomAbility>) {
|
||||
super.loadAbility(list)
|
||||
// 红包处理器
|
||||
list[RedPackageHandler::class.java.simpleName] = RedPackageHandler()
|
||||
}
|
||||
}
|
@@ -6,7 +6,7 @@ import android.view.View;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.databinding.DialogDatingVipRuleBinding;
|
||||
import com.chwl.app.treasure_box.widget.dialog.BaseBindingDialog;
|
||||
import com.chwl.app.base.BaseBindingDialog;
|
||||
import com.chwl.library.annatation.ActLayoutRes;
|
||||
|
||||
|
||||
|
@@ -25,6 +25,7 @@ import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.room.model.AvRoomModel
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.example.lib_utils.UiUtils
|
||||
import io.reactivex.disposables.Disposable
|
||||
|
||||
|
||||
@@ -64,8 +65,11 @@ class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity) : PopupWindow() {
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
|
||||
animationStyle = R.style.style_anim_right_in_out
|
||||
if(UiUtils.isRtl(avRoomActivity)){
|
||||
animationStyle = R.style.style_anim_left_in_out
|
||||
}else{
|
||||
animationStyle = R.style.style_anim_right_in_out
|
||||
}
|
||||
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
|
||||
tvExitRoom.setOnClickListener {
|
||||
|
@@ -4,7 +4,7 @@ import android.content.Context
|
||||
import android.view.View
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.DialogRequestUpmicBinding
|
||||
import com.chwl.app.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.chwl.app.base.BaseBindingDialog
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.manager.IMNetEaseManager
|
||||
import com.chwl.core.user.bean.BaseInfo
|
||||
|
@@ -1,68 +0,0 @@
|
||||
package com.chwl.app.avroom.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Display;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.databinding.DialogRoomFreeGiftBinding;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
|
||||
import com.chwl.core.gift.bean.GiftFreeInfo;
|
||||
import com.chwl.library.utils.TimeUtils;
|
||||
|
||||
/**
|
||||
* 房间免费礼物弹窗
|
||||
* Created by wushaocheng on 2022/12/14.
|
||||
*/
|
||||
public class RoomFreeGiftDialog extends BottomSheetDialog implements View.OnClickListener {
|
||||
private Context context;
|
||||
private GiftFreeInfo giftFreeInfo;
|
||||
private DialogRoomFreeGiftBinding binding;
|
||||
|
||||
public RoomFreeGiftDialog(Context context, GiftFreeInfo giftFreeInfo) {
|
||||
super(context, R.style.ErbanBottomSheetDialog);
|
||||
this.context = context;
|
||||
this.giftFreeInfo = giftFreeInfo;
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setCanceledOnTouchOutside(true);
|
||||
setContentView(R.layout.dialog_room_free_gift);
|
||||
binding = DataBindingUtil.bind(findViewById(R.id.dialog_container));
|
||||
binding.setClick(this);
|
||||
|
||||
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
Display d = windowManager.getDefaultDisplay();
|
||||
DisplayMetrics realDisplayMetrics = new DisplayMetrics();
|
||||
d.getRealMetrics(realDisplayMetrics);
|
||||
WindowManager.LayoutParams params = getWindow().getAttributes();
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
params.height = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
params.dimAmount = 0f;
|
||||
getWindow().setAttributes(params);
|
||||
|
||||
binding.tvTop.setText(context.getString(R.string.dialog_free_gift_top, TimeUtils.secondsToTime(giftFreeInfo.getFirstSecond())));
|
||||
binding.tvBottom.setText(String.format(context.getString(R.string.dialog_free_gift_bottom_text), giftFreeInfo.getGiftName(), giftFreeInfo.getMaxStage()));
|
||||
ImageLoadUtilsV2.loadImage(binding.ivGiftIcon, giftFreeInfo.getGiftUrl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.iv_delete:
|
||||
case R.id.tv_know:
|
||||
dismiss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,154 +0,0 @@
|
||||
package com.chwl.app.avroom.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Display;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.activity.CpRoomInviteActivity;
|
||||
import com.chwl.app.avroom.widget.EditRoomTitleDialog;
|
||||
import com.chwl.app.databinding.DialogRoomImposeBinding;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.room.model.RoomSettingModel;
|
||||
import com.chwl.core.utils.net.DontWarnObserver;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.chwl.library.utils.codec.DESUtils;
|
||||
|
||||
public class RoomImposeDialog extends BottomSheetDialog implements View.OnClickListener {
|
||||
private Context context;
|
||||
private DialogRoomImposeBinding binding;
|
||||
|
||||
public RoomImposeDialog(Context context) {
|
||||
super(context, R.style.ErbanBottomSheetDialogDimFalse);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setCanceledOnTouchOutside(true);
|
||||
setContentView(R.layout.dialog_room_impose);
|
||||
binding = DataBindingUtil.bind(findViewById(R.id.dialog_container));
|
||||
binding.setClick(this);
|
||||
|
||||
FrameLayout bottomSheet = findViewById(R.id.design_bottom_sheet);
|
||||
if (bottomSheet != null) {
|
||||
BottomSheetBehavior.from(bottomSheet).setSkipCollapsed(false);
|
||||
BottomSheetBehavior.from(bottomSheet).setPeekHeight(
|
||||
UIUtil.dip2px(context, 270) +
|
||||
(Utils.hasSoftKeys(context) ? Utils.getNavigationBarHeight(context) : 0));
|
||||
}
|
||||
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
Display d = windowManager.getDefaultDisplay();
|
||||
DisplayMetrics realDisplayMetrics = new DisplayMetrics();
|
||||
d.getRealMetrics(realDisplayMetrics);
|
||||
WindowManager.LayoutParams params = getWindow().getAttributes();
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
params.height = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
getWindow().setAttributes(params);
|
||||
getWindow().setWindowAnimations(R.style.ErbanCommonWindowAnimationStyle);
|
||||
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null) return;
|
||||
if ("lock".equals(roomInfo.getLimitType()) || !TextUtils.isEmpty(roomInfo.roomPwd)) {
|
||||
binding.tvPwd.setTextColor(context.getResources().getColor(R.color.appColor));
|
||||
} else if ("isFriend".equals(roomInfo.getLimitType())) {
|
||||
binding.tvFriend.setTextColor(context.getResources().getColor(R.color.appColor));
|
||||
} else if ("isInvite".equals(roomInfo.getLimitType())) {
|
||||
binding.tvInvite.setTextColor(context.getResources().getColor(R.color.appColor));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null) return;
|
||||
switch (v.getId()) {
|
||||
case R.id.tv_invite:
|
||||
context.startActivity(new Intent(context, CpRoomInviteActivity.class));
|
||||
dismiss();
|
||||
break;
|
||||
case R.id.tv_friend:
|
||||
updateRoomInfo("", roomInfo, RoomInfo.IS_FRIEND);
|
||||
break;
|
||||
case R.id.tv_pwd:
|
||||
String oldContent = "";
|
||||
try {
|
||||
oldContent = DESUtils.DESAndBase64Decrypt(roomInfo.roomPwd);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
EditRoomTitleDialog pwdDialog = new EditRoomTitleDialog(context,
|
||||
EditRoomTitleDialog.TYPE_EDIT_PASSWORD, oldContent);
|
||||
pwdDialog.setOnEditTitleListner(new EditRoomTitleDialog.OnEditTitleListner() {
|
||||
@Override
|
||||
public void onEditPwdListner(String newPwd) {
|
||||
String encryptPwd = DESUtils.DESAndBase64(newPwd);
|
||||
|
||||
if (encryptPwd.equals(roomInfo.getRoomPwd())) {
|
||||
return;
|
||||
}
|
||||
updateRoomInfo(encryptPwd, roomInfo, RoomInfo.LOCK);
|
||||
}
|
||||
});
|
||||
pwdDialog.show();
|
||||
break;
|
||||
case R.id.tv_cancel_limit:
|
||||
updateRoomInfo("", roomInfo, "");
|
||||
break;
|
||||
case R.id.btn_cancel:
|
||||
dismiss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateRoomInfo(String encryptPwd, RoomInfo roomInfo, String limitType) {
|
||||
//更新房间接口调用成功后,会发事件RoomEvent.ROOM_INFO_UPDATE
|
||||
RoomSettingModel model = new RoomSettingModel();
|
||||
model.updateRoomInfo(roomInfo.title,
|
||||
roomInfo.getRoomDesc(),
|
||||
roomInfo.getIntroduction(),
|
||||
encryptPwd,
|
||||
roomInfo.getRoomTag(),
|
||||
roomInfo.tagId,
|
||||
AuthModel.get().getCurrentUid(),
|
||||
AuthModel.get().getTicket(),
|
||||
roomInfo.isHasAnimationEffect(),
|
||||
roomInfo.getAudioQuality(),
|
||||
limitType,
|
||||
roomInfo.isPureMode(),
|
||||
roomInfo.getType(),
|
||||
roomInfo.getMgId())
|
||||
.subscribe(new DontWarnObserver<RoomInfo>() {
|
||||
@Override
|
||||
public void accept(RoomInfo roomInfo, String error) {
|
||||
super.accept(roomInfo, error);
|
||||
if (error != null) {
|
||||
SingleToastUtil.showToast(error);
|
||||
} else {
|
||||
if (!limitType.equals(RoomInfo.IS_INVITE)) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_dialog_roomimposedialog_04));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
dismiss();
|
||||
}
|
||||
}
|
@@ -127,7 +127,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
addOpenOrClosePublicScreenAction(optAdapter);
|
||||
// addRedPackageSwitch();
|
||||
addCleanScreenAction(optAdapter);
|
||||
addRoomLimit(optAdapter);
|
||||
// addRoomLimit(optAdapter);
|
||||
addGiftValueAction(optAdapter);
|
||||
addSuperAdminAction(optAdapter);
|
||||
addShieldReportAction(optAdapter);
|
||||
@@ -271,7 +271,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
|
||||
private void addRoomAlbum(OptAdapter optAdapter) {
|
||||
if (AvRoomDataManager.get().isHasRoomAlbum()) {
|
||||
optAdapter.addData(new OptAction(R.drawable.ic_room_operation_album, "房间相册", () -> {
|
||||
optAdapter.addData(new OptAction(R.drawable.ic_room_operation_album, ResUtil.getString(R.string.room_album), () -> {
|
||||
RoomAlbumActivity.start(getContext());
|
||||
}));
|
||||
}
|
||||
@@ -361,12 +361,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
*/
|
||||
private void addRoomLimit(OptAdapter optAdapter) {
|
||||
//添加
|
||||
if (AvRoomDataManager.get().isRoomOwner() && AvRoomDataManager.get().isCpRoom()) {
|
||||
optAdapter.addData(new OptAction(R.drawable.icon_room_limit,
|
||||
ResUtil.getString(R.string.avroom_dialog_roomoperationdialog_023),
|
||||
() -> new RoomImposeDialog(context).show()));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -5,7 +5,7 @@ import android.view.View
|
||||
import com.donkingliang.labels.LabelsView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.DialogSelectLabelBinding
|
||||
import com.chwl.app.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.chwl.app.base.BaseBindingDialog
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_select_label)
|
||||
|
@@ -1,498 +0,0 @@
|
||||
package com.chwl.app.avroom.firstcharge
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.PopupWindow
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
//import com.appsflyer.AFInAppEventParameterName
|
||||
//import com.appsflyer.AFInAppEventType
|
||||
//import com.appsflyer.AppsFlyerLib
|
||||
import com.example.module_base.support.billing.IBillingResult
|
||||
import com.example.module_base.support.billing.IBillingService
|
||||
import com.example.module_base.support.billing.IProductDetails
|
||||
import com.example.module_base.support.billing.IPurchase
|
||||
import com.example.module_base.support.google.IGoogleService
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingActivity
|
||||
import com.chwl.app.databinding.DialogFirstChargeBinding
|
||||
import com.chwl.app.ui.setting.ModifyPwdActivity
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.chwl.core.Constants
|
||||
import com.chwl.core.DemoCache
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.pay.bean.FirstChargeGoods
|
||||
import com.chwl.core.pay.bean.FirstChargeReward
|
||||
import com.chwl.core.pay.bean.PayRecordId
|
||||
import com.chwl.core.pay.event.FirstChargeEvent
|
||||
import com.chwl.core.room.model.AvRoomModel
|
||||
import com.chwl.core.utils.net.IgnoreException
|
||||
import com.chwl.core.utils.extension.toast
|
||||
import com.chwl.library.common.util.DeviceUtil
|
||||
import com.chwl.library.utils.AppMetaDataUtil
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* author: wushaocheng
|
||||
* time: 2022/2/21
|
||||
* desc: 限时首充
|
||||
*/
|
||||
class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
IBillingService.Listener {
|
||||
|
||||
private var goodsList: List<FirstChargeGoods>? = null
|
||||
|
||||
private var currGoods: FirstChargeGoods? = null
|
||||
|
||||
private lateinit var helpPopupWindow: PopupWindow
|
||||
private var billingManager: IBillingService? = null
|
||||
private var position = -1
|
||||
|
||||
private val mReward2Adapter by lazy { Reward2Adapter() }
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun start(context: Context) {
|
||||
val starter = Intent(context, FirstChargeDialog::class.java)
|
||||
context.startActivity(starter)
|
||||
}
|
||||
|
||||
private const val BIND_CODE_GOLD = 200
|
||||
private const val TAG = "FirstChargeDialog"
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun init() {
|
||||
//这里的height用MATCH_PARENT状态栏会被顶上去,不知道什么鬼
|
||||
val height = ScreenUtil.screenHeight - ScreenUtil.getStatusBarHeight(context)
|
||||
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, height)
|
||||
window.setGravity(Gravity.CENTER)
|
||||
EventBus.getDefault().register(this)
|
||||
binding.rbPlanA.setOnClickListener {
|
||||
binding.rbPlanA.isChecked = true
|
||||
binding.rbPlanB.isChecked = false
|
||||
binding.rbPlanC.isChecked = false
|
||||
binding.ivArrow1.visibility = View.VISIBLE
|
||||
binding.ivArrow2.visibility = View.INVISIBLE
|
||||
binding.ivArrow3.visibility = View.INVISIBLE
|
||||
updateCurrGoods(goodsList?.getOrNull(0))
|
||||
position = 0
|
||||
}
|
||||
binding.rbPlanB.setOnClickListener {
|
||||
binding.rbPlanA.isChecked = false
|
||||
binding.rbPlanB.isChecked = true
|
||||
binding.rbPlanC.isChecked = false
|
||||
binding.ivArrow1.visibility = View.INVISIBLE
|
||||
binding.ivArrow2.visibility = View.VISIBLE
|
||||
binding.ivArrow3.visibility = View.INVISIBLE
|
||||
updateCurrGoods(goodsList?.getOrNull(1))
|
||||
position = 1
|
||||
}
|
||||
binding.rbPlanC.setOnClickListener {
|
||||
binding.rbPlanA.isChecked = false
|
||||
binding.rbPlanB.isChecked = false
|
||||
binding.rbPlanC.isChecked = true
|
||||
binding.ivArrow1.visibility = View.INVISIBLE
|
||||
binding.ivArrow2.visibility = View.INVISIBLE
|
||||
binding.ivArrow3.visibility = View.VISIBLE
|
||||
updateCurrGoods(goodsList?.getOrNull(2))
|
||||
position = 2
|
||||
}
|
||||
binding.ivHelp.setOnClickListener { showHelpPopup() }
|
||||
binding.tvCharge.setOnClickListener {
|
||||
val channel = AppMetaDataUtil.getChannelID()
|
||||
if (position == -1) {
|
||||
ResUtil.getString(R.string.avroom_firstcharge_firstchargedialog_01).toast()
|
||||
}
|
||||
else{
|
||||
goodsList?.get(position)?.let { charge ->
|
||||
buyProduct(charge.productDetails)
|
||||
}
|
||||
}
|
||||
// if (channel.equals(Constants.GOOGLE)) {
|
||||
// goodsList?.get(position)?.let { charge ->
|
||||
// buyProduct(charge.productDetails)
|
||||
// }
|
||||
// } else {
|
||||
// CommonWebViewActivity.start(
|
||||
// context,
|
||||
// UriProvider.getOfficialPay(6, DeviceUtil.getDeviceId(context))
|
||||
// )
|
||||
// }
|
||||
}
|
||||
|
||||
binding.recyclerView.layoutManager = GridLayoutManager(this, 6)
|
||||
//重新定义每行的item数量
|
||||
mReward2Adapter.setSpanSizeLookup { _, position ->
|
||||
val data = mReward2Adapter.data
|
||||
var spanSize = 0
|
||||
when (data[position].itemType) {
|
||||
FirstChargeReward.ONE -> {
|
||||
spanSize = 6
|
||||
}
|
||||
|
||||
FirstChargeReward.TWO_LEFT -> {
|
||||
spanSize = 3
|
||||
}
|
||||
|
||||
FirstChargeReward.TWO_RIGHT -> {
|
||||
spanSize = 3
|
||||
}
|
||||
|
||||
FirstChargeReward.THREE -> {
|
||||
spanSize = 2
|
||||
}
|
||||
|
||||
FirstChargeReward.TWO_LEFT_SMALL -> {
|
||||
spanSize = 3
|
||||
}
|
||||
|
||||
FirstChargeReward.TWO_RIGHT_SMALL -> {
|
||||
spanSize = 3
|
||||
}
|
||||
}
|
||||
spanSize
|
||||
}
|
||||
binding.recyclerView.adapter = mReward2Adapter
|
||||
|
||||
PayModel.get().firstChargeList
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe({
|
||||
initData(it)
|
||||
}, {
|
||||
it.printStackTrace()
|
||||
SingleToastUtil.showToast(it.message)
|
||||
finish()
|
||||
})
|
||||
binding.viewBg.setOnClickListener {
|
||||
//do nothing
|
||||
}
|
||||
binding.root.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
|
||||
DemoCache.saveBoolean("FirstCharge", true)
|
||||
AvRoomModel.get().postFirstCharge()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun initData(goodsList: List<FirstChargeGoods>) {
|
||||
this.goodsList = goodsList
|
||||
binding.rbPlanA.isChecked = true
|
||||
updateCurrGoods(goodsList.getOrNull(0))
|
||||
position = 0
|
||||
when (goodsList.size) {
|
||||
1 -> {
|
||||
binding.rbPlanB.visibility = View.GONE
|
||||
binding.rbPlanC.visibility = View.GONE
|
||||
binding.rbPlanA.text = "$${goodsList[0].chargeMoney}"
|
||||
}
|
||||
|
||||
2 -> {
|
||||
binding.rbPlanC.visibility = View.GONE
|
||||
binding.rbPlanA.text = "$${goodsList[0].chargeMoney}"
|
||||
binding.rbPlanB.text = "$${goodsList[1].chargeMoney}"
|
||||
}
|
||||
|
||||
3 -> {
|
||||
binding.rbPlanA.text = "$${goodsList[0].chargeMoney}"
|
||||
binding.rbPlanB.text = "$${goodsList[1].chargeMoney}"
|
||||
binding.rbPlanC.text = "$${goodsList[2].chargeMoney}"
|
||||
}
|
||||
}
|
||||
if (AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
initBilling()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initBilling() {
|
||||
billingManager = IGoogleService.newBillingService(this,this)
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onBillingClientSetupFinished() {
|
||||
Log.i(TAG, "onBillingClientSetupFinished")
|
||||
goodsList?.let { initProduceList(it) }
|
||||
}
|
||||
|
||||
private fun initProduceList(goodsList: List<FirstChargeGoods>) {
|
||||
val productKeys: MutableList<String> = ArrayList()
|
||||
for (bean in goodsList) {
|
||||
productKeys.add(bean.chargeProdId)
|
||||
}
|
||||
billingManager?.querySkuDetailsAsync(productKeys,object :IBillingService.ProductDetailsResponseListener{
|
||||
override fun onProductDetailsResponse(
|
||||
billingResult: IBillingResult,
|
||||
productDetails: List<IProductDetails>
|
||||
) {
|
||||
if (!billingResult.isResponseOk()) {
|
||||
Log.w(
|
||||
TAG,
|
||||
"Unsuccessful query for Error code: " + billingResult.getResponseCode()
|
||||
)
|
||||
}else if (productDetails.isNotEmpty()) {
|
||||
for (chargeBean in goodsList) {
|
||||
for (skuDetails in productDetails) {
|
||||
if (skuDetails.getProductId() == chargeBean.chargeProdId) {
|
||||
chargeBean.productDetails = skuDetails
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*商品更新回调*/
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onPurchasesUpdated(purchases: List<IPurchase>) {
|
||||
for (purchase in purchases) {
|
||||
if (purchase.isPurchasedState() &&
|
||||
purchase.getAccountIdentifiers() != null
|
||||
) {
|
||||
PayModel.get().verifyOrder(
|
||||
purchase.getAccountIdentifiers()!!.getObfuscatedAccountId(),
|
||||
purchase.getProducts()[0],
|
||||
purchase.getPackageName(),
|
||||
purchase.getPurchaseToken()
|
||||
)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(
|
||||
{ token: String ->
|
||||
//L.i("token=" + token);
|
||||
billingManager?.consumeAsync(token)
|
||||
// var skuDetails: IProductDetails? = null
|
||||
// val goodList = goodsList
|
||||
// if (!goodList.isNullOrEmpty()) {
|
||||
// for (datum in goodList) {
|
||||
// if (datum.chargeProdId == purchase.getProducts()[0]) {
|
||||
// skuDetails = datum.productDetails
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (skuDetails != null) {
|
||||
// val eventValue: MutableMap<String, Any> =
|
||||
// HashMap()
|
||||
// eventValue[AFInAppEventParameterName.CONTENT_TYPE] = "Gold"
|
||||
// eventValue[AFInAppEventParameterName.QUANTITY] = 1
|
||||
// eventValue[AFInAppEventParameterName.CONTENT_ID] = purchase.getOrderId()!!
|
||||
// skuDetails.getOneTimePurchaseOfferDetails()?.let {
|
||||
// eventValue[AFInAppEventParameterName.REVENUE] =
|
||||
// it.getPriceAmountMicros() / 1000000f
|
||||
// eventValue["Price"] = it.getFormattedPrice()
|
||||
// eventValue[AFInAppEventParameterName.CURRENCY] =
|
||||
// it.getPriceCurrencyCode()
|
||||
// }
|
||||
// AppsFlyerLib.getInstance().logEvent(
|
||||
// applicationContext,
|
||||
// AFInAppEventType.PURCHASE,
|
||||
// eventValue
|
||||
// )
|
||||
// }
|
||||
}
|
||||
) { throwable: Throwable ->
|
||||
if (throwable !is IgnoreException) {
|
||||
SingleToastUtil.showToast(throwable.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Log.i(TAG, "onPurchasesUpdated")
|
||||
}
|
||||
|
||||
override fun onConsumeFinished(token: String?, result: Int) {
|
||||
|
||||
}
|
||||
|
||||
override fun onFailedHandle(result: Int) {
|
||||
|
||||
}
|
||||
|
||||
/*购买商品*/
|
||||
@SuppressLint("CheckResult")
|
||||
fun buyProduct(skuDetails: IProductDetails?) {
|
||||
if (skuDetails != null) {
|
||||
Log.d(TAG, "BuyProduct:" + skuDetails.getProductId())
|
||||
PayModel.get().placeOrder(skuDetails.getProductId())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(
|
||||
{ recordId: PayRecordId ->
|
||||
billingManager?.initiatePurchaseFlow(
|
||||
skuDetails,
|
||||
recordId.recordId
|
||||
)
|
||||
}
|
||||
) { throwable: Throwable ->
|
||||
SingleToastUtil.showToast(
|
||||
throwable.message
|
||||
)
|
||||
}
|
||||
} else {
|
||||
Log.w(TAG, "skuDetails ==null")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (billingManager?.isServiceConnected() == true) {
|
||||
billingManager?.onQueryPurchases()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
billingManager?.destroy()
|
||||
}
|
||||
|
||||
private fun updateCurrGoods(firstChargeGoods: FirstChargeGoods?) {
|
||||
firstChargeGoods?.let {
|
||||
currGoods = it
|
||||
val giveMoneyIndex = it.chargeProdTitle.lastIndexOf(it.giveMoney)
|
||||
if (giveMoneyIndex == -1) {
|
||||
binding.tvTitle.text = it.chargeProdTitle
|
||||
} else {
|
||||
val builder = SpannableStringBuilder(it.chargeProdTitle)
|
||||
builder.setSpan(
|
||||
ForegroundColorSpan(Color.parseColor("#BE5AF6")), giveMoneyIndex,
|
||||
giveMoneyIndex + (it.giveMoney?.length ?: 0),
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
binding.tvTitle.text = builder
|
||||
}
|
||||
val firstChargeRewardList = it.firstChargeRewardList ?: return
|
||||
when (firstChargeRewardList.size) {
|
||||
1 -> {
|
||||
for (bean in firstChargeRewardList) {
|
||||
bean.itemType = FirstChargeReward.ONE
|
||||
}
|
||||
}
|
||||
|
||||
2 -> {
|
||||
for (i in firstChargeRewardList.indices) {
|
||||
if (i == 0) {
|
||||
firstChargeRewardList[i].itemType = FirstChargeReward.TWO_LEFT
|
||||
} else if (i == 1) {
|
||||
firstChargeRewardList[i].itemType = FirstChargeReward.TWO_RIGHT
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
3 -> {
|
||||
for (bean in firstChargeRewardList) {
|
||||
bean.itemType = FirstChargeReward.THREE
|
||||
}
|
||||
}
|
||||
|
||||
4 -> {
|
||||
for (i in firstChargeRewardList.indices) {
|
||||
if ((i + 1) % 2 != 0) {
|
||||
firstChargeRewardList[i].itemType = FirstChargeReward.TWO_LEFT
|
||||
} else {
|
||||
firstChargeRewardList[i].itemType = FirstChargeReward.TWO_RIGHT
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else -> {
|
||||
if (firstChargeRewardList.size % 3 == 0) {
|
||||
for (bean in firstChargeRewardList) {
|
||||
bean.itemType = FirstChargeReward.THREE
|
||||
}
|
||||
} else {
|
||||
val num = firstChargeRewardList.size / 3
|
||||
val residueNUm = firstChargeRewardList.size - (num * 3)
|
||||
for (i in firstChargeRewardList.indices) {
|
||||
if ((i + 1) <= num * 3) {
|
||||
firstChargeRewardList[i].itemType = FirstChargeReward.THREE
|
||||
} else if (residueNUm == 2) {
|
||||
if (firstChargeRewardList.size - (i + 1) == 1) {
|
||||
firstChargeRewardList[i].itemType =
|
||||
FirstChargeReward.TWO_LEFT_SMALL
|
||||
} else if (firstChargeRewardList.size - (i + 1) == 0) {
|
||||
firstChargeRewardList[i].itemType =
|
||||
FirstChargeReward.TWO_RIGHT_SMALL
|
||||
}
|
||||
} else {
|
||||
firstChargeRewardList[i].itemType = FirstChargeReward.THREE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mReward2Adapter.setNewData(it.firstChargeRewardList)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showHelpPopup() {
|
||||
if (currGoods == null) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_firstcharge_firstchargedialog_02))
|
||||
return
|
||||
}
|
||||
val contentView: View
|
||||
if (!this::helpPopupWindow.isInitialized) {
|
||||
contentView =
|
||||
LayoutInflater.from(context)
|
||||
.inflate(R.layout.layout_first_charge_help_view, null)
|
||||
contentView.findViewById<TextView>(R.id.tv_content).text =
|
||||
currGoods?.chargeProdDesc?.replace("\\n", "\n")?.replace("\\r", "\r")
|
||||
helpPopupWindow =
|
||||
PopupWindow(
|
||||
contentView,
|
||||
ScreenUtil.dip2px(150f),
|
||||
WindowManager.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
helpPopupWindow.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
helpPopupWindow.isOutsideTouchable = true
|
||||
helpPopupWindow.isFocusable = true
|
||||
}
|
||||
|
||||
try {
|
||||
helpPopupWindow.showAsDropDown(
|
||||
binding.ivHelp,
|
||||
UIUtil.dip2px(context, 18.0), UIUtil.dip2px(context, -3.0), Gravity.END
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
dialogManager.dismissDialog()
|
||||
if (resultCode != RESULT_OK) {
|
||||
return
|
||||
}
|
||||
if (requestCode == BIND_CODE_GOLD) {
|
||||
ModifyPwdActivity.start(this, ModifyPwdActivity.FOGERT_PAY_PWD)
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onFirstRechargeEvent(event: FirstChargeEvent?) {
|
||||
finish()
|
||||
}
|
||||
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
package com.chwl.app.avroom.firstcharge
|
||||
|
||||
import android.content.Context
|
||||
import com.google.android.flexbox.AlignItems
|
||||
import com.google.android.flexbox.FlexboxLayoutManager
|
||||
import com.google.android.flexbox.JustifyContent
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.DialogFirstChargePrizeBinding
|
||||
import com.chwl.app.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.pay.bean.FirstChargeReward
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_first_charge_prize)
|
||||
class FirstChargePrizeDialog(
|
||||
context: Context,
|
||||
val title: String?,
|
||||
private val firstChargeRewardList: List<FirstChargeReward>?
|
||||
) : BaseBindingDialog<DialogFirstChargePrizeBinding>(context) {
|
||||
|
||||
private lateinit var rvDelegate: RVDelegate<FirstChargeReward>
|
||||
|
||||
override fun init() {
|
||||
rvDelegate = RVDelegate.Builder<FirstChargeReward>()
|
||||
.setAdapter(RewardAdapter(ScreenUtil.dip2px(248f) / 3))
|
||||
.setLayoutManager(FlexboxLayoutManager(context).apply {
|
||||
alignItems = AlignItems.STRETCH
|
||||
justifyContent = JustifyContent.SPACE_EVENLY
|
||||
})
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.build()
|
||||
binding.ivKnow.setOnClickListener {
|
||||
closeDialog()
|
||||
}
|
||||
|
||||
binding.tvDesc.text = title
|
||||
rvDelegate.setNewData(firstChargeRewardList)
|
||||
}
|
||||
|
||||
}
|
@@ -1,39 +0,0 @@
|
||||
package com.chwl.app.avroom.firstcharge
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.core.pay.bean.FirstChargeReward
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
|
||||
class Reward2Adapter : BaseMultiItemQuickAdapter<FirstChargeReward, BaseViewHolder>(null) {
|
||||
|
||||
init {
|
||||
addItemType(FirstChargeReward.ONE, R.layout.item_first_charge_reward_one)
|
||||
addItemType(FirstChargeReward.TWO_LEFT, R.layout.item_first_charge_reward_two_left)
|
||||
addItemType(FirstChargeReward.TWO_RIGHT, R.layout.item_first_charge_reward_two_right)
|
||||
addItemType(FirstChargeReward.THREE, R.layout.item_first_charge_reward_three)
|
||||
addItemType(
|
||||
FirstChargeReward.TWO_LEFT_SMALL,
|
||||
R.layout.item_first_charge_reward_two_left_small
|
||||
)
|
||||
addItemType(
|
||||
FirstChargeReward.TWO_RIGHT_SMALL,
|
||||
R.layout.item_first_charge_reward_two_right_small
|
||||
)
|
||||
}
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: FirstChargeReward) {
|
||||
ImageLoadUtils.loadImage(
|
||||
mContext,
|
||||
item.showPir,
|
||||
helper.getView(R.id.iv_pic),
|
||||
R.drawable.ic_first_charge_default
|
||||
)
|
||||
helper.setText(R.id.tv_name, item.showText)
|
||||
.setText(R.id.tv_time, item.showTime)
|
||||
.setGone(R.id.tv_time, !CoreTextUtils.isEmptyText(item.showTime))
|
||||
}
|
||||
|
||||
}
|
@@ -1,28 +0,0 @@
|
||||
package com.chwl.app.avroom.firstcharge
|
||||
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.core.pay.bean.FirstChargeReward
|
||||
import com.chwl.core.utils.CoreTextUtils
|
||||
|
||||
class RewardAdapter(private val itemWidth: Int) :
|
||||
BaseQuickAdapter<FirstChargeReward, BaseViewHolder>(R.layout.item_first_charge_reward) {
|
||||
override fun convert(helper: BaseViewHolder, item: FirstChargeReward) {
|
||||
helper.itemView.updateLayoutParams<RecyclerView.LayoutParams> {
|
||||
width = itemWidth
|
||||
}
|
||||
ImageLoadUtils.loadImage(
|
||||
mContext,
|
||||
item.showPir,
|
||||
helper.getView(R.id.iv_pic),
|
||||
R.drawable.ic_first_charge_default
|
||||
)
|
||||
helper.setText(R.id.tv_name, item.showText)
|
||||
.setText(R.id.tv_time, item.showTime)
|
||||
.setGone(R.id.tv_time, !CoreTextUtils.isEmptyText(item.showTime))
|
||||
}
|
||||
}
|
@@ -18,16 +18,11 @@ import android.view.ViewStub
|
||||
import android.widget.EditText
|
||||
import android.widget.ImageView
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.CallSuper
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.withResumed
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.netease.nim.uikit.common.antispam.AntiSpamEvent
|
||||
import com.netease.nimlib.sdk.StatusCode
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder
|
||||
@@ -45,11 +40,8 @@ import com.chwl.app.avroom.activity.RoomTitleEditActivity
|
||||
import com.chwl.app.avroom.adapter.OnMicroItemClickListener
|
||||
import com.chwl.app.avroom.dialog.AttentionHintDialog
|
||||
import com.chwl.app.avroom.dialog.DatingVipRuleDialog
|
||||
import com.chwl.app.avroom.dialog.RoomFreeGiftDialog
|
||||
import com.chwl.app.avroom.dialog.RoomOperationDialog
|
||||
import com.chwl.app.avroom.firstcharge.FirstChargeDialog
|
||||
import com.chwl.app.avroom.presenter.BaseRoomPresenter
|
||||
import com.chwl.app.avroom.redpackage.send.RedPackageSendDialog
|
||||
import com.chwl.app.avroom.room_album.RoomAlbumModel
|
||||
import com.chwl.app.avroom.view.IBaseRoomView
|
||||
import com.chwl.app.avroom.widget.BottomView
|
||||
@@ -60,9 +52,6 @@ import com.chwl.app.base.BaseMvpFragment
|
||||
import com.chwl.app.event.OpenRoomIntroEvent
|
||||
import com.chwl.app.friend.view.SelectFriendActivity
|
||||
import com.chwl.app.home.adapter.RoomActAdapter
|
||||
import com.chwl.app.shipantics.PullRadishActivity
|
||||
import com.chwl.app.treasure_box.widget.GoldBoxHelper
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity
|
||||
import com.chwl.app.ui.widget.ButtonItem
|
||||
import com.chwl.app.ui.widget.GiftDialog
|
||||
import com.chwl.app.ui.widget.GiftDialog.OnGiftDialogBtnClickListener
|
||||
@@ -78,8 +67,6 @@ import com.chwl.app.music.widget.MusicPlayerView
|
||||
import com.chwl.app.room_chat.activity.RoomMsgActivity
|
||||
import com.chwl.core.XConstants
|
||||
import com.chwl.core.Constants
|
||||
import com.chwl.core.DemoCache
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.bean.RoomMicInfo
|
||||
import com.chwl.core.gift.GiftModel
|
||||
@@ -97,7 +84,6 @@ import com.chwl.core.manager.RoomEvent
|
||||
import com.chwl.core.mentoring_relationship.event.MentoringStopCountingEvent
|
||||
import com.chwl.core.room.anotherroompk.ShowGiftDialogEvent
|
||||
import com.chwl.core.room.anotherroompk.ShowUserInfoDialogEvent
|
||||
import com.chwl.core.room.bean.RoomContributeUserInfo
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.room.event.RoomAtEvent
|
||||
import com.chwl.core.room.event.RoomClearScreenEvent
|
||||
@@ -113,10 +99,8 @@ import com.chwl.core.support.room.RoomWidget
|
||||
import com.chwl.core.user.UserModel
|
||||
import com.chwl.core.user.bean.BaseInfo
|
||||
import com.chwl.core.user.bean.UserInfo
|
||||
import com.chwl.core.utils.CurrentTimeUtils
|
||||
import com.chwl.core.utils.net.VipLevelNotEnoughException
|
||||
import com.chwl.library.common.util.LimitClickUtils
|
||||
import com.chwl.library.common.util.SPUtils
|
||||
import com.chwl.library.net.rxnet.utils.RxNetWorkUtils
|
||||
import com.chwl.library.rxbus.RxBus
|
||||
import com.chwl.library.utils.*
|
||||
@@ -147,14 +131,11 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
protected lateinit var inputSend: ImageView
|
||||
protected lateinit var microView: MicroView
|
||||
private var musicPlayerView: MusicPlayerView? = null
|
||||
private var ivRadishEntrance: View? = null
|
||||
private var mVsMusicPlayer: ViewStub? = null
|
||||
private var mDisposable: Disposable? = null
|
||||
private var isCloseScreen = false
|
||||
private var isOpenRedPackage = false
|
||||
|
||||
private var roomFreeGiftDialog: RoomFreeGiftDialog? = null
|
||||
|
||||
private val mClickLimit by lazy { LimitClickUtils() }
|
||||
|
||||
@JvmField
|
||||
@@ -170,7 +151,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
* 是否開啟禮物值顯示
|
||||
*/
|
||||
private var showGiftValue = false
|
||||
private var redPackageSendDialog: RedPackageSendDialog? = null
|
||||
private val mOnSoftKeyBoardChangeListener: OnSoftKeyBoardChangeListener =
|
||||
object : OnSoftKeyBoardChangeListener {
|
||||
override fun keyBoardShow(height: Int) {
|
||||
@@ -207,7 +187,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
inputSend = mView.findViewById(R.id.input_send)
|
||||
microView = mView.findViewById(R.id.micro_view)
|
||||
mVsMusicPlayer = mView.findViewById(R.id.vs_music_player)
|
||||
ivRadishEntrance = mView.findViewById(R.id.iv_radish_entrance)
|
||||
messageView.setClickConsumer {
|
||||
if (!TextUtils.isEmpty(it) && it != "0") {
|
||||
showUserCardDialog(it)
|
||||
@@ -289,10 +268,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
checkFollowOwner()
|
||||
GiftValueMrg.get().updateRoomGiftValue(false)
|
||||
|
||||
//先隐藏航海冒险
|
||||
// ivRadishEntrance?.isVisible =
|
||||
// !GoldBoxHelper.needIntegrateBoxEntrance() && GoldBoxHelper.isShowRadish()
|
||||
|
||||
//获取免费礼物详情
|
||||
mvpPresenter?.queryFreeFlower()
|
||||
initRoomAlbum()
|
||||
@@ -524,7 +499,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
private fun releaseView() {
|
||||
roomFreeGiftDialog?.dismiss()
|
||||
messageView.release()
|
||||
microView.release()
|
||||
musicPlayerView?.release()
|
||||
@@ -678,12 +652,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
R.id.input_send -> {
|
||||
sendMsg()
|
||||
}
|
||||
|
||||
R.id.iv_first_charge_enter -> FirstChargeDialog.start(mContext)
|
||||
// R.id.iv_treasure_box,
|
||||
// R.id.iv_treasure_box_cp -> GoldBoxHelper.handleBoxClick(mContext)
|
||||
|
||||
R.id.iv_radish_entrance -> PullRadishActivity.start(mContext)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -746,7 +714,12 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY))
|
||||
.doOnError {
|
||||
if (it is VipLevelNotEnoughException) {
|
||||
dialogManager.showOkDialog("尚未達到贈送${giftInfo.giftName}所需貴族等級,所需貴族等級:${giftInfo.giftVipInfo?.vipName}")
|
||||
val message = context?.getString(
|
||||
R.string.send_gift_vip_level_tips,
|
||||
giftInfo.giftName ?: "",
|
||||
giftInfo.giftVipInfo?.vipName ?: ""
|
||||
)
|
||||
dialogManager.showOkDialog(message)
|
||||
}
|
||||
}
|
||||
.subscribe { _, throwable ->
|
||||
@@ -799,7 +772,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
) {
|
||||
val buttonItems: MutableList<ButtonItem> = ArrayList(4)
|
||||
val presideMic = AvRoomDataManager.get().isDatingMode && micPosition == -1
|
||||
val presideText = if (presideMic) "當主持人" else ""
|
||||
val presideText = if (presideMic) ResUtil.getString(R.string.switch_host) else ""
|
||||
val buttonItem1 = ButtonItem(
|
||||
getString(R.string.embrace_up_mic) + presideText,
|
||||
object : ButtonItem.OnClickListener {
|
||||
@@ -845,7 +818,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
})
|
||||
val buttonItem4 =
|
||||
ButtonItem("上麥") { toUpMicroPhone(micPosition, currentUid.toString() + "", false) }
|
||||
ButtonItem(ResUtil.getString(R.string.up_mic)) { toUpMicroPhone(micPosition, currentUid.toString() + "", false) }
|
||||
//別問為什麽,ui調整了順序
|
||||
//禁用超管的上麥和抱TA上麥
|
||||
if (!SuperAdminUtil.isSuperAdmin()) {
|
||||
@@ -931,7 +904,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
try {
|
||||
giftDialog?.dismiss()
|
||||
dynamicFaceDialog?.dismiss()
|
||||
redPackageSendDialog?.dismissAllowingStateLoss()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
@@ -1161,16 +1133,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomFreeGiftEvent(event: RoomFreeGiftEvent) {
|
||||
event.giftFreeInfo?.let {
|
||||
if (UIUtils.isTopActivity(context as Activity?) && isResumed) {
|
||||
if (roomFreeGiftDialog?.isShowing == true) {
|
||||
roomFreeGiftDialog?.dismiss()
|
||||
}
|
||||
roomFreeGiftDialog = RoomFreeGiftDialog(context, it)
|
||||
roomFreeGiftDialog?.show()
|
||||
SPUtils.putBoolean(Constants.IS_SHOW_FREE_GIFT, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1241,13 +1203,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
|
||||
override fun onMoreBtnClick() {
|
||||
val dialog = RoomOperationDialog(mContext)
|
||||
dialog.setOnActionListener {
|
||||
redPackageSendDialog = RedPackageSendDialog.newInstance(AvRoomDataManager.get().redEnvelopeType)
|
||||
redPackageSendDialog?.setOnDismissListener {
|
||||
redPackageSendDialog = null
|
||||
}
|
||||
redPackageSendDialog?.show(activity)
|
||||
}
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
@@ -1278,6 +1233,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
|
||||
return this
|
||||
}
|
||||
|
||||
override fun findWidget(name: String): RoomWidget? {
|
||||
return widgets[name]
|
||||
}
|
||||
|
||||
open fun initWidget() {
|
||||
|
||||
}
|
||||
|
@@ -17,6 +17,10 @@ import androidx.annotation.Nullable;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chwl.app.ui.widget.GiftDialog;
|
||||
import com.chwl.app.ui.widget.UserInfoDialog;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.example.lib_utils.UiUtils;
|
||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
@@ -31,8 +35,6 @@ import com.chwl.app.avroom.widget.GiftV2View;
|
||||
import com.chwl.app.avroom.widget.RoomEffectView;
|
||||
import com.chwl.app.base.BaseFragment;
|
||||
import com.chwl.app.databinding.FragmentChatroomGameMainBinding;
|
||||
import com.chwl.app.friend.view.SelectFriendActivity;
|
||||
import com.chwl.app.ui.widget.ShareDialog;
|
||||
import com.chwl.app.utils.RegexUtil;
|
||||
import com.chwl.core.gift.bean.GiftMultiReceiverInfo;
|
||||
import com.chwl.core.gift.bean.GiftReceiveInfo;
|
||||
@@ -50,7 +52,6 @@ import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.praise.PraiseModel;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.room.queuing_mic.event.HasAnimationEffect;
|
||||
import com.chwl.core.share.ShareModel;
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
@@ -64,10 +65,8 @@ import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import cn.sharesdk.framework.Platform;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Action;
|
||||
import kotlin.jvm.functions.Function0;
|
||||
|
||||
/**
|
||||
@@ -76,7 +75,7 @@ import kotlin.jvm.functions.Function0;
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
public class HomePartyFragment extends BaseFragment implements View.OnClickListener, ShareDialog.OnShareDialogItemClick {
|
||||
public class HomePartyFragment extends BaseFragment implements View.OnClickListener {
|
||||
|
||||
private Fragment roomFragment;
|
||||
|
||||
@@ -97,12 +96,8 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
private UserInfo mUserInfo;
|
||||
private FragmentChatroomGameMainBinding gameMainBinding;
|
||||
|
||||
// private ShareDialog shareDialog;
|
||||
|
||||
//收藏房间
|
||||
private String FOLLOW_ROOM_TYPE = "";
|
||||
// private SelectGameAdapter gameAdapter;
|
||||
|
||||
|
||||
public static HomePartyFragment newInstance() {
|
||||
HomePartyFragment homePartyFragment = new HomePartyFragment();
|
||||
@@ -221,73 +216,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
}
|
||||
}
|
||||
|
||||
// private void initRvGame() {
|
||||
// RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
// if (roomInfo == null || gameAdapter != null) return;
|
||||
// gameMainBinding.rvGame.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
// gameMainBinding.rvGame.setAdapter(gameAdapter = new SelectGameAdapter());
|
||||
// gameMainBinding.llSelectGame.setOnClickListener(v -> {
|
||||
// if (gameMainBinding.rvGame.getVisibility() == View.VISIBLE) {
|
||||
// gameMainBinding.rvGame.setVisibility(View.GONE);
|
||||
// gameMainBinding.ivChangeGameArrow.setImageResource(R.drawable.ic_room_arrow_type_below);
|
||||
// } else {
|
||||
// if (!isShowChangeGame()) {
|
||||
// SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_01));
|
||||
// return;
|
||||
// }
|
||||
// if (AvRoomDataManager.get().isGamePlaying()) {
|
||||
// SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_02));
|
||||
// } else {
|
||||
// gameMainBinding.rvGame.setVisibility(View.VISIBLE);
|
||||
// gameMainBinding.ivChangeGameArrow.setImageResource(R.drawable.ic_room_arrow_type);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// gameAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
// if (AvRoomDataManager.get().isGamePlaying()) {
|
||||
// SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_03));
|
||||
// }
|
||||
// if (!isShowChangeGame()) {
|
||||
// SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_04));
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// GameInfo gameInfo = gameAdapter.getItem(position);
|
||||
// if (gameInfo != null) {
|
||||
// int type;
|
||||
// long mgId = 0;
|
||||
// if (Objects.equals(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_05), gameInfo.getName())) {
|
||||
// type = RoomInfo.ROOMTYPE_HOME_PARTY;
|
||||
// } else {
|
||||
// type = RoomInfo.ROOMTYPE_GAME;
|
||||
// mgId = JavaUtil.str2long(gameInfo.getMgId());
|
||||
// }
|
||||
// gameMainBinding.rvGame.setVisibility(View.GONE);
|
||||
// gameMainBinding.ivChangeGameArrow.setImageResource(R.drawable.ic_room_arrow_type_below);
|
||||
// OpenRoomHelper.updateRoomInfo(
|
||||
// getBaseActivity(),
|
||||
// AvRoomDataManager.get().mCurrentRoomInfo,
|
||||
// type,
|
||||
// mgId,
|
||||
// false);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
//这里的2和4是服务端定义的错误状态 关闭排麦模式和关闭PK模式!
|
||||
private boolean isShowChangeGame() {
|
||||
return false;
|
||||
// RoomInfo currentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
// return currentRoomInfo != null &&
|
||||
// AvRoomDataManager.get().isRoomOwner() &&
|
||||
// currentRoomInfo.getIsPermitRoom() != 1 &&
|
||||
// currentRoomInfo.getType() != RoomInfo.ROOM_TYPE_SINGLE &&
|
||||
// (currentRoomInfo.getRoomModeType() == RoomModeType.NORMAL_MODE ||
|
||||
// currentRoomInfo.getRoomModeType() == 2 ||
|
||||
// currentRoomInfo.getRoomModeType() == 4);
|
||||
}
|
||||
|
||||
public void setRoomBg(RoomInfo roomInfo) {
|
||||
if (svgaRoomBg == null) return;
|
||||
updateView(roomInfo);
|
||||
@@ -463,34 +391,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
ivFollowRoom.setImageResource(AvRoomDataManager.get().isRoomFans ? R.drawable.room_ic_collect_yes : R.drawable.room_ic_collect_no);
|
||||
|
||||
setIdOnlineData();
|
||||
// if (isShowChangeGame()) {
|
||||
// initRvGame();
|
||||
// gameMainBinding.llChangeGame.setVisibility(View.VISIBLE);
|
||||
// if (AvRoomDataManager.get().isOpenGame()) {
|
||||
// gameMainBinding.tvCurrGame.setText(currentRoomInfo.getMgName());
|
||||
// } else {
|
||||
// gameMainBinding.tvCurrGame.setText(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_08));
|
||||
// }
|
||||
// GameModel.INSTANCE.getGameList()
|
||||
// .compose(bindToLifecycle())
|
||||
// .subscribe(gameInfos -> {
|
||||
// if (AvRoomDataManager.get().isOpenGame()) {
|
||||
// for (int i = 0; i < gameInfos.size(); i++) {
|
||||
// GameInfo gameInfo = gameInfos.get(i);
|
||||
// if (JavaUtil.str2long(gameInfo.getMgId()) == currentRoomInfo.getMgId()) {
|
||||
// gameInfos.remove(i);
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// GameInfo gameInfo = new GameInfo();
|
||||
// gameInfo.setName(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_09));
|
||||
// gameInfos.add(gameInfo);
|
||||
// }
|
||||
// gameAdapter.setNewData(gameInfos);
|
||||
// });
|
||||
// } else {
|
||||
// gameMainBinding.llChangeGame.setVisibility(View.GONE);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,15 +413,16 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.room_more:
|
||||
int gravity = Gravity.END;
|
||||
if(UiUtils.INSTANCE.isRtl(requireContext())){
|
||||
gravity = Gravity.START;
|
||||
}
|
||||
ExitRoomPopupWindow.newInstance((AVRoomActivity) requireActivity())
|
||||
.showAtLocation(gameMainBinding.getRoot(), Gravity.END, 0, 0);
|
||||
.showAtLocation(gameMainBinding.getRoot(), gravity, 0, 0);
|
||||
break;
|
||||
case R.id.ll_room_info:
|
||||
RoomOnlineUserActivity.start(getActivity());
|
||||
break;
|
||||
// case R.id.iv_room_share:
|
||||
// shareRoom();
|
||||
// break;
|
||||
case R.id.iv_follow_room:
|
||||
followRoom();
|
||||
break;
|
||||
@@ -571,67 +472,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
ivFollowRoom.setImageResource(AvRoomDataManager.get().isRoomFans ? R.drawable.room_ic_collect_yes : R.drawable.room_ic_collect_no);
|
||||
}
|
||||
|
||||
// @Subscribe(threadMode = ThreadMode.MAIN)
|
||||
// public void onShareRoomEvent(ShareRoomEvent event) {
|
||||
//// shareRoom();
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * 分享房间
|
||||
// */
|
||||
// public void shareRoom() {
|
||||
// if (shareDialog != null && shareDialog.isShowing()) {
|
||||
// shareDialog.dismiss();
|
||||
// }
|
||||
// shareDialog = new ShareDialog(getActivity());
|
||||
// shareDialog.setOnShareDialogItemClick(this);
|
||||
// shareDialog.show();
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onInAppSharingItemClick() {
|
||||
// shareDialog.dismiss();
|
||||
SelectFriendActivity.startForSharingRoom(getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharePlatformClick(Platform platform) {
|
||||
RoomInfo currentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (currentRoomInfo != null) {
|
||||
UserModel.get().getUserInfo(currentRoomInfo.getUid())
|
||||
.flatMap(userInfo -> ShareModel.get().shareRoom(
|
||||
platform,
|
||||
currentRoomInfo.getUid(),
|
||||
userInfo.getErbanNo(),
|
||||
currentRoomInfo.getTitle(),
|
||||
currentRoomInfo.getAvatar()
|
||||
))
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY))
|
||||
.doAfterTerminate(new Action() {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
getDialogManager().dismissDialog();
|
||||
}
|
||||
})
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (giftView != null) {
|
||||
@@ -720,4 +560,20 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
gameMainBinding.roomNums.setText(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_013) + onlineNumber);
|
||||
}
|
||||
|
||||
public void showUserCardDialog(String uid){
|
||||
long id = JavaUtil.str2long(uid);
|
||||
if (id == 0) {
|
||||
return;
|
||||
}
|
||||
if (roomFragment instanceof GiftDialog.OnGiftDialogBtnClickListener) {
|
||||
UserInfoDialog.showNewUserInfoDialog(
|
||||
mContext,
|
||||
id,
|
||||
true,
|
||||
true,
|
||||
true, (GiftDialog.OnGiftDialogBtnClickListener) roomFragment
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -8,10 +8,9 @@ import android.view.View;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.chwl.app.avroom.rank.RoomRankWidget;
|
||||
import com.chwl.app.avroom.gameplay.RoomGameplayListWidget;
|
||||
import com.chwl.app.avroom.gameplay.RoomGameplayWidget;
|
||||
import com.chwl.app.music.widget.MusicPlayerView;
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity;
|
||||
import com.chwl.core.home.bean.BannerInfo;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.chwl.app.R;
|
||||
@@ -27,10 +26,8 @@ import com.chwl.app.avroom.dialog.MicQueueDialog;
|
||||
import com.chwl.app.avroom.dialog.PKMicQueueDialog;
|
||||
import com.chwl.app.avroom.dialog.PKResultDialog;
|
||||
import com.chwl.app.avroom.dialog.PKScoreBoardDialog;
|
||||
import com.chwl.app.avroom.firstcharge.FirstChargePrizeDialog;
|
||||
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.chwl.app.avroom.presenter.HomePartyPresenter;
|
||||
import com.chwl.app.avroom.redpackage.RedPackageWidget;
|
||||
import com.chwl.app.avroom.view.IHomePartyView;
|
||||
import com.chwl.app.avroom.widget.PKBoardView;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
@@ -47,7 +44,6 @@ import com.chwl.core.im.custom.bean.RoomPkBean;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.market_verify.MarketVerifyModel;
|
||||
import com.chwl.core.pay.event.FirstChargeEvent;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.room.event.DatingSelectUserEvent;
|
||||
import com.chwl.core.room.face.DynamicFaceModel;
|
||||
@@ -137,8 +133,8 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
@Override
|
||||
public void initWidget() {
|
||||
super.initWidget();
|
||||
registerWidget(RedPackageWidget.class.getSimpleName(), gameBinding.redPackageWidget);
|
||||
registerWidget(RoomRankWidget.class.getSimpleName(), gameBinding.rankWidget);
|
||||
registerWidget(RoomGameplayListWidget.class.getSimpleName(), gameBinding.gameplayListWidget);
|
||||
registerWidget(RoomGameplayWidget.class.getSimpleName(), gameBinding.gameplayWidget);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -151,7 +147,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
updateQueuingMicBtn();
|
||||
updatePkScoreBoard();
|
||||
initRoomPkOrder(AvRoomDataManager.get().showPkBeginTime, AvRoomDataManager.get().pkBeginTime);
|
||||
getMvpPresenter().getBannerList();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -593,12 +588,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
getMvpPresenter().cancelDragon();
|
||||
});
|
||||
break;
|
||||
case R.id.tv_hour_rank:
|
||||
DialogWebViewActivity.start(
|
||||
mContext,
|
||||
UriProvider.getRoomHourRankUrl(AvRoomDataManager.get().getRoomUid())
|
||||
);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -787,42 +776,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
if (AvRoomDataManager.get().mCurrentRoomInfo == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (AvRoomDataManager.get().mCurrentRoomInfo.getIsPermitRoom() == 1) {
|
||||
gameBinding.tvHourRank.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
gameBinding.tvHourRank.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// if (!GoldBoxHelper.needIntegrateBoxEntrance()) {
|
||||
// GoldBoxHelper.isHideBox().subscribe(
|
||||
// hide -> {
|
||||
// if (hide != null && !hide) {
|
||||
// if (AvRoomDataManager.get().isCpRoom()) {
|
||||
// gameBinding.ivTreasureBoxCp.setVisibility(View.VISIBLE);
|
||||
// gameBinding.ivTreasureBox.setVisibility(View.GONE);
|
||||
// } else {
|
||||
// gameBinding.ivTreasureBoxCp.setVisibility(View.GONE);
|
||||
// gameBinding.ivTreasureBox.setVisibility(View.VISIBLE);
|
||||
// GlideApp.with(BasicConfig.INSTANCE.getAppContext())
|
||||
// .load(GoldBoxHelper.getBoxIcon())
|
||||
// .error(R.drawable.icon_room_treasure_box)
|
||||
// .into(gameBinding.ivTreasureBox);
|
||||
// }
|
||||
// } else {
|
||||
// gameBinding.ivTreasureBoxCp.setVisibility(View.GONE);
|
||||
// gameBinding.ivTreasureBox.setVisibility(View.GONE);
|
||||
// }
|
||||
// },
|
||||
// throwable -> {
|
||||
// gameBinding.ivTreasureBoxCp.setVisibility(View.GONE);
|
||||
// gameBinding.ivTreasureBox.setVisibility(View.GONE);
|
||||
// });
|
||||
// } else {
|
||||
// gameBinding.ivTreasureBoxCp.setVisibility(View.GONE);
|
||||
// gameBinding.ivTreasureBox.setVisibility(View.GONE);
|
||||
// }
|
||||
|
||||
setDragonView();
|
||||
}
|
||||
|
||||
@@ -956,18 +909,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
return pkMicQueueDialog != null && pkMicQueueDialog.isShowing();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onShowBanner(List<BannerInfo> bannerInfos) {
|
||||
initRoomAct(gameBinding.activityImg, bannerInfos, 11f);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onFirstRechargeEvent(FirstChargeEvent event) {
|
||||
gameBinding.ivFirstChargeEnter.setVisibility(View.GONE);
|
||||
new FirstChargePrizeDialog(requireContext(), event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog();
|
||||
}
|
||||
|
||||
/**
|
||||
* 底部按钮点击处理
|
||||
*/
|
||||
|
@@ -1,152 +0,0 @@
|
||||
package com.chwl.app.avroom.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.InviteFriendListAdapter;
|
||||
import com.chwl.app.base.BaseFragment;
|
||||
import com.chwl.app.public_chat_hall.bean.PublicChatHallFriendInfo;
|
||||
import com.chwl.core.im.friend.IMFriendModel;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.manager.RelationShipEvent;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* 公聊大厅选择艾特人的好友页面
|
||||
*/
|
||||
public class InviteFriendListFragment extends BaseFragment {
|
||||
|
||||
private static final String TAG = "InviteFriendListFragment";
|
||||
|
||||
private InviteFriendListAdapter adapter = null;
|
||||
private SwipeRefreshLayout mSwipeRefresh;
|
||||
private RecyclerView mRecyclerView;
|
||||
|
||||
public static InviteFriendListFragment newInstances() {
|
||||
return new InviteFriendListFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
mSwipeRefresh = mView.findViewById(R.id.swipe_refresh);
|
||||
mRecyclerView = mView.findViewById(R.id.recycler_view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
mSwipeRefresh.setEnabled(false);
|
||||
|
||||
if (adapter == null) {
|
||||
adapter = new InviteFriendListAdapter(getActivity());
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
|
||||
loadFriends();
|
||||
} else {
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
Disposable d = IMNetEaseManager.get().getRelationShipEventObservable().subscribe(this::onGetRelationShipEvent);
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
private void onGetRelationShipEvent(RelationShipEvent event) {
|
||||
if (event.event == RelationShipEvent.EVENT_FRIEND_UPDATE) {
|
||||
onFriendListUpdate(event.accounts);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadFriends() {
|
||||
onFriendListUpdate(IMFriendModel.get().getMyFriendsAccounts());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_fans_list;
|
||||
}
|
||||
|
||||
private void onFriendListUpdate(List<String> accounts) {
|
||||
if (ListUtils.isListEmpty(accounts)) {
|
||||
showNoData(getString(R.string.no_frenids_text));
|
||||
return;
|
||||
}
|
||||
ArrayList<Long> ids = new ArrayList<>(accounts.size());
|
||||
for (String account : accounts) {
|
||||
ids.add(Long.valueOf(account));
|
||||
}
|
||||
UserModel.get().loadUserInfoByUids(accounts).subscribe(new SingleObserver<List<UserInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<UserInfo> userInfos) {
|
||||
List<PublicChatHallFriendInfo> publicChatHallFriendInfoList = new ArrayList<>();
|
||||
for (UserInfo userInfo : userInfos) {
|
||||
PublicChatHallFriendInfo friendInfo = new PublicChatHallFriendInfo();
|
||||
friendInfo.setUserInfo(userInfo);
|
||||
publicChatHallFriendInfoList.add(friendInfo);
|
||||
}
|
||||
setData(publicChatHallFriendInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setData(List<PublicChatHallFriendInfo> userInfos) {
|
||||
if (userInfos != null && !userInfos.isEmpty()) {
|
||||
hideStatus();
|
||||
adapter.setNewData(userInfos);
|
||||
//adapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData(getString(R.string.no_frenids_text));
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onCurrentUserInfoUpdate(UserInfo userInfo) {
|
||||
mRecyclerView.postDelayed(() -> onFriendListUpdate(IMFriendModel.get().getMyFriendsAccounts())
|
||||
, 250);
|
||||
}
|
||||
|
||||
}
|
@@ -6,11 +6,13 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.OnlineUserAdapter;
|
||||
@@ -44,7 +46,6 @@ public class OnlineUserFragment extends BaseMvpFragment<IHomePartyUserListView,
|
||||
private SmartRefreshLayout mRefreshLayout;
|
||||
|
||||
private OnlineUserAdapter mOnlineUserAdapter;
|
||||
private int mPage = Constants.PAGE_START;
|
||||
private boolean isShowToUser = false;
|
||||
|
||||
@Override
|
||||
@@ -58,25 +59,12 @@ public class OnlineUserFragment extends BaseMvpFragment<IHomePartyUserListView,
|
||||
public void onFindViews() {
|
||||
mRecyclerView = mView.findViewById(R.id.recycler_view);
|
||||
mRefreshLayout = mView.findViewById(R.id.refresh_layout);
|
||||
mRefreshLayout.setEnableLoadmore(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
mRefreshLayout.setOnRefreshLoadmoreListener(new OnRefreshLoadmoreListener() {
|
||||
@Override
|
||||
public void onLoadmore(RefreshLayout refreshLayout) {
|
||||
if (!NetworkUtil.isNetAvailable(mContext)) {
|
||||
mRefreshLayout.finishLoadmore();
|
||||
return;
|
||||
}
|
||||
List<OnlineChatMember> data = mOnlineUserAdapter.getData();
|
||||
if (ListUtils.isListEmpty(data)) {
|
||||
mRefreshLayout.finishLoadmore();
|
||||
return;
|
||||
}
|
||||
loadData(data.get(data.size() - 1).chatRoomMember.getEnterTime());
|
||||
}
|
||||
|
||||
mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh(RefreshLayout refreshLayout) {
|
||||
if (!NetworkUtil.isNetAvailable(mContext)) {
|
||||
@@ -106,53 +94,24 @@ public class OnlineUserFragment extends BaseMvpFragment<IHomePartyUserListView,
|
||||
|
||||
|
||||
public void firstLoad() {
|
||||
mPage = Constants.PAGE_START;
|
||||
loadData(0);
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData(long time) {
|
||||
getMvpPresenter().requestChatMemberByPage(mPage, time,
|
||||
mOnlineUserAdapter == null ? null : mOnlineUserAdapter.getData());
|
||||
private void loadData() {
|
||||
getMvpPresenter().requestRoomOnlineList(AvRoomDataManager.get().getRoomUid());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRequestChatMemberByPageSuccess(List<OnlineChatMember> chatRoomMemberList, int page) {
|
||||
mPage = page;
|
||||
if (!ListUtils.isListEmpty(chatRoomMemberList)) {
|
||||
//超管不显示
|
||||
Iterator<OnlineChatMember> iterator = chatRoomMemberList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
OnlineChatMember member = iterator.next();
|
||||
if (member != null && SuperAdminUtil.isSuperAdmin(member.chatRoomMember)) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
mOnlineUserAdapter.setNewData(chatRoomMemberList);
|
||||
if (mPage == Constants.PAGE_START) {
|
||||
mRefreshLayout.finishRefresh();
|
||||
} else {
|
||||
mRefreshLayout.finishLoadmore(0);
|
||||
}
|
||||
mPage++;
|
||||
} else {
|
||||
if (mPage == Constants.PAGE_START) {
|
||||
mRefreshLayout.finishRefresh();
|
||||
} else {
|
||||
mRefreshLayout.finishLoadmore(0);
|
||||
}
|
||||
}
|
||||
public void onRequestRoomOnlineListSuccess(List<RoomOnlineUserBean> chatRoomMemberList) {
|
||||
mOnlineUserAdapter.setNewData(chatRoomMemberList);
|
||||
mRefreshLayout.finishRefresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestChatMemberByPageFail(String errorStr, int page) {
|
||||
Logger.i(ResUtil.getString(R.string.avroom_fragment_onlineuserfragment_01) + page);
|
||||
mPage = page;
|
||||
if (mPage == Constants.PAGE_START) {
|
||||
mRefreshLayout.finishRefresh();
|
||||
} else {
|
||||
mRefreshLayout.finishLoadmore(0);
|
||||
}
|
||||
mRefreshLayout.finishRefresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -166,16 +125,15 @@ public class OnlineUserFragment extends BaseMvpFragment<IHomePartyUserListView,
|
||||
public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int position) {
|
||||
RoomInfo currentRoom = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (currentRoom != null) {
|
||||
List<OnlineChatMember> chatRoomMembers = mOnlineUserAdapter.getData();
|
||||
List<RoomOnlineUserBean> chatRoomMembers = mOnlineUserAdapter.getData();
|
||||
if (ListUtils.isListEmpty(chatRoomMembers)) return;
|
||||
OnlineChatMember onlineChatMember = chatRoomMembers.get(position);
|
||||
ChatRoomMember chatRoomMember = onlineChatMember.chatRoomMember;
|
||||
if (chatRoomMember != null) {
|
||||
RoomOnlineUserBean onlineChatMember = chatRoomMembers.get(position);
|
||||
if (onlineChatMember != null) {
|
||||
if (onlineChatMember.getItemType() == OnlineChatMember.NOBLE) {
|
||||
return;
|
||||
}
|
||||
UserInfoDialog.showNewUserInfoDialog(mContext,
|
||||
JavaUtil.str2long(chatRoomMember.getAccount()),
|
||||
onlineChatMember.getUid(),
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
@@ -185,28 +143,24 @@ public class OnlineUserFragment extends BaseMvpFragment<IHomePartyUserListView,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMemberIn(String account, List<OnlineChatMember> dataList) {
|
||||
public void onMemberIn(String account) {
|
||||
// if (!isResumed()) return;
|
||||
// getMvpPresenter().onMemberInRefreshData(account, dataList, mPage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMemberExit(String account, List<OnlineChatMember> dataList) {
|
||||
public void onMemberExit(String account) {
|
||||
// if (!isResumed()) return;
|
||||
// if (!isShowToUser()) return;
|
||||
// firstLoad();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMemberDownUpMic(String account, boolean isUpMic, List<OnlineChatMember> dataList) {
|
||||
if (!isResumed()) return;
|
||||
getMvpPresenter().onMemberDownUpMic(account, isUpMic, dataList, mPage);
|
||||
public void onMemberDownUpMic(String account, boolean isUpMic) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateMemberManager(String account, boolean isRemoveManager, List<OnlineChatMember> dataList) {
|
||||
if (!isResumed()) return;
|
||||
getMvpPresenter().onUpdateMemberManager(account, dataList, isRemoveManager, mPage);
|
||||
public void onUpdateMemberManager(String account, boolean isRemoveManager) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -3,6 +3,7 @@ package com.chwl.app.avroom.fragment;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter;
|
||||
import com.chwl.app.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.chwl.app.avroom.widget.RankNavigatorAdapter;
|
||||
import com.chwl.app.base.BaseBindingFragment;
|
||||
@@ -26,7 +27,7 @@ public class RoomCharmListFragment extends BaseBindingFragment<FragmentRoomCharm
|
||||
ArrayList<Fragment> fragments = new ArrayList<>(2);
|
||||
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING));
|
||||
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_WEEK_RANKING));
|
||||
mBinding.vpCharmRankings.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragments));
|
||||
mBinding.vpCharmRankings.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(),fragments));
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getActivity());
|
||||
commonNavigator.setAdjustMode(false);
|
||||
|
||||
|
@@ -2,8 +2,10 @@ package com.chwl.app.avroom.fragment;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter;
|
||||
import com.chwl.app.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.chwl.app.avroom.widget.RankNavigatorAdapter;
|
||||
import com.chwl.app.base.BaseMvpFragment;
|
||||
@@ -21,7 +23,7 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView {
|
||||
|
||||
private ViewPager viewPager;
|
||||
private ViewPager2 viewPager;
|
||||
private MagicIndicator viewIndicator;
|
||||
|
||||
@Override
|
||||
@@ -43,7 +45,7 @@ public class RoomContributeListFragment extends BaseMvpFragment implements IMvpB
|
||||
if (AvRoomDataManager.get().isDatingMode()) {
|
||||
fragments.add(RoomContributeFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING));
|
||||
}
|
||||
viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragments));
|
||||
viewPager.setAdapter(new CommonVPAdapter(getChildFragmentManager(),getLifecycle(), fragments));
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getActivity());
|
||||
commonNavigator.setAdjustMode(false);
|
||||
RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode());
|
||||
|
@@ -5,6 +5,7 @@ import android.view.View;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter;
|
||||
import com.chwl.app.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.chwl.app.avroom.widget.RoomRankNavigatorAdapter;
|
||||
import com.chwl.app.base.BaseBindingFragment;
|
||||
@@ -29,7 +30,7 @@ public class RoomRankListFragment extends BaseBindingFragment<FragmentRoomRankLi
|
||||
List<Fragment> list = new ArrayList<>(2);
|
||||
list.add(new RoomContributeListFragment());
|
||||
list.add(RoomCharmListFragment.newInstance());
|
||||
mBinding.viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), list));
|
||||
mBinding.viewPager.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(), list));
|
||||
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getActivity());
|
||||
commonNavigator.setAdjustMode(true);
|
||||
|
@@ -2,48 +2,31 @@ package com.chwl.app.avroom.fragment
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.adapter.OnMicroItemClickListener
|
||||
import com.chwl.app.avroom.adapter.SingleAnchorMicroViewAdapter
|
||||
import com.chwl.app.avroom.adapter.SingleRoomPKMicroViewAdapter
|
||||
import com.chwl.app.avroom.dialog.RequestUpMicDialog
|
||||
import com.chwl.app.avroom.firstcharge.FirstChargePrizeDialog
|
||||
import com.chwl.app.avroom.gameplay.RoomGameplayListWidget
|
||||
import com.chwl.app.avroom.gameplay.RoomGameplayWidget
|
||||
import com.chwl.app.avroom.presenter.SingleRoomPresenter
|
||||
import com.chwl.app.avroom.rank.RoomRankWidget
|
||||
import com.chwl.app.avroom.redpackage.RedPackageWidget
|
||||
import com.chwl.app.avroom.singleroompk.SingleRoomPkFinishDialog
|
||||
import com.chwl.app.avroom.singleroompk.SingleRoomPkForceFinishDialog
|
||||
import com.chwl.app.avroom.singleroompk.SingleRoomPkReceivedDialog
|
||||
import com.chwl.app.avroom.view.ISingleRoomView
|
||||
import com.chwl.app.databinding.FragmentSingleRoomBinding
|
||||
import com.chwl.app.fansteam.FansTeamJoinActivity
|
||||
import com.chwl.app.fansteam.FansTeamJoinedActivity
|
||||
import com.chwl.app.fansteam.FansTeamViewModel
|
||||
import com.chwl.app.music.widget.MusicPlayerView
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.fansteam.bean.FansTeamInitInfo
|
||||
import com.chwl.core.home.bean.BannerInfo
|
||||
import com.chwl.core.im.custom.bean.FansTeamMsgAttachment
|
||||
import com.chwl.core.im.custom.bean.RequestUpmicAttachment
|
||||
import com.chwl.core.im.custom.bean.RoomPKAttachment
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.manager.RoomEvent
|
||||
import com.chwl.core.pay.event.FirstChargeEvent
|
||||
import com.chwl.core.user.bean.UserInfo
|
||||
import com.chwl.library.base.factory.CreatePresenter
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* 個播房間
|
||||
@@ -68,7 +51,6 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
private lateinit var gameBinding: FragmentSingleRoomBinding
|
||||
private lateinit var upMicDialog: RequestUpMicDialog
|
||||
|
||||
private val fansTeamViewModel: FansTeamViewModel by viewModels()
|
||||
override fun getRootLayoutId(): Int {
|
||||
return R.layout.fragment_single_room
|
||||
}
|
||||
@@ -84,73 +66,6 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
@SuppressLint("CheckResult")
|
||||
override fun initiate() {
|
||||
super.initiate()
|
||||
mvpPresenter?.getBannerList()
|
||||
// initSpeedyMessage(gameBinding.flSpeedyMessage)
|
||||
fansTeamViewModel.loadFansTeamInitInfo()
|
||||
|
||||
fansTeamViewModel.fansTeamInitInfoLiveData.observe(viewLifecycleOwner) {
|
||||
it?.let {
|
||||
updateFansTeamInfo(it)
|
||||
}
|
||||
}
|
||||
|
||||
gameBinding.tvHourRank.singleClick {
|
||||
DialogWebViewActivity.start(
|
||||
mContext,
|
||||
UriProvider.getSingleRoomHourRankUrl(AvRoomDataManager.get().roomUid)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun updateFansTeamInfo(initInfo: FansTeamInitInfo) {
|
||||
var clickListener: View.OnClickListener? = null
|
||||
if (initInfo.hasFansTeamCurrentRoom) {
|
||||
if (AvRoomDataManager.get().isRoomOwner) {
|
||||
gameBinding.flFansTeamJoinTip.isVisible = false
|
||||
gameBinding.tvFansTeamOpt.isVisible = true
|
||||
gameBinding.tvFansTeamOpt.text = "粉絲團(${initInfo.anchorFansNum})"
|
||||
clickListener = View.OnClickListener {
|
||||
DialogWebViewActivity.start(
|
||||
requireContext(),
|
||||
UriProvider.getFansTeamMyFansUrl(AvRoomDataManager.get().roomUid)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
if (initInfo.isAnchorFans) {
|
||||
gameBinding.flFansTeamJoinTip.isVisible = false
|
||||
gameBinding.tvFansTeamOpt.isVisible = true
|
||||
gameBinding.tvFansTeamOpt.text =
|
||||
"粉絲LV.${if (initInfo.fansLevelSeq == 0) 1 else initInfo.fansLevelSeq}"
|
||||
clickListener = View.OnClickListener {
|
||||
FansTeamJoinedActivity.start(requireContext())
|
||||
}
|
||||
} else {
|
||||
gameBinding.flFansTeamJoinTip.isVisible = true
|
||||
gameBinding.tvFansTeamOpt.isVisible = false
|
||||
clickListener = View.OnClickListener {
|
||||
FansTeamJoinActivity.start(requireContext())
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (AvRoomDataManager.get().isRoomOwner) {
|
||||
gameBinding.flFansTeamJoinTip.isVisible = false
|
||||
gameBinding.tvFansTeamOpt.isVisible = true
|
||||
gameBinding.tvFansTeamOpt.text = "開通粉絲團"
|
||||
clickListener = View.OnClickListener {
|
||||
CommonWebViewActivity.start(
|
||||
requireContext(),
|
||||
UriProvider.getFansTeamOpenUrl(AvRoomDataManager.get().roomUid)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
gameBinding.flFansTeamJoinTip.isVisible = false
|
||||
gameBinding.tvFansTeamOpt.isVisible = true
|
||||
gameBinding.tvFansTeamOpt.text = "TA暫未開通粉絲團"
|
||||
}
|
||||
}
|
||||
gameBinding.flFansTeam.setOnClickListener(clickListener)
|
||||
}
|
||||
|
||||
override fun onReceiveRoomEvent(roomEvent: RoomEvent?) {
|
||||
@@ -162,28 +77,6 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
showInviteDialog(it)
|
||||
}
|
||||
}
|
||||
RoomEvent.FANS_TEAM_OPEN_SUCCESS,
|
||||
RoomEvent.FANS_TEAM_OPEN_FAILED,
|
||||
RoomEvent.FANS_TEAM_JOIN,
|
||||
RoomEvent.FANS_TEAM_EXIT -> {
|
||||
(roomEvent.chatRoomMessage?.attachment as? FansTeamMsgAttachment)?.fansTeamMsgInfo?.let {
|
||||
val currFansTeamInitInfo = fansTeamViewModel.fansTeamInitInfoLiveData.value
|
||||
updateFansTeamInfo(
|
||||
FansTeamInitInfo(
|
||||
it.count,
|
||||
currFansTeamInitInfo?.fansLevelSeq ?: 1,
|
||||
roomEvent.event != RoomEvent.FANS_TEAM_OPEN_FAILED,
|
||||
if (AuthModel.get().currentUid == it.uid) {
|
||||
roomEvent.event == RoomEvent.FANS_TEAM_JOIN
|
||||
} else {
|
||||
currFansTeamInitInfo?.isAnchorFans ?: false
|
||||
},
|
||||
AvRoomDataManager.get().isRoomOwner,
|
||||
roomEvent.event == RoomEvent.FANS_TEAM_OPEN_FAILED
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
RoomEvent.ROOM_PK_INVITE ->
|
||||
SingleRoomPkReceivedDialog.newInstance((roomEvent.chatRoomMessage.attachment as RoomPKAttachment).roomPkBean)
|
||||
.show(mContext)
|
||||
@@ -219,7 +112,6 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
|
||||
override fun onEnterRoom() {
|
||||
super.onEnterRoom()
|
||||
fansTeamViewModel.loadFansTeamInitInfo()
|
||||
}
|
||||
|
||||
override fun updateView() {
|
||||
@@ -241,24 +133,13 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
|
||||
}
|
||||
}
|
||||
|
||||
override fun onShowBanner(dialogInfos: List<BannerInfo>) {
|
||||
initRoomAct(gameBinding.activityImg, dialogInfos, 10f)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onFirstRechargeEvent(event: FirstChargeEvent) {
|
||||
gameBinding.ivFirstChargeEnter.visibility = View.GONE
|
||||
FirstChargePrizeDialog(
|
||||
requireContext(),
|
||||
event.chargeProdTitle,
|
||||
event.firstChargeRewardList
|
||||
).openDialog()
|
||||
}
|
||||
|
||||
override fun initWidget() {
|
||||
super.initWidget()
|
||||
registerWidget(RedPackageWidget::class.java.simpleName, gameBinding.redPackageWidget)
|
||||
registerWidget(RoomRankWidget::class.java.simpleName, gameBinding.rankWidget)
|
||||
registerWidget(
|
||||
RoomGameplayListWidget::class.java.simpleName,
|
||||
gameBinding.gameplayListWidget
|
||||
)
|
||||
registerWidget(RoomGameplayWidget::class.java.simpleName, gameBinding.gameplayWidget)
|
||||
}
|
||||
|
||||
override fun onInitMusicPlayerView(view: MusicPlayerView) {
|
||||
|
@@ -0,0 +1,22 @@
|
||||
package com.chwl.app.avroom.gameplay
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.MotionEvent
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
|
||||
class GameplayRecyclerView : RecyclerView {
|
||||
constructor(context: Context) : super(context)
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
override fun onInterceptTouchEvent(e: MotionEvent?): Boolean {
|
||||
parent.requestDisallowInterceptTouchEvent(true)
|
||||
return super.onInterceptTouchEvent(e)
|
||||
}
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
package com.chwl.app.avroom.gameplay
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewConfiguration
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.chwl.core.support.room.FrameLayoutRoomWidget
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.RoomGameplayListWidgetBinding
|
||||
import com.chwl.core.room.bean.RoomIcon
|
||||
|
||||
class RoomGameplayListWidget : FrameLayoutRoomWidget {
|
||||
private val adapter = RoomPlayListAdapter()
|
||||
private val binding: RoomGameplayListWidgetBinding =
|
||||
DataBindingUtil.inflate(
|
||||
LayoutInflater.from(
|
||||
context
|
||||
), R.layout.room_gameplay_list_widget, this, true
|
||||
)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int,
|
||||
defStyleRes: Int
|
||||
) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
init {
|
||||
binding.recyclerView.adapter = adapter
|
||||
binding.ivSwitch.setOnClickListener {
|
||||
getGameplayIconWidget()?.switchUI(false)
|
||||
}
|
||||
adapter.setOnItemClickListener { adapter, view, position ->
|
||||
(adapter.getItem(position) as? RoomIcon)?.let {
|
||||
getGameplayIconWidget()?.jump(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getGameplayIconWidget(): RoomGameplayWidget? {
|
||||
return roomView?.findWidget(
|
||||
RoomGameplayWidget::class.simpleName ?: ""
|
||||
) as? RoomGameplayWidget
|
||||
}
|
||||
|
||||
fun loadData(list: List<RoomIcon>) {
|
||||
adapter.setNewData(list)
|
||||
if (list.size > 6) {
|
||||
binding.recyclerView.isScrollbarFadingEnabled = false
|
||||
binding.recyclerView.scrollBarFadeDuration = 0
|
||||
} else {
|
||||
binding.recyclerView.isScrollbarFadingEnabled = true
|
||||
binding.recyclerView.scrollBarFadeDuration =
|
||||
ViewConfiguration.getScrollBarFadeDuration()
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,119 @@
|
||||
package com.chwl.app.avroom.gameplay
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.RoomGameplayWidgetBinding
|
||||
import com.chwl.app.treasure_box.widget.GoldBoxHelper
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity
|
||||
import com.chwl.app.ui.webview.room_banner.RoomWebDialogActivity
|
||||
import com.chwl.app.utils.CommonJumpHelper
|
||||
import com.chwl.core.room.bean.RoomIcon
|
||||
import com.chwl.core.room.model.AvRoomModel
|
||||
import com.chwl.core.support.room.FrameLayoutRoomWidget
|
||||
import com.chwl.core.support.room.RoomContext
|
||||
import com.chwl.core.support.room.RoomView
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
|
||||
|
||||
class RoomGameplayWidget : FrameLayoutRoomWidget {
|
||||
private val binding: RoomGameplayWidgetBinding =
|
||||
DataBindingUtil.inflate(
|
||||
LayoutInflater.from(
|
||||
context
|
||||
), R.layout.room_gameplay_widget, this, true
|
||||
)
|
||||
|
||||
private var isOpened = false
|
||||
|
||||
private var list: List<RoomIcon>? = null
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int,
|
||||
defStyleRes: Int
|
||||
) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
init {
|
||||
binding.ivSwitch.setOnClickListener {
|
||||
switchUI(!isOpened)
|
||||
}
|
||||
binding.ivIcon.singleClick {
|
||||
list?.getOrNull(0)?.let {
|
||||
jump(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInitialize(roomView: RoomView, roomContext: RoomContext) {
|
||||
super.onInitialize(roomView, roomContext)
|
||||
refreshData()
|
||||
}
|
||||
|
||||
private fun refreshData() {
|
||||
val disposable = AvRoomModel.get().roomGamePlayList
|
||||
.subscribe { list: List<RoomIcon> ->
|
||||
loadData(list)
|
||||
}
|
||||
getCompositeDisposable().add(disposable)
|
||||
}
|
||||
|
||||
fun switchUI(openListWidget: Boolean) {
|
||||
this.isOpened = openListWidget
|
||||
if (openListWidget) {
|
||||
this.visibility = View.INVISIBLE
|
||||
getGameplayListWidget()?.visibility = View.VISIBLE
|
||||
} else {
|
||||
this.visibility = View.VISIBLE
|
||||
getGameplayListWidget()?.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData(list: List<RoomIcon>) {
|
||||
this.list = list
|
||||
this.isVisible = list.isNotEmpty()
|
||||
val listWidget = getGameplayListWidget()
|
||||
if (list.isEmpty()) {
|
||||
listWidget?.isVisible = false
|
||||
}
|
||||
listWidget?.loadData(list)
|
||||
binding.ivIcon.load(list.firstOrNull()?.icon)
|
||||
}
|
||||
|
||||
fun jump(data: RoomIcon) {
|
||||
if (data.isFindLove()) {
|
||||
GoldBoxHelper.handleBoxClick(context)
|
||||
} else {
|
||||
val url = data.skipContent
|
||||
if (data.skipType == 3 && !url.isNullOrEmpty()) {
|
||||
if (data.showType == 2) {
|
||||
RoomWebDialogActivity.start(context, url, false)
|
||||
} else {
|
||||
CommonWebViewActivity.start(context, url)
|
||||
}
|
||||
} else {
|
||||
CommonJumpHelper.bannerJump(context, data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getGameplayListWidget(): RoomGameplayListWidget? {
|
||||
return roomView?.findWidget(
|
||||
RoomGameplayListWidget::class.simpleName ?: ""
|
||||
) as? RoomGameplayListWidget
|
||||
}
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package com.chwl.app.avroom.gameplay
|
||||
|
||||
import android.widget.ImageView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.core.room.bean.RoomIcon
|
||||
|
||||
|
||||
class RoomPlayListAdapter :
|
||||
BaseQuickAdapter<RoomIcon, BaseViewHolder>(R.layout.room_gameplay_item) {
|
||||
override fun convert(helper: BaseViewHolder, item: RoomIcon?) {
|
||||
helper.getView<ImageView>(R.id.iv_icon).load(item?.icon)
|
||||
}
|
||||
}
|
@@ -5,7 +5,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.DialogNewUserChargePrizeBinding
|
||||
import com.chwl.app.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.chwl.app.base.BaseBindingDialog
|
||||
import com.chwl.app.ui.utils.RVDelegate
|
||||
import com.chwl.core.pay.bean.FirstChargeReward
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
|
@@ -459,13 +459,6 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void checkFirstCharge() {
|
||||
AvRoomModel.get().getFirstCharge()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(firstChargeInfo -> {
|
||||
if (getMvpView() != null && firstChargeInfo.getNeedToShow()) {
|
||||
getMvpView().showFirstChargeDialog(firstChargeInfo);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -455,12 +455,12 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
|
||||
ChatRoomMessage firstMsg = IMNetEaseManager.get().getFirstMessageContent();
|
||||
IMNetEaseManager.get().addCloseScreenMessages(firstMsg);
|
||||
if (AvRoomDataManager.get().closeScreenBySAdmin()) {
|
||||
contentText = "系統檢測涉嫌違規,予以關閉公屏消息警告";
|
||||
contentText = ResUtil.getString(R.string.avroom_fragment_homepartyfragment_015);
|
||||
} else {
|
||||
contentText = "管理員已關閉聊天公屏";
|
||||
contentText = ResUtil.getString(R.string.avroom_fragment_homepartyfragment_06);
|
||||
}
|
||||
} else {
|
||||
contentText = "管理員已開啟聊天公屏";
|
||||
contentText = ResUtil.getString(R.string.avroom_fragment_homepartyfragment_014);
|
||||
}
|
||||
RoomInfoAttachment attachment = new RoomInfoAttachment(CustomAttachment.CUSTOM_MSG_UPDATE_ROOM_INFO,
|
||||
CustomAttachment.CUSTOM_MSG_UPDATE_ROOM_INFO_CLOSE_SCREEN);
|
||||
@@ -496,10 +496,10 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
|
||||
.doOnNext(aBoolean -> getMvpView().showAttentionDialog())
|
||||
.subscribe();
|
||||
|
||||
Observable.interval(1, 5, TimeUnit.MINUTES)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.takeWhile(aLong -> !AvRoomDataManager.get().isRoomFans && getMvpView() != null)
|
||||
.subscribe(aLong -> getMvpView().noFollow2());
|
||||
// Observable.interval(1, 5, TimeUnit.MINUTES)
|
||||
// .compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
// .takeWhile(aLong -> !AvRoomDataManager.get().isRoomFans && getMvpView() != null)
|
||||
// .subscribe(aLong -> getMvpView().noFollow2());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -12,12 +12,10 @@ import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.view.IHomePartyView;
|
||||
import com.chwl.app.treasure_box.widget.GoldBoxHelper;
|
||||
import com.chwl.app.utils.UserUtils;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.home.bean.BannerInfo;
|
||||
import com.chwl.core.im.custom.bean.CustomAttachment;
|
||||
import com.chwl.core.im.custom.bean.FaceAttachment;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
@@ -298,49 +296,4 @@ public class HomePartyPresenter extends BaseRoomPresenter<IHomePartyView> {
|
||||
, e -> SingleToastUtil.showToast(e.getMessage()));
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void getBannerList() {
|
||||
mAvRoomModel.getRoomBanner()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(bannerInfos -> {
|
||||
// final boolean firstCharge = UserUtils.getUserInfo().isFirstCharge();
|
||||
if (GoldBoxHelper.needIntegrateBoxEntrance()) {
|
||||
// if (firstCharge) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setFirstCharge(true);
|
||||
// bannerInfos.add(0, bannerInfo);
|
||||
// }
|
||||
// if (GoldBoxHelper.isShowRadish()) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setRadish(true);
|
||||
// bannerInfos.add(firstCharge ? 1 : 0, bannerInfo);
|
||||
// }
|
||||
getMvpView().onShowBanner(bannerInfos);
|
||||
// GoldBoxHelper.isHideBox()
|
||||
// .subscribe(isHide -> {
|
||||
// if (!isHide) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setBox(true);
|
||||
// int index = 0;
|
||||
// if (firstCharge) index++;
|
||||
// if (GoldBoxHelper.isShowRadish()) index++;
|
||||
// bannerInfos.add(index, bannerInfo);
|
||||
// }
|
||||
// getMvpView().onShowBanner(bannerInfos);
|
||||
// }, throwable -> getMvpView().onShowBanner(bannerInfos));
|
||||
} else {
|
||||
// if(GoldBoxHelper.isShowFairy()){
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setFairy(true);
|
||||
// bannerInfos.add(0, bannerInfo);
|
||||
// }
|
||||
// if (firstCharge) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setFirstCharge(true);
|
||||
// bannerInfos.add(0, bannerInfo);
|
||||
// }
|
||||
getMvpView().onShowBanner(bannerInfos);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -2,15 +2,9 @@ package com.chwl.app.avroom.presenter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.view.IHomePartyUserListView;
|
||||
import com.chwl.app.base.BaseMvpPresenter;
|
||||
import com.chwl.core.room.bean.OnlineChatMember;
|
||||
import com.chwl.core.room.model.HomePartyUserListModel;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> </p>
|
||||
@@ -26,49 +20,17 @@ public class HomePartyUserListPresenter extends BaseMvpPresenter<IHomePartyUserL
|
||||
mHomePartyUserListMode = new HomePartyUserListModel();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页获取房间成员:第一页包含队列成员,固定成员,游客50人,之后每一页获取游客50人
|
||||
*
|
||||
* @param page 页数
|
||||
* @param time 固定成员列表用updateTime,
|
||||
* 游客列表用进入enterTime,
|
||||
* 填0会使用当前服务器最新时间开始查询,即第一页,单位毫秒
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void requestChatMemberByPage(final int page, long time, List<OnlineChatMember> oldList) {
|
||||
mHomePartyUserListMode.getOnLinePageMembers(page, time, oldList)
|
||||
.subscribe(onlineChatMembers -> {
|
||||
Logger.i(ResUtil.getString(R.string.avroom_presenter_homepartyuserlistpresenter_01), page, onlineChatMembers.size());
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().onRequestChatMemberByPageSuccess(onlineChatMembers, page);
|
||||
}
|
||||
}, throwable -> {
|
||||
throwable.printStackTrace();
|
||||
Logger.i(ResUtil.getString(R.string.avroom_presenter_homepartyuserlistpresenter_02), page, throwable.getMessage());
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().onRequestChatMemberByPageFail(throwable.getMessage(), page);
|
||||
}
|
||||
});
|
||||
public void requestRoomOnlineList(long roomUid){
|
||||
mHomePartyUserListMode.getRoomOnlineList(roomUid).compose(bindToLifecycle()).subscribe((data, throwable) -> {
|
||||
if (getMvpView() != null) {
|
||||
if (data != null) {
|
||||
getMvpView().onRequestRoomOnlineListSuccess(data);
|
||||
} else {
|
||||
getMvpView().onRequestChatMemberByPageFail(throwable.getMessage(), 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onMemberDownUpMic(String account, boolean isUpMic, List<OnlineChatMember> dataList,
|
||||
final int page) {
|
||||
mHomePartyUserListMode.onMemberDownUpMic(account, isUpMic, dataList)
|
||||
.subscribe(onlineChatMembers -> {
|
||||
if (getMvpView() != null)
|
||||
getMvpView().onRequestChatMemberByPageSuccess(onlineChatMembers, page);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void onUpdateMemberManager(String account, List<OnlineChatMember> dataList,
|
||||
boolean isRemoveManager, final int page) {
|
||||
mHomePartyUserListMode.onUpdateMemberManager(account, isRemoveManager, dataList)
|
||||
.subscribe(onlineChatMembers -> {
|
||||
if (getMvpView() != null)
|
||||
getMvpView().onRequestChatMemberByPageSuccess(onlineChatMembers, page);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -1,52 +0,0 @@
|
||||
package com.chwl.app.avroom.presenter;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.base.BaseMvpPresenter;
|
||||
import com.chwl.app.module.IRoomNewbieMessageView;
|
||||
import com.chwl.app.module.RoomNewbieModel;
|
||||
import com.chwl.core.bean.RoomNewbieMessageInfo;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class RoomNewbieHellowWordPresenter extends BaseMvpPresenter<IRoomNewbieMessageView> {
|
||||
private int start = 0;
|
||||
private int pageSize = 5;//发现萌新-打招呼列表
|
||||
public void loadData(int start) {
|
||||
RoomNewbieModel.get().getMessageList(start, pageSize)
|
||||
.compose(bindToLifecycle()).subscribe(new SingleObserver<RoomNewbieMessageInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(RoomNewbieMessageInfo messageInfos) {
|
||||
if (messageInfos != null) {
|
||||
if (mMvpView != null) {
|
||||
mMvpView.getRoomNewbieMessageSuccess(messageInfos);
|
||||
}
|
||||
} else {
|
||||
if (mMvpView != null) {
|
||||
mMvpView.getRoomNewbieMessageFails(ResUtil.getString(R.string.avroom_presenter_roomnewbiehellowwordpresenter_01));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (mMvpView != null) {
|
||||
mMvpView.getRoomNewbieMessageFails(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
public int getStart() {
|
||||
return start;
|
||||
}
|
||||
}
|
@@ -1,12 +1,8 @@
|
||||
package com.chwl.app.avroom.presenter;
|
||||
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.chwl.app.avroom.view.ISingleRoomView;
|
||||
import com.chwl.app.treasure_box.widget.GoldBoxHelper;
|
||||
import com.chwl.app.utils.UserUtils;
|
||||
import com.chwl.core.home.bean.BannerInfo;
|
||||
|
||||
/**
|
||||
* <p> </p>
|
||||
@@ -16,50 +12,4 @@ import com.chwl.core.home.bean.BannerInfo;
|
||||
*/
|
||||
public class SingleRoomPresenter extends BaseRoomPresenter<ISingleRoomView> {
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void getBannerList() {
|
||||
mAvRoomModel.getRoomBanner()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(bannerInfos -> {
|
||||
// final boolean firstCharge = UserUtils.getUserInfo().isFirstCharge();
|
||||
if (GoldBoxHelper.needIntegrateBoxEntrance()) {
|
||||
// if (firstCharge) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setFirstCharge(true);
|
||||
// bannerInfos.add(0, bannerInfo);
|
||||
// }
|
||||
// if (GoldBoxHelper.isShowRadish()) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setRadish(true);
|
||||
// bannerInfos.add(firstCharge ? 1 : 0, bannerInfo);
|
||||
// }
|
||||
getMvpView().onShowBanner(bannerInfos);
|
||||
// GoldBoxHelper.isHideBox()
|
||||
// .subscribe(isHide -> {
|
||||
// if (!isHide) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setBox(true);
|
||||
// int index = 0;
|
||||
// if (firstCharge) index++;
|
||||
// if (GoldBoxHelper.isShowRadish()) index++;
|
||||
// bannerInfos.add(index, bannerInfo);
|
||||
// }
|
||||
// getMvpView().onShowBanner(bannerInfos);
|
||||
// }, throwable -> getMvpView().onShowBanner(bannerInfos));
|
||||
} else {
|
||||
// if(GoldBoxHelper.isShowFairy()){
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setFairy(true);
|
||||
// bannerInfos.add(0, bannerInfo);
|
||||
// }
|
||||
// if (firstCharge) {
|
||||
// BannerInfo bannerInfo = new BannerInfo();
|
||||
// bannerInfo.setFirstCharge(true);
|
||||
// bannerInfos.add(0, bannerInfo);
|
||||
// }
|
||||
getMvpView().onShowBanner(bannerInfos);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,90 +0,0 @@
|
||||
package com.chwl.app.avroom.rank
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.databinding.RoomRankWidgetBinding
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.room.bean.RoomContributeDataInfo
|
||||
import com.chwl.core.room.bean.RoomContributeUserInfo
|
||||
import com.chwl.core.room.model.RoomContributeListModel
|
||||
import com.chwl.core.support.room.FrameLayoutRoomWidget
|
||||
import com.chwl.core.support.room.RoomContext
|
||||
import com.chwl.core.support.room.RoomView
|
||||
import com.chwl.core.support.room.RoomWidget
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
|
||||
/**
|
||||
* 房间榜单入口
|
||||
*/
|
||||
class RoomRankWidget : FrameLayoutRoomWidget, RoomWidget {
|
||||
|
||||
private val binding: RoomRankWidgetBinding =
|
||||
DataBindingUtil.inflate(
|
||||
LayoutInflater.from(
|
||||
context
|
||||
), R.layout.room_rank_widget, this, true
|
||||
)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int,
|
||||
defStyleRes: Int
|
||||
) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
init {
|
||||
this.singleClick {
|
||||
DialogWebViewActivity.start(context, UriProvider.getRoomRanking())
|
||||
refreshData()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInitialize(roomView: RoomView, roomContext: RoomContext) {
|
||||
super.onInitialize(roomView, roomContext)
|
||||
refreshData()
|
||||
}
|
||||
|
||||
override fun onUnbindContext() {
|
||||
super.onUnbindContext()
|
||||
updateView(null)
|
||||
}
|
||||
|
||||
private fun refreshData() {
|
||||
val disposable = RoomContributeListModel.get()
|
||||
.getSingleRoomRanking(1, RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.subscribe { roomContributeDataInfo: RoomContributeDataInfo ->
|
||||
updateView(roomContributeDataInfo.rankings)
|
||||
}
|
||||
getCompositeDisposable().add(disposable)
|
||||
}
|
||||
|
||||
private fun updateView(list: List<RoomContributeUserInfo>?) {
|
||||
arrayListOf(
|
||||
binding.ivRank0, binding.ivRank1, binding.ivRank2
|
||||
).forEachIndexed { index, imageView ->
|
||||
val url = list?.getOrNull(index)?.avatar
|
||||
if (url.isNullOrEmpty()) {
|
||||
imageView.isVisible = false
|
||||
} else {
|
||||
imageView.loadAvatar(url)
|
||||
imageView.isVisible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.CommonVPAdapter;
|
||||
import com.chwl.app.base.BaseViewBindingActivity;
|
||||
import com.chwl.app.base.TitleBar;
|
||||
import com.chwl.app.databinding.ActivityMyRecommendCardBinding;
|
||||
@@ -49,7 +50,7 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
|
||||
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.HAS_USED));
|
||||
//已失效
|
||||
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID));
|
||||
binding.viewPager.setAdapter(new CardPagerAdapter(getSupportFragmentManager()));
|
||||
binding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager() ,getLifecycle(), fragmentList));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,7 +61,7 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
CommonWebViewActivity.start(context, UriProvider.JAVA_WEB_URL +
|
||||
"/hiyoo/modules/recommend-card/help.html");
|
||||
"/molistar/modules/recommend-card/help.html");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -82,21 +83,4 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
|
||||
ViewPagerHelper.bind(binding.indicator, binding.viewPager);
|
||||
|
||||
}
|
||||
|
||||
class CardPagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
||||
public CardPagerAdapter(FragmentManager fm) {
|
||||
super(fm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return fragmentList.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return fragmentList.size();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage;
|
||||
|
||||
public class RedPackageEvent {
|
||||
}
|
@@ -1,84 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import android.view.animation.AnimationUtils
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.base.BaseDialog
|
||||
import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.databinding.DialogRedPackageGoRoomBinding
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.redpackage.bean.RedPackageNotifyInfo
|
||||
import com.chwl.core.utils.extension.subAndReplaceDot
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
class RedPackageGoRoomDialog : BaseDialog<DialogRedPackageGoRoomBinding>() {
|
||||
|
||||
|
||||
private val redPackageNotifyInfo by lazy { arguments?.getSerializable(KEY_NOTIFY_INFO) as RedPackageNotifyInfo }
|
||||
|
||||
|
||||
companion object {
|
||||
private const val KEY_NOTIFY_INFO = "redPackageNotifyInfo"
|
||||
private var dialogManager: DialogManager? = null
|
||||
fun newInstance(redPackageNotifyInfo: RedPackageNotifyInfo): RedPackageGoRoomDialog {
|
||||
return RedPackageGoRoomDialog().apply {
|
||||
arguments = Bundle().apply {
|
||||
putSerializable(KEY_NOTIFY_INFO, redPackageNotifyInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
height = WindowManager.LayoutParams.MATCH_PARENT
|
||||
|
||||
super.onStart()
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package).apply {
|
||||
binding?.clRed?.animation = this
|
||||
start()
|
||||
}
|
||||
AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package_in_btn).let {
|
||||
binding?.ivGoRoom?.animation = it
|
||||
it.start()
|
||||
}
|
||||
binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() }
|
||||
binding?.ivGoRoom?.setOnClickListener {
|
||||
val jump = {
|
||||
AVRoomActivity.start(context, redPackageNotifyInfo.roomUid,
|
||||
AVRoomActivity.FROM_TYPE_ALL_RED, redPackageNotifyInfo.sendUserNick, redPackageNotifyInfo)
|
||||
dismissAllowingStateLoss()
|
||||
EventBus.getDefault().post(RedPackageEvent())
|
||||
}
|
||||
// StatUtil.onEvent("gethongbao_get", ResUtil.getString(R.string.avroom_redpackage_redpackagegoroomdialog_01))
|
||||
if (AvRoomDataManager.get().isOwnerOnMic && AvRoomDataManager.get().roomId != redPackageNotifyInfo.roomUid) {
|
||||
//如果显示这个弹窗的时候,又收到了一个全服,再次点击进房抢的时候需要关闭前面的那个
|
||||
dialogManager?.dismissDialog()
|
||||
dialogManager = DialogManager(context)
|
||||
dialogManager?.showOkCancelDialog(ResUtil.getString(R.string.avroom_redpackage_redpackagegoroomdialog_02), true, jump)
|
||||
} else {
|
||||
jump()
|
||||
}
|
||||
|
||||
}
|
||||
redPackageNotifyInfo.let {
|
||||
ImageLoadUtils.loadAvatar(context, it.sendUserAvatar, binding?.ivAvatar)
|
||||
binding?.tvContent?.text = it.redEnvelopeMessage
|
||||
binding?.tvNickname?.text = it.sendUserNick.subAndReplaceDot()
|
||||
binding?.tvRoomName?.text = it.roomTitle.subAndReplaceDot()
|
||||
}
|
||||
// StatUtil.onEvent("gethongbao", ResUtil.getString(R.string.avroom_redpackage_redpackagegoroomdialog_03))
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
dialogManager = null
|
||||
}
|
||||
}
|
@@ -1,169 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.avroom.redpackage.open.RedPackageOpenDialog
|
||||
import com.chwl.core.im.custom.bean.RedPackageAttachment
|
||||
import com.chwl.core.manager.IMNetEaseManager
|
||||
import com.chwl.core.manager.RoomEvent
|
||||
import com.chwl.core.redpackage.RedPackageModel
|
||||
import com.chwl.core.redpackage.bean.RedPackageNotifyInfo
|
||||
import com.chwl.core.support.room.RoomContext
|
||||
import com.chwl.core.support.room.RoomHandler
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/26 11:26
|
||||
* Desc:红包处理器
|
||||
**/
|
||||
class RedPackageHandler : RoomHandler() {
|
||||
|
||||
// 入口图标-数据
|
||||
val iconLiveData: MutableLiveData<RedPackageNotifyInfo?> = MutableLiveData()
|
||||
|
||||
/**
|
||||
* 红包相关操作计数;目前的红包操作为:【正在打开当前房间的红包弹窗】。
|
||||
* 展示时+1,销毁时-1,以此来判断是否正在进行红包操作)
|
||||
*/
|
||||
private var operationCount: Int = 0
|
||||
|
||||
val inOperation get() = operationCount > 0
|
||||
|
||||
override fun onStart(context: RoomContext) {
|
||||
super.onStart(context)
|
||||
registerSignaling()
|
||||
}
|
||||
|
||||
override fun onStop(context: RoomContext) {
|
||||
super.onStop(context)
|
||||
}
|
||||
|
||||
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
|
||||
super.onStateChanged(source, event)
|
||||
if (event == Lifecycle.Event.ON_RESUME) {
|
||||
requestLatestRoomRedPackage()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 尝试展示红包
|
||||
* PS:目前这个方法仅为了解决:通过房间外的红包入口进入房间后,需要查询该红包,展示出来。
|
||||
*/
|
||||
fun tryShowRedPackage(redPackageId: Long) {
|
||||
val disposable = RedPackageModel.getRedPackage(redPackageId)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe({ item ->
|
||||
if (item.state != 3 && item.state != 6 && item.state != 4) {
|
||||
roomView?.getActivity().let {
|
||||
RedPackageOpenDialog.newInstance(item).show(it)
|
||||
}
|
||||
}
|
||||
}, {})
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听房间信令
|
||||
*/
|
||||
private fun registerSignaling() {
|
||||
// TODO 临时方案:不应在这里直接监听IM,后续会统一分发出口
|
||||
// 信令来源:新/旧版的厅内红包,非全服红包
|
||||
IMNetEaseManager.get().chatRoomEventObservable
|
||||
.compose<RoomEvent>(bindToLifecycle<RoomEvent>())
|
||||
.filter {
|
||||
it?.event == RoomEvent.RECEIVE_RED_PACKAGE && it?.chatRoomMessage?.attachment is RedPackageAttachment
|
||||
}.map {
|
||||
(it.chatRoomMessage.attachment as RedPackageAttachment).getRedPackageNotifyInfo()
|
||||
}
|
||||
.subscribe { data: RedPackageNotifyInfo ->
|
||||
handleRoomRedPackage(data, true)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找最新的厅内红包(新/旧版的厅内红包,非全服红包)
|
||||
*/
|
||||
private fun requestLatestRoomRedPackage() {
|
||||
val roomId = roomContext?.roomId ?: return
|
||||
RedPackageModel.getLatestRoomRedPackage(roomId)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe({ data ->
|
||||
handleRoomRedPackage(data, false)
|
||||
}, {
|
||||
if (it.message == "No RedPackage") {
|
||||
updateIcon(null)
|
||||
} else {
|
||||
// 网络等原因的失败,不处理就好
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理厅内红包,非全服红包
|
||||
* @param isSignaling 是否来自信令?
|
||||
*/
|
||||
private fun handleRoomRedPackage(data: RedPackageNotifyInfo, isSignaling: Boolean) {
|
||||
tryShowOpenDialog(data, isSignaling)
|
||||
updateIcon(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新红包入口图标
|
||||
*/
|
||||
private fun updateIcon(data: RedPackageNotifyInfo?) {
|
||||
iconLiveData.postValue(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 尝试展示红包领取弹窗
|
||||
*/
|
||||
private fun tryShowOpenDialog(data: RedPackageNotifyInfo, isSignaling: Boolean) {
|
||||
val activity = roomView?.getActivity() ?: return
|
||||
if (activity.isFinishing) {
|
||||
return
|
||||
}
|
||||
if (!isSignaling) {
|
||||
return
|
||||
}
|
||||
if (data.kind == 0 || (data.kind == 1 && data.validityType == 0)) {
|
||||
//【旧版本-厅内红包:kind=0】、【新版本-厅内无门槛-立即生效红包:kind=1&validityType=0】
|
||||
RedPackageOpenDialog.newInstance(data).show(activity)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求刷新Icon(数据已过期)
|
||||
*/
|
||||
fun requestRefreshIcon() {
|
||||
// updateIcon(null)
|
||||
requestLatestRoomRedPackage()
|
||||
}
|
||||
|
||||
fun startOperation() {
|
||||
operationCount++
|
||||
}
|
||||
|
||||
fun stopOperation() {
|
||||
operationCount--
|
||||
}
|
||||
|
||||
/**
|
||||
* 全服红包信令(之前是在BaseActivity中处理的;现在为了红包的一个需求,暂且拦截到这里处理)
|
||||
*/
|
||||
fun onAllServiceSignaling(context: Context, data: RedPackageNotifyInfo) {
|
||||
if (context is AVRoomActivity) {
|
||||
if (roomContext?.roomId == data.roomUid) {
|
||||
RedPackageOpenDialog.newInstance(data).show(context)
|
||||
} else {
|
||||
if (!inOperation) {
|
||||
RedPackageGoRoomDialog.newInstance(data).show(context)
|
||||
} else {
|
||||
// 需求:正在房间中领取红包时,不展示其他房间的全服红包
|
||||
}
|
||||
}
|
||||
} else {
|
||||
RedPackageGoRoomDialog.newInstance(data).show(context)
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,239 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.util.TypedValue
|
||||
import android.view.LayoutInflater
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.example.lib_utils.ServiceTime
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.redpackage.open.RedPackageOpenDialog
|
||||
import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.databinding.RedPackageWidgetBinding
|
||||
import com.chwl.core.redpackage.RedPackageModel
|
||||
import com.chwl.core.redpackage.bean.RedPackageNotifyInfo
|
||||
import com.chwl.core.support.room.FrameLayoutRoomWidget
|
||||
import com.chwl.core.support.room.RoomContext
|
||||
import com.chwl.core.support.room.RoomView
|
||||
import com.chwl.core.support.room.RoomWidget
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
import io.reactivex.disposables.Disposable
|
||||
import okhttp3.internal.toLongOrDefault
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.TimeZone
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/24 16:37
|
||||
* Desc:房间内的红包入口
|
||||
**/
|
||||
class RedPackageWidget : FrameLayoutRoomWidget, RoomWidget {
|
||||
private var countDownDisposable: Disposable? = null
|
||||
private var data: RedPackageNotifyInfo? = null
|
||||
private val redPackageHandler: RedPackageHandler?
|
||||
get() = RoomContext.get()
|
||||
?.findAbility<RedPackageHandler>(RedPackageHandler::class.java.simpleName)
|
||||
|
||||
// 临时这样实现,后续优化进度弹窗
|
||||
private var dialogManager: DialogManager? = null
|
||||
|
||||
// 倒计时格式(分:秒)
|
||||
private val mmssFormat by lazy(LazyThreadSafetyMode.NONE) {
|
||||
SimpleDateFormat("mm:ss").apply {
|
||||
timeZone = TimeZone.getTimeZone("GMT+00:00")
|
||||
}
|
||||
}
|
||||
|
||||
private val binding: RedPackageWidgetBinding =
|
||||
DataBindingUtil.inflate(
|
||||
LayoutInflater.from(
|
||||
context
|
||||
), R.layout.red_package_widget, this, true
|
||||
)
|
||||
|
||||
constructor(context: Context) : super(context)
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
||||
context,
|
||||
attrs,
|
||||
defStyleAttr
|
||||
)
|
||||
|
||||
constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int,
|
||||
defStyleRes: Int
|
||||
) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
init {
|
||||
// 默认不可见
|
||||
this.isVisible = false
|
||||
this.setBackgroundResource(R.drawable.red_package_widget_bg)
|
||||
singleClick {
|
||||
data?.let {
|
||||
tryShowRedPackage(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始倒计时
|
||||
* @param time 开抢时间
|
||||
*/
|
||||
private fun startCountDown(time: Long) {
|
||||
val count = time - ServiceTime.time
|
||||
if (count <= 0) {
|
||||
switchUI(false)
|
||||
return
|
||||
}
|
||||
countDownDisposable =
|
||||
Observable.intervalRange(0, count / 1000, 0, 1000L, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doOnNext {
|
||||
val gap = time - ServiceTime.time
|
||||
if (gap >= 0) {
|
||||
binding.tvText.text = mmssFormat.format(gap)
|
||||
}
|
||||
}
|
||||
.doOnComplete {
|
||||
switchUI(false)
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换UI
|
||||
* @param isCountDown 是否倒计时模式?否则为可抢红包模式
|
||||
*/
|
||||
private fun switchUI(isCountDown: Boolean) {
|
||||
if (isCountDown) {
|
||||
binding.tvText.setBackgroundResource(R.drawable.shape_99292929_8)
|
||||
binding.tvText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10f)
|
||||
} else {
|
||||
binding.tvText.setBackgroundResource(R.drawable.red_package_widget_bg_text)
|
||||
binding.tvText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 9f)
|
||||
binding.tvText.setText(R.string.red_package_widget_get)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart(roomView: RoomView) {
|
||||
super.onStart(roomView)
|
||||
roomView.getActivity()?.let {
|
||||
this.dialogManager = DialogManager(it)
|
||||
this.dialogManager?.setCanceledOnClickOutside(false)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInitialize(roomView: RoomView, roomContext: RoomContext) {
|
||||
super.onInitialize(roomView, roomContext)
|
||||
val lifecycleOwner = roomView.getLifecycleOwner()
|
||||
redPackageHandler?.iconLiveData?.observe(lifecycleOwner) {
|
||||
loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新数据
|
||||
*/
|
||||
private fun loadData(data: RedPackageNotifyInfo?) {
|
||||
this.data = data
|
||||
stopCountDown()
|
||||
if (data != null) {
|
||||
val num = data.redEnvelopeNum
|
||||
if (num > 0) {
|
||||
if (num > 99) {
|
||||
binding.tvNum.text = "99+"
|
||||
} else {
|
||||
binding.tvNum.text = num.toString()
|
||||
}
|
||||
binding.tvNum.isVisible = true
|
||||
} else {
|
||||
binding.tvNum.isVisible = false
|
||||
}
|
||||
if (data.validityType == 1) {
|
||||
// 限时生效
|
||||
switchUI(true)
|
||||
startCountDown(data.beginTime)
|
||||
} else {
|
||||
// 立即生效
|
||||
switchUI(false)
|
||||
}
|
||||
this.isVisible = true
|
||||
} else {
|
||||
this.isVisible = false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 尝试展示红包
|
||||
*/
|
||||
private fun tryShowRedPackage(data: RedPackageNotifyInfo) {
|
||||
dialogManager?.context?.let {
|
||||
dialogManager?.showProgressDialog(it, false)
|
||||
}
|
||||
val disposable = RedPackageModel.getRedPackage(data.redEnvelopeId.toLongOrDefault(0))
|
||||
.subscribe({ item ->
|
||||
dialogManager?.dismissDialog()
|
||||
when (item.state) {
|
||||
3 -> {
|
||||
redPackageHandler?.requestRefreshIcon()
|
||||
SingleToastUtil.showToast(R.string.red_package_result_empty_tips)
|
||||
}
|
||||
|
||||
4 -> {
|
||||
val newData = item.result?.redEnvelopeVO
|
||||
if (newData != null && newData.pickNum == newData.totalNum) {
|
||||
redPackageHandler?.requestRefreshIcon()
|
||||
SingleToastUtil.showToast(R.string.red_package_result_empty_tips)
|
||||
} else {
|
||||
roomView?.getActivity().let {
|
||||
RedPackageOpenDialog.newInstance(item).show(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
2, 6 -> {
|
||||
redPackageHandler?.requestRefreshIcon()
|
||||
SingleToastUtil.showToast(R.string.red_package_disabled_tips)
|
||||
}
|
||||
|
||||
else -> {
|
||||
roomView?.getActivity().let {
|
||||
RedPackageOpenDialog.newInstance(item).show(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
SingleToastUtil.showToast(it.message)
|
||||
dialogManager?.dismissDialog()
|
||||
})
|
||||
getCompositeDisposable().add(disposable)
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
this.dialogManager?.dismissDialog()
|
||||
this.dialogManager = null
|
||||
}
|
||||
|
||||
override fun onUnbindContext() {
|
||||
super.onUnbindContext()
|
||||
loadData(null)
|
||||
}
|
||||
|
||||
override fun onBindContext(roomContext: RoomContext) {
|
||||
super.onBindContext(roomContext)
|
||||
}
|
||||
|
||||
private fun stopCountDown() {
|
||||
if (countDownDisposable?.isDisposed == false) {
|
||||
countDownDisposable?.dispose()
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,561 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.open
|
||||
|
||||
|
||||
import android.animation.Animator
|
||||
import android.animation.AnimatorListenerAdapter
|
||||
import android.animation.ObjectAnimator
|
||||
import android.animation.ValueAnimator
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.view.animation.LinearInterpolator
|
||||
import androidx.core.view.isVisible
|
||||
import com.example.lib_utils.ServiceTime
|
||||
import com.example.lib_utils.ktx.getColorById
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.example.lib_utils.ktx.toStringRes
|
||||
import com.example.lib_utils.log.ILog
|
||||
import com.example.lib_utils.spannable.spannableBuilder
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.redpackage.RedPackageHandler
|
||||
import com.chwl.app.base.BaseDialog
|
||||
import com.chwl.app.databinding.RedPackageOpenDialogBinding
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.ui.widget.UserInfoDialog
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.home.event.FollowRoomEvent
|
||||
import com.chwl.core.home.event.OpenRoomMessageInputEvent
|
||||
import com.chwl.core.home.event.ShareRoomEvent
|
||||
import com.chwl.core.home.model.CollectionRoomModel
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.redpackage.*
|
||||
import com.chwl.core.redpackage.bean.RedEnvelopeState
|
||||
import com.chwl.core.redpackage.bean.RedPackageData
|
||||
import com.chwl.core.redpackage.bean.RedPackageInfo
|
||||
import com.chwl.core.redpackage.bean.RedPackageNotifyInfo
|
||||
import com.chwl.core.support.config.Constants
|
||||
import com.chwl.core.support.room.RoomContext
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.TimeZone
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/24 10:14
|
||||
* Desc:领取红包
|
||||
**/
|
||||
@ActLayoutRes(R.layout.red_package_open_dialog)
|
||||
class RedPackageOpenDialog : BaseDialog<RedPackageOpenDialogBinding>(), ILog {
|
||||
|
||||
private var btnAnimator: ObjectAnimator? = null
|
||||
|
||||
private var countDownDisposable: Disposable? = null
|
||||
|
||||
// 倒计时格式(分:秒)
|
||||
private val mmssFormat by lazy(LazyThreadSafetyMode.NONE) {
|
||||
SimpleDateFormat("mm:ss").apply {
|
||||
timeZone = TimeZone.getTimeZone("GMT+00:00")
|
||||
}
|
||||
}
|
||||
|
||||
private val data by lazy(LazyThreadSafetyMode.NONE) {
|
||||
arguments?.getSerializable(Constants.KEY_INTENT) as? RedPackageData
|
||||
}
|
||||
|
||||
// 打开红包的结果
|
||||
private var openResultRunnable: (() -> Unit)? = null
|
||||
|
||||
// 按钮动画是否有效(至少转过了一周期)
|
||||
private var isValidOfBtnAnimator: Boolean = false
|
||||
|
||||
// 按钮执行函数
|
||||
private var btnRunnable: (() -> Unit)? = null
|
||||
|
||||
// 打开红包接口请求中
|
||||
private var opening = false
|
||||
|
||||
companion object {
|
||||
/**
|
||||
* 此入口来源仅限:【全服红包信令】、【厅内无门槛-立即生效红包信令】
|
||||
*/
|
||||
fun newInstance(data: RedPackageNotifyInfo): RedPackageOpenDialog {
|
||||
/**
|
||||
* 收到这两种信令直接展示即可,无需再次请求接口查询状态,
|
||||
* 但由于信令和接口查询的数据格式不一致,所以这里做下转换,达到逻辑共用
|
||||
*/
|
||||
val item = RedPackageData(
|
||||
amount = null,
|
||||
avatar = data.sendUserAvatar,
|
||||
beginTime = data.beginTime,
|
||||
commissionAmount = null,
|
||||
createTime = null,
|
||||
duration = null,
|
||||
endTime = null,
|
||||
finish = true,
|
||||
id = data.redEnvelopeId.toLongOrNull(),
|
||||
kind = data.kind,
|
||||
message = data.redEnvelopeMessage,
|
||||
nick = data.sendUserNick,
|
||||
num = null,
|
||||
originalAmount = null,
|
||||
position = null,
|
||||
roomTitle = null,
|
||||
roomUid = data.roomUid,
|
||||
//红包状态 1 开抢中 2 过时 3 抢光了 4 抢到了 5 将要开始 6 超时已退还
|
||||
state = null,
|
||||
type = null,
|
||||
updateTime = null,
|
||||
userId = null,
|
||||
validityType = data.validityType,
|
||||
result = null
|
||||
)
|
||||
return newInstance(item)
|
||||
}
|
||||
|
||||
fun newInstance(data: RedPackageData): RedPackageOpenDialog {
|
||||
return RedPackageOpenDialog().apply {
|
||||
arguments = Bundle().apply {
|
||||
putSerializable(Constants.KEY_INTENT, data)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
super.onStart()
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
val data = this.data
|
||||
if (data == null) {
|
||||
dismissAllowingStateLoss()
|
||||
return
|
||||
}
|
||||
dialog?.setCanceledOnTouchOutside(false)
|
||||
|
||||
binding.ivClose.singleClick {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
binding.layoutBtn.singleClick {
|
||||
btnRunnable?.invoke()
|
||||
}
|
||||
loadData(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载红包数据
|
||||
*/
|
||||
private fun loadData(data: RedPackageData) {
|
||||
//红包状态 1 开抢中 2 过时 3 抢光了 4 抢到了 5 将要开始 6 超时已退还
|
||||
if (data.state == 4) {
|
||||
loadResult(data.result)
|
||||
} else {
|
||||
// else简单理解为可领取状态,正常情况下在RedPackageWidget点击时有异常状态过滤
|
||||
loadOpen(data)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载可领取数据
|
||||
*/
|
||||
private fun loadOpen(data: RedPackageData) {
|
||||
switchResultViewVisible(false)
|
||||
switchOpenViewVisible(true)
|
||||
binding.ivSendAvatar.loadAvatar(data.avatar)
|
||||
binding.tvSendName.text = data.nick
|
||||
loadTips(data)
|
||||
loadBtnState(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载红包提示
|
||||
*/
|
||||
private fun loadTips(data: RedPackageData) {
|
||||
binding.tvOpenTips.isVisible = false
|
||||
when (data.kind) {
|
||||
0 -> {
|
||||
loadTips(data.message)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
binding.tvOpenTips.setText(R.string.red_package_quick_tips)
|
||||
binding.tvOpenTips.isVisible = true
|
||||
}
|
||||
|
||||
2 -> {
|
||||
if (data.finish == true) {
|
||||
binding.tvOpenTips.setText(R.string.red_package_complete_tips)
|
||||
} else {
|
||||
binding.tvOpenTips.spannableBuilder()
|
||||
.appendText(
|
||||
text = R.string.red_package_open_tips_follow.toStringRes(),
|
||||
textColor = getColorById(R.color.color_FFF87A)
|
||||
)
|
||||
.appendText(text = R.string.red_package_open_tips_msg_end.toStringRes())
|
||||
.apply()
|
||||
}
|
||||
binding.tvOpenTips.isVisible = true
|
||||
}
|
||||
|
||||
3 -> {
|
||||
if (data.finish == true) {
|
||||
binding.tvOpenTips.setText(R.string.red_package_complete_tips)
|
||||
} else {
|
||||
binding.tvOpenTips.spannableBuilder()
|
||||
.appendText(
|
||||
text = R.string.red_package_open_tips_share.toStringRes(),
|
||||
textColor = getColorById(R.color.color_FFF87A)
|
||||
)
|
||||
.appendText(text = R.string.red_package_open_tips_msg_end.toStringRes())
|
||||
.apply()
|
||||
}
|
||||
binding.tvOpenTips.isVisible = true
|
||||
}
|
||||
|
||||
4 -> {
|
||||
if (data.finish == true) {
|
||||
binding.tvOpenTips.setText(R.string.red_package_complete_tips)
|
||||
} else {
|
||||
binding.tvOpenTips.spannableBuilder()
|
||||
.appendText(text = R.string.red_package_open_tips_msg1.toStringRes())
|
||||
.appendText(
|
||||
text = data.message ?: "",
|
||||
textColor = getColorById(R.color.color_FFF87A)
|
||||
)
|
||||
.appendText(text = R.string.red_package_open_tips_msg_end.toStringRes())
|
||||
.apply()
|
||||
}
|
||||
binding.tvOpenTips.isVisible = true
|
||||
}
|
||||
|
||||
else -> {
|
||||
loadTips(data.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载按钮状态
|
||||
*/
|
||||
private fun loadBtnState(data: RedPackageData) {
|
||||
binding.groupBtnTime.isVisible = false
|
||||
binding.ivBtnGet.isVisible = false
|
||||
binding.tvBtnMsg.isVisible = false
|
||||
btnRunnable = null
|
||||
|
||||
val gap = (data.beginTime ?: 0) - ServiceTime.time
|
||||
// 开始了?
|
||||
val started = gap < 0
|
||||
if (data.kind == 0) {
|
||||
// 旧厅内红包or全服红包
|
||||
switchToOpenState()
|
||||
return
|
||||
}
|
||||
if (data.kind == 1 || data.finish == true) {
|
||||
if (started) {
|
||||
switchToOpenState()
|
||||
} else {
|
||||
startCountDown(data.beginTime ?: 0)
|
||||
}
|
||||
} else {
|
||||
binding.tvBtnMsg.isVisible = true
|
||||
if (started) {
|
||||
binding.tvBtnMsg.setText(R.string.red_package_open_btn_no)
|
||||
btnRunnable = {
|
||||
SingleToastUtil.showToast(R.string.red_package_open_no_tips)
|
||||
}
|
||||
} else {
|
||||
when (data.kind) {
|
||||
2 -> {
|
||||
binding.tvBtnMsg.setText(R.string.red_package_open_btn_follow)
|
||||
btnRunnable = {
|
||||
dismissAllowingStateLoss()
|
||||
showUserDialog(data.userId)
|
||||
}
|
||||
}
|
||||
|
||||
3 -> {
|
||||
binding.tvBtnMsg.setText(R.string.red_package_open_btn_share)
|
||||
btnRunnable = {
|
||||
dismissAllowingStateLoss()
|
||||
EventBus.getDefault().post(ShareRoomEvent())
|
||||
}
|
||||
}
|
||||
|
||||
4 -> {
|
||||
binding.tvBtnMsg.setText(R.string.red_package_open_btn_msg)
|
||||
btnRunnable = {
|
||||
dismissAllowingStateLoss()
|
||||
EventBus.getDefault().post(OpenRoomMessageInputEvent(data.message))
|
||||
}
|
||||
}
|
||||
|
||||
else -> {
|
||||
binding.tvBtnMsg.text = ""
|
||||
}
|
||||
}
|
||||
startTimerForUncompletedState(gap)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启定时器:未完成状态更新(倒计时结束时,更新对应View状态)
|
||||
*/
|
||||
private fun startTimerForUncompletedState(time: Long) {
|
||||
val d = Observable.timer(time, TimeUnit.MILLISECONDS)
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
binding.tvBtnMsg.setText(R.string.red_package_open_btn_no)
|
||||
btnRunnable = {
|
||||
SingleToastUtil.showToast(R.string.red_package_open_no_tips)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始倒计时
|
||||
* @param time 开抢时间
|
||||
*/
|
||||
private fun startCountDown(time: Long) {
|
||||
stopCountDown()
|
||||
val count = time - ServiceTime.time
|
||||
if (count <= 0) {
|
||||
switchToOpenState()
|
||||
return
|
||||
}
|
||||
binding.groupBtnTime.isVisible = true
|
||||
countDownDisposable =
|
||||
Observable.intervalRange(0, count / 1000, 0, 1000L, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doOnNext {
|
||||
val gap = time - ServiceTime.time
|
||||
if (gap >= 0) {
|
||||
binding.tvBtnTime.text = mmssFormat.format(gap)
|
||||
}
|
||||
}
|
||||
.doOnComplete {
|
||||
switchToOpenState()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
|
||||
private fun stopCountDown() {
|
||||
if (countDownDisposable?.isDisposed == false) {
|
||||
countDownDisposable?.dispose()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 切换为可抢状态
|
||||
*/
|
||||
private fun switchToOpenState() {
|
||||
binding.tvBtnMsg.isVisible = false
|
||||
binding.groupBtnTime.isVisible = false
|
||||
binding.ivBtnGet.isVisible = true
|
||||
btnRunnable = {
|
||||
if (!opening) {
|
||||
this.data?.let {
|
||||
openRedPackage(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadTips(msg: String?) {
|
||||
if (msg.isNullOrEmpty()) {
|
||||
binding.tvOpenTips.isVisible = false
|
||||
} else {
|
||||
binding.tvOpenTips.text = msg
|
||||
binding.tvOpenTips.isVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开红包
|
||||
*/
|
||||
private fun openRedPackage(data: RedPackageData) {
|
||||
opening = true
|
||||
openResultRunnable = null
|
||||
startRedPacketAnim(binding.layoutBtn)
|
||||
val d = RedPackageModel.openRedPackage(data.id ?: 0)
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW)).subscribe({
|
||||
if (isValidOfBtnAnimator) {
|
||||
btnAnimator?.cancel()
|
||||
onOpenSuccess(it)
|
||||
} else {
|
||||
openResultRunnable = {
|
||||
onOpenSuccess(it)
|
||||
}
|
||||
}
|
||||
}, {
|
||||
if (isValidOfBtnAnimator) {
|
||||
btnAnimator?.cancel()
|
||||
onOpenFail(it)
|
||||
} else {
|
||||
openResultRunnable = {
|
||||
onOpenFail(it)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载结果
|
||||
*/
|
||||
private fun loadResult(data: RedPackageInfo?) {
|
||||
binding.layoutContent.setBackgroundResource(R.drawable.red_package_result_bg)
|
||||
switchOpenViewVisible(false)
|
||||
switchResultViewVisible(true)
|
||||
binding.groupResultMoney.isVisible = false
|
||||
binding.tvResultEmptyTips.isVisible = false
|
||||
binding.ivResultSendAvatar.loadAvatar(data?.redEnvelopeVO?.userVO?.avatar)
|
||||
binding.tvResultSendName.text = data?.redEnvelopeVO?.userVO?.nick ?: ""
|
||||
val name = data?.redEnvelopeVO?.userVO?.nick ?: ""
|
||||
if (name.length > 8) {
|
||||
binding.tvResultSendName.text = name?.take(8) + "..的紅包"
|
||||
} else {
|
||||
binding.tvResultSendName.text = name + "的紅包"
|
||||
}
|
||||
binding.tvMessage.text = data?.redEnvelopeVO?.message
|
||||
binding.tvCount.text = R.string.red_package_result_count_format.toStringRes()
|
||||
.format(data?.redEnvelopeVO?.pickNum ?: 0, data?.redEnvelopeVO?.totalNum ?: 0)
|
||||
|
||||
val adapter = RedPackageResultAdapter()
|
||||
binding.recyclerView.adapter = adapter
|
||||
adapter.setNewData(data?.redEnvelopeItemVOs)
|
||||
|
||||
when (data?.redEnvelopeState) {
|
||||
RedEnvelopeState.SUCCESS -> {
|
||||
binding.tvMoney.text = data.currentUserAmount.toString().substringBefore(".")
|
||||
binding.groupResultMoney.isVisible = true
|
||||
}
|
||||
|
||||
RedEnvelopeState.TIME_OUT, RedEnvelopeState.REMAIN_ZERO, RedEnvelopeState.TIME_OUT_BACK -> {
|
||||
binding.tvResultEmptyTips.isVisible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开红包响应成功
|
||||
* @param data 结果
|
||||
*/
|
||||
private fun onOpenSuccess(data: RedPackageInfo) {
|
||||
loadResult(data)
|
||||
RoomContext.get()
|
||||
?.findAbility<RedPackageHandler>(RedPackageHandler::class.simpleName)
|
||||
?.requestRefreshIcon()
|
||||
when (data.redEnvelopeState) {
|
||||
RedEnvelopeState.SUCCESS -> {
|
||||
// 下面这段是延续老代码保留的
|
||||
if (!AvRoomDataManager.get().isRoomFans) {
|
||||
AvRoomDataManager.get().roomUid.let {
|
||||
CollectionRoomModel.get().followRoom("1", it)
|
||||
.subscribe { _: String? ->
|
||||
AvRoomDataManager.get().isRoomFans = true
|
||||
EventBus.getDefault().post(FollowRoomEvent())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe()
|
||||
opening = false
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开红包响应失败
|
||||
*/
|
||||
private fun onOpenFail(throwable: Throwable) {
|
||||
switchToOpenState()
|
||||
btnAnimator?.cancel()
|
||||
SingleToastUtil.showToast(throwable.message)
|
||||
opening = false
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private fun startRedPacketAnim(v: View) {
|
||||
if (btnAnimator?.isRunning == true) {
|
||||
btnAnimator?.cancel()
|
||||
}
|
||||
isValidOfBtnAnimator = false
|
||||
btnAnimator = ObjectAnimator.ofFloat(v, "rotationY", 0f, 360f)
|
||||
btnAnimator?.let {
|
||||
it.duration = 600
|
||||
it.repeatCount = ValueAnimator.INFINITE
|
||||
it.repeatMode = ValueAnimator.RESTART
|
||||
it.interpolator = LinearInterpolator()
|
||||
it.addListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationRepeat(animation: Animator) {
|
||||
super.onAnimationRepeat(animation)
|
||||
isValidOfBtnAnimator = true
|
||||
if (openResultRunnable != null) {
|
||||
animation.cancel()
|
||||
openResultRunnable?.invoke()
|
||||
}
|
||||
}
|
||||
})
|
||||
it.start()
|
||||
}
|
||||
}
|
||||
|
||||
private fun switchResultViewVisible(isVisible: Boolean) {
|
||||
binding.groupResult.isVisible = isVisible
|
||||
binding.groupResultMoney.isVisible = isVisible
|
||||
binding.tvResultEmptyTips.isVisible = isVisible
|
||||
}
|
||||
|
||||
private fun switchOpenViewVisible(isVisible: Boolean) {
|
||||
binding.groupOpen.isVisible = isVisible
|
||||
binding.tvOpenTips.isVisible = isVisible
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
RoomContext.get()
|
||||
?.findAbility<RedPackageHandler>(RedPackageHandler::class.simpleName)
|
||||
?.startOperation()
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
btnAnimator?.cancel()
|
||||
btnAnimator = null
|
||||
stopCountDown()
|
||||
RoomContext.get()
|
||||
?.findAbility<RedPackageHandler>(RedPackageHandler::class.simpleName)
|
||||
?.stopOperation()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
private fun showUserDialog(uid: Long?) {
|
||||
if (uid == null) {
|
||||
return
|
||||
}
|
||||
activity?.let {
|
||||
UserInfoDialog.showNewUserInfoDialog(
|
||||
activity,
|
||||
uid
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,45 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.open
|
||||
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.isVisible
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.utils.UserUtils
|
||||
import com.chwl.core.redpackage.bean.RedEnvelopeItemVO
|
||||
import com.chwl.core.utils.extension.subAndReplaceDot
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/27 20:24
|
||||
* Desc:红包领取结果
|
||||
**/
|
||||
class RedPackageResultAdapter :
|
||||
BaseQuickAdapter<RedEnvelopeItemVO, BaseViewHolder>(R.layout.red_package_open_item_result) {
|
||||
private val dateFormat = SimpleDateFormat(
|
||||
ResUtil.getString(R.string.avroom_redpackage_redpackageopenadapter_01),
|
||||
Locale.CHINA
|
||||
)
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: RedEnvelopeItemVO) {
|
||||
helper.getView<ImageView>(R.id.iv_avatar).loadAvatar(item.userVO.avatar)
|
||||
val isSelf = item.userVO.uid == UserUtils.getUserUid()
|
||||
helper.setText(
|
||||
R.id.tv_name,
|
||||
if (isSelf) ResUtil.getString(R.string.avroom_redpackage_redpackageopenadapter_02) else item.userVO.nick.subAndReplaceDot(
|
||||
6
|
||||
)
|
||||
)
|
||||
helper.setText(R.id.tv_money, item.amount.substringBefore("."))
|
||||
try {
|
||||
helper.setText(R.id.tv_time, dateFormat.format(item.createTime))
|
||||
} catch (e: Exception) {
|
||||
helper.setText(R.id.tv_time, "")
|
||||
}
|
||||
helper.getView<View>(R.id.v_line).isVisible = helper.bindingAdapterPosition != itemCount - 1
|
||||
}
|
||||
}
|
@@ -1,284 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.send
|
||||
|
||||
import android.graphics.Color
|
||||
import androidx.core.view.isVisible
|
||||
import com.example.lib_utils.ktx.addDisableFilter
|
||||
import com.example.lib_utils.ktx.getColorById
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.example.lib_utils.ktx.toStringRes
|
||||
import com.example.lib_utils.log.ILog
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseBindingFragment
|
||||
import com.chwl.app.databinding.RedPackagePrivateFragmentBinding
|
||||
import com.chwl.app.pay.password.GiveGoldPassWordFragment
|
||||
import com.chwl.app.pay.widget.GridPasswordNoFocusView
|
||||
import com.chwl.app.ui.setting.ModifyPwdActivity
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.chwl.app.ui.widget.recyclerview.decoration.ColorDecoration
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.initial.InitialModel
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.redpackage.RedPackageModel
|
||||
import com.chwl.core.user.UserModel
|
||||
import com.chwl.core.utils.extension.toIntOrDef
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import com.chwl.library.utils.codec.DESUtils
|
||||
import okhttp3.internal.toLongOrDefault
|
||||
import java.math.RoundingMode
|
||||
import java.text.NumberFormat
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/23 12:14
|
||||
* Desc: 厅内红包
|
||||
**/
|
||||
@ActLayoutRes(R.layout.red_package_private_fragment)
|
||||
class PrivateRedPackageEditorFragment : BaseBindingFragment<RedPackagePrivateFragmentBinding>(),
|
||||
ILog {
|
||||
|
||||
private var passWordFragment: GiveGoldPassWordFragment? = null
|
||||
|
||||
private var typeAdapter: RedPackageTypeItemAdapter? = null
|
||||
|
||||
// 生效时间类型 0 立即生效 1 限时生效
|
||||
private var timeType = 0
|
||||
override fun initiate() {
|
||||
mBinding.etText.addDisableFilter(" ", "\n")
|
||||
initTypeView()
|
||||
updateTimeView(true)
|
||||
initTips()
|
||||
}
|
||||
|
||||
override fun onSetListener() {
|
||||
super.onSetListener()
|
||||
mBinding.tvNow.singleClick {
|
||||
updateTimeView(true)
|
||||
}
|
||||
mBinding.tvDelay.singleClick {
|
||||
updateTimeView(false)
|
||||
}
|
||||
mBinding.tvSend.singleClick {
|
||||
checkSend()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initTips() {
|
||||
val time = InitialModel.get().cacheInitInfo?.redEnvelopeConfig?.endSecond
|
||||
if (time != null) {
|
||||
try {
|
||||
val hour = NumberFormat.getInstance().apply {
|
||||
maximumFractionDigits = 2
|
||||
roundingMode = RoundingMode.FLOOR
|
||||
}.format(time / 3600.0)
|
||||
mBinding.tvTips.text = R.string.red_package_tips_format.toStringRes().format(hour)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initTypeView() {
|
||||
mBinding.recyclerView.addItemDecoration(
|
||||
ColorDecoration(
|
||||
Color.TRANSPARENT, UIUtil.dip2px(context, 6.0), 0, false
|
||||
)
|
||||
)
|
||||
val list = ArrayList<RedPackageTypeItemAdapter.ItemData>()
|
||||
list.add(
|
||||
RedPackageTypeItemAdapter.ItemData(
|
||||
1,
|
||||
R.string.red_package_type_unlimited_name,
|
||||
R.string.red_package_type_unlimited_tips
|
||||
)
|
||||
)
|
||||
list.add(
|
||||
RedPackageTypeItemAdapter.ItemData(
|
||||
2,
|
||||
R.string.red_package_type_follow_name,
|
||||
R.string.red_package_type_follow_tips
|
||||
)
|
||||
)
|
||||
list.add(
|
||||
RedPackageTypeItemAdapter.ItemData(
|
||||
3,
|
||||
R.string.red_package_type_share_name,
|
||||
R.string.red_package_type_share_tips
|
||||
)
|
||||
)
|
||||
list.add(
|
||||
RedPackageTypeItemAdapter.ItemData(
|
||||
4,
|
||||
R.string.red_package_type_msg_name,
|
||||
R.string.red_package_type_msg_tips
|
||||
)
|
||||
)
|
||||
val adapter = RedPackageTypeItemAdapter(list)
|
||||
typeAdapter = adapter
|
||||
adapter.setOnItemClickListener { _, view, position ->
|
||||
adapter.select(position)
|
||||
updateTypeView(adapter.getSelect()?.type)
|
||||
}
|
||||
mBinding.recyclerView.adapter = adapter
|
||||
// 默认选择第一个
|
||||
adapter.select(0)
|
||||
updateTypeView(adapter.getSelect()?.type)
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新红包类型对应的视图
|
||||
*/
|
||||
private fun updateTypeView(type: Int?) {
|
||||
when (type) {
|
||||
1 -> {
|
||||
mBinding.tvNow.isVisible = true
|
||||
mBinding.tvDelay.isVisible = true
|
||||
mBinding.etText.isVisible = false
|
||||
}
|
||||
|
||||
4 -> {
|
||||
mBinding.tvNow.isVisible = false
|
||||
mBinding.tvDelay.isVisible = false
|
||||
mBinding.etText.isVisible = true
|
||||
}
|
||||
|
||||
else -> {
|
||||
mBinding.tvNow.isVisible = false
|
||||
mBinding.tvDelay.isVisible = false
|
||||
mBinding.etText.isVisible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新时间选项
|
||||
*/
|
||||
private fun updateTimeView(nowOrDelay: Boolean) {
|
||||
if (nowOrDelay) {
|
||||
timeType = 0
|
||||
mBinding.tvNow.setBackgroundResource(R.drawable.red_package_bg_type_selected)
|
||||
mBinding.tvDelay.setBackgroundResource(R.drawable.shape_f8f8fa_8)
|
||||
mBinding.tvNow.setTextColor(mBinding.root.context.getColorById(R.color.color_FF285C))
|
||||
mBinding.tvDelay.setTextColor(mBinding.root.context.getColorById(R.color.color_767585))
|
||||
} else {
|
||||
timeType = 1
|
||||
mBinding.tvNow.setBackgroundResource(R.drawable.shape_f8f8fa_8)
|
||||
mBinding.tvDelay.setBackgroundResource(R.drawable.red_package_bg_type_selected)
|
||||
mBinding.tvNow.setTextColor(mBinding.root.context.getColorById(R.color.color_767585))
|
||||
mBinding.tvDelay.setTextColor(mBinding.root.context.getColorById(R.color.color_FF285C))
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkSend() {
|
||||
val initInfo = InitialModel.get().cacheInitInfo
|
||||
if (initInfo == null) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_redpackage_redpackagesenddialog_01))
|
||||
return
|
||||
}
|
||||
val typeItem = typeAdapter?.getSelect()
|
||||
if (typeItem?.type == 4) {
|
||||
if (mBinding.etText.text.toString().trim().isEmpty()) {
|
||||
toast(R.string.red_package_msg_empty_tips)
|
||||
return
|
||||
}
|
||||
}
|
||||
val minNum = initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum
|
||||
val maxNum = initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum
|
||||
val minGold = initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount
|
||||
val maxGold = initInfo.redEnvelopeConfig.roomRedEnvelopeMaxAmount
|
||||
val rate =
|
||||
if (initInfo.redEnvelopeConfig.exchangeDiamondsRate == 0.0) 0.68 else initInfo.redEnvelopeConfig.exchangeDiamondsRate
|
||||
|
||||
val redNum = mBinding?.etNum?.text.toString().toIntOrDef()
|
||||
if (redNum < minNum || redNum > maxNum) {
|
||||
SingleToastUtil.showToast("紅包數量不能小於${minNum}或大於${maxNum}!")
|
||||
return
|
||||
}
|
||||
val goldNum = mBinding?.etMoney?.text.toString().toIntOrDef()
|
||||
if (goldNum % 10 != 0) {
|
||||
SingleToastUtil.showToast("鉆石數必須為10的倍數!")
|
||||
return
|
||||
}
|
||||
|
||||
if (goldNum < minGold || goldNum > maxGold) {
|
||||
SingleToastUtil.showToast("鉆石數量不能小於${minGold}或大於${maxGold}!")
|
||||
return
|
||||
}
|
||||
if (goldNum.toFloat() / redNum * rate < 0.1) {//單個手氣紅包價值不低於0.1水晶
|
||||
SingleToastUtil.showToast("單個紅包金額過低")
|
||||
return
|
||||
}
|
||||
UserModel.get().cacheLoginUserInfo?.let {
|
||||
if (!it.isBindPaymentPwd) {
|
||||
ModifyPwdActivity.start(context, ModifyPwdActivity.PAY_PWD)
|
||||
return
|
||||
}
|
||||
}
|
||||
GiveGoldPassWordFragment.newInstance(
|
||||
childFragmentManager,
|
||||
mBinding?.etMoney?.text.toString()
|
||||
).apply {
|
||||
setListener(object : GridPasswordNoFocusView.OnPasswordChangedListener {
|
||||
override fun onTextChanged(psw: String?) {
|
||||
val password = passWordFragment?.password?.password ?: ""
|
||||
if (password.length == 6) {
|
||||
send(password)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInputFinish(psw: String?) {
|
||||
}
|
||||
})
|
||||
passWordFragment = this
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 密码输入完成
|
||||
*/
|
||||
private fun send(password: String) {
|
||||
dialogManager.showProgressDialog(context)
|
||||
val kind = typeAdapter?.getSelect()?.type ?: 1
|
||||
val message = if (kind == 4) {
|
||||
mBinding.etText.text.trim().toString()
|
||||
} else {
|
||||
null
|
||||
}
|
||||
val validityType = if (kind == 1) {
|
||||
timeType
|
||||
} else {
|
||||
// 非无门槛红包 默认限时
|
||||
1
|
||||
}
|
||||
RedPackageModel.sendRedPackage(
|
||||
goldNum = mBinding.etMoney.text.trim().toString().toLongOrDefault(0),
|
||||
message = message,
|
||||
num = mBinding.etNum.text.trim().toString().toLongOrDefault(0),
|
||||
roomUId = AvRoomDataManager.get().mCurrentRoomInfo?.uid.toString(),
|
||||
type = 1,
|
||||
kind = kind,
|
||||
validityType = validityType,
|
||||
password = DESUtils.DESAndBase64(password)
|
||||
)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnError {
|
||||
dialogManager.dismissDialog()
|
||||
SingleToastUtil.showToast(it.message)
|
||||
passWordFragment?.password?.clearPassword()
|
||||
}
|
||||
.subscribe { _ ->
|
||||
PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe()
|
||||
dialogManager.dismissDialog()
|
||||
SingleToastUtil.showToast("發送成功")
|
||||
passWordFragment?.dismissAllowingStateLoss()
|
||||
(parentFragment as? RedPackageSendDialog)?.dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
passWordFragment?.dismissAllowingStateLoss()
|
||||
passWordFragment = null
|
||||
}
|
||||
}
|
@@ -1,157 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.send
|
||||
|
||||
import com.example.lib_utils.ktx.addDisableFilter
|
||||
import com.example.lib_utils.ktx.setOnInputChangedListener
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.example.lib_utils.ktx.toStringRes
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseBindingFragment
|
||||
import com.chwl.app.databinding.RedPackagePublicFragmentBinding
|
||||
import com.chwl.app.pay.password.GiveGoldPassWordFragment
|
||||
import com.chwl.app.pay.widget.GridPasswordNoFocusView
|
||||
import com.chwl.app.ui.setting.ModifyPwdActivity
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.initial.InitialModel
|
||||
import com.chwl.core.initial.bean.InitInfo
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.redpackage.RedPackageModel
|
||||
import com.chwl.core.user.UserModel
|
||||
import com.chwl.core.utils.extension.toIntOrDef
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import com.chwl.library.utils.codec.DESUtils
|
||||
import okhttp3.internal.toLongOrDefault
|
||||
import java.math.RoundingMode
|
||||
import java.text.NumberFormat
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/23 12:14
|
||||
* Desc:全服红包
|
||||
**/
|
||||
@ActLayoutRes(R.layout.red_package_public_fragment)
|
||||
class PublicRedPackageEditorFragment : BaseBindingFragment<RedPackagePublicFragmentBinding>() {
|
||||
|
||||
private var passWordFragment: GiveGoldPassWordFragment? = null
|
||||
|
||||
override fun initiate() {
|
||||
initTips()
|
||||
mBinding.etText.addDisableFilter("\n")
|
||||
mBinding.etText.setOnInputChangedListener {
|
||||
mBinding.tvTextLength.text =
|
||||
R.string.red_package_result_count_format.toStringRes().format(this, 10)
|
||||
true
|
||||
}
|
||||
|
||||
mBinding.tvSend.singleClick {
|
||||
checkSend()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initTips() {
|
||||
val time = InitialModel.get().cacheInitInfo?.redEnvelopeConfig?.endSecond
|
||||
if (time != null) {
|
||||
try {
|
||||
val hour = NumberFormat.getInstance().apply {
|
||||
maximumFractionDigits = 2
|
||||
roundingMode = RoundingMode.FLOOR
|
||||
}.format(time / 3600.0)
|
||||
mBinding.tvTips.text = R.string.red_package_tips_format.toStringRes().format(hour)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkSend() {
|
||||
val initInfo = InitialModel.get().cacheInitInfo ?: InitInfo()
|
||||
val minNum = initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum
|
||||
val maxNum = initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum
|
||||
val minGold = initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount
|
||||
val maxGold = initInfo.redEnvelopeConfig.serverRedEnvelopeMaxAmount
|
||||
val rate =
|
||||
if (initInfo.redEnvelopeConfig.exchangeDiamondsRate == 0.0) 0.68 else initInfo.redEnvelopeConfig.exchangeDiamondsRate
|
||||
|
||||
val redNum = mBinding?.etNum?.text.toString().toIntOrDef()
|
||||
if (redNum < minNum || redNum > maxNum) {
|
||||
SingleToastUtil.showToast("紅包數量不能小於${minNum}或大於${maxNum}!")
|
||||
return
|
||||
}
|
||||
val goldNum = mBinding?.etMoney?.text.toString().toIntOrDef()
|
||||
if (goldNum % 100 != 0) {
|
||||
SingleToastUtil.showToast("鉆石數必須為100的倍數!")
|
||||
return
|
||||
}
|
||||
if (goldNum < minGold || goldNum > maxGold) {
|
||||
SingleToastUtil.showToast("鉆石數量不能小於${minGold}或大於${maxGold}!")
|
||||
return
|
||||
}
|
||||
if (goldNum.toFloat() / redNum * rate < 0.1) {//單個手氣紅包價值不低於0.1水晶
|
||||
SingleToastUtil.showToast("單個紅包金額過低")
|
||||
return
|
||||
}
|
||||
UserModel.get().cacheLoginUserInfo?.let {
|
||||
if (!it.isBindPaymentPwd) {
|
||||
ModifyPwdActivity.start(context, ModifyPwdActivity.PAY_PWD)
|
||||
return
|
||||
}
|
||||
}
|
||||
GiveGoldPassWordFragment.newInstance(
|
||||
childFragmentManager,
|
||||
mBinding?.etMoney?.text.toString()
|
||||
).apply {
|
||||
setListener(object : GridPasswordNoFocusView.OnPasswordChangedListener {
|
||||
override fun onTextChanged(psw: String?) {
|
||||
val password = passWordFragment?.password?.password ?: ""
|
||||
if (password.length == 6) {
|
||||
send(password)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInputFinish(psw: String?) {
|
||||
}
|
||||
})
|
||||
passWordFragment = this
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 密码输入完成
|
||||
*/
|
||||
private fun send(password: String) {
|
||||
dialogManager.showProgressDialog(context)
|
||||
var message = mBinding.etText.text.trim().toString()
|
||||
if (message.isEmpty()) {
|
||||
message = R.string.red_package_msg_def.toStringRes()
|
||||
}
|
||||
RedPackageModel.sendRedPackage(
|
||||
goldNum = mBinding.etMoney.text.trim().toString().toLongOrDefault(0),
|
||||
message = message,
|
||||
num = mBinding.etNum.text.trim().toString().toLongOrDefault(0),
|
||||
roomUId = AvRoomDataManager.get().mCurrentRoomInfo?.uid.toString(),
|
||||
type = 2,
|
||||
kind = 0,
|
||||
validityType = 0,
|
||||
password = DESUtils.DESAndBase64(password)
|
||||
)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnError {
|
||||
dialogManager.dismissDialog()
|
||||
SingleToastUtil.showToast(it.message)
|
||||
passWordFragment?.password?.clearPassword()
|
||||
}
|
||||
.subscribe { _ ->
|
||||
PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe()
|
||||
dialogManager.dismissDialog()
|
||||
SingleToastUtil.showToast("發送成功")
|
||||
passWordFragment?.dismissAllowingStateLoss()
|
||||
(parentFragment as? RedPackageSendDialog)?.dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
passWordFragment?.dismissAllowingStateLoss()
|
||||
passWordFragment = null
|
||||
}
|
||||
}
|
@@ -1,172 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.send
|
||||
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.example.lib_utils.ktx.toStringRes
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.redpackage.RedPackageEvent
|
||||
import com.chwl.app.base.BaseDialog
|
||||
import com.chwl.app.common.ViewPagerAdapter
|
||||
import com.chwl.app.databinding.RedPackageSendDialogBinding
|
||||
import com.chwl.app.ui.pay.ChargeActivity
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity
|
||||
import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.chwl.core.Constants
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.initial.InitialModel
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.pay.event.UpdateWalletInfoEvent
|
||||
import com.chwl.core.redpackage.*
|
||||
import com.chwl.library.annatation.ActLayoutRes
|
||||
import com.chwl.library.common.util.DeviceUtil
|
||||
import com.chwl.library.utils.AppMetaDataUtil
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/23 12:14
|
||||
* Desc:发红包
|
||||
**/
|
||||
@ActLayoutRes(R.layout.red_package_send_dialog)
|
||||
class RedPackageSendDialog : BaseDialog<RedPackageSendDialogBinding>() {
|
||||
|
||||
private val permissionType: Int
|
||||
get() = arguments?.getInt(com.chwl.core.support.config.Constants.KEY_INTENT)
|
||||
?: 0
|
||||
|
||||
/**
|
||||
* 是否有厅内红包权限
|
||||
*/
|
||||
private val haveRoomRedPackagePermission get() = (permissionType and 1) != 0
|
||||
|
||||
/**
|
||||
* 是否有全服红包权限
|
||||
*/
|
||||
private val haveAllServicePackagePermission get() = (permissionType and 2) != 0
|
||||
|
||||
companion object {
|
||||
/**
|
||||
* 红包权限类型
|
||||
*/
|
||||
fun newInstance(permissionType: Int): RedPackageSendDialog {
|
||||
return RedPackageSendDialog().apply {
|
||||
this.arguments = Bundle().apply {
|
||||
putInt(
|
||||
com.chwl.core.support.config.Constants.KEY_INTENT,
|
||||
permissionType
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
gravity = Gravity.BOTTOM
|
||||
width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
super.onStart()
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun init() {
|
||||
EventBus.getDefault().register(this)
|
||||
if (!haveRoomRedPackagePermission && !haveAllServicePackagePermission) {
|
||||
SingleToastUtil.showToast(R.string.avroom_presenter_avroompresenter_04)
|
||||
dismissAllowingStateLoss()
|
||||
return
|
||||
}
|
||||
if (InitialModel.get().cacheInitInfo == null) {
|
||||
InitialModel.get().init(true)
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_redpackage_redpackagesenddialog_01))
|
||||
dismissAllowingStateLoss()
|
||||
return
|
||||
}
|
||||
initView()
|
||||
initEvent()
|
||||
PayModel.get().currentWalletInfo?.let {
|
||||
binding.tvBalance.text = it.diamondNum.toLong().toString()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
val tabTitles = ArrayList<String>()
|
||||
val fragments = ArrayList<Fragment>()
|
||||
if (haveRoomRedPackagePermission) {
|
||||
tabTitles.add(R.string.red_package_room.toStringRes())
|
||||
fragments.add(PrivateRedPackageEditorFragment())
|
||||
}
|
||||
if (haveAllServicePackagePermission) {
|
||||
tabTitles.add(R.string.red_package_public.toStringRes())
|
||||
fragments.add(PublicRedPackageEditorFragment())
|
||||
}
|
||||
val topMagicIndicatorAdapter = TabIndicatorAdapter(context, tabTitles)
|
||||
topMagicIndicatorAdapter.setOnItemSelectListener {
|
||||
binding.viewPager.currentItem = it
|
||||
}
|
||||
val commonNavigator = CommonNavigator(context)
|
||||
commonNavigator.isAdjustMode = true
|
||||
commonNavigator.adapter = topMagicIndicatorAdapter
|
||||
binding.tabLayout.navigator = commonNavigator
|
||||
binding.viewPager.adapter = ViewPagerAdapter(
|
||||
childFragmentManager,
|
||||
fragments.toList(),
|
||||
null
|
||||
)
|
||||
ViewPagerHelper.bind(binding.tabLayout, binding.viewPager)
|
||||
}
|
||||
|
||||
private fun initEvent() {
|
||||
binding.vTopBlank.singleClick {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
binding.ivHelp.singleClick {
|
||||
DialogWebViewActivity.start(
|
||||
context,
|
||||
UriProvider.getRedPacketRule()
|
||||
)
|
||||
}
|
||||
|
||||
binding.tvBalance.singleClick {
|
||||
// if (AppMetaDataUtil.getChannelID() == Constants.GOOGLE) {
|
||||
ChargeActivity.start(context)
|
||||
// } else {
|
||||
// CommonWebViewActivity.start(
|
||||
// context, UriProvider.getOfficialPay(
|
||||
// 4,
|
||||
// DeviceUtil.getDeviceId(context)
|
||||
// )
|
||||
// )
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onWalletInfoUpdate(event: UpdateWalletInfoEvent?) {
|
||||
if (!isViewLoaded) {
|
||||
return
|
||||
}
|
||||
binding.tvBalance.text = PayModel.get().currentWalletInfo?.diamondNum?.toString()
|
||||
?: "0"
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun handleRedPackageDialog(event: RedPackageEvent?) {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
@@ -1,76 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.send
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.example.lib_utils.ktx.getColorById
|
||||
import com.chwl.app.R
|
||||
import io.realm.internal.Keep
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/10/23 18:02
|
||||
* Desc:
|
||||
**/
|
||||
class RedPackageTypeItemAdapter(list: List<ItemData>) :
|
||||
BaseQuickAdapter<RedPackageTypeItemAdapter.ItemData, BaseViewHolder>(
|
||||
R.layout.red_package_private_item_type,
|
||||
list
|
||||
) {
|
||||
|
||||
private var selectPosition = -1
|
||||
|
||||
@Keep
|
||||
data class ItemData(
|
||||
/**
|
||||
* 红包种类 0 旧版本 1 无门槛红包 2 关注红包 3 分享红包 4 弹幕红包
|
||||
*/
|
||||
val type: Int, val name: Int, val tips: Int
|
||||
)
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: ItemData) {
|
||||
helper.setText(R.id.tv_name, item.name)
|
||||
helper.setText(R.id.tv_tips, item.tips)
|
||||
convertState(helper, item)
|
||||
}
|
||||
|
||||
override fun convertPayloads(
|
||||
helper: BaseViewHolder,
|
||||
item: ItemData,
|
||||
payloads: MutableList<Any>
|
||||
) {
|
||||
super.convertPayloads(helper, item, payloads)
|
||||
convertState(helper, item)
|
||||
}
|
||||
|
||||
private fun convertState(helper: BaseViewHolder, item: ItemData) {
|
||||
if (helper.bindingAdapterPosition == selectPosition) {
|
||||
helper.setBackgroundRes(R.id.layout_root, R.drawable.red_package_bg_type_selected)
|
||||
helper.setTextColor(
|
||||
R.id.tv_name,
|
||||
helper.itemView.context.getColorById(R.color.color_FF285C)
|
||||
)
|
||||
helper.setTextColor(
|
||||
R.id.tv_tips,
|
||||
helper.itemView.context.getColorById(R.color.color_FF285C)
|
||||
)
|
||||
} else {
|
||||
helper.setBackgroundRes(R.id.layout_root, R.drawable.shape_f8f8fa_8)
|
||||
helper.setTextColor(
|
||||
R.id.tv_name,
|
||||
helper.itemView.context.getColorById(R.color.color_767585)
|
||||
)
|
||||
helper.setTextColor(
|
||||
R.id.tv_tips,
|
||||
helper.itemView.context.getColorById(R.color.color_94959C)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun select(position: Int) {
|
||||
this.selectPosition = position
|
||||
notifyItemRangeChanged(0, itemCount, true)
|
||||
}
|
||||
|
||||
fun getSelect(): ItemData? {
|
||||
return data.getOrNull(selectPosition)
|
||||
}
|
||||
}
|
@@ -1,115 +0,0 @@
|
||||
package com.chwl.app.avroom.redpackage.send;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/1
|
||||
*/
|
||||
public class TabIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
private List<String> mTitleList;
|
||||
private Context mContext;
|
||||
|
||||
public TabIndicatorAdapter(Context mContext, List<String> mTitleList ) {
|
||||
this.mTitleList = mTitleList;
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTitleList == null ? 0 : mTitleList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerTitleView getTitleView(Context context, int index) {
|
||||
ContactsPagerTitleView categoryPagerTitleView = new ContactsPagerTitleView(context, mTitleList.get(index));
|
||||
categoryPagerTitleView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (null != mOnItemSelectListener) {
|
||||
mOnItemSelectListener.onItemSelect(index);
|
||||
}
|
||||
}
|
||||
});
|
||||
return categoryPagerTitleView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
LinePagerIndicator indicator = new LinePagerIndicator(context);
|
||||
indicator.setMode(LinePagerIndicator.MODE_EXACTLY);
|
||||
indicator.setLineHeight(UIUtil.dip2px(mContext, 4));
|
||||
indicator.setRoundRadius(UIUtil.dip2px(mContext, 4));
|
||||
indicator.setLineWidth(UIUtil.dip2px(mContext, 12));
|
||||
indicator.setColors(context.getResources().getColor(R.color.color_FF285C));
|
||||
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
lp.topMargin = UIUtil.dip2px(mContext, 2);
|
||||
indicator.setLayoutParams(lp);
|
||||
return indicator;
|
||||
}
|
||||
|
||||
private OnItemSelectListener mOnItemSelectListener;
|
||||
|
||||
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
|
||||
mOnItemSelectListener = onItemSelectListener;
|
||||
}
|
||||
|
||||
public interface OnItemSelectListener {
|
||||
void onItemSelect(int position);
|
||||
}
|
||||
|
||||
class ContactsPagerTitleView extends AppCompatTextView implements IPagerTitleView {
|
||||
|
||||
|
||||
public ContactsPagerTitleView(Context context, String tabInfo) {
|
||||
super(context);
|
||||
setHeight(Utils.dip2px(getContext(), 25));
|
||||
setTextSize(18);
|
||||
setText(tabInfo);
|
||||
setGravity(Gravity.CENTER);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSelected(int index, int totalCount) {
|
||||
// setBackgroundResource(R.drawable.shape_bg_contact_indicator_item);
|
||||
setTextColor(getResources().getColor(R.color.color_FF285C));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeselected(int index, int totalCount) {
|
||||
// setBackgroundDrawable(null);
|
||||
setTextColor(getResources().getColor(R.color.color_767585));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -13,14 +13,14 @@ import com.chad.library.adapter.base.diff.BaseQuickDiffCallback
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.bean.RoomAlbumPhotoInfo
|
||||
import com.chwl.app.base.BaseViewBindingFragment
|
||||
import com.chwl.app.community.photo.BigPhotoActivity
|
||||
import com.chwl.app.community.photo.PagerOption
|
||||
import com.chwl.app.community.utils.ObjectTypeHelper
|
||||
import com.chwl.app.databinding.FragmentRoomAlbumBinding
|
||||
import com.chwl.app.photo.BigPhotoActivity
|
||||
import com.chwl.app.photo.PagerOption
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2
|
||||
import com.chwl.app.ui.widget.ButtonItem
|
||||
import com.chwl.app.ui.widget.recyclerview.decoration.GridSpacingItemNewDecoration
|
||||
import com.chwl.app.utils.ObjectTypeHelper
|
||||
import com.chwl.core.Constants
|
||||
|
||||
class RoomAlbumFragment : BaseViewBindingFragment<FragmentRoomAlbumBinding>() {
|
||||
|
@@ -251,7 +251,7 @@ class UploadRoomAlbumDialogFragment : BottomSheetDialogFragment() {
|
||||
}
|
||||
if (requestCode == 200) {
|
||||
PhotoProvider.getResultPathListAsync(data) {
|
||||
it?.let { paths ->
|
||||
it?.mapNotNull { it.path }?.let { paths ->
|
||||
compressPhotos(paths.toMutableList())
|
||||
}
|
||||
}
|
||||
|
@@ -68,7 +68,7 @@ class SingleRoomPKBoardView @JvmOverloads constructor(
|
||||
.subscribe()
|
||||
}
|
||||
} else {
|
||||
"主播已關閉對方房間的聲音".toast()
|
||||
ResUtil.getString(R.string.close_other_room_sound).toast()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.core.room.anotherroompk.SimpleRoomInfo
|
||||
import com.chwl.core.utils.extension.subAndReplaceDot
|
||||
import com.chwl.library.utils.ResUtil
|
||||
|
||||
class SingleRoomPKSearchAdapter :
|
||||
BaseQuickAdapter<SimpleRoomInfo, BaseViewHolder>(R.layout.item_single_room_pk_search) {
|
||||
@@ -21,13 +22,13 @@ class SingleRoomPKSearchAdapter :
|
||||
val tvSelect = helper.getView<TextView>(R.id.tv_select)
|
||||
tvSelect.isEnabled = !item.crossPking && item.valid
|
||||
if (!item.valid) {
|
||||
tvSelect.text = "離線"
|
||||
tvSelect.text = ResUtil.getString(R.string.offline)
|
||||
tvSelect.setTextColor("#80C6C6E9".toColorInt())
|
||||
} else if (item.crossPking) {
|
||||
tvSelect.text = "PK中"
|
||||
tvSelect.text = tvSelect.context.getString(R.string.layout_item_home_tab_map_02)
|
||||
tvSelect.setTextColor("#80C6C6E9".toColorInt())
|
||||
} else {
|
||||
tvSelect.text = "選擇"
|
||||
tvSelect.text = ResUtil.getString(R.string.select)
|
||||
tvSelect.setTextColor(Color.WHITE)
|
||||
}
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ package com.chwl.app.avroom.singleroompk
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.core.view.isVisible
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseDialog
|
||||
import com.chwl.app.databinding.DialogSingleRoomPkReceivedBinding
|
||||
import com.chwl.core.im.custom.bean.RoomPkBean
|
||||
@@ -37,7 +38,7 @@ class SingleRoomPkReceivedDialog : BaseDialog<DialogSingleRoomPkReceivedBinding>
|
||||
@SuppressLint("CheckResult")
|
||||
override fun init() {
|
||||
binding?.tvNick?.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
|
||||
binding?.tvTime?.text = "${pkBean.pkDuration}分鐘"
|
||||
binding?.tvTime?.text = "${pkBean.pkDuration}${getString(R.string.layout_activity_room_pk_create_010)}"
|
||||
pkBean.pkDesc.ifNotNullOrEmpty {
|
||||
binding?.tvDescTitle?.isVisible = true
|
||||
binding?.tvDesc?.isVisible = true
|
||||
|
@@ -83,7 +83,4 @@ public interface IAvRoomView extends IMvpBaseView {
|
||||
void recoverRoomMinWhenPmLimit(Throwable throwable);
|
||||
|
||||
void showNewUserDialog(GiftInfo giftInfo);
|
||||
|
||||
void showFirstChargeDialog(FirstChargeInfo firstChargeInfo);
|
||||
|
||||
}
|
||||
|
@@ -2,7 +2,7 @@ package com.chwl.app.avroom.view;
|
||||
|
||||
|
||||
|
||||
import com.chwl.core.room.bean.OnlineChatMember;
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.chwl.library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
@@ -14,7 +14,7 @@ import java.util.List;
|
||||
* @date 2017/12/8
|
||||
*/
|
||||
public interface IHomePartyUserListView extends IMvpBaseView {
|
||||
void onRequestChatMemberByPageSuccess(List<OnlineChatMember> memberList, int page);
|
||||
void onRequestRoomOnlineListSuccess(List<RoomOnlineUserBean> memberList);
|
||||
|
||||
void onRequestChatMemberByPageFail(String errorStr, int page);
|
||||
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package com.chwl.app.avroom.view;
|
||||
|
||||
import com.chwl.core.home.bean.BannerInfo;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 轰趴房View层 </p>
|
||||
@@ -21,5 +19,4 @@ public interface IHomePartyView extends IBaseRoomView {
|
||||
*/
|
||||
void onGiftValueChangeMic(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo);
|
||||
|
||||
void onShowBanner(List<BannerInfo> bannerInfos);
|
||||
}
|
||||
|
@@ -1,9 +1,6 @@
|
||||
package com.chwl.app.avroom.view;
|
||||
|
||||
|
||||
import com.chwl.core.home.bean.BannerInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 轰趴房View层 </p>
|
||||
@@ -12,6 +9,5 @@ import java.util.List;
|
||||
* @date 2017/12/8
|
||||
*/
|
||||
public interface ISingleRoomView extends IBaseRoomView {
|
||||
void onShowBanner(List<BannerInfo> dialogInfos);
|
||||
|
||||
}
|
||||
|
@@ -131,15 +131,6 @@ public class BottomView extends FrameLayout implements View.OnClickListener {
|
||||
sendGift.setVisibility(GONE);
|
||||
sendMsgInput.setVisibility(GONE);
|
||||
}
|
||||
|
||||
UserModel.get().getCurrentUserInfo()
|
||||
.compose(RxHelper.bindContext(getContext()))
|
||||
.subscribe(userInfo -> {
|
||||
if (userInfo.isFirstCharge()) {
|
||||
sendGift.setImageResource(R.drawable.icon_room_send_gift_first_charge);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -23,6 +23,7 @@ import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.example.lib_utils.UiUtils;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.opensource.svgaplayer.SVGACallback;
|
||||
@@ -651,6 +652,11 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect
|
||||
Keyframe keyTransX3 = (Keyframe.ofFloat(0.5f, center.x - senderPoint.x - giftWidth / 2));
|
||||
Keyframe keyTransX4 = (Keyframe.ofFloat(0.8f, center.x - senderPoint.x - giftWidth / 2));
|
||||
Keyframe keyTransX5 = (Keyframe.ofFloat(1f, receivePoint.x - senderPoint.x));
|
||||
if (UiUtils.INSTANCE.isRtl(getContext())) {
|
||||
keyTransX3 = (Keyframe.ofFloat(0.5f, senderPoint.x - center.x + giftWidth / 2));
|
||||
keyTransX4 = (Keyframe.ofFloat(0.8f, senderPoint.x - center.x + giftWidth / 2));
|
||||
keyTransX5 = (Keyframe.ofFloat(1f, senderPoint.x - receivePoint.x));
|
||||
}
|
||||
|
||||
Keyframe keyTransY3 = (Keyframe.ofFloat(0.5f, center.y - senderPoint.y - giftHeight / 2));
|
||||
Keyframe keyTransY4 = (Keyframe.ofFloat(0.8f, center.y - senderPoint.y - giftHeight / 2));
|
||||
@@ -875,7 +881,7 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect
|
||||
SVGAImageView imageView = cleanView(super.borrowObject());
|
||||
LayoutParams params = new LayoutParams(parent.giftWidth, parent.giftHeight);
|
||||
imageView.setLayoutParams(params);
|
||||
params.leftMargin = senderPoint.x;
|
||||
params.setMarginStart(senderPoint.x);
|
||||
params.topMargin = senderPoint.y;
|
||||
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
|
||||
if (parent.indexOfChild(imageView) == -1)
|
||||
@@ -896,7 +902,7 @@ public class GiftV2View extends FrameLayout implements GiftEffectView.GiftEffect
|
||||
SVGAImageView imageView = cleanView(super.borrowObject());
|
||||
LayoutParams params = new LayoutParams(parent.giftWidth, parent.giftHeight);
|
||||
imageView.setLayoutParams(params);
|
||||
params.leftMargin = senderPoint.x;
|
||||
params.setMarginStart(senderPoint.x);
|
||||
params.topMargin = senderPoint.y;
|
||||
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
|
||||
imageView.setScaleX(1.5F);
|
||||
|
@@ -4,6 +4,7 @@ import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_FAIRY;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_GIFT_COMPOUND;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_RED_PACKAGE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ROOM_ALBUM;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ROOM_TEMPLATE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ME;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_CONVERT_L1;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_CONVERT_L2;
|
||||
@@ -18,6 +19,7 @@ import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_DRAW_
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_DRAW_GIFT_L5;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_FANS_TEAM_JOIN;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_GIFT_COMPOUND;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUPER_LUCKY_GIFT_TEMPLATE;
|
||||
import static com.chwl.core.redpackage.RedPackageTypeKt.ALL_DIAMOND;
|
||||
import static com.chwl.core.redpackage.RedPackageTypeKt.ALL_GIFT;
|
||||
import static com.chwl.core.redpackage.RedPackageTypeKt.ROOM_DIAMOND;
|
||||
@@ -56,8 +58,13 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator;
|
||||
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.chwl.app.photo.BigPhotoActivity;
|
||||
import com.chwl.app.photo.PagerOption;
|
||||
import com.chwl.app.utils.ObjectTypeHelper;
|
||||
import com.chwl.core.im.custom.bean.TemplateMessageAttachment;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterDataBean;
|
||||
import com.chwl.core.utils.extension.StringExtensionKt;
|
||||
import com.example.lib_utils.UiUtils;
|
||||
import com.netease.nim.uikit.business.uinfo.UserInfoHelper;
|
||||
import com.netease.nim.uikit.common.ui.span.RadiusBackgroundSpan;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
@@ -79,9 +86,6 @@ import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.app.common.widget.CustomAutoWidthImageSpan;
|
||||
import com.chwl.app.common.widget.CustomImageSpan;
|
||||
import com.chwl.app.common.widget.OriginalDrawStatusClickSpan;
|
||||
import com.chwl.app.community.photo.BigPhotoActivity;
|
||||
import com.chwl.app.community.photo.PagerOption;
|
||||
import com.chwl.app.community.utils.ObjectTypeHelper;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
|
||||
import com.chwl.app.ui.widget.DividerItemDecoration;
|
||||
@@ -252,6 +256,7 @@ public class MessageView extends FrameLayout {
|
||||
private OnClick onClick;
|
||||
|
||||
private OnMsgLongClickListener onLongClickListener;
|
||||
private TemplateMessageAdapter templateMessageAdapter;
|
||||
|
||||
public MessageView(Context context) {
|
||||
this(context, null);
|
||||
@@ -265,7 +270,6 @@ public class MessageView extends FrameLayout {
|
||||
super(context, attr, i);
|
||||
init(context);
|
||||
}
|
||||
|
||||
public void setOnLongClickListener(OnMsgLongClickListener onLongClickListener) {
|
||||
this.onLongClickListener = onLongClickListener;
|
||||
}
|
||||
@@ -435,6 +439,17 @@ public class MessageView extends FrameLayout {
|
||||
|
||||
}
|
||||
|
||||
private TemplateMessageAdapter getTemplateMessageAdapter() {
|
||||
if (templateMessageAdapter == null) {
|
||||
templateMessageAdapter = new TemplateMessageAdapter(uid -> {
|
||||
if (clickConsumer != null) {
|
||||
Single.just(String.valueOf(uid)).subscribe(clickConsumer);
|
||||
}
|
||||
});
|
||||
}
|
||||
return templateMessageAdapter;
|
||||
}
|
||||
|
||||
public void onCurrentRoomReceiveNewMsg(List<ChatRoomMessage> messages) {
|
||||
if (messages == null) return;
|
||||
if (messages.size() == 1) {
|
||||
@@ -585,6 +600,7 @@ public class MessageView extends FrameLayout {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class SpannableBuilder {
|
||||
private SpannableStringBuilder builder;
|
||||
private TextView textView;
|
||||
@@ -616,6 +632,19 @@ public class MessageView extends FrameLayout {
|
||||
builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* @param drawable -icon url
|
||||
* @return -返回一個spannableStringBuilder
|
||||
*/
|
||||
public SpannableBuilder appendImg(String drawable, Object what) {
|
||||
if (TextUtils.isEmpty(drawable)) return this;
|
||||
int start = builder.length();
|
||||
builder.append("-");
|
||||
CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable);
|
||||
builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param drawable -icon url
|
||||
@@ -632,6 +661,16 @@ public class MessageView extends FrameLayout {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SpannableBuilder append(String drawable, int width, int height, Object what) {
|
||||
if (TextUtils.isEmpty(drawable)) return this;
|
||||
int start = builder.length();
|
||||
builder.append("-");
|
||||
CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, drawable, width, height);
|
||||
builder.setSpan(imageSpan, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 文本和背景分離的情況
|
||||
*/
|
||||
@@ -673,6 +712,16 @@ public class MessageView extends FrameLayout {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SpannableBuilder append(String imgUrl, int height, Object what) {
|
||||
if (TextUtils.isEmpty(imgUrl)) return this;
|
||||
int start = builder.length();
|
||||
builder.append("-");
|
||||
builder.setSpan(new CustomAutoWidthImageSpan(new ColorDrawable(Color.TRANSPARENT), textView, imgUrl, height)
|
||||
, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
builder.setSpan(what, start, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param drawable -icon
|
||||
* @param width 寬
|
||||
@@ -793,6 +842,10 @@ public class MessageView extends FrameLayout {
|
||||
tvContent.setOnClickListener(this);
|
||||
tvContent.setOnLongClickListener(null);
|
||||
tvContent.setTag(chatRoomMessage);
|
||||
tvContent.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
|
||||
if (UiUtils.INSTANCE.isRtl(tvContent.getContext())) {
|
||||
tvContent.setTextDirection(View.TEXT_DIRECTION_RTL);
|
||||
}
|
||||
clearBackground(tvContent);
|
||||
try {
|
||||
if (chatRoomMessage.getMsgType() == MsgTypeEnum.tip) {
|
||||
@@ -1031,6 +1084,20 @@ public class MessageView extends FrameLayout {
|
||||
setFairyMsg(chatRoomMessage, tvContent);
|
||||
} else if (first == CUSTOM_MSG_ROOM_ALBUM) {
|
||||
setRoomAlbumMsg(chatRoomMessage, baseViewHolder);
|
||||
} else if (first == CUSTOM_MSG_ROOM_TEMPLATE) {
|
||||
TemplateMessageAttachment templateMessageAttachment = (TemplateMessageAttachment) chatRoomMessage.getAttachment();
|
||||
if (templateMessageAttachment != null) {
|
||||
getTemplateMessageAdapter().convert(tvContent, templateMessageAttachment.getTemplateMessage());
|
||||
} else {
|
||||
getTemplateMessageAdapter().convert(tvContent, null);
|
||||
}
|
||||
} else if (first == CUSTOM_MSG_SUPER_LUCKY_GIFT_TEMPLATE) {
|
||||
TemplateMessageAttachment templateMessageAttachment = (TemplateMessageAttachment) chatRoomMessage.getAttachment();
|
||||
if (templateMessageAttachment != null) {
|
||||
getTemplateMessageAdapter().convert(tvContent, templateMessageAttachment.getTemplateMessage());
|
||||
} else {
|
||||
getTemplateMessageAdapter().convert(tvContent, null);
|
||||
}
|
||||
} else {
|
||||
tvContent.setTextColor(Color.WHITE);
|
||||
tvContent.setText(tvContent.getResources().getText(R.string.not_support_message_tip));
|
||||
@@ -1069,7 +1136,7 @@ public class MessageView extends FrameLayout {
|
||||
ImageLoadUtilsV2.loadImage2(ivUserLevel, mRoomAlbumMsgInfo.getUserLevel().getExperUrl(), Target.SIZE_ORIGINAL);
|
||||
ImageLoadUtilsV2.loadImage2(ivUserCharm, mRoomAlbumMsgInfo.getUserLevel().getCharmUrl(), Target.SIZE_ORIGINAL);
|
||||
tvNick.setText(user.getNick());
|
||||
tvUnlock.setText("解鎖");
|
||||
tvUnlock.setText(R.string.unlock_mic);
|
||||
tvUnlock.setBackgroundResource(R.drawable.bg_9168fa_6);
|
||||
|
||||
if (roomPhoto.getType() == 1) {
|
||||
@@ -1092,7 +1159,7 @@ public class MessageView extends FrameLayout {
|
||||
|
||||
if (isMyself || hadUnlock(roomPhoto.getId())) {
|
||||
ImageLoadUtilsV2.loadImage(ivPhoto, roomPhoto.getPhotoUrl());
|
||||
tvUnlock.setText("已解鎖");
|
||||
tvUnlock.setText(R.string.unlocked);
|
||||
tvUnlock.setBackgroundResource(R.drawable.bg_9e9ea8_6);
|
||||
} else {
|
||||
ImageLoadUtils.loadImageWithBlur(mContext, roomPhoto.getPhotoUrl(), ivPhoto, 25, 4);
|
||||
@@ -1532,13 +1599,13 @@ public class MessageView extends FrameLayout {
|
||||
case ALL_DIAMOND:
|
||||
case ROOM_DIAMOND:
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_031), new ForegroundColorSpan(textColor))
|
||||
.append((int) roomMsg.getAmount() + ResUtil.getString(R.string.avroom_widget_messageview_032), new ForegroundColorSpan(roomTipColor));
|
||||
.append((int) roomMsg.getAmount() + ResUtil.getString(R.string.avroom_widget_messageview_027), new ForegroundColorSpan(roomTipColor));
|
||||
tvContent.setText(text.build());
|
||||
break;
|
||||
case ALL_GIFT:
|
||||
case ROOM_GIFT:
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_033), new ForegroundColorSpan(textColor))
|
||||
.append((int) roomMsg.getAmount() + ResUtil.getString(R.string.avroom_widget_messageview_034), new ForegroundColorSpan(roomTipColor))
|
||||
.append((int) roomMsg.getAmount() + ResUtil.getString(R.string.avroom_widget_messageview_027), new ForegroundColorSpan(roomTipColor))
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_035), new ForegroundColorSpan(textColor));
|
||||
tvContent.setText(text.build());
|
||||
}
|
||||
@@ -1934,15 +2001,15 @@ public class MessageView extends FrameLayout {
|
||||
RoomBoxPrizeAttachment attachment = (RoomBoxPrizeAttachment) chatRoomMessage.getAttachment();
|
||||
// 內容
|
||||
SpannableBuilder text = new SpannableBuilder(tvContent)
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_093), new ForegroundColorSpan(greyColor))
|
||||
.append("厲害了 ", new ForegroundColorSpan(greyColor))
|
||||
.append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor))
|
||||
.append(ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(R.string.avroom_widget_messageview_095), new ForegroundColorSpan(greyColor))
|
||||
.append("通過歡樂砸蛋" + "獲得 ", new ForegroundColorSpan(greyColor))
|
||||
.append(attachment.getPrizeName(), new ForegroundColorSpan(Color.WHITE));
|
||||
if (attachment.getPrizeNum() > 1) {
|
||||
text.append(" x" + attachment.getPrizeNum() + " ", new ForegroundColorSpan(roomTipColor));
|
||||
}
|
||||
if (attachment.getSecond() == CUSTOM_MSG_SUB_BOX_ME) {
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_096), new ForegroundColorSpan(Color.WHITE));
|
||||
text.append("(僅自己可見)", new ForegroundColorSpan(Color.WHITE));
|
||||
}
|
||||
tvContent.setText(text.build());
|
||||
}
|
||||
@@ -2281,7 +2348,7 @@ public class MessageView extends FrameLayout {
|
||||
builder.append(ResUtil.getString(R.string.avroom_widget_messageview_0120), new ForegroundColorSpan(roomTipNickColor));
|
||||
} else {
|
||||
builder.append(senderNick, new ForegroundColorSpan(roomTipNickColor))
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0121) + auctionAttachment.getAuctionInfo().getRivals().get(0).getAuctMoney() + ResUtil.getString(R.string.avroom_widget_messageview_0122));
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0121) + auctionAttachment.getAuctionInfo().getRivals().get(0).getAuctMoney() + ResUtil.getString(R.string.avroom_widget_messageview_027));
|
||||
}
|
||||
tvContent.setText(builder.build());
|
||||
}
|
||||
@@ -2381,7 +2448,7 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
})
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0126), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append(ResUtil.getString(R.string.gift_message_01), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append(giftInfo == null ? "" : giftInfo.getGiftUrl(), giftLength, giftLength)
|
||||
.append("X" + giftAttachment.getMultiGiftReceiveInfo().getGiftNum(), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
tvContent.setText(text.build());
|
||||
@@ -2417,9 +2484,9 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
})
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0127), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
.append(ResUtil.getString(R.string.gift_message_01), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
|
||||
text.append(luckyGiftInfo.getGiftName() + ResUtil.getString(R.string.avroom_widget_messageview_0128), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
text.append(luckyGiftInfo.getGiftName() + ResUtil.getString(R.string.gift_message_02), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append(luckyGiftInfo.getUser().getNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
@@ -2428,10 +2495,10 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
});
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_0129));
|
||||
text.append(ResUtil.getString(R.string.gift_message_04));
|
||||
for (GiftList luckyGiftList : luckyGiftInfo.getGiftList()) {
|
||||
if (luckyGiftList.getGiftInfo() == null) continue;
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_0130) + luckyGiftList.getGiftInfo().getGoldPrice() + ResUtil.getString(R.string.avroom_widget_messageview_0131))
|
||||
text.append(ResUtil.getString(R.string.gift_message_03) + luckyGiftList.getGiftInfo().getGoldPrice() + ResUtil.getString(R.string.gift_message_05))
|
||||
.append(luckyGiftList.getGiftInfo().getGiftUrl(), giftLength, giftLength)
|
||||
.append("X" + luckyGiftList.getGiftNum(), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append("、");
|
||||
@@ -2472,9 +2539,9 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
})
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0132), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
.append(ResUtil.getString(R.string.gift_message_01), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
|
||||
text.append(luckyGiftInfo.getGiftName() + ResUtil.getString(R.string.avroom_widget_messageview_0133), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
text.append(luckyGiftInfo.getGiftName() + ResUtil.getString(R.string.gift_message_02), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append(luckyGiftInfo.getUser().getNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
@@ -2483,10 +2550,10 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
});
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_0134));
|
||||
text.append(ResUtil.getString(R.string.gift_message_04));
|
||||
for (GiftList luckyGiftList : luckyGiftInfo.getGiftList()) {
|
||||
if (luckyGiftList.getGiftInfo() == null) continue;
|
||||
text.append(ResUtil.getString(R.string.avroom_widget_messageview_0135) + luckyGiftList.getGiftInfo().getGoldPrice() + ResUtil.getString(R.string.avroom_widget_messageview_0136))
|
||||
text.append(ResUtil.getString(R.string.gift_message_03) + luckyGiftList.getGiftInfo().getGoldPrice() + ResUtil.getString(R.string.gift_message_05))
|
||||
.append(luckyGiftList.getGiftInfo().getGiftUrl(), giftLength, giftLength)
|
||||
.append("X" + luckyGiftList.getGiftNum(), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append("、");
|
||||
@@ -2495,7 +2562,6 @@ public class MessageView extends FrameLayout {
|
||||
|
||||
Editable msg = text.builder;
|
||||
msg.delete(msg.length() - 1, msg.length());
|
||||
|
||||
tvContent.setText(text.build());
|
||||
tvContent.setOnClickListener(null);
|
||||
tvContent.setMovementMethod(new LinkMovementMethod());
|
||||
@@ -2522,7 +2588,7 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
})
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0137), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
.append(ResUtil.getString(R.string.gift_message_06), new ForegroundColorSpan(getResources().getColor(R.color.white)));
|
||||
|
||||
for (GiftReceiver targetUser : attachment.getGiftMultiReceiverInfo().getTargetUsers()) {
|
||||
text.append(targetUser.getNick(), new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() {
|
||||
@@ -2698,7 +2764,7 @@ public class MessageView extends FrameLayout {
|
||||
}
|
||||
}
|
||||
})
|
||||
.append(ResUtil.getString(R.string.avroom_widget_messageview_0149), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append(ResUtil.getString(R.string.gift_message_06), new ForegroundColorSpan(getResources().getColor(R.color.white)))
|
||||
.append(targetNick, new ForegroundColorSpan(roomTipNickColor), new OriginalDrawStatusClickSpan() {
|
||||
|
||||
@Override
|
||||
@@ -2895,7 +2961,7 @@ public class MessageView extends FrameLayout {
|
||||
.append("【簽到瓜分百萬】哇塞,恭喜 ", new ForegroundColorSpan(greyColor))
|
||||
.append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor))
|
||||
.append("簽到獲得 ", new ForegroundColorSpan(greyColor))
|
||||
.append(attachment.getGoldNum() + "鉆石", new ForegroundColorSpan(roomTipColor))
|
||||
.append(attachment.getGoldNum() + "金幣", new ForegroundColorSpan(roomTipColor))
|
||||
.append("!", new ForegroundColorSpan(greyColor));
|
||||
tvContent.setText(text.build());
|
||||
}
|
||||
|
@@ -16,6 +16,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.example.lib_utils.UiUtils;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
@@ -98,7 +99,7 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
|
||||
|
||||
public void bindAdapter(@NonNull BaseMicroViewAdapter adapter) {
|
||||
if (adapter instanceof DatingMicroViewAdapter) {
|
||||
if (datingItemDecoration == null) datingItemDecoration = new DatingItemDecoration();
|
||||
if (datingItemDecoration == null) datingItemDecoration = new DatingItemDecoration(UiUtils.INSTANCE.isRtl(getContext()));
|
||||
recyclerView.addItemDecoration(datingItemDecoration);
|
||||
} else if (datingItemDecoration != null) {
|
||||
recyclerView.removeItemDecoration(datingItemDecoration);
|
||||
@@ -181,8 +182,15 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
|
||||
View view = child.findViewById(R.id.micro_layout);
|
||||
if (view != null) child = view;
|
||||
child.getLocationInWindow(location);
|
||||
int x = (location[0] + child.getWidth() / 2) - giftWidth / 2;
|
||||
int y = (location[1] + child.getHeight() / 2) - giftHeight / 2;
|
||||
int x;
|
||||
int y;
|
||||
if (UiUtils.INSTANCE.isRtl(getContext())) {
|
||||
location[0] = getWidth() - location[0];
|
||||
x = (location[0] - child.getWidth() / 2) - giftWidth / 2;
|
||||
}else{
|
||||
x = (location[0] + child.getWidth() / 2) - giftWidth / 2;
|
||||
}
|
||||
y = (location[1] + child.getHeight() / 2) - giftHeight / 2;
|
||||
Point point = new Point(x, y);
|
||||
LogUtils.d("x= " + x + " y= " + y);
|
||||
centerPoints.put(micPosition, point);
|
||||
|
@@ -151,8 +151,8 @@ class RoomEffectBoxView @JvmOverloads constructor(
|
||||
.subscribe { roomEvent: RoomEvent? ->
|
||||
if (roomEvent == null || AvRoomDataManager.get().isSelfGamePlaying) return@subscribe
|
||||
when (roomEvent.event) {
|
||||
RoomEvent.BOX_NOTIFY -> addBoxNotify(roomEvent.chatRoomMessage)
|
||||
RoomEvent.BOX_NOTIFY_SVGA -> addBoxNotify(roomEvent.chatRoomMessage)
|
||||
// RoomEvent.BOX_NOTIFY -> addBoxNotify(roomEvent.chatRoomMessage)
|
||||
// RoomEvent.BOX_NOTIFY_SVGA -> addBoxNotify(roomEvent.chatRoomMessage)
|
||||
RoomEvent.DATING_ALL_NOTIFY -> addDatingAllNotify(roomEvent.chatRoomMessage)
|
||||
RoomEvent.RADISH_NOTIFY,
|
||||
RoomEvent.RADISH_NOTIFY_SVGA -> addRadishNotify(roomEvent.chatRoomMessage)
|
||||
@@ -305,143 +305,143 @@ class RoomEffectBoxView @JvmOverloads constructor(
|
||||
*
|
||||
* @param chatRoomMessage
|
||||
*/
|
||||
private fun addBoxNotify(chatRoomMessage: ChatRoomMessage) {
|
||||
if (binding.clNotify.visibility == GONE) {
|
||||
binding.clNotify.visibility = VISIBLE
|
||||
}
|
||||
messagesBox.add(chatRoomMessage)
|
||||
if (boxDisposable == null || messagesBox.size == 1) {
|
||||
boxDisposable = Observable.interval(0, PERIOD.toLong(), TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.takeWhile { messagesBox.size > 0 && !mContext.isDestroyed() }
|
||||
.subscribe {
|
||||
if (binding.flBoxNotify.childCount == 0) {
|
||||
val msg = messagesBox.removeAt(0)
|
||||
val attachment = msg.attachment
|
||||
if (attachment is CustomAttachment) {
|
||||
if (attachment.second == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY) {
|
||||
showBoxNotify(msg)
|
||||
} else if(attachment.second == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
|
||||
showBoxNotifyBySVGA(msg)
|
||||
}
|
||||
// private fun addBoxNotify(chatRoomMessage: ChatRoomMessage) {
|
||||
// if (binding.clNotify.visibility == GONE) {
|
||||
// binding.clNotify.visibility = VISIBLE
|
||||
// }
|
||||
// messagesBox.add(chatRoomMessage)
|
||||
// if (boxDisposable == null || messagesBox.size == 1) {
|
||||
// boxDisposable = Observable.interval(0, PERIOD.toLong(), TimeUnit.MILLISECONDS)
|
||||
// .observeOn(AndroidSchedulers.mainThread())
|
||||
// .takeWhile { messagesBox.size > 0 && !mContext.isDestroyed() }
|
||||
// .subscribe {
|
||||
// if (binding.flBoxNotify.childCount == 0) {
|
||||
// val msg = messagesBox.removeAt(0)
|
||||
// val attachment = msg.attachment
|
||||
// if (attachment is CustomAttachment) {
|
||||
// if (attachment.second == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY) {
|
||||
// showBoxNotify(msg)
|
||||
// } else if(attachment.second == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
|
||||
// showBoxNotifyBySVGA(msg)
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// private fun showBoxNotify(chatRoomMessage: ChatRoomMessage) {
|
||||
// val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
// val textView =
|
||||
// LayoutInflater.from(mContext).inflate(R.layout.layout_room_box_notify, null) as TextView
|
||||
// val text = SpannableBuilder()
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.avroom_widget_roomeffectview_08),
|
||||
// ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// attachment.nick.subAndReplaceDot(8),
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
// R.string.avroom_widget_roomeffectview_010
|
||||
// ), ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// attachment.prizeName,
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// if (attachment.prizeNum > 1) {
|
||||
// text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
// }
|
||||
// textView.text = text.build()
|
||||
// animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
// binding.flBoxNotify.addView(textView)
|
||||
// textView.startAnimation(animationBox)
|
||||
// binding.flBoxNotify.postDelayed(
|
||||
// {
|
||||
// animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
// textView.startAnimation(animationBox)
|
||||
// },
|
||||
// SHOW_TIME.toLong()
|
||||
// )
|
||||
// binding.flBoxNotify.postDelayed({
|
||||
// binding.flBoxNotify.removeView(textView)
|
||||
// }, CLOSE_TIME.toLong())
|
||||
// }
|
||||
|
||||
private fun showBoxNotify(chatRoomMessage: ChatRoomMessage) {
|
||||
val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
val textView =
|
||||
LayoutInflater.from(mContext).inflate(R.layout.layout_room_box_notify, null) as TextView
|
||||
val text = SpannableBuilder()
|
||||
.append(
|
||||
ResUtil.getString(R.string.avroom_widget_roomeffectview_08),
|
||||
ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
attachment.nick.subAndReplaceDot(8),
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
.append(
|
||||
ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
R.string.avroom_widget_roomeffectview_010
|
||||
), ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
attachment.prizeName,
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
if (attachment.prizeNum > 1) {
|
||||
text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
}
|
||||
textView.text = text.build()
|
||||
animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
binding.flBoxNotify.addView(textView)
|
||||
textView.startAnimation(animationBox)
|
||||
binding.flBoxNotify.postDelayed(
|
||||
{
|
||||
animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
textView.startAnimation(animationBox)
|
||||
},
|
||||
SHOW_TIME.toLong()
|
||||
)
|
||||
binding.flBoxNotify.postDelayed({
|
||||
binding.flBoxNotify.removeView(textView)
|
||||
}, CLOSE_TIME.toLong())
|
||||
}
|
||||
|
||||
private fun showBoxNotifyBySVGA(chatRoomMessage: ChatRoomMessage) {
|
||||
val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
val text = SpannableBuilder()
|
||||
.append(
|
||||
ResUtil.getString(R.string.avroom_widget_roomeffectview_011),
|
||||
ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
StringUtils.abbreviate(attachment.nick, 8) + " ",
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
.append(
|
||||
ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
R.string.avroom_widget_roomeffectview_013
|
||||
), ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
attachment.prizeName,
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
if (attachment.prizeNum > 1) {
|
||||
text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
}
|
||||
val svgaImageView = SVGAImageView(mContext)
|
||||
svgaImageView.loops = 1
|
||||
svgaImageView.clearsAfterDetached = true
|
||||
val params = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
|
||||
svgaImageView.layoutParams = params
|
||||
svgaImageView.callback = object : SimpleSvgaCallback() {
|
||||
override fun onFinished() {
|
||||
animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
animationBox!!.setAnimationListener(object : SimpleAnimationListener() {
|
||||
override fun onAnimationEnd(animation: Animation?) {
|
||||
binding.flBoxNotify.removeView(svgaImageView)
|
||||
}
|
||||
})
|
||||
binding.flBoxNotify.startAnimation(animationBox)
|
||||
}
|
||||
}
|
||||
animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
binding.flBoxNotify.addView(svgaImageView)
|
||||
binding.flBoxNotify.startAnimation(animationBox)
|
||||
|
||||
shareParser().decodeFromAssets("svga/box_notify.svga", object : SVGAParser.ParseCompletion {
|
||||
override fun onComplete(videoItem: SVGAVideoEntity) {
|
||||
val dynamicEntity = SVGADynamicEntity()
|
||||
val textPaint = TextPaint()
|
||||
textPaint.color = Color.WHITE //字體顏色
|
||||
textPaint.textSize = 24f //字體大小
|
||||
dynamicEntity.setDynamicText(
|
||||
StaticLayout(
|
||||
text.build(),
|
||||
0,
|
||||
text.build().length,
|
||||
textPaint,
|
||||
0,
|
||||
Layout.Alignment.ALIGN_CENTER,
|
||||
1.0f,
|
||||
0.0f,
|
||||
false
|
||||
), "bg"
|
||||
)
|
||||
val drawable = SVGADrawable(videoItem, dynamicEntity)
|
||||
svgaImageView.setImageDrawable(drawable)
|
||||
svgaImageView.stepToFrame(0, true)
|
||||
}
|
||||
|
||||
override fun onError() {}
|
||||
}, null)
|
||||
}
|
||||
// private fun showBoxNotifyBySVGA(chatRoomMessage: ChatRoomMessage) {
|
||||
// val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
// val text = SpannableBuilder()
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.avroom_widget_roomeffectview_011),
|
||||
// ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// StringUtils.abbreviate(attachment.nick, 8) + " ",
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
// R.string.avroom_widget_roomeffectview_013
|
||||
// ), ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// attachment.prizeName,
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// if (attachment.prizeNum > 1) {
|
||||
// text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
// }
|
||||
// val svgaImageView = SVGAImageView(mContext)
|
||||
// svgaImageView.loops = 1
|
||||
// svgaImageView.clearsAfterDetached = true
|
||||
// val params = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
|
||||
// svgaImageView.layoutParams = params
|
||||
// svgaImageView.callback = object : SimpleSvgaCallback() {
|
||||
// override fun onFinished() {
|
||||
// animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
// animationBox!!.setAnimationListener(object : SimpleAnimationListener() {
|
||||
// override fun onAnimationEnd(animation: Animation?) {
|
||||
// binding.flBoxNotify.removeView(svgaImageView)
|
||||
// }
|
||||
// })
|
||||
// binding.flBoxNotify.startAnimation(animationBox)
|
||||
// }
|
||||
// }
|
||||
// animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
// binding.flBoxNotify.addView(svgaImageView)
|
||||
// binding.flBoxNotify.startAnimation(animationBox)
|
||||
//
|
||||
// shareParser().decodeFromAssets("svga/box_notify.svga", object : SVGAParser.ParseCompletion {
|
||||
// override fun onComplete(videoItem: SVGAVideoEntity) {
|
||||
// val dynamicEntity = SVGADynamicEntity()
|
||||
// val textPaint = TextPaint()
|
||||
// textPaint.color = Color.WHITE //字體顏色
|
||||
// textPaint.textSize = 24f //字體大小
|
||||
// dynamicEntity.setDynamicText(
|
||||
// StaticLayout(
|
||||
// text.build(),
|
||||
// 0,
|
||||
// text.build().length,
|
||||
// textPaint,
|
||||
// 0,
|
||||
// Layout.Alignment.ALIGN_CENTER,
|
||||
// 1.0f,
|
||||
// 0.0f,
|
||||
// false
|
||||
// ), "bg"
|
||||
// )
|
||||
// val drawable = SVGADrawable(videoItem, dynamicEntity)
|
||||
// svgaImageView.setImageDrawable(drawable)
|
||||
// svgaImageView.stepToFrame(0, true)
|
||||
// }
|
||||
//
|
||||
// override fun onError() {}
|
||||
// }, null)
|
||||
// }
|
||||
|
||||
/**
|
||||
* 幸運池飄屏
|
||||
|
@@ -165,13 +165,13 @@ class RoomEffectView @JvmOverloads constructor(
|
||||
.subscribe { roomEvent: RoomEvent? ->
|
||||
if (roomEvent == null || AvRoomDataManager.get().isSelfGamePlaying) return@subscribe
|
||||
when (roomEvent.event) {
|
||||
RoomEvent.BOX_NOTIFY -> {//寻爱
|
||||
addPlayNotify(RoomEvent.BOX_NOTIFY, roomEvent.chatRoomMessage)
|
||||
}
|
||||
|
||||
RoomEvent.BOX_NOTIFY_SVGA -> {//寻爱svga
|
||||
addPlayNotify(RoomEvent.BOX_NOTIFY_SVGA, roomEvent.chatRoomMessage)
|
||||
}
|
||||
// RoomEvent.BOX_NOTIFY -> {//寻爱
|
||||
// addPlayNotify(RoomEvent.BOX_NOTIFY, roomEvent.chatRoomMessage)
|
||||
// }
|
||||
//
|
||||
// RoomEvent.BOX_NOTIFY_SVGA -> {//寻爱svga
|
||||
// addPlayNotify(RoomEvent.BOX_NOTIFY_SVGA, roomEvent.chatRoomMessage)
|
||||
// }
|
||||
|
||||
RoomEvent.TAROT_NOTIFY,
|
||||
RoomEvent.TAROT_NOTIFY_SVGA -> {
|
||||
@@ -182,9 +182,9 @@ class RoomEffectView @JvmOverloads constructor(
|
||||
addPlayNotify(roomEvent.event, roomEvent.chatRoomMessage)
|
||||
}
|
||||
|
||||
RoomEvent.RECEIVE_ROOM_LUCKY_BAG_NOTICE, RoomEvent.RECEIVE_SERVICE_LUCKY_BAG_NOTICE ->//全服福袋
|
||||
//廳內福袋
|
||||
addPlayNotify(roomEvent.event, roomEvent.chatRoomMessage)
|
||||
// RoomEvent.RECEIVE_ROOM_LUCKY_BAG_NOTICE, RoomEvent.RECEIVE_SERVICE_LUCKY_BAG_NOTICE ->//全服福袋
|
||||
// //廳內福袋
|
||||
// addPlayNotify(roomEvent.event, roomEvent.chatRoomMessage)
|
||||
|
||||
RoomEvent.LUCKY_SEA_GIFT_ROOM_NOTIFY -> {// 星级厨房房间飘屏通知
|
||||
addPlayNotify(roomEvent.event, roomEvent.chatRoomMessage)
|
||||
@@ -287,57 +287,57 @@ class RoomEffectView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
when (messagesPlay[0].event) {
|
||||
RoomEvent.BOX_NOTIFY -> {//寻爱
|
||||
if ((mContext as AVRoomActivity).isTopActivity) {
|
||||
isPlayAnim = true
|
||||
val isPlay = onPlayAnimCallback?.invoke() ?: false
|
||||
if (isPlay) {
|
||||
margin(
|
||||
binding.clNotify,
|
||||
0,
|
||||
UIUtil.dip2px(context, 180.0),
|
||||
0,
|
||||
0
|
||||
)
|
||||
} else {
|
||||
margin(
|
||||
binding.clNotify,
|
||||
0,
|
||||
UIUtil.dip2px(context, 60.0),
|
||||
0,
|
||||
0
|
||||
)
|
||||
}
|
||||
showBoxNotify(
|
||||
messagesPlay.removeAt(0)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
RoomEvent.BOX_NOTIFY_SVGA -> {//寻爱
|
||||
if ((mContext as AVRoomActivity).isTopActivity) {
|
||||
isPlayAnim = true
|
||||
val isPlay = onPlayAnimCallback?.invoke() ?: false
|
||||
if (isPlay) {
|
||||
margin(
|
||||
binding.clNotify,
|
||||
0,
|
||||
UIUtil.dip2px(context, 180.0),
|
||||
0,
|
||||
0
|
||||
)
|
||||
} else {
|
||||
margin(
|
||||
binding.clNotify,
|
||||
0,
|
||||
UIUtil.dip2px(context, 60.0),
|
||||
0,
|
||||
0
|
||||
)
|
||||
}
|
||||
showBoxNotifyBySVGA(messagesPlay.removeAt(0))
|
||||
}
|
||||
}
|
||||
// RoomEvent.BOX_NOTIFY -> {//寻爱
|
||||
// if ((mContext as AVRoomActivity).isTopActivity) {
|
||||
// isPlayAnim = true
|
||||
// val isPlay = onPlayAnimCallback?.invoke() ?: false
|
||||
// if (isPlay) {
|
||||
// margin(
|
||||
// binding.clNotify,
|
||||
// 0,
|
||||
// UIUtil.dip2px(context, 180.0),
|
||||
// 0,
|
||||
// 0
|
||||
// )
|
||||
// } else {
|
||||
// margin(
|
||||
// binding.clNotify,
|
||||
// 0,
|
||||
// UIUtil.dip2px(context, 60.0),
|
||||
// 0,
|
||||
// 0
|
||||
// )
|
||||
// }
|
||||
// showBoxNotify(
|
||||
// messagesPlay.removeAt(0)
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// RoomEvent.BOX_NOTIFY_SVGA -> {//寻爱
|
||||
// if ((mContext as AVRoomActivity).isTopActivity) {
|
||||
// isPlayAnim = true
|
||||
// val isPlay = onPlayAnimCallback?.invoke() ?: false
|
||||
// if (isPlay) {
|
||||
// margin(
|
||||
// binding.clNotify,
|
||||
// 0,
|
||||
// UIUtil.dip2px(context, 180.0),
|
||||
// 0,
|
||||
// 0
|
||||
// )
|
||||
// } else {
|
||||
// margin(
|
||||
// binding.clNotify,
|
||||
// 0,
|
||||
// UIUtil.dip2px(context, 60.0),
|
||||
// 0,
|
||||
// 0
|
||||
// )
|
||||
// }
|
||||
// showBoxNotifyBySVGA(messagesPlay.removeAt(0))
|
||||
// }
|
||||
// }
|
||||
|
||||
RoomEvent.TAROT_NOTIFY -> {
|
||||
if ((mContext as AVRoomActivity).isTopActivity) {
|
||||
@@ -966,49 +966,49 @@ class RoomEffectView @JvmOverloads constructor(
|
||||
isPlayAnim = false
|
||||
}, CLOSE_TIME.toLong())
|
||||
}
|
||||
|
||||
private fun showBoxNotify(roomPlayBean: RoomPlayBean) {
|
||||
val chatRoomMessage = roomPlayBean.chatRoomMessage
|
||||
val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
val textView =
|
||||
LayoutInflater.from(mContext).inflate(R.layout.layout_room_box_notify, null) as TextView
|
||||
val text = SpannableBuilder()
|
||||
.append(
|
||||
ResUtil.getString(R.string.avroom_widget_roomeffectview_08),
|
||||
ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
attachment.nick.subAndReplaceDot(8),
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
.append(
|
||||
ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
R.string.avroom_widget_roomeffectview_010
|
||||
), ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
attachment.prizeName,
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
if (attachment.prizeNum > 1) {
|
||||
text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
}
|
||||
textView.text = text.build()
|
||||
animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
binding.flPlayNotify.addView(textView)
|
||||
textView.startAnimation(animationPlay)
|
||||
binding.flPlayNotify.postDelayed(
|
||||
{
|
||||
animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
textView.startAnimation(animationPlay)
|
||||
},
|
||||
SHOW_TIME.toLong()
|
||||
)
|
||||
binding.flPlayNotify.postDelayed({
|
||||
binding.flPlayNotify.removeView(textView)
|
||||
isPlayAnim = false
|
||||
}, CLOSE_TIME.toLong())
|
||||
}
|
||||
//
|
||||
// private fun showBoxNotify(roomPlayBean: RoomPlayBean) {
|
||||
// val chatRoomMessage = roomPlayBean.chatRoomMessage
|
||||
// val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
// val textView =
|
||||
// LayoutInflater.from(mContext).inflate(R.layout.layout_room_box_notify, null) as TextView
|
||||
// val text = SpannableBuilder()
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.avroom_widget_roomeffectview_08),
|
||||
// ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// attachment.nick.subAndReplaceDot(8),
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
// R.string.avroom_widget_roomeffectview_010
|
||||
// ), ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// attachment.prizeName,
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// if (attachment.prizeNum > 1) {
|
||||
// text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
// }
|
||||
// textView.text = text.build()
|
||||
// animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
// binding.flPlayNotify.addView(textView)
|
||||
// textView.startAnimation(animationPlay)
|
||||
// binding.flPlayNotify.postDelayed(
|
||||
// {
|
||||
// animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
// textView.startAnimation(animationPlay)
|
||||
// },
|
||||
// SHOW_TIME.toLong()
|
||||
// )
|
||||
// binding.flPlayNotify.postDelayed({
|
||||
// binding.flPlayNotify.removeView(textView)
|
||||
// isPlayAnim = false
|
||||
// }, CLOSE_TIME.toLong())
|
||||
// }
|
||||
|
||||
private fun showTarotNotifyBySVGA(roomPlayBean: RoomPlayBean) {
|
||||
val chatRoomMessage = roomPlayBean.chatRoomMessage
|
||||
@@ -1066,78 +1066,78 @@ class RoomEffectView @JvmOverloads constructor(
|
||||
)
|
||||
}
|
||||
|
||||
private fun showBoxNotifyBySVGA(roomPlayBean: RoomPlayBean) {
|
||||
val chatRoomMessage = roomPlayBean.chatRoomMessage
|
||||
val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
val text = SpannableBuilder()
|
||||
.append(
|
||||
ResUtil.getString(R.string.avroom_widget_roomeffectview_011),
|
||||
ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
StringUtils.abbreviate(attachment.nick, 8) + " ",
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
.append(
|
||||
ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
R.string.avroom_widget_roomeffectview_013
|
||||
), ForegroundColorSpan(Color.WHITE)
|
||||
)
|
||||
.append(
|
||||
attachment.prizeName,
|
||||
ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
)
|
||||
if (attachment.prizeNum > 1) {
|
||||
text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
}
|
||||
val svgaImageView = SVGAImageView(mContext)
|
||||
svgaImageView.loops = 1
|
||||
svgaImageView.clearsAfterDetached = true
|
||||
val params = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
|
||||
svgaImageView.layoutParams = params
|
||||
svgaImageView.callback = object : SimpleSvgaCallback() {
|
||||
override fun onFinished() {
|
||||
animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
animationPlay!!.setAnimationListener(object : SimpleAnimationListener() {
|
||||
override fun onAnimationEnd(animation: Animation?) {
|
||||
binding.flPlayNotify.removeView(svgaImageView)
|
||||
isPlayAnim = false
|
||||
}
|
||||
})
|
||||
binding.flPlayNotify.startAnimation(animationPlay)
|
||||
}
|
||||
}
|
||||
animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
binding.flPlayNotify.addView(svgaImageView)
|
||||
binding.flPlayNotify.startAnimation(animationPlay)
|
||||
|
||||
shareParser().decodeFromAssets("svga/box_notify.svga", object : SVGAParser.ParseCompletion {
|
||||
override fun onComplete(videoItem: SVGAVideoEntity) {
|
||||
val dynamicEntity = SVGADynamicEntity()
|
||||
val textPaint = TextPaint()
|
||||
textPaint.color = Color.WHITE //字體顏色
|
||||
textPaint.textSize = 24f //字體大小
|
||||
dynamicEntity.setDynamicText(
|
||||
StaticLayout(
|
||||
text.build(),
|
||||
0,
|
||||
text.build().length,
|
||||
textPaint,
|
||||
0,
|
||||
Layout.Alignment.ALIGN_CENTER,
|
||||
1.0f,
|
||||
0.0f,
|
||||
false
|
||||
), "bg"
|
||||
)
|
||||
val drawable = SVGADrawable(videoItem, dynamicEntity)
|
||||
svgaImageView.setImageDrawable(drawable)
|
||||
svgaImageView.stepToFrame(0, true)
|
||||
}
|
||||
|
||||
override fun onError() {}
|
||||
}, null)
|
||||
}
|
||||
// private fun showBoxNotifyBySVGA(roomPlayBean: RoomPlayBean) {
|
||||
// val chatRoomMessage = roomPlayBean.chatRoomMessage
|
||||
// val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment
|
||||
// val text = SpannableBuilder()
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.avroom_widget_roomeffectview_011),
|
||||
// ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// StringUtils.abbreviate(attachment.nick, 8) + " ",
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// .append(
|
||||
// ResUtil.getString(R.string.treasure_in_find_love) + ResUtil.getString(
|
||||
// R.string.avroom_widget_roomeffectview_013
|
||||
// ), ForegroundColorSpan(Color.WHITE)
|
||||
// )
|
||||
// .append(
|
||||
// attachment.prizeName,
|
||||
// ForegroundColorSpan(resources.getColor(R.color.notice_nick))
|
||||
// )
|
||||
// if (attachment.prizeNum > 1) {
|
||||
// text.append("x" + attachment.prizeNum, ForegroundColorSpan(Color.WHITE))
|
||||
// }
|
||||
// val svgaImageView = SVGAImageView(mContext)
|
||||
// svgaImageView.loops = 1
|
||||
// svgaImageView.clearsAfterDetached = true
|
||||
// val params = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
|
||||
// svgaImageView.layoutParams = params
|
||||
// svgaImageView.callback = object : SimpleSvgaCallback() {
|
||||
// override fun onFinished() {
|
||||
// animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close)
|
||||
// animationPlay!!.setAnimationListener(object : SimpleAnimationListener() {
|
||||
// override fun onAnimationEnd(animation: Animation?) {
|
||||
// binding.flPlayNotify.removeView(svgaImageView)
|
||||
// isPlayAnim = false
|
||||
// }
|
||||
// })
|
||||
// binding.flPlayNotify.startAnimation(animationPlay)
|
||||
// }
|
||||
// }
|
||||
// animationPlay = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify)
|
||||
// binding.flPlayNotify.addView(svgaImageView)
|
||||
// binding.flPlayNotify.startAnimation(animationPlay)
|
||||
//
|
||||
// shareParser().decodeFromAssets("svga/box_notify.svga", object : SVGAParser.ParseCompletion {
|
||||
// override fun onComplete(videoItem: SVGAVideoEntity) {
|
||||
// val dynamicEntity = SVGADynamicEntity()
|
||||
// val textPaint = TextPaint()
|
||||
// textPaint.color = Color.WHITE //字體顏色
|
||||
// textPaint.textSize = 24f //字體大小
|
||||
// dynamicEntity.setDynamicText(
|
||||
// StaticLayout(
|
||||
// text.build(),
|
||||
// 0,
|
||||
// text.build().length,
|
||||
// textPaint,
|
||||
// 0,
|
||||
// Layout.Alignment.ALIGN_CENTER,
|
||||
// 1.0f,
|
||||
// 0.0f,
|
||||
// false
|
||||
// ), "bg"
|
||||
// )
|
||||
// val drawable = SVGADrawable(videoItem, dynamicEntity)
|
||||
// svgaImageView.setImageDrawable(drawable)
|
||||
// svgaImageView.stepToFrame(0, true)
|
||||
// }
|
||||
//
|
||||
// override fun onError() {}
|
||||
// }, null)
|
||||
// }
|
||||
|
||||
/**
|
||||
* 幸運池飄屏
|
||||
|
@@ -0,0 +1,177 @@
|
||||
package com.chwl.app.avroom.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import com.chwl.app.common.widget.OriginalDrawStatusClickSpan
|
||||
import com.chwl.app.utils.CommonJumpHelper
|
||||
import com.chwl.app.utils.SpannableBuilder
|
||||
import com.chwl.core.home.bean.BannerInfo
|
||||
import com.chwl.core.im.custom.bean.TemplateMessage
|
||||
import com.chwl.core.im.custom.bean.TemplateMessage.TemplateNode
|
||||
import com.chwl.core.im.custom.bean.TemplateMessage.Content
|
||||
import com.example.lib_utils.UiUtils
|
||||
|
||||
|
||||
class TemplateMessageAdapter(val listener: Listener?) {
|
||||
|
||||
/**
|
||||
* 解析为文本(子节点只支持TEXT类型)
|
||||
*/
|
||||
fun parse(context: Context, attachment: TemplateMessage?): SpannableStringBuilder? {
|
||||
val builder = SpannableBuilder()
|
||||
if (attachment == null) {
|
||||
return null
|
||||
}
|
||||
val nodeList = attachment.getNodeList()
|
||||
nodeList.forEach {
|
||||
if (it is TemplateNode.NormalNode) {
|
||||
val textColor = parseColor(it.textColor)
|
||||
if (textColor != null) {
|
||||
builder.append(it.text, ForegroundColorSpan(textColor))
|
||||
} else {
|
||||
builder.append(it.text)
|
||||
}
|
||||
} else if (it is TemplateNode.SpecialNode) {
|
||||
when (it.content.type) {
|
||||
Content.TEXT -> {
|
||||
val text = it.content.text?.getFirstText()
|
||||
if (!text.isNullOrEmpty()) {
|
||||
val textColor = parseColor(it.content.textColor)
|
||||
val clickSpan = createClickSpan(context, it.content, listener)
|
||||
val list = ArrayList<Any>()
|
||||
if (textColor != null) {
|
||||
list.add(ForegroundColorSpan(textColor))
|
||||
}
|
||||
if (clickSpan != null) {
|
||||
list.add(clickSpan)
|
||||
}
|
||||
builder.append(text, *list.toArray())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return builder.build()
|
||||
}
|
||||
|
||||
fun convert(textView: TextView, attachment: TemplateMessage?) {
|
||||
if (attachment == null) {
|
||||
textView.text = ""
|
||||
return
|
||||
}
|
||||
val nodeList = attachment.getNodeList()
|
||||
val textBuilder = MessageView.SpannableBuilder(textView)
|
||||
nodeList.forEach {
|
||||
if (it is TemplateNode.NormalNode) {
|
||||
val textColor = parseColor(it.textColor)
|
||||
if (textColor != null) {
|
||||
textBuilder.append(it.text, ForegroundColorSpan(textColor))
|
||||
} else {
|
||||
textBuilder.append(it.text)
|
||||
}
|
||||
} else if (it is TemplateNode.SpecialNode) {
|
||||
when (it.content.type) {
|
||||
Content.TEXT -> {
|
||||
val text = it.content.text?.getFirstText()
|
||||
if (!text.isNullOrEmpty()) {
|
||||
val textColor = parseColor(it.content.textColor)
|
||||
val clickSpan = createClickSpan(textView.context, it.content, listener)
|
||||
val list = ArrayList<Any>()
|
||||
if (textColor != null) {
|
||||
list.add(ForegroundColorSpan(textColor))
|
||||
}
|
||||
if (clickSpan != null) {
|
||||
list.add(clickSpan)
|
||||
}
|
||||
textBuilder.append(text, *list.toArray())
|
||||
}
|
||||
}
|
||||
|
||||
TemplateMessage.Content.IMAGE -> {
|
||||
val image = it.content.image
|
||||
val width = it.content.width ?: 0
|
||||
val height = it.content.height ?: 0
|
||||
val clickSpan = createClickSpan(textView.context, it.content, listener)
|
||||
if (height > 0 && width == 0) {
|
||||
if (clickSpan != null) {
|
||||
textBuilder.append(
|
||||
image,
|
||||
UiUtils.dip2px(height.toFloat()),
|
||||
clickSpan
|
||||
)
|
||||
} else {
|
||||
textBuilder.append(image, UiUtils.dip2px(height.toFloat()))
|
||||
}
|
||||
} else if (height > 0 && width > 0) {
|
||||
if (clickSpan != null) {
|
||||
textBuilder.append(
|
||||
image,
|
||||
UiUtils.dip2px(width.toFloat()),
|
||||
UiUtils.dip2px(height.toFloat()), clickSpan
|
||||
)
|
||||
} else {
|
||||
textBuilder.append(
|
||||
image,
|
||||
UiUtils.dip2px(width.toFloat()),
|
||||
UiUtils.dip2px(height.toFloat())
|
||||
)
|
||||
}
|
||||
} else {
|
||||
if (clickSpan != null) {
|
||||
textBuilder.appendImg(image, clickSpan)
|
||||
} else {
|
||||
textBuilder.appendImg(image)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
textView.text = textBuilder.build()
|
||||
textView.setOnClickListener(null)
|
||||
textView.movementMethod = LinkMovementMethod()
|
||||
}
|
||||
|
||||
private fun createClickSpan(
|
||||
context: Context,
|
||||
content: Content,
|
||||
listener: Listener?
|
||||
): OriginalDrawStatusClickSpan? {
|
||||
val skipType = content.getSkipType()
|
||||
val skipUri = content.getSkipUri()
|
||||
if (skipType > 0 && !skipUri.isNullOrEmpty()) {
|
||||
return object : OriginalDrawStatusClickSpan() {
|
||||
override fun onClick(widget: View) {
|
||||
if (skipType == BannerInfo.SKIP_TYPE_ROOM_USER_CARD) {
|
||||
listener?.onShowUserCard(skipUri)
|
||||
} else {
|
||||
CommonJumpHelper.bannerJump(context, content)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
fun parseColor(color: String?): Int? {
|
||||
if (color == null) {
|
||||
return null
|
||||
}
|
||||
try {
|
||||
return Color.parseColor(color)
|
||||
} catch (e: java.lang.Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
interface Listener {
|
||||
fun onShowUserCard(uid: String)
|
||||
}
|
||||
}
|
@@ -8,6 +8,7 @@ import android.util.AttributeSet
|
||||
import android.widget.ProgressBar
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.chwl.app.R
|
||||
import com.example.lib_utils.UiUtils
|
||||
|
||||
class VipProgressBar(context: Context, attrs: AttributeSet?) : ProgressBar(context, attrs) {
|
||||
|
||||
@@ -19,6 +20,10 @@ class VipProgressBar(context: Context, attrs: AttributeSet?) : ProgressBar(conte
|
||||
private var mHeight = 0
|
||||
private val leftPadding = ScreenUtil.dip2px(9f)
|
||||
|
||||
private var isRTL = false
|
||||
init {
|
||||
isRTL = UiUtils.isRtl(context)
|
||||
}
|
||||
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
|
||||
super.onSizeChanged(w, h, oldw, oldh)
|
||||
mWidth = w
|
||||
@@ -28,7 +33,10 @@ class VipProgressBar(context: Context, attrs: AttributeSet?) : ProgressBar(conte
|
||||
@Synchronized
|
||||
override fun onDraw(canvas: Canvas) {
|
||||
super.onDraw(canvas)
|
||||
val radio = progress * 1.0f / max
|
||||
var radio = progress * 1.0f / max
|
||||
if (isRTL) {
|
||||
radio = 1 - radio
|
||||
}
|
||||
canvas.drawBitmap(
|
||||
thumbBitmap,
|
||||
(mWidth - leftPadding * 2) * radio - thumbWidth / 2f + leftPadding,
|
||||
|
@@ -4,19 +4,15 @@ import static com.chwl.core.Constants.DEBUG_MAX_UID;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MESS_HEAD_NOBLE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MESS_SUB_OPENNOBLE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MESS_SUB_RENEWNOBLE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ALL_SERVICE_GIFT;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_BOX;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_FAIRY;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_ALL;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA_GIFT_SERVER_ALL;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_NOTIFY_H5_SUB_WHOLE_SERVICE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_RED_PACKAGE;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_DRAW_GIFT_L5;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_VIP;
|
||||
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_VIP_USER_ALL_UPGRADE;
|
||||
import static com.chwl.library.utils.UIUtils.getActivityByContext;
|
||||
@@ -27,6 +23,7 @@ import android.app.Dialog;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
@@ -51,6 +48,8 @@ import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.chwl.app.notify.GlobalNotifyManager;
|
||||
import com.chwl.library.language.LanguageHelper;
|
||||
import com.google.gson.Gson;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.NIMSDK;
|
||||
@@ -67,10 +66,6 @@ import com.chwl.app.application.IReportConstants;
|
||||
import com.chwl.app.application.ReportManager;
|
||||
import com.chwl.app.application.App;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.avroom.firstcharge.FirstChargeDialog;
|
||||
import com.chwl.app.avroom.redpackage.RedPackageGoRoomDialog;
|
||||
import com.chwl.app.avroom.redpackage.RedPackageHandler;
|
||||
import com.chwl.app.avroom.redpackage.open.RedPackageOpenDialog;
|
||||
import com.chwl.app.common.LoadingFragment;
|
||||
import com.chwl.app.common.NetworkErrorFragment;
|
||||
import com.chwl.app.common.NoDataFragment;
|
||||
@@ -91,7 +86,6 @@ import com.chwl.app.ui.widget.dialog.AllServiceGiftLevelDialog;
|
||||
import com.chwl.app.ui.widget.dialog.AllServiceVipLevelUPDialog;
|
||||
import com.chwl.app.ui.widget.dialog.OpenNobleGlobalNoticeDialog;
|
||||
import com.chwl.app.utils.UserUtils;
|
||||
import com.chwl.app.mentoring_relationship.dialog.GrabApprenticesNoticeDialog;
|
||||
import com.chwl.core.XConstants;
|
||||
import com.chwl.core.bean.BaseProtocol;
|
||||
import com.chwl.core.gift.bean.LuckyBagNoticeInfo;
|
||||
@@ -101,7 +95,6 @@ import com.chwl.core.im.custom.bean.PlayEffectInfo;
|
||||
import com.chwl.core.im.custom.bean.RoomBoxPrizeInfo;
|
||||
import com.chwl.core.im.custom.bean.RoomLuckySeaMsgBean;
|
||||
import com.chwl.core.im.custom.bean.TarotMsgBean;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.mentoring_relationship.event.GrabApprenticesEvent;
|
||||
@@ -112,10 +105,7 @@ import com.chwl.core.noble.bean.NobleInfo;
|
||||
import com.chwl.core.noble.bean.NobleProtocol;
|
||||
import com.chwl.core.pay.PayModel;
|
||||
import com.chwl.core.pay.bean.WalletInfo;
|
||||
import com.chwl.core.redpackage.bean.RedPackageNotifyInfo;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.room.model.AvRoomModel;
|
||||
import com.chwl.core.support.room.RoomContext;
|
||||
import com.chwl.core.treasurefairy.bean.FairyMsgInfoBean;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.utils.net.RxHelper;
|
||||
@@ -163,7 +153,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
protected DefaultToolBar mToolBar;
|
||||
protected CompositeDisposable mCompositeDisposable;
|
||||
protected Context context;
|
||||
protected volatile GrabApprenticesNoticeDialog dialog;
|
||||
private DialogManager mDialogManager;
|
||||
private BroadcastObserver broadcastObserver;
|
||||
private OpenNobleGlobalNoticeDialog mNoticeDialog;
|
||||
@@ -188,6 +177,7 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
if (roomEvent == null) return;
|
||||
onReceiveChatRoomEvent(roomEvent);
|
||||
}));
|
||||
GlobalNotifyManager.INSTANCE.bindActivity(this);
|
||||
}
|
||||
|
||||
protected void onReceiveChatRoomEvent(RoomEvent roomEvent) {
|
||||
@@ -527,6 +517,18 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
super.attachBaseContext(LanguageHelper.INSTANCE.wrapContext(newBase));
|
||||
LanguageHelper.INSTANCE.wrapContext(newBase.getApplicationContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
LanguageHelper.INSTANCE.changeLanguage(this, LanguageHelper.INSTANCE.getCurrentLanguage());
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void onResume() {
|
||||
@@ -543,12 +545,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
}, throwable -> {
|
||||
});
|
||||
|
||||
RxBus.get()
|
||||
.toFlowable(GrabApprenticesEvent.class)
|
||||
.compose(bindUntilEvent(ActivityEvent.PAUSE))
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::onGrabApprenticesEvent);
|
||||
|
||||
IMNetEaseManager.get().getChatRoomEventObservable()
|
||||
.compose(bindUntilEvent(ActivityEvent.PAUSE))
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@@ -876,6 +872,10 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
return rxPermissions.request(mPerms);
|
||||
}
|
||||
|
||||
public RxPermissions getRxPermissions() {
|
||||
return rxPermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* 接收到全局广播信息
|
||||
*
|
||||
@@ -940,29 +940,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CUSTOM_MSG_RED_PACKAGE:
|
||||
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND) {
|
||||
if (this instanceof AddUserInfoActivity ||
|
||||
UserUtils.getUserInfo() == null ||
|
||||
AvRoomDataManager.get().isSelfGamePlaying())
|
||||
return;
|
||||
RedPackageNotifyInfo notifyInfo = new Gson().fromJson(String.valueOf(baseProtocol.getData()), RedPackageNotifyInfo.class);
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
RoomContext roomContext = RoomContext.Companion.get();
|
||||
RedPackageHandler redPackageHandler = null;
|
||||
if (roomContext != null) {
|
||||
redPackageHandler = roomContext.findAbility(RedPackageHandler.class.getSimpleName());
|
||||
}
|
||||
if (redPackageHandler != null) {
|
||||
redPackageHandler.onAllServiceSignaling(this, notifyInfo);
|
||||
} else {
|
||||
if (roomInfo != null && roomInfo.getUid() == notifyInfo.getRoomUid() && context instanceof AVRoomActivity) {
|
||||
RedPackageOpenDialog.Companion.newInstance(notifyInfo).show(BaseActivity.this);
|
||||
} else {
|
||||
RedPackageGoRoomDialog.Companion.newInstance(notifyInfo).show(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
case CUSTOM_MSG_VIP:
|
||||
if (baseProtocol.getSecond() == CUSTOM_MSG_VIP_USER_ALL_UPGRADE) {
|
||||
VipMessageInfo vipMessageInfo = new Gson().fromJson(String.valueOf(baseProtocol.getData()), VipMessageInfo.class);
|
||||
@@ -971,62 +948,62 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CUSTOM_MSG_HEADER_TYPE_GIFT:
|
||||
if (!isValid() || getWindow().getDecorView().getVisibility() != View.VISIBLE) return;
|
||||
if (this instanceof AddUserInfoActivity || this instanceof AVRoomActivity
|
||||
// || this instanceof TreasureBoxActivity || this instanceof HomeFairyActivity
|
||||
|| UserUtils.getUserInfo() == null)
|
||||
return;
|
||||
if (giftList == null) {
|
||||
giftList = new LinkedList<>();
|
||||
}
|
||||
int second2 = baseProtocol.getSecond();
|
||||
AllServiceGiftProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), AllServiceGiftProtocol.DataBean.class);
|
||||
if (data == null || data.getGiftUrl() == null) return;
|
||||
giftList.add(data);
|
||||
if (second2 == CUSTOM_MSG_ALL_SERVICE_GIFT) {
|
||||
if (giftDialog != null && giftDialog.isShowing()) {
|
||||
// 如果当前以及有礼物弹窗在展示,则需要等到他 dismiss 后再显示下一个
|
||||
AllServiceGiftProtocol.DataBean dataBean = giftList.peekFirst();
|
||||
if (dataBean != null) {
|
||||
return;
|
||||
} else {
|
||||
giftDialog.dismiss();
|
||||
}
|
||||
} else {
|
||||
showGiftDialog();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CUSTOM_MSG_BOX://寻爱之旅
|
||||
if (!isValid() || getWindow().getDecorView().getVisibility() != View.VISIBLE) return;
|
||||
if (this instanceof AddUserInfoActivity || this instanceof AVRoomActivity
|
||||
// || this instanceof TreasureBoxActivity || this instanceof HomeFairyActivity
|
||||
|| UserUtils.getUserInfo() == null)
|
||||
return;
|
||||
if (playEffectList == null) {
|
||||
playEffectList = new LinkedList<>();
|
||||
}
|
||||
RoomBoxPrizeInfo roomBoxPrizeInfo = JSON.parseObject(String.valueOf(baseProtocol.getData()), RoomBoxPrizeInfo.class);
|
||||
if (roomBoxPrizeInfo == null) return;
|
||||
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
|
||||
PlayEffectInfo playEffectInfo = new PlayEffectInfo();
|
||||
playEffectInfo.setSecond(CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA);
|
||||
playEffectInfo.setRoomBoxPrizeInfo(roomBoxPrizeInfo);
|
||||
playEffectList.add(playEffectInfo);
|
||||
if (playEffectDialog != null && playEffectDialog.isShowing()) {
|
||||
// 如果当前以及有礼物弹窗在展示,则需要等到他 dismiss 后再显示下一个
|
||||
PlayEffectInfo dataBean = playEffectList.peekFirst();
|
||||
if (dataBean != null) {
|
||||
return;
|
||||
} else {
|
||||
playEffectDialog.dismiss();
|
||||
}
|
||||
} else {
|
||||
showPlayEffectDialog();
|
||||
}
|
||||
}
|
||||
break;
|
||||
// case CUSTOM_MSG_HEADER_TYPE_GIFT:
|
||||
// if (!isValid() || getWindow().getDecorView().getVisibility() != View.VISIBLE) return;
|
||||
// if (this instanceof AddUserInfoActivity || this instanceof AVRoomActivity
|
||||
//// || this instanceof TreasureBoxActivity || this instanceof HomeFairyActivity
|
||||
// || UserUtils.getUserInfo() == null)
|
||||
// return;
|
||||
// if (giftList == null) {
|
||||
// giftList = new LinkedList<>();
|
||||
// }
|
||||
// int second2 = baseProtocol.getSecond();
|
||||
// AllServiceGiftProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), AllServiceGiftProtocol.DataBean.class);
|
||||
// if (data == null || data.getGiftUrl() == null) return;
|
||||
// giftList.add(data);
|
||||
// if (second2 == CUSTOM_MSG_ALL_SERVICE_GIFT) {
|
||||
// if (giftDialog != null && giftDialog.isShowing()) {
|
||||
// // 如果当前以及有礼物弹窗在展示,则需要等到他 dismiss 后再显示下一个
|
||||
// AllServiceGiftProtocol.DataBean dataBean = giftList.peekFirst();
|
||||
// if (dataBean != null) {
|
||||
// return;
|
||||
// } else {
|
||||
// giftDialog.dismiss();
|
||||
// }
|
||||
// } else {
|
||||
// showGiftDialog();
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case CUSTOM_MSG_BOX://寻爱之旅
|
||||
// if (!isValid() || getWindow().getDecorView().getVisibility() != View.VISIBLE) return;
|
||||
// if (this instanceof AddUserInfoActivity || this instanceof AVRoomActivity
|
||||
//// || this instanceof TreasureBoxActivity || this instanceof HomeFairyActivity
|
||||
// || UserUtils.getUserInfo() == null)
|
||||
// return;
|
||||
// if (playEffectList == null) {
|
||||
// playEffectList = new LinkedList<>();
|
||||
// }
|
||||
// RoomBoxPrizeInfo roomBoxPrizeInfo = JSON.parseObject(String.valueOf(baseProtocol.getData()), RoomBoxPrizeInfo.class);
|
||||
// if (roomBoxPrizeInfo == null) return;
|
||||
// if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
|
||||
// PlayEffectInfo playEffectInfo = new PlayEffectInfo();
|
||||
// playEffectInfo.setSecond(CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA);
|
||||
// playEffectInfo.setRoomBoxPrizeInfo(roomBoxPrizeInfo);
|
||||
// playEffectList.add(playEffectInfo);
|
||||
// if (playEffectDialog != null && playEffectDialog.isShowing()) {
|
||||
// // 如果当前以及有礼物弹窗在展示,则需要等到他 dismiss 后再显示下一个
|
||||
// PlayEffectInfo dataBean = playEffectList.peekFirst();
|
||||
// if (dataBean != null) {
|
||||
// return;
|
||||
// } else {
|
||||
// playEffectDialog.dismiss();
|
||||
// }
|
||||
// } else {
|
||||
// showPlayEffectDialog();
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
case CustomAttachment.CUSTOM_MESS_TAROT:
|
||||
if (!isValid() || getWindow().getDecorView().getVisibility() != View.VISIBLE) return;
|
||||
if (this instanceof AddUserInfoActivity || this instanceof AVRoomActivity
|
||||
@@ -1233,11 +1210,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
|
||||
public void onGrabApprenticesEvent(GrabApprenticesEvent event) {
|
||||
if (!isTopActivity()) return;
|
||||
if (dialog != null && dialog.isAdded()) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
dialog = new GrabApprenticesNoticeDialog();
|
||||
dialog.show(getSupportFragmentManager());
|
||||
}
|
||||
|
||||
public void onRoomEventReceived(RoomEvent roomEvent) {
|
||||
@@ -1300,10 +1272,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
.doOnError(throwable -> isShowingChargeDialog = false)
|
||||
.subscribe(
|
||||
userInfo -> {
|
||||
if (userInfo.isFirstCharge()) {
|
||||
isShowingChargeDialog = false;
|
||||
FirstChargeDialog.start(context);
|
||||
} else {
|
||||
new DialogManager(context).showOkCancelDialog(getString(R.string.tips_need_charge),
|
||||
new DialogManager.OkCancelDialogListener() {
|
||||
@Override
|
||||
@@ -1316,7 +1284,7 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
if (goldWalletInfo != null) {
|
||||
map.put(IReportConstants.ACCOUNT_BALANCE, goldWalletInfo.getDiamondNum());
|
||||
}
|
||||
map.put(IReportConstants.MODULE, IReportConstants.PEKO_PAY);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_PAY);
|
||||
ReportManager.get().reportEvent(IReportConstants.PAYPAGE_SHOW, map);
|
||||
// if (AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
ChargeActivity.start(context);
|
||||
@@ -1335,7 +1303,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
isShowingChargeDialog = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1411,14 +1378,14 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
JSONObject jsonObject;
|
||||
try {
|
||||
jsonObject = JSON.parseObject(contentStr);
|
||||
if (jsonObject == null) return;
|
||||
if (jsonObject.containsKey("body")) {
|
||||
String body = jsonObject.getString("body");
|
||||
if (TextUtils.isEmpty(body)) return;
|
||||
baseMvpActivity.onReceivedNimBroadcastMessage(body);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
jsonObject = null;
|
||||
}
|
||||
if (jsonObject == null) return;
|
||||
if (jsonObject.containsKey("body")) {
|
||||
String body = jsonObject.getString("body");
|
||||
if (TextUtils.isEmpty(body)) return;
|
||||
baseMvpActivity.onReceivedNimBroadcastMessage(body);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
91
app/src/main/java/com/chwl/app/base/BaseBindingDialog.java
Normal file
91
app/src/main/java/com/chwl/app/base/BaseBindingDialog.java
Normal file
@@ -0,0 +1,91 @@
|
||||
package com.chwl.app.base;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.appcompat.app.AppCompatDialog;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
|
||||
import com.chwl.library.annatation.ActLayoutRes;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
|
||||
/**
|
||||
* Created by huangmeng1 on 2018/4/12.
|
||||
*/
|
||||
|
||||
public abstract class BaseBindingDialog<T extends ViewDataBinding> extends AppCompatDialog {
|
||||
|
||||
|
||||
protected int width, height;
|
||||
protected Context context;
|
||||
protected int gravity;
|
||||
|
||||
public BaseBindingDialog(Context context) {
|
||||
this(context, 0);
|
||||
}
|
||||
|
||||
public BaseBindingDialog(Context context, int theme) {
|
||||
super(context, theme);
|
||||
this.context = context;
|
||||
width = ScreenUtil.getDialogWidth();
|
||||
height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
gravity = Gravity.CENTER;
|
||||
}
|
||||
|
||||
protected T binding;
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
Window window = getWindow();
|
||||
if (window != null) {
|
||||
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
WindowManager.LayoutParams windowParams = window.getAttributes();
|
||||
windowParams.width = width;
|
||||
windowParams.height = height;
|
||||
windowParams.dimAmount = 0.5f;
|
||||
windowParams.gravity = gravity;
|
||||
windowParams.x = 0;
|
||||
windowParams.y = 0;
|
||||
// window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
|
||||
window.setAttributes(windowParams);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
View inflate = LayoutInflater.from(getContext()).inflate(getClass().getAnnotation(ActLayoutRes.class).value(), null);
|
||||
setContentView(inflate.getRootView());
|
||||
setCancelable(true);
|
||||
setCanceledOnTouchOutside(true);
|
||||
binding = DataBindingUtil.bind(inflate);
|
||||
init();
|
||||
}
|
||||
|
||||
protected abstract void init();
|
||||
|
||||
public void openDialog() {
|
||||
try {
|
||||
show();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void closeDialog() {
|
||||
try {
|
||||
dismiss();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
@@ -9,7 +9,7 @@ import java.lang.reflect.ParameterizedType
|
||||
|
||||
abstract class BaseViewBindingFragment<T : ViewBinding> : BaseFragment() {
|
||||
|
||||
private var _binding: T? = null
|
||||
protected var _binding: T? = null
|
||||
|
||||
val binding get() = _binding!!
|
||||
|
||||
|
@@ -6,11 +6,14 @@ import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.chwl.core.utils.extension.toast
|
||||
import com.chwl.library.net.rxnet.exception.ExceptionHandle
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
import io.reactivex.disposables.Disposable
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
open class BaseViewModel : ViewModel() {
|
||||
|
||||
private var compositeDisposable: CompositeDisposable? = null
|
||||
private val _loadingLiveData by lazy { MutableLiveData<Boolean>() }
|
||||
val loadingLiveData: LiveData<Boolean> = _loadingLiveData
|
||||
|
||||
@@ -40,5 +43,22 @@ open class BaseViewModel : ViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun getCompositeDisposable(): CompositeDisposable {
|
||||
var disposable = compositeDisposable
|
||||
if (disposable == null) {
|
||||
disposable = CompositeDisposable()
|
||||
compositeDisposable = disposable
|
||||
}
|
||||
return disposable
|
||||
}
|
||||
|
||||
protected fun addDisposable(disposable: Disposable) {
|
||||
getCompositeDisposable().add(disposable)
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
super.onCleared()
|
||||
compositeDisposable?.dispose()
|
||||
compositeDisposable = null
|
||||
}
|
||||
}
|
@@ -11,6 +11,7 @@ import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.LayoutDirection;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -20,9 +21,12 @@ import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.text.TextUtilsCompat;
|
||||
|
||||
import com.chwl.app.R;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* 类描述:
|
||||
@@ -446,18 +450,33 @@ public class TitleBar extends ViewGroup implements View.OnClickListener {
|
||||
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), height);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
||||
mLeftLayout.layout(0, mStatusBarHeight, mLeftLayout.getMeasuredWidth(), mLeftLayout.getMeasuredHeight() + mStatusBarHeight);
|
||||
mRightLayout.layout(mScreenWidth - mRightLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth, mRightLayout.getMeasuredHeight() + mStatusBarHeight);
|
||||
if (mLeftLayout.getMeasuredWidth() > mRightLayout.getMeasuredWidth()) {
|
||||
mCenterLayout.layout(mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth - mLeftLayout.getMeasuredWidth(), getMeasuredHeight());
|
||||
if(TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) == LayoutDirection.RTL) {
|
||||
mRightLayout.layout(0, mStatusBarHeight, mRightLayout.getMeasuredWidth(), mRightLayout.getMeasuredHeight() + mStatusBarHeight);
|
||||
mLeftLayout.layout(mScreenWidth - mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth, mLeftLayout.getMeasuredHeight() + mStatusBarHeight);
|
||||
if (mRightLayout.getMeasuredWidth() > mLeftLayout.getMeasuredWidth()) {
|
||||
mCenterLayout.layout(mRightLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth - mRightLayout.getMeasuredWidth(), getMeasuredHeight());
|
||||
} else {
|
||||
mCenterLayout.layout(mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth - mLeftLayout.getMeasuredWidth(), getMeasuredHeight());
|
||||
}
|
||||
} else {
|
||||
mCenterLayout.layout(mRightLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth - mRightLayout.getMeasuredWidth(), getMeasuredHeight());
|
||||
mLeftLayout.layout(0, mStatusBarHeight, mLeftLayout.getMeasuredWidth(), mLeftLayout.getMeasuredHeight() + mStatusBarHeight);
|
||||
mRightLayout.layout(mScreenWidth - mRightLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth, mRightLayout.getMeasuredHeight() + mStatusBarHeight);
|
||||
if (mLeftLayout.getMeasuredWidth() > mRightLayout.getMeasuredWidth()) {
|
||||
mCenterLayout.layout(mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth - mLeftLayout.getMeasuredWidth(), getMeasuredHeight());
|
||||
} else {
|
||||
mCenterLayout.layout(mRightLayout.getMeasuredWidth(), mStatusBarHeight,
|
||||
mScreenWidth - mRightLayout.getMeasuredWidth(), getMeasuredHeight());
|
||||
}
|
||||
}
|
||||
|
||||
mDividerView.layout(0, getMeasuredHeight() - mDividerView.getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight());
|
||||
}
|
||||
|
||||
|
@@ -10,10 +10,8 @@ import com.chwl.app.base.TitleBar;
|
||||
import com.chwl.app.bills.adapter.GiftExpendAdapter;
|
||||
import com.chwl.app.databinding.ActivityBillsGiftBinding;
|
||||
import com.chwl.app.ui.pay.ChargeActivity;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.app.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.bills.BillModel;
|
||||
import com.chwl.core.bills.bean.BillItemEntity;
|
||||
import com.chwl.core.bills.bean.ExpendInfo;
|
||||
@@ -21,8 +19,6 @@ import com.chwl.core.bills.bean.ExpendListInfo;
|
||||
import com.chwl.core.pay.PayModel;
|
||||
import com.chwl.core.pay.bean.WalletInfo;
|
||||
import com.chwl.library.annatation.ActLayoutRes;
|
||||
import com.chwl.library.common.util.DeviceUtil;
|
||||
import com.chwl.library.utils.AppMetaDataUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
|
||||
|
@@ -1,7 +1,6 @@
|
||||
package com.chwl.app.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
@@ -13,10 +12,8 @@ import com.chwl.app.base.TitleBar;
|
||||
import com.chwl.app.bills.adapter.GiftIncomeAdapter;
|
||||
import com.chwl.app.databinding.ActivityBillsGiftBinding;
|
||||
import com.chwl.app.ui.pay.ChargeActivity;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.app.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.bills.BillModel;
|
||||
import com.chwl.core.bills.bean.BillItemEntity;
|
||||
import com.chwl.core.bills.bean.IncomeInfo;
|
||||
@@ -24,8 +21,6 @@ import com.chwl.core.bills.bean.IncomeListInfo;
|
||||
import com.chwl.core.pay.PayModel;
|
||||
import com.chwl.core.pay.bean.WalletInfo;
|
||||
import com.chwl.library.annatation.ActLayoutRes;
|
||||
import com.chwl.library.common.util.DeviceUtil;
|
||||
import com.chwl.library.utils.AppMetaDataUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user