feat : 1.给自己送礼, 优化连击相关event 发送接收,修复资料弹窗唤起的礼物弹窗连击问题 2.工会头像,房间头像,用户头像区分 3.去掉小游戏 排麦模式等限制 4. vip 相关: 1.gif头像显示处理完毕

This commit is contained in:
eggmanQQQ
2024-10-21 17:17:33 +08:00
parent b382d98839
commit 17a470e847
85 changed files with 626 additions and 265 deletions

View File

@@ -756,7 +756,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
if (avatarBg == null || avatar == null || nick == null) return;
if (userInfo != null) {
ImageLoadUtils.loadImageWithBlurTransformation(this, userInfo.getAvatar(), avatarBg);
ImageLoadUtils.loadBigAvatar(this, userInfo.getAvatar(), avatar, false);
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), avatar);
Drawable badgeDrawable = null;
if (userInfo.getNobleInfo() != null) {
// 勋章

View File

@@ -1,9 +1,16 @@
package com.chwl.app.avroom.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.text.SpannableString;
import android.text.TextUtils;
import android.view.View;
@@ -11,15 +18,41 @@ import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.PickVisualMediaRequest;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import com.chwl.app.application.App;
import com.chwl.app.common.util.BitmapUtil;
import com.chwl.app.ui.widget.dialog.CommonTipDialog;
import com.chwl.core.file.FileModel;
import com.chwl.core.user.UserModel;
import com.chwl.core.utils.CoreLogger;
import com.chwl.core.utils.DialogUtil;
import com.chwl.core.utils.LogUtils;
import com.chwl.library.common.file.FileHelper;
import com.chwl.library.common.photo.PhotoProvider;
import com.chwl.library.common.util.PhotoCompressCallback;
import com.chwl.library.common.util.PhotoCompressUtil;
import com.chwl.library.common.util.SPUtils;
import com.chwl.library.constants.ConstantsLib;
import com.chwl.library.easypermisssion.EasyPermissions;
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
import com.chwl.app.ui.user.adapter.UserPhotoAdapter;
import com.chwl.core.super_admin.util.SuperAdminUtil;
import com.chwl.core.utils.net.DontWarnObserver;
import com.chwl.core.utils.net.RxHelper;
import com.chwl.library.easyphoto.models.album.entity.Photo;
import com.chwl.library.utils.SingleToastUtil;
import com.hjq.toast.ToastUtils;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.ui.dialog.EasyAlertDialogHelper;
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
import com.chwl.app.R;
@@ -59,11 +92,13 @@ import com.chwl.library.utils.JavaUtil;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.codec.DESUtils;
import com.yalantis.ucrop.UCrop;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -71,14 +106,14 @@ import java.util.Objects;
import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import kotlinx.coroutines.Job;
/**
* @author chenran
* @date 2017/9/26
*/
@CreatePresenter(RoomSettingPresenter.class)
public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomSettingPresenter>
implements View.OnClickListener, IRoomSettingView {
public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomSettingPresenter> implements View.OnClickListener, IRoomSettingView, EasyPermissions.PermissionCallbacks {
private RelativeLayout managerLayout;
private RelativeLayout blackLayout;
@@ -98,6 +133,14 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
private ActivityRoomSettingBinding binding;
private ActivityResultLauncher<PickVisualMediaRequest> pickMedia;
private Uri mUri;
private Job mJob;
private final int PERMISSION_CODE_STORAGE = 12;
private final int REQUEST_CODE_OPEN_PHOTO_PROVIDER = 111; // 从相册中选择
private final int REQUEST_CODE_STORAGE = 42;
private final int MAX_BITMAP_SIZE = 100 * 1024 * 1024; // 剪切的图片最大为100 MB
public static void start(Context context) {
Intent intent = new Intent(context, RoomSettingActivity.class);
context.startActivity(intent);
@@ -135,17 +178,33 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
binding.layoutSingleRoomSort.setVisibility(
AvRoomDataManager.get().isRoomOwner() && AvRoomDataManager.get().isSingleRoom()
? View.VISIBLE : View.GONE);
binding.setRoomAvatar.setVisibility((!UserModel.get().isTWUser() && ( AvRoomDataManager.get().isRoomOwner() || AvRoomDataManager.get().isRoomAdmin())) ? View.VISIBLE : View.GONE);
//调用更改房间信息接口后会发消息ROOM_INFO_UPDATE在此处接收ui改动
IMNetEaseManager.get().getChatRoomEventObservable()
.compose(bindToLifecycle())
.filter(roomEvent -> roomEvent.getEvent() == RoomEvent.ROOM_INFO_UPDATE)
.subscribe(roomEvent -> updateRoomInfoView());
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(new ActivityResultContracts.PickVisualMedia(), new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
if (uri != null && mUri != null) {
crop(uri, 1, mUri);
}
}
});
}
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
if (mJob != null) {
mJob.cancel(null);
}
}
private void initView() {
@@ -260,8 +319,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
}
private void save(final String name, final String pwd, String label) {
save(name, pwd, label, false,
roomInfo.isHasAnimationEffect());
save(name,null, pwd, label, false, roomInfo.isHasAnimationEffect());
}
/**
@@ -273,7 +331,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
* @param isUpdateGiftEffect 是否改动了礼物特效
* @param giftEffect 是否开启礼物特效
*/
private void save(final String name, final String pwd, String label, boolean isUpdateGiftEffect,
private void save(final String name,final String avatar, final String pwd, String label, boolean isUpdateGiftEffect,
boolean giftEffect) {
String desc = null;
getDialogManager().showProgressDialog(this, ResUtil.getString(R.string.avroom_activity_roomsettingactivity_06));
@@ -299,7 +357,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
}
};
if (AvRoomDataManager.get().isRoomOwner()) {
model.updateRoomInfo(name, desc, roomInfo.getIntroduction(), pwd, label, id,
model.updateRoomInfo(name, avatar,desc, roomInfo.getIntroduction(), pwd, label, id,
AuthModel.get().getCurrentUid(),
AuthModel.get().getTicket(),
giftEffect,
@@ -311,7 +369,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
.compose(bindToLifecycle())
.subscribe(observer);
} else if (AvRoomDataManager.get().isRoomAdmin()) {
model.updateByAdmin(roomInfo.getUid(), name, desc, roomInfo.getIntroduction(), pwd, label, id,
model.updateByAdmin(roomInfo.getUid(),name,avatar,desc, roomInfo.getIntroduction(), pwd, label, id,
AuthModel.get().getCurrentUid(),
AuthModel.get().getTicket(),
giftEffect,
@@ -404,13 +462,13 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
@Override
public void onOk() {
save(null, null, null, true, false);
save(null,null,null, null, true, false);
}
});
return;
}
//开启礼物特效
save(null, null, null, true, true);
save(null,null, null, null, true, true);
break;
case R.id.switch_screen:
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
@@ -552,10 +610,77 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
case R.id.switch_gift_value:
switchGiftValue();
break;
case R.id.setRoomAvatar:
checkStoragePermission();
break;
default:
}
}
private void checkStoragePermission() {
if (Build.VERSION.SDK_INT >= 33){
DialogUtil.INSTANCE.getDialog(this, new EasyAlertDialogHelper.OnDialogActionListener() {
@Override
public void doCancelAction() {}
@Override
public void doOkAction() {
mUri = Uri.parse("file://"+ FileHelper.getRootCacheDir().getPath()+"/"+System.nanoTime()+".jpg");
SPUtils.putBoolean(ConstantsLib.Key.Permissions_Img,true);
pickMedia.launch(new PickVisualMediaRequest.Builder().setMediaType(ActivityResultContracts.PickVisualMedia.ImageOnly.INSTANCE).build());
}
});
}else{
if (!EasyPermissions.hasPermissions(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
EasyPermissions.requestPermissions(this, getString(R.string.permission_storage_rationale), PERMISSION_CODE_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE);
} else {
mUri = Uri.parse("file://"+ FileHelper.getRootCacheDir().getPath()+"/"+System.nanoTime()+".jpg");
PhotoProvider.photoProvider(this, 1,false,REQUEST_CODE_OPEN_PHOTO_PROVIDER, true);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
if (requestCode == PERMISSION_CODE_STORAGE) {
checkStoragePermission();
}
}
@Override
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
if (requestCode == PERMISSION_CODE_STORAGE) {
String requestTip = getString(R.string.permission_storage_denied);
CommonTipDialog mPrivacyDialog = new CommonTipDialog(context);
mPrivacyDialog.setTipMsg(requestTip);
mPrivacyDialog.setOkText(getString(R.string.room_perform_go_update));
mPrivacyDialog.setOnActionListener(new CommonTipDialog.OnActionListener() {
@Override
public void onOk() {
//同意跳到应用详情页面
Uri packageUri = Uri.parse("package:${packageName}");
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageUri);
startActivityForResult(intent, REQUEST_CODE_STORAGE);
}
@Override
public void onCancel() {
//取消跳到应用详情页面
ToastUtils.show(getString(R.string.permission_storage_refused));
}
});
mPrivacyDialog.show();
}
}
private void switchGiftValue(){
if (AvRoomDataManager.get().isCpRoom()) {
return;
@@ -894,4 +1019,102 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
imageView.setImageResource(isSelected ?
R.drawable.icon_room_set_lock_true : R.drawable.icon_room_set_lock_false);
}
@SuppressLint("CheckResult")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_STORAGE) {
checkStoragePermission();
} else if (resultCode == RESULT_OK) {
switch (requestCode) {
case REQUEST_CODE_OPEN_PHOTO_PROVIDER:
if (data != null) {
List<Photo> photos = PhotoProvider.getResultPhotoList(data);
if (photos != null && !photos.isEmpty()) {
Photo photo = photos.get(0);
crop(photo.uri, photo.size, mUri);
} else {
toast(R.string.empty_data);
}
}
break;
case UCrop.REQUEST_CROP:
if (mUri != null && mUri.getPath() != null) {
try {
if (mJob != null) {
mJob.cancel(null);
}
mJob = PhotoCompressUtil.compress(
this,
mUri.getPath(),
PhotoCompressUtil.getCompressCachePath("roomAvatar"), new PhotoCompressCallback() {
@Override
public void onSuccess(@NonNull String compressedImg) {
getDialogManager().showProgressDialog(RoomSettingActivity.this, ResUtil.getString(R.string.ui_user_userinfomodifyactivity_09));
FileModel.get()
.uploadFile(compressedImg)
.compose(bindToLifecycle())
.subscribe((url, throwable) -> {
if (throwable != null) {
onUploadFail(throwable);
} else {
onUpload(url);
}
});
}
@Override
public void onFail(@NonNull Throwable e) {
toast(e.getMessage());
}
});
mJob.start();
} catch (Exception e) {
}
}
break;
}
}
}
/**
* 第三方图片裁剪框架Ucrop
*/
private void crop(Uri sourceUri, long sourceSize, Uri destinationUri) {
if (sourceUri == null || destinationUri == null) {
return;
} //防止too large导致oom大于100m不处理内存大小
if (BitmapUtil.getSdBitmapSize(sourceUri) >= MAX_BITMAP_SIZE) {
toast(R.string.text_bitmap_too_large);
return;
}
UCrop.Options options = new UCrop.Options();
options.setCompressionQuality(100);
options.setShowCropGrid(false);
options.setToolbarColor(ContextCompat.getColor(App.gContext,android.R.color.black));
options.setStatusBarColor(ContextCompat.getColor(App.gContext, android.R.color.black));
options.setHideBottomControls(true);
options.setCompressionFormat(Bitmap.CompressFormat.JPEG);
options.setToolbarCancelDrawable(R.drawable.user_ucrop_ic_closs);
options.setToolbarCropDrawable(R.drawable.user_ucrop_ic_sure);
options.setToolbarWidgetColor(ContextCompat.getColor(App.gContext, R.color.color_white));
UCrop.of(sourceUri, destinationUri).withOptions(options).withAspectRatio(1f, 1f).withMaxResultSize(800, 800).start(this);
}
private void onUpload(String url) {
LogUtils.d(" 请求接口 更新房间封面 url = "+url);
save(null,url,null,null,false,roomInfo.isHasAnimationEffect());
}
private void onUploadFail(Throwable throwable) {
toast(ResUtil.getString(R.string.ui_user_userinfomodifyactivity_08) + ":"+throwable.getMessage());
getDialogManager().dismissDialog();
}
}

