Compare commits
202 Commits
molistar/1
...
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 | ||
![]() |
927059e873 | ||
![]() |
2d33a96376 | ||
![]() |
84ff7be54e | ||
![]() |
367a55654b | ||
![]() |
7e48f77f1c | ||
![]() |
11e5271193 | ||
![]() |
20457a9bdf | ||
![]() |
47d1985d66 | ||
![]() |
4dc4dfc93b | ||
![]() |
04b71fa067 | ||
![]() |
583173308e | ||
![]() |
ce50e32a73 | ||
![]() |
7223db9e9c | ||
![]() |
4a2a9d4400 | ||
![]() |
8049bdf6ea | ||
![]() |
c90a961e2f | ||
![]() |
892f7c3e70 | ||
![]() |
4c8182ee2f | ||
![]() |
343e73c6e3 | ||
![]() |
eabe2ae7f8 | ||
![]() |
36c011d18e | ||
![]() |
f929d78540 | ||
![]() |
8184cdd6e1 | ||
![]() |
e4d44155dc | ||
![]() |
06c974a6ed | ||
![]() |
4bfbd19b53 | ||
![]() |
61a26f0c4f | ||
![]() |
e8cfc8a13b | ||
![]() |
295de38074 | ||
![]() |
e3c5f10d02 | ||
![]() |
d949cfa7ff | ||
![]() |
e30f4fd15f | ||
![]() |
90ece5366b | ||
![]() |
555b81589c | ||
![]() |
e4cdc39ad8 | ||
![]() |
09411df1ff | ||
![]() |
9cbc6cf39f | ||
![]() |
444d043aa8 | ||
![]() |
f99d193598 | ||
![]() |
4a57bd50c5 | ||
![]() |
8a59f8a769 | ||
![]() |
2c1ecbb263 | ||
![]() |
aa2987cb0d | ||
![]() |
5e6864d87f | ||
![]() |
6aabeb3eb3 | ||
![]() |
9ff48bc500 | ||
![]() |
e9ba0b1929 | ||
![]() |
adf2adc173 | ||
![]() |
74b2d71821 | ||
![]() |
81a5c6ba65 | ||
![]() |
5f8a8113c6 | ||
![]() |
b0bf9ce98d | ||
![]() |
c3fcbc3942 | ||
![]() |
6e08f397ee | ||
![]() |
3d29568b3c | ||
![]() |
cb4dac8e81 | ||
![]() |
f58701a2d6 |
1392
app/build.gradle
1392
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 |
@@ -13,19 +13,18 @@
|
||||
android:protectionLevel="signature" /> <!-- 谷歌内购权限 -->
|
||||
<permission
|
||||
android:name="${applicationId}.push.permission.MESSAGE"
|
||||
android:protectionLevel="signature" /> <!-- Required -->
|
||||
android:protectionLevel="signature" /> <!-- Required -->
|
||||
<permission
|
||||
android:name="${applicationId}.permission.C2D_MESSAGE"
|
||||
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 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 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 文件中。 -->
|
||||
@@ -84,6 +89,7 @@
|
||||
<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"
|
||||
@@ -316,6 +314,18 @@
|
||||
android:name=".ui.user.activity.UserInfoActivity"
|
||||
android:label="@string/main_androidmanifest_016"
|
||||
android:screenOrientation="portrait" />
|
||||
<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"
|
||||
@@ -334,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" />
|
||||
@@ -349,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" />
|
||||
@@ -491,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"
|
||||
@@ -548,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"
|
||||
@@ -692,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" />
|
||||
@@ -733,8 +743,8 @@
|
||||
android:name=".ui.setting.PermissionGuideActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".vip.VipMainActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 隐私设置 -->
|
||||
android:name=".vip.VipCenterActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".vip.VipSettingActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 通知提醒设置 -->
|
||||
@@ -784,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"
|
||||
@@ -843,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"
|
||||
@@ -888,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"
|
||||
@@ -899,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"
|
||||
@@ -922,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"
|
||||
@@ -953,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/cp_bind.mp4
Normal file
BIN
app/src/main/assets/mp4/cp_bind.mp4
Normal file
Binary file not shown.
BIN
app/src/main/assets/mp4/cp_userinfo_anim_3.mp4
Normal file
BIN
app/src/main/assets/mp4/cp_userinfo_anim_3.mp4
Normal file
Binary file not shown.
BIN
app/src/main/assets/mp4/cp_userinfo_anim_4.mp4
Normal file
BIN
app/src/main/assets/mp4/cp_userinfo_anim_4.mp4
Normal file
Binary file not shown.
BIN
app/src/main/assets/mp4/cp_userinfo_anim_5.mp4
Normal file
BIN
app/src/main/assets/mp4/cp_userinfo_anim_5.mp4
Normal file
Binary file not shown.
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/Combo_Boom.svga
Normal file
BIN
app/src/main/assets/svga/Combo_Boom.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/baishun_notify_bg.svga
Normal file
BIN
app/src/main/assets/svga/baishun_notify_bg.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_level_up_1.svga
Normal file
BIN
app/src/main/assets/svga/cp_level_up_1.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_level_up_2.svga
Normal file
BIN
app/src/main/assets/svga/cp_level_up_2.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_level_up_3.svga
Normal file
BIN
app/src/main/assets/svga/cp_level_up_3.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_level_up_4.svga
Normal file
BIN
app/src/main/assets/svga/cp_level_up_4.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_level_up_5.svga
Normal file
BIN
app/src/main/assets/svga/cp_level_up_5.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_list_head_1.svga
Normal file
BIN
app/src/main/assets/svga/cp_list_head_1.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_list_head_2.svga
Normal file
BIN
app/src/main/assets/svga/cp_list_head_2.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_list_head_3.svga
Normal file
BIN
app/src/main/assets/svga/cp_list_head_3.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_list_head_4.svga
Normal file
BIN
app/src/main/assets/svga/cp_list_head_4.svga
Normal file
Binary file not shown.
BIN
app/src/main/assets/svga/cp_list_head_5.svga
Normal file
BIN
app/src/main/assets/svga/cp_list_head_5.svga
Normal file
Binary file not shown.
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,31 +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.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;
|
||||
@@ -68,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;
|
||||
@@ -80,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;
|
||||
@@ -91,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;
|
||||
@@ -98,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;
|
||||
@@ -106,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;
|
||||
@@ -159,6 +163,8 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
private Fragment tempFragment = null;
|
||||
private DialogManager resumeGameDialogManager;
|
||||
|
||||
private PreloadResourceViewModel mPreLoadViewModel;
|
||||
|
||||
@Nullable
|
||||
private Runnable touchRunnable;
|
||||
|
||||
@@ -236,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();
|
||||
@@ -255,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() {
|
||||
@@ -269,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();
|
||||
mPreLoadViewModel.start(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -391,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() {
|
||||
@@ -437,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();
|
||||
@@ -490,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();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -507,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);
|
||||
@@ -518,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();
|
||||
}
|
||||
@@ -666,6 +691,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
@Override
|
||||
public void exitRoom(RoomInfo roomInfo) {
|
||||
AudioEngineManager.get().setNotRecord(false);
|
||||
closeOpenRoomAnimation();
|
||||
DaemonService.stop(MainActivity.this);
|
||||
}
|
||||
@@ -785,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;
|
||||
|
@@ -9,41 +9,16 @@ import android.content.res.Configuration;
|
||||
import android.graphics.Color;
|
||||
import android.net.http.HttpResponseCache;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.util.Supplier;
|
||||
import androidx.multidex.MultiDex;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.bumptech.glide.request.target.ViewTarget;
|
||||
import com.chwl.app.support.IMUserInfoProvider;
|
||||
import com.chwl.library.language.LanguageHelper;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.example.lib_utils.ServiceTime;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.liulishuo.filedownloader.FileDownloader;
|
||||
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;
|
||||
@@ -458,7 +460,6 @@ public class App extends BaseApp {
|
||||
.build();
|
||||
Realm.setDefaultConfiguration(config);
|
||||
|
||||
FileDownloader.setup(BasicConfig.INSTANCE.getAppContext());
|
||||
LogUtil.i(TAG, channel);
|
||||
}
|
||||
|
||||
@@ -535,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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -97,7 +97,7 @@ public class GlobalHandleManager {
|
||||
Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
if (AvRoomDataManager.get().isSelfGamePlaying()) return;
|
||||
LevelUpDialog.start(activity, event.getLevelName(), true);
|
||||
// LevelUpDialog.start(activity, event.getLevelName(), true);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
@@ -105,7 +105,7 @@ public class GlobalHandleManager {
|
||||
Activity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
if (AvRoomDataManager.get().isSelfGamePlaying()) return;
|
||||
LevelUpDialog.start(activity, event.getLevelName(), false);
|
||||
// LevelUpDialog.start(activity, event.getLevelName(), false);
|
||||
}
|
||||
|
||||
private static final class Helper {
|
||||
|
@@ -9,7 +9,7 @@ public abstract class BottomViewListenerWrapper {
|
||||
|
||||
}
|
||||
|
||||
public void onOpenMicBtnClick() {
|
||||
public void onOpenMicBtnClick(int type) {
|
||||
|
||||
}
|
||||
|
||||
|
@@ -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,26 +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.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;
|
||||
@@ -71,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;
|
||||
@@ -103,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;
|
||||
@@ -127,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;
|
||||
@@ -231,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);
|
||||
@@ -301,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())) {
|
||||
@@ -427,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")
|
||||
@@ -507,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));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -521,6 +533,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
}
|
||||
});
|
||||
roomNotify.start();
|
||||
AvRoomDataManager.get().hasAvRoomAct = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -751,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) {
|
||||
// 勋章
|
||||
@@ -857,6 +870,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
if (!justClosePage) {
|
||||
getMvpPresenter().exitRoom();
|
||||
}
|
||||
AudioEngineManager.get().setNotRecord(false);
|
||||
finish();
|
||||
}
|
||||
|
||||
@@ -873,6 +887,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
AvRoomDataManager.get().hasAvRoomAct = false;
|
||||
//关闭这么多弹窗,鬼知道哪个出问题了,简单的try catch下
|
||||
try {
|
||||
// 确保关闭 dialog,避免出现 leak window 异常
|
||||
@@ -913,6 +928,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
svgaCache.clear();
|
||||
}
|
||||
svgaCache = null;
|
||||
GlobalNotifyManager.INSTANCE.clearQueue();
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -1072,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
|
||||
@@ -1492,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) {
|
||||
@@ -1500,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)
|
||||
|
@@ -0,0 +1,158 @@
|
||||
package com.chwl.app.avroom.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
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.ViewGroup
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import androidx.annotation.StyleRes
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.widget.VDHLayout
|
||||
import com.chwl.app.ui.widget.dialog.BaseDialog
|
||||
|
||||
abstract class BaseRoomNotifyDialog<VB : ViewBinding>(context: Context, theme: Int = 0) : BaseDialog(context, theme) {
|
||||
|
||||
protected val handle = Handler(Looper.getMainLooper())
|
||||
protected lateinit var mBinding: VB
|
||||
|
||||
abstract fun createBinding(inflater: LayoutInflater): VB
|
||||
|
||||
abstract fun init()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
mBinding = createBinding(LayoutInflater.from(context))
|
||||
setContentView(mBinding.root)
|
||||
setCancelable(true)
|
||||
setCanceledOnTouchOutside(false)
|
||||
window?.let {
|
||||
initWindow(it)
|
||||
}
|
||||
|
||||
init()
|
||||
|
||||
if (useAutoDismiss()) {
|
||||
startAutoDismiss()
|
||||
}
|
||||
}
|
||||
|
||||
protected open fun startAutoDismiss() {
|
||||
handle.postDelayed({
|
||||
dismissDialog()
|
||||
}, (getStaySecond()*1000).toLong())
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
handle.removeCallbacksAndMessages(null)
|
||||
super.onDetachedFromWindow()
|
||||
}
|
||||
|
||||
protected open fun initWindow(window: Window) {
|
||||
window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
val windowParams = window.attributes
|
||||
windowParams.width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
windowParams.height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
windowParams.dimAmount = 0.0f
|
||||
windowParams.gravity = getGravity()
|
||||
windowParams.x = 0
|
||||
windowParams.y = getTopOffset()
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL)
|
||||
window.attributes = windowParams
|
||||
window.setWindowAnimations(getAnimations())
|
||||
}
|
||||
|
||||
protected open fun getGravity():Int{
|
||||
return Gravity.TOP
|
||||
}
|
||||
|
||||
|
||||
protected open fun getStaySecond():Float{
|
||||
return 5f
|
||||
}
|
||||
|
||||
protected open fun getTopOffset():Int{
|
||||
return 0
|
||||
}
|
||||
|
||||
@StyleRes
|
||||
protected open fun getAnimations():Int{
|
||||
return R.style.anim_left
|
||||
}
|
||||
|
||||
override fun setContentView(view: View) {
|
||||
if (useSlipSlip()) {
|
||||
val vdhLayout = VDHLayout(context, null)
|
||||
vdhLayout.addView(view)
|
||||
vdhLayout.setListener { dismissDialog() }
|
||||
super.setContentView(vdhLayout)
|
||||
return
|
||||
}
|
||||
super.setContentView(view)
|
||||
}
|
||||
|
||||
override fun setContentView(layoutResID: Int) {
|
||||
if (useSlipSlip()) {
|
||||
val vdhLayout = VDHLayout(context, null)
|
||||
LayoutInflater.from(context).inflate(layoutResID, vdhLayout)
|
||||
vdhLayout.setListener { dismissDialog() }
|
||||
super.setContentView(vdhLayout)
|
||||
return
|
||||
}
|
||||
super.setContentView(layoutResID)
|
||||
}
|
||||
|
||||
override fun setContentView(view: View, params: ViewGroup.LayoutParams?) {
|
||||
if (useSlipSlip()) {
|
||||
val vdhLayout = VDHLayout(context, null)
|
||||
vdhLayout.addView(view)
|
||||
vdhLayout.setListener { dismissDialog() }
|
||||
super.setContentView(vdhLayout, params)
|
||||
return
|
||||
}
|
||||
super.setContentView(view, params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否启动侧滑,左滑:删除,右滑:回到原位置
|
||||
*/
|
||||
protected open fun useSlipSlip(): Boolean {
|
||||
return true
|
||||
}
|
||||
protected open fun useAutoDismiss(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
var mCallBack : CallBack? = null
|
||||
interface CallBack{
|
||||
fun onHide();
|
||||
}
|
||||
|
||||
open fun dismissDialog() {
|
||||
try {
|
||||
dismiss()
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
mCallBack?.onHide()
|
||||
}
|
||||
|
||||
open fun clearDialog() {
|
||||
try {
|
||||
dismiss()
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
}
|
||||
|
||||
open fun showDialog(){
|
||||
show()
|
||||
}
|
||||
}
|
@@ -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>>
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user