From 8fa331023677cfcd9c22cdb292a5e441c81ea03e Mon Sep 17 00:00:00 2001 From: eggmanQQQ <3671373519@qq.com> Date: Wed, 8 Jan 2025 14:08:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20UI=20=E8=B5=B0=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/chwl/app/application/App.java | 2 + .../chwl/app/avroom/ButtonItemFactory.java | 21 ++- .../activity/RoomManagerListActivity.java | 10 +- .../avroom/activity/RoomTypeSwitchActivity.kt | 10 ++ .../chwl/app/common/dialog/DialogCommon.kt | 22 ++-- .../app/common/util/DialogCommonUtil.java | 41 ++++++ .../chwl/app/home/fragment/HomeFragment.kt | 26 +++- .../app/other/activity/SplashActivity.java | 2 +- .../chwl/app/pay/activity/GiveGoldActivity.kt | 21 +-- .../app/ui/im/friend/FriendListAdapter.java | 21 ++- .../ui/im/recent/RecentContactsFragment.java | 60 +++++---- .../ui/im/recent/holder/RecentViewHolder.java | 7 +- .../adapter/AttentionListAdapter.java | 29 ++++- .../ui/relation/adapter/FansViewAdapter.java | 20 ++- .../ui/user/activity/UserInfoActivity.java | 3 +- .../main/java/com/chwl/app/view/EffectView.kt | 120 +++++++++--------- .../drawable-xxhdpi/icon_manager_admin.webp | Bin 0 -> 10196 bytes .../drawable-xxhdpi/icon_room_lock_micro.webp | Bin 2628 -> 2168 bytes .../main/res/layout/attention_item_new.xml | 14 +- app/src/main/res/layout/dialog_common.xml | 3 +- .../main/res/layout/fans_list_item_new.xml | 12 +- .../main/res/layout/fragment_contact_list.xml | 1 - .../main/res/layout/list_item_friend_new.xml | 12 +- .../nim_recent_contact_list_item_new.xml | 5 +- .../res/layout/room_type_switch_activity.xml | 4 +- app/src/main/res/values-ar/strings.xml | 2 + app/src/main/res/values-tr/strings.xml | 2 + app/src/main/res/values-zh-rTW/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + .../core/bean/response/ServiceResult.java | 2 + .../com/chwl/core/home/bean/BannerInfo.java | 11 +- .../chwl/core/manager/IMNetEaseManager.java | 7 +- .../java/com/chwl/library/widget/SVGAView.kt | 3 + .../com/chwl/library/common/util/OtherExt.kt | 7 + .../ui/draggablebubbles/BubbleView.java | 2 +- 35 files changed, 341 insertions(+), 165 deletions(-) create mode 100644 app/src/main/java/com/chwl/app/common/util/DialogCommonUtil.java create mode 100644 app/src/main/res/drawable-xxhdpi/icon_manager_admin.webp diff --git a/app/src/main/java/com/chwl/app/application/App.java b/app/src/main/java/com/chwl/app/application/App.java index eda6fd4ed..b22fa4be3 100644 --- a/app/src/main/java/com/chwl/app/application/App.java +++ b/app/src/main/java/com/chwl/app/application/App.java @@ -259,6 +259,8 @@ public class App extends BaseApp { AuthModel.get().cleanLogInfo(); } throw new ServerException(serviceResult.getMessage(), serviceResult.getCode()); + }else if (serviceResult.getCode() == ServiceResult.CODE_ROOM_MANAGER_LIMIT) { + throw new ServerException(serviceResult.getMessage(), serviceResult.getCode()); } } return null; diff --git a/app/src/main/java/com/chwl/app/avroom/ButtonItemFactory.java b/app/src/main/java/com/chwl/app/avroom/ButtonItemFactory.java index 10b99a4e5..bf9f24789 100644 --- a/app/src/main/java/com/chwl/app/avroom/ButtonItemFactory.java +++ b/app/src/main/java/com/chwl/app/avroom/ButtonItemFactory.java @@ -7,6 +7,7 @@ import android.text.TextUtils; import com.chwl.app.R; import com.chwl.app.UIHelper; import com.chwl.app.avroom.widget.ViewItem; +import com.chwl.app.common.util.DialogCommonUtil; import com.chwl.app.common.widget.dialog.DialogManager; import com.chwl.app.room_chat.activity.RoomMsgActivity; import com.chwl.app.ui.im.avtivity.NimFriendModel; @@ -16,6 +17,7 @@ import com.chwl.app.ui.widget.GiftDialog; import com.chwl.app.vip.util.VipHelper; import com.chwl.core.auth.AuthModel; import com.chwl.core.bean.RoomQueueInfo; +import com.chwl.core.bean.response.ServiceResult; import com.chwl.core.initial.InitialModel; import com.chwl.core.initial.bean.InitInfo; import com.chwl.core.kick.KickModel; @@ -30,6 +32,7 @@ import com.chwl.core.super_admin.util.SAdminOptUtil; import com.chwl.core.super_admin.util.SaAttachmentFactory; import com.chwl.core.super_admin.util.SuperAdminUtil; import com.chwl.core.user.bean.UserInfo; +import com.chwl.library.net.rxnet.callback.CallBack; import com.chwl.library.utils.JavaUtil; import com.chwl.library.utils.ResUtil; import com.chwl.library.utils.SingleToastUtil; @@ -177,10 +180,10 @@ public class ButtonItemFactory { account, getNick(chatRoomMember, account))); } if (mark_manager) { - buttonItems.add(createMarkManagerListItem(String.valueOf(currentRoom.getRoomId()), account, true)); + buttonItems.add(createMarkManagerListItem(context,String.valueOf(currentRoom.getRoomId()), account, true)); } if (no_mark_manager) { - buttonItems.add(createMarkManagerListItem(String.valueOf(currentRoom.getRoomId()), account, false)); + buttonItems.add(createMarkManagerListItem(context,String.valueOf(currentRoom.getRoomId()), account, false)); } if (mart_black) { buttonItems.add(createMarkBlackListItem( @@ -341,7 +344,7 @@ public class ButtonItemFactory { } //设置管理员 - public static ViewItem createMarkManagerListItem(final String roomId, final String account, final boolean mark) { + public static ViewItem createMarkManagerListItem(final Context context,final String roomId, final String account, final boolean mark) { String title = BasicConfig.INSTANCE.getAppContext().getString(mark ? R.string.set_manager : R.string.remove_manager); int icon = mark ? R.drawable.icon_dialog_set_manager_ture : R.drawable.icon_dialog_set_manager_false; return new ViewItem(title, icon, () -> { @@ -349,8 +352,16 @@ public class ButtonItemFactory { if (AvRoomDataManager.get().isSuperAdmin()) { AvRoomModel.get().markManager(Long.parseLong(account), mark).subscribe(); } else { - IMNetEaseManager.get().markManagerListBySdk(roomId, account, mark, null); - + IMNetEaseManager.get().markManagerListBySdk(roomId, account, mark, new CallBack() { + @Override + public void onSuccess(ChatRoomMember data) {} + @Override + public void onFail(int code, String error) { + if (code == ServiceResult.CODE_ROOM_MANAGER_LIMIT) { + DialogCommonUtil.showManagerLimit(context); + } + } + }); } }); } diff --git a/app/src/main/java/com/chwl/app/avroom/activity/RoomManagerListActivity.java b/app/src/main/java/com/chwl/app/avroom/activity/RoomManagerListActivity.java index 9b12b2fbf..c40ad6ea6 100644 --- a/app/src/main/java/com/chwl/app/avroom/activity/RoomManagerListActivity.java +++ b/app/src/main/java/com/chwl/app/avroom/activity/RoomManagerListActivity.java @@ -8,19 +8,21 @@ import android.view.View; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.netease.nim.uikit.StatusBarUtil; -import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember; import com.chwl.app.R; import com.chwl.app.avroom.adapter.RoomNormalListAdapter; import com.chwl.app.avroom.presenter.RoomManagerPresenter; import com.chwl.app.avroom.view.IRoomManagerView; import com.chwl.app.base.BaseMvpActivity; +import com.chwl.app.common.util.DialogCommonUtil; import com.chwl.app.common.widget.dialog.DialogManager; +import com.chwl.core.bean.response.ServiceResult; import com.chwl.core.manager.AvRoomDataManager; import com.chwl.core.room.bean.RoomInfo; import com.chwl.library.base.factory.CreatePresenter; import com.chwl.library.utils.ListUtils; import com.chwl.library.utils.ResUtil; +import com.netease.nim.uikit.StatusBarUtil; +import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember; import java.util.List; import java.util.ListIterator; @@ -140,7 +142,9 @@ public class RoomManagerListActivity extends BaseMvpActivity + + val clickData = adapter?.data?.get(position) + if (clickData != null && clickData is RoomMicDress){ + if (mCurrentLevel < clickData.reachLevel) { + R.string.roomLevelErrorTips.doToast() + return@setOnItemClickListener + } + } + + adapter?.data?.forEachIndexed { index, feData -> if (feData is RoomMicDress) { feData.isSelect = index == position diff --git a/app/src/main/java/com/chwl/app/common/dialog/DialogCommon.kt b/app/src/main/java/com/chwl/app/common/dialog/DialogCommon.kt index af17b2238..609a96253 100644 --- a/app/src/main/java/com/chwl/app/common/dialog/DialogCommon.kt +++ b/app/src/main/java/com/chwl/app/common/dialog/DialogCommon.kt @@ -1,15 +1,12 @@ package com.chwl.app.common.dialog import android.view.Gravity +import android.view.View import android.view.WindowManager -import android.widget.TextView -import com.chwl.app.R import com.chwl.app.base.BaseDialogFragment import com.chwl.app.databinding.DialogCommonBinding import com.chwl.library.common.util.ClickUtils.click import com.example.lib_utils.ktx.dp -import com.example.lib_utils.ktx.getColor -import com.example.lib_utils.ktx.setPadding2 class DialogCommon : BaseDialogFragment() { @@ -21,24 +18,22 @@ class DialogCommon : BaseDialogFragment() { var mTitle = "" - var mContent = "" + var mContentLayout : View? = null override fun init() { + if (mContentLayout == null) { + mContentLayout = View(context) + } + binding.btnOk.click { dismiss() } + binding.title.text = mTitle - - val text = TextView(context) - text.setTextColor(R.color.color_313131.getColor()) - text.textSize = 13f - text.setPadding2(start = 23.dp, end = 23.dp, bottom = 16.dp) - text.text = mContent - binding.contentLayout.addView(text) - + binding.contentLayout.addView(mContentLayout) } @@ -46,4 +41,5 @@ class DialogCommon : BaseDialogFragment() { + } \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/common/util/DialogCommonUtil.java b/app/src/main/java/com/chwl/app/common/util/DialogCommonUtil.java new file mode 100644 index 000000000..1fb99eb57 --- /dev/null +++ b/app/src/main/java/com/chwl/app/common/util/DialogCommonUtil.java @@ -0,0 +1,41 @@ +package com.chwl.app.common.util; + +import android.content.Context; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.chwl.app.R; +import com.chwl.app.common.dialog.DialogCommon; +import com.chwl.library.common.util.OtherExtKt; +import com.example.lib_utils.ktx.ResourcesKtxKt; + +public class DialogCommonUtil { + + + public static void showManagerLimit(Context context) { + DialogCommon dialogCommon = new DialogCommon(); + + LinearLayout layout = new LinearLayout(context); + layout.setOrientation(LinearLayout.VERTICAL); + + TextView textView = new TextView(context); + textView.setTextColor(ResourcesKtxKt.getColor(R.color.color_313131)); + textView.setTextSize(13); + textView.setText(ResourcesKtxKt.getString(R.string.roomManagerLimitErrorTips)); + textView.setPadding(OtherExtKt.toDP(25), 0, OtherExtKt.toDP(25), 0); + layout.addView(textView); + OtherExtKt.setViewWH(textView,LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,false); + + ImageView imageView = new ImageView(context); + imageView.setImageResource(R.drawable.icon_manager_admin); + layout.addView(imageView); + OtherExtKt.setViewWH(imageView,LinearLayout.LayoutParams.MATCH_PARENT,OtherExtKt.toDP(258),false); + OtherExtKt.setMargin(imageView,23,10,23,10,true); + + dialogCommon.setMTitle(ResourcesKtxKt.getString(R.string.Tip)); + + dialogCommon.setMContentLayout(layout); + dialogCommon.show(context); + } +} diff --git a/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt index 9e7046729..bc8758a8f 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/HomeFragment.kt @@ -9,14 +9,18 @@ import com.chwl.app.application.IReportConstants import com.chwl.app.application.ReportManager import com.chwl.app.avroom.adapter.CommonVPAdapter import com.chwl.app.base.BaseViewBindingFragment +import com.chwl.app.common.util.DialogCommonUtil import com.chwl.app.databinding.FragmentHomeBinding import com.chwl.app.home.adapter.HomeIndicatorAdapter +import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity import com.chwl.app.ui.search.SearchActivity import com.chwl.app.ui.widget.magicindicator.ViewPagerHelper import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator import com.chwl.app.utils.HomeUIManager import com.chwl.core.DemoCache -import com.chwl.core.auth.AuthModel +import com.netease.nim.uikit.impl.cache.NimUserInfoCache +import com.netease.nimlib.sdk.RequestCallbackWrapper +import com.netease.nimlib.sdk.uinfo.model.NimUserInfo /** 首页 @@ -43,9 +47,23 @@ class HomeFragment : BaseViewBindingFragment(), View.OnClic //自动登录 - AuthModel.get().autoLogin() - .doOnError { throwable: Throwable? -> } - .subscribe() +// AuthModel.get().autoLogin() +// .doOnError { throwable: Throwable? -> } +// .subscribe() + +// NimUserInfoCache.getInstance().getUserInfoFromRemote( +// "3224", +// object : RequestCallbackWrapper() { +// override fun onResult( +// code: Int, +// result: NimUserInfo?, +// exception: Throwable +// ) { +// +// } +// }) + + DialogCommonUtil.showManagerLimit(it) } } } diff --git a/app/src/main/java/com/chwl/app/other/activity/SplashActivity.java b/app/src/main/java/com/chwl/app/other/activity/SplashActivity.java index 64165a803..e9387a2cc 100644 --- a/app/src/main/java/com/chwl/app/other/activity/SplashActivity.java +++ b/app/src/main/java/com/chwl/app/other/activity/SplashActivity.java @@ -143,7 +143,7 @@ public class SplashActivity extends AppCompatActivity implements View.OnClickLis animation(); //todo do 看下有没有图片适配问题 mLocalSplashVo.getType()==3 是图片 - mBinding.ivActivity.setTextView(20f); + mBinding.ivActivity.setTextView(25f); mBinding.ivActivity.load(mLocalSplashVo.getPict(),mLocalSplashVo.getFillVo().getImgMap(), mLocalSplashVo.getFillVo().getTextMap()); if (mLocalSplashVo.getType() != 0 && !TextUtils.isEmpty(mLocalSplashVo.getLink())) { diff --git a/app/src/main/java/com/chwl/app/pay/activity/GiveGoldActivity.kt b/app/src/main/java/com/chwl/app/pay/activity/GiveGoldActivity.kt index 81cb6d4ce..d6c1285d0 100644 --- a/app/src/main/java/com/chwl/app/pay/activity/GiveGoldActivity.kt +++ b/app/src/main/java/com/chwl/app/pay/activity/GiveGoldActivity.kt @@ -7,6 +7,7 @@ import android.text.TextUtils import android.view.KeyEvent import android.view.inputmethod.EditorInfo import android.widget.ImageView +import android.widget.TextView import android.widget.TextView.OnEditorActionListener import androidx.activity.viewModels import androidx.recyclerview.widget.LinearLayoutManager @@ -32,7 +33,10 @@ import com.chwl.library.common.util.setViewWH import com.chwl.library.common.util.setVis import com.chwl.library.net.rxnet.RxNet import com.chwl.library.utils.ResUtil +import com.example.lib_utils.ktx.dp +import com.example.lib_utils.ktx.getColor import com.example.lib_utils.ktx.getString +import com.example.lib_utils.ktx.setPadding2 import com.netease.nim.uikit.StatusBarUtil import io.reactivex.Single import retrofit2.http.GET @@ -125,17 +129,16 @@ class GiveGoldActivity : BaseViewBindingActivity() { } binding.more.click { -// val dialog = DialogManager(context) -// dialog.showOkCancelDialog(R.string.layout_layout_single_room_pk_board_view_01.getString() -// ,R.string.giveGoldTips.getString(), -// R.string.ok.getString(),"",true,object : DialogManager.AbsOkDialogListener() { -// override fun onOk() { -// -// } -// }) val dialog2 = DialogCommon() - dialog2.mContent = R.string.giveGoldTips.getString() + + val text = TextView(context) + text.setTextColor(R.color.color_313131.getColor()) + text.textSize = 13f + text.setPadding2(start = 23.dp, end = 23.dp, bottom = 16.dp) + text.text = R.string.giveGoldTips.getString() + + dialog2.mContentLayout = text dialog2.mTitle = R.string.layout_layout_single_room_pk_board_view_01.getString() dialog2.show(context) } diff --git a/app/src/main/java/com/chwl/app/ui/im/friend/FriendListAdapter.java b/app/src/main/java/com/chwl/app/ui/im/friend/FriendListAdapter.java index 458733c15..4ef759c7a 100644 --- a/app/src/main/java/com/chwl/app/ui/im/friend/FriendListAdapter.java +++ b/app/src/main/java/com/chwl/app/ui/im/friend/FriendListAdapter.java @@ -19,7 +19,7 @@ import com.chwl.app.ui.utils.ImageLoadUtils; import com.chwl.app.ui.widget.NobleAvatarView; import com.chwl.app.vip.util.VipHelper; import com.chwl.core.user.bean.UserInfo; -import com.chwl.core.utils.extension.StringExtensionKt; +import com.chwl.library.common.util.OtherExtKt; import com.chwl.library.utils.ResUtil; /** @@ -50,10 +50,12 @@ public class FriendListAdapter extends BaseQuickAdapter { + int iconNum = 0; + if (vipIcon.getVisibility() == View.VISIBLE) iconNum++; + if (ivUserLevel.getVisibility() == View.VISIBLE) iconNum++; + if (ivCharmLevel.getVisibility() == View.VISIBLE) iconNum++; + + int width = view.getWidth(); + int i = width - OtherExtKt.toDP(42) * iconNum; + TextView textView = helper.getView(R.id.tv_userName); + textView.setMaxWidth(i); + }); + } + } public interface OnItemClickListener { diff --git a/app/src/main/java/com/chwl/app/ui/im/recent/RecentContactsFragment.java b/app/src/main/java/com/chwl/app/ui/im/recent/RecentContactsFragment.java index 8ebcad026..1cb9bf5a5 100644 --- a/app/src/main/java/com/chwl/app/ui/im/recent/RecentContactsFragment.java +++ b/app/src/main/java/com/chwl/app/ui/im/recent/RecentContactsFragment.java @@ -13,6 +13,12 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.chwl.app.R; +import com.chwl.app.home.event.ContactTrashEvent; +import com.chwl.app.ui.im.recent.adapter.RecentContactAdapter; +import com.chwl.core.utils.CheckUtils; +import com.chwl.core.utils.SystemUidUtil; +import com.chwl.library.utils.ResUtil; import com.netease.nim.uikit.api.NimUIKit; import com.netease.nim.uikit.api.model.contact.ContactChangedObserver; import com.netease.nim.uikit.api.model.main.OnlineStateChangeObserver; @@ -31,7 +37,6 @@ import com.netease.nim.uikit.common.ui.recyclerview.listener.SimpleClickListener import com.netease.nim.uikit.impl.NimUIKitImpl; import com.netease.nimlib.sdk.NIMClient; import com.netease.nimlib.sdk.Observer; -import com.netease.nimlib.sdk.RequestCallback; import com.netease.nimlib.sdk.RequestCallbackWrapper; import com.netease.nimlib.sdk.ResponseCode; import com.netease.nimlib.sdk.msg.MsgService; @@ -42,13 +47,6 @@ import com.netease.nimlib.sdk.msg.model.QueryDirectionEnum; import com.netease.nimlib.sdk.msg.model.RecentContact; import com.netease.nimlib.sdk.team.model.Team; import com.netease.nimlib.sdk.team.model.TeamMember; -import com.chwl.app.R; -import com.chwl.app.home.event.ContactTrashEvent; -import com.chwl.app.ui.im.recent.adapter.RecentContactAdapter; -import com.chwl.core.utils.CheckUtils; -import com.chwl.core.utils.SystemUidUtil; -import com.chwl.library.utils.ResUtil; -import com.chwl.library.utils.SingleToastUtil; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -284,29 +282,29 @@ public class RecentContactsFragment extends TFragment { } }); - alertDialog.addItem(ResUtil.getString(R.string.im_recent_recentcontactsfragment_02), new onSeparateItemClickListener() { - @Override - public void onClick() { - NIMClient.getService(MsgService.class) - .deleteRoamingRecentContact(recent.getContactId(), recent.getSessionType()) - .setCallback(new RequestCallback() { - @Override - public void onSuccess(Void param) { - SingleToastUtil.showToastShort("delete success"); - } - - @Override - public void onFailed(int code) { - SingleToastUtil.showToastShort("delete failed, code:" + code); - } - - @Override - public void onException(Throwable exception) { - - } - }); - } - }); +// alertDialog.addItem(ResUtil.getString(R.string.im_recent_recentcontactsfragment_02), new onSeparateItemClickListener() { +// @Override +// public void onClick() { +// NIMClient.getService(MsgService.class) +// .deleteRoamingRecentContact(recent.getContactId(), recent.getSessionType()) +// .setCallback(new RequestCallback() { +// @Override +// public void onSuccess(Void param) { +// SingleToastUtil.showToastShort("delete success"); +// } +// +// @Override +// public void onFailed(int code) { +// SingleToastUtil.showToastShort("delete failed, code:" + code); +// } +// +// @Override +// public void onException(Throwable exception) { +// +// } +// }); +// } +// }); alertDialog.show(); } diff --git a/app/src/main/java/com/chwl/app/ui/im/recent/holder/RecentViewHolder.java b/app/src/main/java/com/chwl/app/ui/im/recent/holder/RecentViewHolder.java index ac99dc33f..d55bc63ca 100644 --- a/app/src/main/java/com/chwl/app/ui/im/recent/holder/RecentViewHolder.java +++ b/app/src/main/java/com/chwl/app/ui/im/recent/holder/RecentViewHolder.java @@ -4,6 +4,7 @@ import static android.view.View.GONE; import static android.view.View.VISIBLE; import android.text.TextUtils; +import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -78,10 +79,12 @@ public abstract class RecentViewHolder extends RecyclerViewHolder { + int iconNum = 0; + if (vipIcon.getVisibility() == View.VISIBLE) iconNum++; + if (ivUserLevel.getVisibility() == View.VISIBLE) iconNum++; + if (ivCharmLevel.getVisibility() == View.VISIBLE) iconNum++; + + int width = view.getWidth(); + int i = width - OtherExtKt.toDP(42) * iconNum; + TextView textView = baseViewHolder.getView(R.id.tv_userName); + textView.setMaxWidth(i); + }); + } + } public void setRylListener(onClickListener onClickListener) { diff --git a/app/src/main/java/com/chwl/app/ui/relation/adapter/FansViewAdapter.java b/app/src/main/java/com/chwl/app/ui/relation/adapter/FansViewAdapter.java index bec1ea64c..eb06795e0 100644 --- a/app/src/main/java/com/chwl/app/ui/relation/adapter/FansViewAdapter.java +++ b/app/src/main/java/com/chwl/app/ui/relation/adapter/FansViewAdapter.java @@ -15,7 +15,7 @@ import com.chwl.app.ui.widget.NobleAvatarView; import com.chwl.app.vip.util.VipHelper; import com.chwl.core.im.friend.IMFriendModel; import com.chwl.core.user.bean.FansInfo; -import com.chwl.core.utils.extension.StringExtensionKt; +import com.chwl.library.common.util.OtherExtKt; import com.chwl.library.utils.ResUtil; import java.util.List; @@ -52,7 +52,7 @@ public class FansViewAdapter extends BaseQuickAdapter @Override protected void convert(BaseViewHolder baseViewHolder, final FansInfo fansInfo) { if (fansInfo == null) return; - baseViewHolder.setText(R.id.tv_userName, StringExtensionKt.subAndReplaceDot(fansInfo.getNick(),8)) + baseViewHolder.setText(R.id.tv_userName, fansInfo.getNick()) .setText(R.id.tv_user_desc, fansInfo.getUserDesc() != null ? fansInfo.getUserDesc() : baseViewHolder.itemView.getContext().getResources().getString(R.string.msg_no_user_desc)) @@ -90,6 +90,7 @@ public class FansViewAdapter extends BaseQuickAdapter // tvGenderAge.setGender(fansInfo.getGender()); // tvGenderAge.setBirthDay(fansInfo.getBirth()); + View vipIcon = baseViewHolder.getView(R.id.iv_vip_icon); VipHelper.loadVipNameplate(baseViewHolder.getView(R.id.iv_vip_icon), fansInfo.getUserVipInfoVO()); VipHelper.loadVipNickColor(baseViewHolder.getView(R.id.tv_userName), fansInfo.getUserVipInfoVO(), "#FF333333"); @@ -123,5 +124,20 @@ public class FansViewAdapter extends BaseQuickAdapter // NobleUtil.loadResource(badgeByLevel, ivBadge); // } // } + + View view = baseViewHolder.getView(R.id.userInfoLayout); + if (view != null) { + view.post(() -> { + int iconNum = 0; + if (vipIcon.getVisibility() == View.VISIBLE) iconNum++; + if (ivUserLevel.getVisibility() == View.VISIBLE) iconNum++; + if (ivCharmLevel.getVisibility() == View.VISIBLE) iconNum++; + + int width = view.getWidth(); + int i = width - OtherExtKt.toDP(42) * iconNum; + TextView textView = baseViewHolder.getView(R.id.tv_userName); + textView.setMaxWidth(i); + }); + } } } diff --git a/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java b/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java index 958344ae4..e57c58989 100644 --- a/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java +++ b/app/src/main/java/com/chwl/app/ui/user/activity/UserInfoActivity.java @@ -785,8 +785,9 @@ public class UserInfoActivity extends BaseBindingActivity() { diff --git a/app/src/main/java/com/chwl/app/view/EffectView.kt b/app/src/main/java/com/chwl/app/view/EffectView.kt index 05c43bac9..5a1a2bf34 100644 --- a/app/src/main/java/com/chwl/app/view/EffectView.kt +++ b/app/src/main/java/com/chwl/app/view/EffectView.kt @@ -67,6 +67,8 @@ class EffectView : FrameLayout { private var mTextMap: HashMap? = null private var mTextSize = 14f + + private var mNeedLog = false private fun init(context: Context) { @@ -82,7 +84,7 @@ class EffectView : FrameLayout { private fun loadUrl(url: String) { - "EffectView loadUrl() url = $url".doLog() + "EffectView loadUrl() url = $url".doLog(mNeedLog) mResourceUrl = url GlideUtils.instance().downloadFromUrl2(context,url,object : RequestListener { override fun onLoadFailed( @@ -91,7 +93,7 @@ class EffectView : FrameLayout { target: Target?, isFirstResource: Boolean ): Boolean { - "EffectView loadUrl() downloadFromUrl2 onLoadFailed e = ${e?.message}".doLog() + "EffectView loadUrl() downloadFromUrl2 onLoadFailed e = ${e?.message}".doLog(mNeedLog) playCallBack(false) return true } @@ -103,7 +105,7 @@ class EffectView : FrameLayout { dataSource: DataSource?, isFirstResource: Boolean ): Boolean { - "EffectView loadUrl() downloadFromUrl2 onResourceReady name = ${resource?.name}".doLog() + "EffectView loadUrl() downloadFromUrl2 onResourceReady name = ${resource?.name}".doLog(mNeedLog) if (resource != null) { val path = resource.path if (mResourceUrl == url) { @@ -128,7 +130,7 @@ class EffectView : FrameLayout { } private fun loadEffect(effectType: Int, resource: File) { - "EffectView loadEffect() effectType = $effectType".doLog() + "EffectView loadEffect() effectType = $effectType".doLog(mNeedLog) mEffectType = effectType this@EffectView.post{ this@EffectView.removeAllViews() @@ -147,7 +149,7 @@ class EffectView : FrameLayout { } private fun loadImg(resource: File) { - "EffectView loadImg() ".doLog() + "EffectView loadImg() ".doLog(mNeedLog) try { this@EffectView.post { @@ -178,7 +180,7 @@ class EffectView : FrameLayout { imageView.setImageBitmap(bitmap) } - "EffectView loadImg() start".doLog() + "EffectView loadImg() start".doLog(mNeedLog) playCallBack(true) } else { imageView.setImageBitmap(bitmap) @@ -188,12 +190,12 @@ class EffectView : FrameLayout { } catch (e: Exception) { playCallBack(false) - "EffectView loadImg() false".doLog() + "EffectView loadImg() false".doLog(mNeedLog) } } private fun loadMp4(resource: File) { - "EffectView loadMp4() ".doLog() + "EffectView loadMp4() ".doLog(mNeedLog) try { val animView = AnimView(context) this@EffectView.addView(animView) @@ -203,19 +205,19 @@ class EffectView : FrameLayout { animView.setAnimListener(object : IAnimListener { override fun onFailed(errorType: Int, errorMsg: String?) { playCallBack(false) - "EffectView loadMp4() onFailed ".doLog() + "EffectView loadMp4() onFailed ".doLog(mNeedLog) } override fun onVideoComplete() { - "EffectView loadMp4() onVideoComplete ".doLog() + "EffectView loadMp4() onVideoComplete ".doLog(mNeedLog) } override fun onVideoDestroy() { - "EffectView loadMp4() onVideoDestroy ".doLog() + "EffectView loadMp4() onVideoDestroy ".doLog(mNeedLog) } override fun onVideoRender(frameIndex: Int, config: AnimConfig?) { } override fun onVideoStart() { playCallBack(true) - "EffectView loadMp4() onVideoStart ".doLog() + "EffectView loadMp4() onVideoStart ".doLog(mNeedLog) } }) @@ -228,17 +230,17 @@ class EffectView : FrameLayout { }else if (!mImgUrlMap.isVerify() && !mImgUrlMap.isVerify()) { //不需要嵌入资源 animView.startPlay(resource) - "EffectView loadMp4() start".doLog() + "EffectView loadMp4() start".doLog(mNeedLog) } } catch (e: Exception) { - "EffectView loadMp4() Exception = ${e?.message}".doLog() + "EffectView loadMp4() Exception = ${e?.message}".doLog(mNeedLog) playCallBack(false) } } private fun loadMp4InImage(animView:AnimView,resource: File) { - "EffectView loadMp4InImage() ".doLog() + "EffectView loadMp4InImage() ".doLog(mNeedLog) try { var index = 0 val bitmapMap = hashMapOf() @@ -247,14 +249,14 @@ class EffectView : FrameLayout { val imgUrl = mImgUrlMap?.get(key)?:"" if (!imgUrl.isVerify()){ - "EffectView loadMp4InImage() mImgUrlMap?.get(key)?.isVerify() == false 图片url 异常".doLog() + "EffectView loadMp4InImage() mImgUrlMap?.get(key)?.isVerify() == false 图片url 异常".doLog(mNeedLog) playCallBack(false) return } downLoadAvatar(imgUrl) { bitmap -> if (bitmap == null) { - "EffectView loadMp4InImage() downLoadAvatar bitmap=null 下载图片失败 imgUrl=$imgUrl".doLog() + "EffectView loadMp4InImage() downLoadAvatar bitmap=null 下载图片失败 imgUrl=$imgUrl".doLog(mNeedLog) playCallBack(false) } else { index++ @@ -263,7 +265,7 @@ class EffectView : FrameLayout { animView.setFetchResource(object : IFetchResource { override fun fetchImage(resource: Resource, result: (Bitmap?) -> Unit) { - "EffectView loadMp4InImage() animView.setFetchResource fetchImage resource.tag = ${resource.tag}".doLog() + "EffectView loadMp4InImage() animView.setFetchResource fetchImage resource.tag = ${resource.tag}".doLog(mNeedLog) if (bitmapMap.isEmpty()) { result(null) } else { @@ -289,7 +291,7 @@ class EffectView : FrameLayout { } result(text) } - "EffectView loadMp4InImage() animView.setFetchResource fetchText text.key = ${resource.tag} text.value = $text".doLog() + "EffectView loadMp4InImage() animView.setFetchResource fetchText text.key = ${resource.tag} text.value = $text".doLog(mNeedLog) } override fun releaseResource(resources: List) { @@ -299,19 +301,19 @@ class EffectView : FrameLayout { } }) animView.startPlay(resource) - "EffectView loadMp4InImage() start".doLog() + "EffectView loadMp4InImage() start".doLog(mNeedLog) } } } } } catch (e: Exception) { - "EffectView loadMp4InImage() Exception = ${e?.message} ".doLog() + "EffectView loadMp4InImage() Exception = ${e?.message} ".doLog(mNeedLog) } } private fun loadMp4InText(animView:AnimView,resource: File) { - "EffectView loadMp4InText() ".doLog() + "EffectView loadMp4InText() ".doLog(mNeedLog) animView.setFetchResource(object : IFetchResource { override fun fetchImage(resource: Resource, result: (Bitmap?) -> Unit) { result(null) @@ -329,7 +331,7 @@ class EffectView : FrameLayout { } result(text) } - "EffectView loadMp4InImage() animView.setFetchResource fetchText text.key = ${resource.tag} text.value = $text".doLog() + "EffectView loadMp4InImage() animView.setFetchResource fetchText text.key = ${resource.tag} text.value = $text".doLog(mNeedLog) } override fun releaseResource(resources: List) { @@ -339,11 +341,11 @@ class EffectView : FrameLayout { } }) animView.startPlay(resource) - "EffectView loadMp4InText() start".doLog() + "EffectView loadMp4InText() start".doLog(mNeedLog) } private fun loadSvga(resource: File) { - "EffectView loadSvga() ".doLog() + "EffectView loadSvga() ".doLog(mNeedLog) try { val svgaView = SVGAView(context) this@EffectView.addView(svgaView) @@ -359,12 +361,12 @@ class EffectView : FrameLayout { svgaView.setImageDrawable(SVGADrawable(videoItem)) svgaView.startAnimation() playCallBack(true) - "EffectView loadSvga() true".doLog() + "EffectView loadSvga() true".doLog(mNeedLog) } } override fun onError() { - "EffectView loadSvga() false".doLog() + "EffectView loadSvga() false".doLog(mNeedLog) playCallBack(false) } }, @@ -373,17 +375,17 @@ class EffectView : FrameLayout { null ) } catch (e: Exception) { - "EffectView loadSvga() false".doLog() + "EffectView loadSvga() false".doLog(mNeedLog) playCallBack(false) } } private fun loadSvga(videoItem: SVGAVideoEntity?) { - "EffectView loadSvga() ".doLog() + "EffectView loadSvga() ".doLog(mNeedLog) try { var mSvgaImageIndex = 0; if (videoItem == null) { - "EffectView loadSvga() Exception videoItem=null".doLog() + "EffectView loadSvga() Exception videoItem=null".doLog(mNeedLog) playCallBack(false) return } @@ -394,15 +396,15 @@ class EffectView : FrameLayout { svgaView.scaleType = ImageView.ScaleType.FIT_XY svgaView.callback = object : SVGACallback { override fun onPause() { - "EffectView loadSvga() SVGACallback onPause()".doLog() + "EffectView loadSvga() SVGACallback onPause()".doLog(mNeedLog) } override fun onFinished() { - "EffectView loadSvga() SVGACallback onFinished()".doLog() + "EffectView loadSvga() SVGACallback onFinished()".doLog(mNeedLog) } override fun onRepeat() { -// "EffectView loadSvga() SVGACallback onRepeat()".doLog() +// "EffectView loadSvga() SVGACallback onRepeat()".doLog(mNeedLog) } override fun onStep(i: Int, v: Double) { @@ -410,25 +412,6 @@ class EffectView : FrameLayout { } val dynamicEntity = SVGADynamicEntity() - if (mImgUrlMap?.isNotEmpty() == true) { - mImgUrlMap?.keys?.forEach { key -> - val imgUrl = mImgUrlMap?.get(key)?:"" - if (imgUrl.isVerify()) { - addDynamicImage( - svgaView, - dynamicEntity, - imgUrl, - key - ) { resource -> - mSvgaImageIndex ++; - dynamicEntity.setDynamicImage(resource,key) - if (mSvgaImageIndex == mImgUrlMap?.count()) { - playSvga(svgaView, videoItem, dynamicEntity) - } - } - } - } - } if (mTextMap?.isNotEmpty() == true) { mTextMap?.keys?.forEach { key -> @@ -454,6 +437,26 @@ class EffectView : FrameLayout { } } + if (mImgUrlMap?.isNotEmpty() == true) { + mImgUrlMap?.keys?.forEach { key -> + val imgUrl = mImgUrlMap?.get(key)?:"" + if (imgUrl.isVerify()) { + addDynamicImage( + svgaView, + dynamicEntity, + imgUrl, + key + ) { resource -> + mSvgaImageIndex ++; + dynamicEntity.setDynamicImage(resource,key) + if (mSvgaImageIndex == mImgUrlMap?.count()) { + playSvga(svgaView, videoItem, dynamicEntity) + } + } + } + } + } + if (mImgUrlMap?.isNotEmpty() == true) { // 有图片, 等待下载完毕再播放svga } else { @@ -461,22 +464,22 @@ class EffectView : FrameLayout { } } catch (e: Exception) { - "EffectView loadSvga() Exception = ${e?.message}".doLog() + "EffectView loadSvga() Exception = ${e?.message}".doLog(mNeedLog) playCallBack(false) } } private fun playCallBack(isSuccess: Boolean,type: Int? = -1) { if (isSuccess) { - "EffectView playCallBack() 加载成功 url = $mResourceUrl".doLog() + "EffectView playCallBack() 加载成功 url = $mResourceUrl".doLog(mNeedLog) } else { - "EffectView playCallBack() 加载失败 url = $mResourceUrl".doLog() + "EffectView playCallBack() 加载失败 url = $mResourceUrl".doLog(mNeedLog) } mCallBack?.onPlay(isSuccess,type) } private fun split(bitmap: Bitmap?): List { - "EffectView split() ".doLog() + "EffectView split() ".doLog(mNeedLog) val pieces: MutableList = ArrayList() try { if (bitmap!!.width == bitmap.height) { @@ -502,7 +505,7 @@ class EffectView : FrameLayout { } } } catch (e: java.lang.Exception) { - "EffectView split() Exception = ${e?.message}".doLog() + "EffectView split() Exception = ${e?.message}".doLog(mNeedLog) } return pieces } @@ -520,7 +523,6 @@ class EffectView : FrameLayout { } GlideApp.with(App.instance()) .asBitmap() - .circleCrop() .load(url) .addListener(object : RequestListener { override fun onLoadFailed( @@ -555,7 +557,7 @@ class EffectView : FrameLayout { svgaView.setImageDrawable(drawable) svgaView.stepToFrame(0, true) playCallBack(true) - "EffectView loadSvga() start".doLog() + "EffectView loadSvga() start".doLog(mNeedLog) } } diff --git a/app/src/main/res/drawable-xxhdpi/icon_manager_admin.webp b/app/src/main/res/drawable-xxhdpi/icon_manager_admin.webp new file mode 100644 index 0000000000000000000000000000000000000000..6142727a3a7c7e55dce3844fd2f40360ec59ba65 GIT binary patch literal 10196 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 Yhv5{N+r-43>t(&(y-NB`Hvr&&0q*U!hyVZp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_room_lock_micro.webp b/app/src/main/res/drawable-xxhdpi/icon_room_lock_micro.webp index 8aa68620f5605d9a15faad505db34a05c921a566..7b293b6da9cec77ac2341f3e776b8f9313e11712 100644 GIT binary patch literal 2168 zcmV-;2#5DlNk&F+2mkX-E9|C5t;UlJx(EG_juW_r-ui_y(426qDnBrs4?SOJqt48Mc={GUQ8 z!XEiMA|^n(wM~X3T~xNm*4nmhqt>=<+qP}n7`C!m9X}!(C!#JOA|?Q&Hmuz1olh6k z?~fkh-%n4ocoGJ!>P2y~MH6_+ct9*h%y`9>Q?ZW|A0;VnS|67PN%;@zB~KI^d3AN{NmBrNfQsCV_& zR9p6Y_|T@rMq-y~JB&(MWo2KLl1Uv&>V+d*FjbU2pgdq0No&{o{CeL|&SoR&I5v{n zcA8NmuawNoQp^cbAnyKaZ)B8V9p7<=6zTHd+)~6I=PpLdwB2a1t%4WF(+*N>YjU9U$s?(*vLP~$aNn11SuFdex1s+&K_N)Xg6W&(rk9`2vYXdpt~zc@zKXf;kcC) zWiUQZn@I8X_=_Q&X>*2@&xY6(%)FUWq(M5pF@;*I#tzaVnb0+XOd2{!lTKJQg)wg? z4$`I*-P3*V9jqJZTp=U%R3ukeUba)rEO0b(s*^cwmu#5c=K6Cql;1?Z)BgdAK^4W zl7nZM*G-fPJ2bmkfjiQbHS659WuZ8Szgi6UZMm|iU;XjBy86%eJL8IE*+FTc?5Kt$ zww2DWg%tJtQkx*elI$X-(3WZBa}!cFpAVLVC*Kz^BM(VD!3$~E&k%&_q4l@7A(GcI z*$)}?Pj<*b4~Ks-uG$jy_yu(Q-|JU@O$vVX71XX6^Kv~ZPxf0N1GoD$DJyF-^lFrV zcYJmpvoDFF zbGc$rc=-qS+YI`n$+5jLE|~yChKG z+6XG*IY++y=hIs2kckozon|P35+SX%_EtX_>Eu`Wkt+<#!WEqb-qFJ)?8<}JJ7X+b zvunWqb~A2xyi*(?!Sl|<`NfatGDG~+MNhPWQ4kmy#x1z0wne)S*!+0xVVLrW2itBi$j3)p9FD>KulQK*cvy3No0BIe+ z)5$DOC-DPKBWyCNrIA|L_tJ=^vRlSn%s)|!N+MSo{ zQ<2n!dVb#ViZkuy<{6c?P#)taw=XjttlC$`JUDz1O4(Z;jdF@zX>C`m!?*BPE36Bp zlxnm7`nyjo-(6bUMltsy^KbBdf(5g1J1oJ1*@UHq+9>;|!E*PeRh_ZPHZ1%2p6CmY&S2>;I=;Rd{@U{3C~|e>{yKmaX3igp zp01M9%qjrb9o7*ZFj(<=*Vj?2yS^&ed~E8cp6tTvi&Lf>78gOp&z$Oo4!?kqhCOw3 zLZ;Xd1I(M)(T96-V}ht=HFR|0Zcj}Rca2Vn9-O$k1|pj`Q>p_xy)i*-6AzjC7`IIj z-S`sMRo9$;HbBB+(!wgk{$mm3-0cpo)J5*Pn;`2tOI%gCk8B+zKK<3eDk6S#4pL_h z{1H=*UA^xdW#j@_JDapr)0rN>00nLjBG*<2b~)bzHCpEZcU8go-LVC#%xu{IcCiWw zk4rBzpwfIJYC5)Dw$n)(o1j`_|C;w}wmg^xoE~IB!Da!ELQj_ZBq_bhf~vEnC~VWR zU^b!chwytAly1Jg>P3M^#38kxqkiSk0_7XIT^!EtJt6|R4QE5Voijj}Z!UQ<4(ha0 z#>>Iw3cc-xNpM*J-R9qxSSuKg2fcRFtFi03wB|M20Ur;3`0Vs;9`tNj8-<Q=atP34q0Dl1d0Q~@`{R&TJGm_)$Egvbs8Sn&pQ(tOF8}6HA=Gt$e zuZ`j4X4-(c8MdGk#oW9-h)CRJ=CGoKNF u0RF9|&g~)3W$*v^(TD@IX&4C_000005l{dB8W@)IUzwJ}heVG=@Bjd64jtzJ literal 2628 zcmV-K3cK}ENk&FI3IG6CMM6+kP&il$0000G0001$005N$06|PpNZAJf00A5YX&W%D zf7v@4B4Prl>X+W;|IgBF+qMvEZFM@jE{@Bx-gLUz#m&|v1keRKfEA0J#-eJ}`K+2s#35h(J)JxZF|x8VUcAyUty_>~A@cNaNRq=L%|%g4XzMg&uZyu` zo2PYhk}Z^nDDb$;7^UPQrHr}U3!*~_tvn^`Cu`u*baOl_S?qmsV}D;rbv|yUBW%9G zVv~Rr@y;ckba%0kkZcwMvkhJ|3CEB#(qYEKBgpJ^U@SaY*B}#4G~|hddOg7=a^`NK z^2jBcx>2qQckUQx>{pQbjA+dK6slls6z6f>DB%<0SJ`rC zh*_e_EhC0x+fpSn6WlLr6;onR8moGFubVTES`iS#2BMATj$Z#OA!5Y1EQ0cXI*q*c zx);nVKT`iw+=kTg7d}4UNs8_gS zm?^=D@wre8cWSVKBO?}MN7xKHgf~sbh!t7dY;b2VgNzYNvJ@EZ2wo|{h&7o|E8LCe zN-$zkCaUL7{E!7FR^^5K(Shkn2E?*~JWX#l`e=5!&T7U3&~IE7LWsoYr{C6U zr<33Gdhn(7TnwR|TK^VHrc+@z_||jJpAM5TLTG#{h{hq`0eAIi&oAEo*lPA7U|XY- zA;oEo&_eEY+6s8{w%TZgv4G6EcQE)APiHR|2ra?aC`QA&MjF_V5&JOr6goaEkwbxK zT-SrRCo|sgo8JH61RVm@8HS}!QwEV=jDLj7|v<>=4&`$pbuYY*z@0H~JgV!rwy8Xi~d04Ri!HO^ueMBThPWuPV ziz@9SX$1#jfO|To(<2AjCK~yN&c}X)1&8piu_4cbf)z3eob{P}?)CS2H{$;B^&98c zE-y0h>GRz!sZ`F|L|z0jn@3S;H3>T66a;$8NE`qTdSvv1uy<+5Dy3TFfqqv{Q+-35 z$*b=-1)5exZU}8hbzFF4*6f>hDP%<=m=PZ37})TmE2@PzTtGLiGt-_tfQzy}?RtmJ}rI;kTA*dn_^JGcZs@$UDYX$z+ZX2+2ze0NCvD!} z|3ensF1(OGP#2#o!EC}r^^7`+S4uE@s6wr9HxOo!Fcc!l>)`S=KwV?P~dqk%o)138}eg*pv&T z=j;PgZYrL_#|-H@^4gPUChydGBc$<52@x|7i=cc#T07q&5P@j|0ns-{FNE%wwTh`p zXsqhxJu=`dQRSAIf^AEc%#ay}%S`24Y67~=Rkj==Q#y}tjS{|ozEI8Eqk~L34k}1} zrW5m1sDd#vtuuFvCXZZQ+$e7fcaD*P@nl_tOt=m_kx;KE7@2zTnn^f@oOOxu@CY({ z9U!CMEjF=|V!vbEV7tALD&8#akn!eE>lr^irq;JXA~z023p<*wVYfi(m;G{u0Q^AtqshFPjW%uc_M{3ffQqSq88m zE0U*~eG;ceV-w1*|rfkgxtS!2I9URV5)OZqK)%+jhN^Z$`7>iNt+ zPEmpgcUcQg_nuM!0RGp37yRO*eSix(fB*9Mi~g3SAM=W^<9P$WyZ{MITXk_%S6?0O zZ}(OB-|(;<5ky|b#lvMl_gpFJ)6(V&m;DGX7~fAUsmn{I53jq9o$244)k;#iUvTER zid?I{=1}Rw5mns3o6@u|6*Fb;vT{F5qQhz)ROpR!qal@NVgH7Xkb!*uxjQu}t|*)# z);rLodr!6nF$9VwMfL-DhQ@kw`Gb{$H3{T>NF(8f>2xN)FnM8&^Y_i^L_A2IYYPaL zQ06Y~cT7#n#Z>|Z-MarvobrEM7&7Dp6~7oWQKnxrlP=zSD5^HF5j0eQTR_WfE?r0> z$IkBne6nI9mTu}hC8n6DI**D@pg5cLRe!UH?@&z+fq|iW78&+>ZDK$gp+C}8H6b3W zdmnu^-{jN^s&nv=7a;<7#P4ee)qg{Mj|Vz52Ogw2rA`t>i2(zKxPt@Jfs}@$I|$x! mNubutV-KK1|Nk#w1i$?13_SD;|D~iNzvoW?C;a + + tools:ignore="SpUsage" + tools:text="11111" /> diff --git a/app/src/main/res/layout/dialog_common.xml b/app/src/main/res/layout/dialog_common.xml index f2bb6b8be..f2389093f 100644 --- a/app/src/main/res/layout/dialog_common.xml +++ b/app/src/main/res/layout/dialog_common.xml @@ -19,7 +19,8 @@ app:layout_constraintTop_toTopOf="parent" tools:text="title" /> - + tools:text="11" /> diff --git a/app/src/main/res/layout/fragment_contact_list.xml b/app/src/main/res/layout/fragment_contact_list.xml index 08a1e5e94..a28479acb 100644 --- a/app/src/main/res/layout/fragment_contact_list.xml +++ b/app/src/main/res/layout/fragment_contact_list.xml @@ -40,7 +40,6 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="@dimen/dp_15" - android:layout_marginBottom="@dimen/main_bottom_bar_top_margin" android:background="@color/transparent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/ll_title" /> diff --git a/app/src/main/res/layout/list_item_friend_new.xml b/app/src/main/res/layout/list_item_friend_new.xml index d0ab6e6a0..06c6de47d 100644 --- a/app/src/main/res/layout/list_item_friend_new.xml +++ b/app/src/main/res/layout/list_item_friend_new.xml @@ -37,6 +37,7 @@ android:orientation="vertical"> + tools:text="111" /> diff --git a/app/src/main/res/layout/nim_recent_contact_list_item_new.xml b/app/src/main/res/layout/nim_recent_contact_list_item_new.xml index e63e4534a..237235582 100644 --- a/app/src/main/res/layout/nim_recent_contact_list_item_new.xml +++ b/app/src/main/res/layout/nim_recent_contact_list_item_new.xml @@ -11,6 +11,7 @@ android:gravity="start|center_vertical"> @@ -72,14 +74,13 @@ android:layout_weight="1" android:ellipsize="end" android:includeFontPadding="false" - android:layout_marginTop="2dp" android:singleLine="true" android:text="" android:textStyle="bold" android:textColor="@color/text_title_color" android:textSize="15sp" tools:ignore="SpUsage" - tools:text="12111111111111111" /> + tools:text="1" /> diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 54f7324b0..a9a0d6344 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -5375,7 +5375,9 @@ احتفال فريد مستوى الغرفة ليس كافيا لاستخدام هذا الجلد. + عدد المسؤولين المقابلين لمستوى غرفتك الحالي ممتلئ، يرجى الترقية أولاً ثم الإضافة! ١. يمكنك الاتصال بخدمة العملاء الرسمية وتقديم الأدلة ذات الصلة لتحسين تصنيف النجوم\n٢. ينقسم تصنيف النجوم إلى 1 ~ 5 نجوم. 5 نجوم هي أفضل وكيل إعادة شحن\n٣. سيتم عرض تصنيف النجوم عندما يجد المستخدم وكيل إعادة الشحن\n٤ كلما ارتفع تصنيف النجوم، ارتفع الترتيب في قائمة النقل\n٥. جميع حقوق التفسير مملوكة للمسؤول ولا علاقة لها بـ قوقل أو ابل القواعد: + تلميح يمكنك استخدام مكبر الصوت للتحدث مرة أخرى بعد %s~ \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index da47920dc..7c9ae92b2 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -5170,7 +5170,9 @@ Toplam imza alın, ilgili ödülü alın Kutlama Benzersiz Bu skini kullanmak için oda seviyesi yeterli değil. + Mevcut oda seviyenize karşılık gelen yönetici sayısı doldu, lütfen önce yükseltin ve ardından ekleyin! 1. Yıldız derecelendirmesini artırmak için resmi müşteri hizmetleriyle iletişime geçebilir ve ilgili kanıtları sağlayabilirsiniz.\n 2. Yıldız derecelendirmesi 1~5 yıldıza bölünmüştür. 5 yıldız en iyi şarj aracıdır.\n 3. Yıldız derecelendirmesi, kullanıcı şarj aracısını bulduğunda görüntülenecektir.\n 4. Yıldız derecelendirmesi ne kadar yüksekse, transfer listesindeki sıralama da o kadar yüksek olur.\n 5. Tüm yorumlama hakları resmiyete aittir ve Google veya Apple ile hiçbir ilgisi yoktur.\n Kurallar: + İpucu %s sonra tekrar megafon duyurusu yapabilirsiniz~ diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 533e4ec78..0fa8a9c4b 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -5318,8 +5318,10 @@ 慶典 獨特的 房間等級不足以使用此皮膚。 + 您目前房間等級對應的管理員人數已滿,請先升級再新增! 1.您可以聯絡官方客服並提供相關證據來提升星級。\n 2.星級分為1~5星。5星是最好的儲值代理。\n 3.用戶找到儲值代理商時會顯示星級。\n 4.星級越高,在轉職榜的排名越高。\n 5.所有解釋權歸官方所有,與Google或蘋果無關。\n 規則: + 提示 %s後可再次使用喇叭喊話 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 25dac37e8..c29a3fee4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5393,8 +5393,10 @@ You cannot join again within 24 hours after leaving Celebration Unique Room level is not enough to use this skin. + The number of admins corresponding to your current room level is full, please upgrade first and then add! 1. You can contact the official customer service and provide relevant evidence to improve the star rating.\n2. The star rating is divided into 1~5 stars.5 stars is the best recharge agent.\n3. The star rating will be displayed when the user found the recharge agent.\n4. The higher the star rating, the higher the ranking in the transfer list.\n5. All interpretation rights belong to the official and have nothing to do with Google or Apple. Rules: + Tip diff --git a/core/src/main/java/com/chwl/core/bean/response/ServiceResult.java b/core/src/main/java/com/chwl/core/bean/response/ServiceResult.java index 8ec7051fd..fa9d4120f 100644 --- a/core/src/main/java/com/chwl/core/bean/response/ServiceResult.java +++ b/core/src/main/java/com/chwl/core/bean/response/ServiceResult.java @@ -96,6 +96,8 @@ public class ServiceResult implements Serializable { public static final int WEEKNOTWITHCASHTOWNUMS = 1600;//每周提现俩次 public static final int CODE_NEED_COMPLETE_USER_INFO = 1415;//每周提现俩次 + public static final int CODE_ROOM_MANAGER_LIMIT = 20504;//管理员超越上限 + /** 没有网络 */ public static final int NOT_NET = 50010; public static final int OTHER = 50011; diff --git a/core/src/main/java/com/chwl/core/home/bean/BannerInfo.java b/core/src/main/java/com/chwl/core/home/bean/BannerInfo.java index 15d6410a9..0f4ad32de 100644 --- a/core/src/main/java/com/chwl/core/home/bean/BannerInfo.java +++ b/core/src/main/java/com/chwl/core/home/bean/BannerInfo.java @@ -43,6 +43,13 @@ public class BannerInfo implements Parcelable, Serializable, IRouterData { */ public final static transient int SKIP_TYP_H5_CUSTOM = 6; + /** + * 百顺 baishun 游戏 + */ + public final static transient int SKIP_TYPE_ROOM_BAI_SHUN = 7; + + + /** * routerhandler跳转规则 */ @@ -53,10 +60,6 @@ public class BannerInfo implements Parcelable, Serializable, IRouterData { */ public final static transient int SKIP_TYPE_ROOM_USER_CARD = 66; - /** - * 百顺 baishun 游戏 - */ - public final static transient int SKIP_TYPE_ROOM_BAI_SHUN = 77; /** * 无调整 diff --git a/core/src/main/java/com/chwl/core/manager/IMNetEaseManager.java b/core/src/main/java/com/chwl/core/manager/IMNetEaseManager.java index 4712206a3..8dfb8592b 100644 --- a/core/src/main/java/com/chwl/core/manager/IMNetEaseManager.java +++ b/core/src/main/java/com/chwl/core/manager/IMNetEaseManager.java @@ -137,6 +137,7 @@ import com.chwl.core.utils.ExtensionUtils; import com.chwl.core.utils.LogUtils; import com.chwl.core.utils.SharedPreferenceUtils; import com.chwl.core.utils.net.DontWarnObserver; +import com.chwl.core.utils.net.ServerException; import com.chwl.core.vip.VipBroadcastMsgEvent; import com.chwl.library.common.util.OtherExtKt; import com.chwl.library.net.rxnet.callback.CallBack; @@ -2547,7 +2548,11 @@ public final class IMNetEaseManager { .doOnError(throwable -> { OtherExtKt.doLog("开始设置管理员 - 请求接口 - 失败"); if (throwable != null) { - OtherExtKt.doToast(throwable.getMessage()); + if (throwable instanceof ServerException) { + if (callBack != null) { + callBack.onFail(((ServerException) throwable).code, throwable.getMessage()); + } + } } }).subscribe(); diff --git a/library/src/main/java/com/chwl/library/widget/SVGAView.kt b/library/src/main/java/com/chwl/library/widget/SVGAView.kt index 2948b29e1..9f7a5e769 100644 --- a/library/src/main/java/com/chwl/library/widget/SVGAView.kt +++ b/library/src/main/java/com/chwl/library/widget/SVGAView.kt @@ -56,6 +56,8 @@ class SVGAView : SVGAImageView, ILog { private var logTag: String? = null + private var mNeedLog = false + constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( @@ -313,6 +315,7 @@ class SVGAView : SVGAImageView, ILog { } override fun logD(message: String, tag: String, filePrinter: Boolean) { + if (!mNeedLog) return if (logTag != null) { super.logD("#$logTag# $message", tag, filePrinter) } else { diff --git a/library/src/module_common/java/com/chwl/library/common/util/OtherExt.kt b/library/src/module_common/java/com/chwl/library/common/util/OtherExt.kt index 053835033..139192ec9 100644 --- a/library/src/module_common/java/com/chwl/library/common/util/OtherExt.kt +++ b/library/src/module_common/java/com/chwl/library/common/util/OtherExt.kt @@ -154,6 +154,13 @@ fun String?.doLog() { } } } + +fun String?.doLog(doLog:Boolean) { + if (doLog) { + this.doLog() + } +} + fun String?.doLogW() { if (BuildConfig.DEBUG) { if (this.isVerify()) { diff --git a/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java b/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java index bbad35b9d..c01b653cd 100644 --- a/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java +++ b/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java @@ -51,7 +51,7 @@ public class BubbleView extends AppCompatTextView { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.RECTANGLE); // gradientDrawable.setShape(GradientDrawable.RECTANGLE); - gradientDrawable.setCornerRadius(ScreenUtil.dip2px(20)); + gradientDrawable.setCornerRadius(ScreenUtil.dip2px(25)); gradientDrawable.setColor(Color.parseColor("#FC5168")); setBackground(gradientDrawable); setPadding(ScreenUtil.dip2px(6), ScreenUtil.dip2px(2), ScreenUtil.dip2px(6), ScreenUtil.dip2px(2));