View File

@@ -119,7 +119,7 @@ public class RoomTitleEditActivity extends BaseBindingActivity<ActivityRoomTitle
String ticket = AuthModel.get().getTicket();
if (AvRoomDataManager.get().isRoomOwner()) {
mDialogManager.showProgressDialog(this);
Disposable disposable = roomSettingModel.updateRoomInfo(info.title, desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
Disposable disposable = roomSettingModel.updateRoomInfo(info.title,null,desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
ticket, info.isHasAnimationEffect(), info.getAudioQuality(), info.getLimitType(),info.isPureMode(), info.getType(),
info.getMgId())
.subscribe(this);
@@ -128,7 +128,7 @@ public class RoomTitleEditActivity extends BaseBindingActivity<ActivityRoomTitle
} else if (AvRoomDataManager.get().isRoomAdmin()) {
mDialogManager.showProgressDialog(this);
Disposable disposable = roomSettingModel.updateByAdmin(info.getUid(), info.title, desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
Disposable disposable = roomSettingModel.updateByAdmin(info.getUid(), info.title,null, desc, introduction, info.roomPwd, info.getRoomTag(), info.tagId, currentUid,
ticket, info.isHasAnimationEffect(), info.getAudioQuality(),info.isPureMode())
.subscribe(this);

View File

@@ -145,7 +145,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
ImageView ivUpImage;
ImageView ivLockImage;
ImageView ivMuteImage;
CircleImageView ivAvatar;
ImageView ivAvatar;
SVGAImageView ivHalo;
@Nullable
@@ -230,7 +230,7 @@ public abstract class BaseMicroViewAdapter extends RecyclerView.Adapter<Recycler
ivUpImage.setVisibility(View.GONE);
ivAvatar.setVisibility(View.VISIBLE);
setSelectText(position, chatRoomMember.getNick(), chatRoomMember.getGender());
ImageLoadUtils.loadAvatar(BasicConfig.INSTANCE.getAppContext(), chatRoomMember.getAvatar(), ivAvatar);
ImageLoadUtils.loadAvatar(chatRoomMember.getAvatar(), ivAvatar);
// 加载贵族
updateNobleView(chatRoomMember);
//增加贵族昵称颜色

View File

@@ -109,9 +109,9 @@ public class RoomConsumeListAdapter extends BaseMultiItemQuickAdapter<RoomContri
}
ivAvatar.setVisibility(View.VISIBLE);
if (roomConsumeInfo.isHide()) {
ImageLoadUtils.loadBigAvatar(mContext, context.getResources().getString(R.string.url_mystery_man), ivAvatar, true);
ImageLoadUtils.loadAvatarBig(context.getResources().getString(R.string.url_mystery_man), ivAvatar);
} else {
ImageLoadUtils.loadBigAvatar(mContext, roomConsumeInfo.getAvatar(), ivAvatar, true);
ImageLoadUtils.loadAvatarBig(roomConsumeInfo.getAvatar(), ivAvatar);
}
ivRankIcon.setImageResource(emptyPic);

View File

@@ -90,7 +90,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
if (i == 0) {
if (!TextUtils.isEmpty(userInfo.getAvatar()))
ImageLoadUtils.loadBigAvatar(mContext, userInfo.getAvatar(), ciTopOne, true);
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), ciTopOne);
ivGenderOne.setVisibility(isEmptyBean ? View.GONE : View.VISIBLE);
@@ -113,7 +113,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
} else if (i == 1) {
if (!TextUtils.isEmpty(userInfo.getAvatar()))
ImageLoadUtils.loadBigAvatar(mContext, userInfo.getAvatar(), ciTopTwo, true);
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), ciTopTwo);
ivGenderTwo.setVisibility(isEmptyBean ? View.GONE : View.VISIBLE);
ivGenderTwo.setImageResource(userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female);
@@ -135,7 +135,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
} else if (i == 2) {
if (!TextUtils.isEmpty(userInfo.getAvatar()))
ImageLoadUtils.loadBigAvatar(mContext, userInfo.getAvatar(), ciTopThree, true);
ImageLoadUtils.loadAvatarBig(userInfo.getAvatar(), ciTopThree);
ivGenderThree.setVisibility(isEmptyBean ? View.GONE : View.VISIBLE);
ivGenderThree.setImageResource(userInfo.getGender() == 1 ? R.drawable.ic_gender_male : R.drawable.ic_gender_female);
@@ -170,7 +170,7 @@ public class RoomConsumerListAdapterTemp extends BaseMultiItemQuickAdapter<RoomR
RoomContributeUserInfo roomContributeUserInfo = (RoomContributeUserInfo) roomConsumeInfo.getData();
CircleImageView avatarView = baseViewHolder.getView(R.id.avatar_view);
ImageLoadUtils.loadAvatar(mContext, roomContributeUserInfo.getAvatar(), avatarView, true);
ImageLoadUtils.loadAvatar(mContext, roomContributeUserInfo.getAvatar(), avatarView);
AppCompatImageView ivNobleLevel = baseViewHolder.getView(R.id.iv_noble_level);
ivNobleLevel.setVisibility(View.GONE);

View File

@@ -57,7 +57,7 @@ public class RoomRankHalfHourListAdapter extends BaseMultiItemQuickAdapter<RoomR
baseViewHolder.setText(R.id.tv_room_rank_title, roomRankHalfHourRankInfo.getRoomTitle());
// 头像
CircleImageView avatarView = baseViewHolder.getView(R.id.iv_room_rank_avatar);
ImageLoadUtils.loadAvatar(mContext, roomRankHalfHourRankInfo.getAvatar(), avatarView, true);
ImageLoadUtils.loadAvatar(roomRankHalfHourRankInfo.getAvatar(),avatarView);
baseViewHolder.setText(R.id.tv_room_rank_id, "ID:" + roomRankHalfHourRankInfo.getErbanNo());
}
}

View File

@@ -41,7 +41,7 @@ public class AttentionHintDialog extends BaseBsDialog {
ivAvatar = findViewById(R.id.iv_avatar);
tvNickname = findViewById(R.id.tv_nickname);
tvAttention = findViewById(R.id.tv_attention);
ImageLoadUtils.laodUsrInfoAvatar(getContext(), AvRoomDataManager.get().avatar, ivAvatar);
ImageLoadUtils.loadAvatar(getContext(), AvRoomDataManager.get().avatar, ivAvatar);
tvNickname.setText(AvRoomDataManager.get().nick);
tvAttention.setOnClickListener(v ->
disposable = PraiseModel.get().praise(AvRoomDataManager.get().getRoomUid(), true)

View File

@@ -152,7 +152,7 @@ class RoomBoomInfoDialog : BaseDialogFragment<DialogRoomBoomInfoBinding>() {
animView.setLoop(Int.MAX_VALUE)
animView.loadAnim2(it.vapUrl)
if (UserModel.get().partitionId == 2L) {
if (UserModel.get().isArUser) {
binding.avatarTime.text = R.string.roomBoomInfoRankHint2.getString()
} else {
binding.avatarTime.text = R.string.roomBoomInfoRankHint.getString()

View File

@@ -179,7 +179,9 @@ class RoomGameListDialog :
if (roomIcon.isBaiShunGame()) {
newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:""))
}else if(roomIcon.isFindLove()){
newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"", isFindLove = true))
newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"", code = roomIcon.code))
}else if(roomIcon.isLeadercc()){
newData.add(GameInfo(name = roomIcon.name?:"", pic = roomIcon.icon?:"" , pic2 = roomIcon.icon?:"", skipContent = roomIcon.skipContent?:"", ruleValue = roomIcon.ruleValue?:"", code = roomIcon.code))
}
}
return newData
@@ -267,7 +269,7 @@ class RoomGameListDialog :
)
}
}else if(!gameInfo.skipContent.isNullOrEmpty() || !gameInfo.ruleValue.isNullOrEmpty()){
if (gameInfo.isFindLove) {
if (gameInfo.isFindLove()) {
jumpFindLove()
} else {
jumpBaiShunGame(gameInfo)
@@ -329,9 +331,11 @@ class RoomGameListDialog :
//这里的2和4是服务端定义的错误状态 关闭排麦模式和关闭PK模式!
private fun isShowChangeGame(): Boolean {
//todo do 游戏模式限制判断
val currentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo
return currentRoomInfo != null && currentRoomInfo.type != RoomInfo.ROOM_TYPE_SINGLE &&
(currentRoomInfo.roomModeType == RoomModeType.NORMAL_MODE || currentRoomInfo.roomModeType == 2 || currentRoomInfo.roomModeType == 4)
return currentRoomInfo != null
&& currentRoomInfo.type != RoomInfo.ROOM_TYPE_SINGLE
// && (currentRoomInfo.roomModeType == RoomModeType.NORMAL_MODE || currentRoomInfo.roomModeType == 2 || currentRoomInfo.roomModeType == 4)
}
interface GameplayDialogListener {

View File

@@ -91,7 +91,6 @@ import com.chwl.core.gift.bean.BoomMsgAwardList
import com.chwl.core.gift.bean.BoomMsgDialogBean
import com.chwl.core.gift.bean.BoomMsgExpPushBean
import com.chwl.core.gift.bean.GiftInfo
import com.chwl.core.gift.bean.GiftType
import com.chwl.core.gift.event.GiftComboEvent
import com.chwl.core.gift.event.NotifyEvent
import com.chwl.core.gift.event.RoomFreeGiftEvent
@@ -980,12 +979,6 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
callback.onFail()
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_CANCEL))
} else {
if (giftInfo.giftType == GiftType.GIFT_TYPE_NORMAL || giftInfo.giftType == GiftType.GIFT_TYPE_SUPER_LUCKY || giftInfo.giftType == GiftType.GIFT_TYPE_LUCKY_24) {
giftDialog?.hide()
val giftComboEvent = GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_END)
giftComboEvent.giftNumber = gift.data.giftNum
EventBus.getDefault().post(giftComboEvent)
}
callback.onSuccess()
}
}
@@ -1371,6 +1364,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
}
if (giftDialog?.isShowing != true && !requireActivity().isFinishing) {
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_POINT))
EventBus.getDefault().post(GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_DIALOG_DISMISS))
giftDialog?.show()
}
}
@@ -1611,22 +1605,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
//礼物连击相关 消息
@Subscribe(threadMode = ThreadMode.MAIN)
fun onGiftComboEvent(event: GiftComboEvent) {
when (event.action) {
GiftComboEvent.Action.ACT_GIFT_START-> {
giftDialog?.sendGift()
}
GiftComboEvent.Action.ACT_GIFT_SHOW-> {
giftDialog?.show()
}
else -> {}
}
}
//横幅相关消息
@Subscribe(threadMode = ThreadMode.MAIN)

