17 次代碼提交 3e6a9092b1 ... 79168bf11b

作者 SHA1 備註 提交日期
  tongmengxiao 79168bf11b fix: house gift 5 月之前
  tongmengxiao d234d62bcc feat: 密码房不计入时长 5 月之前
  tongmengxiao 137acaf989 feat: more icon 5 月之前
  tongmengxiao 6320b6038c feat: image error 5 月之前
  tongmengxiao 04c67eeee9 fix: share message more 5 月之前
  tongmengxiao cfcdd6cb20 feat: delete faceshow 5 月之前
  tongmengxiao fb6d43da55 fix: 小黑屋推荐游戏 5 月之前
  tongmengxiao b8c7f04ed4 fix: 开播限制本地化 5 月之前
  tongmengxiao 1ac765b43f fix: password in 5 月之前
  tongmengxiao ba0ebdd394 fix: game list 5 月之前
  tongmengxiao a364743677 fix : house no lianmai 5 月之前
  tongmengxiao 32669a283e fix: close anchor dialog 5 月之前
  tongmengxiao 6f98eaba44 fix: update app 5 月之前
  tongmengxiao df9d233a5a fix: 小黑屋跳转 5 月之前
  tongmengxiao 70cfc62e84 feat: dialog face 5 月之前
  tongmengxiao ad949d47e1 feat: delete ali 5 月之前
  tongmengxiao 28f09523c8 feat: 禁言 5 月之前
共有 45 個文件被更改,包括 394 次插入396 次删除
  1. 1 7
      app/proguard-rules.pro
  2. 3 19
      app/src/main/java/com/swago/app/SwagoApp.kt
  3. 0 5
      baseswago/build.gradle
  4. 18 0
      baseswago/src/main/java/com/swago/baseswago/UserVm.kt
  5. 2 3
      baseswago/src/main/res/layout/dialog_choice.xml
  6. 1 0
      baseswago/src/main/res/layout/view_code_textview.xml
  7. 15 3
      baseswago/src/main/res/values-ar/strings.xml
  8. 13 1
      baseswago/src/main/res/values-in/strings.xml
  9. 13 1
      baseswago/src/main/res/values-ms/strings.xml
  10. 13 1
      baseswago/src/main/res/values-zh/strings.xml
  11. 13 1
      baseswago/src/main/res/values/strings.xml
  12. 33 11
      home/src/main/java/com/swago/home/search/SearchActivity.kt
  13. 1 0
      home/src/main/java/com/swago/home/search/SearchAdapter.kt
  14. 1 1
      home/src/main/java/com/swago/home/update/UpdateDialog.kt
  15. 3 44
      room/src/main/java/com/swago/room/anchor/AnchorRoomActivity.kt
  16. 2 6
      room/src/main/java/com/swago/room/anchor/AnchorRoomFragment.kt
  17. 19 2
      room/src/main/java/com/swago/room/base/BaseComFragment.kt
  18. 16 6
      room/src/main/java/com/swago/room/dialog/AnchorCloseDialog.kt
  19. 51 0
      room/src/main/java/com/swago/room/dialog/FooterMoreDialog.kt
  20. 0 7
      room/src/main/java/com/swago/room/dialog/LiveRestrictionsDialog.kt
  21. 0 58
      room/src/main/java/com/swago/room/dialog/NoFaceShowDialog.kt
  22. 8 2
      room/src/main/java/com/swago/room/dialog/SendMsgDialog.kt
  23. 1 1
      room/src/main/java/com/swago/room/gift/GiftDialog.kt
  24. 1 1
      room/src/main/java/com/swago/room/gift/GiftFragment.kt
  25. 1 1
      room/src/main/java/com/swago/room/gift/GiftPagerAdapter.kt
  26. 1 1
      room/src/main/java/com/swago/room/ranklist/RankListAdapter.kt
  27. 1 0
      room/src/main/java/com/swago/room/user/UserRoomActivity.kt
  28. 4 0
      room/src/main/java/com/swago/room/user/UserRoomFragment.kt
  29. 15 12
      room/src/main/java/com/swago/room/vm/RoomVm.kt
  30. 3 13
      room/src/main/java/com/swago/room/widget/AnchorFooterView.kt
  31. 29 1
      room/src/main/java/com/swago/room/widget/ComHeaderView.kt
  32. 1 1
      room/src/main/java/com/swago/room/widget/UserFooterView.kt
  33. 5 5
      room/src/main/res/layout/activity_anchor_room.xml
  34. 15 2
      room/src/main/res/layout/dialog_anchor_close.xml
  35. 39 0
      room/src/main/res/layout/dialog_footer_more.xml
  36. 1 1
      room/src/main/res/layout/dialog_house_go_live.xml
  37. 2 44
      room/src/main/res/layout/dialog_live_restrictions.xml
  38. 0 84
      room/src/main/res/layout/dialog_no_face_show.xml
  39. 6 19
      room/src/main/res/layout/layout_anchor_footer_view.xml
  40. 1 2
      room/src/main/res/layout/view_user_join_room.xml
  41. 二進制
      room/src/main/res/mipmap-xxhdpi/ic_no_face.png
  42. 二進制
      room/src/main/res/mipmap-xxhdpi/live_more.png
  43. 1 1
      user/src/main/java/com/swago/user/EditInfoActivity.kt
  44. 40 29
      user/src/main/java/com/swago/user/FollowAndFansActivity.kt
  45. 1 0
      user/src/main/java/com/swago/user/adapter/FollowFanAdapter.kt

+ 1 - 7
app/proguard-rules.pro

@@ -247,10 +247,4 @@
 -keepclassmembers class com.facebook.applinks.** { *; }
 -keep class com.facebook.FacebookSdk { *; }
 -keep class com.huawei.hms.ads.** { *; }
--keep class com.facebook.login.** { *; }
-
--keep class com.uc.crashsdk.** { *; }
--keep interface com.uc.crashsdk.** { *; }
--keep class com.aliyun.sls.android.producer.* { *; }
--keep interface com.aliyun.sls.android.producer.* { *; }
--keep class com.aliyun.sls.android.** { *; }
+-keep class com.facebook.login.** { *; }

+ 3 - 19
app/src/main/java/com/swago/app/SwagoApp.kt

@@ -6,8 +6,6 @@ import android.net.http.HttpResponseCache
 import androidx.fragment.app.FragmentActivity
 import androidx.multidex.MultiDex
 import com.alibaba.android.arouter.launcher.ARouter
-import com.aliyun.sls.android.core.SLSAndroid
-import com.aliyun.sls.android.core.configuration.Credentials
 import com.facebook.FacebookSdk
 import com.google.firebase.analytics.ktx.analytics
 import com.google.firebase.crashlytics.ktx.crashlytics
@@ -60,9 +58,9 @@ class SwagoApp : Application() {
             .alphaDuration(300)
             .errorIcon(R.mipmap.state_error_empty)
             .emptyIcon(R.mipmap.state_error_empty)
-            .emptyMsg("There is nothing here")
-            .loadingMsg("Loading")
-            .errorMsg("Load data error")
+            .emptyMsg(getString(R.string.There_is_nothing_here))
+            .loadingMsg(getString(R.string.loading))
+            .errorMsg(getString(R.string.Load_data_error))
             .build()
         MultiStatePage.config(config)
 
@@ -97,18 +95,4 @@ class SwagoApp : Application() {
             }
         }
     }
-
-    private fun crashReporter(){
-        val credentials = Credentials()
-        credentials.instanceId = ""
-        credentials.endpoint = ""
-        credentials.project = ""
-        credentials.accessKeyId = ""
-        credentials.accessKeySecret = ""
-        SLSAndroid.initialize(this , credentials) {
-            it.enableCrashReporter = true
-            it.enableBlockDetection = true
-            it.enableTracerLog
-        }
-    }
 }

+ 0 - 5
baseswago/build.gradle

@@ -133,9 +133,4 @@ dependencies {
     api 'com.duolingo.open:rtl-viewpager:2.0.0'
     //lottie
     api 'com.airbnb.android:lottie:4.0.0'
-
-    //阿里
-    api 'com.aliyun.openservices:aliyun-log-android-sdk:latest.release'
-    api 'com.aliyun.openservices:sls-android-core:latest.release'
-
 }

+ 18 - 0
baseswago/src/main/java/com/swago/baseswago/UserVm.kt

@@ -3,6 +3,7 @@ package com.swago.baseswago
 import android.app.Application
 import android.widget.Toast
 import androidx.lifecycle.MutableLiveData
+import com.bumptech.glide.load.engine.GlideException
 import com.huantansheng.easyphotos.ui.dialog.LoadingDialog
 import com.swago.baseswago.inter.ApiManager
 import com.swago.baseswago.model.*
