VIP坑位不能显示表情和光圈bug fix

This commit is contained in:
huangjian
2022-05-13 21:01:14 +08:00
parent 325c0fd615
commit 1a75aee327

View File

@@ -13,6 +13,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.opensource.svgaplayer.SVGADrawable;
@@ -22,14 +23,11 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.BaseMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.DatingMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.GameMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.GameMiniMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener;
import com.yizhuan.erban.ui.anim.AnimFactory;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.erban.ui.widget.recyclerview.decoration.DatingItemDecoration;
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.FaceAttachment;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent;
@@ -199,14 +197,7 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
int pos = positions.get(i) + 1;
if (pos >= count && pos != AvRoomDataManager.POSITION_VIP_MIC + 1) continue;
final SVGAImageView speakState;
//相亲模式VIP位置光圈
if (pos == AvRoomDataManager.POSITION_VIP_MIC + 1) {
speakState = ((RecyclerView) findItemView(pos).findViewById(R.id.rv_vip))
.getChildAt(0).findViewById(R.id.iv_halo);
} else {
speakState = findItemView(pos).findViewById(R.id.iv_halo);
}
final SVGAImageView speakState = findItemView(pos, R.id.iv_halo);
if (speakState != null) {
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByMicPosition(positions.get(i));
@@ -273,12 +264,17 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
}
}
private View findItemView(int pos) {
@Nullable
private <T extends View> T findItemView(int pos, int viewId) {
if (pos == AvRoomDataManager.POSITION_VIP_MIC + 1) {
return ((RecyclerView) recyclerView.getChildAt(0).findViewById(R.id.rv_vip))
.getChildAt(0).findViewById(viewId);
} else {
RecyclerView.ViewHolder viewHolder = recyclerView.findViewHolderForLayoutPosition(pos);
if (viewHolder != null) {
return viewHolder.itemView;
if (viewHolder == null) return null;
return viewHolder.itemView.findViewById(viewId);
}
return recyclerView.getChildAt(pos);
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -309,12 +305,7 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
if (isDragon) {
return;
} else {
if (position == AvRoomDataManager.POSITION_VIP_MIC + 1) {
imageView = ((RecyclerView) findItemView(position + 1).findViewById(R.id.rv_vip))
.getChildAt(0).findViewById(R.id.iv_face);
} else {
imageView = findItemView(position + 1).findViewById(R.id.iv_face);
}
imageView = findItemView(position + 1, R.id.iv_face);
}
if (imageView == null) continue;
AnimFactory.getFaceAnimation(faceReceiveInfo, mContext, imageView.getWidth(), imageView.getHeight(), needAnim, needResult, needGone)