View File

@@ -5,6 +5,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.chad.library.adapter.base.diff.BaseQuickDiffCallback
import com.chwl.app.R
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.loadAvatar
class RoomOnlineAvatarAdapter :
@@ -12,7 +13,7 @@ class RoomOnlineAvatarAdapter :
override fun convert(helper: BaseViewHolder, item: Pair<String, String?>?) {
val avatarView = helper.getView<ImageView>(R.id.iv_avatar)
avatarView.loadAvatar(item?.second)
ImageLoadUtils.loadAvatar(item?.second,avatarView)
}
fun updateData(list: List<Pair<String, String?>>?) {

View File

@@ -353,9 +353,10 @@ public class BottomView extends LinearLayout implements View.OnClickListener {
}
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo == null) return;
boolean show = (AvRoomDataManager.get().isQueuingMicro() || AvRoomDataManager.get().isOpenPKMode()) &&
!AvRoomDataManager.get().isCpRoom() &&
(AvRoomDataManager.get().isManager() || roomInfo.getRoomModeType() == RoomModeType.OPEN_MICRO_MODE);
boolean show = (
AvRoomDataManager.get().isQueuingMicro() || AvRoomDataManager.get().isOpenPKMode())
&& !AvRoomDataManager.get().isCpRoom()
&& (AvRoomDataManager.get().isManager() || roomInfo.getRoomModeType() == RoomModeType.OPEN_MICRO_MODE);
iconMicQueue.setVisibility(show ? VISIBLE : GONE);
}

View File

@@ -12,10 +12,13 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.databinding.BindingAdapter;
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.chwl.app.ui.utils.ImageLoadUtilsV2;
import com.chwl.library.common.glide.GlideUtils;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.chwl.app.R;
import com.chwl.app.ui.utils.ImageLoadUtils;
@@ -66,8 +69,7 @@ public class ViewAdapter {
@BindingAdapter(value = {"avatarUrl"}, requireAll = false)
public static void setAvatarUrl(ImageView imageView, String url) {
if (TextUtils.isEmpty(url) || url.equals("null")) return;
ImageLoadUtils.loadAvatar(imageView.getContext(), url, imageView);
ImageLoadUtils.loadAvatar(url,imageView,R.drawable.default_avatar);
}
@BindingAdapter(value = {"roundUrl"}, requireAll = false)

View File

@@ -739,7 +739,7 @@ public class DialogManager {
window.setContentView(R.layout.dialog_in_app_sharing_confirm);
ImageView avatarView = window.findViewById(R.id.iv_avatar);
ImageLoadUtils.loadAvatar(getContext().getApplicationContext(), avatar, avatarView, true);
ImageLoadUtils.loadAvatar(getContext().getApplicationContext(), avatar, avatarView);
TextView nickView = window.findViewById(R.id.tv_nick);
nickView.setText(nick);

View File

@@ -3,6 +3,7 @@ package com.chwl.app.earn.adapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.chwl.app.R
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.core.earn.bean.HallMemberGoldFlowInfo
import com.chwl.library.utils.FormatUtils
@@ -19,7 +20,7 @@ class GoldDetailAdapter :
R.id.tv_have_change,
mContext.getString(R.string.have_converted, FormatUtils.formatToShortDown(item.exchangeGolds))
)
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_user_avatar), item.avatar)
ImageLoadUtils.loadAvatar(item.avatar,helper.getView(R.id.iv_user_avatar))
}
}

View File

@@ -3,6 +3,7 @@ package com.chwl.app.earn.adapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.chwl.app.R
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.core.earn.bean.HallMemberGoldFlowInfo
import com.chwl.library.utils.FormatUtils
@@ -20,7 +21,7 @@ class GoldRecordAdapter :
mContext.getString(R.string.have_converted, FormatUtils.formatToShortDown(item.exchangeGolds))
)
.setText(R.id.tv_pos, (helper.layoutPosition + 1).toString())
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_user_avatar), item.avatar)
ImageLoadUtils.loadAvatar(item.avatar,helper.getView(R.id.iv_user_avatar))
}
}

View File

@@ -3,6 +3,7 @@ package com.chwl.app.earn.adapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.chwl.app.R
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.core.earn.bean.HallVo
@@ -17,7 +18,7 @@ class GoldRoomAdapter : BaseQuickAdapter<HallVo, BaseViewHolder>(R.layout.item_g
override fun convert(helper: BaseViewHolder, item: HallVo) {
helper.setText(R.id.tv_content, item.hallName)
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_hall_avatar), item.ownerAvatar)
ImageLoadUtils.loadAvatar(item.ownerAvatar,helper.getView(R.id.iv_hall_avatar))
helper.itemView.isSelected = helper.layoutPosition==selPosition

View File