@@ -13,6 +14,7 @@ import com.swago.baseswago.util.*
 import okhttp3.MediaType.Companion.toMediaTypeOrNull
 import okhttp3.MultipartBody
 import okhttp3.RequestBody
+import org.json.JSONObject
 import java.io.File
 
 /**
@@ -86,6 +88,22 @@ class UserVm(application: Application) : BaseViewModel(application) {
         }
     }
 
+    fun pushError(ex: GlideException?){
+        requestData2(false) {
+            requestData{
+                val jsonObject = JSONObject()
+                UserInfo.getUserInfo()?.let {
+                    jsonObject.put("id" , it.id)
+                }
+                jsonObject.put("version", SwagoInfo.getVersionCode())
+                jsonObject.put("device" , SwagoInfo.getDeviceInfo())
+                jsonObject.put("message","${ex?.message}")
+                jsonObject.put("detail", ex?.stackTraceToString())
+                ApiManager.configApi.pushCrash(jsonObject.toString())
+            }
+        }
+    }
+
     val followFansListLiveData by lazy {
         MutableLiveData<BlackListModel>()
     }

+ 2 - 3
baseswago/src/main/res/layout/dialog_choice.xml

@@ -66,14 +66,13 @@
             android:layout_width="0dp"
             android:layout_height="48dp"/>
 
-        <TextView
+        <com.swago.baseswago.cusview.BoldTextView
             android:id="@+id/tvSure"
             android:textSize="14dp"
-            android:textColor="#fff"
+            android:textColor="#000"
             android:text="@string/confirm"
             android:gravity="center"
             app:layout_constraintBottom_toBottomOf="parent"
-            android:background="@drawable/shape_ff56b7_right_bottom_20"
             app:layout_constraintTop_toBottomOf="@+id/view"
             app:layout_constraintStart_toEndOf="@+id/tvCancel"
             app:layout_constraintEnd_toEndOf="parent"

+ 1 - 0
baseswago/src/main/res/layout/view_code_textview.xml

@@ -9,6 +9,7 @@
         android:layout_height="80dp"
         android:orientation="horizontal"
         android:weightSum="4"
+        android:layoutDirection="ltr"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent">

+ 15 - 3
baseswago/src/main/res/values-ar/strings.xml

@@ -227,7 +227,7 @@
     <string name="no_send_people">لا يوجد مستخدم يقبل الهدايا</string>
     <string name="change_password">تغيير الباسورد</string>
     <string name="pwd_change_success">تغيير الباسورد</string>
-    <string name="do_you_confirm_change_pwd">هل تتأكد من تغيير الباسورد?</string>
+    <string name="do_you_confirm_change_pwd">هل تتأكد من تغيير الباسورد؟</string>
     <string name="red_bag_detail">تلقي تفاصيل المغلف الأحمر</string>
     <string name="lucky_best">تسليم اكثر</string>
     <string name="red_bg_piao_tiao">أرسل %s مظروفًا أحمر، وسيكون جاهزًا للتسليم في 30 ثانية، يرجى الاستعداد!</string>
@@ -246,7 +246,7 @@
     <string name="_1_1000">الرجاء إدخال عدد صحيح موجب ضمن 1-1000</string>
     <string name="set_success">تعديل بالنجاح</string>
     <string name="mic_locked">تم قفل وضع الميكروفون الحالي</string>
-    <string name="dou_you_want_on_mic">هل تريد اتصال الميكروفون?</string>
+    <string name="dou_you_want_on_mic">هل تريد اتصال الميكروفون؟</string>
     <string name="you_are_on_mic">أنت حاليًا على الميكروفون</string>
     <string name="fan_club_member_rights">فوائد أعضاء نادي المعجبين</string>
     <string name="fan_club_s">نادي المعجبين:%s</string>
@@ -289,11 +289,23 @@
     <string name="total_voice_time_this_week">إجمالي وقت الصوت هذا الأسبوع</string>
     <string name="voice_valid_days_this_week">أيام صالحة صوت هذا الأسبوع</string>
     <string name="live_streaming_restrictions">قيود البث المباشر</string>
-    <string name="conditions_to_start_live_broadcasting">يجب عليك استيفاء أي من الشروط التالية لبدء البث المباشر</string>
+    <string name="conditions_to_start_live_broadcasting">يجب أن تصبح مضيفًا لبدء العمل، يرجى الاتصال بوكالتك</string>
     <string name="already_be_a_host_or_agency">أن تكون مضيفًا أو وكالة بالفعل</string>
     <string name="cumulative_recharge">إعادة الشحن التراكمي >=10$</string>
     <string name="the_host_is_on_living">المضيف هو البث المباشر</string>
     <string name="go_to_thie_living_now">اذهب إلى غرفة البث المباشر الخاصة بها لرؤيتها</string>
     <string name="system_not_detect_face">لم يكتشف النظام الوجه</string>
     <string name="live_broadcasrt_will_closed_countdown">سيتم إغلاق غرفة البث المباشر بعد العد التنازلي</string>
+    <string name="you_been_banned">لقد تم اسكاتك</string>
+    <string name="switch_themee">غير الخلفية</string>
+    <string name="lock_room_on">غرفة مقفلة</string>
+    <string name="lock_room_off">غرفة عامة</string>
+    <string name="wish_gift">هدية الرغبة</string>
+    <string name="audio">صوت</string>
+    <string name="Live">فيديو</string>
+    <string name="There_is_nothing_here">لا يوجد شيء هنا</string>
+    <string name="Load_data_error">خطأ في تحميل البيانات</string>
+    <string name="loading">تحميل...</string>
+    <string name="modify_success">حفظ بنجاح</string>
+    <string name="Password_rooms_do_not_count_as_hours">أوقات غرفة القفل لم يتم احتسابها في المدة</string>
 </resources>

+ 13 - 1
baseswago/src/main/res/values-in/strings.xml

@@ -293,11 +293,23 @@
     <string name="total_voice_time_this_week">Total durasi audio minggu ini</string>
     <string name="voice_valid_days_this_week">valid hari audio Minggu Ini</string>
     <string name="live_streaming_restrictions">Pembatasan streaming live</string>
-    <string name="conditions_to_start_live_broadcasting">Anda harus memenuhi salah satu ketentuan berikut untuk mulai siaran live</string>
+    <string name="conditions_to_start_live_broadcasting">Anda harus menjadi host resmi jika mau buka live, silakanhubungi agencynya.</string>
     <string name="already_be_a_host_or_agency">Sudah menjadi host atau agensi</string>
     <string name="cumulative_recharge">Top up kumulatif>=10$</string>
     <string name="the_host_is_on_living">Host sedang siaran live</string>
     <string name="go_to_thie_living_now">Pergi ke ruang livenya untuk menemuinya </string>
     <string name="system_not_detect_face">Sistem tidak mendeteksi wajah</string>
     <string name="live_broadcasrt_will_closed_countdown">Ruang live akan ditutup setelah hitungan mundur</string>
+    <string name="you_been_banned">Anda telah dilarang berbicara</string>
+    <string name="switch_themee">Ubah tema</string>
+    <string name="lock_room_on">Buka room password</string>
+    <string name="lock_room_off">Tutupi room password</string>
+    <string name="wish_gift">Wish gift</string>
+    <string name="audio">Audio</string>
+    <string name="Live">Live</string>
+    <string name="There_is_nothing_here">Tidak ada apa pun di sini</string>
+    <string name="Load_data_error">Load data error</string>
+    <string name="loading">loading...</string>
+    <string name="modify_success">Berhasil dimodifikasi</string>
+    <string name="Password_rooms_do_not_count_as_hours">Ruang kata sandi tidak tambah durasi</string>
 </resources>

+ 13 - 1
baseswago/src/main/res/values-ms/strings.xml

@@ -290,11 +290,23 @@
     <string name="total_voice_time_this_week">Total durasi audio minggu ini</string>
     <string name="voice_valid_days_this_week">valid hari audio Minggu Ini</string>
     <string name="live_streaming_restrictions">Pembatasan streaming live</string>
-    <string name="conditions_to_start_live_broadcasting">Anda harus memenuhi salah satu ketentuan berikut untuk mulai siaran live</string>
+    <string name="conditions_to_start_live_broadcasting">Anda harus menjadi host resmi jika mau buka live, silakanhubungi agencynya.</string>
     <string name="already_be_a_host_or_agency">Sudah menjadi host atau agensi</string>
     <string name="cumulative_recharge">Top up kumulatif>=10$</string>
     <string name="the_host_is_on_living">Host sedang siaran live</string>
     <string name="go_to_thie_living_now">Pergi ke ruang livenya untuk menemuinya </string>
     <string name="system_not_detect_face">Sistem tidak mendeteksi wajah</string>
     <string name="live_broadcasrt_will_closed_countdown">Ruang live akan ditutup setelah hitungan mundur</string>
+    <string name="you_been_banned">Anda telah dilarang berbicara</string>
+    <string name="switch_themee">Ubah tema</string>
+    <string name="lock_room_on">Buka room password</string>
+    <string name="lock_room_off">Tutupi room password</string>
+    <string name="wish_gift">Wish gift</string>
+    <string name="audio">Audio</string>
+    <string name="Live">Live</string>
+    <string name="There_is_nothing_here">Tidak ada apa pun di sini</string>
+    <string name="Load_data_error">Load data error</string>
+    <string name="loading">loading...</string>
+    <string name="modify_success">Berhasil dimodifikasi</string>
+    <string name="Password_rooms_do_not_count_as_hours">Ruang kata sandi tidak tambah durasi</string>
 </resources>

+ 13 - 1
baseswago/src/main/res/values-zh/strings.xml

@@ -289,11 +289,23 @@
     <string name="total_voice_time_this_week">本周语音总时长</string>
     <string name="voice_valid_days_this_week">本周语音有效天</string>
     <string name="live_streaming_restrictions">直播限制</string>
-    <string name="conditions_to_start_live_broadcasting">需要满足以下任一条件可以开始直播</string>
+    <string name="conditions_to_start_live_broadcasting">开播需要成为正式主播,请联系您的家族长</string>
     <string name="already_be_a_host_or_agency">已经是主播或者家族长身份</string>
     <string name="cumulative_recharge">累计充值>=10$</string>
     <string name="the_host_is_on_living">主播正在直播</string>
     <string name="go_to_thie_living_now">去她的直播间看看她吧</string>
     <string name="system_not_detect_face">系统未检测到人脸</string>
     <string name="live_broadcasrt_will_closed_countdown">直播间将在倒计时后关闭</string>
+    <string name="you_been_banned">你已被禁言</string>
+    <string name="switch_themee">更换主题</string>
+    <string name="lock_room_on">密码房开启</string>
+    <string name="lock_room_off">密码房关闭</string>
+    <string name="wish_gift">心愿礼物</string>
+    <string name="audio">语音</string>
+    <string name="Live">视频</string>
+    <string name="There_is_nothing_here">There is nothing here</string>
+    <string name="Load_data_error">Load data error</string>
+    <string name="loading">loading...</string>
+    <string name="modify_success">修改成功</string>
+    <string name="Password_rooms_do_not_count_as_hours">密码房不计入时长</string>
 </resources>

+ 13 - 1
baseswago/src/main/res/values/strings.xml

@@ -311,11 +311,23 @@
     <string name="total_voice_time_this_week">Total voice time this week</string>
     <string name="voice_valid_days_this_week">Voice valid days this week</string>
     <string name="live_streaming_restrictions">Live streaming restrictions</string>
-    <string name="conditions_to_start_live_broadcasting">You need to meet any of the following conditions to start live broadcasting</string>
+    <string name="conditions_to_start_live_broadcasting">You need to become a host to start working, please contact your agency</string>
     <string name="already_be_a_host_or_agency">Already be a host or agency</string>
     <string name="cumulative_recharge">Cumulative recharge>=10$</string>
     <string name="the_host_is_on_living">The host is on living</string>
     <string name="go_to_thie_living_now">Go to the living room see her now </string>
     <string name="system_not_detect_face">The system did not detect the face</string>
     <string name="live_broadcasrt_will_closed_countdown">The live broadcast room will be closed after the countdown</string>
+    <string name="you_been_banned">You have been muted</string>
+    <string name="switch_themee">switch theme</string>
+    <string name="lock_room_on">lock room-on</string>
+    <string name="lock_room_off">lock room-off</string>
+    <string name="wish_gift">wish gift</string>
+    <string name="audio">Audio</string>
+    <string name="Live">Live</string>
+    <string name="There_is_nothing_here">There is nothing here</string>
+    <string name="Load_data_error">Load data error</string>
+    <string name="loading">loading...</string>
+    <string name="modify_success">Modify success</string>
+    <string name="Password_rooms_do_not_count_as_hours">Lock room times didn\'t count into</string>
 </resources>

+ 33 - 11
home/src/main/java/com/swago/home/search/SearchActivity.kt

@@ -17,6 +17,7 @@ import com.swago.baseswago.model.MomentModel
 import com.swago.baseswago.model.home.HomeModel
 import com.swago.baseswago.util.DpPxUtil
 import com.swago.baseswago.util.NoDoubleClickListener
+import com.swago.home.R
 import com.swago.home.databinding.ActivitySearchBinding
 import com.swago.home.innerhome.HomeAdapter
 
@@ -59,23 +60,44 @@ class SearchActivity : BaseListActivity<ActivitySearchBinding, MomentModel>() {
             }
         })
 
-        adapter.setOnItemChildClickListener { _, _, position ->
+        adapter.setOnItemChildClickListener { _, view, position ->
             this.position = position
-            val isFollow = adapter.data[position].is_follow
-            if (isFollow == 0){
-                userVm.followUser(adapter.data[position].id,0)
-            }else if (isFollow == 1){
-                userVm.followUser(adapter.data[position].id,1)
+            when(view?.id){
+                R.id.ivStatus -> {
+                    val isFollow = adapter.data[position].is_follow
+                    if (isFollow == 0){
+                        userVm.followUser(adapter.data[position].id,0)
+                    }else if (isFollow == 1){
+                        userVm.followUser(adapter.data[position].id,1)
+                    }
+                }
+                R.id.ivAvatar -> {
+                    if (adapter.data.size>position){
+                        ARouter.getInstance()
+                            .build(ARouteConstant.Room.user)
+                            .withInt("position",position)
+                            .withParcelableArrayList("data",adapter.data as ArrayList<MomentModel>)
+                            .navigation()
+                    }
+                }
             }
+
         }
 
         adapter.setOnItemClickListener { _, _, position ->
             if (adapter.data.size>position){
-                ARouter.getInstance()
-                    .build(ARouteConstant.Room.user)
-                    .withInt("position",position)
-                    .withParcelableArrayList("data",adapter.data as ArrayList<MomentModel>)
-                    .navigation()
+                if (adapter.data[position].user_broadcast_status == 1){
+                    ARouter.getInstance()
+                        .build(ARouteConstant.Room.user)
+                        .withInt("position",position)
+                        .withParcelableArrayList("data",adapter.data as ArrayList<MomentModel>)
+                        .navigation()
+                }else{
+                    PersonDataDFragment.newInstance(adapter.data[position].id,
+                        isAnchor = true,
+                        inRoom = false
+                    ).show(supportFragmentManager,"PersonDataDFragment")
+                }
             }
         }
     }

+ 1 - 0
home/src/main/java/com/swago/home/search/SearchAdapter.kt

@@ -35,6 +35,7 @@ class SearchAdapter :
                     setImageResource(R.id.ivStatus, R.mipmap.follow)
                 }
                 addOnClickListener(R.id.ivStatus)
+                addOnClickListener(R.id.ivAvatar)
                 val tvLevel = itemView.findViewById<SwagoLevelView>(R.id.tvLevel)
                 tvLevel.setUserLevel(item.user_level)
                 val ivAvatar = itemView.findViewById<CircleImageView>(R.id.ivAvatar)

+ 1 - 1
home/src/main/java/com/swago/home/update/UpdateDialog.kt

@@ -62,7 +62,7 @@ class UpdateDialog : BaseXDFragment<DialogUpdateBinding>() {
                         val intent = Intent()
                         intent.action = Intent.ACTION_VIEW
                         intent.data = Uri.parse(it.link_url)
-                        AppContext.getContext().startActivity(Intent.createChooser(intent, ""))
+                        startActivity(Intent.createChooser(intent, ""))
                     }
 
                     if (it.force != 1) {

+ 3 - 44
room/src/main/java/com/swago/room/anchor/AnchorRoomActivity.kt

@@ -3,7 +3,6 @@ package com.swago.room.anchor
 import android.Manifest
 import android.content.Intent
 import android.os.Build
-import android.os.CountDownTimer
 import android.view.View
 import android.view.ViewGroup
 import android.view.WindowManager
@@ -33,7 +32,6 @@ import com.swago.baseswago.model.live.pk.StartPKModel
 import com.swago.baseswago.model.live.pk.StopPKModel
 import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.DpPxUtil
-import com.swago.baseswago.util.LogUtil
 import com.swago.baseswago.util.NoDoubleClickListener
 import com.swago.baseswago.util.UserInfo
 import com.swago.loadUrlNoPlaceHolder
@@ -47,7 +45,6 @@ import com.swago.room.dialog.AnchorCloseDialog
 import com.swago.room.dialog.CanStartLiveDialog
 import com.swago.room.dialog.ForceCloseRoomDialog
 import com.swago.room.dialog.LiveRestrictionsDialog
-import com.swago.room.dialog.NoFaceShowDialog
 import com.swago.room.enum.RoomType
 import com.swago.room.lianmai.LianMaiManager
 import com.swago.room.lianmai.LianMaiVm
@@ -88,7 +85,6 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
     private var anchorRoomFragment: AnchorRoomFragment? = null
 
     private var anchorCloseDialog: AnchorCloseDialog? = null
-    private var noFaceShowDialog: NoFaceShowDialog? = null
 
     //开播类型  0视频房 1语音房
     private var roomType = RoomType.VIDEO
@@ -102,10 +98,6 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
     private var selectedBgUrl = ""
     private var checkPassword = false
 
-    private lateinit var countDownTimer: CountDownTimer
-    private var startFaceShowTimer = true
-    private var liveNoFaceTime:Long =  600000
-
     override fun initLiveData() {
         PKStateManager.resetData()
         roomVm.init()
@@ -123,7 +115,6 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
         AgoraManager.setVideoAudio(pullVideo = true, pullAudio = true, pushVideo = true, pushAudio = true)
         AgoraManager.setupLocalVideo(this, binding.flLocal)
         AgoraManager.enableAudioVolumeIndication()
-        AgoraManager.enableFaceDetection(true)
         anchorRoomFragment = fragments[1] as AnchorRoomFragment
         binding.viewPager.adapter = adapter
 
@@ -172,8 +163,6 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
                 if (roomType == RoomType.AUDIO) return
                 AgoraManager.setVideoAudio(pullVideo = false, pullAudio = true, pushVideo = false, pushAudio = true)
                 roomType = RoomType.AUDIO
-                startFaceShowTimer = true
-                countDownTimer.cancel()
                 binding.viewAudio.visibility = View.VISIBLE
                 binding.viewVideo.visibility = View.INVISIBLE
                 binding.tvVideo.setTextColor(ContextCompat.getColor(AppContext.getContext(),R.color._d4ffffff))
@@ -307,7 +296,7 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
         }
 
         roomVm.anchorCloseLiveData.observe(this) {
-            anchorCloseDialog = AnchorCloseDialog.newInstance(it)
+            anchorCloseDialog = AnchorCloseDialog.newInstance(it,roomType.type,checkPassword)
             anchorCloseDialog?.show(supportFragmentManager, "AnchorCloseDialog")
         }
 
@@ -342,28 +331,9 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
             }
         })
         binding.cbPassword.setOnCheckedChangeListener { _, isChecked ->
-            binding.cbPassword.text = if (isChecked)  "Password ·NO" else "Password ·OFF"
+            binding.cbPassword.text = if (isChecked)  getString(R.string.lock_room_on) else getString(R.string.lock_room_off)
             checkPassword = isChecked
         }
-        countDownTimer = object : CountDownTimer(liveNoFaceTime, 60000) {
-            override fun onTick(millisUntilFinished: Long) {
-                LogUtil.d("millisUntilFinished${millisUntilFinished / 1000}")
-                if (millisUntilFinished/1000 in 58L..60L ){
-                    LogUtil.d("millisUntilFinished:show")
-                    if (noFaceShowDialog == null){
-                        noFaceShowDialog = NoFaceShowDialog.newInstance()
-                    }
-                    noFaceShowDialog?.show(supportFragmentManager , "NoFaceShowDialog")
-                }
-            }
-
-            override fun onFinish() {
-                roomVm.uploadBroadcast()
-                noFaceShowDialog?.dismissAllowingStateLoss()
-                SwagoRoomManager.closeRoom()
-            }
-
-        }
 
     }
 
@@ -422,7 +392,6 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
 
     override fun onDestroy() {
         anchorCloseDialog = null
-        noFaceShowDialog = null
         PKStateManager.removePKListener(this)
         AudioRoomManager.removeListener(this)
         agoraService?.let { stopService(it) }
@@ -470,17 +439,7 @@ class AnchorRoomActivity : AbsAnchorActivity<ActivityAnchorRoomBinding, IRoomInf
         imageHeight: Int,
         faces: Array<out IRtcEngineEventHandler.AgoraFacePositionInfo>?
     ) {
-        LogUtil.d("onFacePositionChanged${faces?.size}")
-        if (faces.isNullOrEmpty()){
-            if (startFaceShowTimer){
-                countDownTimer.start()
-                startFaceShowTimer = false
-            }
-        } else {
-            startFaceShowTimer = true
-            countDownTimer.cancel()
-            noFaceShowDialog?.dismissAllowingStateLoss()
-        }
+
     }
 
     /**************************PK******************************/

