Compare commits
145 Commits
dev/app_re
...
dev/app_1_
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c64c541a56 | ||
![]() |
964980c714 | ||
![]() |
2d417a258a | ||
![]() |
288aaebc3b | ||
![]() |
47aa4a078b | ||
![]() |
201c12d381 | ||
![]() |
fe4a576b17 | ||
![]() |
9f6f785dbb | ||
![]() |
bb31162bb9 | ||
![]() |
b25ad423d0 | ||
![]() |
c15b8581be | ||
![]() |
368caf9392 | ||
![]() |
769232137d | ||
![]() |
d3f866dc88 | ||
![]() |
3cbbd6fb42 | ||
![]() |
f1fdf6fb3f | ||
![]() |
e7d206317f | ||
![]() |
07c02daae9 | ||
![]() |
c73ebf5ae9 | ||
![]() |
70475fc84e | ||
![]() |
96c9479203 | ||
![]() |
bad7564d67 | ||
![]() |
3ceea1fae6 | ||
![]() |
bb80b3ebb9 | ||
![]() |
8931d17528 | ||
![]() |
a542955da2 | ||
![]() |
db2194fe02 | ||
![]() |
ef3810a0d5 | ||
![]() |
1d569d4832 | ||
![]() |
dff86396e4 | ||
![]() |
5c47f96b72 | ||
![]() |
ef86be9708 | ||
![]() |
e173b41c63 | ||
![]() |
78960dd758 | ||
![]() |
5f6db6285e | ||
![]() |
2e305164e8 | ||
![]() |
4089cd2d4e | ||
![]() |
8fa3310236 | ||
![]() |
3764603c43 | ||
![]() |
a6ed7b8cfb | ||
![]() |
d788783caa | ||
![]() |
47d61f9063 | ||
![]() |
b3ada5fd36 | ||
![]() |
a4ea7027d4 | ||
![]() |
4a84f9f74a | ||
![]() |
27f488b66c | ||
![]() |
9e4646c28a | ||
![]() |
42ae9cb8c6 | ||
![]() |
5b2fc450d3 | ||
![]() |
fde366eaaa | ||
![]() |
498837ea0d | ||
![]() |
b45eac2580 | ||
![]() |
a5fd7bfd8d | ||
![]() |
c185808d60 | ||
![]() |
c90f3b648f | ||
![]() |
2f9263f3c9 | ||
![]() |
e5147ba8b1 | ||
![]() |
fed0acbd61 | ||
![]() |
ce706bf90f | ||
![]() |
ef052fff6c | ||
![]() |
c9e43aff77 | ||
![]() |
73cf388e17 | ||
![]() |
db5044ee5d | ||
![]() |
712087dfaa | ||
![]() |
3586905e9c | ||
![]() |
b2dab994f3 | ||
![]() |
52ee9fdfac | ||
![]() |
9c480c14df | ||
![]() |
cabb123783 | ||
![]() |
ff1378339d | ||
![]() |
359fc232e2 | ||
![]() |
82b9d931c7 | ||
![]() |
2dd35ac0ce | ||
![]() |
a1e908183d | ||
![]() |
52dd32c138 | ||
![]() |
cc1a494102 | ||
![]() |
30e4765ad4 | ||
![]() |
6b9b1bc8ca | ||
![]() |
521a0b0662 | ||
![]() |
5f72425b85 | ||
![]() |
257e40cb32 | ||
![]() |
b9dfb3e5ea | ||
![]() |
f6db0c96ab | ||
![]() |
78dfe9c78b | ||
![]() |
2666e98295 | ||
![]() |
c18b00c2eb | ||
![]() |
d07a550ef2 | ||
![]() |
f92d82486d | ||
![]() |
b5cbe0e146 | ||
![]() |
1123b26e88 | ||
![]() |
cc591c4c3b | ||
![]() |
e0b348f92a | ||
![]() |
a48f768434 | ||
![]() |
463855cf92 | ||
![]() |
f5aa8ec8f1 | ||
![]() |
245dee330e | ||
![]() |
e2375029f0 | ||
![]() |
f1b92a291c | ||
![]() |
83fb1dc632 | ||
![]() |
f0a245f4cb | ||
![]() |
2a3d716332 | ||
![]() |
e5794630c7 | ||
![]() |
4dbba76ead | ||
![]() |
47f3a05fd2 | ||
![]() |
07dcede0ad | ||
![]() |
7764add459 | ||
![]() |
156c5aa52a | ||
![]() |
6df69e6e57 | ||
![]() |
32359831b5 | ||
![]() |
117d1148fa | ||
![]() |
5d427d04a2 | ||
![]() |
626d4885ac | ||
![]() |
8cb8734b3f | ||
![]() |
00bd56cf96 | ||
![]() |
a60d48ec10 | ||
![]() |
fd8844f9e7 | ||
![]() |
a8c62182c3 | ||
![]() |
4d56026d03 | ||
![]() |
499f1af011 | ||
![]() |
871c9a2b79 | ||
![]() |
f465e6ad1a | ||
![]() |
a889270e40 | ||
![]() |
b9d11dd276 | ||
![]() |
610a1c4074 | ||
![]() |
d67458dac6 | ||
![]() |
6916a96e4e | ||
![]() |
6fde178c79 | ||
![]() |
ef38916fa1 | ||
![]() |
e48bc137b8 | ||
![]() |
a571555198 | ||
![]() |
b6dceb99bc | ||
![]() |
0404d203b3 | ||
![]() |
9e590ada9e | ||
![]() |
1c0956d4b1 | ||
![]() |
19e820eae0 | ||
![]() |
71ce6ee37e | ||
![]() |
e725a918e2 | ||
![]() |
55fe32db6e | ||
![]() |
17a470e847 | ||
![]() |
b382d98839 | ||
![]() |
95fde27710 | ||
![]() |
c84cfa3e4f | ||
![]() |
e0f55ef03c | ||
![]() |
a5725b32fd | ||
![]() |
c73c7425a7 |
1389
app/build.gradle
1389
app/build.gradle
File diff suppressed because it is too large
Load Diff
13
app/proguard-rules.pro
vendored
13
app/proguard-rules.pro
vendored
@@ -370,9 +370,18 @@
|
||||
-keep class com.chwl.app.ui.widget.AppBarLayoutBehavior {*;}
|
||||
|
||||
#ViewBinding使用的反射生成的对应Binding
|
||||
-keepclassmembers class * implements androidx.viewbinding.ViewBinding {
|
||||
public static ** inflate(***);
|
||||
-keep class * implements androidx.viewbinding.ViewBinding {
|
||||
*;
|
||||
}
|
||||
-keep class * extends androidx.viewbinding.ViewBinding {
|
||||
*;
|
||||
}
|
||||
#-keep class * implements androidx.databinding.ViewDataBinding {
|
||||
# *;
|
||||
#}
|
||||
#-keep class * extends androidx.databinding.ViewDataBinding {
|
||||
# *;
|
||||
#}
|
||||
|
||||
#Flutter Wrapper
|
||||
-dontwarn io.flutter.**
|
||||
|
6
app/src/common/res/drawable/bg_000000_topr16.xml
Normal file
6
app/src/common/res/drawable/bg_000000_topr16.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="16dp" />
|
||||
<solid android:color="#000000"/>
|
||||
</shape>
|
6
app/src/common/res/drawable/bg_ffffff_r16.xml
Normal file
6
app/src/common/res/drawable/bg_ffffff_r16.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="16dp" />
|
||||
<solid android:color="#ffffff"/>
|
||||
</shape>
|
6
app/src/common/res/drawable/bg_ffffff_topr16.xml
Normal file
6
app/src/common/res/drawable/bg_ffffff_topr16.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="16dp" />
|
||||
<solid android:color="#ffffff"/>
|
||||
</shape>
|
9
app/src/common/res/drawable/shape_black_t20_17.xml
Normal file
9
app/src/common/res/drawable/shape_black_t20_17.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners
|
||||
android:radius="17dp"
|
||||
/>
|
||||
<solid
|
||||
android:color="@color/black_transparent_20"
|
||||
/>
|
||||
</shape>
|
BIN
app/src/common/res/mipmap-xhdpi/ic_private_chat.png
Normal file
BIN
app/src/common/res/mipmap-xhdpi/ic_private_chat.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.0 KiB |
@@ -19,13 +19,12 @@
|
||||
android:protectionLevel="signature" />
|
||||
|
||||
<queries>
|
||||
<!-- <package android:name="com.facebook.katana" />-->
|
||||
<!-- <package android:name="jp.naver.line.android" />-->
|
||||
<!-- <package android:name="com.facebook.katana" />-->
|
||||
<!-- <package android:name="jp.naver.line.android" />-->
|
||||
<package android:name="com.android.vending" />
|
||||
</queries>
|
||||
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
|
||||
<uses-feature
|
||||
android:glEsVersion="0x00020000"
|
||||
android:required="true" />
|
||||
@@ -51,16 +50,22 @@
|
||||
tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.FLASHLIGHT" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission tools:node="remove" android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
<uses-permission
|
||||
tools:node="remove"
|
||||
android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
|
||||
<uses-permission tools:node="remove" android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||
<uses-permission
|
||||
tools:node="remove"
|
||||
android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||
<uses-permission
|
||||
android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="32" />
|
||||
android:maxSdkVersion="28" />
|
||||
<uses-permission
|
||||
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="32" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
android:maxSdkVersion="28" />
|
||||
<uses-permission
|
||||
android:name="android.permission.CAMERA"
|
||||
tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" /> <!-- 如果需要实时音视频通话模块,下面的权限也是必须的。否则,可以不加 -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- SDK 权限申明, 第三方 APP 接入时,请将 com.netease.nim.demo 替换为自己的包名 -->
|
||||
<!-- 和下面的 uses-permission 一起加入到你的 AndroidManifest 文件中。 -->
|
||||
@@ -78,12 +83,13 @@
|
||||
<uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
|
||||
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
|
||||
<!-- AppsFlyer需要,参考:https://dev.appsflyer.com/hc/docs/install-android-sdk#setting-required-permissions -->
|
||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
|
||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<!-- 对于 Android 12.0 及以上设备,还需要添加如下权限: -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING" />
|
||||
|
||||
<application
|
||||
android:name=".application.App"
|
||||
android:allowBackup="false"
|
||||
@@ -114,18 +120,18 @@
|
||||
则需要考虑发起的intent会出现相同应用图标的选择对话框的情况
|
||||
参考集成文档:https://www.linkedme.cc/docs/page4.html#link1
|
||||
-->
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <intent-filter>-->
|
||||
|
||||
<!-- <!– 此处scheme值需要替换为后台设置中的scheme值 –>-->
|
||||
<!-- <action android:name="android.intent.action.VIEW" />-->
|
||||
<!-- <!– 此处scheme值需要替换为后台设置中的scheme值 –>-->
|
||||
<!-- <action android:name="android.intent.action.VIEW" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.DEFAULT" />-->
|
||||
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
|
||||
<!-- <category android:name="android.intent.category.DEFAULT" />-->
|
||||
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
|
||||
|
||||
<!-- <data-->
|
||||
<!-- android:host="main"-->
|
||||
<!-- android:scheme="pikoapp" />-->
|
||||
<!-- </intent-filter>-->
|
||||
<!-- <data-->
|
||||
<!-- android:host="main"-->
|
||||
<!-- android:scheme="pikoapp" />-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
@@ -146,56 +152,40 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="firebase_crashlytics_collection_enabled"-->
|
||||
<!-- android:value="${CRASHLYTICS_COLLECTION_ENABLED}" /> <!– 刘海屏适配 begin –>-->
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="firebase_crashlytics_collection_enabled"-->
|
||||
<!-- android:value="${CRASHLYTICS_COLLECTION_ENABLED}" /> <!– 刘海屏适配 begin –>-->
|
||||
<!-- 小米 -->
|
||||
<activity
|
||||
android:name="com.soundcloud.crop.CropImageActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 华为 -->
|
||||
<activity
|
||||
android:name="com.darsh.multipleimageselect.activities.AlbumSelectActivity"
|
||||
android:configChanges="orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:theme="@style/MultipleImageSelectTheme">
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name="com.darsh.multipleimageselect.activities.ImageSelectActivity"
|
||||
android:configChanges="orientation|screenSize"
|
||||
android:exported="true"
|
||||
android:theme="@style/MultipleImageSelectTheme">
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
</activity> <!-- 刘海屏适配 end -->
|
||||
<!-- <activity-->
|
||||
<!-- android:name="com.mob.tools.MobUIShell"-->
|
||||
<!-- android:configChanges="keyboardHidden|orientation|screenSize"-->
|
||||
<!-- android:theme="@android:style/Theme.Translucent.NoTitleBar"-->
|
||||
<!-- android:windowSoftInputMode="stateHidden|adjustResize" /> <!– 云信配置 begin ##################################################### –>-->
|
||||
|
||||
<!-- 刘海屏适配 end -->
|
||||
<!-- <activity-->
|
||||
<!-- android:name="com.mob.tools.MobUIShell"-->
|
||||
<!-- android:configChanges="keyboardHidden|orientation|screenSize"-->
|
||||
<!-- android:theme="@android:style/Theme.Translucent.NoTitleBar"-->
|
||||
<!-- android:windowSoftInputMode="stateHidden|adjustResize" /> <!– 云信配置 begin ##################################################### –>-->
|
||||
<!--
|
||||
APP key, 可以在这里设置,也可以在 SDKOptions 中提供。
|
||||
如果 SDKOptions 中提供了,取 SDKOptions 中的值。
|
||||
-->
|
||||
<!-- <activity-->
|
||||
<!-- android:name="app.molistar.fun.lineapi.LineAuthenticationCallbackActivity"-->
|
||||
<!-- android:exported="true"-->
|
||||
<!-- android:launchMode="singleTask"-->
|
||||
<!-- android:noHistory="true">-->
|
||||
<!-- <activity-->
|
||||
<!-- android:name="app.molistar.fun.lineapi.LineAuthenticationCallbackActivity"-->
|
||||
<!-- android:exported="true"-->
|
||||
<!-- android:launchMode="singleTask"-->
|
||||
<!-- android:noHistory="true">-->
|
||||
|
||||
<!-- <!– 集成line客户端登录授权,需要添如下格式的过滤器 –>-->
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.VIEW" />-->
|
||||
<!-- <!– 集成line客户端登录授权,需要添如下格式的过滤器 –>-->
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.VIEW" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
|
||||
<!-- <category android:name="android.intent.category.DEFAULT" />-->
|
||||
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
|
||||
<!-- <category android:name="android.intent.category.DEFAULT" />-->
|
||||
|
||||
<!-- <data android:scheme="lineauth" />-->
|
||||
<!-- </intent-filter>-->
|
||||
<!-- </activity>-->
|
||||
<!-- <data android:scheme="lineauth" />-->
|
||||
<!-- </intent-filter>-->
|
||||
<!-- </activity>-->
|
||||
<!--
|
||||
声明云信后台服务,如需保持后台推送,使用独立进程效果会更好。
|
||||
ca46478c438dda51d25306f52fe7506b
|
||||
@@ -269,6 +259,9 @@
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomTypeSwitchActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".DemoActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomBgSettingActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -289,6 +282,11 @@
|
||||
android:label="@string/main_androidmanifest_010"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AVRoomTheme" />
|
||||
<activity
|
||||
android:name="com.chwl.app.music.activity.AddLocalMusicListSpecialActivity"
|
||||
android:label="@string/main_androidmanifest_010"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AVRoomTheme" />
|
||||
<activity
|
||||
android:name="com.chwl.app.music.activity.MusicListActivity"
|
||||
android:label="@string/main_androidmanifest_011"
|
||||
@@ -319,6 +317,15 @@
|
||||
<activity
|
||||
android:name=".ui.user.activity.UserCpListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.user.activity.UserForbidActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".decoration.ui.activity.DressUpTabActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.search.SearchUserActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".audio.AudioRecordActivity"
|
||||
android:label="@string/main_androidmanifest_017"
|
||||
@@ -337,6 +344,9 @@
|
||||
<activity
|
||||
android:name=".ui.setting.SettingActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.setting.VipSetActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.relation.AttentionListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -352,9 +362,6 @@
|
||||
<activity
|
||||
android:name=".bills.activities.TotalBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.WithdrawBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.ChargeBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -494,6 +501,10 @@
|
||||
android:name=".ui.widget.LevelUpDialog"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/dialogactivity" />
|
||||
<activity
|
||||
android:name=".base.PhotoPickActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/dialogactivity" />
|
||||
<activity android:name=".home.activity.NewUserListActivity" />
|
||||
<activity
|
||||
android:name=".ui.widget.RecallDialog"
|
||||
@@ -551,10 +562,6 @@
|
||||
<activity
|
||||
android:name=".module_hall.team.activity.SelectTeamMemberActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".module_hall.team.activity.TeamInfoShowActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||
<activity
|
||||
android:name=".module_hall.team.activity.TeamEditActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -695,7 +702,7 @@
|
||||
<activity
|
||||
android:name=".ui.webview.room_banner.RoomBannerWebDialogActivity"
|
||||
android:theme="@style/dialog_web_view_activity"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".ui.webview.TarotPayWebViewActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
@@ -787,11 +794,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.BindWithdrawMsgActivity"
|
||||
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.GoldDetailActivity"
|
||||
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
|
||||
@@ -846,9 +848,9 @@
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="Mob-Https"-->
|
||||
<!-- android:value="yes" />-->
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="Mob-Https"-->
|
||||
<!-- android:value="yes" />-->
|
||||
|
||||
<provider
|
||||
android:name="com.netease.nimlib.ipc.NIMContentProvider"
|
||||
@@ -891,8 +893,9 @@
|
||||
android:foregroundServiceType="remoteMessaging"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"
|
||||
android:process=":core" />
|
||||
<service android:name="com.netease.nimlib.service.ResponseService"
|
||||
android:foregroundServiceType="remoteMessaging"/>
|
||||
<service
|
||||
android:name="com.netease.nimlib.service.ResponseService"
|
||||
android:foregroundServiceType="remoteMessaging" />
|
||||
<service
|
||||
android:name=".service.DaemonService"
|
||||
android:foregroundServiceType="mediaPlayback"
|
||||
@@ -902,7 +905,8 @@
|
||||
|
||||
<activity android:name=".ui.language.LanguageActivity" />
|
||||
|
||||
<activity android:name=".public_chat.ui.message.PublicChatRoomMessageActivity"
|
||||
<activity
|
||||
android:name=".public_chat.ui.message.PublicChatRoomMessageActivity"
|
||||
android:configChanges="keyboardHidden|orientation"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
@@ -925,6 +929,14 @@
|
||||
android:name=".pay.activity.GiveGoldActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldAgentsActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldBiliActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldDetailActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -956,10 +968,12 @@
|
||||
android:windowSoftInputMode="adjustPan"
|
||||
android:name=".ui.feedback.FeedbackActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity android:name=".ui.debug.DebugActivity"
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity android:name=".ui.game_team.record.GameTeamRecordActivity"
|
||||
android:screenOrientation="portrait"/>
|
||||
<activity
|
||||
android:name=".ui.debug.DebugActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.game_team.record.GameTeamRecordActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
@@ -1 +1,32 @@
|
||||
[{"name":"Taiwan","abbr":"TW","mcc":"466","code":"886"},{"name":"Hong Kong","abbr":"HK","mcc":"454","code":"852"},{"name":"Singapore","abbr":"SG","mcc":"525","code":"65"},{"name":"Malaysia","abbr":"MY","mcc":"502","code":"60"},{"name":"China","abbr":"CN","mcc":"460","code":"86"}]
|
||||
[
|
||||
{
|
||||
"name": "Taiwan",
|
||||
"abbr": "TW",
|
||||
"mcc": "466",
|
||||
"code": "886"
|
||||
},
|
||||
{
|
||||
"name": "Hong Kong",
|
||||
"abbr": "HK",
|
||||
"mcc": "454",
|
||||
"code": "852"
|
||||
},
|
||||
{
|
||||
"name": "Singapore",
|
||||
"abbr": "SG",
|
||||
"mcc": "525",
|
||||
"code": "65"
|
||||
},
|
||||
{
|
||||
"name": "Malaysia",
|
||||
"abbr": "MY",
|
||||
"mcc": "502",
|
||||
"code": "60"
|
||||
},
|
||||
{
|
||||
"name": "China",
|
||||
"abbr": "CN",
|
||||
"mcc": "460",
|
||||
"code": "86"
|
||||
}
|
||||
]
|
BIN
app/src/main/assets/mp4/lucky_bag_gift_open.mp4
Normal file
BIN
app/src/main/assets/mp4/lucky_bag_gift_open.mp4
Normal file
Binary file not shown.
BIN
app/src/main/assets/mp4/lucky_bag_gold_open.mp4
Normal file
BIN
app/src/main/assets/mp4/lucky_bag_gold_open.mp4
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
app/src/main/assets/svga/experience_entre_effect_30.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_30.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_40.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_40.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_50.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_50.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_60.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_60.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_70.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_70.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_80.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_80.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_90.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_90.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/experience_entre_effect_cp.svga
Normal file
BIN
app/src/main/assets/svga/experience_entre_effect_cp.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gift_notify_1.svga
Normal file
BIN
app/src/main/assets/svga/gift_notify_1.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gift_notify_2.svga
Normal file
BIN
app/src/main/assets/svga/gift_notify_2.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gift_notify_3.svga
Normal file
BIN
app/src/main/assets/svga/gift_notify_3.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gift_notify_4.svga
Normal file
BIN
app/src/main/assets/svga/gift_notify_4.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gift_notify_5.svga
Normal file
BIN
app/src/main/assets/svga/gift_notify_5.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/gift_notify_6.svga
Normal file
BIN
app/src/main/assets/svga/gift_notify_6.svga
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
55
app/src/main/java/com/chwl/app/DemoActivity.kt
Normal file
55
app/src/main/java/com/chwl/app/DemoActivity.kt
Normal file
@@ -0,0 +1,55 @@
|
||||
package com.chwl.app
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.view.ViewGroup
|
||||
import com.chwl.app.base.BaseViewBindingActivity
|
||||
import com.chwl.app.bindadapter.BaseBindingAdapter
|
||||
import com.chwl.app.bindadapter.BaseBindingViewHolder
|
||||
import com.chwl.app.databinding.ActivityDemoBinding
|
||||
import com.chwl.app.databinding.ListItemMicroBinding
|
||||
import com.chwl.core.widget.layoutmanager.pagergridlayoutmanager.PagerGridLayoutManager.LayoutParams
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.setViewWH
|
||||
import com.chwl.library.common.util.setVis
|
||||
|
||||
|
||||
class DemoActivity : BaseViewBindingActivity<ActivityDemoBinding>() {
|
||||
|
||||
companion object{
|
||||
@JvmStatic
|
||||
fun start(context: Context) {
|
||||
val starter = Intent(context, DemoActivity::class.java)
|
||||
context.startActivity(starter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun init() {
|
||||
|
||||
var isOpen = false
|
||||
binding.b1.click {
|
||||
binding.btnLayout.setViewWH(height = if (!isOpen) ViewGroup.LayoutParams.WRAP_CONTENT else 1 , isDP = false)
|
||||
isOpen = !isOpen
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class DemoAdapter : BaseBindingAdapter<ListItemMicroBinding,Int>() {
|
||||
|
||||
|
||||
|
||||
override fun convert(helper: BaseBindingViewHolder<ListItemMicroBinding>, item: Int) {
|
||||
val bindingAdapterPosition = helper.bindingAdapterPosition
|
||||
|
||||
helper.binding.root.setViewWH(width = LayoutParams.MATCH_PARENT, height = LayoutParams.MATCH_PARENT , false)
|
||||
|
||||
helper.binding.avatar.setVis(true)
|
||||
helper.binding.avatar.setImageResource(R.drawable.user_info_ic_id)
|
||||
helper.binding.llCharmClick.setVis(true)
|
||||
helper.binding.tvCharmValue.setVis(true)
|
||||
helper.binding.tvCharmValue.text = "${ bindingAdapterPosition + 1}"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,173 +0,0 @@
|
||||
package com.chwl.app;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.jph.takephoto.app.TakePhotoActivity;
|
||||
import com.jph.takephoto.compress.CompressConfig;
|
||||
import com.jph.takephoto.model.CropOptions;
|
||||
import com.jph.takephoto.model.TResult;
|
||||
import com.chwl.app.common.permission.PermissionActivity;
|
||||
import com.chwl.library.utils.file.JXFileUtils;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class ErbanTakePhotoActivity extends TakePhotoActivity {
|
||||
private static final String CAMERA_PREFIX = "picture_";
|
||||
private static final int REQ_CODE = 1000;
|
||||
|
||||
private static TakePhotoCallBack takePhotoCallBack;
|
||||
|
||||
public final static String OPERATION_TYPE = "OPERATION_TYPE";
|
||||
public final static int SELECT_PHOTO = 1;
|
||||
public final static int TAKE_PHOTO = 2;
|
||||
public final static int SELECT_MULTIPLE_PHOTO = 3;
|
||||
public final static String MULTIPLE_SELECT_PHOTO_LIMIT = "MULTIPLE_SELECT_PHOTO_LIMIT";
|
||||
|
||||
|
||||
/**
|
||||
* 选择一张图片
|
||||
* @param context
|
||||
*/
|
||||
public static void startToSelectPhoto(Context context, TakePhotoCallBack callBack) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(OPERATION_TYPE, SELECT_PHOTO);
|
||||
start(context, bundle, callBack);
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择多张图片
|
||||
* @param context
|
||||
* @param limit
|
||||
*/
|
||||
public static void startToMultipleSelectPhoto(Context context, TakePhotoCallBack callBack, int limit){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(OPERATION_TYPE, SELECT_MULTIPLE_PHOTO);
|
||||
bundle.putInt(MULTIPLE_SELECT_PHOTO_LIMIT, limit);
|
||||
start(context, bundle, callBack);
|
||||
}
|
||||
|
||||
/**
|
||||
* 照相
|
||||
* @param context
|
||||
*/
|
||||
public static void startToTakePhoto(Context context, TakePhotoCallBack callBack){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(OPERATION_TYPE,TAKE_PHOTO);
|
||||
start(context, bundle, callBack);
|
||||
}
|
||||
|
||||
private static void start(Context context, Bundle bundle, TakePhotoCallBack callBack){
|
||||
takePhotoCallBack = callBack;
|
||||
Intent intent = new Intent(context, ErbanTakePhotoActivity.class);
|
||||
intent.putExtras(bundle);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
int operationType = getIntent().getIntExtra(OPERATION_TYPE, SELECT_PHOTO);
|
||||
int limit = getIntent().getIntExtra(MULTIPLE_SELECT_PHOTO_LIMIT,1);
|
||||
if (operationType == SELECT_PHOTO){
|
||||
selectPhoto();
|
||||
} else if (operationType == TAKE_PHOTO){
|
||||
checkPermissionAndStartCamera();
|
||||
} else if (operationType == SELECT_MULTIPLE_PHOTO){
|
||||
multipleSelectPhoto(limit);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
takePhotoCallBack = null;
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void takeSuccess(TResult result) {
|
||||
if (takePhotoCallBack != null){
|
||||
takePhotoCallBack.takeSuccess(result);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
@Override
|
||||
public void takeFail(TResult result, String msg) {
|
||||
if (takePhotoCallBack != null){
|
||||
takePhotoCallBack.takeFail(result,msg);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
@Override
|
||||
public void takeCancel() {
|
||||
if (takePhotoCallBack != null){
|
||||
takePhotoCallBack.takeCancel();
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
private void selectPhoto(){
|
||||
String mCameraCapturingName = CAMERA_PREFIX + System.currentTimeMillis() + ".jpg";
|
||||
File cameraOutFile = JXFileUtils.getTempFile(ErbanTakePhotoActivity.this, mCameraCapturingName);
|
||||
if (!cameraOutFile.getParentFile().exists()) {
|
||||
cameraOutFile.getParentFile().mkdirs();
|
||||
}
|
||||
Uri uri = Uri.fromFile(cameraOutFile);
|
||||
CompressConfig compressConfig = new CompressConfig.Builder().create();
|
||||
getTakePhoto().onEnableCompress(compressConfig, true);
|
||||
CropOptions options = new CropOptions.Builder().setWithOwnCrop(true).create();
|
||||
getTakePhoto().onPickFromGalleryWithCrop(uri, options);
|
||||
}
|
||||
|
||||
|
||||
private void multipleSelectPhoto(int limit){
|
||||
String mCameraCapturingName = CAMERA_PREFIX + System.currentTimeMillis() + ".jpg";
|
||||
File cameraOutFile = JXFileUtils.getTempFile(ErbanTakePhotoActivity.this, mCameraCapturingName);
|
||||
if (!cameraOutFile.getParentFile().exists()) {
|
||||
cameraOutFile.getParentFile().mkdirs();
|
||||
}
|
||||
Uri uri = Uri.fromFile(cameraOutFile);
|
||||
CompressConfig compressConfig = new CompressConfig.Builder().create();
|
||||
getTakePhoto().onEnableCompress(compressConfig, true);
|
||||
CropOptions options = new CropOptions.Builder().setWithOwnCrop(true).create();
|
||||
getTakePhoto().onPickMultipleWithCrop(limit, options);
|
||||
}
|
||||
|
||||
private void checkPermissionAndStartCamera() {
|
||||
//低版本授权检查
|
||||
checkPermission(checkPermissionListener, R.string.ask_camera, android.Manifest.permission.CAMERA);
|
||||
}
|
||||
|
||||
PermissionActivity.CheckPermListener checkPermissionListener = new PermissionActivity.CheckPermListener() {
|
||||
@Override
|
||||
public void superPermission() {
|
||||
takePhoto();
|
||||
}
|
||||
};
|
||||
|
||||
private void takePhoto() {
|
||||
String mCameraCapturingName = CAMERA_PREFIX + System.currentTimeMillis() + ".jpg";
|
||||
File cameraOutFile = JXFileUtils.getTempFile(ErbanTakePhotoActivity.this, mCameraCapturingName);
|
||||
if (!cameraOutFile.getParentFile().exists()) {
|
||||
cameraOutFile.getParentFile().mkdirs();
|
||||
}
|
||||
Uri uri = Uri.fromFile(cameraOutFile);
|
||||
CompressConfig compressConfig = new CompressConfig.Builder().create();
|
||||
getTakePhoto().onEnableCompress(compressConfig, false);
|
||||
CropOptions options = new CropOptions.Builder().setWithOwnCrop(true).create();
|
||||
getTakePhoto().onPickFromCaptureWithCrop(uri, options);
|
||||
}
|
||||
|
||||
|
||||
public interface TakePhotoCallBack{
|
||||
public void takeSuccess(TResult result);
|
||||
public void takeFail(TResult result, String msg);
|
||||
public void takeCancel();
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -11,7 +11,6 @@ import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MotionEvent;
|
||||
@@ -23,7 +22,13 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.chwl.app.application.App;
|
||||
import com.chwl.app.application.IReportConstants;
|
||||
import com.chwl.app.application.ReportManager;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.base.GlobalViewModelOwner;
|
||||
import com.chwl.app.common.widget.CircleImageView;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.community.square.SquareFragment;
|
||||
import com.chwl.app.game.core.GameStateAbility;
|
||||
@@ -31,32 +36,6 @@ import com.chwl.app.game.data.GameModel2;
|
||||
import com.chwl.app.game.ui.game.GameActivity;
|
||||
import com.chwl.app.game.ui.game.GameIntent;
|
||||
import com.chwl.app.game.ui.home.GameHomeFragment;
|
||||
import com.chwl.app.star.StarFragment;
|
||||
import com.chwl.app.support.PreloadResourceViewModel;
|
||||
import com.chwl.app.ui.login.LoginPasswordActivity;
|
||||
import com.chwl.core.home.bean.MainTabInfo;
|
||||
import com.chwl.core.manager.AudioEngineManager;
|
||||
import com.chwl.core.settings.SettingsModel;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
|
||||
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.RecentContact;
|
||||
import com.netease.nimlib.sdk.team.TeamService;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
|
||||
import com.netease.nimlib.sdk.team.model.Team;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
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.base.BaseMvpActivity;
|
||||
import com.chwl.app.common.widget.CircleImageView;
|
||||
import com.chwl.app.common.widget.DragLayout;
|
||||
import com.chwl.app.home.HomeViewModel;
|
||||
import com.chwl.app.home.dialog.NewUserHelloDialog;
|
||||
import com.chwl.app.home.dialog.ProtocolUpdateDialog;
|
||||
@@ -69,9 +48,11 @@ import com.chwl.app.home.widget.AnchorCardView;
|
||||
import com.chwl.app.module.Extras;
|
||||
import com.chwl.app.module_hall.secretcode.PwdCodeMgr;
|
||||
import com.chwl.app.service.DaemonService;
|
||||
import com.chwl.app.support.PreloadResourceViewModel;
|
||||
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.LoginPasswordActivity;
|
||||
import com.chwl.app.ui.login.fragment.AddUserInfoFragment;
|
||||
import com.chwl.app.ui.patriarch.help.LimitEnterRoomHelper;
|
||||
import com.chwl.app.ui.patriarch.help.PmDialogShowMrg;
|
||||
@@ -81,7 +62,9 @@ import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
import com.chwl.app.ui.widget.LivingIconView;
|
||||
import com.chwl.app.ui.widget.MainTabLayout;
|
||||
import com.chwl.app.utils.CleanLeakUtils;
|
||||
import com.chwl.app.utils.HomeUIManager;
|
||||
import com.chwl.app.utils.PushMessageHandler;
|
||||
import com.chwl.app.utils.ResourceManager;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.DemoCache;
|
||||
import com.chwl.core.UriProvider;
|
||||
@@ -92,6 +75,8 @@ import com.chwl.core.auth.event.LogoutEvent;
|
||||
import com.chwl.core.channel_page.model.ChannelPageModel;
|
||||
import com.chwl.core.community.event.SquareTaskEvent;
|
||||
import com.chwl.core.community.event.UnReadCountEvent;
|
||||
import com.chwl.core.home.bean.BannerInfo;
|
||||
import com.chwl.core.home.bean.MainTabInfo;
|
||||
import com.chwl.core.home.bean.MainTabType;
|
||||
import com.chwl.core.home.event.VisitorUnreadCountEvent;
|
||||
import com.chwl.core.home.model.GameHomeModel;
|
||||
@@ -99,6 +84,7 @@ import com.chwl.core.home.model.HomeModel;
|
||||
import com.chwl.core.initial.InitialModel;
|
||||
import com.chwl.core.linked.LinkedModel;
|
||||
import com.chwl.core.linked.bean.LinkedInfo;
|
||||
import com.chwl.core.manager.AudioEngineManager;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMBroadcastManager;
|
||||
import com.chwl.core.manager.IMMessageManager;
|
||||
@@ -107,17 +93,34 @@ import com.chwl.core.patriarch.event.CloseMinRoomEvent;
|
||||
import com.chwl.core.patriarch.event.ImPushMsgPmLimitTimeEvent;
|
||||
import com.chwl.core.patriarch.event.PmDismissAllLimitDialogEvent;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.settings.SettingsModel;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.core.user.event.LoadLoginUserInfoEvent;
|
||||
import com.chwl.core.user.event.LoginUserInfoUpdateEvent;
|
||||
import com.chwl.core.user.event.NeedBindPhoneEvent;
|
||||
import com.chwl.core.user.event.NeedCompleteInfoEvent;
|
||||
import com.chwl.core.utils.myutil.MyUtil;
|
||||
import com.chwl.core.utils.SharedPreferenceUtils;
|
||||
import com.chwl.core.utils.StringFormatUtils;
|
||||
import com.chwl.core.utils.WLog;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.threadmgr.ThreadPoolManager;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
|
||||
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.RecentContact;
|
||||
import com.netease.nimlib.sdk.team.TeamService;
|
||||
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
|
||||
import com.netease.nimlib.sdk.team.model.Team;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
@@ -160,6 +163,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
private Fragment tempFragment = null;
|
||||
private DialogManager resumeGameDialogManager;
|
||||
|
||||
private PreloadResourceViewModel mPreLoadViewModel;
|
||||
|
||||
@Nullable
|
||||
private Runnable touchRunnable;
|
||||
|
||||
@@ -237,10 +242,17 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
.doOnError(throwable -> onNeedLogin())
|
||||
.subscribe();
|
||||
initView();
|
||||
List<MainTabInfo> mainTabInfo = InitialModel.get().getMainTabInfosLiveData().getValue();
|
||||
if (mainTabInfo != null) {
|
||||
mMainTabLayout.setMainTabInfoList(mainTabInfo);
|
||||
|
||||
List<MainTabInfo> homeTabIcons = HomeUIManager.INSTANCE.getHomeTabIcons();
|
||||
if (homeTabIcons != null && !homeTabIcons.isEmpty()) {
|
||||
mMainTabLayout.setMainTabInfoList(homeTabIcons);
|
||||
} else {
|
||||
List<MainTabInfo> mainTabInfo = InitialModel.get().getMainTabInfosLiveData().getValue();
|
||||
if (mainTabInfo != null) {
|
||||
mMainTabLayout.setMainTabInfoList(mainTabInfo);
|
||||
}
|
||||
}
|
||||
|
||||
initMaterialView();
|
||||
onParseIntent();
|
||||
updateDatas();
|
||||
@@ -256,6 +268,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
}
|
||||
});
|
||||
checkResumeGame();
|
||||
|
||||
WLog.INSTANCE.init(context,"logFile.txt");
|
||||
|
||||
HomeUIManager.INSTANCE.setHomeTabBg(findViewById(R.id.main_tab_layout_bg));
|
||||
ResourceManager.INSTANCE.initResource();
|
||||
}
|
||||
|
||||
private void otherModelInit() {
|
||||
@@ -270,43 +287,45 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void checkResumeGame() {
|
||||
GameModel2.INSTANCE.getResumeGameRoomInfo().compose(bindToLifecycle()).subscribe(gameRoomInfo -> {
|
||||
if (gameRoomInfo != null && gameRoomInfo.getData() != null) {
|
||||
Integer state = gameRoomInfo.getData().getMatchStatus();
|
||||
if (state != null && (state == GameStateAbility.STATE_MATCH_SUCCESS || state == GameStateAbility.STATE_MATCHING)) {
|
||||
if (resumeGameDialogManager == null) {
|
||||
resumeGameDialogManager = new DialogManager(this);
|
||||
}
|
||||
resumeGameDialogManager.showOkCancelDialog(getString(R.string.resume_game_tips), getString(R.string.join_organization_ok), getString(R.string.join_organization_no), false, new DialogManager.OkCancelDialogListener() {
|
||||
@Override
|
||||
public void onOk() {
|
||||
long gameId = JavaUtil.str2long(gameRoomInfo.getData().getMgId());
|
||||
int gameMode = 0;
|
||||
GameActivity.Companion.start(context, new GameIntent(gameId, gameMode));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
DialogManager.OkCancelDialogListener.super.onCancel();
|
||||
Long roomId = gameRoomInfo.getRoomId();
|
||||
if (roomId != null) {
|
||||
GameModel2.INSTANCE.closeGameRx(roomId).compose(bindToLifecycle()).subscribe(s -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
GameModel2.INSTANCE.getResumeGameRoomInfo().compose(bindToLifecycle())
|
||||
.doOnSuccess(gameRoomInfo -> {
|
||||
if (gameRoomInfo != null && gameRoomInfo.getData() != null) {
|
||||
Integer state = gameRoomInfo.getData().getMatchStatus();
|
||||
if (state != null && (state == GameStateAbility.STATE_MATCH_SUCCESS || state == GameStateAbility.STATE_MATCHING)) {
|
||||
if (resumeGameDialogManager == null) {
|
||||
resumeGameDialogManager = new DialogManager(this);
|
||||
}
|
||||
resumeGameDialogManager.showOkCancelDialog(getString(R.string.resume_game_tips), getString(R.string.join_organization_ok), getString(R.string.join_organization_no), false, new DialogManager.OkCancelDialogListener() {
|
||||
@Override
|
||||
public void onOk() {
|
||||
long gameId = JavaUtil.str2long(gameRoomInfo.getData().getMgId());
|
||||
int gameMode = 0;
|
||||
GameActivity.Companion.start(context, new GameIntent(gameId, gameMode));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
DialogManager.OkCancelDialogListener.super.onCancel();
|
||||
Long roomId = gameRoomInfo.getRoomId();
|
||||
if (roomId != null) {
|
||||
GameModel2.INSTANCE.closeGameRx(roomId).compose(bindToLifecycle()).subscribe(s -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
}
|
||||
}).doOnError(e->{
|
||||
|
||||
}).subscribe();
|
||||
}
|
||||
|
||||
private void initPreloadResource() {
|
||||
PreloadResourceViewModel viewModel = new ViewModelProvider(
|
||||
mPreLoadViewModel = new ViewModelProvider(
|
||||
GlobalViewModelOwner.Companion.getInstance()
|
||||
).get(PreloadResourceViewModel.class);
|
||||
viewModel.start(context);
|
||||
mPreLoadViewModel.start(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -392,6 +411,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
mMainTabLayout.setOnTabClickListener(this);
|
||||
anchorCardView = findViewById(R.id.vs_anchor_card);
|
||||
mMainTabLayout.setDefaultTabType(mCurrentTabType);
|
||||
MyUtil.INSTANCE.initAppWidth(findViewById(R.id.rootWidth));
|
||||
}
|
||||
|
||||
private void updateDatas() {
|
||||
@@ -438,6 +458,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
CleanLeakUtils.fixInputMethodManagerLeak(MainActivity.this);
|
||||
if (mPreLoadViewModel != null) {
|
||||
mPreLoadViewModel.stopPreLoad();
|
||||
}
|
||||
super.onDestroy();
|
||||
if (resumeGameDialogManager != null) {
|
||||
resumeGameDialogManager.dismissDialog();
|
||||
@@ -491,6 +514,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoginEvent(LoginEvent event) {
|
||||
onLogin(AuthModel.get().getCurrentUid());
|
||||
// UserModel.get().getUserInfoDetailCache(AuthModel.get().getCurrentUid()).subscribe();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -508,9 +532,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void onLogin(long uid) {
|
||||
Logger.e(TAG, "onLogin Success ~~~~");
|
||||
|
||||
Log.i("checkLostUser", "onLogin");
|
||||
OtherExtKt.doLogW("onLogin Success ~~~~");
|
||||
OtherExtKt.doLogW("onLogin");
|
||||
|
||||
int unreadCount = IMMessageManager.get().queryUnreadMsg();
|
||||
mMainTabLayout.setMsgNum(unreadCount);
|
||||
@@ -519,6 +542,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoadLoginUserInfoEvent(LoadLoginUserInfoEvent event) {
|
||||
OtherExtKt.doLog("消息时间 接收到 LoadLoginUserInfoEvent 消息");
|
||||
firstLoadedUserInfo();
|
||||
InitialModel.get().regionCheck();
|
||||
}
|
||||
@@ -787,16 +811,17 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
* @return true 如果处理了跳转
|
||||
*/
|
||||
private boolean handleSplashJump() {
|
||||
OtherExtKt.doLog("闪屏页 -> handleSplashJump 处理 闪屏页跳转");
|
||||
if (getIntent().hasExtra("url") && getIntent().hasExtra("type")) {
|
||||
LogUtil.print(getString(R.string.clicked_the_splash_screen));
|
||||
//如果没有渠道页,就按原来的逻辑即可
|
||||
int type = getIntent().getIntExtra("type", 0);
|
||||
String url = getIntent().getStringExtra("url");
|
||||
if (type == 3) {
|
||||
if (type == BannerInfo.SKIP_TYP_H5 || type == BannerInfo.SKIP_TYP_H5_CP || type == BannerInfo.SKIP_TYP_H5_WEE_STAR || type == BannerInfo.SKIP_TYP_H5_CUSTOM) {
|
||||
Intent intent = new Intent(context, CommonWebViewActivity.class);
|
||||
intent.putExtra("url", url);
|
||||
startActivity(intent);
|
||||
} else if (type == 2) {
|
||||
} else if (type == BannerInfo.SKIP_TYP_CHAT_ROOM) {
|
||||
AVRoomActivity.start(context, Long.parseLong(url));
|
||||
} else {
|
||||
return false;
|
||||
|
@@ -15,35 +15,10 @@ 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.chwl.library.language.LanguageHelper;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.example.lib_utils.ServiceTime;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.NotificationFoldStyle;
|
||||
import com.netease.nimlib.sdk.SDKOptions;
|
||||
import com.netease.nimlib.sdk.StatusBarNotificationConfig;
|
||||
import com.netease.nimlib.sdk.mixpush.MixPushConfig;
|
||||
import com.netease.nimlib.sdk.mixpush.NIMPushClient;
|
||||
import com.netease.nimlib.sdk.msg.MessageNotifierCustomization;
|
||||
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.netease.nimlib.sdk.util.NIMUtil;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.orhanobut.logger.AndroidLogAdapter;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.scwang.smartrefresh.header.MaterialHeader;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
|
||||
import com.tencent.vasdolly.helper.ChannelReaderUtil;
|
||||
import com.chwl.app.BuildConfig;
|
||||
import com.chwl.app.NimMiddleActivity;
|
||||
import com.chwl.app.R;
|
||||
@@ -51,11 +26,12 @@ import com.chwl.app.common.app.ActivityStack;
|
||||
import com.chwl.app.common.util.AppLifeCycleHelper;
|
||||
import com.chwl.app.module_hall.HallDataManager;
|
||||
import com.chwl.app.radish.wallet.RadishWalletManager;
|
||||
import com.chwl.app.support.IMUserInfoProvider;
|
||||
import com.chwl.app.utils.PushMessageHandler;
|
||||
import com.chwl.core.XConstants;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.DemoCache;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.XConstants;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.bean.response.ServiceResult;
|
||||
import com.chwl.core.channel.ChannelModel;
|
||||
@@ -81,6 +57,8 @@ import com.chwl.core.utils.net.ServerException;
|
||||
import com.chwl.library.common.application.BaseApp;
|
||||
import com.chwl.library.common.application.Env;
|
||||
import com.chwl.library.common.file.FileHelper;
|
||||
import com.chwl.library.error.CrashCat;
|
||||
import com.chwl.library.language.LanguageHelper;
|
||||
import com.chwl.library.net.rxnet.RxNet;
|
||||
import com.chwl.library.net.rxnet.converter.GsonConverterPlugins;
|
||||
import com.chwl.library.utils.AppMetaDataUtil;
|
||||
@@ -91,6 +69,28 @@ import com.chwl.library.utils.SystemUtils;
|
||||
import com.chwl.library.utils.VersionUtil;
|
||||
import com.chwl.library.utils.codec.MD5Utils;
|
||||
import com.chwl.library.utils.config.BasicConfig;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.example.lib_utils.ServiceTime;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
import com.netease.nimlib.sdk.NotificationFoldStyle;
|
||||
import com.netease.nimlib.sdk.SDKOptions;
|
||||
import com.netease.nimlib.sdk.StatusBarNotificationConfig;
|
||||
import com.netease.nimlib.sdk.mixpush.MixPushConfig;
|
||||
import com.netease.nimlib.sdk.mixpush.NIMPushClient;
|
||||
import com.netease.nimlib.sdk.msg.MessageNotifierCustomization;
|
||||
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.netease.nimlib.sdk.util.NIMUtil;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.orhanobut.logger.AndroidLogAdapter;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.scwang.smartrefresh.header.MaterialHeader;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
|
||||
import com.tencent.vasdolly.helper.ChannelReaderUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
@@ -261,6 +261,8 @@ public class App extends BaseApp {
|
||||
AuthModel.get().cleanLogInfo();
|
||||
}
|
||||
throw new ServerException(serviceResult.getMessage(), serviceResult.getCode());
|
||||
}else if (serviceResult.getCode() == ServiceResult.CODE_ROOM_MANAGER_LIMIT) {
|
||||
throw new ServerException(serviceResult.getMessage(), serviceResult.getCode());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -534,6 +536,11 @@ public class App extends BaseApp {
|
||||
HashMap<String, Object> map = new HashMap<>(2);
|
||||
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_ACTIVATE);
|
||||
ReportManager.get().reportEvent(IReportConstants.ACTIVATE_FIRST, map);
|
||||
|
||||
//todo do 崩溃日志拦截
|
||||
if (BuildConfig.DEBUG) {
|
||||
CrashCat.getInstance(getApplicationContext(), Environment.getExternalStorageDirectory().getPath()+ "/Log","log.txt").start();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -4,23 +4,20 @@ import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.netease.nim.uikit.business.uinfo.UserInfoHelper;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.UIHelper;
|
||||
import com.chwl.app.avroom.widget.ViewItem;
|
||||
import com.chwl.app.common.util.DialogCommonUtil;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.room_chat.activity.RoomMsgActivity;
|
||||
import com.chwl.app.ui.im.avtivity.NimFriendModel;
|
||||
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.chwl.app.ui.widget.ButtonItem;
|
||||
import com.chwl.app.ui.widget.GiftDialog;
|
||||
import com.chwl.app.vip.util.VipHelper;
|
||||
import com.chwl.app.room_chat.activity.RoomMsgActivity;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.bean.response.ServiceResult;
|
||||
import com.chwl.core.initial.InitialModel;
|
||||
import com.chwl.core.initial.bean.InitInfo;
|
||||
import com.chwl.core.kick.KickModel;
|
||||
@@ -35,10 +32,19 @@ import com.chwl.core.super_admin.util.SAdminOptUtil;
|
||||
import com.chwl.core.super_admin.util.SaAttachmentFactory;
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.net.rxnet.callback.CallBack;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.chwl.library.utils.config.BasicConfig;
|
||||
import com.example.lib_utils.ktx.ResourcesKtxKt;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.netease.nim.uikit.business.uinfo.UserInfoHelper;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -100,6 +106,7 @@ public class ButtonItemFactory {
|
||||
if (isMySelf) {
|
||||
return null;
|
||||
}
|
||||
String nick = getNick(chatRoomMember, account);
|
||||
List<ViewItem> buttonItems = new ArrayList<>();
|
||||
//ture则表示需要传入此类型button
|
||||
boolean gift = false;
|
||||
@@ -149,18 +156,18 @@ public class ButtonItemFactory {
|
||||
}
|
||||
}
|
||||
|
||||
if (gift) {
|
||||
if (!SuperAdminUtil.isSuperAdmin()) {
|
||||
buttonItems.add(createSendGiftItem(context, uid, isInRoom, listener));
|
||||
}
|
||||
}
|
||||
// if (gift) {
|
||||
// if (!SuperAdminUtil.isSuperAdmin()) {
|
||||
// buttonItems.add(createSendGiftItem(context, uid, isInRoom, listener));
|
||||
// }
|
||||
// }
|
||||
// 私聊
|
||||
buttonItems.add(createPrivateChatItem(context, account, isInRoom));
|
||||
// buttonItems.add(createPrivateChatItem(context, account, isInRoom));
|
||||
|
||||
//关注
|
||||
buttonItems.add(createAttentItem());
|
||||
//关注
|
||||
buttonItems.add(createAtItem());
|
||||
// buttonItems.add(createAttentItem());
|
||||
//aite @
|
||||
// buttonItems.add(createAtItem());
|
||||
|
||||
final RoomInfo currentRoom = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (currentRoom == null) return buttonItems;
|
||||
@@ -173,13 +180,13 @@ public class ButtonItemFactory {
|
||||
|
||||
if (kickOutRoom) {
|
||||
buttonItems.add(createKickOutRoomItem(context, userInfo, String.valueOf(currentRoom.getRoomId()),
|
||||
account, getNick(chatRoomMember, account)));
|
||||
account, nick));
|
||||
}
|
||||
if (mark_manager) {
|
||||
buttonItems.add(createMarkManagerListItem(String.valueOf(currentRoom.getRoomId()), account, true));
|
||||
buttonItems.add(createMarkManagerListItem(context,String.valueOf(currentRoom.getRoomId()), account, nick,true));
|
||||
}
|
||||
if (no_mark_manager) {
|
||||
buttonItems.add(createMarkManagerListItem(String.valueOf(currentRoom.getRoomId()), account, false));
|
||||
buttonItems.add(createMarkManagerListItem(context,String.valueOf(currentRoom.getRoomId()), account, nick,false));
|
||||
}
|
||||
if (mart_black) {
|
||||
buttonItems.add(createMarkBlackListItem(
|
||||
@@ -187,22 +194,14 @@ public class ButtonItemFactory {
|
||||
userInfo,
|
||||
String.valueOf(currentRoom.getRoomId()),
|
||||
account,
|
||||
getNick(chatRoomMember, account))
|
||||
nick)
|
||||
);
|
||||
}
|
||||
return buttonItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* 踩TA,当该人再房间中的时候,进入他所在的房间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private static ViewItem createFindMeItem() {
|
||||
ViewItem viewItem = new ViewItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_01), R.drawable.icon_dialog_find_ta, null);
|
||||
viewItem.isFindTa = true;
|
||||
return viewItem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据account获取昵称
|
||||
@@ -221,6 +220,19 @@ public class ButtonItemFactory {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 踩TA,当该人再房间中的时候,进入他所在的房间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private static ViewItem createFindMeItem() {
|
||||
ViewItem viewItem = new ViewItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_01), R.drawable.icon_dialog_find_ta, null);
|
||||
viewItem.isFindTa = true;
|
||||
return viewItem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 私聊
|
||||
*/
|
||||
@@ -254,7 +266,7 @@ public class ButtonItemFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
* 踢出房间: 先强制下麦,再踢出房间
|
||||
* 踢出房间: 先强制下麦,再踢出房间 todo do
|
||||
*/
|
||||
public static ViewItem createKickOutRoomItem(Context context, UserInfo userInfo, final String roomId,
|
||||
final String account, String nick) {
|
||||
@@ -262,6 +274,11 @@ public class ButtonItemFactory {
|
||||
@Override
|
||||
public void onClick() {
|
||||
|
||||
if (VipHelper.notKick(userInfo)) {
|
||||
ToastUtils.show(ResUtil.getString(R.string.vipPower,userInfo.getUserVipInfoVO().getVipLevel()));
|
||||
return;
|
||||
}
|
||||
|
||||
String tips = (AvRoomDataManager.get().isGamePlaying(Long.parseLong(account)) ? ResUtil.getString(R.string.erban_avroom_buttonitemfactory_07) : "") + ResUtil.getString(R.string.erban_avroom_buttonitemfactory_08);
|
||||
if (VipHelper.notKick(userInfo)) {
|
||||
if (AvRoomDataManager.get().isRoomOwner()) {
|
||||
@@ -330,26 +347,48 @@ public class ButtonItemFactory {
|
||||
}
|
||||
|
||||
//设置管理员
|
||||
public static ViewItem createMarkManagerListItem(final String roomId, final String account, final boolean mark) {
|
||||
public static ViewItem createMarkManagerListItem(final Context context,final String roomId, final String account, final String nick, final boolean mark) {
|
||||
String title = BasicConfig.INSTANCE.getAppContext().getString(mark ? R.string.set_manager : R.string.remove_manager);
|
||||
int icon = mark ? R.drawable.icon_dialog_set_manager_ture : R.drawable.icon_dialog_set_manager_false;
|
||||
return new ViewItem(title, icon, () -> {
|
||||
//todo do 设置管理员
|
||||
if (AvRoomDataManager.get().isSuperAdmin()) {
|
||||
AvRoomModel.get().markManager(Long.parseLong(account), mark).subscribe();
|
||||
} else {
|
||||
IMNetEaseManager.get().markManagerListBySdk(roomId, account, mark, null);
|
||||
IMNetEaseManager.get().markManagerListBySdk(roomId, account, mark, new CallBack<ChatRoomMember>() {
|
||||
@Override
|
||||
public void onSuccess(ChatRoomMember data) {
|
||||
if (mark) {
|
||||
OtherExtKt.doToast(ResourcesKtxKt.getString(R.string._ver_23_setManagerAddSuccess, nick));
|
||||
} else {
|
||||
OtherExtKt.doToast(ResourcesKtxKt.getString(R.string._ver_23_setManagerRemoveSuccess, nick));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String error) {
|
||||
if (code == ServiceResult.CODE_ROOM_MANAGER_LIMIT) {
|
||||
DialogCommonUtil.showManagerLimit(context);
|
||||
} else {
|
||||
OtherExtKt.doToast(error);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//加入黑名单
|
||||
//加入黑名单 todo do
|
||||
public static ViewItem createMarkBlackListItem(final Context context,
|
||||
UserInfo userInfo,
|
||||
final String roomId,
|
||||
final String account,
|
||||
String nick) {
|
||||
return new ViewItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_015), R.drawable.icon_dialog_mark_black_list, () -> {
|
||||
if (VipHelper.notKick(userInfo)) {
|
||||
ToastUtils.show(ResUtil.getString(R.string.vipPower,userInfo.getUserVipInfoVO().getVipLevel()));
|
||||
return;
|
||||
}
|
||||
int roomBlackListSize = 200;
|
||||
InitInfo initInfo = InitialModel.get().getCacheInitInfo();
|
||||
if (initInfo != null && initInfo.getRoomBlackListSize() != 0) {
|
||||
@@ -436,7 +475,7 @@ public class ButtonItemFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉黑
|
||||
* 拉黑 todo do
|
||||
*/
|
||||
public static ButtonItem createAddToBlackListItem(DialogManager dialogManager, String account) {
|
||||
return new ButtonItem(ResUtil.getString(R.string.me_block), () -> {
|
||||
@@ -446,9 +485,6 @@ public class ButtonItemFactory {
|
||||
public void onOk() {
|
||||
NimFriendModel.get().addToBlackList(account)
|
||||
.subscribe((aBoolean, throwable) -> {
|
||||
// Toast.makeText(BasicConfig.INSTANCE.getAppContext(),
|
||||
// (throwable == null) ? ResUtil.getString(R.string.erban_avroom_buttonitemfactory_032) : ResUtil.getString(R.string.erban_avroom_buttonitemfactory_033),
|
||||
// Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort((throwable == null) ? ResUtil.getString(R.string.erban_avroom_buttonitemfactory_034) : ResUtil.getString(R.string.erban_avroom_buttonitemfactory_035));
|
||||
});
|
||||
}
|
||||
@@ -463,28 +499,28 @@ public class ButtonItemFactory {
|
||||
return new ButtonItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_036), () -> UIHelper.showReportPage(context, uid, reportType));
|
||||
}
|
||||
|
||||
public static List<ViewItem> createMiniWorldGroupButtonItems(
|
||||
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());
|
||||
return buttonItems;
|
||||
}
|
||||
// public static List<ViewItem> createMiniWorldGroupButtonItems(
|
||||
// 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());
|
||||
// return buttonItems;
|
||||
// }
|
||||
}
|
||||
|
@@ -39,27 +39,6 @@ import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.chwl.app.notify.RoomNotifyManager;
|
||||
import com.chwl.app.ui.webview.baishun.BaiShunGameWebFragment;
|
||||
import com.chwl.app.ui.webview.baishun.IBaiShunGameListener;
|
||||
import com.chwl.core.manager.AudioEngineManager;
|
||||
import com.chwl.library.widget.SVGAView;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterDataBean;
|
||||
import com.chwl.core.room.game.bean.BaiShunGameConfig;
|
||||
import com.chwl.core.support.room.AudioRoomContext;
|
||||
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;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.dialog.NewUserGiftDialog;
|
||||
import com.chwl.app.avroom.dialog.SingleRoomTipDialog;
|
||||
@@ -72,18 +51,23 @@ import com.chwl.app.avroom.presenter.HomePartyPresenter;
|
||||
import com.chwl.app.avroom.view.IAvRoomView;
|
||||
import com.chwl.app.avroom.widget.VerticalViewPagerAdapter;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.app.common.widget.CircleImageView;
|
||||
import com.chwl.app.common.widget.CustomImageSpan;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.home.dialog.HelloMessageDialog;
|
||||
import com.chwl.app.notify.GlobalNotifyManager;
|
||||
import com.chwl.app.notify.RoomNotifyManager;
|
||||
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.baishun.BaiShunGameWebFragment;
|
||||
import com.chwl.app.ui.webview.baishun.IBaiShunGameListener;
|
||||
import com.chwl.app.ui.webview.baishun.LeaderccGameWebFragment;
|
||||
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.RoomBoomManager;
|
||||
import com.chwl.app.utils.UserUtils;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.DemoCache;
|
||||
@@ -104,18 +88,20 @@ import com.chwl.core.im.custom.bean.RoomPkBean;
|
||||
import com.chwl.core.im.custom.bean.TarotAttachment;
|
||||
import com.chwl.core.im.custom.bean.TarotMsgBean;
|
||||
import com.chwl.core.initial.InitialModel;
|
||||
import com.chwl.core.manager.AudioEngineManager;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.module_hall.hall.HallModel;
|
||||
import com.chwl.core.module_hall.hall.bean.SuperAdminInfo;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterDataBean;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterHuntingResult;
|
||||
import com.chwl.core.monsterhunting.bean.MonsterInfo;
|
||||
import com.chwl.core.monsterhunting.manager.MonsterDataManager;
|
||||
import com.chwl.core.noble.bean.AllServiceGiftProtocol;
|
||||
import com.chwl.core.noble.bean.NobleInfo;
|
||||
import com.chwl.core.noble.NobleResourceType;
|
||||
import com.chwl.core.noble.NobleUtil;
|
||||
import com.chwl.core.noble.bean.AllServiceGiftProtocol;
|
||||
import com.chwl.core.noble.bean.NobleInfo;
|
||||
import com.chwl.core.patriarch.event.CloseMinRoomEvent;
|
||||
import com.chwl.core.patriarch.event.ImPushMsgPmLimitTimeEvent;
|
||||
import com.chwl.core.patriarch.event.PmDismissAllLimitDialogEvent;
|
||||
@@ -128,21 +114,40 @@ import com.chwl.core.room.dragonball.DragonBallModel;
|
||||
import com.chwl.core.room.event.FinishAvRoomEvent;
|
||||
import com.chwl.core.room.event.RoomExitEvent;
|
||||
import com.chwl.core.room.event.RoomTaskTipsEvent;
|
||||
import com.chwl.core.room.game.bean.BaiShunGameConfig;
|
||||
import com.chwl.core.room.pk.event.PKStateEvent;
|
||||
import com.chwl.core.super_admin.util.SAdminOptUtil;
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.support.room.AudioRoomContext;
|
||||
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.treasurefairy.bean.FairyMsgInfoBean;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.core.utils.LogUtils;
|
||||
import com.chwl.core.utils.StringFormatUtils;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.library.language.LanguageHelper;
|
||||
import com.chwl.library.rxbus.RxBus;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.chwl.library.utils.UIUtils;
|
||||
import com.chwl.library.widget.SVGAView;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.NIMSDK;
|
||||
import com.netease.nimlib.sdk.Observer;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.netease.nimlib.sdk.msg.model.BroadcastMessage;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
@@ -232,6 +237,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
private RoomNotifyManager roomNotify;
|
||||
|
||||
private BaiShunGameWebFragment baiShunGameFragment;
|
||||
private LeaderccGameWebFragment leaderccGameFragment;
|
||||
|
||||
public static void start(Context context, long roomUid) {
|
||||
startForFromType(context, roomUid, FROM_TYPE_NORMAL, null, null);
|
||||
@@ -302,6 +308,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
public static void setBackBg(Context context, RoomInfo roomInfo, SVGAImageView svgaRoomBg, String[] bgPicture) {
|
||||
if (roomInfo != null && svgaRoomBg != null) {
|
||||
if (!StringFormatUtils.isBlank(roomInfo.getBackPic())) {
|
||||
@@ -428,6 +435,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
} else {
|
||||
roomUid = intent.getLongExtra(Constants.ROOM_UID, 0);
|
||||
}
|
||||
OtherExtKt.doLog("initIntentExtra 进房 fromType = "+fromType);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -508,6 +516,9 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
if (UserUtils.getUserInfo().isFirstCharge()) {
|
||||
getMvpPresenter().checkFirstCharge();
|
||||
}
|
||||
LogUtils.d("roomLog RoomBoomManager 第二次进 ");
|
||||
RoomBoomManager.INSTANCE.setMRoomUid(AvRoomDataManager.get().getRoomUid());
|
||||
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent().setEvent(RoomEvent.MSG_SELF_ENTER_ROOM));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -522,6 +533,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
}
|
||||
});
|
||||
roomNotify.start();
|
||||
AvRoomDataManager.get().hasAvRoomAct = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -752,7 +764,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
if (avatarBg == null || avatar == null || nick == null) return;
|
||||
if (userInfo != null) {
|
||||
ImageLoadUtils.loadImageWithBlurTransformation(this, userInfo.getAvatar(), avatarBg);
|
||||
ImageLoadUtils.loadBigAvatar(this, userInfo.getAvatar(), avatar, false);
|
||||
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), avatar);
|
||||
Drawable badgeDrawable = null;
|
||||
if (userInfo.getNobleInfo() != null) {
|
||||
// 勋章
|
||||
@@ -815,7 +827,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
public void exitRoom(RoomInfo currentRoomInfo) {
|
||||
if (currentRoomInfo != null && currentRoomInfo.getUid() == roomUid) {
|
||||
finish();
|
||||
AudioEngineManager.get().setNotRecord(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -859,6 +870,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
if (!justClosePage) {
|
||||
getMvpPresenter().exitRoom();
|
||||
}
|
||||
AudioEngineManager.get().setNotRecord(false);
|
||||
finish();
|
||||
}
|
||||
|
||||
@@ -875,6 +887,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
AvRoomDataManager.get().hasAvRoomAct = false;
|
||||
//关闭这么多弹窗,鬼知道哪个出问题了,简单的try catch下
|
||||
try {
|
||||
// 确保关闭 dialog,避免出现 leak window 异常
|
||||
@@ -915,6 +928,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
svgaCache.clear();
|
||||
}
|
||||
svgaCache = null;
|
||||
GlobalNotifyManager.INSTANCE.clearQueue();
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -1074,6 +1088,11 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
DemoCache.saveNewUserChargeGift(1);
|
||||
}
|
||||
dismissLoadingDialog();
|
||||
|
||||
LogUtils.d("roomLog RoomBoomManager 第一次进 ");
|
||||
RoomBoomManager.INSTANCE.setMRoomUid(AvRoomDataManager.get().getRoomUid());
|
||||
IMNetEaseManager.get().getChatRoomEventObservable().onNext(new RoomEvent().setEvent(RoomEvent.MSG_SELF_ENTER_ROOM));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1494,6 +1513,24 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
getSupportFragmentManager().beginTransaction().add(R.id.layout_baishun_game, baiShunGameFragment).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
public void showLeaderccGame(String url, BaiShunGameConfig config) {
|
||||
closeBaiShunGame();
|
||||
StringBuffer newUrl = new StringBuffer(url);
|
||||
newUrl.append("&uid="+AuthModel.get().getCurrentUid());
|
||||
newUrl.append("&token="+config.getCode());
|
||||
newUrl.append("&lang=").append(LanguageHelper.INSTANCE.getH5GameLeaderccLan());
|
||||
newUrl.append("&roomid=").append(AvRoomDataManager.get().getRoomId());
|
||||
leaderccGameFragment = LeaderccGameWebFragment.Companion.newInstance(newUrl.toString(), config);
|
||||
leaderccGameFragment.setListener(new IBaiShunGameListener() {
|
||||
@Override
|
||||
public void onGameClose() {
|
||||
closeBaiShunGame();
|
||||
}
|
||||
});
|
||||
findViewById(R.id.layout_baishun_game).setVisibility(VISIBLE);
|
||||
getSupportFragmentManager().beginTransaction().add(R.id.layout_baishun_game, leaderccGameFragment).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
private boolean closeBaiShunGame() {
|
||||
boolean isClose = false;
|
||||
if (baiShunGameFragment != null) {
|
||||
@@ -1502,8 +1539,15 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
isClose = true;
|
||||
}
|
||||
}
|
||||
if (leaderccGameFragment != null) {
|
||||
if (leaderccGameFragment.isAdded()) {
|
||||
getSupportFragmentManager().beginTransaction().remove(leaderccGameFragment).commitAllowingStateLoss();
|
||||
isClose = true;
|
||||
}
|
||||
}
|
||||
findViewById(R.id.layout_baishun_game).setVisibility(View.GONE);
|
||||
baiShunGameFragment = null;
|
||||
leaderccGameFragment = null;
|
||||
return isClose;
|
||||
}
|
||||
}
|
@@ -8,9 +8,6 @@ import android.view.View;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.RoomNormalListAdapter;
|
||||
import com.chwl.app.avroom.presenter.RoomBlackPresenter;
|
||||
@@ -30,6 +27,9 @@ import com.chwl.library.coremanager.CoreEvent;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
@@ -99,7 +99,7 @@ public class RoomBlackListActivity extends BaseMvpActivity<IRoomBlackView, RoomB
|
||||
public void accept(String s, String error) {
|
||||
super.accept(s, error);
|
||||
if (error == null) {
|
||||
toast(ResUtil.getString(R.string.avroom_activity_roomblacklistactivity_04));
|
||||
toast(ResUtil.getString(R.string.doSuccess));
|
||||
loadData();
|
||||
} else {
|
||||
toast(error);
|
||||
|
@@ -7,13 +7,6 @@ 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;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.RoomInviteAdapter;
|
||||
import com.chwl.app.avroom.presenter.RoomInvitePresenter;
|
||||
@@ -21,11 +14,18 @@ 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.RoomOnlineUserBean;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -130,11 +130,20 @@ public class RoomInviteActivity extends BaseMvpActivity<IRoomInviteView, RoomInv
|
||||
|
||||
@Override
|
||||
public void onRequestMemberByPageSuccess(List<ChatRoomMember> memberList, int page) {
|
||||
|
||||
// Iterator<ChatRoomMember> iterator = memberList.iterator();
|
||||
// while (iterator.hasNext()) {
|
||||
// RoomOnlineUserBean next = iterator.next();
|
||||
// if (next.isSuperAdmin()) {
|
||||
// iterator.remove();
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
mPage = page;
|
||||
if (mPage == Constants.PAGE_START) {
|
||||
List<ChatRoomMember> chatRoomMemberList = mRoomInviteAdapter.getChatRoomMemberList();
|
||||
if (!ListUtils.isListEmpty(chatRoomMemberList))
|
||||
chatRoomMemberList.clear();
|
||||
if (!ListUtils.isListEmpty(chatRoomMemberList)) chatRoomMemberList.clear();
|
||||
mRefreshLayout.finishRefresh(0);
|
||||
if (ListUtils.isListEmpty(memberList)) {
|
||||
showNoData(ResUtil.getString(R.string.avroom_activity_roominviteactivity_02));
|
||||
|
@@ -8,19 +8,21 @@ import android.view.View;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.RoomNormalListAdapter;
|
||||
import com.chwl.app.avroom.presenter.RoomManagerPresenter;
|
||||
import com.chwl.app.avroom.view.IRoomManagerView;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.common.util.DialogCommonUtil;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.core.bean.response.ServiceResult;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
@@ -140,7 +142,9 @@ public class RoomManagerListActivity extends BaseMvpActivity<IRoomManagerView, R
|
||||
|
||||
@Override
|
||||
public void markManagerListFail(int code, String error) {
|
||||
|
||||
if (code == ServiceResult.CODE_ROOM_MANAGER_LIMIT) {
|
||||
DialogCommonUtil.showManagerLimit(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -1,8 +1,11 @@
|
||||
package com.chwl.app.avroom.activity;
|
||||
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
@@ -11,23 +14,21 @@ import android.widget.CompoundButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.utils.net.DontWarnObserver;
|
||||
import com.chwl.core.utils.net.RxHelper;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.application.App;
|
||||
import com.chwl.app.avroom.dialog.SelectLabelDialog;
|
||||
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.chwl.app.avroom.presenter.RoomSettingPresenter;
|
||||
import com.chwl.app.avroom.view.IRoomSettingView;
|
||||
import com.chwl.app.avroom.widget.EditRoomTitleDialog;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.base.PhotoPickActivity;
|
||||
import com.chwl.app.common.util.BitmapUtil;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.databinding.ActivityRoomSettingBinding;
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity;
|
||||
@@ -36,6 +37,7 @@ import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.auth.event.KickOutEvent;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.file.FileModel;
|
||||
import com.chwl.core.im.custom.bean.CustomAttachment;
|
||||
import com.chwl.core.im.custom.bean.RoomNoticeAttachment;
|
||||
import com.chwl.core.kick.KickModel;
|
||||
@@ -51,14 +53,28 @@ import com.chwl.core.room.giftvalue.helper.GiftValueMrg;
|
||||
import com.chwl.core.room.model.AvRoomModel;
|
||||
import com.chwl.core.room.model.RoomSettingModel;
|
||||
import com.chwl.core.room.queue.bean.MicMemberInfo;
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.utils.LogUtils;
|
||||
import com.chwl.core.utils.myutil.MyUriUtils;
|
||||
import com.chwl.core.utils.net.BeanObserver;
|
||||
import com.chwl.core.utils.net.DontWarnObserver;
|
||||
import com.chwl.core.utils.net.RxHelper;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.common.file.FileHelper;
|
||||
import com.chwl.library.common.util.PhotoCompressCallback;
|
||||
import com.chwl.library.common.util.PhotoCompressUtil;
|
||||
import com.chwl.library.net.rxnet.callback.CallBack;
|
||||
import com.chwl.library.utils.CommonUtils;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.chwl.library.utils.codec.DESUtils;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.yalantis.ucrop.UCrop;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
@@ -71,14 +87,14 @@ import java.util.Objects;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import kotlinx.coroutines.Job;
|
||||
|
||||
/**
|
||||
* @author chenran
|
||||
* @date 2017/9/26
|
||||
*/
|
||||
@CreatePresenter(RoomSettingPresenter.class)
|
||||
public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomSettingPresenter>
|
||||
implements View.OnClickListener, IRoomSettingView {
|
||||
public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomSettingPresenter> implements View.OnClickListener, IRoomSettingView {
|
||||
|
||||
private RelativeLayout managerLayout;
|
||||
private RelativeLayout blackLayout;
|
||||
@@ -98,6 +114,13 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
|
||||
private ActivityRoomSettingBinding binding;
|
||||
|
||||
private Uri mUri;
|
||||
private Job mJob;
|
||||
private final int PERMISSION_CODE_STORAGE = 12;
|
||||
private final int REQUEST_CODE_OPEN_PHOTO_PROVIDER = 111; // 从相册中选择
|
||||
private final int REQUEST_CODE_STORAGE = 42;
|
||||
private final int MAX_BITMAP_SIZE = 100 * 1024 * 1024; // 剪切的图片最大为100 MB
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, RoomSettingActivity.class);
|
||||
context.startActivity(intent);
|
||||
@@ -135,17 +158,22 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
binding.layoutSingleRoomSort.setVisibility(
|
||||
AvRoomDataManager.get().isRoomOwner() && AvRoomDataManager.get().isSingleRoom()
|
||||
? View.VISIBLE : View.GONE);
|
||||
binding.setRoomAvatar.setVisibility((AvRoomDataManager.get().isRoomOwner() || AvRoomDataManager.get().isRoomAdmin()) ? View.VISIBLE : View.GONE);
|
||||
//调用更改房间信息接口后,会发消息ROOM_INFO_UPDATE,在此处接收ui改动
|
||||
IMNetEaseManager.get().getChatRoomEventObservable()
|
||||
.compose(bindToLifecycle())
|
||||
.filter(roomEvent -> roomEvent.getEvent() == RoomEvent.ROOM_INFO_UPDATE)
|
||||
.subscribe(roomEvent -> updateRoomInfoView());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
if (mJob != null) {
|
||||
mJob.cancel(null);
|
||||
}
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
@@ -198,7 +226,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
}
|
||||
}
|
||||
|
||||
private void loadGiftValueState(){
|
||||
private void loadGiftValueState() {
|
||||
if (SuperAdminUtil.isSuperAdmin()) {
|
||||
binding.layoutGiftValue.setVisibility(View.GONE);
|
||||
return;
|
||||
@@ -260,8 +288,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
}
|
||||
|
||||
private void save(final String name, final String pwd, String label) {
|
||||
save(name, pwd, label, false,
|
||||
roomInfo.isHasAnimationEffect());
|
||||
save(name, null, pwd, label, false, roomInfo.isHasAnimationEffect());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -273,7 +300,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
* @param isUpdateGiftEffect 是否改动了礼物特效
|
||||
* @param giftEffect 是否开启礼物特效
|
||||
*/
|
||||
private void save(final String name, final String pwd, String label, boolean isUpdateGiftEffect,
|
||||
private void save(final String name, final String avatar, final String pwd, String label, boolean isUpdateGiftEffect,
|
||||
boolean giftEffect) {
|
||||
String desc = null;
|
||||
getDialogManager().showProgressDialog(this, ResUtil.getString(R.string.avroom_activity_roomsettingactivity_06));
|
||||
@@ -293,13 +320,14 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
@Override
|
||||
public void onSuccess(RoomInfo info) {
|
||||
getDialogManager().dismissDialog();
|
||||
ToastUtils.show(R.string.avroom_activity_roommanagerlistactivity_013);
|
||||
if (isUpdateGiftEffect && !giftEffect) {
|
||||
getMvpPresenter().updateGiftEffect(info);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (AvRoomDataManager.get().isRoomOwner()) {
|
||||
model.updateRoomInfo(name, desc, roomInfo.getIntroduction(), pwd, label, id,
|
||||
model.updateRoomInfo(name, avatar, desc, roomInfo.getIntroduction(), pwd, label, id,
|
||||
AuthModel.get().getCurrentUid(),
|
||||
AuthModel.get().getTicket(),
|
||||
giftEffect,
|
||||
@@ -311,7 +339,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(observer);
|
||||
} else if (AvRoomDataManager.get().isRoomAdmin()) {
|
||||
model.updateByAdmin(roomInfo.getUid(), name, desc, roomInfo.getIntroduction(), pwd, label, id,
|
||||
model.updateByAdmin(roomInfo.getUid(), name, avatar, desc, roomInfo.getIntroduction(), pwd, label, id,
|
||||
AuthModel.get().getCurrentUid(),
|
||||
AuthModel.get().getTicket(),
|
||||
giftEffect,
|
||||
@@ -404,13 +432,13 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
|
||||
@Override
|
||||
public void onOk() {
|
||||
save(null, null, null, true, false);
|
||||
save(null, null, null, null, true, false);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
//开启礼物特效
|
||||
save(null, null, null, true, true);
|
||||
save(null, null, null, null, true, true);
|
||||
break;
|
||||
case R.id.switch_screen:
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
@@ -552,11 +580,19 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
case R.id.switch_gift_value:
|
||||
switchGiftValue();
|
||||
break;
|
||||
case R.id.setRoomAvatar:
|
||||
checkStoragePermission();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
private void switchGiftValue(){
|
||||
private void checkStoragePermission() {
|
||||
PhotoPickActivity.start(this, PhotoPickActivity.IMG);
|
||||
}
|
||||
|
||||
|
||||
private void switchGiftValue() {
|
||||
if (AvRoomDataManager.get().isCpRoom()) {
|
||||
return;
|
||||
}
|
||||
@@ -894,4 +930,104 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
imageView.setImageResource(isSelected ?
|
||||
R.drawable.icon_room_set_lock_true : R.drawable.icon_room_set_lock_false);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == RESULT_OK) {
|
||||
switch (requestCode) {
|
||||
case PhotoPickActivity.PICK_ACT_RESULT:
|
||||
if (data != null) {
|
||||
Uri uri = data.getData();
|
||||
mUri = Uri.parse("file://" + FileHelper.getRootCacheDir().getPath() + "/" + System.nanoTime() + ".jpg");
|
||||
if (uri != null && mUri != null) {
|
||||
boolean isCopy = MyUriUtils.INSTANCE.copyFileToUrl(this, uri, mUri);
|
||||
if (isCopy) {
|
||||
crop(mUri, 1, mUri);
|
||||
} else {
|
||||
ToastUtils.show(R.string.exception_try_again);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case UCrop.REQUEST_CROP:
|
||||
if (mUri != null && mUri.getPath() != null) {
|
||||
try {
|
||||
if (mJob != null) {
|
||||
mJob.cancel(null);
|
||||
}
|
||||
mJob = PhotoCompressUtil.compress(
|
||||
this,
|
||||
mUri.getPath(),
|
||||
PhotoCompressUtil.getCompressCachePath("roomAvatar"), new PhotoCompressCallback() {
|
||||
@Override
|
||||
public void onSuccess(@NonNull String compressedImg) {
|
||||
getDialogManager().showProgressDialog(RoomSettingActivity.this, ResUtil.getString(R.string.ui_user_userinfomodifyactivity_09));
|
||||
FileModel.get()
|
||||
.uploadFile(compressedImg)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((url, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onUploadFail(throwable);
|
||||
} else {
|
||||
onUpload(url);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(@NonNull Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
mJob.start();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 第三方图片裁剪框架Ucrop
|
||||
*/
|
||||
private void crop(Uri sourceUri, long sourceSize, Uri destinationUri) {
|
||||
if (sourceUri == null || destinationUri == null) {
|
||||
return;
|
||||
} //防止too large导致oom,大于100m不处理,内存大小
|
||||
if (BitmapUtil.getSdBitmapSize(sourceUri) >= MAX_BITMAP_SIZE) {
|
||||
toast(R.string.text_bitmap_too_large);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
UCrop.Options options = new UCrop.Options();
|
||||
options.setCompressionQuality(100);
|
||||
options.setShowCropGrid(false);
|
||||
options.setToolbarColor(ContextCompat.getColor(App.gContext, android.R.color.black));
|
||||
options.setStatusBarColor(ContextCompat.getColor(App.gContext, android.R.color.black));
|
||||
options.setHideBottomControls(true);
|
||||
options.setCompressionFormat(Bitmap.CompressFormat.JPEG);
|
||||
options.setToolbarCancelDrawable(R.drawable.user_ucrop_ic_closs);
|
||||
options.setToolbarCropDrawable(R.drawable.user_ucrop_ic_sure);
|
||||
options.setToolbarWidgetColor(ContextCompat.getColor(App.gContext, R.color.color_white));
|
||||
UCrop.of(sourceUri, destinationUri).withOptions(options).withAspectRatio(1f, 1f).withMaxResultSize(800, 800).start(this);
|
||||
|
||||
}
|
||||
|
||||
private void onUpload(String url) {
|
||||
LogUtils.d(" 请求接口 更新房间封面 url = " + url);
|
||||
save(null, url, null, null, false, roomInfo.isHasAnimationEffect());
|
||||
}
|
||||
|
||||
private void onUploadFail(Throwable throwable) {
|
||||
toast(ResUtil.getString(R.string.ui_user_userinfomodifyactivity_08) + ":" + throwable.getMessage());
|
||||
getDialogManager().dismissDialog();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -119,7 +119,7 @@ public class RoomTitleEditActivity extends BaseBindingActivity<ActivityRoomTitle
|
||||
String ticket = AuthModel.get().getTicket();
|
||||
if (AvRoomDataManager.get().isRoomOwner()) {
|
||||
mDialogManager.showProgressDialog(this);
|
||||
Disposable disposable = roomSettingModel.updateRoomInfo(info.title, desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
|
||||
Disposable disposable = roomSettingModel.updateRoomInfo(info.title,null,desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
|
||||
ticket, info.isHasAnimationEffect(), info.getAudioQuality(), info.getLimitType(),info.isPureMode(), info.getType(),
|
||||
info.getMgId())
|
||||
.subscribe(this);
|
||||
@@ -128,7 +128,7 @@ public class RoomTitleEditActivity extends BaseBindingActivity<ActivityRoomTitle
|
||||
|
||||
} else if (AvRoomDataManager.get().isRoomAdmin()) {
|
||||
mDialogManager.showProgressDialog(this);
|
||||
Disposable disposable = roomSettingModel.updateByAdmin(info.getUid(), info.title, desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
|
||||
Disposable disposable = roomSettingModel.updateByAdmin(info.getUid(), info.title,null, desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
|
||||
ticket, info.isHasAnimationEffect(), info.getAudioQuality(),info.isPureMode())
|
||||
.subscribe(this);
|
||||
|
||||
|
@@ -1,43 +1,70 @@
|
||||
package com.chwl.app.avroom.activity
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseViewBindingActivity
|
||||
import com.chwl.app.bindadapter.BaseBindingAdapter
|
||||
import com.chwl.app.bindadapter.BaseBindingViewHolder
|
||||
import com.chwl.app.databinding.ItemRoomModeBinding
|
||||
import com.chwl.app.databinding.RoomTypeSwitchActivityBinding
|
||||
import com.chwl.app.home.helper.OpenRoomHelper
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.utils.loadFromUrl
|
||||
import com.chwl.app.ui.webview.CommonWebViewActivity
|
||||
import com.chwl.app.utils.NumberUtils
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.gift.bean.RoomLevelInfo
|
||||
import com.chwl.core.gift.bean.RoomMicDress
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.doToast
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.common.util.toColor
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import com.example.lib_utils.ktx.singleClick
|
||||
import com.netease.nim.uikit.StatusBarUtil
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import io.reactivex.Single
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Query
|
||||
|
||||
|
||||
//切换麦位页面
|
||||
class RoomTypeSwitchActivity : BaseViewBindingActivity<RoomTypeSwitchActivityBinding>() {
|
||||
|
||||
private var currentType: Int? = null
|
||||
|
||||
private var selectType: Int? = null
|
||||
|
||||
companion object {
|
||||
fun isCanSwitch(): Boolean {
|
||||
if (SuperAdminUtil.isSuperAdmin()) {
|
||||
return false
|
||||
}
|
||||
if (AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_HOME_PARTY && AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_PARTY && AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_REVELRY) {
|
||||
|
||||
if (AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_HOME_PARTY
|
||||
&& AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_PARTY
|
||||
&& AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_REVELRY
|
||||
&& AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_19_ROOM
|
||||
&& AvRoomDataManager.get().roomType != RoomInfo.ROOMTYPE_20_ROOM
|
||||
) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (AvRoomDataManager.get().isDatingMode) {
|
||||
return false
|
||||
}
|
||||
|
||||
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo
|
||||
if (roomInfo == null || roomInfo.isPermitRoom == 1) {
|
||||
return false
|
||||
}
|
||||
|
||||
return AvRoomDataManager.get().isManager
|
||||
}
|
||||
|
||||
@@ -46,97 +73,324 @@ class RoomTypeSwitchActivity : BaseViewBindingActivity<RoomTypeSwitchActivityBin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private var mCurrentMicType: Int? = null
|
||||
private var mCurrentMicSkins: Int? = null
|
||||
private var mCurrentMicEffects: Int? = null
|
||||
private var mCurrentLevel = 0
|
||||
|
||||
private val mMicTypeAdapter = RoomModeAdapter()
|
||||
private val mMicSkinsAdapter = RoomModeAdapter()
|
||||
private val mMicEffectsAdapter = RoomModeAdapter()
|
||||
|
||||
|
||||
private var mTypeSet = true
|
||||
private var micSkinsEffectsSet = true
|
||||
|
||||
override fun init() {
|
||||
initWhiteTitleBar(ResUtil.getString(R.string.room_type))
|
||||
initEvent()
|
||||
this.currentType = AvRoomDataManager.get().mCurrentRoomInfo?.type
|
||||
updateSelectView(currentType)
|
||||
|
||||
initView()
|
||||
initListener()
|
||||
initData()
|
||||
|
||||
}
|
||||
|
||||
private fun initEvent() {
|
||||
binding.tvSubmit.singleClick {
|
||||
selectType?.let {
|
||||
if (currentType != it) {
|
||||
trySwitchRoomType(it)
|
||||
private fun initView() {
|
||||
initDarkTitleBar(R.string.Room_Mode.getString())
|
||||
|
||||
setListView(binding.rvListType, mMicTypeAdapter)
|
||||
setListView(binding.rvListSkins, mMicSkinsAdapter)
|
||||
setListView(binding.rvListEffects, mMicEffectsAdapter)
|
||||
|
||||
}
|
||||
|
||||
|
||||
private fun initListener() {
|
||||
|
||||
binding.btnConfirm.click {
|
||||
switchRoomMicType()
|
||||
}
|
||||
|
||||
binding.btnMore.click {
|
||||
CommonWebViewActivity.start(this, UriProvider.getRoomLevelRule())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun initData() {
|
||||
val mCurrentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo
|
||||
mCurrentMicType = mCurrentRoomInfo?.type
|
||||
|
||||
getBoomLevelInfo(AvRoomDataManager.get().roomUid).compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
|
||||
if (it != null) {
|
||||
|
||||
val levelExp = it.nextLevelExp - it.currentLevelExp
|
||||
val proExp = it.roomVal - it.currentLevelExp
|
||||
val nexExp = levelExp - proExp
|
||||
|
||||
binding.proExp.max = levelExp.toInt()
|
||||
binding.proExp.progress = proExp.toInt()
|
||||
|
||||
|
||||
binding.avatar.load(mCurrentRoomInfo?.avatar)
|
||||
binding.nick.text = mCurrentRoomInfo?.title
|
||||
binding.levelIcon.load(it.getCurrentLevelIcon())
|
||||
binding.roomValue.text = R.string.Room_Value_s.getString(it.roomVal.toLong().toString())
|
||||
binding.roomAdmin.text = R.string.Room_Admin_s.getString(it.currentManagerNum,it.managerLimitNum)
|
||||
binding.currentLevel.text = R.string.LV_s.getString(it.currentLevel)
|
||||
binding.nextLevel.text = R.string.LV_s.getString(it.nextLevel)
|
||||
binding.nextExp.text = R.string.Next_LV_EXP_s.getString(NumberUtils.format(nexExp))
|
||||
|
||||
if (it.nextLevel == 0) {
|
||||
binding.nextExp.setVis(false,true)
|
||||
binding.proExp.max = 1
|
||||
binding.proExp.progress = 1
|
||||
binding.nextLevel.text = R.string.LV_s.getString(it.currentLevel)
|
||||
binding.currentLevel.text = R.string.LV_s.getString(it.currentLevel-1)
|
||||
}
|
||||
|
||||
|
||||
mCurrentMicSkins = it.usedMicSkinId
|
||||
mCurrentMicEffects = it.usedMicEffectId
|
||||
mCurrentLevel = it.currentLevel
|
||||
|
||||
val typeArr = mutableListOf(
|
||||
RoomInfo.ROOMTYPE_HOME_PARTY,
|
||||
RoomInfo.ROOMTYPE_PARTY,
|
||||
RoomInfo.ROOMTYPE_REVELRY,
|
||||
RoomInfo.ROOMTYPE_20_ROOM,
|
||||
RoomInfo.ROOMTYPE_19_ROOM,
|
||||
)
|
||||
val typeNArr = arrayOf(
|
||||
R.drawable.ic_room_mic_type_9_n,
|
||||
R.drawable.ic_room_mic_type_10_n,
|
||||
R.drawable.ic_room_mic_type_15_n,
|
||||
R.drawable.ic_room_mic_type_20_n,
|
||||
R.drawable.ic_room_mic_type_19_n,
|
||||
)
|
||||
val typeSArr = arrayOf(
|
||||
R.drawable.ic_room_mic_type_9_s,
|
||||
R.drawable.ic_room_mic_type_10_s,
|
||||
R.drawable.ic_room_mic_type_15_s,
|
||||
R.drawable.ic_room_mic_type_20_s,
|
||||
R.drawable.ic_room_mic_type_19_s,
|
||||
)
|
||||
val nameArr = arrayOf(
|
||||
R.string.Classic,
|
||||
R.string.Party,
|
||||
R.string.Carnival,
|
||||
R.string.Celebration,
|
||||
R.string.Unique,
|
||||
)
|
||||
|
||||
|
||||
if (!it.isHasUnique) {
|
||||
typeArr.remove(RoomInfo.ROOMTYPE_19_ROOM)
|
||||
typeArr.remove(RoomInfo.ROOMTYPE_20_ROOM)
|
||||
}
|
||||
|
||||
val typeData = mutableListOf<RoomMicDress>()
|
||||
typeArr.filterIndexed { index, micType ->
|
||||
typeData.add(RoomMicDress().apply {
|
||||
id = micType
|
||||
dressType = RoomMicDress.RoomDressType.T_Type
|
||||
isSelect = micType == mCurrentMicType
|
||||
normalRes = typeNArr[index]
|
||||
selectRes = typeSArr[index]
|
||||
name = nameArr[index].getString()
|
||||
})
|
||||
}
|
||||
mMicTypeAdapter.setNewData(typeData as List<RoomMicDress>?)
|
||||
|
||||
if (it.getMicSkins().isVerify()) {
|
||||
val micSkins = it.getMicSkins()
|
||||
micSkins.add(0, RoomMicDress().apply {
|
||||
id = 0
|
||||
normalRes = R.drawable.icon_room_up_micro
|
||||
})
|
||||
micSkins.forEach { it.isSelect = (it.id == mCurrentMicSkins) }
|
||||
mMicSkinsAdapter.setNewData(micSkins)
|
||||
}
|
||||
|
||||
if (it.getMicEffects().isVerify()) {
|
||||
val micEffects = it.getMicEffects()
|
||||
micEffects.add(0, RoomMicDress().apply {
|
||||
id = 0
|
||||
normalRes = R.drawable.shape_463a26_circle
|
||||
})
|
||||
micEffects.forEach { it.isSelect = (it.id == mCurrentMicEffects) }
|
||||
mMicEffectsAdapter.setNewData(it.getMicEffects())
|
||||
}
|
||||
|
||||
}
|
||||
}.doOnError { it?.message?.doToast() }.subscribe()
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun setListView(rvList: RecyclerView, adapter: RoomModeAdapter) {
|
||||
adapter.setOnItemClickListener { adapter, view, position ->
|
||||
|
||||
val clickData = adapter?.data?.get(position)
|
||||
if (clickData != null && clickData is RoomMicDress){
|
||||
if (mCurrentLevel < clickData.reachLevel) {
|
||||
R.string.roomLevelErrorTips.doToast()
|
||||
return@setOnItemClickListener
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
adapter?.data?.forEachIndexed { index, feData ->
|
||||
if (feData is RoomMicDress) {
|
||||
feData.isSelect = index == position
|
||||
}
|
||||
}
|
||||
adapter?.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
rvList.layoutManager = GridLayoutManager(context, 3, RecyclerView.VERTICAL, false)
|
||||
rvList.adapter = adapter
|
||||
}
|
||||
|
||||
|
||||
private fun switchRoomMicType() {
|
||||
var typeId = -1
|
||||
var skinsId = -1
|
||||
var effectId = -1
|
||||
var isLevelError = false
|
||||
|
||||
mMicTypeAdapter.data?.forEach {
|
||||
if (it.isSelect) {
|
||||
typeId = it.id
|
||||
}
|
||||
}
|
||||
|
||||
mMicSkinsAdapter.data?.forEach {
|
||||
if (it.isSelect) {
|
||||
if (it.id > 0) {
|
||||
skinsId = it.id
|
||||
}
|
||||
if (mCurrentLevel < it.reachLevel) {
|
||||
isLevelError = true
|
||||
}
|
||||
}
|
||||
}
|
||||
addTypeSelectClick(binding.iv9, RoomInfo.ROOMTYPE_HOME_PARTY)
|
||||
addTypeSelectClick(binding.iv10, RoomInfo.ROOMTYPE_PARTY)
|
||||
addTypeSelectClick(binding.iv15, RoomInfo.ROOMTYPE_REVELRY)
|
||||
}
|
||||
|
||||
private fun addTypeSelectClick(view: View, type: Int) {
|
||||
view.setOnClickListener {
|
||||
updateSelectView(type)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateSelectView(type: Int?) {
|
||||
this.selectType = type
|
||||
val views = mapOf(
|
||||
RoomInfo.ROOMTYPE_HOME_PARTY to binding.iv9Border,
|
||||
RoomInfo.ROOMTYPE_PARTY to binding.iv10Border,
|
||||
RoomInfo.ROOMTYPE_REVELRY to binding.iv15Border
|
||||
)
|
||||
val displayRes = mapOf(
|
||||
RoomInfo.ROOMTYPE_HOME_PARTY to R.drawable.room_type_bg_9,
|
||||
RoomInfo.ROOMTYPE_PARTY to R.drawable.room_type_bg_10,
|
||||
RoomInfo.ROOMTYPE_REVELRY to R.drawable.room_type_bg_15
|
||||
)
|
||||
views.forEach {
|
||||
it.value.isVisible = it.key == type
|
||||
}
|
||||
val resId = displayRes.get(type)
|
||||
if (resId != null) {
|
||||
binding.ivSelected.setImageResource(resId)
|
||||
} else {
|
||||
binding.ivSelected.setImageDrawable(null)
|
||||
}
|
||||
if (type == currentType) {
|
||||
binding.tvSubmit.setText(R.string.room_type_using)
|
||||
} else {
|
||||
binding.tvSubmit.setText(R.string.room_type_use)
|
||||
}
|
||||
}
|
||||
|
||||
private fun trySwitchRoomType(type: Int) {
|
||||
val currentType = this.currentType
|
||||
if (currentType != null && currentType > type) {
|
||||
dialogManager.showOkCancelDialog(
|
||||
ResUtil.getString(R.string.switch_room_type_tips),
|
||||
ResUtil.getString(R.string.login_fragment_adduserinfofragment_04)
|
||||
) {
|
||||
requestSwitchRoomType(type)
|
||||
mMicEffectsAdapter.data?.forEach {
|
||||
if (it.isSelect) {
|
||||
if (it.id > 0) {
|
||||
effectId = it.id
|
||||
}
|
||||
if (mCurrentLevel < it.reachLevel) {
|
||||
isLevelError = true
|
||||
}
|
||||
}
|
||||
} else {
|
||||
requestSwitchRoomType(type)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private fun requestSwitchRoomType(type: Int) {
|
||||
dialogManager.showProgressDialog(context)
|
||||
OpenRoomHelper.updateRoomInfoRx(
|
||||
AvRoomDataManager.get().mCurrentRoomInfo,
|
||||
type,
|
||||
0
|
||||
).compose(bindToLifecycle()).subscribe({
|
||||
dialogManager.dismissDialog()
|
||||
finish()
|
||||
}, {
|
||||
SingleToastUtil.showToast(it.message)
|
||||
dialogManager.dismissDialog()
|
||||
})
|
||||
if (isLevelError) {
|
||||
R.string.roomLevelErrorTips.doToast()
|
||||
} else {
|
||||
|
||||
if ((typeId != -1 && typeId != mCurrentMicType) || (effectId != mCurrentMicEffects) || (skinsId != mCurrentMicSkins)) {
|
||||
dialogManager.showOkCancelDialog(
|
||||
ResUtil.getString(R.string.switch_room_type_tips),
|
||||
ResUtil.getString(R.string.login_fragment_adduserinfofragment_04)
|
||||
) {
|
||||
|
||||
binding.btnConfirm.post {
|
||||
mTypeSet = false
|
||||
dialogManager.showProgressDialog(context)
|
||||
|
||||
val newRoomInfo = RoomInfo()
|
||||
newRoomInfo.uid = AvRoomDataManager.get().roomUid
|
||||
newRoomInfo.type = typeId
|
||||
newRoomInfo.usedMicSkinId = skinsId
|
||||
newRoomInfo.usedMicEffectId = effectId
|
||||
|
||||
OpenRoomHelper.updateRoomInfoEx(newRoomInfo)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
mTypeSet = true
|
||||
dialogManager.dismissDialog()
|
||||
// val mCurrentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo
|
||||
// mCurrentRoomInfo?.type = typeId
|
||||
// mCurrentRoomInfo?.usedMicSkinId = skinsId
|
||||
// mCurrentRoomInfo?.usedMicEffectId = effectId
|
||||
finish()
|
||||
}
|
||||
.doOnError {
|
||||
SingleToastUtil.showToast(it.message)
|
||||
dialogManager.dismissDialog()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
finish()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun needSteepStateBar(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun setStatusBar() {
|
||||
super.setStatusBar()
|
||||
StatusBarUtil.transparencyBar(this)
|
||||
StatusBarUtil.StatusBarLightMode(this)
|
||||
override fun transparencyBar() = true
|
||||
|
||||
class RoomModeAdapter : BaseBindingAdapter<ItemRoomModeBinding, RoomMicDress>() {
|
||||
override fun convert(
|
||||
helper: BaseBindingViewHolder<ItemRoomModeBinding>,
|
||||
item: RoomMicDress
|
||||
) {
|
||||
helper?.binding?.let { binding ->
|
||||
binding.bg.changeStrikeColor(if (item.isSelect) "#ff8c03".toColor() else "#1b1b1d".toColor())
|
||||
binding.bg.changeSoildColor(if (item.isSelect) "#261800".toColor() else "#1b1b1d".toColor())
|
||||
binding.tvName.alpha = (if (item.isSelect) 1f else 0.5f)
|
||||
binding.tvName.setVis(item.dressType == RoomMicDress.RoomDressType.T_Type)
|
||||
binding.tvName.text = item.name
|
||||
|
||||
binding.ivType.setVis(false)
|
||||
binding.ivSkins.setVis(false)
|
||||
binding.ivEffect.setVis(false)
|
||||
|
||||
if (item.id == 0) {
|
||||
binding.ivSkins.setImageResource(item.normalRes)
|
||||
binding.ivSkins.setVis(true)
|
||||
} else {
|
||||
if (item.dressType == RoomMicDress.RoomDressType.T_Type) {
|
||||
binding.ivType.setImageResource(if (item.isSelect) item.selectRes else item.normalRes)
|
||||
binding.ivType.setVis(true)
|
||||
} else if (item.dressType == RoomMicDress.RoomDressType.T_Skin) {
|
||||
binding.ivSkins.load(item.normalMicUrl)
|
||||
binding.ivSkins.setVis(true)
|
||||
} else if (item.dressType == RoomMicDress.RoomDressType.T_Effects) {
|
||||
binding.ivEffect.setVis(true)
|
||||
binding.ivEffect.loadFromUrl(item.normalMicUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getBoomLevelInfo(roomUid: Long): Single<RoomLevelInfo> {
|
||||
return api.getBoomLevelInfo(roomUid)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private val api: Api = RxNet.create(Api::class.java);
|
||||
|
||||
interface Api {
|
||||
//房间 等级信息
|
||||
@GET("/room/level/info")
|
||||
fun getBoomLevelInfo(@Query("roomUid") roomUid: Long): Single<ServiceResult<RoomLevelInfo>>
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -7,32 +7,31 @@ import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.PopupWindow;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.utils.AvatarHelper;
|
||||
import com.chwl.library.widget.SVGAView;
|
||||
import com.chwl.core.utils.extension.StringExtensionKt;
|
||||
import com.coorchice.library.SuperTextView;
|
||||
import com.example.lib_utils.StringUtils2;
|
||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.common.widget.CircleImageView;
|
||||
import com.chwl.app.ui.utils.ImageLoadKt;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity;
|
||||
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.chwl.app.utils.AvatarHelper;
|
||||
import com.chwl.app.utils.RegexUtil;
|
||||
import com.chwl.app.utils.ResourceManager;
|
||||
import com.chwl.core.UriProvider;
|
||||
import com.chwl.core.bean.RoomMicInfo;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.decoration.headwear.bean.HeadWearInfo;
|
||||
import com.chwl.core.gift.bean.RoomMicDress;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.noble.NobleResourceType;
|
||||
import com.chwl.core.noble.NobleUtil;
|
||||
@@ -43,8 +42,14 @@ import com.chwl.core.room.pk.bean.PKTeamInfo;
|
||||
import com.chwl.core.room.queue.bean.MicMemberInfo;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.utils.ActivityUtil;
|
||||
import com.chwl.core.utils.extension.StringExtensionKt;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.config.BasicConfig;
|
||||
import com.chwl.library.widget.SVGAView;
|
||||
import com.coorchice.library.SuperTextView;
|
||||
import com.example.lib_utils.StringUtils2;
|
||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
|
||||
/**
|
||||
* @author xiaoyu
|
||||
@@ -61,6 +66,8 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
public static final String MICRO_TYPE_SINGLE = "single";
|
||||
public static final String MICRO_TYPE_PARTY = "party";
|
||||
public static final String MICRO_TYPE_REVELRY = "revelry";
|
||||
public static final String MICRO_TYPE_REVELRY_19 = "revelry_19";
|
||||
public static final String MICRO_TYPE_REVELRY_20 = "revelry_20";
|
||||
|
||||
protected static final int TYPE_KING = 2;
|
||||
protected static final int TYPE_BOSS = 1;
|
||||
@@ -140,12 +147,15 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
|
||||
public class NormalMicroViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
View rootView;
|
||||
|
||||
LinearLayout llNick;
|
||||
View microLayout;
|
||||
TextView tvNick;
|
||||
ImageView ivUpImage;
|
||||
ImageView ivLockImage;
|
||||
ImageView ivMuteImage;
|
||||
CircleImageView ivAvatar;
|
||||
ImageView ivAvatar;
|
||||
SVGAImageView ivHalo;
|
||||
|
||||
@Nullable
|
||||
@@ -160,8 +170,12 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
int position = TYPE_INVALID;
|
||||
int micPositionNameOffset = 2;
|
||||
|
||||
int micType = 0; //特殊麦位type , 麦位图片特殊处理
|
||||
|
||||
NormalMicroViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
rootView = itemView.findViewById(R.id.rootView);
|
||||
microLayout = itemView.findViewById(R.id.micro_layout);
|
||||
ivHalo = itemView.findViewById(R.id.iv_halo);
|
||||
ivUpImage = itemView.findViewById(R.id.up_image);
|
||||
ivLockImage = itemView.findViewById(R.id.lock_image);
|
||||
@@ -169,6 +183,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
ivAvatar = itemView.findViewById(R.id.avatar);
|
||||
ivHeadWear = itemView.findViewById(R.id.iv_head_wear);
|
||||
tvNick = itemView.findViewById(R.id.nick);
|
||||
llNick = itemView.findViewById(R.id.ll_nick);
|
||||
ivCharmLevelTag = itemView.findViewById(R.id.iv_charm_level_tag);
|
||||
ivKickGuard = itemView.findViewById(R.id.iv_kick_guard);
|
||||
|
||||
@@ -197,7 +212,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
}
|
||||
|
||||
void bind(RoomQueueInfo info, int position) {
|
||||
void bind(@NonNull RoomQueueInfo info, int position) {
|
||||
this.info = info;
|
||||
this.position = position;
|
||||
RoomMicInfo roomMicInfo = info.mRoomMicInfo;
|
||||
@@ -206,6 +221,20 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
ivCharmLevelTag.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if (micType == 0) {
|
||||
// 麦位皮肤
|
||||
// ivUpImage = up_image = icon_room_up_micro - 可上麦
|
||||
// ivLockImage = lock_image = icon_room_lock_micro - 锁麦
|
||||
RoomMicDress roomMicSkins = ResourceManager.INSTANCE.getRoomMicSkins();
|
||||
if (roomMicSkins != null) {
|
||||
ImageLoadKt.loadImage(ivUpImage,roomMicSkins.normalMicUrl);
|
||||
ImageLoadKt.loadImage(ivLockImage,roomMicSkins.normalMicLockUrl);
|
||||
}else {
|
||||
ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
ivLockImage.setImageResource(R.drawable.icon_room_lock_micro);
|
||||
}
|
||||
}
|
||||
|
||||
if (roomMicInfo == null) {
|
||||
ivUpImage.setVisibility(View.VISIBLE);
|
||||
ivLockImage.setVisibility(View.GONE);
|
||||
@@ -230,7 +259,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
ivUpImage.setVisibility(View.GONE);
|
||||
ivAvatar.setVisibility(View.VISIBLE);
|
||||
setSelectText(position, chatRoomMember.getNick(), chatRoomMember.getGender());
|
||||
ImageLoadUtils.loadAvatar(BasicConfig.INSTANCE.getAppContext(), chatRoomMember.getAvatar(), ivAvatar);
|
||||
ImageLoadUtils.loadAvatar(chatRoomMember.getAvatar(), ivAvatar);
|
||||
// 加载贵族
|
||||
updateNobleView(chatRoomMember);
|
||||
//增加贵族昵称颜色
|
||||
|
@@ -11,7 +11,7 @@ class CreateRoomGameAdapter :
|
||||
BaseQuickAdapter<GameInfo, BaseViewHolder>(R.layout.item_room_create_game) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: GameInfo) {
|
||||
helper.getView<ImageView>(R.id.iv_cover).load(item.pic,12f)
|
||||
helper.getView<ImageView>(R.id.iv_cover).load(item.pic?:"",12f)
|
||||
helper.itemView.isSelected = item.isSelect
|
||||
}
|
||||
|
||||
|
@@ -10,7 +10,7 @@ class CreateRoomGameGuideAdapter :
|
||||
BaseQuickAdapter<GameInfo, BaseViewHolder>(R.layout.item_room_create_game_guide) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: GameInfo) {
|
||||
GlideUtils.instance().load(item.pic,R.drawable.default_cover,helper.getView(R.id.iv_cover))
|
||||
GlideUtils.instance().load(item.pic?:"",R.drawable.default_cover,helper.getView(R.id.iv_cover))
|
||||
}
|
||||
|
||||
}
|
@@ -6,6 +6,7 @@ import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.core.home.bean.HomeRoomInfo
|
||||
import com.chwl.core.utils.extension.subAndReplaceDot
|
||||
import com.chwl.library.common.util.isVerify
|
||||
|
||||
class ExitRoomAdapter :
|
||||
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_exit_room) {
|
||||
@@ -16,5 +17,6 @@ class ExitRoomAdapter :
|
||||
ImageLoadUtils.loadImage(mContext, item.tagPict, helper.getView(R.id.iv_tag))
|
||||
helper.setText(R.id.tv_online_num, item.onlineNum.toString())
|
||||
.setText(R.id.tv_title, item.title.subAndReplaceDot(8))
|
||||
helper.setVisible(R.id.iv_tag, item.tagPict.isVerify())
|
||||
}
|
||||
}
|
@@ -0,0 +1,144 @@
|
||||
package com.chwl.app.avroom.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.ui.utils.ImageLoadKt;
|
||||
import com.chwl.app.ui.widget.recyclerview.layoutmanager.BoosRoomLayoutManager;
|
||||
import com.chwl.app.utils.ResourceManager;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.gift.bean.RoomMicDress;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.widget.SVGAView;
|
||||
import com.example.lib_utils.ktx.ResourcesKtxKt;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
|
||||
public class Mic19ViewAdapter extends BaseMicroViewAdapter {
|
||||
|
||||
//麦位 从-1 开始的 , 所以 8好麦的pos是6
|
||||
int BossPos = 7;
|
||||
|
||||
public Mic19ViewAdapter(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set LayoutManager and bind this to RecyclerView
|
||||
*/
|
||||
@Override
|
||||
public void bindToRecyclerView(RecyclerView recyclerView) {
|
||||
recyclerView.setLayoutManager(new BoosRoomLayoutManager(5));
|
||||
recyclerView.setAdapter(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
OtherExtKt.doLog(" Mic19ViewAdapter onCreateViewHolder ");
|
||||
View item ;
|
||||
item = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_micro,parent,false);
|
||||
MicroViewHolder microViewHolder = new MicroViewHolder(item);
|
||||
return microViewHolder;
|
||||
}
|
||||
|
||||
private void setViewDiff(View[] views , boolean isDiff) {
|
||||
for (int i = 0; i <views.length; i++) {
|
||||
int width = 0;
|
||||
View view = views[i];
|
||||
//头像,锁头,上麦图 宽度
|
||||
if (isDiff) {
|
||||
width = ResourcesKtxKt.getDimensionToInt(R.dimen.dp_62);
|
||||
} else {
|
||||
width = ResourcesKtxKt.getDimensionToInt(R.dimen.dp_50);
|
||||
}
|
||||
|
||||
if (view instanceof SVGAView){
|
||||
// 头饰
|
||||
width = (int) (width / 0.7575);
|
||||
}else if (view instanceof SVGAImageView){
|
||||
//光圈
|
||||
width = (int) (width / 0.5555);
|
||||
}else if (view.getId() == R.id.micro_layout){
|
||||
//头像布局 , 特殊更改
|
||||
width = ResourcesKtxKt.getDimensionToInt(R.dimen.dp_66);
|
||||
if (isDiff) {
|
||||
width = (int) (ResourcesKtxKt.getDimensionToInt(R.dimen.dp_66) / 0.7575);
|
||||
}
|
||||
}
|
||||
OtherExtKt.setViewWH(view, width, width,false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String microType() {
|
||||
return BaseMicroViewAdapter.MICRO_TYPE_REVELRY_19;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return position != BossPos ? TYPE_NORMAL : TYPE_BOSS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return 19;
|
||||
}
|
||||
|
||||
class MicroViewHolder extends GiftValueViewHolder {
|
||||
MicroViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
micType = -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(RoomQueueInfo info, int position) {
|
||||
// int width = MyUtil.INSTANCE.getMAppWidth() / 5;
|
||||
OtherExtKt.setViewWH(rootView,ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT,false);
|
||||
|
||||
setViewDiff(new View[]{ivHalo,ivHeadWear, ivAvatar, ivLockImage, ivUpImage,microLayout}, position == 6);
|
||||
|
||||
super.bind(info, position);
|
||||
|
||||
// ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
// 麦位皮肤
|
||||
// ivUpImage = up_image = icon_room_up_micro - 可上麦
|
||||
// ivLockImage = lock_image = icon_room_lock_micro - 锁麦
|
||||
RoomMicDress roomMicSkins = ResourceManager.INSTANCE.getRoomMicSkins();
|
||||
if (roomMicSkins != null) {
|
||||
if (getItemViewType() == TYPE_BOSS) {
|
||||
OtherExtKt.doLog("麦位 加载 麦位 图 boss position = "+position+" = "+roomMicSkins.bossMicUrl);
|
||||
ImageLoadKt.loadImage(ivUpImage,roomMicSkins.bossMicUrl);
|
||||
ImageLoadKt.loadImage(ivLockImage,roomMicSkins.bossMicLockUrl);
|
||||
} else {
|
||||
OtherExtKt.doLog("麦位 加载 麦位 图 normal position = "+position+" = "+roomMicSkins.bossMicUrl);
|
||||
ImageLoadKt.loadImage(ivUpImage,roomMicSkins.normalMicUrl);
|
||||
ImageLoadKt.loadImage(ivLockImage,roomMicSkins.normalMicLockUrl);
|
||||
}
|
||||
}else {
|
||||
OtherExtKt.doLog("麦位 加载 麦位 图 def position = "+position);
|
||||
if (getItemViewType() == TYPE_BOSS) {
|
||||
ivUpImage.setImageResource(R.drawable.icon_room_up_micro_boss);
|
||||
ivLockImage.setImageResource(R.drawable.icon_room_lock_micro);
|
||||
} else {
|
||||
ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
ivLockImage.setImageResource(R.drawable.icon_room_lock_micro);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
@Override
|
||||
public void setDefalutText(int index) {
|
||||
super.setDefalutText(index);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,70 @@
|
||||
package com.chwl.app.avroom.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
|
||||
public class Mic20ViewAdapter extends BaseMicroViewAdapter {
|
||||
|
||||
public Mic20ViewAdapter(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set LayoutManager and bind this to RecyclerView
|
||||
*/
|
||||
@Override
|
||||
public void bindToRecyclerView(RecyclerView recyclerView) {
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(context,5,RecyclerView.VERTICAL,false));
|
||||
recyclerView.setAdapter(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View item;
|
||||
item = LayoutInflater.from(parent.getContext()).
|
||||
inflate(R.layout.list_item_micro, parent, false);
|
||||
return new Mic20ViewAdapter.MicroViewHolder(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String microType() {
|
||||
return BaseMicroViewAdapter.MICRO_TYPE_REVELRY_20;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return TYPE_NORMAL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return 20;
|
||||
}
|
||||
|
||||
class MicroViewHolder extends GiftValueViewHolder {
|
||||
MicroViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bind(RoomQueueInfo info, int position) {
|
||||
super.bind(info, position);
|
||||
// ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
@Override
|
||||
public void setDefalutText(int index) {
|
||||
super.setDefalutText(index);
|
||||
}
|
||||
}
|
||||
}
|
@@ -87,7 +87,7 @@ public class MicroViewAdapter extends BaseMicroViewAdapter {
|
||||
// if (position == 7) {
|
||||
// ivUpImage.setImageResource(R.drawable.icon_room_up_micro_vip);
|
||||
// } else {
|
||||
ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
// ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
// }
|
||||
}
|
||||
|
||||
|
@@ -12,7 +12,6 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
|
||||
/**
|
||||
* @author xiaoyu
|
||||
@@ -67,7 +66,7 @@ public class PartyMicroViewAdapter extends BaseMicroViewAdapter {
|
||||
@Override
|
||||
public void bind(RoomQueueInfo info, int position) {
|
||||
super.bind(info, position);
|
||||
ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
// ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
|
@@ -12,7 +12,6 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
|
||||
/**
|
||||
* @author xiaoyu
|
||||
@@ -67,7 +66,7 @@ public class RevelryMicroViewAdapter extends BaseMicroViewAdapter {
|
||||
@Override
|
||||
public void bind(RoomQueueInfo info, int position) {
|
||||
super.bind(info, position);
|
||||
ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
// ivUpImage.setImageResource(R.drawable.icon_room_up_micro);
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
|
@@ -109,9 +109,9 @@ public class RoomConsumeListAdapter extends BaseMultiItemQuickAdapter<RoomContri
|
||||
}
|
||||
ivAvatar.setVisibility(View.VISIBLE);
|
||||
if (roomConsumeInfo.isHide()) {
|
||||
ImageLoadUtils.loadBigAvatar(mContext, context.getResources().getString(R.string.url_mystery_man), ivAvatar, true);
|
||||
ImageLoadUtils.loadAvatarBig(context.getResources().getString(R.string.url_mystery_man), ivAvatar);
|
||||
} else {
|
||||
ImageLoadUtils.loadBigAvatar(mContext, roomConsumeInfo.getAvatar(), ivAvatar, true);
|
||||
ImageLoadUtils.loadAvatarBig(roomConsumeInfo.getAvatar(), ivAvatar);
|
||||
}
|
||||
ivRankIcon.setImageResource(emptyPic);
|
||||
|
||||
|
@@ -90,7 +90,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
|
||||
if (i == 0) {
|
||||
|
||||
if (!TextUtils.isEmpty(userInfo.getAvatar()))
|
||||
ImageLoadUtils.loadBigAvatar(mContext, userInfo.getAvatar(), ciTopOne, true);
|
||||
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), ciTopOne);
|
||||
|
||||
|
||||
ivGenderOne.setVisibility(isEmptyBean ? View.GONE : View.VISIBLE);
|
||||
@@ -113,7 +113,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
|
||||
} else if (i == 1) {
|
||||
|
||||
if (!TextUtils.isEmpty(userInfo.getAvatar()))
|
||||
ImageLoadUtils.loadBigAvatar(mContext, userInfo.getAvatar(), ciTopTwo, true);
|
||||
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), ciTopTwo);
|
||||
ivGenderTwo.setVisibility(isEmptyBean ? View.GONE : View.VISIBLE);
|
||||
ivGenderTwo.setImageResource(userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female);
|
||||
|
||||
@@ -135,7 +135,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
|
||||
} else if (i == 2) {
|
||||
|
||||
if (!TextUtils.isEmpty(userInfo.getAvatar()))
|
||||
ImageLoadUtils.loadBigAvatar(mContext, userInfo.getAvatar(), ciTopThree, true);
|
||||
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), ciTopThree);
|
||||
|
||||
ivGenderThree.setVisibility(isEmptyBean ? View.GONE : View.VISIBLE);
|
||||
ivGenderThree.setImageResource(userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female);
|
||||
@@ -170,7 +170,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
|
||||
RoomContributeUserInfo roomContributeUserInfo = (RoomContributeUserInfo) roomConsumeInfo.getData();
|
||||
|
||||
CircleImageView avatarView = baseViewHolder.getView(R.id.avatar_view);
|
||||
ImageLoadUtils.loadAvatar(mContext, roomContributeUserInfo.getAvatar(), avatarView, true);
|
||||
ImageLoadUtils.loadAvatar(mContext, roomContributeUserInfo.getAvatar(), avatarView);
|
||||
|
||||
AppCompatImageView ivNobleLevel = baseViewHolder.getView(R.id.iv_noble_level);
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
|
@@ -11,8 +11,8 @@ import com.chwl.core.room.game.bean.GameInfo
|
||||
class RoomGameListAdapter :
|
||||
BaseQuickAdapter<GameInfo, BaseViewHolder>(R.layout.room_gameplay_item2) {
|
||||
override fun convert(helper: BaseViewHolder, item: GameInfo?) {
|
||||
helper.setText(R.id.tv_name, item?.name)
|
||||
helper.setText(R.id.tv_name, item?.name?:"")
|
||||
val iconView = helper.getView<ImageView>(R.id.iv_icon)
|
||||
iconView.load(item?.pic2)
|
||||
iconView.load(item?.pic2?:"")
|
||||
}
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
package com.chwl.app.avroom.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -10,22 +11,25 @@ import android.widget.TextView;
|
||||
import androidx.recyclerview.widget.DiffUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
|
||||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.netease.nimlib.sdk.uinfo.constant.GenderEnum;
|
||||
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.ChatMemberDiffUtilCallback;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
|
||||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.netease.nimlib.sdk.uinfo.constant.GenderEnum;
|
||||
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
@@ -163,10 +167,37 @@ public class RoomInviteAdapter extends RecyclerView.Adapter<RoomInviteAdapter.Ro
|
||||
sexImage.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
holder.mViewLine.setVisibility(position == getItemCount() - 1 ? View.GONE : View.VISIBLE);
|
||||
ImageLoadUtils.loadAvatar(mContext, chatRoomMember.getAvatar(), holder.mIvAvatar);
|
||||
holder.mTvMemberName.setText(chatRoomMember.getNick());
|
||||
|
||||
try {
|
||||
Map<String, Object> map = (Map<String, Object>) chatRoomMember.getExtension().get(chatRoomMember.getAccount());
|
||||
String nick = map.get(UserInfo.NICK).toString();
|
||||
String avatar = map.get(UserInfo.AVATAR).toString();
|
||||
boolean enterHide = (boolean) map.get(UserInfo.ENTER_HIDE);
|
||||
|
||||
if (enterHide) {
|
||||
holder.mIvAvatar.setImageResource(R.drawable.ic_mystery);
|
||||
} else {
|
||||
if (chatRoomMember.getAvatar() == null || TextUtils.isEmpty(chatRoomMember.getAvatar())) {
|
||||
ImageLoadUtils.loadAvatar(mContext, avatar, holder.mIvAvatar);
|
||||
}
|
||||
|
||||
CharSequence nickText = holder.mTvMemberName.getText();
|
||||
if (!OtherExtKt.isVerify(nickText)){
|
||||
if (OtherExtKt.isVerify(nick)) {
|
||||
holder.mTvMemberName.setText(nick);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@@ -8,10 +8,12 @@ import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.common.widget.CircleImageView;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -54,6 +56,13 @@ public class RoomNormalListAdapter extends RecyclerView.Adapter<RoomNormalListAd
|
||||
holder.operationImg.setTag(chatRoomMember);
|
||||
holder.operationImg.setOnClickListener(this);
|
||||
ImageLoadUtils.loadAvatar(context, chatRoomMember.getAvatar(), holder.avatar);
|
||||
|
||||
|
||||
if (UserModel.get().getCacheLoginUserInfo() != null && UserModel.get().getCacheLoginUserInfo().isSuperAdmin()) {
|
||||
OtherExtKt.setVis(holder.operationImg, false, false);
|
||||
} else {
|
||||
OtherExtKt.setVis(holder.operationImg,true,false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -57,7 +57,7 @@ public class RoomRankHalfHourListAdapter extends BaseMultiItemQuickAdapter<RoomR
|
||||
baseViewHolder.setText(R.id.tv_room_rank_title, roomRankHalfHourRankInfo.getRoomTitle());
|
||||
// 头像
|
||||
CircleImageView avatarView = baseViewHolder.getView(R.id.iv_room_rank_avatar);
|
||||
ImageLoadUtils.loadAvatar(mContext, roomRankHalfHourRankInfo.getAvatar(), avatarView, true);
|
||||
ImageLoadUtils.loadAvatar(roomRankHalfHourRankInfo.getAvatar(),avatarView);
|
||||
baseViewHolder.setText(R.id.tv_room_rank_id, "ID:" + roomRankHalfHourRankInfo.getErbanNo());
|
||||
}
|
||||
}
|
||||
|
@@ -15,6 +15,7 @@ import com.chwl.library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.functions.Consumer;
|
||||
@@ -39,15 +40,24 @@ public class UpMicAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
|
||||
this.upUid = upUid;
|
||||
List<String> list = new ArrayList<>();
|
||||
int size;
|
||||
if (AvRoomDataManager.get().isCpRoom()) {
|
||||
size = 2;
|
||||
} else if (AvRoomDataManager.get().isSingleRoom()) {
|
||||
size = 4;
|
||||
} else if (AvRoomDataManager.get().isOpenGame()) {
|
||||
size = 6;
|
||||
} else {
|
||||
size = 9;
|
||||
}
|
||||
size = AvRoomDataManager.get().getMicSize();
|
||||
// if (AvRoomDataManager.get().isCpRoom()) {
|
||||
// size = 2;
|
||||
// } else if (AvRoomDataManager.get().isSingleRoom()) {
|
||||
// size = 4;
|
||||
// } else if (AvRoomDataManager.get().isHomeParty()) {
|
||||
// size = 9;
|
||||
// }else if (AvRoomDataManager.get().isPartyRoom()) {
|
||||
// size = 10;
|
||||
// } else if (AvRoomDataManager.get().isRevelryRoom()) {
|
||||
// size = 15;
|
||||
// }else if (AvRoomDataManager.get().is19Room()) {
|
||||
// size = 19;
|
||||
// } else if (AvRoomDataManager.get().is20Room()) {
|
||||
// size = 20;
|
||||
// } else {
|
||||
// size = 9;
|
||||
// }
|
||||
for (int i = 0; i < size; i++) {
|
||||
list.add("");
|
||||
}
|
||||
@@ -62,26 +72,33 @@ public class UpMicAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
|
||||
if (roomQueueInfo == null) return;
|
||||
|
||||
ImageView imageView = helper.getView(R.id.iv_mic);
|
||||
//todo do 19麦房间时 老板麦位特殊特殊图标 待更换
|
||||
//麦上没人,且不是离开模式房主位,相亲模式的管理才能上房主位
|
||||
if (roomQueueInfo.mChatRoomMember == null &&
|
||||
(!AvRoomDataManager.get().isLeaveMode() || position != 0) &&
|
||||
(!AvRoomDataManager.get().isDatingMode() || AvRoomDataManager.get().isManager(String.valueOf(upUid)) || position != 0)) {
|
||||
imageView.setImageResource(position == 0 ? R.drawable.icon_up_mic_true_preside : R.drawable.icon_up_mic_ture);
|
||||
if (roomQueueInfo.mChatRoomMember == null
|
||||
&& (!AvRoomDataManager.get().isLeaveMode() || position != 0)
|
||||
&& (!AvRoomDataManager.get().isDatingMode() || AvRoomDataManager.get().isManager(String.valueOf(upUid)) || position != 0)) {
|
||||
imageView.setImageResource((position == AvRoomDataManager.ITEM_POS_19_ROOM_BOSS && AvRoomDataManager.get().is19Room()) ? R.drawable.icon_room_up_micro_king : R.drawable.icon_up_mic_ture);
|
||||
helper.itemView.setClickable(true);
|
||||
helper.itemView.setOnClickListener(v -> Single.just(position).subscribe(consumer));
|
||||
} else {
|
||||
imageView.setImageResource(position == 0 ? R.drawable.icon_up_mic_false_preside : R.drawable.icon_up_mic_false);
|
||||
imageView.setImageResource(R.drawable.icon_up_mic_false);
|
||||
helper.itemView.setClickable(false);
|
||||
}
|
||||
|
||||
TextView textView = helper.getView(R.id.tv_pos);
|
||||
if (position == 0) {
|
||||
textView.setText(AvRoomDataManager.get().isDatingMode() ? ResUtil.getString(R.string.avroom_adapter_upmicadapter_01) : ResUtil.getString(R.string.avroom_adapter_upmicadapter_02));
|
||||
if (AvRoomDataManager.get().isHomeParty()) {
|
||||
textView.setText(ResUtil.getString(R.string.avroom_adapter_upmicadapter_02));
|
||||
} else if (AvRoomDataManager.get().isDatingMode()) {
|
||||
textView.setText(ResUtil.getString(R.string.avroom_adapter_upmicadapter_01));
|
||||
} else {
|
||||
textView.setText(String.format(Locale.US,context.getResources().getString(R.string.which_mic_position), position+1));
|
||||
}
|
||||
} else {
|
||||
if (AvRoomDataManager.get().isDatingMode()) {
|
||||
textView.setText(position + (Constants.maleIndex.contains(position - 1) ? ResUtil.getString(R.string.avroom_adapter_upmicadapter_03) : ResUtil.getString(R.string.avroom_adapter_upmicadapter_04)));
|
||||
} else {
|
||||
textView.setText(String.format(context.getResources().getString(R.string.which_mic_position), position));
|
||||
textView.setText(String.format(Locale.US,context.getResources().getString(R.string.which_mic_position), position+1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,13 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagConfig {
|
||||
public int expireSeconds;
|
||||
public List<Integer> goldItems;
|
||||
public List<Integer> numItems;
|
||||
public List<Integer> timeItems;
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagDetailEntity {
|
||||
public String avatar;
|
||||
public String nick;
|
||||
public long createTime;
|
||||
public String createTimeStr;
|
||||
public int num = 1;
|
||||
public int originalAmount;
|
||||
public String type;
|
||||
public String giftName;
|
||||
|
||||
|
||||
|
||||
public @interface BiliType{
|
||||
public int SENT = 1;
|
||||
public int RECEIVED = 2;
|
||||
}
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import static com.chwl.app.avroom.bean.LuckyBagEntity.Type.GIFT;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagEntity {
|
||||
public long id;
|
||||
public long roomUid;
|
||||
public long userId;
|
||||
public String avatar;
|
||||
public String nick;
|
||||
public int status;
|
||||
public String type;
|
||||
public long beginTime; // 倒计时结束时间, 表时可以开抢了, (东八区)
|
||||
public int countDownSecond; // 倒计时多少秒
|
||||
public long countDownTime; //接收到倒计时秒数 记录下本地时间
|
||||
|
||||
public @interface Type{
|
||||
public String GIFT = "GIFT";
|
||||
public String DIAMOND = "DIAMOND";
|
||||
}
|
||||
|
||||
public boolean isGift() {
|
||||
return type.equals(GIFT);
|
||||
}
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import static com.chwl.app.avroom.bean.LuckyBagEntity.Type.GIFT;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagGiftBody {
|
||||
|
||||
public long roomUid;
|
||||
public long uid;
|
||||
public int countDownSecond;
|
||||
public String type = GIFT;
|
||||
// public int num;
|
||||
|
||||
public List<LuckyBagGiftItemBody> giftItems;
|
||||
|
||||
public void addLuckyBagGift(LuckyBagGiftItemBody index) {
|
||||
if (giftItems == null) {
|
||||
giftItems = new ArrayList<>();
|
||||
}
|
||||
giftItems.add(index);
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagGiftItemBody {
|
||||
public long giftId;
|
||||
public int giftNum;
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import static com.chwl.app.avroom.bean.LuckyBagEntity.Type.DIAMOND;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagGoldBody {
|
||||
|
||||
public long roomUid;
|
||||
public long uid;
|
||||
public String type = DIAMOND;
|
||||
public int goldNum;
|
||||
public int num;
|
||||
public int countDownSecond;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagOpenBiliEntity {
|
||||
public int amount;
|
||||
public long createTime;
|
||||
public String createTimeStr;
|
||||
public List<LuckyBagOpenGiftEntity> redEnvelopeGiftItemVOs;
|
||||
public LuckyBagOpenUserBean userVO;
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagOpenEntity {
|
||||
public int currentUserAmount;
|
||||
public List<LuckyBagOpenGiftEntity> currentUserGifts;
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagOpenGiftBean {
|
||||
public String giftUrl;
|
||||
public String giftName;
|
||||
public int goldPrice;
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagOpenGiftEntity {
|
||||
public int giftNum;
|
||||
public LuckyBagOpenGiftBean giftVo;
|
||||
}
|
@@ -0,0 +1,10 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LuckyBagOpenUserBean {
|
||||
public String avatar;
|
||||
public String nick;
|
||||
public long uid;
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
package com.chwl.app.avroom.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RoomLuckyBagInfo {
|
||||
|
||||
public List<LuckyBagEntity> redEnvelopeListVoList;
|
||||
public LuckyBagConfig redEnvelopeV2Config;
|
||||
|
||||
}
|
@@ -41,7 +41,7 @@ public class AttentionHintDialog extends BaseBsDialog {
|
||||
ivAvatar = findViewById(R.id.iv_avatar);
|
||||
tvNickname = findViewById(R.id.tv_nickname);
|
||||
tvAttention = findViewById(R.id.tv_attention);
|
||||
ImageLoadUtils.laodUsrInfoAvatar(getContext(), AvRoomDataManager.get().avatar, ivAvatar);
|
||||
ImageLoadUtils.loadAvatar(getContext(), AvRoomDataManager.get().avatar, ivAvatar);
|
||||
tvNickname.setText(AvRoomDataManager.get().nick);
|
||||
tvAttention.setOnClickListener(v ->
|
||||
disposable = PraiseModel.get().praise(AvRoomDataManager.get().getRoomUid(), true)
|
||||
|
@@ -40,12 +40,16 @@ abstract class BaseRoomNotifyDialog<VB : ViewBinding>(context: Context, theme: I
|
||||
init()
|
||||
|
||||
if (useAutoDismiss()) {
|
||||
handle.postDelayed({
|
||||
dismissDialog()
|
||||
}, (getStaySecond()*1000).toLong())
|
||||
startAutoDismiss()
|
||||
}
|
||||
}
|
||||
|
||||
protected open fun startAutoDismiss() {
|
||||
handle.postDelayed({
|
||||
dismissDialog()
|
||||
}, (getStaySecond()*1000).toLong())
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
handle.removeCallbacksAndMessages(null)
|
||||
super.onDetachedFromWindow()
|
||||
|
@@ -33,11 +33,15 @@ class CreateGameRoomDialog : BaseDialogFragment<DialogCreateGameRoomBinding>() {
|
||||
.build()
|
||||
|
||||
gameAdapter.setOnItemClickListener { _, _, position ->
|
||||
dismissAllowingStateLoss()
|
||||
OpenRoomHelper.openRoom(
|
||||
requireActivity() as BaseActivity, RoomInfo.ROOMTYPE_GAME,
|
||||
gameAdapter.data[position].mgId.toLong()
|
||||
)
|
||||
try {
|
||||
dismissAllowingStateLoss()
|
||||
OpenRoomHelper.openRoom(
|
||||
requireActivity() as BaseActivity, RoomInfo.ROOMTYPE_GAME,
|
||||
gameAdapter.data[position].mgId.toLong()
|
||||
)
|
||||
}catch (e:Exception){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
binding?.ivClose?.setOnClickListener {
|
||||
|
@@ -20,10 +20,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.MicQueueAdapter;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.app.home.helper.LoadPageDataHelper;
|
||||
import com.chwl.app.ui.widget.dialog.BaseDialog;
|
||||
import com.chwl.app.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
@@ -40,12 +38,14 @@ import com.chwl.core.room.queuing_mic.bean.QueuingMicMemeberInfo;
|
||||
import com.chwl.core.room.queuing_mic.bean.RespQueuingMicListInfo;
|
||||
import com.chwl.core.user.bean.BaseInfo;
|
||||
import com.chwl.core.utils.net.BeanObserver;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.library.net.rxnet.callback.CallBack;
|
||||
import com.chwl.library.utils.CommonUtils;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -231,6 +231,11 @@ public class MicQueueDialog extends BaseDialog implements
|
||||
if (member.getGroupType() == GroupType.FEMALE && Constants.maleIndex.contains(key))
|
||||
continue;
|
||||
}
|
||||
//19麦的情况下 老板麦跳过 , 19麦房间的 boss ViewItemPos是7 , 云信上麦位是6 , 展示时是8号麦
|
||||
if (AvRoomDataManager.get().is19Room()) {
|
||||
if (AvRoomDataManager.get().is19RoomBoosMicPos(key)) continue;
|
||||
}
|
||||
|
||||
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().mMicQueueMemberMap.get(key);
|
||||
//排麦模式下,选择被锁的坑,即是排麦坑才能上
|
||||
if (roomQueueInfo != null
|
||||
@@ -241,8 +246,22 @@ public class MicQueueDialog extends BaseDialog implements
|
||||
break;
|
||||
}
|
||||
}
|
||||
//房主的坑位key是-1 ,剩下的 8个坑的key从0 - 7
|
||||
if (micPosition != -1 && micPosition < 8) {
|
||||
//房主的坑位key是-1 ,剩下的 坑位 按房间类型填
|
||||
int maxMicPos = 8;
|
||||
if (AvRoomDataManager.get().isPartyRoom()){
|
||||
maxMicPos = 10;
|
||||
}else if (AvRoomDataManager.get().isRevelryRoom()){
|
||||
maxMicPos = 15;
|
||||
}else if (AvRoomDataManager.get().is19Room()){
|
||||
maxMicPos = 19;
|
||||
}else if (AvRoomDataManager.get().is20Room()){
|
||||
maxMicPos = 20;
|
||||
}
|
||||
if (micPosition != -1 && micPosition < maxMicPos) {
|
||||
|
||||
//跳过 19 麦的 老板麦
|
||||
if (AvRoomDataManager.get().is19Room() && AvRoomDataManager.get().is19RoomBoosMicPos(micPosition)) return;
|
||||
|
||||
if (itemPos < adapter.getItemCount()) {
|
||||
dataList.remove(itemPos);
|
||||
adapter.notifyDataSetChanged();
|
||||
|
@@ -0,0 +1,155 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseDialogFragment
|
||||
import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.databinding.DialogRoomBgPreviewBinding
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.file.FileModel
|
||||
import com.chwl.core.gift.bean.RoomBgInfoItem
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import com.google.gson.JsonElement
|
||||
import com.hjq.toast.ToastUtils
|
||||
import io.reactivex.Single
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
import java.io.File
|
||||
|
||||
class RoomBgPreviewDialog : BaseDialogFragment<DialogRoomBgPreviewBinding>() {
|
||||
|
||||
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var dimAmount = 0.3f
|
||||
override var gravity = Gravity.BOTTOM
|
||||
|
||||
var isBuy = false
|
||||
var mFile : File?=null
|
||||
var mRoomBgInfoItem : RoomBgInfoItem?=null
|
||||
var mDialog : DialogManager?=null
|
||||
var mCallBack : CallBack?=null
|
||||
|
||||
|
||||
override fun init() {
|
||||
mDialog = DialogManager(requireActivity())
|
||||
binding.btnBack.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
binding.close.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
|
||||
mRoomBgInfoItem?.let { data->
|
||||
|
||||
binding.btnConfirm.setOnClickListener {
|
||||
if (isBuy) {
|
||||
buyBg()
|
||||
} else {
|
||||
mFile?.let { it1 -> upLoadImage(it1) }
|
||||
}
|
||||
}
|
||||
|
||||
if (isBuy) {
|
||||
binding.bg.loops
|
||||
binding.bg.loadUrl(data.url)
|
||||
binding.btnConfirm.text = R.string.buy.getString()
|
||||
binding.hint.text = R.string.Purchases_hint.getString()
|
||||
} else {
|
||||
binding.btnConfirm.text = R.string.layout_activity_modify_pwd_07.getString()
|
||||
binding.hint.text = R.string.Purchases_hint2.getString()
|
||||
ImageLoadUtils.loadImage(context,mFile,binding.bg)
|
||||
}
|
||||
|
||||
binding.price.text = R.string.s_sDays.getString(data.goldPrice,(data.buyHour/24).toInt())
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun buyBg() {
|
||||
mRoomBgInfoItem?.let { data->
|
||||
postBuy(data.id)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
ToastUtils.show(R.string.doSuccess)
|
||||
mCallBack?.onSuccess()
|
||||
dismiss()
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.let { msg->
|
||||
ToastUtils.show(msg)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun upLoadImage(file: File) {
|
||||
mDialog?.showProgressDialog(requireActivity())
|
||||
FileModel.get()
|
||||
.uploadFile(file.path)
|
||||
.compose<String>(bindToLifecycle<String>())
|
||||
.doOnSuccess {
|
||||
if (it.isVerify()) {
|
||||
postCustom(it)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
ToastUtils.show(R.string.doSuccess)
|
||||
mCallBack?.onSuccess()
|
||||
dismiss()
|
||||
}
|
||||
.doOnError { er->
|
||||
er?.message?.let { msg ->
|
||||
ToastUtils.show(msg)
|
||||
}
|
||||
dismiss()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
mDialog?.dismissDialog()
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.let { msg->
|
||||
ToastUtils.show(msg)
|
||||
}
|
||||
mDialog?.dismissDialog()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
private fun postCustom(url: String): Single<String> {
|
||||
return api.postCustom(AvRoomDataManager.get().roomUid,url)
|
||||
.compose(RxHelper.handleIgnoreData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private fun postBuy(id: Long): Single<String> {
|
||||
return api.postBuy(AvRoomDataManager.get().roomUid,id)
|
||||
.compose(RxHelper.handleIgnoreData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private val api: Api = RxNet.create(Api::class.java);
|
||||
interface Api {
|
||||
@POST("/room/background/custom")
|
||||
fun postCustom(@Query("roomUid") roomUid: Long,@Query("url") url: String): Single<ServiceResult<JsonElement>>
|
||||
@POST("/room/background/buy")
|
||||
fun postBuy(@Query("roomUid") roomUid: Long,@Query("id") id: Long): Single<ServiceResult<JsonElement>>
|
||||
}
|
||||
|
||||
public interface CallBack{
|
||||
fun onSuccess()
|
||||
}
|
||||
|
||||
|
||||
}
|
541
app/src/main/java/com/chwl/app/avroom/dialog/RoomBgSetDialog.kt
Normal file
541
app/src/main/java/com/chwl/app/avroom/dialog/RoomBgSetDialog.kt
Normal file
@@ -0,0 +1,541 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.app.Activity.RESULT_OK
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import android.widget.TextView
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.base.BaseDialogFragment
|
||||
import com.chwl.app.base.PhotoPickActivity
|
||||
import com.chwl.app.bindadapter.BaseBindingAdapter
|
||||
import com.chwl.app.bindadapter.BaseBindingViewHolder
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.databinding.DialogRoomBgSetBinding
|
||||
import com.chwl.app.databinding.ItemRoomBgSetBinding
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.gift.bean.RoomBgInfo
|
||||
import com.chwl.core.gift.bean.RoomBgInfoItem
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.utils.myutil.MyUriUtils
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.example.lib_utils.ktx.dp
|
||||
import com.example.lib_utils.ktx.getColor
|
||||
import com.example.lib_utils.ktx.getDimension
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import com.google.gson.JsonElement
|
||||
import com.hjq.toast.ToastUtils
|
||||
import io.reactivex.Single
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
import java.io.File
|
||||
|
||||
class RoomBgSetDialog : BaseDialogFragment<DialogRoomBgSetBinding>() {
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = R.dimen.dp_323.getDimension().toInt()
|
||||
override var dimAmount = 0f
|
||||
override var gravity = Gravity.BOTTOM
|
||||
|
||||
lateinit var mAdapter: RoomBgAdapter
|
||||
|
||||
private var mDataFree = mutableListOf<RoomBgInfoItem>()
|
||||
private var mDataPay = mutableListOf<RoomBgInfoItem>()
|
||||
private var mDataCustom = mutableListOf<RoomBgInfoItem>()
|
||||
|
||||
private var mCustomGoldPrice = 0
|
||||
private var mCustomHour = 0
|
||||
|
||||
private var mSelectType = RoomBgInfo.Type.T_FREE
|
||||
|
||||
|
||||
override fun init() {
|
||||
|
||||
mAdapter = RoomBgAdapter()
|
||||
mAdapter.setNewData(mutableListOf())
|
||||
mAdapter.setEmptyView(EmptyViewHelper.createEmptyTextViewHeight(context, R.string.empty_data.getString()))
|
||||
|
||||
binding.rvList.layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)
|
||||
binding.rvList.adapter = mAdapter
|
||||
|
||||
mAdapter.setOnItemChildClickListener { adapter, view, position ->
|
||||
val data = mAdapter.data.getOrNull(position)
|
||||
when (view.id) {
|
||||
R.id.statusPlay, R.id.statusBuy -> {
|
||||
data?.let {
|
||||
if (it.type == RoomBgInfo.Type.T_CUSTOM) {
|
||||
if (it.status != RoomBgInfo.Status.S_REJECT && it.status != RoomBgInfo.Status.S_REVIEW) {
|
||||
showPreViewDialog(null, data, true)
|
||||
}
|
||||
} else {
|
||||
showPreViewDialog(null, data, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
R.id.statusDel -> {
|
||||
data?.let {
|
||||
del(data)
|
||||
}
|
||||
}
|
||||
|
||||
R.id.bg -> {
|
||||
data?.let {
|
||||
select(data)
|
||||
}
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
binding.btnFree.click {
|
||||
setViewSelect(RoomBgInfo.Type.T_FREE)
|
||||
}
|
||||
binding.btnPay.click {
|
||||
setViewSelect(RoomBgInfo.Type.T_PAY)
|
||||
}
|
||||
binding.btnCustom.click {
|
||||
setViewSelect(RoomBgInfo.Type.T_CUSTOM)
|
||||
}
|
||||
|
||||
binding.btnCreate.click {
|
||||
PhotoPickActivity.startImg(requireActivity())
|
||||
}
|
||||
|
||||
binding.btnMore.click {
|
||||
val dialogManager = DialogManager(context)
|
||||
dialogManager.showOkCancelDialog(R.string.tip_tips.getString(),R.string.Purchases_hint_info.getString(),R.string.ok.getString(),null,true,null)
|
||||
val window = dialogManager?.dialog?.window
|
||||
val tip = window?.findViewById<TextView>(R.id.message)
|
||||
tip?.gravity = Gravity.START
|
||||
}
|
||||
|
||||
getData()
|
||||
|
||||
}
|
||||
|
||||
private fun getData() {
|
||||
getBoomInfo(AvRoomDataManager.get().roomUid)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess { data ->
|
||||
if (data != null) {
|
||||
|
||||
mCustomHour = data.customHour
|
||||
mCustomGoldPrice = data.customGoldPrice
|
||||
|
||||
mDataFree.clear()
|
||||
mDataPay.clear()
|
||||
mDataCustom.clear()
|
||||
|
||||
data.itemList.let {
|
||||
val map = it.groupBy { it.type }
|
||||
|
||||
if (map.containsKey(RoomBgInfo.Type.T_FREE)){
|
||||
mDataFree = map[RoomBgInfo.Type.T_FREE] as MutableList<RoomBgInfoItem>
|
||||
}
|
||||
|
||||
if (map.containsKey(RoomBgInfo.Type.T_PAY)) {
|
||||
val newData = mutableListOf<RoomBgInfoItem>()
|
||||
val pays = map[RoomBgInfo.Type.T_PAY] as MutableList<RoomBgInfoItem>
|
||||
val groupBy = pays.groupBy { it.status }
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_SUCCESS)) {
|
||||
val paySuccess = groupBy[RoomBgInfo.Status.S_SUCCESS] as MutableList<RoomBgInfoItem>
|
||||
paySuccess.sortByDescending { pay-> pay.remainHour }
|
||||
newData.addAll(paySuccess)
|
||||
}
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_EXPIRED)) {
|
||||
val paySuccess = groupBy[RoomBgInfo.Status.S_EXPIRED] as MutableList<RoomBgInfoItem>
|
||||
newData.addAll(paySuccess)
|
||||
}
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_REVIEW)) {
|
||||
val paySuccess = groupBy[RoomBgInfo.Status.S_REVIEW] as MutableList<RoomBgInfoItem>
|
||||
newData.addAll(paySuccess)
|
||||
}
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_REJECT)) {
|
||||
val paySuccess = groupBy[RoomBgInfo.Status.S_REJECT] as MutableList<RoomBgInfoItem>
|
||||
newData.addAll(paySuccess)
|
||||
}
|
||||
|
||||
mDataPay = newData
|
||||
}
|
||||
|
||||
if (map.containsKey(RoomBgInfo.Type.T_CUSTOM)) {
|
||||
|
||||
val newData = mutableListOf<RoomBgInfoItem>()
|
||||
val customs = map[RoomBgInfo.Type.T_CUSTOM] as MutableList<RoomBgInfoItem>
|
||||
val groupBy = customs.groupBy { it.status }
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_SUCCESS)) {
|
||||
val customsSuccess = groupBy[RoomBgInfo.Status.S_SUCCESS] as MutableList<RoomBgInfoItem>
|
||||
customsSuccess.sortByDescending { customs-> customs.remainHour }
|
||||
newData.addAll(customsSuccess)
|
||||
}
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_EXPIRED)) {
|
||||
val customsSuccess = groupBy[RoomBgInfo.Status.S_EXPIRED] as MutableList<RoomBgInfoItem>
|
||||
newData.addAll(customsSuccess)
|
||||
}
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_REVIEW)) {
|
||||
val customsSuccess = groupBy[RoomBgInfo.Status.S_REVIEW] as MutableList<RoomBgInfoItem>
|
||||
newData.addAll(customsSuccess)
|
||||
}
|
||||
|
||||
if (groupBy.containsKey(RoomBgInfo.Status.S_REJECT)) {
|
||||
val customsSuccess = groupBy[RoomBgInfo.Status.S_REJECT] as MutableList<RoomBgInfoItem>
|
||||
newData.addAll(customsSuccess)
|
||||
}
|
||||
|
||||
mDataCustom = newData
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
setViewSelect(mSelectType)
|
||||
}
|
||||
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.let { msg ->
|
||||
ToastUtils.show(msg)
|
||||
}
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
private fun del(data: RoomBgInfoItem) {
|
||||
if (data.type != RoomBgInfo.Type.T_CUSTOM) return
|
||||
val dialog = DialogManager(requireActivity())
|
||||
dialog.showOkCancelDialog(R.string.community_photo_bigphotoactivity_08.getString(),object : DialogManager.AbsOkDialogListener() {
|
||||
override fun onOk() {
|
||||
postDel(data.id)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
ToastUtils.show(R.string.doSuccess)
|
||||
getData()
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.let { msg ->
|
||||
ToastUtils.show(msg)
|
||||
}
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
private fun select(data: RoomBgInfoItem) {
|
||||
if (data.remainHour != -1 || data.type == RoomBgInfo.Type.T_FREE) {
|
||||
if (data.status == RoomBgInfo.Status.S_SUCCESS) {
|
||||
postSelect(data.id)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
ToastUtils.show(R.string.doSuccess)
|
||||
dismiss()
|
||||
}
|
||||
.doOnError {
|
||||
dismiss()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
} else {
|
||||
if (data.status == RoomBgInfo.Status.S_REJECT || data.status == RoomBgInfo.Status.S_REVIEW) return // 拒審只能刪除
|
||||
showPreViewDialog(null, data, true)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setViewSelect(type: Int) {
|
||||
binding.btnMore.setVis(false)
|
||||
binding.btnCreate.setVis(false)
|
||||
binding.btnFree.setTextColor(if (type == RoomBgInfo.Type.T_FREE) R.color.white.getColor() else R.color.white_tran_60.getColor())
|
||||
binding.btnPay.setTextColor(if (type == RoomBgInfo.Type.T_PAY) R.color.white.getColor() else R.color.white_tran_60.getColor())
|
||||
binding.btnCustom.setTextColor(if (type == RoomBgInfo.Type.T_CUSTOM) R.color.white.getColor() else R.color.white_tran_60.getColor())
|
||||
val text = mAdapter.emptyView?.findViewById<TextView>(R.id.tv_hint)
|
||||
text?.text = R.string.empty_data.getString()
|
||||
mSelectType = type
|
||||
when (type) {
|
||||
RoomBgInfo.Type.T_FREE -> {
|
||||
mAdapter.setNewData(mDataFree)
|
||||
}
|
||||
|
||||
RoomBgInfo.Type.T_PAY -> {
|
||||
mAdapter.setNewData(mDataPay)
|
||||
}
|
||||
|
||||
RoomBgInfo.Type.T_CUSTOM -> {
|
||||
mAdapter.setNewData(mDataCustom)
|
||||
text?.text = R.string.empty_customize_bg.getString()
|
||||
binding.btnMore.setVis(true)
|
||||
binding.btnCreate.setVis(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Deprecated in Java")
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
if (resultCode == RESULT_OK) {
|
||||
if (requestCode == PhotoPickActivity.PICK_ACT_RESULT) {
|
||||
val uri = data?.data
|
||||
if (uri != null) {
|
||||
if (MyUriUtils.isGif(requireActivity(), uri)) {
|
||||
ToastUtils.show(R.string.error_file_type)
|
||||
return
|
||||
}
|
||||
|
||||
val file = MyUriUtils.copyFile(requireActivity(), uri)
|
||||
if (file != null) {
|
||||
showPreViewDialog(file, RoomBgInfoItem().apply {
|
||||
goldPrice = mCustomGoldPrice
|
||||
buyHour = mCustomHour
|
||||
}, false)
|
||||
} else {
|
||||
ToastUtils.show(R.string.exception_try_again)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun showPreViewDialog(file: File?, data:RoomBgInfoItem, buy: Boolean) {
|
||||
context?.let {
|
||||
RoomBgPreviewDialog().apply {
|
||||
mFile = file
|
||||
mRoomBgInfoItem = data
|
||||
isBuy = buy
|
||||
mCallBack = object : RoomBgPreviewDialog.CallBack {
|
||||
override fun onSuccess() {
|
||||
getData()
|
||||
}
|
||||
}
|
||||
}.show(it)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class RoomBgAdapter() : BaseBindingAdapter<ItemRoomBgSetBinding, RoomBgInfoItem>() {
|
||||
|
||||
|
||||
override fun convert(
|
||||
helper: BaseBindingViewHolder<ItemRoomBgSetBinding>,
|
||||
data: RoomBgInfoItem
|
||||
) {
|
||||
|
||||
val binding = helper.binding
|
||||
defViewStatus(binding)
|
||||
|
||||
data?.let { data ->
|
||||
|
||||
binding.bg.loadUrl(data.url ?: "")
|
||||
binding.select.setVis(data.isCur)
|
||||
|
||||
|
||||
binding.statusPlay.setVis(data.url?.endsWith(".svga") == true)
|
||||
binding.statusGif.setVis(data.url?.endsWith(".svga") == true)
|
||||
|
||||
if (data.type == RoomBgInfo.Type.T_FREE) {
|
||||
|
||||
val bindingAdapterPosition = helper.bindingAdapterPosition
|
||||
if (bindingAdapterPosition == 0) {
|
||||
binding.statusLimit.text = R.string.Original.getString()
|
||||
binding.statusLimit.changeSoildColor(R.color.black_transparent_50.getColor())
|
||||
}
|
||||
binding.statusLimit.setVis(bindingAdapterPosition == 0)
|
||||
|
||||
|
||||
|
||||
} else if (data.type == RoomBgInfo.Type.T_PAY) {
|
||||
|
||||
//有时长显示 左上角剩余时间
|
||||
binding.statusLimit.setVis(data.remainHour != -1)
|
||||
binding.statusLimit.text = getTimeText(data.remainHour)
|
||||
binding.statusLimit.changeSoildColor(R.color.black_transparent_50.getColor())
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
binding.price.text = getPriceText(data.goldPrice,data.buyHour)
|
||||
binding.price.setVis(true)
|
||||
|
||||
binding.statusBuy.setVis(true)
|
||||
if (data.remainHour != -1) { //有剩余时长是 renew
|
||||
binding.statusBuy.text = R.string.Renew.getString()
|
||||
binding.statusBuy.setTextColor(R.color.white.getColor())
|
||||
binding.statusBuy.setGradientDrawable(
|
||||
Color.parseColor("#373639"),
|
||||
-1,
|
||||
Color.parseColor("#373639"),
|
||||
-1,
|
||||
-1f
|
||||
)
|
||||
binding.statusBuy.changeStrikeColor(R.color.white.getColor(), 1.dp)
|
||||
} else { // 没有是buy
|
||||
binding.statusBuy.text = R.string.buy.getString()
|
||||
binding.statusBuy.setTextColor(R.color.white.getColor())
|
||||
binding.statusBuy.setGradientDrawable(
|
||||
Color.parseColor("#E29030"),
|
||||
-1,
|
||||
Color.parseColor("#FCC074"),
|
||||
-1,
|
||||
-1f
|
||||
)
|
||||
binding.statusBuy.changeStrikeColor(R.color.transparent.getColor(), 0)
|
||||
}
|
||||
|
||||
} else if (data.type == RoomBgInfo.Type.T_CUSTOM) {
|
||||
|
||||
|
||||
binding.statusLimit.setVis(true)
|
||||
if (data.status == RoomBgInfo.Status.S_EXPIRED) { //过期 就展示 左上角 过期图标
|
||||
binding.statusLimit.text = R.string.Expired.getString()
|
||||
binding.statusLimit.changeSoildColor(R.color.color_696969.getColor())
|
||||
} else {
|
||||
if (data.remainHour != -1) { //非过期,有时长就展示 没有就隐藏
|
||||
binding.statusLimit.text = getTimeText(data.remainHour)
|
||||
binding.statusLimit.changeSoildColor(R.color.black_transparent_50.getColor())
|
||||
} else {
|
||||
binding.statusLimit.setVis(false)
|
||||
}
|
||||
}
|
||||
|
||||
binding.statusDel.setVis(data.status != RoomBgInfo.Status.S_REVIEW)
|
||||
|
||||
binding.price.text = getPriceText(data.goldPrice,data.buyHour)
|
||||
binding.price.setVis(true)
|
||||
|
||||
binding.statusBuy.setVis(true)
|
||||
if (data.status == RoomBgInfo.Status.S_REVIEW) { // 审核中
|
||||
binding.statusBuy.text = R.string.in_review.getString()
|
||||
binding.statusBuy.setTextColor(R.color.color_ff9741.getColor())
|
||||
binding.statusBuy.setGradientDrawable(
|
||||
Color.parseColor("#00000000"),
|
||||
-1,
|
||||
Color.parseColor("#00000000"),
|
||||
-1,
|
||||
-1f
|
||||
)
|
||||
binding.statusBuy.changeStrikeColor(R.color.color_ff9741.getColor(), 1.dp)
|
||||
} else if (data.status == RoomBgInfo.Status.S_EXPIRED || data.status == RoomBgInfo.Status.S_SUCCESS) { //过期和通过审核 显示 renew
|
||||
binding.statusBuy.text = R.string.Renew.getString()
|
||||
binding.statusBuy.setTextColor(R.color.white.getColor())
|
||||
binding.statusBuy.setGradientDrawable(
|
||||
Color.parseColor("#00000000"),
|
||||
-1,
|
||||
Color.parseColor("#00000000"),
|
||||
-1,
|
||||
-1f
|
||||
)
|
||||
binding.statusBuy.changeStrikeColor(R.color.white.getColor(), 1.dp)
|
||||
} else if (data.status == RoomBgInfo.Status.S_REJECT) { //不过审
|
||||
binding.statusBuy.text = R.string.Reject.getString()
|
||||
binding.statusBuy.setTextColor(R.color.color_ff5656.getColor())
|
||||
binding.statusBuy.setGradientDrawable(
|
||||
Color.parseColor("#00000000"),
|
||||
-1,
|
||||
Color.parseColor("#00000000"),
|
||||
-1,
|
||||
-1f
|
||||
)
|
||||
binding.statusBuy.changeStrikeColor(R.color.color_ff5656.getColor(), 1.dp)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
helper.addOnClickListener(R.id.statusPlay)
|
||||
helper.addOnClickListener(R.id.statusBuy)
|
||||
helper.addOnClickListener(R.id.statusDel)
|
||||
helper.addOnClickListener(R.id.bg)
|
||||
}
|
||||
|
||||
private fun defViewStatus(binding: ItemRoomBgSetBinding) {
|
||||
binding.statusLimit.isVisible = false
|
||||
binding.statusGif.isVisible = false
|
||||
binding.statusPlay.isVisible = false
|
||||
binding.statusDel.isVisible = false
|
||||
binding.price.isVisible = false
|
||||
binding.statusBuy.isVisible = false
|
||||
}
|
||||
|
||||
private fun getTimeText( hour:Int): String {
|
||||
var text = ""
|
||||
if (hour >= 24) {
|
||||
text = R.string.sDays.getString((hour / 24).toInt())
|
||||
} else {
|
||||
text = R.string.unDay.getString()
|
||||
}
|
||||
return text
|
||||
}
|
||||
|
||||
|
||||
private fun getPriceText( price :Int,hour:Int): String {
|
||||
return R.string.s_sDays.getString(price,(hour / 24).toInt())
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private fun getBoomInfo(roomUid: Long): Single<RoomBgInfo> {
|
||||
return api.getBoomInfo(roomUid)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private fun postDel(id: Long): Single<String> {
|
||||
return api.postDel(AvRoomDataManager.get().roomUid, id)
|
||||
.compose(RxHelper.handleIgnoreData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private fun postSelect(id: Long): Single<String> {
|
||||
return api.postSelect(AvRoomDataManager.get().roomUid, id)
|
||||
.compose(RxHelper.handleIgnoreData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
|
||||
private val api: Api = RxNet.create(Api::class.java);
|
||||
|
||||
interface Api {
|
||||
@GET("/room/background/list")
|
||||
fun getBoomInfo(@Query("roomUid") roomUid: Long): Single<ServiceResult<RoomBgInfo>>
|
||||
|
||||
@POST("/room/background/del")
|
||||
fun postDel(
|
||||
@Query("roomUid") roomUid: Long,
|
||||
@Query("id") id: Long
|
||||
): Single<ServiceResult<JsonElement>>
|
||||
|
||||
@POST("/room/background/select")
|
||||
fun postSelect(
|
||||
@Query("roomUid") roomUid: Long,
|
||||
@Query("id") id: Long
|
||||
): Single<ServiceResult<JsonElement>>
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@@ -111,7 +111,7 @@ class RoomBoomInfoDialog : BaseDialogFragment<DialogRoomBoomInfoBinding>() {
|
||||
|
||||
private fun setInfo(indexData: BoomInfo?) {
|
||||
indexData?.let {
|
||||
|
||||
reSetView()
|
||||
if (it.rank && it.roomBoomRankVos.isVerify()) {
|
||||
binding.avatarLayout.setVis(true)
|
||||
binding.rewardLayout.visibility = View.INVISIBLE
|
||||
@@ -152,7 +152,7 @@ class RoomBoomInfoDialog : BaseDialogFragment<DialogRoomBoomInfoBinding>() {
|
||||
animView.setLoop(Int.MAX_VALUE)
|
||||
animView.loadAnim2(it.vapUrl)
|
||||
|
||||
if (UserModel.get().partitionId == 2L) {
|
||||
if (UserModel.get().isArUser) {
|
||||
binding.avatarTime.text = R.string.roomBoomInfoRankHint2.getString()
|
||||
} else {
|
||||
binding.avatarTime.text = R.string.roomBoomInfoRankHint.getString()
|
||||
@@ -161,6 +161,15 @@ class RoomBoomInfoDialog : BaseDialogFragment<DialogRoomBoomInfoBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun reSetView() {
|
||||
binding.avatar1.setImageResource(R.drawable.default_avatar)
|
||||
binding.avatar2.setImageResource(R.drawable.default_avatar)
|
||||
binding.avatar3.setImageResource(R.drawable.default_avatar)
|
||||
binding.nick1.text = ""
|
||||
binding.nick2.text = ""
|
||||
binding.nick3.text = ""
|
||||
}
|
||||
|
||||
|
||||
fun setPro(speed: Int, level: Int) {
|
||||
if (level != indexLevel) return
|
||||
|
@@ -24,7 +24,6 @@ import com.chwl.core.room.bean.RoomIcon
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.room.bean.RoomModeType
|
||||
import com.chwl.core.room.core.RoomDataService
|
||||
import com.chwl.core.room.game.GameModel
|
||||
import com.chwl.core.room.game.GameModel.getGameList
|
||||
import com.chwl.core.room.game.bean.BaiShunGameConfig
|
||||
import com.chwl.core.room.game.bean.GameInfo
|
||||
@@ -38,9 +37,8 @@ import com.chwl.library.utils.SingleToastUtil
|
||||
import com.example.lib_utils.ktx.asLifecycle
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.gson.Gson
|
||||
import com.unity3d.splash.services.core.lifecycle.LifecycleEvent
|
||||
import io.reactivex.Single
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
|
||||
class RoomGameListDialog :
|
||||
BottomSheetDialogFragment(), LifecycleObserver {
|
||||
private var binding: RoomGameplayDialogBinding? = null
|
||||
@@ -55,7 +53,7 @@ class RoomGameListDialog :
|
||||
|
||||
private var mStatus = -1
|
||||
private var mGameData = arrayListOf<GameInfo>()
|
||||
var listener: RoomGameplayDialog.GameplayDialogListener? = null
|
||||
var listener: GameplayDialogListener? = null
|
||||
override fun getTheme(): Int {
|
||||
return R.style.ErbanBottomSheetDialogDimFalse
|
||||
}
|
||||
@@ -102,8 +100,10 @@ class RoomGameListDialog :
|
||||
|
||||
private fun initView() {
|
||||
adapter.setOnItemClickListener { _, view, position ->
|
||||
val item = adapter.getItem(position) as GameInfo
|
||||
switchGame(item)
|
||||
val item = adapter.data.getOrNull(position)
|
||||
if (item != null) {
|
||||
switchGame(item)
|
||||
}
|
||||
}
|
||||
binding?.recyclerView?.adapter = adapter
|
||||
}
|
||||
@@ -176,11 +176,23 @@ class RoomGameListDialog :
|
||||
private fun roomIconToGameInfo(list : List<RoomIcon>): ArrayList<GameInfo> {
|
||||
val newData = arrayListOf<GameInfo>()
|
||||
list.forEachIndexed { index, roomIcon ->
|
||||
if (roomIcon.isBaiShunGame()) {
|
||||
newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:""))
|
||||
}else if(roomIcon.isFindLove()){
|
||||
newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"", isFindLove = true))
|
||||
// if (roomIcon.isBaiShunGame()) {
|
||||
// newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"",code = roomIcon.code))
|
||||
// }else if(roomIcon.isFindLove()){
|
||||
// newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"", code = roomIcon.code))
|
||||
// }else if(roomIcon.isLeadercc()){
|
||||
// newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"", code = roomIcon.code))
|
||||
// }
|
||||
val gameInfo = GameInfo().apply {
|
||||
name = roomIcon.name ?: ""
|
||||
pic = roomIcon.icon ?: ""
|
||||
pic2 = roomIcon.icon ?: ""
|
||||
skipContent = roomIcon.skipContent ?: ""
|
||||
ruleValue = roomIcon.ruleValue ?: ""
|
||||
code = roomIcon.code ?: ""
|
||||
showType = roomIcon.showType ?: 0
|
||||
}
|
||||
newData.add(gameInfo)
|
||||
}
|
||||
return newData
|
||||
}
|
||||
@@ -236,45 +248,80 @@ class RoomGameListDialog :
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.room_switch_game_failed_in_game))
|
||||
return
|
||||
}
|
||||
if (!isShowChangeGame()) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_04))
|
||||
return
|
||||
}
|
||||
//todo do 开启小游戏时的模式限制
|
||||
// if (!isShowChangeGame()) {
|
||||
// SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_04))
|
||||
// return
|
||||
// }
|
||||
|
||||
if (dialogManager == null) {
|
||||
dialogManager = DialogManager(context)
|
||||
}
|
||||
dialogManager?.showOkCancelDialog(
|
||||
getString(R.string.room_switch_game_tips)
|
||||
) {
|
||||
|
||||
if (gameInfo.mgId.isNotEmpty()) {
|
||||
if (gameInfo.isStandardRoom()) {
|
||||
OpenRoomHelper.updateRoomInfo(
|
||||
activity as BaseActivity,
|
||||
AvRoomDataManager.get().mCurrentRoomInfo,
|
||||
RoomInfo.ROOMTYPE_HOME_PARTY,
|
||||
0,
|
||||
false
|
||||
)
|
||||
} else {
|
||||
OpenRoomHelper.updateRoomInfo(
|
||||
activity as BaseActivity,
|
||||
AvRoomDataManager.get().mCurrentRoomInfo,
|
||||
RoomInfo.ROOMTYPE_GAME,
|
||||
JavaUtil.str2long(gameInfo.mgId),
|
||||
false
|
||||
)
|
||||
}
|
||||
}else if(!gameInfo.skipContent.isNullOrEmpty() || !gameInfo.ruleValue.isNullOrEmpty()){
|
||||
if (gameInfo.isFindLove) {
|
||||
|
||||
if (gameInfo.isLuckyBag()) {
|
||||
listener?.onShowLuckyBag()
|
||||
dismissAllowingStateLoss()
|
||||
} else {
|
||||
dialogManager?.showOkCancelDialog(
|
||||
getString(R.string.room_switch_game_tips)
|
||||
) {
|
||||
|
||||
//todo do 游戏弹窗列表 点击事件 ,code 优先判断
|
||||
if (gameInfo.isFindLove()) {
|
||||
jumpFindLove()
|
||||
} else {
|
||||
}else if (gameInfo.isLeadercc()) {
|
||||
jumpLeaderccGame(gameInfo)
|
||||
} else if (gameInfo.mgId?.isNotEmpty() == true) {
|
||||
if (gameInfo.isStandardRoom()) {
|
||||
OpenRoomHelper.updateRoomInfo(
|
||||
activity as BaseActivity,
|
||||
AvRoomDataManager.get().mCurrentRoomInfo,
|
||||
RoomInfo.ROOMTYPE_HOME_PARTY,
|
||||
0,
|
||||
false
|
||||
)
|
||||
} else {
|
||||
OpenRoomHelper.updateRoomInfo(
|
||||
activity as BaseActivity,
|
||||
AvRoomDataManager.get().mCurrentRoomInfo,
|
||||
RoomInfo.ROOMTYPE_GAME,
|
||||
JavaUtil.str2long(gameInfo.mgId),
|
||||
false
|
||||
)
|
||||
}
|
||||
}else {
|
||||
jumpBaiShunGame(gameInfo)
|
||||
}
|
||||
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun jumpLeaderccGame(data: GameInfo) {
|
||||
try {
|
||||
val url = data.skipContent
|
||||
val ruleValue = Gson().fromJson<RoomIcon.RuleValueBean>(
|
||||
data.ruleValue,
|
||||
RoomIcon.RuleValueBean::class.java
|
||||
)
|
||||
val config = Gson().fromJson<BaiShunGameConfig>(
|
||||
ruleValue.RESERVE,
|
||||
BaiShunGameConfig::class.java
|
||||
)
|
||||
|
||||
if (config != null && url != null) {
|
||||
config.reloadDynamicParams()
|
||||
config.showType = data.showType
|
||||
listener?.onShowLeaderccGame(url, config)
|
||||
} else {
|
||||
SingleToastUtil.showToast(R.string.manager_trtc_trtcengineadapter_042)
|
||||
}
|
||||
|
||||
dismissAllowingStateLoss()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,7 +350,9 @@ class RoomGameListDialog :
|
||||
}
|
||||
|
||||
private fun jumpFindLove() {
|
||||
GoldBoxHelper.handleBoxClick(requireContext())
|
||||
context?.let {
|
||||
GoldBoxHelper.handleBoxClick(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
@@ -329,12 +378,16 @@ class RoomGameListDialog :
|
||||
|
||||
//这里的2和4是服务端定义的错误状态 关闭排麦模式和关闭PK模式!
|
||||
private fun isShowChangeGame(): Boolean {
|
||||
//todo do 游戏模式限制判断
|
||||
val currentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo
|
||||
return currentRoomInfo != null && currentRoomInfo.type != RoomInfo.ROOM_TYPE_SINGLE &&
|
||||
(currentRoomInfo.roomModeType == RoomModeType.NORMAL_MODE || currentRoomInfo.roomModeType == 2 || currentRoomInfo.roomModeType == 4)
|
||||
return currentRoomInfo != null
|
||||
&& currentRoomInfo.type != RoomInfo.ROOM_TYPE_SINGLE
|
||||
&& (currentRoomInfo.roomModeType == RoomModeType.NORMAL_MODE || currentRoomInfo.roomModeType == 2 || currentRoomInfo.roomModeType == 4)
|
||||
}
|
||||
|
||||
interface GameplayDialogListener {
|
||||
fun onShowBaiShunGame(url: String, config: BaiShunGameConfig)
|
||||
fun onShowLeaderccGame(url: String, config: BaiShunGameConfig)
|
||||
fun onShowLuckyBag()
|
||||
}
|
||||
}
|
@@ -10,7 +10,6 @@ import androidx.core.view.isVisible
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.activity.CreatePKActivity
|
||||
@@ -218,7 +217,7 @@ class RoomGameplayDialog : BottomSheetDialogFragment() {
|
||||
val url = data.skipContent
|
||||
if (data.skipType == 3 && !url.isNullOrEmpty()) {
|
||||
if (data.showType == 2) {
|
||||
RoomWebDialogActivity.start(requireContext(), url, false)
|
||||
RoomWebDialogActivity.start(context, url, false)
|
||||
} else {
|
||||
CommonWebViewActivity.start(context, url)
|
||||
}
|
||||
|
@@ -0,0 +1,215 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.bean.LuckyBagDetailEntity
|
||||
import com.chwl.app.avroom.bean.LuckyBagDetailEntity.BiliType.RECEIVED
|
||||
import com.chwl.app.avroom.bean.LuckyBagDetailEntity.BiliType.SENT
|
||||
import com.chwl.app.avroom.bean.LuckyBagEntity
|
||||
import com.chwl.app.base.BaseDialogFragment
|
||||
import com.chwl.app.bindadapter.BaseBindingAdapter
|
||||
import com.chwl.app.common.EmptyViewHelper
|
||||
import com.chwl.app.databinding.DialogRoomLuckyBagBiliBinding
|
||||
import com.chwl.app.databinding.ItemRoomLuckyBagBiliBinding
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.user.UserModel
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.doToast
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.common.util.toColor
|
||||
import com.chwl.library.common.util.toDP
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.chwl.library.widget.text.DrawableTextView
|
||||
import com.example.lib_utils.ktx.getColor
|
||||
import com.example.lib_utils.ktx.getDrawable
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import io.reactivex.Single
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Query
|
||||
|
||||
class RoomLuckyBagBiliDialog : BaseDialogFragment<DialogRoomLuckyBagBiliBinding>() {
|
||||
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = 485.toDP()
|
||||
override var dimAmount = 0f
|
||||
override var gravity = Gravity.BOTTOM
|
||||
|
||||
private lateinit var mAdapter : RoomLuckyBagBiliAdapter
|
||||
|
||||
private var mSentPageNum = 1
|
||||
private var mReceivedPageNum = 1
|
||||
private var mType = RECEIVED
|
||||
|
||||
private var mSentData = mutableListOf<LuckyBagDetailEntity>()
|
||||
private var mReceivedData = mutableListOf<LuckyBagDetailEntity>()
|
||||
|
||||
override fun init() {
|
||||
mAdapter = RoomLuckyBagBiliAdapter()
|
||||
mAdapter.emptyView = EmptyViewHelper.createEmptyView(context,R.drawable.ic_lucky_bag_empty,"")
|
||||
binding.srlLayout.isEnableRefresh = false
|
||||
binding.srlLayout.setOnLoadmoreListener {
|
||||
loadData()
|
||||
}
|
||||
binding.rvList.adapter = mAdapter
|
||||
binding.rvList.layoutManager = LinearLayoutManager(context,RecyclerView.VERTICAL,false)
|
||||
|
||||
UserModel.get().cacheLoginUserInfo?.let {
|
||||
binding.avatar.loadAvatar(it.avatar)
|
||||
binding.nick.text = it.nick
|
||||
}
|
||||
|
||||
|
||||
binding.btnBack.click {
|
||||
dismiss()
|
||||
}
|
||||
|
||||
binding.btnReceived.click {
|
||||
changeBtn(binding.btnReceived,true)
|
||||
changeBtn(binding.btnSent,false)
|
||||
mType = RECEIVED
|
||||
mAdapter.isReceived = true
|
||||
mAdapter.setNewData(mReceivedData)
|
||||
checkData(mReceivedData)
|
||||
}
|
||||
|
||||
binding.btnSent.click {
|
||||
changeBtn(binding.btnSent,true)
|
||||
changeBtn(binding.btnReceived,false)
|
||||
mType = SENT
|
||||
mAdapter.isReceived = false
|
||||
mAdapter.setNewData(mSentData)
|
||||
checkData(mSentData)
|
||||
}
|
||||
|
||||
binding.btnReceived.performClick()
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun checkData(data: MutableList<LuckyBagDetailEntity>) {
|
||||
if (!data.isVerify()) {
|
||||
loadData()
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
val pageNum = if (mType == RECEIVED) mReceivedPageNum else mSentPageNum
|
||||
getDetails(mType, pageNum, 20)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
if (pageNum == 1) {
|
||||
if (mType == RECEIVED) {
|
||||
mReceivedData.clear()
|
||||
mReceivedData = it.toMutableList()
|
||||
mAdapter.setNewData(mReceivedData)
|
||||
} else {
|
||||
mSentData.clear()
|
||||
mSentData = it.toMutableList()
|
||||
mAdapter.setNewData(mSentData)
|
||||
}
|
||||
} else {
|
||||
// if (mType == RECEIVED) {
|
||||
// mReceivedData.addAll(it)
|
||||
// } else {
|
||||
// mSentData.addAll(it)
|
||||
// }
|
||||
mAdapter.addData(it)
|
||||
}
|
||||
|
||||
if (it.size == 20) {
|
||||
if (mType == RECEIVED) {
|
||||
mReceivedPageNum++
|
||||
} else {
|
||||
mSentPageNum++
|
||||
}
|
||||
}
|
||||
binding.srlLayout.isEnableLoadmore = it.size == 20
|
||||
binding.srlLayout.finishLoadmore()
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.doToast()
|
||||
binding.srlLayout.finishLoadmore()
|
||||
}.subscribe()
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
mActionCallBack?.onAction(0,0)
|
||||
super.onDismiss(dialog)
|
||||
}
|
||||
|
||||
|
||||
private fun changeBtn(text: DrawableTextView, select: Boolean) {
|
||||
if (select) {
|
||||
text.changeGradientColor("#FF9F00".toColor(), -1, "#FFF437".toColor())
|
||||
text.setTextColor(R.color.color_292601.getColor())
|
||||
} else {
|
||||
text.changeGradientColor("#00FF9F00".toColor(),-1,"#00FFF437".toColor())
|
||||
text.setTextColor(R.color.color_FFEA5C.getColor())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
class RoomLuckyBagBiliAdapter : BaseBindingAdapter<ItemRoomLuckyBagBiliBinding, LuckyBagDetailEntity>() {
|
||||
|
||||
var isReceived = true
|
||||
|
||||
override fun onBindView(
|
||||
viewBinding: ItemRoomLuckyBagBiliBinding,
|
||||
data: LuckyBagDetailEntity,
|
||||
pos: Int
|
||||
) {
|
||||
if (data.type == LuckyBagEntity.Type.GIFT) {
|
||||
if (isReceived) {
|
||||
viewBinding.item.text = "${data.giftName}*${data.num}"
|
||||
} else {
|
||||
viewBinding.item.text = "${R.string.gift_action.getString()}*${data.num}"
|
||||
}
|
||||
viewBinding.item.setDrawableEmpty(null,null,null,null)
|
||||
} else {
|
||||
viewBinding.item.text = data.originalAmount?.toString()?:""
|
||||
viewBinding.item.setDrawableEmpty(null,null,R.drawable.ic_coin_84.getDrawable(),null)
|
||||
}
|
||||
|
||||
viewBinding.time.text = data.createTimeStr?:""
|
||||
|
||||
if (isReceived) {
|
||||
viewBinding.nick.text = data.nick?:""
|
||||
} else {
|
||||
viewBinding.nick.text = if (data.type == LuckyBagEntity.Type.GIFT) R.string._ver_24_Gift_Lucky_Bag.getString() else R.string._ver_24_Coin_Lucky_Bag.getString()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun getDetails(type: Int, page: Int, pageSize: Int): Single<List<LuckyBagDetailEntity>> {
|
||||
return api.getDetails(type, page, pageSize)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
|
||||
private val api: Api = RxNet.create(Api::class.java);
|
||||
|
||||
interface Api {
|
||||
@GET("/new-red-envelope/detail")
|
||||
fun getDetails(
|
||||
@Query("type") type: Int,
|
||||
@Query("pageNo") page: Int,
|
||||
@Query("pageSize") pageSize: Int,
|
||||
): Single<ServiceResult<List<LuckyBagDetailEntity>>>
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,870 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.view.Gravity
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.bean.LuckyBagGiftBody
|
||||
import com.chwl.app.avroom.bean.LuckyBagGiftItemBody
|
||||
import com.chwl.app.avroom.bean.LuckyBagGoldBody
|
||||
import com.chwl.app.base.BaseDialogFragment
|
||||
import com.chwl.app.bindadapter.BaseBindingAdapter
|
||||
import com.chwl.app.bindadapter.BaseBindingViewHolder
|
||||
import com.chwl.app.databinding.DialogRoomLuckyBagBinding
|
||||
import com.chwl.app.databinding.ItemRoomLuckyBagGiftBinding
|
||||
import com.chwl.app.databinding.ItemRoomLuckyBagGoldBinding
|
||||
import com.chwl.app.databinding.ItemRoomLuckyBagTimeBinding
|
||||
import com.chwl.app.ui.pay.ChargeActivity
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.ui.utils.loadImage
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity
|
||||
import com.chwl.app.utils.KeyBoardUtils
|
||||
import com.chwl.app.utils.RoomHelperManager
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.gift.GiftModel
|
||||
import com.chwl.core.gift.bean.GiftType
|
||||
import com.chwl.core.gift.bean.LuckyBagGift
|
||||
import com.chwl.core.gift.bean.LuckyBagGold
|
||||
import com.chwl.core.gift.bean.LuckyBagNumber
|
||||
import com.chwl.core.gift.bean.LuckyBagNumber.Type
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.user.UserModel
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.core.widget.layoutmanager.pagergridlayoutmanager.PagerGridLayoutManager
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.doToast
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.common.util.postSafe
|
||||
import com.chwl.library.common.util.setAutoSizeModel
|
||||
import com.chwl.library.common.util.setMargin
|
||||
import com.chwl.library.common.util.setRL
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.common.util.toColor
|
||||
import com.chwl.library.common.util.toDP
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.example.lib_utils.ktx.getColor
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import com.example.lib_utils.ktx.setPadding2
|
||||
import com.example.lib_utils.spannable.SpannableTextBuilder
|
||||
import com.google.gson.JsonElement
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.youth.banner.config.IndicatorConfig
|
||||
import io.reactivex.Single
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.POST
|
||||
|
||||
class RoomLuckyBagDialog : BaseDialogFragment<DialogRoomLuckyBagBinding>() {
|
||||
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
override var dimAmount = 0f
|
||||
override var gravity = Gravity.BOTTOM
|
||||
|
||||
|
||||
private lateinit var mGiftAdapter : GiftAdapter
|
||||
private lateinit var mGiftTimeAdapter : NumberItemAdapter
|
||||
private lateinit var mGoldAdapter : GoldAdapter
|
||||
private lateinit var mGoldNumAdapter : NumberItemAdapter
|
||||
private lateinit var mGoldTimeAdapter : NumberItemAdapter
|
||||
|
||||
private var mPageManager : PagerGridLayoutManager?=null
|
||||
|
||||
private var mGiftData = mutableListOf<LuckyBagGift>()
|
||||
private var mGiftDataSelect = mutableListOf<LuckyBagGift>()
|
||||
private var mGiftDataSelectPos = HashMap<Int,LuckyBagGift>()
|
||||
|
||||
private var mIsGift = true
|
||||
private var mIsGiftReview = false
|
||||
|
||||
private var mGiftSelect = -1
|
||||
private var mGiftTimeSelect = -1
|
||||
|
||||
private var mGoldSelect = -1
|
||||
private var mGoldNumSelect = -1
|
||||
private var mGoldTimeSelect = -1
|
||||
|
||||
|
||||
|
||||
override fun init() {
|
||||
|
||||
binding.redBagDesc.text = R.string._ver_24_sendHint.getString(0,0)
|
||||
binding.giftIndicator.setRL()
|
||||
|
||||
mGiftAdapter = GiftAdapter()
|
||||
mGiftAdapter.onItemChildClickListener = object : BaseQuickAdapter.OnItemChildClickListener {
|
||||
override fun onItemChildClick(
|
||||
adapter: BaseQuickAdapter<*, *>?,
|
||||
view: View?,
|
||||
position: Int
|
||||
) {
|
||||
view?.let {
|
||||
when (it.id) {
|
||||
|
||||
R.id.etNum -> {
|
||||
mGiftSelect = position
|
||||
showInputLayout()
|
||||
}
|
||||
|
||||
R.id.up -> {
|
||||
if (mIsGiftReview) {
|
||||
if (position.isVerify(mGiftDataSelect)) {
|
||||
val data = mGiftDataSelect[position]
|
||||
data.count = data.count.plus(1).coerceAtMost(99)
|
||||
mGiftAdapter.notifyItemChanged(position,1)
|
||||
mGiftDataSelectPos.forEach { (t, u) ->
|
||||
if (u.giftId == data.giftId) {
|
||||
u.count = data.count
|
||||
mGiftData.getOrNull(t)?.count = data.count
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
if (position.isVerify(mGiftData)) {
|
||||
val data = mGiftData[position]
|
||||
data.count = data.count.plus(1).coerceAtMost(99)
|
||||
mGiftAdapter.notifyItemChanged(position,1)
|
||||
mGiftDataSelectPos[position] = data
|
||||
}
|
||||
}
|
||||
showGiftCoin()
|
||||
}
|
||||
|
||||
R.id.down -> {
|
||||
if (mIsGiftReview) {
|
||||
if (position.isVerify(mGiftDataSelect)) {
|
||||
val data = mGiftDataSelect[position]
|
||||
data.count = data.count.minus(1).coerceAtLeast(0)
|
||||
mGiftAdapter.notifyItemChanged(position,1)
|
||||
|
||||
mGiftDataSelectPos.forEach { (t, u) ->
|
||||
if (u.giftId == data.giftId) {
|
||||
u.count = data.count
|
||||
mGiftData.getOrNull(t)?.count = data.count
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
if (position.isVerify(mGiftData)) {
|
||||
val data = mGiftData[position]
|
||||
data.count = data.count.minus(1).coerceAtLeast(0)
|
||||
mGiftAdapter.notifyItemChanged(position,1)
|
||||
|
||||
if (data.count <= 0) {
|
||||
mGiftDataSelectPos.remove(position)
|
||||
}
|
||||
}
|
||||
}
|
||||
showGiftCoin()
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mPageManager = PagerGridLayoutManager(2,4,PagerGridLayoutManager.HORIZONTAL,false).apply {
|
||||
setPagerChangedListener(object : PagerGridLayoutManager.PagerChangedListener {
|
||||
|
||||
override fun onPagerCountChanged(pagerCount: Int) {
|
||||
binding.giftIndicator.initView(IndicatorConfig().apply {
|
||||
radius = 50.toDP()
|
||||
selectedColor = R.color.color_FFEA5C.getColor()
|
||||
normalColor = R.color.black_transparent_30.getColor()
|
||||
selectedWidth = 5.toDP()
|
||||
normalWidth = 5.toDP()
|
||||
indicatorSpace = 3.toDP()
|
||||
gravity = IndicatorConfig.Direction.CENTER
|
||||
isAttachToBanner = false
|
||||
currentPosition = 0
|
||||
indicatorSize = pagerCount
|
||||
})
|
||||
}
|
||||
|
||||
override fun onPagerIndexSelected(prePagerIndex: Int, currentPagerIndex: Int) {
|
||||
binding.giftIndicator.onPageSelected(currentPagerIndex)
|
||||
}
|
||||
})
|
||||
}
|
||||
binding.rvListGiftType.layoutManager = mPageManager
|
||||
binding.rvListGiftType.adapter = mGiftAdapter
|
||||
|
||||
mGiftTimeAdapter = NumberItemAdapter()
|
||||
mGiftTimeAdapter.onItemClickListener = object : BaseQuickAdapter.OnItemClickListener {
|
||||
override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
|
||||
mGiftTimeAdapter.select(position)
|
||||
mGiftTimeSelect = mGiftTimeAdapter?.data?.getOrNull(position)?.number?:0
|
||||
}
|
||||
}
|
||||
binding.rvListGiftTime.layoutManager = GridLayoutManager(context,4,RecyclerView.VERTICAL,false)
|
||||
binding.rvListGiftTime.adapter = mGiftTimeAdapter
|
||||
|
||||
|
||||
|
||||
|
||||
//--金币礼包
|
||||
mGoldAdapter = GoldAdapter()
|
||||
mGoldAdapter.onItemClickListener = object : BaseQuickAdapter.OnItemClickListener {
|
||||
override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
|
||||
mGoldAdapter.select(position)
|
||||
mGoldSelect = mGoldAdapter?.data?.getOrNull(position)?.number?:0
|
||||
showGoldCoin()
|
||||
}
|
||||
}
|
||||
binding.rvListGoldType.layoutManager = GridLayoutManager(context,4,RecyclerView.VERTICAL,false)
|
||||
binding.rvListGoldType.adapter = mGoldAdapter
|
||||
|
||||
|
||||
|
||||
mGoldNumAdapter = NumberItemAdapter()
|
||||
mGoldNumAdapter.onItemClickListener = object : BaseQuickAdapter.OnItemClickListener {
|
||||
override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
|
||||
mGoldNumAdapter.select(position)
|
||||
mGoldNumSelect = mGoldNumAdapter?.data?.getOrNull(position)?.number?:0
|
||||
showGoldCoin()
|
||||
}
|
||||
}
|
||||
binding.rvListGoldNum.layoutManager = GridLayoutManager(context,4,RecyclerView.VERTICAL,false)
|
||||
binding.rvListGoldNum.adapter = mGoldNumAdapter
|
||||
|
||||
mGoldTimeAdapter = NumberItemAdapter()
|
||||
mGoldTimeAdapter.onItemClickListener = object : BaseQuickAdapter.OnItemClickListener {
|
||||
override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
|
||||
mGoldTimeAdapter.select(position)
|
||||
mGoldTimeSelect = mGoldTimeAdapter?.data?.getOrNull(position)?.number?:0
|
||||
}
|
||||
}
|
||||
binding.rvListGoldTime.layoutManager = GridLayoutManager(context,4,RecyclerView.VERTICAL,false)
|
||||
binding.rvListGoldTime.adapter = mGoldTimeAdapter
|
||||
|
||||
|
||||
|
||||
|
||||
val giftInfoList = GiftModel.get().getGiftInfoList(GiftType.GIFT_TYPE_NORMAL)
|
||||
giftInfoList.forEach {
|
||||
mGiftData.add(LuckyBagGift().apply {
|
||||
giftId = it.giftId.toLong()
|
||||
giftName = it.giftName
|
||||
giftPrice = it.goldPrice
|
||||
giftPic = it.giftUrl
|
||||
})
|
||||
}
|
||||
giftInfoList.isVerify(0){
|
||||
it.isSelected = true
|
||||
mGiftSelect = 0
|
||||
}
|
||||
|
||||
|
||||
RoomHelperManager.mLuckyBagConfig?.let { config ->
|
||||
val goldData = arrayListOf<LuckyBagGold>()
|
||||
val goldNumData = arrayListOf<LuckyBagNumber>()
|
||||
val goldTimeData = arrayListOf<LuckyBagNumber>()
|
||||
val giftTimeData = arrayListOf<LuckyBagNumber>()
|
||||
|
||||
|
||||
config.goldItems.forEach {
|
||||
goldData.add(LuckyBagGold().apply {
|
||||
number = it
|
||||
})
|
||||
}
|
||||
|
||||
config.numItems.forEach {
|
||||
goldNumData.add(LuckyBagNumber().apply {
|
||||
type = Type.num
|
||||
number = it
|
||||
})
|
||||
}
|
||||
|
||||
config.timeItems.forEach {
|
||||
goldTimeData.add(LuckyBagNumber().apply {
|
||||
type = Type.time
|
||||
number = it
|
||||
})
|
||||
giftTimeData.add(LuckyBagNumber().apply {
|
||||
type = Type.time
|
||||
number = it
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
mGoldAdapter.setNewData(goldData)
|
||||
mGoldNumAdapter.setNewData(goldNumData)
|
||||
mGoldTimeAdapter.setNewData(goldTimeData)
|
||||
|
||||
mGiftTimeAdapter.setNewData(giftTimeData)
|
||||
|
||||
goldData.isVerify(0){
|
||||
it.isSelect = true
|
||||
mGoldSelect = it.number
|
||||
}
|
||||
goldNumData.isVerify(0){
|
||||
it.isSelect = true
|
||||
mGoldNumSelect= it.number
|
||||
}
|
||||
goldTimeData.isVerify(0){
|
||||
it.isSelect = true
|
||||
mGoldTimeSelect = it.number
|
||||
}
|
||||
giftTimeData.isVerify(0){
|
||||
it.isSelect = true
|
||||
mGiftTimeSelect = it.number
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
binding.bgGiftBag.click {
|
||||
tabChange(true)
|
||||
}
|
||||
binding.bgGoldBag.click {
|
||||
tabChange(false)
|
||||
}
|
||||
|
||||
binding.notifyView.avatar.loadAvatar(UserModel.get().cacheLoginUserInfo?.avatar)
|
||||
binding.notifyView.nick.text = UserModel.get().cacheLoginUserInfo?.nick
|
||||
binding.notifyView.desc.text = if (mIsGift) R.string._ver_24_lucky_bag_room_notify_gift.getString() else R.string._ver_24_lucky_bag_room_notify_coin.getString()
|
||||
|
||||
binding.btnConfirm.click {
|
||||
if (isSenting) return@click
|
||||
if (checkSendData()) {
|
||||
if (mIsGift) {
|
||||
if (!mIsGiftReview) {
|
||||
showGiftReview()
|
||||
} else {
|
||||
doSendGiftBag()
|
||||
}
|
||||
} else {
|
||||
doSendGoldBag()
|
||||
}
|
||||
} else {
|
||||
R.string._ver_24_sentLuckyBagNoSelect.doToast()
|
||||
}
|
||||
}
|
||||
|
||||
binding.btnModify.click {
|
||||
showGiftSelectView()
|
||||
}
|
||||
|
||||
binding.btnBill.click {
|
||||
val root = binding.root
|
||||
root.setVis(false)
|
||||
val biliDialog = RoomLuckyBagBiliDialog()
|
||||
biliDialog.mActionCallBack = object : Action {
|
||||
override fun onAction(type: Int, data: Any?) {
|
||||
if (isViewLoaded && isAdded) {
|
||||
root.setVis(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
biliDialog.show(context)
|
||||
}
|
||||
|
||||
binding.btnMore.click {
|
||||
DialogWebViewActivity.start(binding.btnMore.context,UriProvider.getLuckyBagRule(),false,(ScreenUtil.screenHeight * 0.4).toInt())
|
||||
}
|
||||
|
||||
binding.inputLayout.setOnTouchListener { _: View?, _: MotionEvent? ->
|
||||
binding.inputEdit.clearFocus()
|
||||
binding.inputLayout.visibility = View.GONE
|
||||
KeyBoardUtils.hideKeyBoard(activity, binding.inputEdit)
|
||||
|
||||
if (mIsGiftReview) {
|
||||
if (mGiftSelect.isVerify(mGiftDataSelect)) {
|
||||
val data = mGiftDataSelect[mGiftSelect]
|
||||
data.isSelect = false
|
||||
mGiftAdapter.notifyItemChanged(mGiftSelect,1)
|
||||
}
|
||||
}else{
|
||||
if (mGiftSelect.isVerify(mGiftData)) {
|
||||
val data = mGiftData[mGiftSelect]
|
||||
data.isSelect = false
|
||||
mGiftAdapter.notifyItemChanged(mGiftSelect,1)
|
||||
}
|
||||
}
|
||||
|
||||
mGiftSelect = -1
|
||||
false
|
||||
}
|
||||
|
||||
binding.inputSend.click {
|
||||
var count = 0
|
||||
val text = binding.inputEdit.text.toString()
|
||||
if (text.isVerify()) {
|
||||
count = text.toInt()
|
||||
}
|
||||
|
||||
if (mIsGiftReview) {
|
||||
|
||||
if (mGiftSelect.isVerify(mGiftDataSelect)) {
|
||||
val data = mGiftDataSelect[mGiftSelect]
|
||||
data.count = count
|
||||
data.isSelect = false
|
||||
mGiftAdapter.notifyItemChanged(mGiftSelect,1)
|
||||
|
||||
mGiftDataSelectPos.forEach { (t, u) ->
|
||||
if (u.giftId == data.giftId) {
|
||||
u.count = data.count
|
||||
mGiftData.getOrNull(t)?.count = data.count
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
if (mGiftSelect.isVerify(mGiftData)) {
|
||||
val data = mGiftData[mGiftSelect]
|
||||
data.count = count
|
||||
data.isSelect = false
|
||||
mGiftAdapter.notifyItemChanged(mGiftSelect,1)
|
||||
|
||||
if (count > 0) {
|
||||
mGiftDataSelectPos[mGiftSelect] = data
|
||||
} else {
|
||||
mGiftDataSelectPos.remove(mGiftSelect)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
binding.inputEdit.clearFocus()
|
||||
binding.inputLayout.visibility = View.GONE
|
||||
KeyBoardUtils.hideKeyBoard(activity, binding.inputEdit)
|
||||
mGiftSelect = -1
|
||||
|
||||
showGiftCoin()
|
||||
}
|
||||
|
||||
binding.userGold.text = (PayModel.get().currentWalletInfo?.diamondNum ?: 0.0).toInt().toString()
|
||||
binding.userGold.click {
|
||||
ChargeActivity.start(context)
|
||||
}
|
||||
|
||||
binding.btnGoldBag.setAutoSizeModel()
|
||||
binding.btnGiftBag.setAutoSizeModel()
|
||||
|
||||
|
||||
tabChange(true)
|
||||
}
|
||||
|
||||
private fun tabChange(isGift:Boolean) {
|
||||
if (isGift) {
|
||||
binding.bgGiftBag.setBackgroundResource(R.drawable.ic_lucky_bag_tab_bg_left_s)
|
||||
binding.bgGoldBag.setBackgroundResource(R.drawable.ic_lucky_bag_tab_bg_right_n)
|
||||
binding.notifyView.rootBg.setBackgroundResource(R.drawable.ic_lucky_bag_room_notify_gift_bg)
|
||||
binding.giftBagLayout.setVis(true,true)
|
||||
binding.goldBagLayout.setVis(false, true)
|
||||
mIsGift = true
|
||||
changeViewStatus()
|
||||
showGiftCoin()
|
||||
} else {
|
||||
binding.bgGiftBag.setBackgroundResource(R.drawable.ic_lucky_bag_tab_bg_left_n)
|
||||
binding.bgGoldBag.setBackgroundResource(R.drawable.ic_lucky_bag_tab_bg_right_s)
|
||||
binding.notifyView.rootBg.setBackgroundResource(R.drawable.ic_lucky_bag_room_notify_gold_bg)
|
||||
binding.goldBagLayout.setVis(true,true)
|
||||
binding.giftBagLayout.setVis(false,true)
|
||||
mIsGift = false
|
||||
changeViewStatus()
|
||||
showGoldCoin()
|
||||
}
|
||||
|
||||
binding.btnConfirm.text = if (mIsGift) R.string._ver_24_Send_Gift_Lucky_Bag.getString() else R.string._ver_24_Send_Coin_Lucky_Bag.getString()
|
||||
|
||||
binding.btnGoldBag.paint.isFakeBoldText = !isGift
|
||||
binding.btnGiftBag.paint.isFakeBoldText = isGift
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun changeViewStatus() {
|
||||
if (mIsGift && !mIsGiftReview) {
|
||||
showGiftSelectView()
|
||||
}else if (mIsGift && mIsGiftReview) {
|
||||
showGiftReview()
|
||||
} else {
|
||||
showGoldSelectView()
|
||||
}
|
||||
}
|
||||
|
||||
private fun showGiftSelectView() {
|
||||
binding.giftBagLayout.setVis(true)
|
||||
binding.goldBagLayout.setVis(false)
|
||||
binding.groupGiftSelect.setVis(true)
|
||||
binding.groupReViewGift.setVis(false)
|
||||
|
||||
binding.flListGiftTypeLayout.setMargin(top = 37, bottom = 90)
|
||||
// binding.flListGiftTypeLayout.setViewWH(height = 350)
|
||||
|
||||
binding.bottomSpace.setVis(true)
|
||||
binding.userGold.setVis(true)
|
||||
|
||||
binding.redBagDesc.setPadding2(bottom = 0.toDP())
|
||||
|
||||
mGiftAdapter.setNewData(mGiftData)
|
||||
binding.rvListGiftType.postSafe {
|
||||
mPageManager?.scrollToPagerIndex(0)
|
||||
}
|
||||
|
||||
mGiftDataSelect.clear()
|
||||
val iterator = mGiftDataSelectPos.iterator()
|
||||
while (iterator.hasNext()) {
|
||||
val next = iterator.next().value
|
||||
if (next.count <= 0) {
|
||||
iterator.remove()
|
||||
}
|
||||
}
|
||||
mIsGiftReview = false
|
||||
|
||||
}
|
||||
|
||||
private fun showGiftReview() {
|
||||
binding.giftBagLayout.setVis(true)
|
||||
binding.goldBagLayout.setVis(false)
|
||||
binding.groupReViewGift.setVis(true)
|
||||
binding.groupGiftSelect.setVis(false)
|
||||
|
||||
binding.flListGiftTypeLayout.setMargin(top = 37, bottom = 90)
|
||||
// binding.flListGiftTypeLayout.setViewWH(height = 300)
|
||||
|
||||
binding.bottomSpace.setVis(false)
|
||||
binding.userGold.setVis(false)
|
||||
|
||||
binding.redBagDesc.setPadding2(bottom = 0.toDP())
|
||||
|
||||
mGiftDataSelect.clear()
|
||||
val iterator = mGiftDataSelectPos.iterator()
|
||||
while (iterator.hasNext()) {
|
||||
val next = iterator.next().value
|
||||
if (next.count > 0) {
|
||||
mGiftDataSelect.add(next)
|
||||
} else {
|
||||
iterator.remove()
|
||||
}
|
||||
}
|
||||
|
||||
mGiftAdapter.setNewData(mGiftDataSelect)
|
||||
binding.rvListGiftType.postSafe {
|
||||
mPageManager?.scrollToPagerIndex(0)
|
||||
}
|
||||
mIsGiftReview = true
|
||||
}
|
||||
|
||||
private fun showGoldSelectView() {
|
||||
binding.goldBagLayout.setVis(true)
|
||||
binding.giftBagLayout.setVis(false)
|
||||
|
||||
binding.bottomSpace.setVis(true)
|
||||
binding.userGold.setVis(true)
|
||||
|
||||
binding.redBagDesc.setPadding2(bottom = 20.toDP())
|
||||
}
|
||||
|
||||
private fun showInputLayout() {
|
||||
binding.inputLayout.postDelayed({
|
||||
binding.inputLayout.visibility = View.VISIBLE
|
||||
binding.inputEdit.isFocusableInTouchMode = true
|
||||
binding.inputEdit.requestFocus()
|
||||
|
||||
if (mGiftSelect.isVerify(mGiftData)) {
|
||||
val data = mGiftData[mGiftSelect]
|
||||
binding.inputEdit.setText(data.count.toString())
|
||||
binding.inputEdit.setSelection(binding.inputEdit.text.length)
|
||||
data.isSelect = true
|
||||
mGiftAdapter.notifyItemChanged(mGiftSelect,1)
|
||||
}
|
||||
|
||||
KeyBoardUtils.showKeyBoard(context, binding.inputEdit)
|
||||
}, 200)
|
||||
}
|
||||
|
||||
private fun showGiftCoin() {
|
||||
var giftCount = 0
|
||||
var giftCoin = 0
|
||||
mGiftDataSelectPos.forEach { (t, u) ->
|
||||
if (u.count > 0) {
|
||||
giftCount += u.count
|
||||
giftCoin += u.count * u.giftPrice
|
||||
}
|
||||
}
|
||||
|
||||
val redBagDesc = R.string._ver_24_sendHint.getString(giftCount, giftCoin)
|
||||
SpannableTextBuilder(binding.redBagDesc).appendText(redBagDesc)
|
||||
.addTextStyleList(arrayListOf(
|
||||
SpannableTextBuilder.TextStyleBean().apply {
|
||||
text = giftCount.toString()
|
||||
textColor = R.color.white.getColor()
|
||||
},
|
||||
SpannableTextBuilder.TextStyleBean().apply {
|
||||
text = giftCoin.toString()
|
||||
textColor = R.color.white.getColor()
|
||||
}
|
||||
))
|
||||
.apply()
|
||||
|
||||
val time = mGiftTimeSelect / 60
|
||||
val reviewTime = R.string._ver_24_reviewTime.getString(time)
|
||||
SpannableTextBuilder(binding.reviewTime).appendText(reviewTime)
|
||||
.addTextStyleList(arrayListOf(
|
||||
SpannableTextBuilder.TextStyleBean().apply {
|
||||
text = time.toString()
|
||||
textColor = R.color.white.getColor()
|
||||
}
|
||||
))
|
||||
.apply()
|
||||
|
||||
}
|
||||
|
||||
private fun showGoldCoin() {
|
||||
val coin = mGoldSelect
|
||||
val redBagDesc = R.string._ver_24_Total_spend_s_coins.getString(coin)
|
||||
SpannableTextBuilder(binding.redBagDesc).appendText(redBagDesc)
|
||||
.addTextStyleList(arrayListOf(
|
||||
SpannableTextBuilder.TextStyleBean().apply {
|
||||
text = coin.toString()
|
||||
textColor = R.color.white.getColor()
|
||||
}
|
||||
))
|
||||
.apply()
|
||||
}
|
||||
|
||||
private fun checkSendData() : Boolean{
|
||||
if (mIsGift) {
|
||||
if (!mGiftDataSelectPos.isVerify()) {
|
||||
|
||||
return false
|
||||
}
|
||||
if (mGiftTimeSelect == -1) {
|
||||
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
if (mGoldSelect == -1) {
|
||||
|
||||
return false
|
||||
}
|
||||
if (mGoldNumSelect == -1) {
|
||||
|
||||
return false
|
||||
}
|
||||
if (mGoldTimeSelect == -1) {
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
var isSenting = false
|
||||
private fun doSendGiftBag() {
|
||||
isSenting = true
|
||||
val items = mutableListOf<LuckyBagGiftItemBody>()
|
||||
mGiftDataSelectPos.keys.forEach{ key->
|
||||
if ((mGiftDataSelectPos[key]?.count ?: 0) > 0) {
|
||||
items.add(LuckyBagGiftItemBody().apply {
|
||||
giftId = mGiftDataSelectPos[key]?.giftId ?: -1
|
||||
giftNum = mGiftDataSelectPos[key]?.count ?: -1
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (!items.isVerify()) {
|
||||
R.string._ver_24_sentLuckyBagNoSelect.doToast()
|
||||
isSenting = false
|
||||
return
|
||||
}
|
||||
|
||||
sentGiftBag(LuckyBagGiftBody().apply {
|
||||
roomUid = AvRoomDataManager.get().roomUid
|
||||
uid = AuthModel.get().currentUid
|
||||
countDownSecond = mGiftTimeSelect
|
||||
giftItems = items
|
||||
}).compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
PayModel.get().refreshWalletInfo(true)
|
||||
isSenting = false
|
||||
dismiss()
|
||||
}
|
||||
.doOnError {
|
||||
isSenting = false
|
||||
it?.message?.doToast()
|
||||
}.subscribe()
|
||||
}
|
||||
|
||||
private fun doSendGoldBag() {
|
||||
isSenting = true
|
||||
sentGoldBag(LuckyBagGoldBody().apply {
|
||||
roomUid = AvRoomDataManager.get().roomUid
|
||||
uid = AuthModel.get().currentUid
|
||||
goldNum = mGoldSelect
|
||||
num = mGoldNumSelect
|
||||
countDownSecond = mGoldTimeSelect
|
||||
}).compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
PayModel.get().refreshWalletInfo(true)
|
||||
isSenting = false
|
||||
dismiss()
|
||||
}
|
||||
.doOnError {
|
||||
isSenting = false
|
||||
it?.message?.doToast()
|
||||
}.subscribe()
|
||||
}
|
||||
|
||||
|
||||
private class GiftAdapter : BaseBindingAdapter<ItemRoomLuckyBagGiftBinding, LuckyBagGift>() {
|
||||
|
||||
|
||||
override fun convert(
|
||||
helper: BaseBindingViewHolder<ItemRoomLuckyBagGiftBinding>,
|
||||
item: LuckyBagGift
|
||||
) {
|
||||
helper?.binding?.let {
|
||||
it.gift.loadImage(item.giftPic)
|
||||
it.giftName.text = item.giftName
|
||||
it.gold.text = item.giftPrice.toString()
|
||||
it.etNum.setText(item.count.toString())
|
||||
it.giftCount.text = item.count.toString()
|
||||
|
||||
it.etNum.setTextColor(if (item.isSelect) R.color.color_FFEA5C.getColor() else R.color.white.getColor())
|
||||
|
||||
helper.addOnClickListener(R.id.up)
|
||||
helper.addOnClickListener(R.id.down)
|
||||
helper.addOnClickListener(R.id.etNum)
|
||||
|
||||
// if (item.isReView) {
|
||||
// it.selectViews.setVis(false)
|
||||
// it.giftCount.setVis(true)
|
||||
// } else {
|
||||
// it.selectViews.setVis(true)
|
||||
// it.giftCount.setVis(false)
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
override fun onBindViewByPayloads(
|
||||
viewBinding: ItemRoomLuckyBagGiftBinding,
|
||||
data: LuckyBagGift,
|
||||
pos: Int,
|
||||
payloads: MutableList<Any>
|
||||
) {
|
||||
viewBinding.etNum.setText(data.count.toString())
|
||||
viewBinding.etNum.setTextColor(if (data.isSelect) R.color.color_FFEA5C.getColor() else R.color.white.getColor())
|
||||
}
|
||||
}
|
||||
|
||||
private class NumberItemAdapter : BaseBindingAdapter<ItemRoomLuckyBagTimeBinding, LuckyBagNumber>() {
|
||||
|
||||
public fun select(pos:Int) {
|
||||
data?.forEachIndexed { index, luckyBagGold ->
|
||||
luckyBagGold.isSelect = index == pos
|
||||
}
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
override fun convert(
|
||||
helper: BaseBindingViewHolder<ItemRoomLuckyBagTimeBinding>,
|
||||
item: LuckyBagNumber
|
||||
) {
|
||||
helper?.binding?.let {
|
||||
|
||||
if (item.type == LuckyBagNumber.Type.time) {
|
||||
it.number.text = "${(item.number/60)}${R.string._ver_24_Mins_s.getString()}"
|
||||
} else {
|
||||
it.number.text = item.number.toString()
|
||||
}
|
||||
|
||||
if (item.isSelect()) {
|
||||
it.number.changeGradientColor("#ff9f00".toColor(),-1,"#fff437".toColor())
|
||||
it.number.changeStrikeColor("#00ffd168".toColor())
|
||||
it.number.setTextColor(R.color.color_292601.getColor())
|
||||
} else {
|
||||
it.number.changeGradientColor("#610015".toColor(),-1,"#97000c".toColor())
|
||||
it.number.changeStrikeColor("#ffd168".toColor())
|
||||
it.number.setTextColor(R.color.color_FFEA5C.getColor())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class GoldAdapter : BaseBindingAdapter<ItemRoomLuckyBagGoldBinding, LuckyBagGold>(){
|
||||
|
||||
public fun select(pos:Int) {
|
||||
data?.forEachIndexed { index, luckyBagGold ->
|
||||
luckyBagGold.isSelect = index == pos
|
||||
}
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
private var imageRes = arrayOf(
|
||||
R.drawable.ic_lucky_bag_gold_1,
|
||||
R.drawable.ic_lucky_bag_gold_2,
|
||||
R.drawable.ic_lucky_bag_gold_3,
|
||||
R.drawable.ic_lucky_bag_gold_4,
|
||||
)
|
||||
override fun convert(
|
||||
helper: BaseBindingViewHolder<ItemRoomLuckyBagGoldBinding>,
|
||||
item: LuckyBagGold
|
||||
) {
|
||||
helper?.binding?.let {
|
||||
|
||||
it.gold.text = item.number.toString()
|
||||
imageRes?.getOrNull(helper.bindingAdapterPosition)?.let { res->
|
||||
it.goldPic.setImageResource(res)
|
||||
}
|
||||
|
||||
if (item.isSelect()) {
|
||||
it.goldBg.changeGradientColor("#ff9f00".toColor(),-1,"#fff437".toColor())
|
||||
it.goldBg.changeStrikeColor("#00ffd168".toColor())
|
||||
it.gold.setTextColor(R.color.color_292601.getColor())
|
||||
|
||||
} else {
|
||||
it.goldBg.changeGradientColor("#610015".toColor(),-1,"#97000c".toColor())
|
||||
it.goldBg.changeStrikeColor("#ffd168".toColor())
|
||||
it.gold.setTextColor(R.color.color_FFEA5C.getColor())
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun sentGiftBag(body: LuckyBagGiftBody?): Single<String> {
|
||||
return api.sentGiftBag(body)
|
||||
.compose(RxHelper.handleIgnoreData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private fun sentGoldBag(body: LuckyBagGoldBody?): Single<String> {
|
||||
return api.sentGoldBag(body)
|
||||
.compose(RxHelper.handleIgnoreData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
private val api: Api = RxNet.create(Api::class.java)
|
||||
private interface Api {
|
||||
/**
|
||||
* 发包
|
||||
*/
|
||||
@POST("/new-red-envelope")
|
||||
fun sentGiftBag(@Body body: LuckyBagGiftBody?): Single<ServiceResult<JsonElement?>?>
|
||||
@POST("/new-red-envelope")
|
||||
fun sentGoldBag(@Body body: LuckyBagGoldBody?): Single<ServiceResult<JsonElement?>?>
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,379 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.bean.LuckyBagEntity
|
||||
import com.chwl.app.avroom.bean.LuckyBagOpenBiliEntity
|
||||
import com.chwl.app.avroom.bean.LuckyBagOpenEntity
|
||||
import com.chwl.app.base.BaseDialogFragment
|
||||
import com.chwl.app.bindadapter.BaseBindingAdapter
|
||||
import com.chwl.app.databinding.DialogRoomLuckyBagOpenBinding
|
||||
import com.chwl.app.databinding.ItemRoomLuckyBagViewOthersBinding
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.app.ui.utils.loadImage
|
||||
import com.chwl.app.utils.RoomHelperManager
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.bean.response.ServiceResult
|
||||
import com.chwl.core.gift.bean.LuckyBagViewOthers
|
||||
import com.chwl.core.pay.PayModel
|
||||
import com.chwl.core.utils.net.RxHelper
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.doLog
|
||||
import com.chwl.library.common.util.doToast
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.common.util.postSafe
|
||||
import com.chwl.library.common.util.setMargin
|
||||
import com.chwl.library.common.util.setViewWH
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.common.util.toDP
|
||||
import com.chwl.library.net.rxnet.RxNet
|
||||
import com.example.lib_utils.ktx.getDrawable
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import com.tencent.qgame.animplayer.AnimConfig
|
||||
import com.tencent.qgame.animplayer.inter.IAnimListener
|
||||
import com.tencent.qgame.animplayer.util.ScaleType
|
||||
import io.reactivex.Single
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
|
||||
class RoomLuckyBagOpenDialog : BaseDialogFragment<DialogRoomLuckyBagOpenBinding>() {
|
||||
|
||||
|
||||
override var width = 300.toDP()
|
||||
override var height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
override var dimAmount = 0f
|
||||
override var gravity = Gravity.CENTER
|
||||
|
||||
private var mAdapter : ViewOtherAdapter ? = null
|
||||
|
||||
var isGift = true
|
||||
private var isOpen = false
|
||||
private var mTimeJop : Job?=null
|
||||
|
||||
var mData : LuckyBagEntity? = null
|
||||
|
||||
|
||||
override fun init() {
|
||||
|
||||
|
||||
mAdapter = ViewOtherAdapter()
|
||||
binding.rvListViewOthers.adapter = mAdapter
|
||||
binding.rvListViewOthers.layoutManager = LinearLayoutManager(context,RecyclerView.VERTICAL,false)
|
||||
|
||||
|
||||
binding.viewOthers.click {
|
||||
viewOthers()
|
||||
}
|
||||
|
||||
binding.confirm.click {
|
||||
if (isOpen) {
|
||||
doOpenBag()
|
||||
} else {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
binding.bagAnim.setLoop(1)
|
||||
binding.bagAnim.setScaleType(ScaleType.FIT_XY)
|
||||
|
||||
mData?.let {
|
||||
isGift = it.isGift
|
||||
|
||||
if (isGift) {
|
||||
binding.bagImg.setImageResource(R.drawable.ic_lucky_bag_btn_gift_pic_2)
|
||||
binding.title.text = R.string._ver_24_luckBagOpenGiftTitle.getString(it.nick)
|
||||
} else {
|
||||
binding.bagImg.setImageResource(R.drawable.ic_lucky_bag_btn_gold_pic_2)
|
||||
binding.title.text = R.string._ver_24_luckBagOpenCoinTitle.getString(it.nick)
|
||||
}
|
||||
binding.bg.setBackgroundResource(R.drawable.ic_lucky_bag_open_bg)
|
||||
binding.avatar.loadAvatar(it.avatar)
|
||||
|
||||
val timeDown = RoomHelperManager.getTimeDown(it.countDownTime,it.countDownSecond)
|
||||
if (timeDown == 0L) {
|
||||
// 倒计时结束 可开
|
||||
ready()
|
||||
} else {
|
||||
timeDown(timeDown)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun doOpenBag() {
|
||||
mData?.let { data ->
|
||||
postLuckyBagOpen(data.id)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
if (this@RoomLuckyBagOpenDialog.isAdded) {
|
||||
if (it.currentUserGifts.isVerify() || it.currentUserAmount > 0){
|
||||
mActionCallBack?.onAction(1,mData)
|
||||
playAnim(it)
|
||||
}else {
|
||||
showEmpty()
|
||||
}
|
||||
}
|
||||
}.doOnError {
|
||||
it?.message?.doToast()
|
||||
}.subscribe()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun timeDown(timeDown: Long) {
|
||||
def()
|
||||
|
||||
binding.bagImg.setVis(true)
|
||||
binding.comingHint.setVis(true)
|
||||
|
||||
|
||||
binding.comingHint.text = R.string._ver_24_luckBagOpenHint.getString()
|
||||
startTimeDown(timeDown)
|
||||
}
|
||||
|
||||
|
||||
private fun startTimeDown(timeDown:Long) {
|
||||
mTimeJop?.cancel()
|
||||
mTimeJop = lifecycleScope.launch {
|
||||
for (time in timeDown downTo 0) {
|
||||
delay(1000L)
|
||||
binding.time.postSafe{
|
||||
val timeString = RoomHelperManager.getTimeString(time)
|
||||
binding.time.text = timeString
|
||||
binding.time.setVis(time != 0L,true)
|
||||
"倒计时 i=$time timeString=$timeString".doLog()
|
||||
}
|
||||
}
|
||||
mTimeJop?.cancel()
|
||||
mTimeJop = null
|
||||
ready()
|
||||
}
|
||||
mTimeJop?.start()
|
||||
}
|
||||
|
||||
|
||||
private fun ready() {
|
||||
binding.root.postSafe{
|
||||
def()
|
||||
binding.bagImg.setVis(true)
|
||||
|
||||
binding.confirm.text = R.string._ver_24_Click_Open.getString()
|
||||
|
||||
isOpen = true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun open(entity: LuckyBagOpenEntity) {
|
||||
def()
|
||||
binding.viewOthers.setVis(true)
|
||||
if (isGift) {
|
||||
|
||||
binding.giftName.setVis(true)
|
||||
binding.giftNum.setVis(true)
|
||||
binding.giftImg.setVis(true)
|
||||
binding.giftCoin.setVis(true)
|
||||
binding.giftHint.setVis(true)
|
||||
|
||||
entity.currentUserGifts.isVerify(0){
|
||||
binding.giftName.text = it?.giftVo?.giftName?:""
|
||||
binding.giftCoin.text = ((it?.giftVo?.goldPrice?:0) * (it?.giftNum?:0)).toString()
|
||||
binding.giftNum.text = "x"+(it?.giftNum?.toString()?:"0")
|
||||
binding.giftImg.loadImage(it?.giftVo?.giftUrl?:"")
|
||||
}
|
||||
|
||||
} else {
|
||||
binding.gold.setVis(true)
|
||||
binding.goldHint.setVis(true)
|
||||
binding.gold.text = entity?.currentUserAmount?.toString()?:"0"
|
||||
PayModel.get().refreshWalletInfo(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun showEmpty() {
|
||||
def()
|
||||
binding.viewOthers.setVis(true)
|
||||
binding.bagImg.setVis(true)
|
||||
binding.comingHint.setVis(true)
|
||||
|
||||
binding.comingHint.text = R.string._ver_24_luckBagOpen_Empty.getString()
|
||||
binding.bagImg.setImageResource(R.drawable.ic_lucky_bag_empty)
|
||||
mActionCallBack?.onAction(1,mData)
|
||||
}
|
||||
|
||||
|
||||
private fun viewOthers() {
|
||||
def()
|
||||
binding.viewOthersHint.setVis(true)
|
||||
binding.rvListViewOthers.setVis(true)
|
||||
|
||||
binding.bg.setViewWH(height = 414)
|
||||
binding.confirm.setMargin(bottom = 10)
|
||||
binding.bg.setBackgroundResource(R.drawable.ic_lucky_bag_open_bili_bg)
|
||||
|
||||
|
||||
mData?.let { data->
|
||||
getViewOthers(data.id)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
val viewOthers = mutableListOf<LuckyBagViewOthers>()
|
||||
it.forEach { vo->
|
||||
viewOthers.add(LuckyBagViewOthers().apply {
|
||||
uid = vo?.userVO?.uid?:0L
|
||||
avatar = vo?.userVO?.avatar?:""
|
||||
nick = vo?.userVO?.nick?:""
|
||||
time = vo?.createTime?:0L
|
||||
timeStr = vo?.createTimeStr?:""
|
||||
giftName = vo?.redEnvelopeGiftItemVOs?.getOrNull(0)?.giftVo?.giftName?:""
|
||||
giftNum = vo?.redEnvelopeGiftItemVOs?.getOrNull(0)?.giftNum?:0
|
||||
goldNum = vo?.amount?:0
|
||||
})
|
||||
}
|
||||
mAdapter?.setNewData(viewOthers)
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.doToast()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun def() {
|
||||
isOpen = false
|
||||
binding.viewOthers.visibility = View.INVISIBLE
|
||||
binding.time.visibility = View.INVISIBLE
|
||||
|
||||
binding.giftName.visibility = View.INVISIBLE
|
||||
binding.giftNum.visibility = View.INVISIBLE
|
||||
binding.giftImg.visibility = View.INVISIBLE
|
||||
binding.giftHint.visibility = View.INVISIBLE
|
||||
binding.giftCoin.visibility = View.INVISIBLE
|
||||
|
||||
binding.gold.visibility = View.INVISIBLE
|
||||
binding.goldHint.visibility = View.INVISIBLE
|
||||
|
||||
binding.bagImg.visibility = View.INVISIBLE
|
||||
binding.comingHint.visibility = View.INVISIBLE
|
||||
|
||||
binding.rvListViewOthers.visibility = View.INVISIBLE
|
||||
binding.viewOthersHint.visibility = View.INVISIBLE
|
||||
|
||||
binding.bg.setViewWH(height = 326)
|
||||
binding.confirm.text = R.string.ok.getString()
|
||||
binding.confirm.setMargin(bottom = 20)
|
||||
}
|
||||
|
||||
private fun playAnim(luckyBagOpenEntity: LuckyBagOpenEntity) {
|
||||
context?.let {
|
||||
binding.bagAnim.setVis(true)
|
||||
binding.bagAnim.setAnimListener(object : IAnimListener {
|
||||
override fun onFailed(errorType: Int, errorMsg: String?) {
|
||||
if (this@RoomLuckyBagOpenDialog.isAdded) {
|
||||
_binding?.bagAnim.postSafe {
|
||||
_binding?.bagAnim?.setVis(false)
|
||||
open(luckyBagOpenEntity)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
override fun onVideoComplete() {
|
||||
if (this@RoomLuckyBagOpenDialog.isAdded) {
|
||||
_binding?.bagAnim.postSafe {
|
||||
_binding?.bagAnim?.setVis(false)
|
||||
open(luckyBagOpenEntity)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
override fun onVideoDestroy() {}
|
||||
override fun onVideoRender(frameIndex: Int, config: AnimConfig?) {}
|
||||
override fun onVideoStart() {
|
||||
if (this@RoomLuckyBagOpenDialog.isAdded) {
|
||||
_binding?.bagImg.postSafe {
|
||||
_binding?.bagImg?.setVis(isVis = false, isInVis = true)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
val url = if (isGift) "mp4/lucky_bag_gift_open.mp4" else "mp4/lucky_bag_gold_open.mp4"
|
||||
binding.bagAnim.startPlay(it.assets,url)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
mTimeJop?.cancel()
|
||||
}
|
||||
|
||||
|
||||
private class ViewOtherAdapter : BaseBindingAdapter<ItemRoomLuckyBagViewOthersBinding, LuckyBagViewOthers>() {
|
||||
|
||||
override fun onBindView(
|
||||
viewBinding: ItemRoomLuckyBagViewOthersBinding,
|
||||
data: LuckyBagViewOthers,
|
||||
pos: Int
|
||||
) {
|
||||
|
||||
viewBinding.time.text = data.timeStr
|
||||
viewBinding.name.text = data.nick
|
||||
viewBinding.me.setVis(data.uid == AuthModel.get().currentUid)
|
||||
viewBinding.avatar.loadAvatar(data?.avatar?:"")
|
||||
|
||||
if (data.giftNum > 0) {
|
||||
viewBinding.giftInfo.text = "${data.giftName}x${data.giftNum}"
|
||||
viewBinding.giftInfo.setDrawableEmpty(null,null,null,null)
|
||||
} else {
|
||||
viewBinding.giftInfo.text = data.goldNum.toString()
|
||||
viewBinding.giftInfo.setDrawableEmpty(null,null,R.drawable.ic_coin_84.getDrawable(),null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun getViewOthers(redEnvelopeId: Long): Single<List<LuckyBagOpenBiliEntity>> {
|
||||
return api.getViewOthers(redEnvelopeId)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
|
||||
private fun postLuckyBagOpen(redEnvelopeId: Long): Single<LuckyBagOpenEntity> {
|
||||
return api.postLuckyBagOpen(redEnvelopeId)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
}
|
||||
|
||||
|
||||
private val api: Api = RxNet.create(Api::class.java);
|
||||
|
||||
interface Api {
|
||||
@GET("/new-red-envelope/get")
|
||||
fun getViewOthers(@Query("redEnvelopeId") redEnvelopeId: Long): Single<ServiceResult<List<LuckyBagOpenBiliEntity>>>
|
||||
|
||||
|
||||
@POST("/new-red-envelope/open")
|
||||
fun postLuckyBagOpen(
|
||||
@Query("redEnvelopeId") redEnvelopeId: Long
|
||||
): Single<ServiceResult<LuckyBagOpenEntity>>
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import com.chwl.app.base.BaseDialogFragment
|
||||
import com.chwl.app.databinding.DialogRoomMusicBinding
|
||||
|
||||
class RoomMusicDialog : BaseDialogFragment<DialogRoomMusicBinding>() {
|
||||
|
||||
|
||||
override var width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var dimAmount = 0f
|
||||
override var gravity = Gravity.BOTTOM
|
||||
|
||||
|
||||
override fun init() {
|
||||
binding.musicView.setCallBack {
|
||||
dismiss()
|
||||
}
|
||||
binding.musicView.showBoxInAnim();
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
binding.musicView.release()
|
||||
super.onDismiss(dialog)
|
||||
}
|
||||
|
||||
}
|
@@ -8,7 +8,6 @@ import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||
import com.chwl.app.databinding.RoomNotifyBoomBinding
|
||||
import com.chwl.app.ui.utils.load
|
||||
import com.chwl.app.ui.utils.loadImage
|
||||
import com.chwl.core.gift.bean.BoomMsgDialogBean
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
@@ -28,10 +27,10 @@ class RoomNotifyBoomDialog(context: Context) :
|
||||
data?.let { data ->
|
||||
mBinding.boomIcon.loadImage(data.pic)
|
||||
mBinding.avatar.loadImage(data.avatar)
|
||||
mBinding.roomName.text = R.string.roomNick.getString(data.roomTitle)
|
||||
mBinding.roomName.text = data.roomTitle
|
||||
mBinding.boomDes.text = R.string.roomBoomNotify.getString()
|
||||
|
||||
mBinding.root.setOnClickListener {
|
||||
mBinding.clickArea.setOnClickListener {
|
||||
val activity = GlobalHandleManager.get().activity ?: return@setOnClickListener
|
||||
val mDialogManager = DialogManager(activity)
|
||||
mDialogManager?.showOkCancelDialog(
|
||||
|
@@ -5,8 +5,8 @@ import android.graphics.Bitmap
|
||||
import android.view.LayoutInflater
|
||||
import com.chwl.app.databinding.RoomNotifyCpBindBinding
|
||||
import com.chwl.app.ui.utils.CpUtils
|
||||
import com.chwl.app.ui.utils.isDestroyed
|
||||
import com.chwl.core.gift.bean.CpMsgBean
|
||||
import com.chwl.core.utils.LogUtils
|
||||
import com.tencent.qgame.animplayer.inter.IFetchResource
|
||||
import com.tencent.qgame.animplayer.mix.Resource
|
||||
import com.tencent.qgame.animplayer.util.ScaleType
|
||||
@@ -78,7 +78,9 @@ class RoomNotifyCpBindDialog (private val context: Context) : BaseRoomNotifyDial
|
||||
|
||||
fun checkImg() {
|
||||
if (index == 2){
|
||||
show()
|
||||
if (!context.isDestroyed()) {
|
||||
show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,19 +1,13 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.text.Layout
|
||||
import android.text.StaticLayout
|
||||
import android.text.TextPaint
|
||||
import android.view.LayoutInflater
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.helper.AnimHelper
|
||||
import com.chwl.app.databinding.RoomNotifyCpLevelUpBinding
|
||||
import com.chwl.app.ui.utils.CpUtils
|
||||
import com.chwl.app.ui.utils.loadFromAssets
|
||||
import com.chwl.app.utils.SpannableBuilder
|
||||
import com.chwl.core.gift.bean.CpMsgBean
|
||||
import com.chwl.core.utils.SpanUtils
|
||||
import com.chwl.core.utils.myutil.MySpanUtils
|
||||
import com.example.lib_utils.ktx.getColor
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import com.opensource.svgaplayer.SVGADrawable
|
||||
@@ -32,7 +26,7 @@ class RoomNotifyLevelUpDialog (private val context: Context) : BaseRoomNotifyDia
|
||||
|
||||
override fun init() {
|
||||
cpMsgBean?.let {
|
||||
SpanUtils.with(mBinding.text)
|
||||
MySpanUtils.with(mBinding.text)
|
||||
.append(" ${it.senderNick} ").setForegroundColor(R.color.white.getColor())
|
||||
.append(" ${R.string.avroom_widget_roomeffectview_02.getString()} ").setForegroundColor(R.color.color_fff664.getColor())
|
||||
.append(" ${it.receiverNick} ").setForegroundColor(R.color.white.getColor())
|
||||
@@ -47,6 +41,7 @@ class RoomNotifyLevelUpDialog (private val context: Context) : BaseRoomNotifyDia
|
||||
shareParser().decodeFromAssets(svga, object : SVGAParser.ParseCompletion {
|
||||
override fun onComplete(svgaVideoEntity: SVGAVideoEntity) {
|
||||
val dynamicEntity = SVGADynamicEntity()
|
||||
|
||||
// val textPaint = TextPaint()
|
||||
// textPaint.color = Color.WHITE //字体颜色
|
||||
// textPaint.textSize = 24f //字体大小
|
||||
|
@@ -0,0 +1,82 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.application.GlobalHandleManager
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity
|
||||
import com.chwl.app.avroom.bean.LuckyBagEntity
|
||||
import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||
import com.chwl.app.databinding.ViewRoomLuckyBagNotifyBinding
|
||||
import com.chwl.app.ui.utils.loadAvatar
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.redpackage.bean.RedPackageLuckyBag
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.example.lib_utils.ktx.getString
|
||||
|
||||
class RoomNotifyLuckBagDialog(private val context: Context) : BaseRoomNotifyDialog<ViewRoomLuckyBagNotifyBinding>(context) {
|
||||
|
||||
|
||||
override fun createBinding(inflater: LayoutInflater): ViewRoomLuckyBagNotifyBinding {
|
||||
return ViewRoomLuckyBagNotifyBinding.inflate(inflater)
|
||||
}
|
||||
|
||||
|
||||
private var mDialogManager: DialogManager? = null
|
||||
var data: RedPackageLuckyBag? = null
|
||||
|
||||
override fun useAutoDismiss(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun init() {}
|
||||
|
||||
|
||||
private fun ready() {
|
||||
mBinding.root.setVis(true)
|
||||
|
||||
data?.let {
|
||||
mBinding.avatar.loadAvatar(it.getSendUserAvatar())
|
||||
mBinding.nick.text = it.getSendUserNick()
|
||||
|
||||
if (it.redEnvelopeType == LuckyBagEntity.Type.GIFT) {
|
||||
mBinding.desc.text = R.string._ver_24_lucky_bag_room_notify_gift.getString()
|
||||
mBinding.rootBg.setBackgroundResource(R.drawable.ic_lucky_bag_room_notify_gift_bg)
|
||||
} else {
|
||||
mBinding.desc.text = R.string._ver_24_lucky_bag_room_notify_coin.getString()
|
||||
mBinding.rootBg.setBackgroundResource(R.drawable.ic_lucky_bag_room_notify_gold_bg)
|
||||
}
|
||||
}
|
||||
|
||||
mBinding.clickView.click {
|
||||
data?.roomUid?.let { roomUid ->
|
||||
if (AvRoomDataManager.get().roomUid == roomUid) return@click
|
||||
val activity = GlobalHandleManager.get().activity ?: return@click
|
||||
mDialogManager = DialogManager(activity)
|
||||
mDialogManager?.showOkCancelDialog(ResUtil.getString(R.string.changeRoomTips), true, object :
|
||||
OkCancelDialogListener {
|
||||
override fun onCancel() {
|
||||
mDialogManager?.dismissDialog()
|
||||
}
|
||||
|
||||
override fun onOk() {
|
||||
mDialogManager?.dismissDialog()
|
||||
AVRoomActivity.start(context, roomUid)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
startAutoDismiss()
|
||||
}
|
||||
|
||||
|
||||
override fun showDialog() {
|
||||
super.showDialog()
|
||||
ready()
|
||||
}
|
||||
|
||||
}
|
@@ -9,12 +9,13 @@ import com.chwl.app.common.widget.dialog.DialogManager
|
||||
import com.chwl.app.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||
import com.chwl.app.databinding.RoomNotifyLuckGiftDlgBinding
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils
|
||||
import com.chwl.app.utils.NumberUtils
|
||||
import com.chwl.core.gift.bean.LuckyGiftMsgAllBean
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.library.common.util.setAutoSizeModel
|
||||
import com.chwl.library.common.util.setRL
|
||||
import com.chwl.library.common.util.setString
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.example.lib_utils.UiUtils
|
||||
|
||||
/**
|
||||
* @Author Vance
|
||||
@@ -31,35 +32,49 @@ class RoomNotifyLuckGiftDialog(private val context: Context) : BaseRoomNotifyDia
|
||||
|
||||
override fun init() {
|
||||
|
||||
}
|
||||
|
||||
override fun useAutoDismiss(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
private fun ready() {
|
||||
mBinding.root.setVis(true)
|
||||
|
||||
mBinding.bg.setRL()
|
||||
|
||||
ImageLoadUtils.loadImage(mBinding.avatar,luckyGiftMsgBean?.sender?.avatar?:"")
|
||||
mBinding.giftName.text = luckyGiftMsgBean?.giftNameMap?.getFirstText()
|
||||
mBinding.winNum.text = luckyGiftMsgBean?.times.toString()
|
||||
|
||||
val coinNum = NumberUtils.format(luckyGiftMsgBean?.coins?:0)
|
||||
mBinding.coinNum.text = coinNum
|
||||
val coinNum = luckyGiftMsgBean?.coins?:0
|
||||
mBinding.coinNum.setString(coinNum.toString())
|
||||
mBinding.coinNum.setAutoSizeModel()
|
||||
|
||||
mBinding.clickArea.setOnClickListener {
|
||||
val activity = GlobalHandleManager.get().activity ?: return@setOnClickListener
|
||||
mDialogManager = DialogManager(activity)
|
||||
mDialogManager?.showOkCancelDialog(ResUtil.getString(R.string.changeRoomTips), true, object : OkCancelDialogListener {
|
||||
override fun onCancel() {
|
||||
mDialogManager?.dismissDialog()
|
||||
}
|
||||
|
||||
override fun onOk() {
|
||||
mDialogManager?.dismissDialog()
|
||||
luckyGiftMsgBean?.roomUid?.let {
|
||||
if (AvRoomDataManager.get().roomUid != it) {
|
||||
AVRoomActivity.start(context, it)
|
||||
}
|
||||
luckyGiftMsgBean?.roomUid?.let { roomUid ->
|
||||
if (AvRoomDataManager.get().roomUid == roomUid) return@setOnClickListener
|
||||
val activity = GlobalHandleManager.get().activity ?: return@setOnClickListener
|
||||
mDialogManager = DialogManager(activity)
|
||||
mDialogManager?.showOkCancelDialog(ResUtil.getString(R.string.changeRoomTips), true, object : OkCancelDialogListener {
|
||||
override fun onCancel() {
|
||||
mDialogManager?.dismissDialog()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
override fun onOk() {
|
||||
mDialogManager?.dismissDialog()
|
||||
AVRoomActivity.start(context, roomUid)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
startAutoDismiss()
|
||||
}
|
||||
|
||||
override fun showDialog() {
|
||||
super.showDialog()
|
||||
ready()
|
||||
}
|
||||
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
package com.chwl.app.avroom.dialog;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
@@ -14,26 +15,23 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.chwl.app.avroom.activity.RoomTypeSwitchActivity;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.chwl.app.sadmin.RoomSAdminManagerActivity;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.UIHelper;
|
||||
import com.chwl.app.application.GlobalHandleManager;
|
||||
import com.chwl.app.avroom.activity.CreatePKActivity;
|
||||
import com.chwl.app.avroom.activity.RoomSettingActivity;
|
||||
import com.chwl.app.avroom.activity.RoomTypeSwitchActivity;
|
||||
import com.chwl.app.avroom.anotherroompk.RoomPKCreateActivity;
|
||||
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.chwl.app.avroom.room_album.RoomAlbumActivity;
|
||||
import com.chwl.app.avroom.singleroompk.SingleRoomPKCreateActivity;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.room_chat.activity.RoomInviteFansActivity;
|
||||
import com.chwl.app.sadmin.RoomSAdminManagerActivity;
|
||||
import com.chwl.app.ui.widget.ButtonItem;
|
||||
import com.chwl.app.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.chwl.app.ui.widget.recyclerview.layoutmanager.FullyGridLayoutManager;
|
||||
import com.chwl.app.vip.dialog.VipBroadcastDialog;
|
||||
import com.chwl.app.room_chat.activity.RoomInviteFansActivity;
|
||||
import com.chwl.core.XConstants;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.im.custom.bean.RoomPkBean;
|
||||
@@ -55,8 +53,12 @@ import com.chwl.core.utils.CurrentTimeUtils;
|
||||
import com.chwl.core.utils.net.BeanObserver;
|
||||
import com.chwl.core.utils.net.DontWarnObserver;
|
||||
import com.chwl.core.utils.net.RxHelper;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
@@ -78,11 +80,12 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
private OptAdapter optAdapter;
|
||||
private OnActionListener onActionListener;
|
||||
private CallBack callBack;
|
||||
|
||||
public void setCallBack(CallBack callBack) {
|
||||
this.callBack = callBack;
|
||||
}
|
||||
|
||||
public interface CallBack{
|
||||
public interface CallBack {
|
||||
void onCLick(int Type);
|
||||
}
|
||||
|
||||
@@ -129,9 +132,11 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
addSingleRoomPKAction(optAdapter); //个播PK
|
||||
// addSendBroadcastAction(optAdapter); //发布广播
|
||||
// addInviteFansOptAdapter(); //邀请粉丝
|
||||
addRoomMusicPlay(optAdapter); //音乐设置
|
||||
addVipSendBroadcastAction(optAdapter); //小喇叭
|
||||
// addRedPacketAction(optAdapter); //红包
|
||||
addRoomSettingAction(optAdapter); //房间设置
|
||||
addRoomSettingBackPicAction(optAdapter); //房间背景设置
|
||||
addGiftEffectAction(optAdapter); //礼物特效
|
||||
// addOpenOrClosePublicScreenAction(optAdapter); //公屏开关
|
||||
// addRedPackageSwitch(); // 开关红包
|
||||
@@ -172,7 +177,6 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
R.drawable.ic_room_opt_in_pk;
|
||||
|
||||
|
||||
|
||||
optAdapter.addData(new OptAction(icon, str, () -> {
|
||||
if (AvRoomDataManager.get().isDatingMode()) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_dialog_roomoperationdialog_01));
|
||||
@@ -189,7 +193,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
}
|
||||
|
||||
/**
|
||||
* 跨房PK
|
||||
* 跨房PK
|
||||
*
|
||||
* @param optAdapter
|
||||
*/
|
||||
@@ -215,7 +219,6 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
R.drawable.ic_room_opt_another_pk_open;
|
||||
|
||||
|
||||
|
||||
optAdapter.addData(new OptAction(icon, str, () -> {
|
||||
if (AvRoomDataManager.get().isDatingMode()) {
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_dialog_roomoperationdialog_05));
|
||||
@@ -268,7 +271,6 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
String finalStr = str;
|
||||
|
||||
|
||||
|
||||
optAdapter.addData(new OptAction(icon, str, () -> {
|
||||
if (pkBean != null && ResUtil.getString(R.string.avroom_dialog_roomoperationdialog_011).equals(finalStr)) {
|
||||
SingleRoomPKModel.INSTANCE
|
||||
@@ -574,6 +576,27 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 房间背景设置
|
||||
*
|
||||
* @param optAdapter
|
||||
*/
|
||||
private void addRoomSettingBackPicAction(OptAdapter optAdapter) {
|
||||
if (SuperAdminUtil.isSuperAdmin()) {
|
||||
return;
|
||||
}
|
||||
if (AvRoomDataManager.get().isManager()) {
|
||||
optAdapter.addData(new OptAction(R.drawable.icon_room_bg, getContext().getResources().getString(R.string.roomBg), () -> {
|
||||
Activity activity = GlobalHandleManager.get().getActivity();
|
||||
if (activity != null) {
|
||||
RoomBgSetDialog roomBgSetDialog = new RoomBgSetDialog();
|
||||
roomBgSetDialog.show(activity);
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 房间类型切换
|
||||
*
|
||||
@@ -627,6 +650,31 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
// ));
|
||||
}
|
||||
|
||||
/**
|
||||
* 音乐播放设置
|
||||
*/
|
||||
private void addRoomMusicPlay(OptAdapter optAdapter) {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null) {
|
||||
return;
|
||||
}
|
||||
boolean isOnMic = AvRoomDataManager.get().isOnMic(AuthModel.get().getCurrentUid());
|
||||
if (!isOnMic) return;
|
||||
|
||||
boolean isGameRoom = AvRoomDataManager.get().isOpenGame();
|
||||
if (isGameRoom) return;
|
||||
|
||||
optAdapter.addData(new OptAction(R.drawable.icon_room_operation_music,
|
||||
ResUtil.getString(R.string.layout_dialog_voice_seek_02),
|
||||
() -> {
|
||||
if (onActionListener != null) {
|
||||
onActionListener.onActionClick(R.drawable.icon_room_operation_music,R.drawable.icon_room_operation_music);
|
||||
}
|
||||
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 小喇叭
|
||||
*/
|
||||
@@ -635,6 +683,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
if (roomInfo == null) {
|
||||
return;
|
||||
}
|
||||
if ( UserModel.get().getCacheLoginUserInfo() != null && UserModel.get().getCacheLoginUserInfo().isSuperAdmin()) return;
|
||||
optAdapter.addData(new OptAction(R.drawable.icon_room_vip_send_broadcast,
|
||||
ResUtil.getString(R.string.avroom_dialog_roomoperationdialog_033),
|
||||
() -> VipBroadcastDialog.newInstance().show(context)
|
||||
@@ -652,6 +701,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
if (!AvRoomDataManager.get().isManager()) {
|
||||
return;
|
||||
}
|
||||
if ( UserModel.get().getCacheLoginUserInfo() != null && UserModel.get().getCacheLoginUserInfo().isSuperAdmin()) return;
|
||||
optAdapter.addData(new OptAction(R.drawable.icon_room_clean_screen,
|
||||
ResUtil.getString(R.string.avroom_dialog_roomoperationdialog_034),
|
||||
() -> new DialogManager(context)
|
||||
@@ -727,7 +777,9 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
|
||||
public interface OnActionListener {
|
||||
|
||||
void onRedPackageAction();
|
||||
default void onRedPackageAction(){};
|
||||
|
||||
default void onActionClick(int type,Object data){};
|
||||
|
||||
}
|
||||
|
||||
|
@@ -19,10 +19,12 @@ import android.view.ViewStub
|
||||
import android.widget.EditText
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.CallSuper
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.LiveData
|
||||
@@ -46,15 +48,18 @@ import com.chwl.app.avroom.dialog.DatingVipRuleDialog
|
||||
import com.chwl.app.avroom.dialog.RoomBoomInfoDialog
|
||||
import com.chwl.app.avroom.dialog.RoomGameListDialog
|
||||
import com.chwl.app.avroom.dialog.RoomGameplayDialog
|
||||
import com.chwl.app.avroom.dialog.RoomLuckyBagDialog
|
||||
import com.chwl.app.avroom.dialog.RoomOperationDialog
|
||||
import com.chwl.app.avroom.presenter.BaseRoomPresenter
|
||||
import com.chwl.app.avroom.room_album.RoomAlbumModel
|
||||
import com.chwl.app.avroom.view.IBaseRoomView
|
||||
import com.chwl.app.avroom.widget.BottomView
|
||||
import com.chwl.app.avroom.widget.LuckyBagBtn
|
||||
import com.chwl.app.avroom.widget.MessageView
|
||||
import com.chwl.app.avroom.widget.MicroView
|
||||
import com.chwl.app.base.BaseMvpActivity
|
||||
import com.chwl.app.base.BaseMvpFragment
|
||||
import com.chwl.app.base.PhotoPickActivity
|
||||
import com.chwl.app.event.OpenRoomIntroEvent
|
||||
import com.chwl.app.friend.view.SelectFriendActivity
|
||||
import com.chwl.app.home.adapter.RoomActAdapter
|
||||
@@ -79,6 +84,8 @@ import com.chwl.app.ui.widget.rollviewpager.Util
|
||||
import com.chwl.app.ui.widget.rollviewpager.hintview.ColorPointHintView
|
||||
import com.chwl.app.utils.KeyBoardUtils
|
||||
import com.chwl.app.utils.RoomBoomManager
|
||||
import com.chwl.app.utils.RoomHelperManager
|
||||
import com.chwl.app.vip.util.VipHelper
|
||||
import com.chwl.core.Constants
|
||||
import com.chwl.core.UriProvider
|
||||
import com.chwl.core.auth.AuthModel
|
||||
@@ -91,7 +98,6 @@ import com.chwl.core.gift.bean.BoomMsgAwardList
|
||||
import com.chwl.core.gift.bean.BoomMsgDialogBean
|
||||
import com.chwl.core.gift.bean.BoomMsgExpPushBean
|
||||
import com.chwl.core.gift.bean.GiftInfo
|
||||
import com.chwl.core.gift.bean.GiftType
|
||||
import com.chwl.core.gift.event.GiftComboEvent
|
||||
import com.chwl.core.gift.event.NotifyEvent
|
||||
import com.chwl.core.gift.event.RoomFreeGiftEvent
|
||||
@@ -135,9 +141,15 @@ 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.LogUtils
|
||||
import com.chwl.core.utils.myutil.MyUtil
|
||||
import com.chwl.core.utils.net.VipLevelNotEnoughException
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.LimitClickUtils
|
||||
import com.chwl.library.common.util.doLog
|
||||
import com.chwl.library.common.util.doToast
|
||||
import com.chwl.library.common.util.isVerify
|
||||
import com.chwl.library.common.util.postSafe
|
||||
import com.chwl.library.common.util.setMargin
|
||||
import com.chwl.library.common.util.setViewWH
|
||||
import com.chwl.library.common.util.setVis
|
||||
import com.chwl.library.net.rxnet.utils.RxNetWorkUtils
|
||||
@@ -183,15 +195,28 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
protected lateinit var inputLayout: RelativeLayout
|
||||
protected lateinit var inputEdit: EditText
|
||||
protected lateinit var inputSend: ImageView
|
||||
protected lateinit var inputSendImg: ImageView
|
||||
protected lateinit var microView: MicroView
|
||||
protected var mMusicPlayIconView: ImageView? = null
|
||||
|
||||
protected lateinit var btnIvConfigEntrance: ImageView
|
||||
protected lateinit var btnIvgame: ImageView
|
||||
|
||||
protected lateinit var floatBtnLayout: LinearLayout
|
||||
protected lateinit var floatBtnLayoutFold: LinearLayout
|
||||
protected lateinit var btnFold: ImageView
|
||||
protected lateinit var boomLayout: FrameLayout
|
||||
protected lateinit var boomIcon: ImageView
|
||||
protected lateinit var boomProMax: ImageView
|
||||
protected lateinit var boomPro: ImageView
|
||||
protected lateinit var luckyBagBtn: LuckyBagBtn
|
||||
protected lateinit var ivTeamPk: ImageView
|
||||
protected lateinit var btnIvConfigEntrance: ImageView
|
||||
protected lateinit var btnIvgame: ImageView
|
||||
protected lateinit var mIvQueuingMicro: ImageView
|
||||
|
||||
|
||||
//---连击时间 需要透明化的view
|
||||
protected var mPlayTogether:View? = null
|
||||
protected var mLayoutDragon:View? = null
|
||||
|
||||
private var musicPlayerView: MusicPlayerView? = null
|
||||
private var mVsMusicPlayer: ViewStub? = null
|
||||
@@ -251,7 +276,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
false
|
||||
}
|
||||
inputSend = mView.findViewById(R.id.input_send)
|
||||
inputSendImg = mView.findViewById(R.id.input_sendImg)
|
||||
microView = mView.findViewById(R.id.micro_view)
|
||||
|
||||
mMusicPlayIconView = mView.findViewById(R.id.iv_music)
|
||||
mVsMusicPlayer = mView.findViewById(R.id.vs_music_player)
|
||||
messageView.setClickConsumer {
|
||||
if (!TextUtils.isEmpty(it) && it != "0") {
|
||||
@@ -269,43 +297,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
})
|
||||
|
||||
btnIvConfigEntrance = mView.findViewById(R.id.iv_config_entrance)
|
||||
btnIvgame = mView.findViewById(R.id.iv_game)
|
||||
initFloatBtnLayout()
|
||||
|
||||
boomLayout = mView.findViewById(R.id.boomLayout)
|
||||
boomIcon = mView.findViewById(R.id.boomIcon)
|
||||
boomProMax = mView.findViewById(R.id.boomProMax)
|
||||
boomPro = mView.findViewById(R.id.boomPro)
|
||||
|
||||
boomIcon.post {
|
||||
boomIcon.rotation = -30f
|
||||
}
|
||||
|
||||
|
||||
boomLayout.setOnClickListener {
|
||||
mBoomInfoDialog = RoomBoomInfoDialog().apply {
|
||||
roomUid = AvRoomDataManager.get().roomUid
|
||||
}
|
||||
mBoomInfoDialog?.setOnDismissListener {
|
||||
mBoomInfoDialog = null
|
||||
}
|
||||
|
||||
mBoomInfoDialog?.mCallBack = object : RoomBoomInfoDialog.CallBack {
|
||||
override fun onCurrBoomInfo(boomInfo: BoomInfo) {
|
||||
onExpPush(BoomMsgExpPushBean().apply {
|
||||
speed = boomInfo.speed
|
||||
level = boomInfo.level
|
||||
pic = boomInfo.pic
|
||||
})
|
||||
}
|
||||
|
||||
override fun onClick(type: Int, data: Any) {
|
||||
mBoomInfoDialog?.dismiss()
|
||||
onSendGiftBtnClick()
|
||||
}
|
||||
}
|
||||
mBoomInfoDialog?.show(requireContext())
|
||||
}
|
||||
mLayoutDragon = mView.findViewById(R.id.layout_dragon)
|
||||
mPlayTogether = mView.findViewById(R.id.play_together)
|
||||
|
||||
}
|
||||
|
||||
@@ -384,6 +379,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
override fun onSetListener() {
|
||||
bottomView.setMagicBtnEnable(true)
|
||||
inputSend.setOnClickListener(this)
|
||||
inputSendImg.setOnClickListener(this)
|
||||
inputLayout.setOnTouchListener { _: View?, _: MotionEvent? ->
|
||||
inputEdit.clearFocus()
|
||||
inputLayout.visibility = View.GONE
|
||||
@@ -411,7 +407,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
openOrCloseGiftValue(true)
|
||||
updateView()
|
||||
updateMicBtn()
|
||||
AudioEngineManager.get().isNotRecord = false
|
||||
AudioEngineManager.get().isNotRecord = AudioEngineManager.get().isNotRecord
|
||||
microView.setOnMicroItemClickListener(this)
|
||||
mDisposable = IMNetEaseManager.get().chatRoomEventObservable
|
||||
.subscribe { onReceiveRoomEvent(it) }
|
||||
@@ -451,58 +447,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
requestGamesData()
|
||||
}
|
||||
|
||||
private fun initRoomBoom() {
|
||||
AvRoomModel.get().getRoomBoomInfo(AvRoomDataManager.get().roomUid)
|
||||
.doOnSuccess { boomInfo: RoomBoomInfo ->
|
||||
fun initRoomBoom() {
|
||||
LogUtils.d("roomLog RoomBoomManager initRoomBoom() roomUid = "+AvRoomDataManager.get().roomUid + " RoomBoomManager.mRoomUid = "+RoomBoomManager.mRoomUid)
|
||||
if (RoomBoomManager.mRoomUid == -1L) return
|
||||
checkBoomInfo()
|
||||
upDateBoomExp()
|
||||
LogUtils.d("roomLog RoomBoomManager initRoomBoom() end")
|
||||
|
||||
if (boomInfo.roomBoomSignVoList.isVerify()) {
|
||||
boomInfo.roomBoomSignVoList.forEachIndexed { index, roomBoomInfoSign ->
|
||||
RoomBoomManager.addAnim(BoomMsgAnimBean().apply {
|
||||
countDownUrl = roomBoomInfoSign.countDownVapUrl
|
||||
endUrl = roomBoomInfoSign.endVapUrl
|
||||
level = roomBoomInfoSign.level
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (boomInfo.prizes.isVerify()) {
|
||||
val toMap = boomInfo.prizes.groupBy { it.level }.toMap()
|
||||
toMap.forEach { t, u ->
|
||||
RoomBoomManager.addAward(BoomMsgAwardList().apply {
|
||||
list = u
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.doOnError {
|
||||
LogUtils.d("")
|
||||
}
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe()
|
||||
|
||||
AvRoomModel.get().getBoomInfo(AvRoomDataManager.get().roomUid)
|
||||
.doOnSuccess {
|
||||
it.forEach { info->
|
||||
if (info.currLevel) {
|
||||
mBoomExp = BoomMsgExpPushBean().apply {
|
||||
level = info.level
|
||||
speed = info.speed
|
||||
pic = info.pic
|
||||
}
|
||||
boomLayout.setVis(true)
|
||||
boomIcon.loadImage(info.pic)
|
||||
boomProMax.post {
|
||||
boomPro.setViewWH(width = (boomProMax.width * (info.speed.toFloat() / 100)).toInt(), isDP = false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.doOnError {
|
||||
LogUtils.d(""+it?.message)
|
||||
}
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -546,6 +497,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
RoomEvent.ROOM_INFO_UPDATE -> {
|
||||
// "收到房间 ROOM_INFO_UPDATE 消息, 开始 跟新房间信息和UI ".doLog()
|
||||
Logger.i(ResUtil.getString(R.string.avroom_fragment_baseroomfragment_01))
|
||||
addOpenDatingTips() //一定要放在updateView之前!!!
|
||||
updateScreen()
|
||||
@@ -616,6 +568,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
RoomEvent.ROOM_CLEAN_SCREEN -> messageView.clear()
|
||||
|
||||
RoomEvent.MSG_BOOM -> onBoomAboutMsg(roomEvent);
|
||||
|
||||
RoomEvent.MSG_SELF_ENTER_ROOM -> initRoomBoom();
|
||||
|
||||
RoomEvent.MSG_ROOM_LUCKY_BAG_ADD -> onLuckyBagAdd(roomEvent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -854,9 +810,16 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
if (giftDialog != null) {
|
||||
giftDialog?.setOnDismissListener(null)
|
||||
giftDialog?.dismiss()
|
||||
giftDialog = null
|
||||
}
|
||||
luckyBagBtn?.doDetach()
|
||||
super.onDestroyView()
|
||||
releaseView()
|
||||
unregisterWidgets()
|
||||
RoomBoomManager.mRoomUid = -1L
|
||||
mBoomInfoDialog?.dismiss()
|
||||
mBoomInfoDialog = null
|
||||
}
|
||||
@@ -901,16 +864,31 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
R.id.iv_game -> {
|
||||
val dialog = RoomGameListDialog();
|
||||
dialog.code = hashCode()
|
||||
dialog.listener = object : RoomGameplayDialog.GameplayDialogListener {
|
||||
dialog.listener = object : RoomGameListDialog.GameplayDialogListener {
|
||||
override fun onShowBaiShunGame(url: String, config: BaiShunGameConfig) {
|
||||
(activity as? AVRoomActivity)?.showBaiShunGame(url, config)
|
||||
}
|
||||
|
||||
override fun onShowLeaderccGame(url: String, config: BaiShunGameConfig) {
|
||||
(activity as? AVRoomActivity)?.showLeaderccGame(url, config)
|
||||
}
|
||||
|
||||
override fun onShowLuckyBag() {
|
||||
if (UserModel.get().cacheLoginUserInfo?.isRechargeUser == true) {
|
||||
R.string._ver_23_Lucky_bag_Limit_tips.doToast()
|
||||
return
|
||||
}
|
||||
RoomLuckyBagDialog().show(context)
|
||||
}
|
||||
}
|
||||
dialog.show(childFragmentManager, "GAME_LIST")
|
||||
}
|
||||
R.id.input_send -> {
|
||||
sendMsg()
|
||||
}
|
||||
R.id.input_sendImg -> {
|
||||
sendImgMsg()
|
||||
}
|
||||
R.id.layout_room_rank -> {
|
||||
DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking())
|
||||
}
|
||||
@@ -958,6 +936,33 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
}
|
||||
|
||||
//todo do - 发送图片消息
|
||||
private fun sendImgMsg() {
|
||||
UserModel.get().cacheLoginUserInfo?.let {
|
||||
UserModel.get().getUserInfoFromServerUpdate(it.uid,true)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess { user->
|
||||
if (VipHelper.roomPicScreen(user)) {
|
||||
activity?.let { act->
|
||||
try {
|
||||
inputEdit.clearFocus()
|
||||
inputLayout.visibility = View.GONE
|
||||
KeyBoardUtils.hideKeyBoard(activity, inputEdit)
|
||||
PhotoPickActivity.startImg(act)
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dialogManager?.showOkDialog(R.string._ver_24_sentImgVipError.getString())
|
||||
}
|
||||
}
|
||||
.doOnError {
|
||||
it?.message?.doToast()
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
fun sendMsg(msg: String) {
|
||||
if (!AuthModel.get().isImLogin) {
|
||||
@@ -1041,14 +1046,8 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
if (throwable != null) {
|
||||
toast(throwable.message)
|
||||
callback.onFail()
|
||||
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_CANCEL))
|
||||
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_COMBO_CANCEL))
|
||||
} else {
|
||||
if (giftInfo.giftType == GiftType.GIFT_TYPE_NORMAL || giftInfo.giftType == GiftType.GIFT_TYPE_SUPER_LUCKY || giftInfo.giftType == GiftType.GIFT_TYPE_LUCKY_24) {
|
||||
giftDialog?.hide()
|
||||
val giftComboEvent = GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_END)
|
||||
giftComboEvent.giftNumber = gift.data.giftNum
|
||||
EventBus.getDefault().post(giftComboEvent)
|
||||
}
|
||||
callback.onSuccess()
|
||||
}
|
||||
}
|
||||
@@ -1160,6 +1159,17 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
) {
|
||||
buttonItems.add(buttonItem1)
|
||||
}
|
||||
|
||||
// if (AvRoomDataManager.get().isSingleRoom) {
|
||||
// if (AvRoomDataManager.get().isRoomOwner && !AvRoomDataManager.get().isDatingVipMic(micPosition)) {
|
||||
// buttonItems.add(buttonItem1)
|
||||
// }
|
||||
// } else {
|
||||
// if ((AvRoomDataManager.get().isRoomOwner || AvRoomDataManager.get().isRoomAdmin) && !AvRoomDataManager.get().isDatingVipMic(micPosition)){
|
||||
// buttonItems.add(buttonItem1)
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
if (!AvRoomDataManager.get().isOpenPKMode) {
|
||||
//超管只有鎖麥操作
|
||||
@@ -1210,9 +1220,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
override fun onUpMicBtnClick(position: Int, chatRoomMember: MicMemberInfo?) {
|
||||
if (AvRoomDataManager.get().isDatingVipMic(position) &&
|
||||
!AvRoomDataManager.get().isDatingVip(AuthModel.get().currentUid)
|
||||
) {
|
||||
if (MyUtil.upMicIng) {
|
||||
"上麦 , 点击频繁限制".doLog()
|
||||
R.string.avroom_dialog_micqueuedialog_01.doToast()
|
||||
return
|
||||
}
|
||||
|
||||
if (AvRoomDataManager.get().isDatingVipMic(position) && !AvRoomDataManager.get().isDatingVip(AuthModel.get().currentUid)) {
|
||||
DatingVipRuleDialog.newInstance(mContext).show()
|
||||
} else {
|
||||
mvpPresenter?.microPhonePositionClick(position, chatRoomMember)
|
||||
@@ -1269,19 +1283,16 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
if (micPosition == Int.MIN_VALUE) return
|
||||
|
||||
//抱人上麥
|
||||
mvpPresenter?.inviteMicroPhone(
|
||||
BaseInfo(account, nick),
|
||||
micPosition ?: Int.MIN_VALUE
|
||||
)
|
||||
mvpPresenter?.inviteMicroPhone(BaseInfo(account, nick), micPosition ?: Int.MIN_VALUE)
|
||||
}
|
||||
} else if (requestCode == SelectFriendActivity.CODE_REQUEST_TO_SHARE_ROOM &&
|
||||
resultCode == Activity.RESULT_OK
|
||||
) {
|
||||
} else if (requestCode == SelectFriendActivity.CODE_REQUEST_TO_SHARE_ROOM && resultCode == Activity.RESULT_OK) {
|
||||
val targetUid = data?.getStringExtra(SelectFriendActivity.EXTRA_TARGET_UID)
|
||||
val sessionType =
|
||||
data?.getIntExtra(SelectFriendActivity.EXTRA_SESSION_TYPE, SessionType.P2P)
|
||||
?: SessionType.P2P
|
||||
IMNetEaseManager.get().sendSharingRoomMessage(sessionType, targetUid)
|
||||
}else if (requestCode == PhotoPickActivity.PICK_ACT_RESULT && resultCode == Activity.RESULT_OK) {
|
||||
RoomHelperManager.sendPicMsg(this@BaseRoomFragment,data)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1434,10 +1445,42 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
if (giftDialog?.isShowing != true && !requireActivity().isFinishing) {
|
||||
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_POINT))
|
||||
giftDialog?.show()
|
||||
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_DIALOG_DISMISS))
|
||||
if (activity != null && activity?.isFinishing == false && activity?.isDestroyed == false && this@BaseRoomFragment.isAdded){
|
||||
if (AvRoomDataManager.get().hasAvRoomAct) {
|
||||
giftDialog?.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onGiftComboEvent(event: GiftComboEvent) {
|
||||
if (event.action == GiftComboEvent.Action.ACT_GIFT_SEND_SUCCESS) {
|
||||
//展示连击view ,隐藏其他view
|
||||
setComboViewVis(false)
|
||||
|
||||
} else if (event.action == GiftComboEvent.Action.ACT_GIFT_DIALOG_SHOW) {
|
||||
//隐藏连击view ,展示其他view
|
||||
setComboViewVis(true)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setComboViewVis(vis: Boolean) {
|
||||
floatBtnLayout.alpha = if (vis) 1f else 0f //bottom_view
|
||||
bottomView.alpha = if (vis) 1f else 0f //bottom_view
|
||||
inputLayout.alpha = if (vis) 1f else 0f //input_layout
|
||||
mLayoutDragon?.alpha = if (vis) 1f else 0f //layout_dragon
|
||||
mPlayTogether?.alpha = if (vis) 1f else 0f //play_together
|
||||
|
||||
floatBtnLayout.isEnabled = vis //bottom_view
|
||||
bottomView.isEnabled = vis //bottom_view
|
||||
inputLayout.isEnabled = vis //input_layout
|
||||
mLayoutDragon?.isEnabled = vis //layout_dragon
|
||||
mPlayTogether?.isEnabled = vis //play_together
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 開啟相親模式管理增加一條公屏提示
|
||||
*/
|
||||
@@ -1575,6 +1618,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
|
||||
override fun onMoreBtnClick() {
|
||||
val dialog = RoomOperationDialog(mContext)
|
||||
dialog?.setOnActionListener(object : RoomOperationDialog.OnActionListener {
|
||||
override fun onActionClick(type: Int, data: Any?) {
|
||||
if (type == R.drawable.icon_room_operation_music) {
|
||||
mMusicPlayIconView?.performClick()
|
||||
}
|
||||
}
|
||||
})
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
@@ -1669,29 +1719,16 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
protected open fun onInitMusicPlayerView(view: MusicPlayerView) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//礼物连击相关 消息
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onGiftComboEvent(event: GiftComboEvent) {
|
||||
when (event.action) {
|
||||
|
||||
GiftComboEvent.Action.ACT_GIFT_START-> {
|
||||
giftDialog?.sendGift()
|
||||
}
|
||||
|
||||
GiftComboEvent.Action.ACT_GIFT_SHOW-> {
|
||||
giftDialog?.show()
|
||||
}
|
||||
|
||||
else -> {}
|
||||
mMusicPlayIconView?.let {
|
||||
view.linkIconView(it,it)
|
||||
}
|
||||
}
|
||||
|
||||
//横幅相关消息
|
||||
|
||||
|
||||
|
||||
|
||||
//通用消息
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onNotifyEvent(event: NotifyEvent) {
|
||||
when (event.action) {
|
||||
@@ -1708,7 +1745,11 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
val game = GameUtil.findGame(gameId.toLong(), gameplayList!!)
|
||||
if (game != null) {
|
||||
GameUtil.startGame(game){url, config->
|
||||
(activity as? AVRoomActivity)?.showBaiShunGame(url, config)
|
||||
if (game.isLeadercc()) {
|
||||
(activity as? AVRoomActivity)?.showLeaderccGame(url, config)
|
||||
}else if (game.isBaiShunGame()) {
|
||||
(activity as? AVRoomActivity)?.showBaiShunGame(url, config)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1762,7 +1803,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
if (configModel == null) {
|
||||
btnIvConfigEntrance.setVisibility(View.GONE)
|
||||
} else {
|
||||
if (configModel.icon1Url == null) {
|
||||
if (configModel.icon1Url == null || TextUtils.isEmpty(configModel.icon1Url)) {
|
||||
btnIvConfigEntrance.setVisibility(View.GONE)
|
||||
} else {
|
||||
ImageLoadUtils.loadAvatar(configModel.icon1Url, btnIvConfigEntrance)
|
||||
@@ -1770,7 +1811,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
if (configModel.icon2Url != null) {
|
||||
ImageLoadUtils.loadAvatar(configModel.icon2Url, btnIvgame)
|
||||
ImageLoadUtils.loadImage( btnIvgame,configModel.icon2Url)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1811,14 +1852,16 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
|
||||
var mBoomExp: BoomMsgExpPushBean?=null
|
||||
//更新boom进度
|
||||
private fun onExpPush(expPushBean: BoomMsgExpPushBean) {
|
||||
private fun onExpPush(expPushBean: BoomMsgExpPushBean,isOverride:Boolean=false) {
|
||||
LogUtils.d(" RoomBoomManager BaseRoom onExpPush() indexLevel=${mBoomExp?.level} expPushLevel=${expPushBean.level} indexSpeed=${mBoomExp?.speed} expPushSpeed=${expPushBean.speed} ")
|
||||
|
||||
mBoomInfoDialog?.setPro(expPushBean.speed,expPushBean.level)
|
||||
|
||||
if (mBoomExp != null) {
|
||||
if (mBoomExp!!.level > expPushBean.level) return
|
||||
if (mBoomExp!!.speed >= expPushBean.speed) return
|
||||
if (!isOverride){
|
||||
if (mBoomExp != null) {
|
||||
if (mBoomExp!!.level > expPushBean.level) return
|
||||
if (mBoomExp!!.level == expPushBean.level && mBoomExp!!.speed >= expPushBean.speed) return
|
||||
}
|
||||
}
|
||||
|
||||
mBoomExp = expPushBean
|
||||
@@ -1829,6 +1872,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
LogUtils.d(" RoomBoomManager BaseRoom onExpPush() width = $width")
|
||||
boomPro.setViewWH(width = width, isDP = false)
|
||||
}
|
||||
boomPro.scaleType = if (expPushBean.speed < 90) ImageView.ScaleType.MATRIX else ImageView.ScaleType.FIT_XY
|
||||
}
|
||||
|
||||
//boom中奖弹窗
|
||||
@@ -1846,8 +1890,205 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
endUrl = dialogBean.endVapUrl.trim()
|
||||
level = dialogBean.level
|
||||
})
|
||||
upDateBoomExp()
|
||||
}
|
||||
}
|
||||
|
||||
private fun showBoomInfoDialog() {
|
||||
mBoomInfoDialog = RoomBoomInfoDialog().apply {
|
||||
roomUid = AvRoomDataManager.get().roomUid
|
||||
}
|
||||
mBoomInfoDialog?.setOnDismissListener {
|
||||
mBoomInfoDialog = null
|
||||
}
|
||||
|
||||
mBoomInfoDialog?.mCallBack = object : RoomBoomInfoDialog.CallBack {
|
||||
override fun onCurrBoomInfo(boomInfo: BoomInfo) {
|
||||
onExpPush(BoomMsgExpPushBean().apply {
|
||||
speed = boomInfo.speed
|
||||
level = boomInfo.level
|
||||
pic = boomInfo.pic
|
||||
},true)
|
||||
}
|
||||
|
||||
override fun onClick(type: Int, data: Any) {
|
||||
mBoomInfoDialog?.dismiss()
|
||||
onSendGiftBtnClick()
|
||||
}
|
||||
}
|
||||
context?.let {
|
||||
mBoomInfoDialog?.show(it)
|
||||
}
|
||||
}
|
||||
|
||||
private fun upDateBoomExp(){
|
||||
AvRoomModel.get().getBoomInfo(AvRoomDataManager.get().roomUid)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess {
|
||||
it.forEach { info->
|
||||
if (info.currLevel) {
|
||||
mBoomExp = BoomMsgExpPushBean().apply {
|
||||
level = info.level
|
||||
speed = info.speed
|
||||
pic = info.pic
|
||||
}
|
||||
boomLayout.setVis(true)
|
||||
boomIcon.loadImage(info.pic)
|
||||
boomProMax.post {
|
||||
boomPro.setViewWH(width = (boomProMax.width * (info.speed.toFloat() / 100)).toInt(), isDP = false)
|
||||
}
|
||||
boomPro.scaleType = if (info.speed < 90) ImageView.ScaleType.MATRIX else ImageView.ScaleType.FIT_XY
|
||||
}
|
||||
}
|
||||
}
|
||||
.doOnError {
|
||||
LogUtils.d(""+it?.message)
|
||||
}
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
private fun checkBoomInfo() {
|
||||
checkLuckyBagInfo()
|
||||
"checkBoomInfo".doLog()
|
||||
RoomBoomManager.clearQueue()
|
||||
AvRoomModel.get().getRoomBoomInfo(AvRoomDataManager.get().roomUid)
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSuccess { boomInfo: RoomBoomInfo ->
|
||||
|
||||
if (boomInfo.roomBoomSignVoList.isVerify()) {
|
||||
boomInfo.roomBoomSignVoList.forEachIndexed { index, roomBoomInfoSign ->
|
||||
RoomBoomManager.addAnim(BoomMsgAnimBean().apply {
|
||||
countDownUrl = roomBoomInfoSign.countDownVapUrl
|
||||
endUrl = roomBoomInfoSign.endVapUrl
|
||||
level = roomBoomInfoSign.level
|
||||
})
|
||||
}
|
||||
} else {
|
||||
return@doOnSuccess
|
||||
}
|
||||
|
||||
if (boomInfo.prizes.isVerify()) {
|
||||
val toMap = boomInfo.prizes.groupBy { it.level }.toMap()
|
||||
toMap.forEach {
|
||||
RoomBoomManager.addAward(BoomMsgAwardList().apply {
|
||||
list = it.value
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
.doOnError {
|
||||
LogUtils.d("")
|
||||
}
|
||||
.subscribe()
|
||||
|
||||
|
||||
}
|
||||
|
||||
//幸运礼包推送
|
||||
private fun onLuckyBagAdd(roomEvent: RoomEvent) {
|
||||
luckyBagBtn?.postSafe(200) {
|
||||
RoomHelperManager.onLuckyBagAdd(roomEvent,luckyBagBtn)
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkLuckyBagInfo() {
|
||||
luckyBagBtn?.postSafe(200){
|
||||
"红包信息 = checkLuckyBagInfo = $isAdded".doLog()
|
||||
RoomHelperManager.getLuckyBagInfo {
|
||||
luckyBagBtn?.postSafe {
|
||||
"红包信息 = isAdded = $isAdded".doLog()
|
||||
if (isAdded) {
|
||||
"红包信息 = $it".doLog()
|
||||
if (it.redEnvelopeListVoList.isVerify()) {
|
||||
luckyBagBtn.setNewData(it.redEnvelopeListVoList)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public fun initFloatBtnLayout() {
|
||||
|
||||
floatBtnLayout = mView.findViewById(R.id.floatBtnLayout)
|
||||
|
||||
floatBtnLayoutFold = floatBtnLayout.findViewById(R.id.floatBtnLayoutFold)
|
||||
btnFold = floatBtnLayout.findViewById(R.id.btnFold)
|
||||
|
||||
boomLayout = floatBtnLayout.findViewById(R.id.boomLayout)
|
||||
boomIcon = floatBtnLayout.findViewById(R.id.boomIcon)
|
||||
boomProMax = floatBtnLayout.findViewById(R.id.boomProMax)
|
||||
boomPro = floatBtnLayout.findViewById(R.id.boomPro)
|
||||
|
||||
luckyBagBtn = floatBtnLayout.findViewById(R.id.luckyBagBtn)
|
||||
|
||||
ivTeamPk = floatBtnLayout.findViewById(R.id.iv_team_pk)
|
||||
|
||||
btnIvConfigEntrance = floatBtnLayout.findViewById(R.id.iv_config_entrance)
|
||||
|
||||
btnIvgame = floatBtnLayout.findViewById(R.id.iv_game)
|
||||
|
||||
mIvQueuingMicro = floatBtnLayout.findViewById(R.id.iv_queuing_micro)
|
||||
|
||||
boomIcon.post {
|
||||
boomIcon.rotation = -30f
|
||||
}
|
||||
|
||||
boomLayout.setOnClickListener {
|
||||
showBoomInfoDialog()
|
||||
}
|
||||
|
||||
|
||||
boomLayout.postSafe(3000){
|
||||
upDateBoomExp()
|
||||
requestGamesData()
|
||||
checkLuckyBagInfo()
|
||||
}
|
||||
|
||||
|
||||
if (AvRoomDataManager.get().isGameRoom) {
|
||||
btnIvgame.setVis(false)
|
||||
mIvQueuingMicro?.setVis(false)
|
||||
} else if (AvRoomDataManager.get().isSingleRoom) {
|
||||
ivTeamPk?.setVis(false)
|
||||
mIvQueuingMicro?.setVis(false)
|
||||
}
|
||||
|
||||
btnFold.setVis((AvRoomDataManager.get().is19Room || AvRoomDataManager.get().is20Room|| AvRoomDataManager.get().isGameRoom))
|
||||
floatBtnLayoutFold.setViewWH(
|
||||
height = if (btnFold.isVisible) 1 else ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
isDP = false
|
||||
)
|
||||
btnFold.tag = btnFold.isVisible
|
||||
btnFold.click {
|
||||
val tag = btnFold.tag
|
||||
if (tag is Boolean) {
|
||||
if (tag) {
|
||||
btnFold.tag = false
|
||||
btnFold.setImageResource(R.drawable.icon_fold_down)
|
||||
floatBtnLayoutFold.setViewWH(
|
||||
height = ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
isDP = false
|
||||
)
|
||||
} else {
|
||||
btnFold.tag = true
|
||||
btnFold.setImageResource(R.drawable.icon_fold_up)
|
||||
floatBtnLayoutFold.setViewWH(height = 1, isDP = false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bottomView.post {
|
||||
floatBtnLayout.setMargin(bottom = bottomView.height, isDP = false)
|
||||
setComboViewVis(true)
|
||||
}
|
||||
|
||||
mIvQueuingMicro?.setOnClickListener(this)
|
||||
btnIvgame?.setOnClickListener(this)
|
||||
btnIvConfigEntrance?.setOnClickListener(this)
|
||||
ivTeamPk?.setOnClickListener(this)
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -6,10 +6,7 @@ import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.view.ViewStub;
|
||||
@@ -21,47 +18,36 @@ import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chwl.app.avroom.activity.RoomTitleEditActivity;
|
||||
import com.chwl.app.databinding.LayoutRoomNotifyLuckyGiftTipBinding;
|
||||
import com.chwl.app.utils.GiftAnimUtil;
|
||||
import com.chwl.app.utils.NumberUtils;
|
||||
import com.chwl.app.utils.RoomBoomManager;
|
||||
import com.chwl.app.utils.RoomNotifyDialogManager;
|
||||
import com.chwl.app.utils.WeakPool;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.gift.bean.CpMsgBean;
|
||||
import com.chwl.core.gift.bean.LuckyGiftMsgAllBean;
|
||||
import com.chwl.core.gift.bean.LuckyGiftMsgSelfBean;
|
||||
import com.chwl.core.gift.bean.MsgSuperLuckyGift;
|
||||
import com.chwl.core.gift.bean.RoomNotifyDialogBean;
|
||||
import com.chwl.core.utils.ComboUtil;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
|
||||
import com.chwl.app.ui.widget.BonsellaJoinAttackButtonView;
|
||||
import com.chwl.app.ui.widget.GiftDialog;
|
||||
import com.chwl.app.ui.widget.UserInfoDialog;
|
||||
import com.chwl.core.gift.event.GiftComboEvent;
|
||||
import com.chwl.core.gift.toolbox.GiftToolbox;
|
||||
import com.chwl.core.utils.LogUtils;
|
||||
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;
|
||||
import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.avroom.activity.RoomTitleEditActivity;
|
||||
import com.chwl.app.avroom.dialog.ExitRoomPopupWindow;
|
||||
import com.chwl.app.avroom.dialog.RoomBgSetDialog;
|
||||
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.notify.GlobalNotifyManager;
|
||||
import com.chwl.app.ui.utils.ImageLoadKt;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
|
||||
import com.chwl.app.ui.widget.BonsellaJoinAttackButtonView;
|
||||
import com.chwl.app.ui.widget.GiftDialog;
|
||||
import com.chwl.app.ui.widget.UserInfoDialog;
|
||||
import com.chwl.app.utils.RegexUtil;
|
||||
import com.chwl.app.utils.RoomBoomManager;
|
||||
import com.chwl.app.utils.RoomNotifyDialogManager;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.gift.bean.CpMsgBean;
|
||||
import com.chwl.core.gift.bean.GiftMultiReceiverInfo;
|
||||
import com.chwl.core.gift.bean.GiftReceiveInfo;
|
||||
import com.chwl.core.gift.bean.LuckyBagGifts;
|
||||
import com.chwl.core.gift.bean.MsgSuperLuckyGift;
|
||||
import com.chwl.core.gift.bean.MultiGiftReceiveInfo;
|
||||
import com.chwl.core.gift.bean.RoomBgChangeBean;
|
||||
import com.chwl.core.gift.bean.RoomLevelChangeBean;
|
||||
import com.chwl.core.gift.bean.RoomNotifyDialogBean;
|
||||
import com.chwl.core.gift.event.GiftComboEvent;
|
||||
import com.chwl.core.gift.toolbox.GiftToolbox;
|
||||
import com.chwl.core.home.event.FollowRoomEvent;
|
||||
import com.chwl.core.home.model.CollectionRoomModel;
|
||||
import com.chwl.core.im.custom.bean.CustomAttachment;
|
||||
@@ -71,21 +57,34 @@ import com.chwl.core.magic.bean.MultiMagicReceivedInfo;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.noble.bean.AllServiceGiftProtocol;
|
||||
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.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.user.UserModel;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.core.utils.ComboUtil;
|
||||
import com.chwl.core.utils.CoreLogger;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
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;
|
||||
import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
@@ -107,7 +106,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
// private AppCompatImageView mIvGoodNumber;
|
||||
|
||||
private ImageView roomMore;
|
||||
// private ImageView ivRoomShare;
|
||||
// private ImageView ivRoomShare;
|
||||
private GiftV2View giftView;
|
||||
private ViewStub mVsGift2View;
|
||||
private RoomEffectView mRoomEffectView;
|
||||
@@ -116,7 +115,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
private String[] bgPicture = new String[]{""};
|
||||
|
||||
private UserInfo mUserInfo;
|
||||
private FragmentChatroomGameMainBinding gameMainBinding;
|
||||
public FragmentChatroomGameMainBinding gameMainBinding;
|
||||
|
||||
//收藏房间
|
||||
private String FOLLOW_ROOM_TYPE = "";
|
||||
@@ -243,6 +242,8 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
public void setRoomBg(RoomInfo roomInfo) {
|
||||
if (svgaRoomBg == null) return;
|
||||
AVRoomActivity.setBackBg(mContext, roomInfo, svgaRoomBg, bgPicture);
|
||||
OtherExtKt.setVis(gameMainBinding.roomLevelIcon,OtherExtKt.isVerify(roomInfo.getRoomLevelIcon()),false);
|
||||
ImageLoadKt.loadImage(gameMainBinding.roomLevelIcon,roomInfo.getRoomLevelIcon());
|
||||
}
|
||||
|
||||
|
||||
@@ -253,54 +254,77 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
updateView(AvRoomDataManager.get().mCurrentRoomInfo);
|
||||
IMNetEaseManager.get().getChatRoomEventObservable()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(roomEvent -> {
|
||||
if (roomEvent == null) return;
|
||||
int event = roomEvent.getEvent();
|
||||
switch (event) {
|
||||
case RoomEvent.ENTER_ROOM:
|
||||
if (AvRoomDataManager.get().mCurrentRoomInfo != null) {
|
||||
updateOnlineNumberView(AvRoomDataManager.get().mCurrentRoomInfo.onlineNum);
|
||||
.doOnNext(roomEvent -> {
|
||||
OtherExtKt.postSafe(gameMainBinding.getRoot(), () -> {
|
||||
try {
|
||||
if (roomEvent == null) return null;
|
||||
int event = roomEvent.getEvent();
|
||||
// OtherExtKt.doLog("房间消息 接收到房间消息 - "+event + " == 34 ?");
|
||||
switch (event) {
|
||||
case RoomEvent.ENTER_ROOM:
|
||||
try {
|
||||
if (AvRoomDataManager.get().mCurrentRoomInfo != null) {
|
||||
updateOnlineNumberView(AvRoomDataManager.get().mCurrentRoomInfo.onlineNum);
|
||||
}
|
||||
addTipMsg();
|
||||
} catch (Exception e) {
|
||||
OtherExtKt.doLog("房间消息 接收到房间消息=1 报错 - "+e.getMessage());
|
||||
}
|
||||
case RoomEvent.ROOM_INFO_UPDATE:
|
||||
updateView(AvRoomDataManager.get().mCurrentRoomInfo);
|
||||
break;
|
||||
case RoomEvent.RECEIVE_NORMALE_GIFT://普通
|
||||
onReceiveGiftMsg(roomEvent.getGiftReceiveInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVE_NORMALE_GIFT_ALL_SERVICE:// 全服普通
|
||||
onReceiveGiftMsgAllService(roomEvent.getGiftReceiveInfo());
|
||||
case RoomEvent.RECEIVE_NORMALE_GIFT_ALL_SERVICE_NOTIFY:// 全服飘屏
|
||||
onReceiveGiftMsgAllServiceNotify(roomEvent.getAnyData());
|
||||
break;
|
||||
case RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT://普通多人
|
||||
onReceiveMultiGiftMsg(roomEvent.getGiftMultiReceiverInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT://普通全麦
|
||||
onReceiveAllMicGiftMsg(roomEvent.getMultiGiftReceiveInfo());
|
||||
break;
|
||||
//福袋礼物
|
||||
case RoomEvent.RECEIVE_LUCKY_GIFT:
|
||||
case RoomEvent.RECEIVE_MULTI_LUCKY_GIFT:
|
||||
case RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT:
|
||||
onReceiveLuckyGiftToMultiMsg(roomEvent.getLuckygiftMultiReceiverInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVED_SINGLE_MAGIC:
|
||||
onReceiveMagicMsg(roomEvent.getMagicReceivedInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVED_ALL_MIC_MAGIC:
|
||||
onReceiveMultiMagicMsg(roomEvent.getMultiMagicReceivedInfo());
|
||||
break;
|
||||
case RoomEvent.FANS_TEAM_JOIN:
|
||||
onReceiveFansTeamJoinMsg(roomEvent.getChatRoomMessage());
|
||||
break;
|
||||
case RoomEvent.MSG_SUPER_LUCKY_GIFT:
|
||||
onLuckyGiftMsg(roomEvent);
|
||||
break;
|
||||
case RoomEvent.MSG_CP_ABOUT:
|
||||
onCpAboutMsg(roomEvent);
|
||||
case RoomEvent.MSG_ROOM_BG_CHANGE:
|
||||
onRoomBgChange(roomEvent);
|
||||
case RoomEvent.MSG_ROOM_LEVEL_CHANGE:
|
||||
onRoomLevelChange(roomEvent);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
addTipMsg();
|
||||
case RoomEvent.ROOM_INFO_UPDATE:
|
||||
updateView(AvRoomDataManager.get().mCurrentRoomInfo);
|
||||
break;
|
||||
case RoomEvent.RECEIVE_NORMALE_GIFT://普通
|
||||
onReceiveGiftMsg(roomEvent.getGiftReceiveInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT://普通多人
|
||||
onReceiveMultiGiftMsg(roomEvent.getGiftMultiReceiverInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT://普通全麦
|
||||
onReceiveAllMicGiftMsg(roomEvent.getMultiGiftReceiveInfo());
|
||||
break;
|
||||
//福袋礼物
|
||||
case RoomEvent.RECEIVE_LUCKY_GIFT:
|
||||
case RoomEvent.RECEIVE_MULTI_LUCKY_GIFT:
|
||||
case RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT:
|
||||
onReceiveLuckyGiftToMultiMsg(roomEvent.getLuckygiftMultiReceiverInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVED_SINGLE_MAGIC:
|
||||
onReceiveMagicMsg(roomEvent.getMagicReceivedInfo());
|
||||
break;
|
||||
case RoomEvent.RECEIVED_ALL_MIC_MAGIC:
|
||||
onReceiveMultiMagicMsg(roomEvent.getMultiMagicReceivedInfo());
|
||||
break;
|
||||
case RoomEvent.FANS_TEAM_JOIN:
|
||||
onReceiveFansTeamJoinMsg(roomEvent.getChatRoomMessage());
|
||||
break;
|
||||
case RoomEvent.MSG_SUPER_LUCKY_GIFT:
|
||||
onLuckyGiftMsg(roomEvent);
|
||||
break;
|
||||
case RoomEvent.MSG_CP_ABOUT:
|
||||
onCpAboutMsg(roomEvent);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (Exception e) {
|
||||
OtherExtKt.doLog("房间消息 报错 "+roomEvent.getEvent()+" "+e.getMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
|
||||
})
|
||||
.subscribe();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -401,6 +425,16 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
tempFragment = RevelryRoomFragment.Companion.newInstance();
|
||||
}
|
||||
break;
|
||||
case RoomInfo.ROOMTYPE_19_ROOM:
|
||||
if (!(tempFragment instanceof Room19Fragment)) {
|
||||
tempFragment = Room19Fragment.Companion.newInstance();
|
||||
}
|
||||
break;
|
||||
case RoomInfo.ROOMTYPE_20_ROOM:
|
||||
if (!(tempFragment instanceof Room20Fragment)) {
|
||||
tempFragment = Room20Fragment.Companion.newInstance();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (tempFragment == null || !(tempFragment.getClass().getSimpleName().equals(HomePartyRoomFragment.class.getSimpleName()))) {
|
||||
tempFragment = HomePartyRoomFragment.newInstance();
|
||||
@@ -448,13 +482,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
gameMainBinding.setHasAnimationEffect(AvRoomDataManager.get().mIsNeedGiftEffect);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新特效开关提示
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void updateHasAnimation(HasAnimationEffect event) {
|
||||
updateHasAnimationEffect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -464,7 +491,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
break;
|
||||
case R.id.room_more:
|
||||
int gravity = Gravity.END;
|
||||
if(UiUtils.INSTANCE.isRtl(requireContext())){
|
||||
if (UiUtils.INSTANCE.isRtl(requireContext())) {
|
||||
gravity = Gravity.START;
|
||||
}
|
||||
ExitRoomPopupWindow.newInstance((AVRoomActivity) requireActivity())
|
||||
@@ -514,18 +541,12 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onFollowRoomEvent(FollowRoomEvent event) {
|
||||
ivFollowRoom.setImageResource(AvRoomDataManager.get().isRoomFans ? R.drawable.room_ic_collect_yes : R.drawable.room_ic_collect_no);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
|
||||
luckyGiftTipPool.clear();
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
RoomNotifyDialogManager.INSTANCE. clear();
|
||||
RoomBoomManager.INSTANCE. clear();
|
||||
RoomNotifyDialogManager.INSTANCE.clear();
|
||||
RoomBoomManager.INSTANCE.clear();
|
||||
|
||||
if (giftView != null) {
|
||||
giftView.release();
|
||||
@@ -539,6 +560,15 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
roomFragment.onActivityResult(requestCode, resultCode, data);
|
||||
List<Fragment> fragments = getParentFragmentManager().getFragments();
|
||||
if (ListUtils.isNotEmpty(fragments)) {
|
||||
for (Fragment fragment : fragments) {
|
||||
if (fragment instanceof RoomBgSetDialog) {
|
||||
fragment.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onRoomOnlineNumberSuccess(int onlineNumber) {
|
||||
@@ -546,18 +576,37 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 普通
|
||||
*/
|
||||
private void onReceiveGiftMsg(GiftReceiveInfo giftReceiveInfo) {
|
||||
if (giftReceiveInfo == null || !isResumed()) return;
|
||||
|
||||
gameMainBinding.giftComboLayout.onRoomCustomMsg(GiftToolbox.transformToGiftMultiReceiverInfo(giftReceiveInfo));
|
||||
if (giftReceiveInfo.getGift() != null && giftReceiveInfo.getGift().getNotifyFull() == 1) return;
|
||||
//全服礼物 的 特效播放交给 onReceiveGiftMsgAllService() 35消息来处理 , 但是连击旧消息处理
|
||||
|
||||
if (giftView == null) {
|
||||
giftView = (GiftV2View) mVsGift2View.inflate();
|
||||
}
|
||||
giftView.onReceiveGiftMsg(giftReceiveInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 普通多人
|
||||
*/
|
||||
private void onReceiveMultiGiftMsg(GiftMultiReceiverInfo giftMultiReceiverInfo) {
|
||||
if (giftMultiReceiverInfo == null || !isResumed()) return;
|
||||
|
||||
gameMainBinding.giftComboLayout.onRoomCustomMsg(giftMultiReceiverInfo);
|
||||
if (giftMultiReceiverInfo.getGift() != null && giftMultiReceiverInfo.getGift().getNotifyFull() == 1) return;
|
||||
//全服礼物 的 特效播放交给 onReceiveGiftMsgAllService() 35消息来处理 , 但是连击旧消息处理
|
||||
|
||||
if (giftView == null) {
|
||||
giftView = (GiftV2View) mVsGift2View.inflate();
|
||||
}
|
||||
giftView.onReceiveGiftToMultiMsg(giftMultiReceiverInfo);
|
||||
giftMultiReceiverInfo.isMulti = true;
|
||||
gameMainBinding.giftComboLayout.onRoomCustomMsg(giftMultiReceiverInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -565,26 +614,40 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
*/
|
||||
private void onReceiveAllMicGiftMsg(MultiGiftReceiveInfo multiGiftReceiveInfo) {
|
||||
if (multiGiftReceiveInfo == null || !isResumed()) return;
|
||||
|
||||
gameMainBinding.giftComboLayout.onRoomCustomMsg(GiftToolbox.transformToGiftMultiReceiverInfo(multiGiftReceiveInfo));
|
||||
if (multiGiftReceiveInfo.getGift() != null && multiGiftReceiveInfo.getGift().getNotifyFull() == 1) return;
|
||||
//全服礼物 的 特效播放交给 onReceiveGiftMsgAllService() 35消息来处理 , 但是连击旧消息处理
|
||||
|
||||
if (giftView == null) {
|
||||
giftView = (GiftV2View) mVsGift2View.inflate();
|
||||
}
|
||||
giftView.onReceiveMultiGiftMsg(multiGiftReceiveInfo);
|
||||
gameMainBinding.giftComboLayout.onRoomCustomMsg(GiftToolbox.transformToGiftMultiReceiverInfo(multiGiftReceiveInfo));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 普通
|
||||
* 全服礼物
|
||||
*/
|
||||
private void onReceiveGiftMsg(GiftReceiveInfo giftReceiveInfo) {
|
||||
private void onReceiveGiftMsgAllService(GiftReceiveInfo giftReceiveInfo) {
|
||||
if (giftReceiveInfo == null || !isResumed()) return;
|
||||
if (giftView == null) {
|
||||
giftView = (GiftV2View) mVsGift2View.inflate();
|
||||
}
|
||||
giftView.onReceiveGiftMsg(giftReceiveInfo);
|
||||
gameMainBinding.giftComboLayout.onRoomCustomMsg(GiftToolbox.transformToGiftMultiReceiverInfo(giftReceiveInfo));
|
||||
// 35 是 全服, 是服务器发的, 服务器发送的不带本地连击数, 所以不处理这个 连击横幅view , 让31 处理
|
||||
// gameMainBinding.giftComboLayout.onRoomCustomMsg(GiftToolbox.transformToGiftMultiReceiverInfo(giftReceiveInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 全服礼物-飘屏
|
||||
*/
|
||||
private void onReceiveGiftMsgAllServiceNotify(Object anyData) {
|
||||
if (anyData != null && anyData instanceof AllServiceGiftProtocol.DataBean) {
|
||||
GlobalNotifyManager.INSTANCE.onReceiveGiftMsgAllServiceNotify(anyData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void onReceiveMagicMsg(MagicReceivedInfo magicReceivedInfo) {
|
||||
if (magicReceivedInfo == null || !isResumed()) return;
|
||||
if (giftView == null) {
|
||||
@@ -620,7 +683,7 @@ 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){
|
||||
public void showUserCardDialog(String uid) {
|
||||
long id = JavaUtil.str2long(uid);
|
||||
if (id == 0) {
|
||||
return;
|
||||
@@ -656,30 +719,38 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onGiftComboEvent(GiftComboEvent event) {
|
||||
if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_BEGIN) {
|
||||
if (gameMainBinding.giftComboBtn.isInCombo()){
|
||||
gameMainBinding.giftComboBtn.waitStart();
|
||||
}
|
||||
} else if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_END) {
|
||||
showComboBtn(event.getGiftNumber());
|
||||
}else if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_CANCEL) {
|
||||
if (gameMainBinding.giftComboBtn.isInCombo()) {
|
||||
gameMainBinding.giftComboBtn.cancel();
|
||||
}
|
||||
}else if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_POINT) {
|
||||
ComboUtil.INSTANCE.setPoint(gameMainBinding.giftComboBtn);
|
||||
if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_BEGIN) {
|
||||
if (gameMainBinding.giftComboBtn.isInCombo()) {
|
||||
gameMainBinding.giftComboBtn.waitStart();
|
||||
}
|
||||
} else if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_SEND_SUCCESS) {
|
||||
showComboBtn(event.getGiftNumber());
|
||||
} else if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_COMBO_CANCEL) {
|
||||
if (gameMainBinding.giftComboBtn.isInCombo()) {
|
||||
gameMainBinding.giftComboBtn.cancel();
|
||||
}
|
||||
} else if (event.getAction() == GiftComboEvent.Action.ACT_GIFT_POINT) {
|
||||
ComboUtil.INSTANCE.setPoint(gameMainBinding.giftComboBtn.getSvgaView());
|
||||
}
|
||||
}
|
||||
|
||||
private void showComboBtn(int number) {
|
||||
if (gameMainBinding.giftComboBtn.getOnGiftComboEndListener() == null) {
|
||||
|
||||
//外部暂停连击点击事件
|
||||
gameMainBinding.giftComboBtn.setOnClickListener(v -> {
|
||||
ComboUtil.INSTANCE.setPoint(gameMainBinding.giftComboBtn);
|
||||
EventBus.getDefault().post(new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_START));
|
||||
gameMainBinding.giftComboBtn.showView(false);
|
||||
gameMainBinding.giftComboBtn.cancel();
|
||||
EventBus.getDefault().post(new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_DIALOG_SHOW));
|
||||
gameMainBinding.coinTips.setVisibility(View.GONE);
|
||||
});
|
||||
|
||||
//连击点击事件
|
||||
gameMainBinding.giftComboBtn.setComboClick(v -> {
|
||||
ComboUtil.INSTANCE.setPoint(gameMainBinding.giftComboBtn.getSvgaView());
|
||||
EventBus.getDefault().post(new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_COMBO_START));
|
||||
gameMainBinding.giftComboBtn.onBtnDown();
|
||||
});
|
||||
|
||||
@@ -688,7 +759,8 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
@Override
|
||||
public void onGiftComboEnd() {
|
||||
gameMainBinding.giftComboBtn.showView(false);
|
||||
EventBus.getDefault().post(new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_SHOW));
|
||||
EventBus.getDefault().post(new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_DIALOG_SHOW));
|
||||
gameMainBinding.coinTips.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -696,6 +768,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
gameMainBinding.giftComboBtn.showView(true);
|
||||
gameMainBinding.giftComboBtn.start();
|
||||
gameMainBinding.giftComboBtn.updateNumber(number);
|
||||
gameMainBinding.coinTips.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
|
||||
@@ -706,74 +779,24 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
MsgSuperLuckyGift msgSuperLuckyGift = roomEvent.getMsgSuperLuckyGift();
|
||||
if (msgSuperLuckyGift != null) {
|
||||
if (msgSuperLuckyGift.luckyGiftMsgAllBean != null) {
|
||||
showLuckyGiftDlg(msgSuperLuckyGift.luckyGiftMsgAllBean);
|
||||
RoomNotifyDialogManager.INSTANCE.addDialog(new RoomNotifyDialogBean(
|
||||
CustomAttachment.CUSTOM_MSG_SUPER_LUCKY_GIFT_TEMPLATE,
|
||||
CustomAttachment.CUSTOM_MSG_SUPER_LUCKY_GIFT_ROOM,
|
||||
msgSuperLuckyGift.luckyGiftMsgAllBean
|
||||
));
|
||||
}
|
||||
|
||||
if (msgSuperLuckyGift.luckyGiftMsgSelfBean != null) {
|
||||
showLuckyGiftDlgNotify(msgSuperLuckyGift.luckyGiftMsgSelfBean);
|
||||
if (msgSuperLuckyGift.luckyGiftMsgSelfBean.getUid() != AuthModel.get().getCurrentUid()) return;
|
||||
if (msgSuperLuckyGift.luckyGiftMsgSelfBean.getRoomId() != AvRoomDataManager.get().getRoomId()) return;
|
||||
if (msgSuperLuckyGift.luckyGiftMsgSelfBean.getRoomUid() != AvRoomDataManager.get().getRoomUid()) return;
|
||||
RoomNotifyDialogManager.INSTANCE.showLuckyGiftDlgNotify(gameMainBinding.flLuckyGiftNotifyLayout,msgSuperLuckyGift.luckyGiftMsgSelfBean);
|
||||
gameMainBinding.coinTips.showView(String.valueOf(msgSuperLuckyGift.luckyGiftMsgSelfBean.getCoins()),true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Handler handler = new Handler(Looper.getMainLooper());
|
||||
private WeakPool<View> luckyGiftTipPool = new WeakPool<>(3);
|
||||
private void showLuckyGiftDlgNotify(LuckyGiftMsgSelfBean luckyGiftMsgBean) {
|
||||
if (luckyGiftMsgBean == null) return;
|
||||
if (luckyGiftMsgBean.getUid() != AuthModel.get().getCurrentUid()) return;
|
||||
if (luckyGiftMsgBean.getRoomId() != AvRoomDataManager.get().getRoomId()) return;
|
||||
if (luckyGiftMsgBean.getRoomUid() != AvRoomDataManager.get().getRoomUid()) return;
|
||||
|
||||
LogUtils.i(" showLuckyGiftDlgNotify = start");
|
||||
|
||||
View root = luckyGiftTipPool.acquire(() -> {
|
||||
return LayoutInflater.from(gameMainBinding.flLuckyGiftNotifyLayout.getContext()).inflate(R.layout.layout_room_notify_lucky_gift_tip, gameMainBinding.flLuckyGiftNotifyLayout, false);
|
||||
});
|
||||
LayoutRoomNotifyLuckyGiftTipBinding binding = LayoutRoomNotifyLuckyGiftTipBinding.bind(root);
|
||||
binding.coinNum.setText(NumberUtils.format(luckyGiftMsgBean.getCoins()));
|
||||
binding.winNum.setText(java.lang.String.valueOf(luckyGiftMsgBean.getTimes()));
|
||||
if (luckyGiftMsgBean.getLevel() > 1) {
|
||||
binding.rootView.setBackgroundResource(R.drawable.bg_lucky_gift_tip_2);
|
||||
}
|
||||
root.setAlpha(0f);
|
||||
root.setScaleX(0f);
|
||||
root.setScaleY(0f);
|
||||
gameMainBinding.flLuckyGiftNotifyLayout.addView(root);
|
||||
GiftAnimUtil.showAnimation(root);
|
||||
// GiftAnimUtil.expandAnimation(root);
|
||||
|
||||
handler.postDelayed(() -> {
|
||||
try {
|
||||
root.animate()
|
||||
.alpha(0f)
|
||||
.setDuration(500)
|
||||
.withEndAction(() -> {
|
||||
gameMainBinding.flLuckyGiftNotifyLayout.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
root.clearAnimation();
|
||||
gameMainBinding.flLuckyGiftNotifyLayout.removeView(root);
|
||||
luckyGiftTipPool.release(root);
|
||||
}
|
||||
});
|
||||
})
|
||||
.start();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}, 2300);
|
||||
}
|
||||
|
||||
private void showLuckyGiftDlg(LuckyGiftMsgAllBean data) {
|
||||
//todo do 校验数据是否异常
|
||||
RoomNotifyDialogManager.INSTANCE.addDialog(new RoomNotifyDialogBean(
|
||||
CustomAttachment.CUSTOM_MSG_SUPER_LUCKY_GIFT_TEMPLATE,
|
||||
CustomAttachment.CUSTOM_MSG_SUPER_LUCKY_GIFT_ROOM,
|
||||
data
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* cp 礼物
|
||||
*/
|
||||
@@ -789,7 +812,51 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新房间背景消息
|
||||
*/
|
||||
private void onRoomBgChange(RoomEvent roomEvent) {
|
||||
RoomBgChangeBean changeBean = roomEvent.getRoomBgChangeBean();
|
||||
if (changeBean != null) {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo != null) {
|
||||
roomInfo.setBackPic(changeBean.url);
|
||||
setRoomBg(roomInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新房间等级消息
|
||||
*/
|
||||
private void onRoomLevelChange(RoomEvent roomEvent) {
|
||||
Object anyData = roomEvent.getAnyData();
|
||||
if (anyData instanceof RoomLevelChangeBean ){
|
||||
|
||||
Object roomLevel = gameMainBinding.roomLevelIcon.getTag();
|
||||
if (roomLevel != null && roomLevel instanceof Integer) {
|
||||
if ((Integer) roomLevel > ((RoomLevelChangeBean) anyData).roomLevel) return;
|
||||
}
|
||||
|
||||
gameMainBinding.roomLevelIcon.setTag(((RoomLevelChangeBean) anyData).roomLevel);
|
||||
OtherExtKt.setVis(gameMainBinding.roomLevelIcon,OtherExtKt.isVerify(((RoomLevelChangeBean) anyData).getRoomLevelIcon()),false);
|
||||
ImageLoadKt.loadImage(gameMainBinding.roomLevelIcon,((RoomLevelChangeBean) anyData).getRoomLevelIcon());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onFollowRoomEvent(FollowRoomEvent event) {
|
||||
ivFollowRoom.setImageResource(AvRoomDataManager.get().isRoomFans ? R.drawable.room_ic_collect_yes : R.drawable.room_ic_collect_no);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新特效开关提示
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void updateHasAnimation(HasAnimationEffect event) {
|
||||
updateHasAnimationEffect();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -4,32 +4,9 @@ import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.chwl.app.avroom.dialog.RoomTeamPKResultDialog;
|
||||
import com.chwl.app.avroom.dialog.RoomTeamPkDialog;
|
||||
import com.chwl.app.avroom.headline.RoomHeadlineWidget;
|
||||
import com.chwl.app.avroom.online.RoomOnlineWidget;
|
||||
import com.chwl.app.avroom.rank.RoomRankNumberWidget;
|
||||
import com.chwl.app.music.widget.MusicPlayerView;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity;
|
||||
import com.chwl.app.ui.widget.GiftDialog;
|
||||
import com.chwl.core.gift.bean.GiftInfo;
|
||||
import com.chwl.core.room.bean.RightBottomIconConfig;
|
||||
import com.chwl.core.room.bean.RoomIcon;
|
||||
import com.chwl.core.room.core.RoomDataService;
|
||||
import com.chwl.core.room.pk.event.PKDataUpdateEvent;
|
||||
import com.chwl.core.room.queue.bean.MicMemberInfo;
|
||||
import com.chwl.core.support.room.AudioRoomContext;
|
||||
import com.chwl.core.support.room.RoomAbility;
|
||||
import com.chwl.core.support.room.RoomContext;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.activity.AVRoomActivity;
|
||||
import com.chwl.app.avroom.adapter.BaseMicroViewAdapter;
|
||||
@@ -41,13 +18,19 @@ import com.chwl.app.avroom.anotherroompk.RoomPkForceFinishDialog;
|
||||
import com.chwl.app.avroom.anotherroompk.RoomPkReceivedDialog;
|
||||
import com.chwl.app.avroom.dialog.MicQueueDialog;
|
||||
import com.chwl.app.avroom.dialog.PKMicQueueDialog;
|
||||
import com.chwl.app.avroom.dialog.RoomTeamPKResultDialog;
|
||||
import com.chwl.app.avroom.dialog.RoomTeamPkDialog;
|
||||
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.chwl.app.avroom.headline.RoomHeadlineWidget;
|
||||
import com.chwl.app.avroom.online.RoomOnlineWidget;
|
||||
import com.chwl.app.avroom.presenter.HomePartyPresenter;
|
||||
import com.chwl.app.avroom.rank.RoomRankNumberWidget;
|
||||
import com.chwl.app.avroom.view.IHomePartyView;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.app.common.widget.dialog.DialogManager;
|
||||
import com.chwl.app.databinding.FragmentAvRoomGameBinding;
|
||||
import com.chwl.app.ui.webview.DatingRuleWebViewActivity;
|
||||
import com.chwl.app.ui.webview.DialogWebViewActivity;
|
||||
import com.chwl.app.utils.UserUtils;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.UriProvider;
|
||||
@@ -66,6 +49,7 @@ import com.chwl.core.room.model.AvRoomModel;
|
||||
import com.chwl.core.room.model.MicQueueModel;
|
||||
import com.chwl.core.room.pk.bean.PKRespQueuingMicListInfo;
|
||||
import com.chwl.core.room.pk.bean.RoomPkData;
|
||||
import com.chwl.core.room.pk.event.PKDataUpdateEvent;
|
||||
import com.chwl.core.room.pk.event.PKStateEvent;
|
||||
import com.chwl.core.room.pk.model.PkModel;
|
||||
import com.chwl.core.room.queuing_mic.bean.RespQueuingMicListInfo;
|
||||
@@ -78,12 +62,13 @@ import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.chwl.library.utils.TimeUtils;
|
||||
import com.chwl.library.utils.UIUtils;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -92,7 +77,6 @@ import io.reactivex.Single;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
|
||||
/**
|
||||
* 轰趴房间
|
||||
@@ -136,7 +120,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
gameBinding.setKtvModel(false);
|
||||
gameBinding.playTogether.setVisibility(View.GONE);
|
||||
microView = mView.findViewById(R.id.micro_view);
|
||||
gameBinding.ivTeamPk.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -165,7 +148,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
initRoomPkOrder(AvRoomDataManager.get().showPkBeginTime, AvRoomDataManager.get().pkBeginTime);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onReceiveRoomEvent(RoomEvent roomEvent) {
|
||||
super.onReceiveRoomEvent(roomEvent);
|
||||
@@ -365,14 +347,14 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
private void updatePkScoreBoard() {
|
||||
if (AvRoomDataManager.get().isOpenPKMode()) {
|
||||
|
||||
if (gameBinding.ivTeamPk.getVisibility() == View.GONE) {
|
||||
if (ivTeamPk.getVisibility() == View.GONE) {
|
||||
// 通知更新背景
|
||||
PKStateEvent pkStateEvent = new PKStateEvent();
|
||||
pkStateEvent.setCreate(true);
|
||||
EventBus.getDefault().post(pkStateEvent);
|
||||
showTeamPkDialog();
|
||||
}
|
||||
gameBinding.ivTeamPk.setVisibility(View.VISIBLE);
|
||||
ivTeamPk.setVisibility(View.VISIBLE);
|
||||
//这里通过接口获取PK 详情 更新pk 记分板
|
||||
if (PkModel.get().getCurPkInfo() == null) {
|
||||
PkModel.get().loadPKDataByRoomId(
|
||||
@@ -411,13 +393,15 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
}
|
||||
|
||||
} else {
|
||||
if (gameBinding.ivTeamPk.getVisibility() == View.VISIBLE) {
|
||||
// 通知更新bg
|
||||
PKStateEvent pkStateEvent = new PKStateEvent();
|
||||
pkStateEvent.setCreate(false);
|
||||
EventBus.getDefault().post(pkStateEvent);
|
||||
if (ivTeamPk != null) {
|
||||
if (ivTeamPk.getVisibility() == View.VISIBLE) {
|
||||
// 通知更新bg
|
||||
PKStateEvent pkStateEvent = new PKStateEvent();
|
||||
pkStateEvent.setCreate(false);
|
||||
EventBus.getDefault().post(pkStateEvent);
|
||||
}
|
||||
ivTeamPk.setVisibility(View.GONE);
|
||||
}
|
||||
gameBinding.ivTeamPk.setVisibility(View.GONE);
|
||||
dismissTeamPkDialog();
|
||||
}
|
||||
|
||||
@@ -474,12 +458,13 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
} else {
|
||||
closeDatingMode();
|
||||
}
|
||||
|
||||
if ((AvRoomDataManager.get().isDatingMode() || AvRoomDataManager.get().isOpenPKMode()) && !AvRoomDataManager.get().isManager()) {
|
||||
gameBinding.ivQueuingMicro.setVisibility(View.VISIBLE);
|
||||
gameBinding.ivQueuingMicro.setImageResource(AvRoomDataManager.get().isDatingMode() ?
|
||||
mIvQueuingMicro.setVisibility(View.VISIBLE);
|
||||
mIvQueuingMicro.setImageResource(AvRoomDataManager.get().isDatingMode() ?
|
||||
R.drawable.ic_dating_queuing_micro : R.drawable.ic_pk_queuing_micro);
|
||||
} else {
|
||||
gameBinding.ivQueuingMicro.setVisibility(View.GONE);
|
||||
mIvQueuingMicro.setVisibility(View.GONE);
|
||||
gameBinding.bottomView.updateQueuingMicButton();
|
||||
}
|
||||
updateMicroView();
|
||||
@@ -1058,11 +1043,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitMusicPlayerView(@NonNull MusicPlayerView view) {
|
||||
super.onInitMusicPlayerView(view);
|
||||
view.linkIconView(gameBinding.ivMusic, gameBinding.ivMusic);
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onPKDataUpdateEvent(PKDataUpdateEvent event) {
|
||||
|
@@ -6,29 +6,24 @@ 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;
|
||||
import com.chwl.app.avroom.presenter.HomePartyUserListPresenter;
|
||||
import com.chwl.app.avroom.view.IHomePartyUserListView;
|
||||
import com.chwl.app.base.BaseMvpFragment;
|
||||
import com.chwl.app.ui.widget.UserInfoDialog;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.room.bean.OnlineChatMember;
|
||||
import com.chwl.core.room.bean.RoomInfo;
|
||||
import com.chwl.core.super_admin.util.SuperAdminUtil;
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
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 java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -104,6 +99,15 @@ public class OnlineUserFragment extends BaseMvpFragment<IHomePartyUserListView,
|
||||
|
||||
@Override
|
||||
public void onRequestRoomOnlineListSuccess(List<RoomOnlineUserBean> chatRoomMemberList) {
|
||||
|
||||
Iterator<RoomOnlineUserBean> iterator = chatRoomMemberList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
RoomOnlineUserBean next = iterator.next();
|
||||
if (next.isSuperAdmin()) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
mOnlineUserAdapter.setNewData(chatRoomMemberList);
|
||||
mRefreshLayout.finishRefresh();
|
||||
}
|
||||
|
@@ -0,0 +1,33 @@
|
||||
package com.chwl.app.avroom.fragment
|
||||
|
||||
import com.chwl.app.avroom.adapter.BaseMicroViewAdapter
|
||||
import com.chwl.app.avroom.adapter.Mic19ViewAdapter
|
||||
import com.example.lib_utils.UiUtils
|
||||
import com.example.lib_utils.ktx.setMargin
|
||||
|
||||
/**
|
||||
* 十九麦房
|
||||
*/
|
||||
class Room19Fragment : HomePartyRoomFragment() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): Room19Fragment {
|
||||
return Room19Fragment()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFindViews() {
|
||||
super.onFindViews()
|
||||
microView.setMargin(0, UiUtils.dip2px(30f),0,0)
|
||||
}
|
||||
|
||||
override fun updateMicroView() {
|
||||
val microType = if (microView.adapter == null) BaseMicroViewAdapter.MICRO_TYPE_NULL else microView.adapter.microType()
|
||||
if (microType != BaseMicroViewAdapter.MICRO_TYPE_REVELRY_19) {
|
||||
microView.bindAdapter(Mic19ViewAdapter(mContext))
|
||||
}
|
||||
if (microView.adapter != null) {
|
||||
microView.adapter.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user