@@ -6,6 +6,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.opensource.svgaplayer.SVGAImageView
import com.chwl.app.R
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.app.ui.utils.loadFromAssets
import com.chwl.core.home.bean.HomeRoomInfo
@@ -19,7 +20,7 @@ class HomeChatAdapter :
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
val svgaLiving = helper.getView<SVGAImageView>(R.id.svga_living)
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.avatar)
ImageLoadUtils.loadAvatar( item.avatar,helper.getView(R.id.iv_avatar))
helper.setText(R.id.tv_name, item.title.subAndReplaceDot(6))
if (item.mgId == 0L) {
helper.getView<Group>(R.id.group_game).visibility = View.INVISIBLE

View File

@@ -65,7 +65,7 @@ public class HomeRoomFragmentAdapter extends BaseMultiItemQuickAdapter<HomeTabMa
ImageView ivCover = helper.getView(R.id.iv_cover);
if (!TextUtils.isEmpty(item.getAvatar())) {
ImageLoadUtils.loadAvatarBig(item.getAvatar(), ivCover, R.drawable.default_cover);
ImageLoadUtils.loadAvatarBig(item.getAvatar(), ivCover);
} else {
GlideApp.with(mContext)
.load(R.drawable.default_cover)

View File

@@ -41,14 +41,14 @@ public class HomeTopAdapter extends BaseBannerAdapter<HomeTabMapInfo> {
ImageView mIvTabLabel = helper.findViewById(R.id.iv_tab_label);
if (!TextUtils.isEmpty(item.getTagPict()) && !item.isCrossPking() && TextUtils.isEmpty(item.getIconContent())) {
mIvTabLabel.setVisibility(View.VISIBLE);
ImageLoadUtils.loadAvatarBig(item.getTagPict(), mIvTabLabel);
ImageLoadUtils.loadAvatarBig(item.getTagPict(),mIvTabLabel);
} else {
mIvTabLabel.setVisibility(View.GONE);
}
ImageView ivCover = helper.findViewById(R.id.iv_cover);
if (!TextUtils.isEmpty(item.getAvatar())) {
ImageLoadUtils.loadAvatarBig(item.getAvatar(), ivCover, R.drawable.default_cover);
ImageLoadUtils.loadAvatarBig(item.getAvatar(), ivCover);
} else {
GlideApp.with(BaseApp.getContext())
.load(R.drawable.default_cover)

View File

@@ -141,6 +141,7 @@ public class OpenRoomHelper {
RoomSettingModel roomSettingModel = new RoomSettingModel();
return roomSettingModel.updateRoomInfo(
roomInfo.getTitle(),
roomInfo.getAvatar(),
roomInfo.getRoomDesc(),
roomInfo.getIntroduction(),
roomInfo.roomPwd,
@@ -160,6 +161,7 @@ public class OpenRoomHelper {
RoomSettingModel roomSettingModel = new RoomSettingModel();
roomSettingModel.updateRoomInfo(
roomInfo.getTitle(),
roomInfo.getAvatar(),
roomInfo.getRoomDesc(),
roomInfo.getIntroduction(),
roomInfo.roomPwd,

View File

@@ -42,7 +42,7 @@ public class LuckyMoneyMemberListAdapter extends BaseAdapter<LuckyMoneyUserInfo>
TextView amount = helper.getView(R.id.tv_member_amount);
ImageLoadUtils.loadAvatar(context, item.getAvatar(), ivAvatar, true);
ImageLoadUtils.loadAvatar(context, item.getAvatar(), ivAvatar);
tvName.setText(item.getNick());
timestamp.setText(simpleDateFormat.format(new Date(item.getCreateTime())));
helper.setVisible(R.id.tv_luckiest, item.isLuckiest());

View File

@@ -119,7 +119,7 @@ public class LuckyMoneyDialog extends AppCompatDialog implements View.OnClickLis
private void setupAvatarAndNick(LuckyMoneyInfo luckyMoneyInfo) {
ImageView userAvatar = findViewById(R.id.iv_avatar);
ImageLoadUtils.loadAvatar(getContext(), luckyMoneyInfo.getAvatar(), userAvatar, true);
ImageLoadUtils.loadAvatar(getContext(), luckyMoneyInfo.getAvatar(), userAvatar);
TextView userName = findViewById(R.id.tv_user_name);
userName.setText(luckyMoneyInfo.getNick());
}

View File

@@ -90,7 +90,7 @@ public class LuckyMoneyDetailActivity extends BaseBindingActivity<ActivityLuckyM
mBinding.tvLuckyMoneyAmount.setText(String.valueOf(myself.getAmount()));
mBinding.tvCoinName.setText(myFamilyInfo.getMoneyName());
}
ImageLoadUtils.loadAvatar(this, cacheLoginUserInfo.getAvatar(), mBinding.ivAvatar, true);
ImageLoadUtils.loadAvatar(this, cacheLoginUserInfo.getAvatar(), mBinding.ivAvatar);
mBinding.tvName.setText(cacheLoginUserInfo.getNick());
}

View File

@@ -107,7 +107,7 @@ public class MonsterHuntingRewardDialog extends DialogFragment implements View.O
// 幸运儿
MonsterHunter luckDog = monsterHuntingResult.getLuckyDog();
if (luckDog != null) {
ImageLoadUtils.loadAvatar(getContext(), luckDog.getAvatar(), avatarView, true);
ImageLoadUtils.loadAvatar(getContext(), luckDog.getAvatar(), avatarView);
usernameView.setText(luckDog.getNick());
userIdView.setText(String.format(Locale.getDefault(), getContext().getString(R.string.text_user_id),
luckDog.getErbanNo()));

View File

@@ -16,6 +16,7 @@ import com.chwl.app.relation.cp.fragment.CpTaskFragment
import com.chwl.app.relation.cp.viewmodel.CpViewModel
import com.chwl.app.relation.cp.widget.CpTaskDescriptionView
import com.chwl.app.relation.extention.visibility
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.app.ui.widget.OnPageSelectedListener
import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper
@@ -51,8 +52,8 @@ class CpTaskActivity : BaseBindingActivity<ActivityCpTaskBinding>(),
}
private fun setTaskProgress(entity: CpTaskEntity) {
ImageLoadUtilsV2.loadAvatar(mBinding.ivAccept, entity.cpAvatar)
ImageLoadUtilsV2.loadAvatar(mBinding.ivInvite, entity.avatar)
ImageLoadUtils.loadAvatar( entity.cpAvatar,mBinding.ivAccept)
ImageLoadUtils.loadAvatar(entity.avatar,mBinding.ivInvite)
mBinding.tvLevel.text =
String.format(resources.getString(R.string.cp_level, entity.cpLevel.toString()))
val progress = ((entity.cpSecretVal.toFloat() / entity.cpNextLevelSecretVal) * 100).toInt()

View File

@@ -6,6 +6,7 @@ import android.widget.TextView
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.chwl.app.R
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.core.relation.cp.bean.UserCpListEntity
@@ -19,7 +20,7 @@ class InviteRecordAdapter(private val context: Context) :
item?.inviteUserAvatar?.let {
val imageView = helper
.getView<ImageView>(R.id.iv_avatar)
ImageLoadUtilsV2.loadAvatar(imageView, it)
ImageLoadUtils.loadAvatar(it,imageView)
}
item?.inviteUserNick.let {
val tvName = helper.getView<TextView>(R.id.tv_name)

View File

@@ -10,6 +10,7 @@ import com.chwl.app.databinding.DialogCpGlobalBinding
import com.chwl.app.relation.cp.CpDataManager
import com.chwl.app.relation.cp.activity.CpInviteRecordActivity
import com.chwl.app.base.BaseBindingDialog
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.utils.ImageLoadUtilsV2
import com.chwl.core.relation.cp.bean.CpInviteInfo
import com.chwl.library.annatation.ActLayoutRes
@@ -35,7 +36,7 @@ class CpGlobalDialog(context: Context) :
binding.tvVisit.setOnClickListener(this)
setCancelable(false)
entity?.let {
ImageLoadUtilsV2.loadAvatar(binding.ivAvatar, entity?.inviteAvatar)
ImageLoadUtils.loadAvatar(entity?.inviteAvatar, binding.ivAvatar )
binding.tvNick.text = it.inviteNick
}
}

View File

@@ -41,7 +41,7 @@ public class TeamListAdapter extends BaseAdapter<TeamInfo> {
TextView teamName = helper.getView(R.id.tv_team_name);
helper.addOnClickListener(R.id.ll_container);
ImageLoadUtils.loadAvatar(context, item.getIcon(), avatar, true);
ImageLoadUtils.loadAvatar(context, item.getIcon(), avatar);
teamName.setText(item.getName());
}

View File

@@ -105,7 +105,7 @@ public class NimTeamMessageActivity extends BaseMessageActivity {
});
if (FamilyModel.Instance().getMyFamily() != null) {
ImageLoadUtils.loadAvatar(getApplicationContext(), FamilyModel.Instance().getMyFamily().getFamilyIcon(),
teamAvatar, true);
teamAvatar);
}
}

View File

@@ -81,7 +81,7 @@ public class AddBlackListActivity extends BaseMvpActivity<IAddBlackListView, Add
private void initTarget() {
UserModel.get().getUserInfo(Long.valueOf(account)).subscribe(userInfo -> {
// 头像
ImageLoadUtils.loadAvatar(AddBlackListActivity.this, userInfo.getAvatar(), ivAvatar, true);
ImageLoadUtils.loadAvatar(AddBlackListActivity.this, userInfo.getAvatar(), ivAvatar);
// 名字
tvName.setText(RegexUtil.getPrintableString(userInfo.getNick()));
});

View File

@@ -108,7 +108,7 @@ public class BlackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
void bind(NimUserInfo nimUserInfo) {
this.userInfo = nimUserInfo;
// 加载头像
ImageLoadUtils.loadAvatar(itemView.getContext(), nimUserInfo.getAvatar(), ivAvatar, true);
ImageLoadUtils.loadAvatar(itemView.getContext(), nimUserInfo.getAvatar(), ivAvatar);
// 名字
tvName.setText(nimUserInfo.getName());
// 清除view的translationX

View File

@@ -86,7 +86,7 @@ public abstract class RecentViewHolder extends RecyclerViewHolder<BaseQuickAdapt
}
protected void loadPortrait(RecentContact recent) {
// 设置头像
// 设置头像 todo do im头像处
if (recent.getSessionType() == SessionTypeEnum.P2P) {
imgHead.loadBuddyAvatar(recent.getContactId());
} else if (recent.getSessionType() == SessionTypeEnum.Team) {

View File

@@ -1,5 +1,7 @@
package com.chwl.app.ui.search;
import static com.chwl.app.ui.search.SearchDetailFragment.TYPE_SEARCH_ROOM;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
@@ -22,6 +24,7 @@ import com.chwl.app.utils.RegexUtil;
import com.chwl.core.room.bean.SearchRoomInfo;
import com.chwl.core.user.UserModel;
import com.chwl.library.utils.ResUtil;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
/**
* @author chenran
@@ -111,7 +114,12 @@ public class SearchAdapter extends BaseQuickAdapter<SearchRoomInfo, SearchAdapte
holder.mNobleAvatarView.setSize(40, 58, 15);
holder.mNobleAvatarView.setData(item.getAvatar(), item.nobleUsers);
if (searchType == TYPE_SEARCH_ROOM) {
//房间封面 要 方形
ImageLoadUtils.loadRectImage(context, item.getAvatar(), holder.mNobleAvatarView.getIvAvatar(), R.drawable.default_avatar, ScreenUtil.dip2px(8));
} else {
holder.mNobleAvatarView.setData(item.getAvatar(), item.nobleUsers);
}
holder.erbanNo.setText(context.getString(R.string.me_user_id, item.getErbanNo()));
holder.wealthLevelView.setVisibility(View.GONE);

View File

@@ -299,7 +299,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
private void initData(UserInfo userInfo) {
LogUtils.d(" userinfo initData ");
if (null != userInfo) {
ImageLoadUtilsV2.loadImage(mBinding.ivUserHead, userInfo.getAvatar());
ImageLoadUtils.loadAvatar(userInfo.getAvatar(),mBinding.ivUserHead);
//设置昵称
String nick = RegexUtil.getPrintableString(userInfo.getNick());
@@ -366,7 +366,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.ivHeadWear.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.ivHeadWearCp.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
mBinding.ivHeadWearCpFlag.setImageResource(CpUtils.INSTANCE.getFlag(cpInfo.cpLevel));
ImageLoadUtils.loadImage(mBinding.ivUserHeadCp, cpInfo.cpAvatar);
ImageLoadUtils.loadAvatar( cpInfo.cpAvatar,mBinding.ivUserHeadCp);
mBinding.ivUserHeadCp.setOnClickListener(v -> {
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
});
@@ -397,8 +397,8 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.cpCardLevel.setVisibility(View.VISIBLE);
mBinding.cpCardLevelEmpty.setVisibility(View.INVISIBLE);
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatar, userInfo.getAvatar());
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatarCp, cpInfo.cpAvatar);
ImageLoadUtils.loadAvatar(userInfo.getAvatar(),mBinding.cpCardUserAvatar);
ImageLoadUtils.loadAvatar(cpInfo.cpAvatar,mBinding.cpCardUserAvatarCp);
mBinding.cpCardUserHeadCp.setVisibility(View.VISIBLE);
mBinding.cpCardUserAvatarCp.setOnClickListener(v -> {
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
@@ -410,7 +410,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.cpCardUserAvatarCp.setImageResource(R.drawable.ic_user_info_cp_def_avatar);
mBinding.cpCardUserAvatarCp.setOnClickListener(null);
mBinding.cpCardUserHeadCp.setVisibility(View.INVISIBLE);
ImageLoadUtilsV2.loadImage(mBinding.cpCardUserAvatar, userInfo.getAvatar());
ImageLoadUtils.loadAvatar(userInfo.getAvatar(), mBinding.cpCardUserAvatar);
}
//cp 动画

View File

@@ -47,6 +47,7 @@ import com.chwl.core.user.bean.UserPhoto
import com.chwl.core.utils.CoreLogger
import com.chwl.core.utils.DialogUtil
import com.chwl.core.utils.LogUtils
import com.chwl.core.utils.MyUriUtils
import com.chwl.library.common.file.FileHelper
import com.chwl.library.common.photo.PhotoProvider
import com.chwl.library.common.util.PhotoCompressCallback
@@ -83,6 +84,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
private var mJob: Job? = null
private var isAvatar = false
private var isGif = false
companion object {
private const val TAG = "UserInfoModifyActivity"
@@ -112,7 +114,18 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
if (ActivityResultContracts.PickVisualMedia.isPhotoPickerAvailable(this)) {
pickMedia = registerForActivityResult(ActivityResultContracts.PickVisualMedia()) { uri ->
crop(uri, 1, mUri)
if (uri != null) {
mUri?.let {
if (isGif) {
val isCopy = MyUriUtils.copyFileToUrl(this,uri, it)
if (isCopy) {
onActivityResult(UCrop.REQUEST_CROP,RESULT_OK,null)
}
} else {
crop(uri, 1, it)
}
}
}
}
}
}
@@ -127,11 +140,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
private fun initData(userInfo: UserInfo?) {
if (null != userInfo) {
ImageLoadUtils.loadAvatar(
this,
if (!TextUtils.isEmpty(userInfo.newAvatar)) userInfo.newAvatar else userInfo.avatar,
binding.civAvatar
)
ImageLoadUtils.loadAvatar(if (!TextUtils.isEmpty(userInfo.newAvatar)) userInfo.newAvatar else userInfo.avatar, binding.civAvatar)
binding.tvAvatarAuditing.visibility = if (userInfo.isReview) View.VISIBLE else View.GONE
binding.ivAvatarAuditing.visibility = if (userInfo.isReview) View.VISIBLE else View.GONE
val birth = TimeUtil.getChinaDateTimeString(userInfo.birth, "yyyy-MM-dd")
@@ -442,6 +451,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
}
private fun checkStoragePermission() {
val fileWith = if (isGif)".gif" else ".jpg"
if (Build.VERSION.SDK_INT >= 33){
DialogUtil.getDialog(this,object : EasyAlertDialogHelper.OnDialogActionListener {
@@ -450,8 +460,9 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
override fun doOkAction() {
SPUtils.putBoolean(ConstantsLib.Key.Permissions_Img,true)
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}.jpg")
pickMedia?.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}$fileWith")
val type = if (isGif) ActivityResultContracts.PickVisualMedia.SingleMimeType("image/gif") else ActivityResultContracts.PickVisualMedia.ImageOnly
pickMedia?.launch(PickVisualMediaRequest(type))
}
})
@@ -461,8 +472,8 @@ class UserInfoModifyActivity : BaseViewBindingActivity<ActivityUserInfoModifyBin
EasyPermissions.requestPermissions(this, getString(R.string.permission_storage_rationale), PERMISSION_CODE_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE
)
} else {
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}.jpg")
PhotoProvider.photoProvider(this, resultCode = REQUEST_CODE_OPEN_PHOTO_PROVIDER)
mUri = Uri.parse("file://${FileHelper.getRootCacheDir()?.path}/${getNowTime()}$fileWith")
PhotoProvider.photoProvider(this, resultCode = REQUEST_CODE_OPEN_PHOTO_PROVIDER, canChooseGif = isGif)
}
}

View File

@@ -27,8 +27,8 @@ class UserCpListAdapter : BaseAdapter<UserCPListBean> {
mViewBinding.cpLevel.setImageResource(getLevelImg(data.cpLevel))
ImageLoadUtils.loadImage(mViewBinding.userAvatar,data.avatar)
ImageLoadUtils.loadImage(mViewBinding.userAvatarCp,data.cpAvatar)
ImageLoadUtils.loadAvatar(data.avatar,mViewBinding.userAvatar)
ImageLoadUtils.loadAvatar(data.cpAvatar, mViewBinding.userAvatarCp)
val max = (data.endExp - data.startExp)
val current = (data.currentExp.toFloat() / max.toFloat()) * 100f

View File

@@ -79,15 +79,8 @@ fun ImageView.load(
}
fun ImageView.loadAvatar(url: String?) {
if (context.isDestroyed()) return
GlideApp.with(context).load(url)
.dontAnimate()
.placeholder(R.drawable.default_avatar)
.error(R.drawable.default_avatar)
.transform(CenterCrop(), CircleCrop())
.into(this)
ImageLoadUtils.loadAvatar(url,this)
}

View File

@@ -21,6 +21,7 @@ import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.load.resource.gif.GifDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.target.SimpleTarget;
@@ -47,86 +48,35 @@ public class ImageLoadUtils {
private static final String PIC_PROCESSING = "?imageslim";
private static final String ACCESS_URL = "img.erbanyy.com";
public static void laodUsrInfoAvatar(Context context, String avatar, ImageView imageView) {
loadCircleImage(context, avatar, imageView, R.drawable.default_avatar);
public static void loadAvatarBig(String avatar, ImageView imageView) {
loadAvatar(imageView.getContext(), avatar, imageView, R.drawable.default_avatar);
}
public static void loadAvatar(Context context, String avatar, ImageView imageView, boolean isCircle) {
if (StringUtil.isEmpty(avatar)) {
loadDefaultImage(context, imageView, R.drawable.default_avatar);
return;
}
StringBuilder sb = new StringBuilder(avatar);
if (avatar.contains(ACCESS_URL)) {
if (!avatar.contains("?")) {
sb.append(PIC_PROCESSING);
}
sb.append("|imageView2/1/w/100/h/100");
}
if (isCircle) {
loadCircleImage(context, sb.toString(), imageView, R.drawable.default_avatar);
} else {
loadImage(context, sb.toString(), imageView, R.drawable.default_avatar);
}
}
public static void loadBigAvatar(Context context, String avatar, ImageView imageView, boolean isCircle) {
if (StringUtil.isEmpty(avatar)) {
return;
}
StringBuffer sb = new StringBuffer(avatar);
if (avatar.contains(ACCESS_URL)) {
if (!avatar.contains("?")) {
sb.append(PIC_PROCESSING);
}
sb.append("|imageView2/1/w/150/h/150");
}
if (isCircle) {
loadCircleImage(context, sb.toString(), imageView, R.drawable.default_avatar);
} else {
loadImage(context, sb.toString(), imageView, R.drawable.default_avatar);
}
}
public static void loadAvatar(Context context, String avatar, ImageView imageView) {
loadAvatar(context, avatar, imageView, false);
}
public static void loadAvatar(String avatar, ImageView imageView) {
loadAvatar(avatar, imageView, R.drawable.default_avatar);
loadAvatar(imageView.getContext(), avatar, imageView, R.drawable.default_avatar);
}
public static void loadAvatar(Context context,String avatar, ImageView imageView) {
loadAvatar(context,avatar, imageView, R.drawable.default_avatar);
}
public static void loadAvatar(String avatar, ImageView imageView, int defaultRes) {
loadAvatar(avatar, imageView, defaultRes, 150);
loadAvatar(imageView.getContext(),avatar,imageView,defaultRes);
}
public static void loadAvatarBig(String avatar, ImageView imageView) {
loadAvatarBig(avatar, imageView, R.drawable.default_avatar);
}
public static void loadAvatarBig(String avatar, ImageView imageView, int defaultRes) {
loadAvatar(avatar, imageView, defaultRes, 250);
}
/**
* do by lvzebiao
* 加载头像通用方法
*/
public static void loadAvatar(String avatar, ImageView imageView, int defaultRes, int customSize) {
if (avatar == null) {
avatar = "";
public static void loadAvatar(Context context,String avatar, ImageView imageView, int defaultRes) {
if (TextUtils.isEmpty(avatar) || avatar.equals("null")) return;
if (context == null) return;
if (avatar.endsWith(".gif") || avatar.endsWith(".GIF")) {
ImageLoadUtils.loadCircleImageGif(context, avatar,imageView,defaultRes);
} else {
ImageLoadUtils.loadCircleImage(context, avatar, imageView,defaultRes);
}
StringBuilder sb = new StringBuilder(avatar);
if (avatar.contains(ACCESS_URL)) {
if (!avatar.contains("?")) {
sb.append(PIC_PROCESSING);
}
sb.append("|imageView2/1/w/").append(customSize).append("/h/").append(customSize);
}
loadImage(imageView.getContext(), sb.toString(), imageView, defaultRes);
}
public static void loadSmallRoundBackground(Context context, String url, ImageView imageView) {
if (StringUtil.isEmpty(url)) {
return;
@@ -370,6 +320,32 @@ public class ImageLoadUtils {
.into(imageView);
}
public static void loadCircleImageGif(Context context, String url, ImageView imageView, int defaultRes) {
GlideApp.with(context.getApplicationContext())
.asGif()
.load(url)
.transform(new CircleCrop())
.placeholder(defaultRes)
.error(defaultRes)
.listener(new RequestListener<GifDrawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<GifDrawable> target, boolean isFirstResource) {
imageView.setImageResource(defaultRes);
return true;
}
@Override
public boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {
if (resource != null) {
imageView.setImageDrawable(resource);
resource.start();
}
return true;
}
})
.into(imageView);
}
public static void loadBackground(Context context, String url, int defaultRes, View view) {
GlideApp.with(context)
.asDrawable()

View File

@@ -29,14 +29,6 @@ public class ImageLoadUtilsV2 {
small_avatar_size = UIUtil.dip2px(context, 50);
}
public static void loadAvatar(ImageView imageView, String url) {
loadImage(imageView, url, small_avatar_size, true, false);
}
public static void loadAvatar(ImageView imageView, String url, boolean isDontAnim) {
loadImage(imageView, url, small_avatar_size, true, isDontAnim);
}
public static void loadImage(ImageView imageView, String url, int size) {
loadImage(imageView, url, size, false, false);
}

View File

@@ -190,9 +190,9 @@ public class CommonWebViewActivity extends BaseActivity {
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setMediaPlaybackRequiresUserGesture(true);
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
webView.getSettings().setDatabaseEnabled(true); //新接入h5游戏需要的设置
webView.getSettings().setMediaPlaybackRequiresUserGesture(false); //新接入h5游戏需要的设置
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); //新接入h5游戏需要的设置
// 设置 WebView 可以在 HTTPS 通道上加载 HTTP 资源Android 4.4 后的暗坑
// 因为 Android 4.4 后默认不允许在 HTTPS 通道上加载 HTTP 资源
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

View File

@@ -95,7 +95,7 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
holder.ivAll.setVisibility(View.GONE);
final MicMemberInfo micMemberInfo = micMemberInfos.get(position - 1);
holder.allMicState.setVisibility(View.GONE);
ImageLoadUtils.loadAvatar(holder.avatar.getContext(), micMemberInfo.getAvatar(), holder.avatar);
ImageLoadUtils.loadCircleImage(context, micMemberInfo.getAvatar(), holder.avatar,R.drawable.default_avatar);
// 强制给一个透明的边框,避免因为复用导致的出现边框
holder.avatar.setBorderColor(context.getResources().getColor(R.color.transparent));
@@ -163,7 +163,8 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
} else {
selectType = SELECT_TYPE_WHOLE_MIC;
for (MicMemberInfo micMemberInfo : micMemberInfos) {
micMemberInfo.setSelected(!AvRoomDataManager.get().isOwner(micMemberInfo.getAccount()));
// micMemberInfo.setSelected(!AvRoomDataManager.get().isOwner(micMemberInfo.getAccount()));
micMemberInfo.setSelected(true);
}
}
}
@@ -175,7 +176,8 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
private boolean isSelectAll() {
for (MicMemberInfo micMemberInfo : micMemberInfos) {
if (!micMemberInfo.isSelected() && !AvRoomDataManager.get().isOwner(micMemberInfo.getAccount())) {
// if (!micMemberInfo.isSelected() && !AvRoomDataManager.get().isOwner(micMemberInfo.getAccount())) {
if (!micMemberInfo.isSelected()) {
return false;
}
}

View File

@@ -31,7 +31,6 @@ import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.EditText;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.TextView;
@@ -48,15 +47,17 @@ import com.chwl.app.ui.adapter.StarWeekAdapter;
import com.chwl.app.ui.webview.DialogWebViewActivity;
import com.chwl.app.vip.VipCenterActivity;
import com.chwl.core.UriProvider;
import com.chwl.core.gift.bean.GiftMultiReceiverInfo;
import com.chwl.core.gift.bean.LuckyBagNoticeInfo;
import com.chwl.core.gift.bean.SimpleUserInfo;
import com.chwl.core.gift.bean.TagsInfo;
import com.chwl.core.home.bean.TabInfo;
import com.chwl.core.gift.event.GiftComboEvent;
import com.chwl.core.room.anotherroompk.ShowUserInfoDialogEvent;
import com.chwl.core.utils.extension.StringExtensionKt;
import com.example.lib_utils.UiUtils;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.netease.nim.uikit.business.contact.core.model.AbsContactDataList;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
import com.chwl.app.BR;
@@ -103,7 +104,6 @@ import com.chwl.core.user.bean.UserInfo;
import com.chwl.core.utils.net.RxHelper;
import com.chwl.library.bindinglist.IItem;
import com.chwl.library.bindinglist.MultiTypeAdapter;
import com.chwl.library.utils.FormatUtils;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
@@ -308,7 +308,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
TextUtils.isEmpty(mChatRoomMember.getNick()) ||
TextUtils.isEmpty(mChatRoomMember.getAvatar())) continue;
// 排除自己
if (AvRoomDataManager.get().isOwner(mChatRoomMember.getAccount())) continue;
// if (AvRoomDataManager.get().isOwner(mChatRoomMember.getAccount())) continue;
// 设置默认人员
if (String.valueOf(account).equals(mChatRoomMember.getAccount())) {
micMemberInfo.setSelected(true);
@@ -1368,6 +1368,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
if (sendGiftButton == null) return;
sendGiftButton.setText(ResUtil.getString(R.string.ui_widget_giftdialog_030));
sendGiftButton.setEnabled(true);
onSendGiftFile();
}
});
etSendMessage.setText("");
@@ -1404,6 +1405,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
if (sendGiftButton == null) return;
sendGiftButton.setText(ResUtil.getString(R.string.ui_widget_giftdialog_031));
sendGiftButton.setEnabled(true);
onSendGiftFile();
}
});
etSendMessage.setText("");
@@ -1436,6 +1438,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
if (sendGiftButton == null) return;
sendGiftButton.setText(ResUtil.getString(R.string.ui_widget_giftdialog_034));
sendGiftButton.setEnabled(true);
onSendGiftFile();
}
});
@@ -1541,7 +1544,19 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
SingleToastUtil.showToast(ResUtil.getString(R.string.ui_widget_giftdialog_041) + giftInfo.getGiftName() + ResUtil.getString(R.string.ui_widget_giftdialog_042));
clearDrawGift();
dismiss();
}else if (giftInfo.getGiftType() == GiftType.GIFT_TYPE_NORMAL || giftInfo.getGiftType() == GiftType.GIFT_TYPE_SUPER_LUCKY || giftInfo.getGiftType() == GiftType.GIFT_TYPE_LUCKY_24) {
this.hide();
int num = giftNumber == -1 ? giftInfo.getCount() : giftNumber;
GiftComboEvent giftComboEvent = new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_END);
giftComboEvent.setGiftNumber(num);
EventBus.getDefault().post(giftComboEvent);
}
}
protected void onSendGiftFile() {
EventBus.getDefault().post(new GiftComboEvent(GiftComboEvent.Action.ACT_GIFT_CANCEL));
}
private void reloadData(final boolean needShowLoading) {
@@ -1805,4 +1820,20 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
sendGiftButton.performClick();
}
//礼物连击相关 消息
@Subscribe(threadMode = ThreadMode.MAIN)
public void onGiftComboEvent(GiftComboEvent event) {
switch (event.getAction()) {
case GiftComboEvent.Action.ACT_GIFT_START:
sendGift();
break;
case GiftComboEvent.Action.ACT_GIFT_SHOW:
show();
break;
case GiftComboEvent.Action.ACT_GIFT_DIALOG_DISMISS:
dismiss();
break;
}
}
}