+ 2 - 6
room/src/main/java/com/swago/room/anchor/AnchorRoomFragment.kt

@@ -54,8 +54,8 @@ class AnchorRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
             openSendMessageDialog()
         }
 
-        footerView?.openMessageFun = {
-            openMessageListDialog()
+        footerView?.openMoreDialog = {
+            openMoreDialog()
         }
 
         footerView?.openGameFun = {
@@ -108,10 +108,6 @@ class AnchorRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
             }
         }
 
-        footerView?.openShareFun = {
-            openShareDialog()
-        }
-
         (iHeader as ComHeaderView).showUserInfo = {
             PersonDataDFragment.newInstance(it, isAnchor = true, inRoom = true,SwagoRoomManager.iRoomInfo?.getRoomId()?:"")
                 .apply {

+ 19 - 2
room/src/main/java/com/swago/room/base/BaseComFragment.kt

@@ -58,6 +58,7 @@ import com.swago.room.databinding.FragmentBaseComBinding
 import com.swago.room.dialog.AudienceListDialog
 import com.swago.room.dialog.FanClubAnchorDialog
 import com.swago.room.dialog.FanClubForUserDialog
+import com.swago.room.dialog.FooterMoreDialog
 import com.swago.room.dialog.HouseGoLiveDialog
 import com.swago.room.dialog.JoinFanClubDialog
 import com.swago.room.dialog.LevelUpDialog
@@ -129,6 +130,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
 
     //暂时仅用户端使用
     var isForbid = false //是否被禁言
+    var broadcastStatus: Int = 1 //房间状态
 
     abstract val iHeader: IHeader
     abstract val iFooter: IFooter
@@ -181,7 +183,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         binding.footerFl.addView(iFooter.getFooterView())
         setHeaderViewPosition()
         //获取直播间配置
-        roomVm.getRoomConfig()
+        roomVm.getRoomConfig(broadcastStatus)
         //初始话语音列表
         initAudioRvList()
         //飘条
@@ -431,6 +433,10 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
             }
         }
 
