From 6b06b9162c9ac8aebc3d6071ec9c8f4ab88348ae Mon Sep 17 00:00:00 2001 From: huangjian Date: Mon, 21 Dec 2020 16:12:22 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=A6=96=E9=A1=B5=E9=A1=B6=E9=83=A8=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BC=98=E5=8C=96=202.=E5=A2=9E=E5=8A=A0ViewBinding=E7=9B=B8?= =?UTF-8?q?=E5=85=B3base=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 6 + .../redpackage/RedPackageGoRoomDialog.kt | 4 - .../avroom/redpackage/RedPackageOpenDialog.kt | 4 - .../avroom/redpackage/RedPackageSendDialog.kt | 5 - .../java/com/yizhuan/erban/base/BaseDialog.kt | 23 +- .../erban/base/BaseViewBindingActivity.kt | 24 ++ .../erban/base/BaseViewBindingFragment.kt | 36 +++ .../erban/home/fragment/GameHomeFragment.java | 25 +- .../main/res/layout/fragment_game_home.xml | 2 +- .../main/res/layout/item_home_concerns.xml | 26 ++- .../room/pk/model/PkModel.java | 214 ++++++++---------- 11 files changed, 211 insertions(+), 158 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/base/BaseViewBindingActivity.kt create mode 100644 app/src/main/java/com/yizhuan/erban/base/BaseViewBindingFragment.kt diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 252c961f9..eb19d600f 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -369,3 +369,9 @@ -keep class com.meizu.cloud.** {*;} -keep class com.yizhuan.erban.ui.widget.AppBarLayoutBehavior {*;} + +#ViewBinding使用的反射生成的对应Binding +-keepclassmembers class * implements androidx.viewbinding.ViewBinding { + public static ** inflate(***); +} + diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageGoRoomDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageGoRoomDialog.kt index f2cb02881..7387545a3 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageGoRoomDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageGoRoomDialog.kt @@ -40,10 +40,6 @@ class RedPackageGoRoomDialog : BaseDialog() { super.onStart() } - override fun initBinding(inflater: LayoutInflater): DialogRedPackageGoRoomBinding { - return DialogRedPackageGoRoomBinding.inflate(inflater) - } - override fun init() { AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package).apply { binding.clRed.animation = this diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt index 45b6c54d4..486230960 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageOpenDialog.kt @@ -58,10 +58,6 @@ class RedPackageOpenDialog : BaseDialog() { } } - override fun initBinding(inflater: LayoutInflater): DialogRedPackageOpenBinding { - return DialogRedPackageOpenBinding.inflate(inflater) - } - override fun onStart() { width = WindowManager.LayoutParams.MATCH_PARENT height = WindowManager.LayoutParams.WRAP_CONTENT diff --git a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt index 0d6eaad3e..c06d5781a 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/redpackage/RedPackageSendDialog.kt @@ -45,11 +45,6 @@ class RedPackageSendDialog : BaseDialog(), GridPass private var isAll = false private var isGift = false - - override fun initBinding(inflater: LayoutInflater): DialogRedPackageSendBinding { - return DialogRedPackageSendBinding.inflate(inflater) - } - override fun onStart() { width = WindowManager.LayoutParams.MATCH_PARENT height = WindowManager.LayoutParams.WRAP_CONTENT diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt b/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt index 2a4d66c56..a7f40bd7f 100644 --- a/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt @@ -1,6 +1,7 @@ package com.yizhuan.erban.base import android.content.Context +import android.content.DialogInterface import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle @@ -10,13 +11,16 @@ import androidx.viewbinding.ViewBinding import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.trello.rxlifecycle3.components.support.RxDialogFragment import java.lang.Exception +import java.lang.reflect.ParameterizedType abstract class BaseDialog : RxDialogFragment() { private var _binding: T? = null + private var onDismissListener: (() -> Unit)? = null val binding get() = _binding!! var width = ScreenUtil.getDialogWidth() var height = WindowManager.LayoutParams.WRAP_CONTENT + var gravity = Gravity.CENTER override fun onStart() { super.onStart() @@ -27,13 +31,17 @@ abstract class BaseDialog : RxDialogFragment() { windowParams.width = width windowParams.height = height windowParams.dimAmount = 0.5f - windowParams.gravity = Gravity.CENTER + windowParams.gravity = gravity window.attributes = windowParams } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - _binding = initBinding(inflater) + //反射没有想象中的那么耗时 + val type = javaClass.genericSuperclass as ParameterizedType + val aClass = type.actualTypeArguments[0] as Class<*> + val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java) + _binding = method.invoke(null, layoutInflater) as T return binding.root } @@ -50,12 +58,19 @@ abstract class BaseDialog : RxDialogFragment() { } } + override fun onDismiss(dialog: DialogInterface) { + super.onDismiss(dialog) + onDismissListener?.invoke() + } + + fun setOnDismissListener(onDismissListener: () -> Unit) { + this.onDismissListener = onDismissListener + } + override fun onDestroyView() { super.onDestroyView() _binding = null } - abstract fun initBinding(inflater: LayoutInflater): T - abstract fun init() } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseViewBindingActivity.kt b/app/src/main/java/com/yizhuan/erban/base/BaseViewBindingActivity.kt new file mode 100644 index 000000000..68957676f --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/base/BaseViewBindingActivity.kt @@ -0,0 +1,24 @@ +package com.yizhuan.erban.base + +import android.os.Bundle +import android.view.LayoutInflater +import androidx.viewbinding.ViewBinding +import java.lang.reflect.ParameterizedType + +abstract class BaseViewBindingActivity : BaseActivity(){ + + lateinit var binding : T + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + //反射没有想象中的那么耗时 + val type = javaClass.genericSuperclass as ParameterizedType + val aClass = type.actualTypeArguments[0] as Class<*> + val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java) + binding = method.invoke(null,layoutInflater) as T + setContentView(binding.root) + init() + } + + abstract fun init() +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseViewBindingFragment.kt b/app/src/main/java/com/yizhuan/erban/base/BaseViewBindingFragment.kt new file mode 100644 index 000000000..e508534ba --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/base/BaseViewBindingFragment.kt @@ -0,0 +1,36 @@ +package com.yizhuan.erban.base + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.viewbinding.ViewBinding +import java.lang.reflect.ParameterizedType + +abstract class BaseViewBindingFragment : BaseFragment() { + + private var _binding: T? = null + + val binding get() = _binding!! + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + //反射没有想象中的那么耗时 + val type = javaClass.genericSuperclass as ParameterizedType + val aClass = type.actualTypeArguments[0] as Class<*> + val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java) + _binding = method.invoke(null, layoutInflater) as T + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + init() + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + + abstract fun init() +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java index 88c878aa1..ed8072cc4 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Color; -import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; @@ -13,7 +12,6 @@ import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.ForegroundColorSpan; import android.view.View; -import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; @@ -26,7 +24,6 @@ import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; @@ -60,7 +57,6 @@ import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.erban.ui.widget.OnPageSelectedListener; import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper; import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper; -import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator; import com.yizhuan.erban.ui.widget.recyclerview.decoration.VerticalDecoration; import com.yizhuan.xchat_android_core.UriProvider; @@ -95,7 +91,6 @@ import com.yizhuan.xchat_android_library.utils.SizeUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import org.jetbrains.annotations.NotNull; import java.security.MessageDigest; import java.util.ArrayList; @@ -268,7 +263,15 @@ public class GameHomeFragment extends BaseMvpFragment { + int distance = mBinding.rvFollowRoom.getMeasuredHeight(); + CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) mBinding.appBarLayout.getLayoutParams()).getBehavior(); + if (behavior != null) + behavior.onNestedPreScroll(mBinding.coordinatorLayout, mBinding.appBarLayout, mBinding.rvFollowRoom, 0, distance, new int[]{0, 0}, 0); + }); + } } @@ -327,7 +330,6 @@ public class GameHomeFragment extends BaseMvpFragment 0) { mBinding.rvFollowRoom.setVisibility(View.VISIBLE); mFollowRoomsAdapter.setNewData(list); - if (needAutoScroll) { - needAutoScroll = false; - mBinding.rvFollowRoom.post(() -> { - int distance = mBinding.rvFollowRoom.getHeight(); - CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) mBinding.appBarLayout.getLayoutParams()).getBehavior(); - if (behavior != null) - behavior.onNestedPreScroll(mBinding.coordinatorLayout, mBinding.appBarLayout, mBinding.rvFollowRoom, 0, distance, new int[]{0, 0}, 0); - }); - } } else { mBinding.rvFollowRoom.setVisibility(View.GONE); } diff --git a/app/src/main/res/layout/fragment_game_home.xml b/app/src/main/res/layout/fragment_game_home.xml index b183c57b9..c290c8b24 100644 --- a/app/src/main/res/layout/fragment_game_home.xml +++ b/app/src/main/res/layout/fragment_game_home.xml @@ -118,7 +118,7 @@ diff --git a/app/src/main/res/layout/item_home_concerns.xml b/app/src/main/res/layout/item_home_concerns.xml index f66e4c662..9b1bd0192 100644 --- a/app/src/main/res/layout/item_home_concerns.xml +++ b/app/src/main/res/layout/item_home_concerns.xml @@ -3,14 +3,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container_item_room_history" - android:layout_width="50dp" - android:layout_height="wrap_content" - android:paddingBottom="10dp" + android:layout_width="60dp" + android:layout_height="75dp" tools:background="@color/red"> @@ -27,12 +27,16 @@ + tools:text="66星球66星球" /> \ No newline at end of file diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/pk/model/PkModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/pk/model/PkModel.java index 37009010d..f95998ed3 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/pk/model/PkModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/pk/model/PkModel.java @@ -2,11 +2,10 @@ package com.yizhuan.xchat_android_core.room.pk.model; import android.annotation.SuppressLint; import android.os.CountDownTimer; +import android.util.SparseArray; import androidx.annotation.Nullable; -import android.util.SparseArray; - import com.google.gson.Gson; import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; @@ -70,9 +69,7 @@ import io.reactivex.SingleSource; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.functions.BiConsumer; -import io.reactivex.functions.Consumer; import io.reactivex.functions.Function; -import io.reactivex.functions.Predicate; import retrofit2.http.DELETE; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; @@ -110,134 +107,123 @@ public class PkModel extends BaseModel implements IPkModel { api = RxNet.create(Api.class); //PK模块需要礼物统计 IMNetEaseManager.get().getChatRoomEventObservable() - .filter(new Predicate() { - @Override - public boolean test(RoomEvent roomEvent) throws Exception { - - return curPkInfo != null && curPkInfo.getPkStatus() == RoomPkData.PK_STATUS_IN_PK - && - (RoomEvent.RECEIVE_NORMALE_GIFT == roomEvent.getEvent() - || RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT == roomEvent.getEvent() - || RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT == roomEvent.getEvent() - || RoomEvent.RECEIVED_SINGLE_MAGIC == roomEvent.getEvent() - || RoomEvent.RECEIVED_ALL_MIC_MAGIC == roomEvent.getEvent() - || RoomEvent.RECEIVE_LUCKY_GIFT == roomEvent.getEvent() - || RoomEvent.RECEIVE_MULTI_LUCKY_GIFT == roomEvent.getEvent() - || RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT == roomEvent.getEvent()); - - } - }) - .subscribe(new Consumer() { - @Override - public void accept(RoomEvent roomEvent) throws Exception { - int teamId = 0; - switch (roomEvent.getEvent()) { - case RoomEvent.RECEIVE_NORMALE_GIFT: - GiftReceiveInfo giftReceiveInfo = roomEvent.getGiftReceiveInfo(); - if (giftReceiveInfo == null || !isGoldGift(giftReceiveInfo.getGift())) { - //钻石礼物才算分数 - return; + .filter(roomEvent -> curPkInfo != null + && curPkInfo.getPkStatus() == RoomPkData.PK_STATUS_IN_PK + && (RoomEvent.RECEIVE_NORMALE_GIFT == roomEvent.getEvent() + || RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT == roomEvent.getEvent() + || RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT == roomEvent.getEvent() + || RoomEvent.RECEIVED_SINGLE_MAGIC == roomEvent.getEvent() + || RoomEvent.RECEIVED_ALL_MIC_MAGIC == roomEvent.getEvent() + || RoomEvent.RECEIVE_LUCKY_GIFT == roomEvent.getEvent() + || RoomEvent.RECEIVE_MULTI_LUCKY_GIFT == roomEvent.getEvent() + || RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT == roomEvent.getEvent())) + .subscribe(roomEvent -> { + int teamId = 0; + switch (roomEvent.getEvent()) { + case RoomEvent.RECEIVE_NORMALE_GIFT: + GiftReceiveInfo giftReceiveInfo = roomEvent.getGiftReceiveInfo(); + if (giftReceiveInfo == null || !isGoldGift(giftReceiveInfo.getGift())) { + //钻石礼物才算分数 + return; + } + teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiveInfo.getTargetUid())); + if (teamId != 0) { + if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { + addTeamScoreByGiftValue(teamId, giftReceiveInfo.getGiftNum() * giftReceiveInfo.getGift().getGoldPrice()); + } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { + addTeamScoreByPeopleCount(teamId, giftReceiveInfo.getUid(), giftReceiveInfo.getTargetUid()); } - teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiveInfo.getTargetUid())); + } + + break; + case RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT: + GiftMultiReceiverInfo giftMultiReceiverInfo = roomEvent.getGiftMultiReceiverInfo(); + if (giftMultiReceiverInfo == null || !isGoldGift(giftMultiReceiverInfo.getGift())) { + //钻石礼物才算分数 + return; + } + for (GiftReceiver giftReceiver : giftMultiReceiverInfo.getTargetUsers()) { + teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiver.getUid())); if (teamId != 0) { if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { - addTeamScoreByGiftValue(teamId, giftReceiveInfo.getGiftNum() * giftReceiveInfo.getGift().getGoldPrice()); + addTeamScoreByGiftValue(teamId, giftMultiReceiverInfo.getGiftNum() * giftMultiReceiverInfo.getGift().getGoldPrice()); } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { - addTeamScoreByPeopleCount(teamId, giftReceiveInfo.getUid(), giftReceiveInfo.getTargetUid()); + addTeamScoreByPeopleCount(teamId, giftMultiReceiverInfo.getUid(), giftReceiver.getUid()); } } + } - break; - case RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT: - GiftMultiReceiverInfo giftMultiReceiverInfo = roomEvent.getGiftMultiReceiverInfo(); - if (giftMultiReceiverInfo == null || !isGoldGift(giftMultiReceiverInfo.getGift())) { - //钻石礼物才算分数 - return; - } - for (GiftReceiver giftReceiver : giftMultiReceiverInfo.getTargetUsers()) { - teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiver.getUid())); - if (teamId != 0) { - if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { - addTeamScoreByGiftValue(teamId, giftMultiReceiverInfo.getGiftNum() * giftMultiReceiverInfo.getGift().getGoldPrice()); - } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { - addTeamScoreByPeopleCount(teamId, giftMultiReceiverInfo.getUid(), giftReceiver.getUid()); - } - } - } - - break; - case RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT: - MultiGiftReceiveInfo multiReceiverInfo = roomEvent.getMultiGiftReceiveInfo(); - if (multiReceiverInfo == null || !isGoldGift(multiReceiverInfo.getGift())) { - //钻石礼物才算分数 - return; - } - for (Long targetUid : multiReceiverInfo.getTargetUids()) { - teamId = getTeamIdInPKMemberList(String.valueOf(targetUid)); - if (teamId != 0) { - if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { - addTeamScoreByGiftValue(teamId, multiReceiverInfo.getGiftNum() * multiReceiverInfo.getGift().getGoldPrice()); - } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { - addTeamScoreByPeopleCount(teamId, multiReceiverInfo.getUid(), targetUid); - } - } - } - - break; - case RoomEvent.RECEIVED_SINGLE_MAGIC: - MagicReceivedInfo magicReceivedInfo = roomEvent.getMagicReceivedInfo(); - teamId = getTeamIdInPKMemberList(String.valueOf(magicReceivedInfo.getTargetUid())); + break; + case RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT: + MultiGiftReceiveInfo multiReceiverInfo = roomEvent.getMultiGiftReceiveInfo(); + if (multiReceiverInfo == null || !isGoldGift(multiReceiverInfo.getGift())) { + //钻石礼物才算分数 + return; + } + for (Long targetUid : multiReceiverInfo.getTargetUids()) { + teamId = getTeamIdInPKMemberList(String.valueOf(targetUid)); if (teamId != 0) { if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { - MagicInfo magicInfo = MagicModel.get().getMagicInfo(magicReceivedInfo.getMagicId()); + addTeamScoreByGiftValue(teamId, multiReceiverInfo.getGiftNum() * multiReceiverInfo.getGift().getGoldPrice()); + } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { + addTeamScoreByPeopleCount(teamId, multiReceiverInfo.getUid(), targetUid); + } + } + } + + break; + case RoomEvent.RECEIVED_SINGLE_MAGIC: + MagicReceivedInfo magicReceivedInfo = roomEvent.getMagicReceivedInfo(); + teamId = getTeamIdInPKMemberList(String.valueOf(magicReceivedInfo.getTargetUid())); + if (teamId != 0) { + if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { + MagicInfo magicInfo = MagicModel.get().getMagicInfo(magicReceivedInfo.getMagicId()); + if (magicInfo != null) { + addTeamScoreByGiftValue(teamId, (int) (magicReceivedInfo.getNumber() * magicInfo.getPrice())); + } + } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { + addTeamScoreByPeopleCount(teamId, magicReceivedInfo.getUid(), magicReceivedInfo.getTargetUid()); + } + } + + break; + case RoomEvent.RECEIVED_ALL_MIC_MAGIC: + MultiMagicReceivedInfo multiMagicReceivedInfo = roomEvent.getMultiMagicReceivedInfo(); + for (Long aLong : multiMagicReceivedInfo.getTargetUids()) { + teamId = getTeamIdInPKMemberList(String.valueOf(aLong)); + if (teamId != 0) { + if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { + MagicInfo magicInfo = MagicModel.get().getMagicInfo(multiMagicReceivedInfo.getMagicId()); if (magicInfo != null) { - addTeamScoreByGiftValue(teamId, (int) (magicReceivedInfo.getNumber() * magicInfo.getPrice())); + addTeamScoreByGiftValue(teamId, (int) (multiMagicReceivedInfo.getNumber() * magicInfo.getPrice())); } } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { - addTeamScoreByPeopleCount(teamId, magicReceivedInfo.getUid(), magicReceivedInfo.getTargetUid()); + addTeamScoreByPeopleCount(teamId, multiMagicReceivedInfo.getUid(), aLong); } } + } - break; - case RoomEvent.RECEIVED_ALL_MIC_MAGIC: - MultiMagicReceivedInfo multiMagicReceivedInfo = roomEvent.getMultiMagicReceivedInfo(); - for (Long aLong : multiMagicReceivedInfo.getTargetUids()) { - teamId = getTeamIdInPKMemberList(String.valueOf(aLong)); - if (teamId != 0) { - if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { - MagicInfo magicInfo = MagicModel.get().getMagicInfo(multiMagicReceivedInfo.getMagicId()); - if (magicInfo != null) { - addTeamScoreByGiftValue(teamId, (int) (multiMagicReceivedInfo.getNumber() * magicInfo.getPrice())); - } - } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { - addTeamScoreByPeopleCount(teamId, multiMagicReceivedInfo.getUid(), aLong); + break; + case RoomEvent.RECEIVE_LUCKY_GIFT: + case RoomEvent.RECEIVE_MULTI_LUCKY_GIFT: + case RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT: + LuckyBagGifts luckyBagGifts = roomEvent.getLuckygiftMultiReceiverInfo(); + teamId = getTeamIdInPKMemberList(String.valueOf(luckyBagGifts.getTargetUid())); + if (teamId != 0) { + if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { + int totalPrice = 0; + for (GiftList giftList : luckyBagGifts.getGiftList()) { + GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftList.getGiftId()); + if (giftInfo != null) { + totalPrice += giftList.getGiftNum() * giftInfo.getGoldPrice(); } } + addTeamScoreByGiftValue(teamId, totalPrice); + } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { + addTeamScoreByPeopleCount(teamId, luckyBagGifts.getUid(), luckyBagGifts.getTargetUid()); } - - break; - case RoomEvent.RECEIVE_LUCKY_GIFT: - case RoomEvent.RECEIVE_MULTI_LUCKY_GIFT: - case RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT: - LuckyBagGifts luckyBagGifts = roomEvent.getLuckygiftMultiReceiverInfo(); - teamId = getTeamIdInPKMemberList(String.valueOf(luckyBagGifts.getTargetUid())); - if (teamId != 0) { - if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) { - int totalPrice = 0; - for (GiftList giftList : luckyBagGifts.getGiftList()) { - GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftList.getGiftId()); - if (giftInfo != null) { - totalPrice += giftList.getGiftNum() * giftInfo.getGoldPrice(); - } - } - addTeamScoreByGiftValue(teamId, totalPrice); - } else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) { - addTeamScoreByPeopleCount(teamId, luckyBagGifts.getUid(), luckyBagGifts.getTargetUid()); - } - } - break; - - } + } + break; } }); }