View File

@@ -75,18 +75,18 @@ public class NobleAvatarView extends RelativeLayout {
public void setData(UserInfo userInfo) {
if (userInfo == null) return;
ImageLoadUtils.loadAvatar(mContext, userInfo.getAvatar(), mIvAvatar, true);
ImageLoadUtils.loadAvatar(mContext, userInfo.getAvatar(), mIvAvatar);
setNobleData(userInfo.getNobleInfo());
}
public void setData(String avatar, NobleInfo nobleInfo) {
ImageLoadUtils.loadAvatar(mContext, avatar, mIvAvatar, true);
ImageLoadUtils.loadAvatar(mContext, avatar, mIvAvatar);
setNobleData(nobleInfo);
}
public void setData(ChatRoomMember chatRoomMember) {
if (chatRoomMember == null) return;
ImageLoadUtils.loadAvatar(mContext, chatRoomMember.getAvatar(), mIvAvatar, true);
ImageLoadUtils.loadAvatar(mContext, chatRoomMember.getAvatar(), mIvAvatar);
NobleInfo nobleInfo = new NobleInfo();
String resourceHeadWear = (String) NobleUtil.getResource(NobleResourceType.KEY_HEAD_WEAR, chatRoomMember);
nobleInfo.setHeadWear(resourceHeadWear);
@@ -111,4 +111,8 @@ public class NobleAvatarView extends RelativeLayout {
mIvUserLevel.setVisibility(INVISIBLE);
}
}
public ImageView getIvAvatar() {
return mIvAvatar;
}
}