+        (iHeader as ComHeaderView).glideImageFun = {
+            userVm.pushError(it)
+        }
+
         (iHeader as ComHeaderView).reportAnchorFun = {
             SwagoRoomManager.iRoomInfo?.let {
                 ReportDialog.newInstance(it.getAnchorCode())
@@ -719,6 +725,17 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         dialog?.show(childFragmentManager, "SendMsgDialog")
     }
 
+    fun openMoreDialog(){
+        FooterMoreDialog.newInstance().apply {
+            openMessageFun = {
+                openMessageListDialog()
+            }
+            openShareFun = {
+                openShareDialog()
+            }
+        }.show(childFragmentManager , "FooterMoreDialog")
+    }
+
     fun openMessageListDialog() {
         msgListDialog = MessageListDialog.newInstance()
         msgListDialog?.show(childFragmentManager, "MessageListDialog")
@@ -810,7 +827,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         if (iRoomInfo.getRoomType() == RoomType.AUDIO.type){
             binding.playBannerView.visibility = View.VISIBLE
             binding.videoPlayBannerView.visibility = View.GONE
-        }  else if (iRoomInfo.getRoomType() == RoomType.VIDEO.type) {
+        }  else {
             binding.playBannerView.visibility = View.GONE
             binding.videoPlayBannerView.visibility = View.VISIBLE
         }

+ 16 - 6
room/src/main/java/com/swago/room/dialog/AnchorCloseDialog.kt

@@ -3,6 +3,7 @@ package com.swago.room.dialog
 import android.annotation.SuppressLint
 import android.os.Bundle
 import android.view.Gravity
+import android.view.View
 import com.bumptech.glide.Glide
 import com.swago.baseswago.baseroom.SwagoRoomManager
 import com.swago.baseswago.dialog.BaseXDFragment
@@ -20,12 +21,15 @@ import com.swago.room.enum.RoomType
 class AnchorCloseDialog : BaseXDFragment<DialogAnchorCloseBinding>(){
 
     private var anchorCloseModel:AnchorClosedModel? = null
+    private var roomType:Int = 1
 
     companion object{
-        fun newInstance(anchorCloseModel:AnchorClosedModel):AnchorCloseDialog{
+        fun newInstance(anchorCloseModel:AnchorClosedModel ,roomType: Int , checkPassword: Boolean):AnchorCloseDialog{
             val dialog = AnchorCloseDialog()
             val bundle = Bundle()
             bundle.putParcelable("model",anchorCloseModel)
+            bundle.putInt("roomType",roomType)
+            bundle.putBoolean("checkPassword",checkPassword)
             dialog.arguments = bundle
             return dialog
         }
@@ -42,8 +46,16 @@ class AnchorCloseDialog : BaseXDFragment<DialogAnchorCloseBinding>(){
 
 
     override fun initOther() {
-        SwagoRoomManager.iRoomInfo?.let {
-            if (it.getRoomType() == RoomType.VIDEO.type){
+        arguments?.let {
+            anchorCloseModel =  it.getParcelable("model")
+            roomType = it.getInt("roomType")
+            val checkPassword = it.getBoolean("checkPassword")
+            if (checkPassword){
+                binding.tvPassword.visibility = View.VISIBLE
+            } else {
+                binding.tvPassword.visibility = View.GONE
+            }
+            if (roomType == RoomType.VIDEO.type){
                 binding.tvIncome.text = getString(R.string.income_of_this_live)
                 binding.tvTime.text = getString(R.string.duration_of_this_live)
                 binding.tvTotalTime.text = getString(R.string.today_video_duration)
@@ -56,9 +68,7 @@ class AnchorCloseDialog : BaseXDFragment<DialogAnchorCloseBinding>(){
                 binding.tvWeekTime.text = getString(R.string.total_voice_time_this_week)
                 binding.tvWeekDayTime.text = getString(R.string.voice_valid_days_this_week)
             }
-        }
-        arguments?.let {
-            anchorCloseModel =  it.getParcelable("model")
+
             anchorCloseModel?.let {  anchorClosedModel ->
                 Glide.with(this).load(anchorClosedModel.user_head_img_url)
                     .placeholder(R.mipmap.default_avatar)

+ 51 - 0
room/src/main/java/com/swago/room/dialog/FooterMoreDialog.kt

@@ -0,0 +1,51 @@
+package com.swago.room.dialog
+
+import android.os.Bundle
+import android.view.Gravity
+import android.view.View
+import android.view.View.OnClickListener
+import androidx.fragment.app.viewModels
+import com.swago.baseswago.baseroom.SwagoRoomManager
+import com.swago.baseswago.dialog.BaseXDFragment
+import com.swago.baseswago.util.NoDoubleClickListener
+import com.swago.baseswago.util.SwagoLoading
+import com.swago.room.bean.UserRoomModel
+import com.swago.room.databinding.DialogAudioNoticeBinding
+import com.swago.room.databinding.DialogFooterMoreBinding
+import com.swago.room.vm.RoomOtherVm
+
+class FooterMoreDialog : BaseXDFragment<DialogFooterMoreBinding>() {
+
+    var openMessageFun:(()->Unit)? = null
+    var openShareFun:(()->Unit)? = null
+
+    init {
+        setGravity(Gravity.BOTTOM)
+        setDimAmount(0.5f)
+        setCanCancel(true)
+    }
+
+    companion object{
+        fun newInstance(): FooterMoreDialog {
+            val args = Bundle()
+            val fragment = FooterMoreDialog()
+            fragment.arguments = args
+            return fragment
+        }
+    }
+
+    override fun initOther() {
+
+    }
+
+    override fun initLiveData() {
+        binding.ivMessage.setOnClickListener {
+            openMessageFun?.invoke()
+            dismissAllowingStateLoss()
+        }
+        binding.ivShare.setOnClickListener {
+            openShareFun?.invoke()
+            dismissAllowingStateLoss()
+        }
+    }
+}

+ 0 - 7
room/src/main/java/com/swago/room/dialog/LiveRestrictionsDialog.kt

@@ -43,13 +43,6 @@ class LiveRestrictionsDialog : BaseXDFragment<DialogLiveRestrictionsBinding>() {
 
     override fun initOther() {
         binding.tvRecharge.setOnClickListener {
-            if (SwagoInfo.isGooglePackage()){
-                ARouter.getInstance().build(ARouteConstant.User.recharge).navigation()
-            }else{
-                ARouter.getInstance().build(ARouteConstant.Base.webView)
-                    .withString("url", UrlConstant.TOP_UP)
-                    .navigation()
-            }
             dismissAllowingStateLoss()
         }
     }

+ 0 - 58
room/src/main/java/com/swago/room/dialog/NoFaceShowDialog.kt

@@ -1,58 +0,0 @@
-package com.swago.room.dialog
-
-import android.os.Bundle
-import android.os.CountDownTimer
-import android.view.Gravity
-import com.swago.baseswago.R
-import com.swago.baseswago.dialog.BaseXDFragment
-import com.swago.baseswago.util.AppContext
-import com.swago.room.databinding.DialogHouseGoLiveBinding
-import com.swago.room.databinding.DialogNoFaceShowBinding
-
-class NoFaceShowDialog : BaseXDFragment<DialogNoFaceShowBinding>() {
-
-    private lateinit var countDownTimer: CountDownTimer
-    private val totalTimeInMillis: Long = 60000
-
-    init {
-        setGravity(Gravity.CENTER)
-        setDimAmount(0.5f)
-        setCanCancel(false)
-    }
-
-
-    companion object {
-        fun newInstance(): NoFaceShowDialog {
-            val args = Bundle()
-            val fragment = NoFaceShowDialog()
-            fragment.arguments = args
-            return fragment
-        }
-    }
-
-    override fun initOther() {
-        countDownTimer = object : CountDownTimer(totalTimeInMillis, 1000) {
-            override fun onTick(millisUntilFinished: Long) {
-                val secondsRemaining = millisUntilFinished / 1000
-                binding.tvTime.text =
-                   "00:${secondsRemaining}"
-            }
-
-            override fun onFinish() {
-            }
-
-        }
-        countDownTimer.start()
-
-    }
-
-    override fun initLiveData() {
-
-    }
-
-    override fun onDestroyView() {
-        super.onDestroyView()
-        countDownTimer.cancel()
-    }
-
-}

+ 8 - 2
room/src/main/java/com/swago/room/dialog/SendMsgDialog.kt

@@ -22,6 +22,7 @@ import com.swago.room.util.IMSender
 import com.swago.room.vm.RoomOtherVm
 import com.tencent.imsdk.v2.V2TIMMessage
 import com.tencent.imsdk.v2.V2TIMValueCallback
+import com.tencent.qcloud.tim.uikit.utils.ToastUtil
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
 import org.json.JSONObject
@@ -156,7 +157,6 @@ class SendMsgDialog : BaseXDFragment<DialogSendMsgBinding>() {
                             roomChatMsgBean.isCup = it.is_cup
                             roomChatMsgBean.isAdmin = SwagoRoomManager.iRoomInfo?.getRoomAdmin()?:0
                             roomChatMsgBean.isFans = SwagoRoomManager.iRoomInfo?.getIsFans()?:0
-                            addSenderMsgToRoomChatList?.invoke(roomChatMsgBean)
 
                             val jsonObject = JSONObject()
                             jsonObject.put("senderId", it.id)
@@ -184,9 +184,15 @@ class SendMsgDialog : BaseXDFragment<DialogSendMsgBinding>() {
                                     object : V2TIMValueCallback<V2TIMMessage> {
                                         override fun onSuccess(t: V2TIMMessage?) {
                                             LogUtil.d("发送成功")
+                                            addSenderMsgToRoomChatList?.invoke(roomChatMsgBean)
                                         }
 
-                                        override fun onError(code: Int, desc: String?) {}
+                                        override fun onError(code: Int, desc: String?) {
+                                            if (code == 10016){
+                                                ToastUtil.toastShortMessage(AppContext.getContext().getString(R.string.you_been_banned))
+                                            }
+
+                                        }
 
                                     },
                                     V2TIMMessage.V2TIM_PRIORITY_NORMAL

+ 1 - 1
room/src/main/java/com/swago/room/gift/GiftDialog.kt

@@ -335,7 +335,7 @@ class GiftDialog : BaseXDFragment<DialogGiftBinding>() {
             })
 
             SwagoRoomManager.iRoomInfo?.let {
-                if(it.getRoomType() == 1){
+                if(it.getRoomType() == 1 || it.getRoomType() == 3){
                     when (GiftConfig.giftSelectedWhichType) {
                         1 -> {
                             binding.viewPager.currentItem = 1

+ 1 - 1
room/src/main/java/com/swago/room/gift/GiftFragment.kt

@@ -59,7 +59,7 @@ class GiftFragment : BaseXFragment<FragmentGiftBinding>() {
             data?.let {
                 if (it.isEmpty()) return@let
                 SwagoRoomManager.iRoomInfo?.let {iRoomInfo ->
-                    if (iRoomInfo.getRoomType() == 1){
+                    if (iRoomInfo.getRoomType() == 1 || iRoomInfo.getRoomType() == 3){
                         if (GiftConfig.giftSelectedWhichType == type){
                             it[GiftConfig.giftSelectedPageIndex * 8 + GiftConfig.giftSelectedPageSelectedPosition].isSelected =
                                 true

+ 1 - 1
room/src/main/java/com/swago/room/gift/GiftPagerAdapter.kt

@@ -61,7 +61,7 @@ class GiftPagerAdapter(private val type: Int, layoutResId: Int, data: List<Array
             }
             selected = position
             SwagoRoomManager.iRoomInfo?.let {
-                if (it.getRoomType() == 1){
+                if (it.getRoomType() == 1 || it.getRoomType() == 3){
                     GiftConfig.giftCoin = item[position].gift_coins.toInt()
                     GiftConfig.giftSelectedWhichType = type
                     GiftConfig.giftSelectedPageSelectedPosition = position

+ 1 - 1
room/src/main/java/com/swago/room/ranklist/RankListAdapter.kt

@@ -27,7 +27,7 @@ class RankListAdapter  : BaseQuickAdapter<RankListModel.ListBean, BaseViewHolder
             tvLevel.setUserLevel(item.user_wealth_level.toInt())
 
             setText(R.id.tvName,item.user_name)
-            if (item.offlive.isNullOrEmpty()){
+            if (item.offlive.isNullOrEmpty() || item.offlive == "0"){
                 setText(R.id.tvIncomeValue,item.total_coins)
             } else {
                 setText(R.id.tvIncomeValue,item.total_coins + "(${item.offlive})")

+ 1 - 0
room/src/main/java/com/swago/room/user/UserRoomActivity.kt

@@ -133,6 +133,7 @@ class UserRoomActivity : AbsUserActivity<ActivityAbsRoomUserBinding, UserRoomMod
         mCurrentPosition = position
         RoomDataManager.initData(data)
         userRoomFragment = fragments[1] as UserRoomFragment
+        userRoomFragment?.setBroadcast(data?.get(position)?.user_broadcast_status ?: 1)
 
         roomVm.init()
         msgVm.init()

+ 4 - 0
room/src/main/java/com/swago/room/user/UserRoomFragment.kt

@@ -226,6 +226,10 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
         }
     }
 
+    fun setBroadcast(broadcastStatus:Int){
+        this.broadcastStatus = broadcastStatus
+    }
+
     override fun changeRoom(iRoomInfo: IRoomInfo) {
         super.changeRoom(iRoomInfo)
 

+ 15 - 12
room/src/main/java/com/swago/room/vm/RoomVm.kt

@@ -77,7 +77,7 @@ class RoomVm(application: Application) : AbsRoomVm(application) {
         callback: (canJoinRoom: Boolean) -> Unit,
         password:String?=""
     ) {
-        requestData2 {
+        requestData2(false) {
             requestData {
                 if (iRoomInfo.getRoomType() == RoomType.HOUSE.type){
                     //小黑屋
@@ -103,6 +103,8 @@ class RoomVm(application: Application) : AbsRoomVm(application) {
             requestError {
                 if (it is SwagoException) {
                     if (it.code == 504) {
+                        Toast.makeText(AppContext.getContext(), it.message, Toast.LENGTH_SHORT)
+                            .show()
                         if (SwagoRoomManager.iRoomInfo == null){
                             SwagoRoomManager.closeRoom()
                         }else{
@@ -116,6 +118,9 @@ class RoomVm(application: Application) : AbsRoomVm(application) {
                                 }
                             }
                         }
+                    } else if (it.code == 602 && password.isNullOrEmpty()){
+                        SwagoRoomManager.closeRoom()
+                        callback.invoke(false)
                     } else {
                         Toast.makeText(AppContext.getContext(), it.message, Toast.LENGTH_SHORT)
                             .show()
@@ -336,19 +341,17 @@ class RoomVm(application: Application) : AbsRoomVm(application) {
         MutableLiveData<RecommendGameListModel>()
     }
 
-    fun getRoomConfig(){
+    fun getRoomConfig(broadcastStatus : Int){
         requestData {
             //首先获取游戏列表 然后获取直播间配置
-            SwagoRoomManager.iRoomInfo?.let{
-                if (it.getRoomType() == 3){
-                    gameListModelLiveData.value = ApiManager.roomApi.getHouseGameList()
-                    roomConfigLiveData.value = ApiManager.roomApi.getHouseRoomConfig()
-                    recommendGameListModelLiveData.value = ApiManager.roomApi.getHouseRecommendGameList()
-                } else {
-                    gameListModelLiveData.value = ApiManager.roomApi.getGameList()
-                    roomConfigLiveData.value = ApiManager.roomApi.getRoomConfig()
-                    recommendGameListModelLiveData.value = ApiManager.roomApi.getRecommendGameList()
-                }
+            if (broadcastStatus == 0){
+                gameListModelLiveData.value = ApiManager.roomApi.getHouseGameList()
+                roomConfigLiveData.value = ApiManager.roomApi.getHouseRoomConfig()
+                recommendGameListModelLiveData.value = ApiManager.roomApi.getHouseRecommendGameList()
+            } else {
+                gameListModelLiveData.value = ApiManager.roomApi.getGameList()
+                roomConfigLiveData.value = ApiManager.roomApi.getRoomConfig()
+                recommendGameListModelLiveData.value = ApiManager.roomApi.getRecommendGameList()
             }
 
         }

+ 3 - 13
room/src/main/java/com/swago/room/widget/AnchorFooterView.kt

@@ -29,14 +29,13 @@ class AnchorFooterView : ConstraintLayout, IFooter, IRoomActiveListener {
     lateinit var binding: LayoutAnchorFooterViewBinding
 
     var openSendMsgDialog:(()->Unit)? = null
-    var openMessageFun:(()->Unit)? = null
+    var openMoreDialog:(()->Unit)? = null
     var openGameFun:(()->Unit)? = null
     var openPKFun:(()->Unit)? = null
     var openLianMaiFun:(()->Unit)? = null
     var clearJiFen:(()->Unit)? = null
     var openAudioNoticeDialogFun:(()->Unit)? = null
     var openGiftPanelFun:(()->Unit)? = null
-    var openShareFun:(()->Unit)? = null
     var isMute = false
 
     constructor(context: Context) : this(context, null)
@@ -73,12 +72,6 @@ class AnchorFooterView : ConstraintLayout, IFooter, IRoomActiveListener {
             }
         })
 
-        binding.ivMessage.setOnClickListener(object : NoDoubleClickListener() {
-            override fun onClick() {
-                openMessageFun?.invoke()
-            }
-        })
-
         binding.ivGame.setOnClickListener(object : NoDoubleClickListener() {
             override fun onClick() {
                 openGameFun?.invoke()
@@ -137,9 +130,9 @@ class AnchorFooterView : ConstraintLayout, IFooter, IRoomActiveListener {
             }
         })
 
-        binding.ivShare.setOnClickListener(object : NoDoubleClickListener() {
+        binding.ivMore.setOnClickListener(object : NoDoubleClickListener(){
             override fun onClick() {
-                openShareFun?.invoke()
+                openMoreDialog?.invoke()
             }
         })
     }
@@ -169,9 +162,6 @@ class AnchorFooterView : ConstraintLayout, IFooter, IRoomActiveListener {
             binding.ivClearJifen.visibility = View.VISIBLE
             binding.ivNotice.visibility = View.VISIBLE
             binding.ivGift.visibility = View.VISIBLE
-            binding.ivShare.visibility = View.GONE
-        }else if(iRoomInfo.getRoomType() == RoomType.VIDEO.type){
-            binding.ivShare.visibility = View.VISIBLE
         }
         visibility = View.VISIBLE
     }

+ 29 - 1
room/src/main/java/com/swago/room/widget/ComHeaderView.kt

@@ -1,6 +1,7 @@
 package com.swago.room.widget
 
 import android.content.Context
+import android.graphics.drawable.Drawable
 import android.util.AttributeSet
 import android.util.Log
 import android.util.TimeUtils
@@ -11,6 +12,10 @@ import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.alibaba.android.arouter.launcher.ARouter
 import com.bumptech.glide.Glide
+import com.bumptech.glide.load.DataSource
+import com.bumptech.glide.load.engine.GlideException
+import com.bumptech.glide.request.RequestListener
+import com.bumptech.glide.request.target.Target
 import com.swago.baseswago.R
 import com.swago.baseswago.baseroom.*
 import com.swago.baseswago.constant.ARouteConstant
@@ -34,6 +39,7 @@ class ComHeaderView  : ConstraintLayout, IRoomActiveListener, IHeader, RoomTimer
 
     lateinit var binding: LayoutUserHeaderViewBinding
 
+    var glideImageFun:((id:GlideException?)->Unit)? = null
     var followFun:((id:String)->Unit)? = null
     var showUserInfo:((id:String)->Unit)? = null
     var openAudienceListDialog:(()->Unit)? = null
@@ -150,7 +156,29 @@ class ComHeaderView  : ConstraintLayout, IRoomActiveListener, IHeader, RoomTimer
         binding.clRoot.visibility = View.VISIBLE
         Glide.with(context).load(iRoomInfo.getRoomCover())
             .placeholder(R.mipmap.default_avatar)
-            .error(R.mipmap.default_avatar).into(binding.ivAvatar)
+            .error(R.mipmap.default_avatar)
+            .listener(object : RequestListener<Drawable>{
+                override fun onLoadFailed(
+                    ex: GlideException?,
+                    p1: Any?,
+                    p2: Target<Drawable>?,
+                    p3: Boolean
+                ): Boolean {
+                    glideImageFun?.invoke(ex)
+                    return false
+                }
+
+                override fun onResourceReady(
+                    p0: Drawable?,
+                    p1: Any?,
+                    p2: Target<Drawable>?,
+                    p3: DataSource?,
+                    p4: Boolean
+                ): Boolean {
+                    return false
+                }
+            })
+            .into(binding.ivAvatar)
         binding.tvName.text =iRoomInfo.getAnchorName()
         binding.tvId.text = "Likes:${iRoomInfo.getLikeNum()}"
         binding.tvHot.text = iRoomInfo.getRoomHot()

+ 1 - 1
room/src/main/java/com/swago/room/widget/UserFooterView.kt

@@ -108,7 +108,7 @@ class UserFooterView : ConstraintLayout, IFooter,IRoomActiveListener {
 
     override fun joinedRoom(iRoomInfo: IRoomInfo) {
         visibility = View.VISIBLE
-        if (iRoomInfo.getRoomType() == RoomType.AUDIO.type){
+        if (iRoomInfo.getRoomType() == RoomType.AUDIO.type || iRoomInfo.getRoomType() == RoomType.HOUSE.type){
             binding.ivLianMai.visibility = View.GONE
             binding.ivShare.visibility = View.VISIBLE
         }else if(iRoomInfo.getRoomType() == RoomType.VIDEO.type){

+ 5 - 5
room/src/main/res/layout/activity_anchor_room.xml

@@ -105,7 +105,7 @@
                 android:textColor="#ffffff"
                 android:textSize="14dp"
                 android:button="@null"
-                android:text="Password ·OFF"
+                android:text="@string/lock_room_off"
                 android:drawablePadding="4dp"
                 android:gravity="center_horizontal"
                 android:background="@android:color/transparent"
@@ -119,7 +119,7 @@
                 android:layout_marginBottom="24dp"
                 android:drawableTop="@mipmap/wish_gift"
                 android:drawablePadding="4dp"
-                android:text="Wish Gift"
+                android:text="@string/wish_gift"
                 android:textColor="#ffffff"
                 android:textSize="14dp"
                 android:layout_marginStart="@dimen/dp_10"/>
@@ -149,7 +149,7 @@
 
             <TextView
                 android:textSize="14dp"
-                android:text="Switch theme"
+                android:text="@string/switch_themee"
                 android:textColor="#ffffff"
                 android:layout_gravity="center_vertical"
                 android:layout_width="wrap_content"
@@ -213,7 +213,7 @@
                 android:id="@+id/tvVideo"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="Live"
+                android:text="@string/Live"
                 android:textColor="#fff"
                 android:textSize="16dp" />
 
@@ -242,7 +242,7 @@
                 android:id="@+id/tvAudio"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="Audio"
+                android:text="@string/audio"
                 android:textColor="@color/_d4ffffff"
                 android:textSize="16dp" />
 

+ 15 - 2
room/src/main/res/layout/dialog_anchor_close.xml

@@ -59,6 +59,19 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"/>
 
+    <com.swago.baseswago.cusview.RegularTextView
+        android:id="@+id/tvPassword"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tvId"
+        android:layout_marginTop="8dp"
+        android:text="@string/Password_rooms_do_not_count_as_hours"
+        android:textSize="12dp"
+        android:textColor="#DC2626"
+        android:visibility="gone"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
     <com.swago.baseswago.cusview.MediumTextView
         android:id="@+id/tvIncome"
         android:textSize="16dp"
@@ -190,7 +203,7 @@
         android:textSize="16dp"
         android:textColor="#fff"
         android:text="@string/video_valid_days_this_week"
-        android:layout_marginBottom="80dp"
+        android:layout_marginBottom="60dp"
         android:layout_marginStart="32dp"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintBottom_toTopOf="@+id/tvClose"
@@ -202,7 +215,7 @@
         android:textSize="16dp"
         android:textColor="#fff"
         tools:text="100"
-        android:layout_marginBottom="80dp"
+        android:layout_marginBottom="60dp"
         android:layout_marginEnd="32dp"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintBottom_toTopOf="@+id/tvClose"

+ 39 - 0
room/src/main/res/layout/dialog_footer_more.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        app:layout_constraintDimensionRatio="h,360:124"
+        android:background="@drawable/shape_white_top_20"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_width="match_parent"
+        android:layout_height="0dp">
+
+    <ImageView
+        android:id="@+id/ivMessage"
+        android:layout_marginStart="10dp"
+        android:background="@drawable/shape_80000000_20"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        android:src="@mipmap/live_message"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_width="40dp"
+        android:layout_height="40dp"/>
+
+    <ImageView
+        android:id="@+id/ivShare"
+        android:layout_marginStart="16dp"
+        android:background="@drawable/shape_80000000_20"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintStart_toEndOf="@+id/ivMessage"
+        android:src="@mipmap/live_share"
+        android:padding="6dp"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_width="40dp"
+        android:layout_height="40dp"/>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 1
room/src/main/res/layout/dialog_house_go_live.xml

@@ -55,7 +55,7 @@
         android:layout_marginEnd="20dp"
         android:textColor="#fff"
         android:textSize="@dimen/sp_16"
-        android:text="@string/start_live"
+        android:text="@string/ok"
         android:gravity="center"
         android:layout_marginBottom="30dp"
         android:layout_marginStart="30dp"

+ 2 - 44
room/src/main/res/layout/dialog_live_restrictions.xml

@@ -39,59 +39,17 @@
             android:gravity="center"
             android:text="@string/conditions_to_start_live_broadcasting"/>
 
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:id="@+id/content"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:background="@drawable/shape_f1f4f8_16"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            android:layout_marginStart="16dp"
-            android:layout_marginEnd="16dp"
-            android:layout_marginTop="23dp"
-            android:paddingBottom="@dimen/dp_10"
-            app:layout_constraintTop_toBottomOf="@+id/tv_hint">
-
-            <com.swago.baseswago.cusview.MediumTextView
-                android:id="@+id/textview1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="@dimen/sp_14"
-                android:textColor="#0F172A"
-                android:layout_marginTop="@dimen/dp_10"
-                android:drawableStart="@mipmap/ic_user_type"
-                android:layout_marginStart="12dp"
-                android:drawablePadding="12dp"
-                android:text="@string/already_be_a_host_or_agency"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent"/>
-
-            <com.swago.baseswago.cusview.MediumTextView
-                android:id="@+id/textview2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="@dimen/sp_14"
-                android:textColor="#0F172A"
-                android:layout_marginTop="@dimen/dp_10"
-                android:drawableStart="@mipmap/ic_wallet"
-                android:layout_marginStart="12dp"
-                android:drawablePadding="12dp"
-                android:text="@string/cumulative_recharge"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/textview1"/>
-        </androidx.constraintlayout.widget.ConstraintLayout>
-
         <com.swago.baseswago.cusview.BoldTextView
             android:id="@+id/tvRecharge"
             android:layout_width="match_parent"
             android:layout_height="44dp"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/content"
+            app:layout_constraintTop_toBottomOf="@+id/tv_hint"
             android:layout_marginTop="23dp"
             android:layout_marginStart="16dp"
             android:layout_marginEnd="16dp"
-            android:text="@string/recharge"
+            android:text="OK"
             android:textColor="@color/_ffffff"
             android:gravity="center"
             android:textSize="16sp"

+ 0 - 84
room/src/main/res/layout/dialog_no_face_show.xml

@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    app:layout_constraintTop_toTopOf="parent"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:background="@drawable/shape_white_20"
-        app:layout_constraintTop_toTopOf="parent"
-        android:layout_marginStart="40dp"
-        android:layout_marginEnd="40dp"
-        android:paddingBottom="30dp"
-        android:layout_marginTop="@dimen/dp_40"
-        app:layout_constraintBottom_toBottomOf="parent"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-
-    <com.swago.baseswago.cusview.BoldTextView
-        android:id="@+id/tv_close_title"
-        android:text="@string/system_not_detect_face"
-        android:textColor="#0F172A"
-        android:textSize="18sp"
-        android:textStyle="bold"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        android:layout_marginTop="40dp"/>
-
-    <com.swago.baseswago.cusview.MediumTextView
-        android:id="@+id/tv_hint"
-        android:text="@string/live_broadcasrt_will_closed_countdown"
-        android:textColor="#0F172A"
-        android:textSize="14sp"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        android:layout_marginTop="12dp"
-        android:gravity="center"
-        app:layout_constraintTop_toBottomOf="@+id/tv_close_title"/>
-
-    <com.swago.baseswago.cusview.BoldTextView
-        android:id="@+id/tv_time"
-        android:layout_width="match_parent"
-        android:layout_height="44dp"
-        android:layout_marginTop="12dp"
-        app:layout_constraintTop_toBottomOf="@+id/tv_hint"
-        app:layout_constraintEnd_toEndOf="parent"
-        android:layout_marginEnd="20dp"
-        android:textColor="#DC2626"
-        android:textSize="26sp"
-        android:text="00:00"
-        android:gravity="center"
-        android:layout_marginBottom="30dp"
-        android:layout_marginStart="30dp"/>
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <ImageView
-        android:id="@+id/iv_bg"
-        android:layout_width="match_parent"
-        android:layout_height="100dp"
-        android:background="@mipmap/bg_close_live"
-        android:layout_marginStart="40dp"
-        android:layout_marginEnd="40dp"
-        android:layout_marginTop="@dimen/dp_40"
-        app:layout_constraintTop_toTopOf="parent"/>
-
-    <ImageView
-        android:id="@+id/ivAvatar"
-        android:layout_width="80dp"
-        android:layout_height="80dp"
-        android:src="@mipmap/ic_no_face"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"/>
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 6 - 19
room/src/main/res/layout/layout_anchor_footer_view.xml

@@ -74,23 +74,9 @@
         android:layout_height="10dp"/>
 
 
-    <ImageView
-        android:id="@+id/ivShare"
-        android:layout_marginStart="10dp"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintStart_toEndOf="@+id/ivLianMai"
-        android:background="@drawable/shape_80000000_20"
-        android:src="@mipmap/live_share"
-        android:padding="7dp"
-        android:visibility="gone"
-        tools:visibility="visible"
-        android:layout_width="40dp"
-        android:layout_height="40dp"/>
-
-
     <ImageView
         android:id="@+id/ivGift"
-        android:layout_marginStart="10dp"
+        android:layout_marginEnd="10dp"
         android:background="@drawable/shape_80000000_20"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/ivNotice"
@@ -132,21 +118,22 @@
         android:layout_marginEnd="10dp"
         android:background="@drawable/shape_80000000_20"
         app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintEnd_toStartOf="@+id/ivMessage"
+        app:layout_constraintEnd_toStartOf="@+id/ivMore"
         android:src="@mipmap/live_unmute"
         android:padding="7dp"
         android:layout_width="40dp"
         android:layout_height="40dp"/>
 
+
+
     <ImageView
-        android:id="@+id/ivMessage"
+        android:id="@+id/ivMore"
         android:layout_marginEnd="10dp"
         android:background="@drawable/shape_80000000_20"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        android:src="@mipmap/live_message"
+        android:src="@mipmap/live_more"
         android:layout_width="40dp"
         android:layout_height="40dp"/>
 
-
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 2
room/src/main/res/layout/view_user_join_room.xml

@@ -97,7 +97,6 @@
             <TextView
                 android:id="@+id/tvName"
                 app:layout_constraintStart_toEndOf="@+id/swagoLevel"
-                app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintTop_toTopOf="@+id/ivAvatar"
                 android:layout_marginStart="5dp"
                 android:layout_marginEnd="20dp"
@@ -111,7 +110,6 @@
 
             <TextView
                 android:id="@+id/tvJoin"
-                app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toEndOf="@+id/ivAvatar"
                 app:layout_constraintBottom_toBottomOf="@+id/ivAvatar"
                 android:layout_marginEnd="20dp"
@@ -121,6 +119,7 @@
                 android:text="@string/join_room"
                 android:textColor="@color/white"
                 android:layout_width="0dp"
+                android:gravity="start"
                 android:layout_height="wrap_content"/>
 
             <ImageView

二進制
room/src/main/res/mipmap-xxhdpi/ic_no_face.png


二進制
room/src/main/res/mipmap-xxhdpi/live_more.png


+ 1 - 1
user/src/main/java/com/swago/user/EditInfoActivity.kt

@@ -249,7 +249,7 @@ class EditInfoActivity : BaseXActivity<ActivityUserEditBinding>() {
 
     override fun initLiveData() {
         userVm.modifyInfoLiveData.observe(this) {
-            Toast.makeText(AppContext.getContext(), "Modify Success", Toast.LENGTH_SHORT).show()
+            Toast.makeText(AppContext.getContext(), getString(R.string.modify_success), Toast.LENGTH_SHORT).show()
             finish()
         }
 

+ 40 - 29
user/src/main/java/com/swago/user/FollowAndFansActivity.kt

@@ -82,39 +82,50 @@ class FollowAndFansActivity : BaseListActivity<LayoutListBinding, BlackListModel
             }
         }
 
-        adapter.setOnItemChildClickListener { _, _, position ->
+        adapter.setOnItemChildClickListener { _, view, position ->
             this.position = position
-            userVm.followUser(adapter.data[position].id, 1)
-        }
-
-        adapter.setOnItemClickListener { _, _, position ->
-            if (adapter.data.size > position && position >= 0) {
-                if (type == 0){
-                    val momentModel = MomentModel()
-                    momentModel.id = adapter.data[position].id
-                    momentModel.user_account = adapter.data[position].user_account
-                    momentModel.user_name = adapter.data[position].user_name
-                    momentModel.user_head_img_url = adapter.data[position].user_head_img_url
-                    momentModel.user_sex = adapter.data[position].user_sex
-                    momentModel.user_broadcast_status = adapter.data[position].user_broadcast_status
-                    momentModel.broadcast_password_status = adapter.data[position].broadcast_password_status
-                    momentModel.user_broadcast_type = adapter.data[position].user_broadcast_type
-                    momentModelList.clear()
-                    momentModelList.add(momentModel)
-                    ARouter.getInstance()
-                        .build(ARouteConstant.Room.user)
-                        .withInt("position",0)
-                        .withParcelableArrayList("data",momentModelList)
-                        .navigation()
-                } else {
-                    PersonDataDFragment.newInstance(
-                        adapter.data[position].id,
-                        isAnchor = false,
-                        inRoom = false
-                    ).show(supportFragmentManager, "PersonDataDFragment")
+            when(view.id){
+                R.id.ivStatus -> {
+                    userVm.followUser(adapter.data[position].id, 1)
+                }
+                R.id.ivAvatar -> {
+                    if (adapter.data.size > position && position >= 0){
+                        if (type == 0){
+                            val momentModel = MomentModel()
+                            momentModel.id = adapter.data[position].id
+                            momentModel.user_account = adapter.data[position].user_account
+                            momentModel.user_name = adapter.data[position].user_name
+                            momentModel.user_head_img_url = adapter.data[position].user_head_img_url
+                            momentModel.user_sex = adapter.data[position].user_sex
+                            momentModel.user_broadcast_status = adapter.data[position].user_broadcast_status
+                            momentModel.broadcast_password_status = adapter.data[position].broadcast_password_status
+                            momentModel.user_broadcast_type = adapter.data[position].user_broadcast_type
+                            momentModelList.clear()
+                            momentModelList.add(momentModel)
+                            ARouter.getInstance()
+                                .build(ARouteConstant.Room.user)
+                                .withInt("position",0)
+                                .withParcelableArrayList("data",momentModelList)
+                                .navigation()
+                        } else {
+                            PersonDataDFragment.newInstance(
+                                adapter.data[position].id,
+                                isAnchor = false,
+                                inRoom = false
+                            ).show(supportFragmentManager, "PersonDataDFragment")
+                        }
+                    }
                 }
+            }
 
+        }
 
+        adapter.setOnItemClickListener { _, _, position ->
+            if (adapter.data.size>position && position >= 0){
+                PersonDataDFragment.newInstance(adapter.data[position].id,
+                    isAnchor = false,
+                    inRoom = false
+                ).show(supportFragmentManager,"PersonDataDFragment")
             }
         }
     }

+ 1 - 0
user/src/main/java/com/swago/user/adapter/FollowFanAdapter.kt

@@ -36,6 +36,7 @@ class FollowFanAdapter(private val type:Int) : BaseQuickAdapter<BlackListModel.L
                 setVisible(R.id.ivStatus,false)
             }
 
+            addOnClickListener(R.id.ivAvatar)
             setGone(R.id.tvAgent,item.is_service == 1)
             setGone(R.id.tvOfficial,item.is_official == 1)
             setGone(R.id.ivCrown,item.is_crown == 1)