新增贵族特权:1.麦位昵称颜色 2.麦位svga声波
This commit is contained in:
@@ -6,6 +6,7 @@ import androidx.annotation.Nullable;
|
|||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -17,6 +18,7 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.coorchice.library.SuperTextView;
|
import com.coorchice.library.SuperTextView;
|
||||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||||
|
import com.opensource.svgaplayer.SVGAImageView;
|
||||||
import com.yizhuan.erban.R;
|
import com.yizhuan.erban.R;
|
||||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||||
@@ -37,6 +39,7 @@ import com.yizhuan.xchat_android_core.room.pk.bean.PKTeamInfo;
|
|||||||
import com.yizhuan.xchat_android_core.room.queue.bean.MicMemberInfo;
|
import com.yizhuan.xchat_android_core.room.queue.bean.MicMemberInfo;
|
||||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||||
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
|
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
|
||||||
|
import com.yizhuan.xchat_android_core.utils.StringExtensionKt;
|
||||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -127,7 +130,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
ImageView ivLockImage;
|
ImageView ivLockImage;
|
||||||
ImageView ivMuteImage;
|
ImageView ivMuteImage;
|
||||||
CircleImageView ivAvatar;
|
CircleImageView ivAvatar;
|
||||||
ImageView ivHalo;
|
SVGAImageView ivHalo;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
ImageView ivHeadWear;
|
ImageView ivHeadWear;
|
||||||
@@ -161,6 +164,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
position = TYPE_INVALID;
|
position = TYPE_INVALID;
|
||||||
ivHalo.setBackground(null);
|
ivHalo.setBackground(null);
|
||||||
ivHalo.clearAnimation();
|
ivHalo.clearAnimation();
|
||||||
|
ivHalo.clear();
|
||||||
clearHeadWear();
|
clearHeadWear();
|
||||||
ivUpImage.setVisibility(View.VISIBLE);
|
ivUpImage.setVisibility(View.VISIBLE);
|
||||||
ivLockImage.setVisibility(View.GONE);
|
ivLockImage.setVisibility(View.GONE);
|
||||||
@@ -205,6 +209,8 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
ImageLoadUtils.loadAvatar(BasicConfig.INSTANCE.getAppContext(), chatRoomMember.getAvatar(), ivAvatar);
|
ImageLoadUtils.loadAvatar(BasicConfig.INSTANCE.getAppContext(), chatRoomMember.getAvatar(), ivAvatar);
|
||||||
// 加载贵族
|
// 加载贵族
|
||||||
updateNobleView(chatRoomMember);
|
updateNobleView(chatRoomMember);
|
||||||
|
//增加贵族昵称颜色
|
||||||
|
tvNick.setTextColor(StringExtensionKt.toColorInt(chatRoomMember.getMicNickColor(),"#FFFFFF"));
|
||||||
} else {
|
} else {
|
||||||
clearHeadWear();
|
clearHeadWear();
|
||||||
ivUpImage.setVisibility(View.VISIBLE);
|
ivUpImage.setVisibility(View.VISIBLE);
|
||||||
|
@@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.graphics.Point;
|
import android.graphics.Point;
|
||||||
import android.graphics.drawable.AnimationDrawable;
|
import android.graphics.drawable.AnimationDrawable;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
@@ -12,8 +13,13 @@ import android.view.View;
|
|||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.opensource.svgaplayer.SVGADrawable;
|
||||||
|
import com.opensource.svgaplayer.SVGAImageView;
|
||||||
|
import com.opensource.svgaplayer.SVGAParser;
|
||||||
|
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||||
import com.yizhuan.erban.R;
|
import com.yizhuan.erban.R;
|
||||||
import com.yizhuan.erban.avroom.adapter.BaseMicroViewAdapter;
|
import com.yizhuan.erban.avroom.adapter.BaseMicroViewAdapter;
|
||||||
import com.yizhuan.erban.avroom.adapter.CpMicroViewAdapter;
|
import com.yizhuan.erban.avroom.adapter.CpMicroViewAdapter;
|
||||||
@@ -40,6 +46,8 @@ import org.greenrobot.eventbus.EventBus;
|
|||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import io.reactivex.disposables.Disposable;
|
import io.reactivex.disposables.Disposable;
|
||||||
@@ -222,6 +230,7 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
|
|||||||
private void init(final Context context) {
|
private void init(final Context context) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
inflate(mContext, R.layout.layout_micro_view, this);
|
inflate(mContext, R.layout.layout_micro_view, this);
|
||||||
|
setClipChildren(false);
|
||||||
recyclerView = findViewById(R.id.recycler_view);
|
recyclerView = findViewById(R.id.recycler_view);
|
||||||
recyclerView.addOnLayoutChangeListener(this);
|
recyclerView.addOnLayoutChangeListener(this);
|
||||||
if (AvRoomDataManager.get().isCpRoom()) {
|
if (AvRoomDataManager.get().isCpRoom()) {
|
||||||
@@ -245,7 +254,7 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
|
|||||||
int pos = positions.get(i) + 1;
|
int pos = positions.get(i) + 1;
|
||||||
if (pos >= count && pos != AvRoomDataManager.POSITION_VIP_MIC + 1) continue;
|
if (pos >= count && pos != AvRoomDataManager.POSITION_VIP_MIC + 1) continue;
|
||||||
|
|
||||||
final View speakState;
|
final SVGAImageView speakState;
|
||||||
//相亲模式VIP位置光圈
|
//相亲模式VIP位置光圈
|
||||||
if (pos == AvRoomDataManager.POSITION_VIP_MIC + 1) {
|
if (pos == AvRoomDataManager.POSITION_VIP_MIC + 1) {
|
||||||
speakState = ((RecyclerView) recyclerView.getChildAt(0).findViewById(R.id.rv_vip))
|
speakState = ((RecyclerView) recyclerView.getChildAt(0).findViewById(R.id.rv_vip))
|
||||||
@@ -256,32 +265,56 @@ public class MicroView extends FrameLayout implements View.OnLayoutChangeListene
|
|||||||
|
|
||||||
if (speakState != null) {
|
if (speakState != null) {
|
||||||
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByMicPosition(positions.get(i));
|
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByMicPosition(positions.get(i));
|
||||||
if (roomQueueInfo == null) continue;
|
if (roomQueueInfo == null || roomQueueInfo.mChatRoomMember == null) continue;
|
||||||
String halo = (String) NobleUtil.getResource(NobleResourceType.KEY_HALO, roomQueueInfo.mChatRoomMember);
|
String halo = (String) NobleUtil.getResource(NobleResourceType.KEY_HALO, roomQueueInfo.mChatRoomMember);
|
||||||
//光圈的起始位置应该是头像边界,终止位置是头饰边界,头像:头饰=3:4
|
String micCircle = roomQueueInfo.mChatRoomMember.getMicCircle();
|
||||||
AnimFactory.getSpeakingAnimation(mContext, speakState.getWidth(), speakState.getHeight(),
|
if (TextUtils.isEmpty(micCircle)) {
|
||||||
NobleUtil.getColor(halo), speakState.getWidth() * 3 / 4)
|
//光圈的起始位置应该是头像边界,终止位置是头饰边界,头像:头饰=3:4
|
||||||
.subscribe((animationDrawable, throwable) -> {
|
AnimFactory.getSpeakingAnimation(mContext, speakState.getWidth(), speakState.getHeight(),
|
||||||
boolean isNeedSetBackground = false;
|
NobleUtil.getColor(halo), speakState.getWidth() * 3 / 4)
|
||||||
if (speakState.getBackground() != null) {
|
.subscribe((animationDrawable, throwable) -> {
|
||||||
if (speakState.getBackground() instanceof AnimationDrawable) {
|
boolean isNeedSetBackground = false;
|
||||||
AnimationDrawable oldAnimationDrawable = (AnimationDrawable) speakState.getBackground();
|
if (speakState.getBackground() != null) {
|
||||||
//因为设置了setOneShot属性,这里判断动画是否完成。
|
if (speakState.getBackground() instanceof AnimationDrawable) {
|
||||||
if (oldAnimationDrawable.getCurrent() ==
|
AnimationDrawable oldAnimationDrawable = (AnimationDrawable) speakState.getBackground();
|
||||||
oldAnimationDrawable.getFrame(oldAnimationDrawable.getNumberOfFrames() - 1)) {
|
//因为设置了setOneShot属性,这里判断动画是否完成。
|
||||||
|
if (oldAnimationDrawable.getCurrent() ==
|
||||||
|
oldAnimationDrawable.getFrame(oldAnimationDrawable.getNumberOfFrames() - 1)) {
|
||||||
|
isNeedSetBackground = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
isNeedSetBackground = true;
|
isNeedSetBackground = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
isNeedSetBackground = true;
|
isNeedSetBackground = true;
|
||||||
}
|
}
|
||||||
} else {
|
if (isNeedSetBackground && animationDrawable != null) {
|
||||||
isNeedSetBackground = true;
|
speakState.setBackground(animationDrawable);
|
||||||
|
animationDrawable.start();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (speakState.isAnimating()) continue;
|
||||||
|
try {
|
||||||
|
speakState.setLoops(1);
|
||||||
|
SVGAParser.Companion.shareParser().decodeFromURL(new URL(micCircle), new SVGAParser.ParseCompletion() {
|
||||||
|
@Override
|
||||||
|
public void onComplete(@NonNull SVGAVideoEntity svgaVideoEntity) {
|
||||||
|
SVGADrawable drawable = new SVGADrawable(svgaVideoEntity);
|
||||||
|
speakState.setImageDrawable(drawable);
|
||||||
|
speakState.startAnimation();
|
||||||
}
|
}
|
||||||
if (isNeedSetBackground && animationDrawable != null) {
|
|
||||||
speakState.setBackground(animationDrawable);
|
@Override
|
||||||
animationDrawable.start();
|
public void onError() {
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
}, null);
|
||||||
|
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,6 +27,7 @@ import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
|||||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by huangmeng1 on 2018/5/7.
|
* Created by huangmeng1 on 2018/5/7.
|
||||||
@@ -94,17 +95,18 @@ public class MyUserCardWearFragment extends BaseBindingFragment<FrgMyDecorationC
|
|||||||
private void setUsedStatus(int position) {
|
private void setUsedStatus(int position) {
|
||||||
UserCardWearInfo headWearInfo = shopAdapter.getData().get(position);
|
UserCardWearInfo headWearInfo = shopAdapter.getData().get(position);
|
||||||
|
|
||||||
|
|
||||||
// id == 0标识不使用头饰
|
// id == 0标识不使用头饰
|
||||||
|
|
||||||
wearVm.userHeadWear(headWearInfo.isUsed() ? null : headWearInfo.getCardId())
|
String cardId = headWearInfo.isUsed() ? null : headWearInfo.getCardId();
|
||||||
|
|
||||||
|
wearVm.userHeadWear(cardId)
|
||||||
.compose(bindUntilEvent(FragmentEvent.DESTROY))
|
.compose(bindUntilEvent(FragmentEvent.DESTROY))
|
||||||
.doOnError(throwable -> {
|
.doOnError(throwable -> {
|
||||||
toast(throwable.getMessage());
|
toast(throwable.getMessage());
|
||||||
})
|
})
|
||||||
.subscribe(s -> {
|
.subscribe(s -> {
|
||||||
for (int i = 0; i < shopAdapter.getData().size(); i++) {
|
for (int i = 0; i < shopAdapter.getData().size(); i++) {
|
||||||
shopAdapter.getData().get(i).setUsed(headWearInfo.getCardId().equals(shopAdapter.getData().get(i).getCardId()));
|
shopAdapter.getData().get(i).setUsed(Objects.equals(cardId,shopAdapter.getData().get(i).getCardId()));
|
||||||
}
|
}
|
||||||
shopAdapter.notifyDataSetChanged();
|
shopAdapter.notifyDataSetChanged();
|
||||||
//更新用户信息
|
//更新用户信息
|
||||||
|
@@ -17,7 +17,7 @@ public class UserCardWearVm extends BaseListViewModel<UserCardWearInfo> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Single<ServiceResult<List<UserCardWearInfo>>> getSingle() {
|
public Single<ServiceResult<List<UserCardWearInfo>>> getSingle() {
|
||||||
return HeadwearModel.get().getUserCardWearList(page , pageSize );
|
return HeadwearModel.get().getUserCardWearList(page, pageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Single<String> userHeadWear(String wearId) {
|
public Single<String> userHeadWear(String wearId) {
|
||||||
|
@@ -12,11 +12,6 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/iv_user_card_wear"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="180dp"
|
|
||||||
tools:background="@drawable/bg_user_card_wear" />
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/layout_userinfo"
|
android:id="@+id/layout_userinfo"
|
||||||
@@ -305,6 +300,12 @@
|
|||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_user_card_wear"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="180dp"
|
||||||
|
tools:background="@drawable/bg_user_card_wear" />
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
tools:background="#000">
|
tools:background="#000">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
tools:background="#3c3c3c">
|
tools:background="#3c3c3c">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
tools:background="#000">
|
tools:background="#000">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:background="@color/red">
|
tools:background="@color/red">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
android:layout_height="60dp"
|
android:layout_height="60dp"
|
||||||
tools:background="#000">
|
tools:background="#000">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -6,7 +6,6 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/micro_layout"
|
android:id="@+id/micro_layout"
|
||||||
android:layout_width="@dimen/dp_room_normal_mic_header_wear_radius"
|
android:layout_width="@dimen/dp_room_normal_mic_header_wear_radius"
|
||||||
@@ -14,14 +13,12 @@
|
|||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
tools:background="#3c3c3c">
|
tools:background="#3c3c3c">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center" />
|
android:layout_gravity="center" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.yizhuan.erban.common.widget.CircleImageView
|
<com.yizhuan.erban.common.widget.CircleImageView
|
||||||
android:id="@+id/avatar"
|
android:id="@+id/avatar"
|
||||||
android:layout_width="@dimen/dp_room_normal_mic_radius"
|
android:layout_width="@dimen/dp_room_normal_mic_radius"
|
||||||
@@ -82,8 +79,6 @@
|
|||||||
tools:visibility="gone" />
|
tools:visibility="gone" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
android:layout_height="@dimen/dp_room_normal_mic_header_wear_radius"
|
android:layout_height="@dimen/dp_room_normal_mic_header_wear_radius"
|
||||||
tools:background="#3c3c3c">
|
tools:background="#3c3c3c">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -22,9 +22,10 @@
|
|||||||
</data>
|
</data>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_marginTop="75dp"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginTop="75dp"
|
||||||
|
android:clipChildren="false">
|
||||||
|
|
||||||
<!-- ktv模式下的房间排行榜入口 -->
|
<!-- ktv模式下的房间排行榜入口 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -90,7 +91,8 @@
|
|||||||
android:id="@+id/micro_view"
|
android:id="@+id/micro_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@id/ll_ktv_top" />
|
android:layout_below="@id/ll_ktv_top"
|
||||||
|
android:clipChildren="false" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ll_dating_step"
|
android:id="@+id/ll_dating_step"
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
tools:background="#3c3c3c">
|
tools:background="#3c3c3c">
|
||||||
|
|
||||||
<ImageView
|
<com.opensource.svgaplayer.SVGAImageView
|
||||||
android:id="@+id/iv_halo"
|
android:id="@+id/iv_halo"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@@ -617,6 +617,14 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
contentJsonObj.put("vipMic", true);
|
contentJsonObj.put("vipMic", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(userInfo.getMicNickColor())){
|
||||||
|
contentJsonObj.put("micNickColor", userInfo.getMicNickColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(userInfo.getMicCircle())){
|
||||||
|
contentJsonObj.put("micCircle", userInfo.getMicCircle());
|
||||||
|
}
|
||||||
|
|
||||||
NIMChatRoomSDK.getChatRoomService()
|
NIMChatRoomSDK.getChatRoomService()
|
||||||
.updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true)
|
.updateQueueEx(roomId, String.valueOf(micPosition), contentJsonObj.toJSONString(), true)
|
||||||
.setCallback(new RequestCallback<Void>() {
|
.setCallback(new RequestCallback<Void>() {
|
||||||
|
@@ -19,16 +19,9 @@ public class MicMemberInfo {
|
|||||||
private String account;
|
private String account;
|
||||||
private String avatar;
|
private String avatar;
|
||||||
private String nick;
|
private String nick;
|
||||||
private int micPosition;
|
private String micNickColor;
|
||||||
|
private String micCircle;
|
||||||
private String headWearUrl;
|
private String headWearUrl;
|
||||||
private boolean isRoomOwnner;
|
|
||||||
private boolean isAllMember = false;
|
|
||||||
//添加性别信息,在礼物面板显示
|
|
||||||
private int gender;
|
|
||||||
private boolean inPkMode = false;
|
|
||||||
private int teamId = 0;
|
|
||||||
private boolean isSelected = false;
|
|
||||||
private Map<String, Object> extension;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 相亲模式使用
|
* 相亲模式使用
|
||||||
@@ -55,6 +48,17 @@ public class MicMemberInfo {
|
|||||||
*/
|
*/
|
||||||
private int gameStatus;
|
private int gameStatus;
|
||||||
|
|
||||||
|
//非麦序队列字段 start
|
||||||
|
private Map<String, Object> extension;
|
||||||
|
private int micPosition;
|
||||||
|
private boolean isRoomOwnner;
|
||||||
|
private boolean isAllMember = false;
|
||||||
|
private int gender;
|
||||||
|
private boolean inPkMode = false;
|
||||||
|
private int teamId = 0;
|
||||||
|
private boolean isSelected = false;
|
||||||
|
//非麦序队列字段 end
|
||||||
|
|
||||||
public MicMemberInfo() {
|
public MicMemberInfo() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -212,6 +212,14 @@ public class UserInfo implements Serializable {
|
|||||||
@Setter
|
@Setter
|
||||||
private String userInfoCardPic;
|
private String userInfoCardPic;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String micNickColor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String micCircle;
|
||||||
|
|
||||||
public Location getUserExpand() {
|
public Location getUserExpand() {
|
||||||
return userExpand;
|
return userExpand;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.yizhuan.xchat_android_core.utils
|
package com.yizhuan.xchat_android_core.utils
|
||||||
|
|
||||||
|
import android.graphics.Color
|
||||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
|
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
|
||||||
|
|
||||||
|
|
||||||
@@ -16,6 +17,18 @@ fun String?.toDoubleOrDef(def: Double = 0.0): Double {
|
|||||||
return this?.toDoubleOrNull() ?: def
|
return this?.toDoubleOrNull() ?: def
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主要用于将服务器返回的RGB值转换为ColorInt
|
||||||
|
*/
|
||||||
|
fun String?.toColorInt(defaultValue: String): Int {
|
||||||
|
if (this.isNullOrBlank()) return Color.parseColor(defaultValue)
|
||||||
|
return try {
|
||||||
|
Color.parseColor(this)
|
||||||
|
} catch (t: Throwable) {
|
||||||
|
Color.parseColor(defaultValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun String?.toast() {
|
fun String?.toast() {
|
||||||
SingleToastUtil.showToast(this)
|
SingleToastUtil.showToast(this)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user