View File

@@ -543,7 +543,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
mIvGoodNumber.setVisibility(userInfo.isHasPrettyErbanNo() ? View.VISIBLE : View.GONE);
// 这个方法能让图片不失真
ImageLoadUtils.laodUsrInfoAvatar(context, userInfo.getAvatar(), avatar);
ImageLoadUtils.loadAvatar(context, userInfo.getAvatar(), avatar);
nick.setText(RegexUtil.getPrintableString(userInfo.getNick()));
erbanId.setText(getString(R.string.ui_widget_userinfodialog_06) + userInfo.getErbanNo());
erbanId.setOnLongClickListener(view -> {

View File

@@ -149,6 +149,41 @@
android:layout_height="@dimen/dp_10"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/setRoomAvatar"
android:layout_width="match_parent"
android:layout_height="44dp"
android:onClick="@{click}"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/dp_15"
android:text="@string/roomAvatar"
android:textColor="@color/text_title_color"
android:textSize="@dimen/sp_15" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/dp_16"
android:drawableEnd="@drawable/arrow_right"
android:drawablePadding="@dimen/dp_10"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxWidth="250dp"
android:maxLines="1"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_14"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/layout_single_room_sort"
android:layout_width="match_parent"

View File

@@ -472,7 +472,7 @@
app:layout_constraintTop_toBottomOf="@+id/cpCardHeart" />
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/cpCardUserAvatar"
android:layout_width="56dp"
android:layout_height="56dp"
@@ -492,7 +492,7 @@
app:layout_constraintTop_toTopOf="@id/cpCardHeart" />
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/cpCardUserAvatarCp"
android:layout_width="56dp"
android:layout_height="56dp"
@@ -518,11 +518,10 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- avatar -->
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/ivUserHead"
android:layout_width="@dimen/dp_82"
android:layout_height="@dimen/dp_82"
android:scaleType="centerCrop"
android:src="@drawable/default_avatar"
tools:src="@color/white"
app:layout_constraintBottom_toBottomOf="@+id/ivHeadWear"
@@ -540,7 +539,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/bannerView" />
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/ivUserHeadCp"
android:layout_width="@dimen/dp_82"
android:layout_height="@dimen/dp_82"
@@ -549,10 +548,7 @@
app:layout_constraintBottom_toBottomOf="@+id/ivHeadWearCp"
app:layout_constraintEnd_toEndOf="@+id/ivHeadWearCp"
app:layout_constraintStart_toStartOf="@+id/ivHeadWearCp"
app:layout_constraintTop_toTopOf="@id/ivHeadWearCp"
app:shapeAppearance="@style/shape_circle"
app:strokeColor="@color/white"
app:strokeWidth="@dimen/dp_1" />
app:layout_constraintTop_toTopOf="@id/ivHeadWearCp" />
<com.chwl.library.widget.SVGAView
android:id="@+id/ivHeadWearCp"

View File

@@ -39,7 +39,8 @@
android:layout_alignTop="@id/micro_view"
android:background="@drawable/bg_room_pk_order"
android:orientation="vertical"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"

View File

@@ -47,7 +47,7 @@
app:layout_constraintBottom_toBottomOf="@id/ll_icon"
app:layout_constraintTop_toTopOf="@id/tv_user_name" />
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/iv_user_head"
avatarUrl="@{CoreTextUtils.isEmptyText(userInfo.newAvatar)?userInfo.avatar:userInfo.newAvatar}"
android:layout_width="@dimen/dp_64"

View File

@@ -12,7 +12,7 @@
android:paddingBottom="8dp">
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/iv_avatar"
android:layout_width="40dp"
android:layout_height="40dp"

View File

@@ -31,7 +31,7 @@
android:layout_centerVertical="true"
tools:src="@drawable/ic_rank_1"/>
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/iv_room_rank_avatar"
android:layout_width="48dp"
android:layout_height="48dp"

View File

@@ -52,7 +52,7 @@
app:layout_constraintStart_toStartOf="@+id/cp_heart" />
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/userAvatar"
android:layout_width="56dp"
android:layout_height="56dp"
@@ -72,7 +72,7 @@
app:layout_constraintTop_toTopOf="@id/cp_heart" />
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/userAvatarCp"
android:layout_width="56dp"
android:layout_height="56dp"

View File

@@ -22,7 +22,7 @@
android:layout_height="@dimen/dp_75"
android:layout_gravity="center" />
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/avatar"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50"

View File

@@ -37,16 +37,14 @@
android:id="@+id/img_head"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
tools:src="@drawable/default_avatar" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/noble_head_wear"
android:layout_width="65.5dp"
android:layout_height="65.5dp"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
tools:src="@mipmap/ic_user_avatar_level_king" />
</RelativeLayout>

View File

@@ -17,16 +17,14 @@
android:id="@+id/img_head"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
tools:src="@drawable/default_avatar" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/noble_head_wear"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
tools:src="@mipmap/ic_user_avatar_level_king" />
<FrameLayout

View File

@@ -5384,6 +5384,9 @@ You cannot join again within 24 hours after leaving</string>
<string name="roomMicSetClose">You turned off the music and the mic.</string>
<string name="roomAvatar">roomAvatar</string>

View File

@@ -11,6 +11,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
import com.chwl.app.utils.RegexUtil;
import com.chwl.app.utils.TimeUiUtils;
@@ -32,7 +33,7 @@ public class CommentAdapter extends BaseQuickAdapter<Comment, BaseViewHolder> {
@Override
protected void convert(BaseViewHolder helper, Comment item) {
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.getAvatar());
ImageLoadUtils.loadAvatar( item.getAvatar(),helper.getView(R.id.iv_avatar));
TextView tvNick = helper.getView(R.id.tv_nick);
tvNick.setText(RegexUtil.getPrintableString(item.getNick()));
VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.getUserVipInfoVO());

View File

@@ -8,6 +8,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
import com.chwl.app.utils.RegexUtil;
import com.chwl.app.utils.SpannableBuilder;
@@ -30,7 +31,7 @@ public class CommentReplyAdapter extends BaseQuickAdapter<Reply, BaseViewHolder>
@Override
protected void convert(BaseViewHolder helper, Reply item) {
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.getAvatar(), true);
ImageLoadUtils.loadAvatar(item.getAvatar(),helper.getView(R.id.iv_avatar));
TextView tvNick = helper.getView(R.id.tv_nick);
tvNick.setText(RegexUtil.getPrintableString(item.getNick()));
VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.getUserVipInfoVO());

View File

@@ -23,6 +23,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.chwl.app.photo.BigPhotoActivity;
import com.chwl.app.photo.PagerOption;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.utils.AvatarHelper;
import com.chwl.library.widget.SVGAView;
import com.chwl.core.XConstants;
@@ -654,7 +655,7 @@ public class DynamicDetailActivity extends BaseViewBindingActivity<ActivityDynam
if (bean == null) {
return;
}
ImageLoadUtilsV2.loadAvatar(ivAvatar, bean.getAvatar());
ImageLoadUtils.loadAvatar(bean.getAvatar(),ivAvatar);
widgetNickDetail.setData(bean);
//更多

View File

@@ -7,6 +7,7 @@ import android.widget.TextView;
import androidx.annotation.Keep;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase;
import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
import com.chwl.app.R;
@@ -75,7 +76,7 @@ public class WorldDynamicShareViewHolder extends MsgViewHolderBase {
return;
}
DynamicImMsg dynamicImMsg = worldDynamicAttachment.getDynamicImMsg();
ImageLoadUtilsV2.loadAvatar(rivCover, dynamicImMsg.getImageUrl());
ImageLoadUtils.loadAvatar(dynamicImMsg.getImageUrl(),rivCover);
String nick = dynamicImMsg.getNick();
if (TextUtils.isEmpty(nick)) {

View File

@@ -12,6 +12,7 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.utils.AvatarHelper;
import com.chwl.library.widget.SVGAView;
import com.netease.nim.uikit.common.util.log.LogUtil;
@@ -126,7 +127,7 @@ public class SquareDynamicAdapter extends BaseQuickAdapter<WorldDynamicBean, Bas
}
//头像
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_avatar), item.getAvatar());
ImageLoadUtils.loadAvatar( item.getAvatar() ,helper.getView(R.id.iv_avatar));
DynamicNickDetailWidget widget = helper.getView(R.id.widget_nick_detail);
widget.setData(item);

View File

@@ -24,7 +24,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/iv_avatar"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_45"

View File

@@ -26,7 +26,7 @@
app:layout_constraintTop_toTopOf="parent"
tools:text="1" />
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/iv_user_avatar"
android:layout_width="@dimen/dp_46"
android:layout_height="@dimen/dp_46"
@@ -34,8 +34,7 @@
android:src="@drawable/default_avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_rank"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearance="@style/shape_circle" />
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_user_avatar_border"

View File

@@ -60,7 +60,7 @@ public class AuthSettingActivity extends BaseMvpActivity<IAuthSettingView, AuthS
mMemberInfo = (MemberInfo) getIntent().getSerializableExtra("memberInfo");
hallId = getIntent().getLongExtra("hallId", 0);
if (mMemberInfo != null) {
ImageLoadUtils.loadAvatar(this, mMemberInfo.getAvatar(), mAvatar, true);
ImageLoadUtils.loadAvatar(this, mMemberInfo.getAvatar(), mAvatar);
tvName.setText(mMemberInfo.getNick());
getMvpPresenter().getHallManagerAuths(mMemberInfo.getUid());
} else

View File

@@ -234,10 +234,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
binding.tvHallId.setText(ResUtil.getString(R.string.hall_activity_modulehallactivity_02) + hallInfo.getOwnerErbanNo());
binding.tvTitle.setText(hallInfo.getHallName());
GlideApp.with(binding.ivHallAvatar.getContext())
.load(hallInfo.getOwnerAvatar())
.placeholder(R.drawable.default_avatar)
.into(binding.ivHallAvatar);
ImageLoadUtils.loadAvatar(hallInfo.getOwnerAvatar(),binding.ivHallAvatar);
ImageLoadUtils.loadImageWithBlur(context, hallInfo.getOwnerAvatar(), binding.ivAvatarBg, 20, 1);
} else {

View File

@@ -7,6 +7,7 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chwl.app.R;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
import com.chwl.core.association.bean.ClanListInfo;
@@ -40,7 +41,7 @@ public class AssociationAdapter extends BaseQuickAdapter<ClanListInfo, BaseViewH
helper.setText(R.id.tv_guild, String.valueOf(helper.getAdapterPosition() + 1));
}
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_guild_icon), item.getAvatar());
ImageLoadUtils.loadAvatar( item.getAvatar(),helper.getView(R.id.iv_guild_icon));
helper.setText(R.id.tv_name, item.getName());
ImageView iv_guild_image = helper.getView(R.id.iv_guild_image);
ImageLoadUtilsV2.loadImage(iv_guild_image, item.getLevelIcon());

View File

@@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.chwl.app.R;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
import com.chwl.core.association.bean.HallListInfo;
@@ -42,7 +43,7 @@ public class AssociationRoomAdapter extends BaseQuickAdapter<HallListInfo, BaseV
helper.setText(R.id.tv_guild, String.valueOf(helper.getLayoutPosition() + 1));
}
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_guild_icon), item.getOwnerAvatar());
ImageLoadUtils.loadAvatar( item.getOwnerAvatar(),helper.getView(R.id.iv_guild_icon));
helper.setText(R.id.tv_name, item.getHallName());
helper.setText(R.id.tv_room_id, mContext.getString(R.string.association_room_id, String.valueOf(item.getOwnerErbanNo())));

View File

@@ -58,7 +58,7 @@ public class GroupMemberListAdapter extends BaseQuickAdapter<MemberInfo, BaseVie
holder.setText(R.id.user_name, nick);
ImageView avatar = holder.getView(R.id.iv_avatar);
ImageLoadUtils.loadAvatar(mContext, item.getAvatar(), avatar, true);
ImageLoadUtils.loadAvatar(mContext, item.getAvatar(), avatar);
if (item.getRoleType() == RoleType.OWNER) {
holder.setVisible(R.id.iv_type, true);

View File

@@ -72,7 +72,7 @@ public class IncomeDetailActivity extends BaseMvpActivity<IIncomeDetailView, Inc
mEndTimeStr = getIntent().getStringExtra(FLAG_END_TIME);
hallId = getIntent().getLongExtra(FLAG_HALL_ID, 0);
if (mIncomeInfo != null) {
ImageLoadUtils.loadAvatar(this, mIncomeInfo.getAvatar(), mAvatar, true);
ImageLoadUtils.loadAvatar(this, mIncomeInfo.getAvatar(), mAvatar);
tvName.setText(mIncomeInfo.getNick());
getMvpPresenter().incomeDetail(mIncomeInfo.getReciveUid(), hallId, mStartTimeStr, mEndTimeStr);
} else

View File

@@ -31,7 +31,7 @@ public class IncomeAdapter extends BaseQuickAdapter<IncomeInfo, BaseViewHolder>
if (item == null)
return;
ImageLoadUtils.loadAvatar(mContext, item.getAvatar(), helper.getView(R.id.iv_avatar), true);
ImageLoadUtils.loadAvatar(mContext, item.getAvatar(), helper.getView(R.id.iv_avatar));
helper.setText(R.id.tv_row_num, item.getRowNum());
String nick = item.getNick();

View File

@@ -28,7 +28,7 @@ public class LiveIncomeAdapter extends BaseQuickAdapter<LiveIncomeInfo, BaseView
.setText(R.id.tv_hall_number, String.valueOf(helper.getLayoutPosition() + 1))
.setText(R.id.tv_user_name, item.getNick())
.setText(R.id.tv_hall_name, item.getHallName());
ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_user_avatar), item.getAvatar());
ImageLoadUtils.loadAvatar(item.getAvatar(),helper.getView(R.id.iv_user_avatar) );
ImageLoadUtils.loadImage(mContext, item.getHallAvatar(), helper.getView(R.id.iv_hall_avatar));
}

View File

@@ -54,7 +54,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.chwl.app.common.widget.CircleImageView
<ImageView
android:id="@+id/iv_hall_avatar"
android:layout_width="70dp"
android:layout_height="70dp"

View File

@@ -31,7 +31,7 @@ public class RoomMsgAttentionListAdapter extends BaseQuickAdapter<AttentionInfo,
.addOnClickListener(R.id.container);
ImageView avatar = baseViewHolder.getView(R.id.noble_avatar_view);
ImageLoadUtils.loadAvatar(mContext, attentionInfo.avatar, avatar, true);
ImageLoadUtils.loadAvatar(mContext, attentionInfo.avatar, avatar);
}

View File

@@ -31,6 +31,6 @@ public class RoomMsgFansViewAdapter extends BaseQuickAdapter<FansInfo, BaseViewH
.addOnClickListener(R.id.container);
ImageView avatar = baseViewHolder.getView(R.id.noble_avatar_view);
ImageLoadUtils.loadAvatar(mContext, fansInfo.getAvatar(), avatar, true);
ImageLoadUtils.loadAvatar(mContext, fansInfo.getAvatar(), avatar);
}
}

View File

@@ -35,7 +35,7 @@ public class RoomMsgFriendListAdapter extends BaseQuickAdapter<UserInfo, BaseVie
: helper.itemView.getContext().getResources().getString(R.string.msg_no_user_desc));
ImageView avatar = helper.getView(R.id.noble_avatar_view);
ImageLoadUtils.loadAvatar(context, item.getAvatar(), avatar, true);
ImageLoadUtils.loadAvatar(context, item.getAvatar(), avatar);
helper.addOnClickListener(R.id.container);
helper.getView(R.id.container).setOnClickListener(new View.OnClickListener() {

View File

@@ -38,7 +38,8 @@ public class GiftComboEvent {
int ACT_GIFT_END = 2; //送礼完毕 显示连击按钮
int ACT_GIFT_START = 3; // 连击按钮点击 发送礼物
int ACT_GIFT_SHOW = 4; // 连击按钮消失 通知显示礼物弹窗
int ACT_GIFT_CANCEL = 5; // 连击按钮消失
int ACT_GIFT_POINT = 6; // 连击按钮消失
int ACT_GIFT_CANCEL = 5; // 连击按钮消失 送礼失败
int ACT_GIFT_POINT = 6; // 定位 送礼动画初始点
int ACT_GIFT_DIALOG_DISMISS = 7; // 关闭礼物弹窗
}
}

View File

@@ -39,6 +39,7 @@ data class RoomIcon(
fun isFirstCharge(): Boolean = code == "FIRST_CHARGE"
fun isSeizeTreasure(): Boolean = code == "SEIZE_TREASURE"
fun isFindLove(): Boolean = code == "FIND_LOVE"
fun isLeadercc(): Boolean = code == "LEADERCC"
fun isNauticalAdventure(): Boolean = code == "NAUTICAL_ADVENTURE"
fun isBaiShunGame() = code == "BAISHUN"

View File

@@ -15,7 +15,7 @@ data class GameInfo(
val ruleValue : String = "",
// 本地自己维护的,为了区分普通房
private var isStandardRoom: Boolean? = null,
var isFindLove: Boolean = false,
var code: String? = "",
) : Serializable {
fun isStandardRoom() = isStandardRoom == true
@@ -28,4 +28,10 @@ data class GameInfo(
}
fun isFirstCharge(): Boolean = code == "FIRST_CHARGE"
fun isSeizeTreasure(): Boolean = code == "SEIZE_TREASURE"
fun isFindLove(): Boolean = code == "FIND_LOVE"
fun isLeadercc(): Boolean = code == "LEADERCC"
fun isNauticalAdventure(): Boolean = code == "NAUTICAL_ADVENTURE"
fun isBaiShunGame() = code == "BAISHUN"
}

View File

@@ -84,6 +84,7 @@ public class RoomSettingModel extends BaseMvpModel {
* @param tagId 标签id
*/
public Single<RoomInfo> updateRoomInfo(String title,
String avatar,
String desc,
String introduction,
String pwd,
@@ -97,7 +98,7 @@ public class RoomSettingModel extends BaseMvpModel {
boolean isPureMode,
int type,
long gameId) {
return updateRoomInfo(title, desc, introduction, pwd, label, tagId, uid, ticket, hasEffect, audio, limitType, isPureMode, type, gameId, null);
return updateRoomInfo(title,avatar, desc, introduction, pwd, label, tagId, uid, ticket, hasEffect, audio, limitType, isPureMode, type, gameId, null);
}
/**
@@ -110,6 +111,7 @@ public class RoomSettingModel extends BaseMvpModel {
* @param tagId 标签id
*/
public Single<RoomInfo> updateRoomInfo(String title,
String avatar,
String desc,
String introduction,
String pwd,
@@ -124,7 +126,7 @@ public class RoomSettingModel extends BaseMvpModel {
int type,
long gameId,
Long singleRoomSortId) {
return mRoomSettingService.updateRoomInfo(title, desc, introduction, pwd, label, tagId, uid, hasEffect, audio, limitType, isPureMode, type, gameId, singleRoomSortId)
return mRoomSettingService.updateRoomInfo(title, avatar,desc, introduction, pwd, label, tagId, uid, hasEffect, audio, limitType, isPureMode, type, gameId, singleRoomSortId)
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction())
@@ -159,9 +161,9 @@ public class RoomSettingModel extends BaseMvpModel {
* @param label 标签名字
* @param tagId 标签id
*/
public Single<RoomInfo> updateByAdmin(long roomUid, String title, String desc, String introduction, String pwd, String label,
public Single<RoomInfo> updateByAdmin(long roomUid, String title,String avatar, String desc, String introduction, String pwd, String label,
int tagId, long uid, String ticket, boolean hasEffect, int audio, boolean isPureMode) {
return mRoomSettingService.updateByAdmin(roomUid, title, desc, introduction, pwd, label, tagId, uid, hasEffect, audio, isPureMode)
return mRoomSettingService.updateByAdmin(roomUid, title,avatar,desc, introduction, pwd, label, tagId, uid, hasEffect, audio, isPureMode)
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.onErrorResumeNext(this.<RoomInfo>getSingleCommonExceptionFunction())
@@ -288,10 +290,14 @@ public class RoomSettingModel extends BaseMvpModel {
*/
@FormUrlEncoded
@POST("room/update")
Single<ServiceResult<RoomInfo>> updateRoomInfo(@Field("title") String title, @Field("roomDesc") String desc,
Single<ServiceResult<RoomInfo>> updateRoomInfo(@Field("title") String title,
@Field("avatar") String avatar,
@Field("roomDesc") String desc,
@Field("introduction") String introduction,
@Field("roomPwd") String pwd, @Field("roomTag") String label,
@Field("tagId") int tagId, @Field("uid") long uid,
@Field("roomPwd") String pwd,
@Field("roomTag") String label,
@Field("tagId") int tagId,
@Field("uid") long uid,
@Field("hasAnimationEffect") boolean hasAnimationEffect,
@Field("audioQuality") int audioQuality,
@Field("limitType") String limitType,
@@ -319,11 +325,14 @@ public class RoomSettingModel extends BaseMvpModel {
*/
@FormUrlEncoded
@POST("room/updateByAdmin")
Single<ServiceResult<RoomInfo>> updateByAdmin(@Field("roomUid") long roomUid, @Field("title") String title,
Single<ServiceResult<RoomInfo>> updateByAdmin(@Field("roomUid") long roomUid,
@Field("title") String title,
@Field("avatar") String avatar,
@Field("roomDesc") String desc,
@Field("introduction") String introduction,
@Field("roomPwd") String pwd,
@Field("roomTag") String label, @Field("tagId") int tagId,
@Field("roomTag") String label,
@Field("tagId") int tagId,
@Field("uid") long uid,
@Field("hasAnimationEffect") boolean hasAnimationEffect,
@Field("audioQuality") int audioQuality,

View File

@@ -254,4 +254,8 @@ public interface IUserModel extends IModel {
boolean isSamePartition(long partitionId);
long getPartitionId();
boolean isArUser();
boolean isTWUser();
boolean isEnUser();
}

View File

@@ -900,6 +900,24 @@ public final class UserModel extends BaseModel implements IUserModel {
// 2是 阿拉伯
return currentUserInfo.partitionId == 2;
}
//是否是华语用户
public boolean isTWUser(){
if (currentUserInfo == null) {
return false;
}
// 4 是 华语用户
return currentUserInfo.partitionId == 4;
}
//是否是英文用户
public boolean isEnUser(){
if (currentUserInfo == null) {
return false;
}
// 1 是 英文用户
return currentUserInfo.partitionId == 1;
}
private interface Api {
/**

View File

@@ -52,6 +52,17 @@ object MyUriUtils {
}
fun copyFileToUrl(context: Context, uri: Uri,outUri:Uri) : Boolean{
val contentResolver = context.contentResolver
contentResolver?.openInputStream(uri)?.use { uriStream ->
contentResolver?.openOutputStream(outUri,"wt")?.use { outStream->
uriStream.copyTo(outStream)
return true
}
}
return false
}
fun getFileInfo(file: File) : MutableList<String>?{
var width = 0
var height = 0

View File

@@ -367,6 +367,10 @@ public class AlbumBuilder {
return filter(Type.VIDEO);
}
public AlbumBuilder onlyGif() {
return filter(Type.GIF);
}
/**
* 过滤
*

View File

@@ -1,13 +1,23 @@
package com.netease.nim.uikit.common.ui.imageview;
import android.annotation.SuppressLint;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.load.resource.gif.GifDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.Target;
import com.netease.nim.uikit.R;
import com.netease.nim.uikit.api.NimUIKit;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.robot.model.RobotAttachment;
@@ -17,7 +27,7 @@ import com.netease.nimlib.sdk.uinfo.model.UserInfo;
/**
* Created by huangjun on 2015/11/13.
*/
public class HeadImageView extends CircleImageView {
public class HeadImageView extends androidx.appcompat.widget.AppCompatImageView {
private static final String PIC_PROCESSING = "?imageslim";
private static final String ACCESS_URL = "img.erbanyy.com";
@@ -88,16 +98,43 @@ public class HeadImageView extends CircleImageView {
* 若使用网易云信云存储这里可以设置下载图片的压缩尺寸生成下载URL
* 如果图片来源是非网易云信云存储请不要使用NosThumbImageUtil
*/
final String thumbUrl = makeAvatarThumbNosUrl(url, thumbSize);
RequestOptions requestOptions = new RequestOptions()
.centerCrop()
.placeholder(defaultResId)
.error(defaultResId)
.override(thumbSize, thumbSize);
Glide.with(getContext().getApplicationContext()).asBitmap()
.load(thumbUrl)
.apply(requestOptions)
.into(this);
if (url != null && !TextUtils.isEmpty(url)){
final String thumbUrl = makeAvatarThumbNosUrl(url, thumbSize);
RequestOptions requestOptions = new RequestOptions()
.circleCrop()
.placeholder(defaultResId)
.error(defaultResId)
.override(thumbSize, thumbSize);
if (url.endsWith(".gif") || url.endsWith(".Gif")) {
GlideApp.with(getContext().getApplicationContext()).asGif()
.load(thumbUrl)
.apply(requestOptions)
.listener(new RequestListener<GifDrawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<GifDrawable> target, boolean isFirstResource) {
HeadImageView.this.setImageResource(defaultResId);
return true;
}
@Override
public boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {
if (resource != null) {
HeadImageView.this.setImageDrawable(resource);
resource.start();
}
return true;
}
})
.into(this);
} else {
Glide.with(getContext().getApplicationContext()).asBitmap()
.load(thumbUrl)
.apply(requestOptions)
.into(this);
}
}
}
/**