diff --git a/app/build.gradle b/app/build.gradle index 2065208bb..57addf3fe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -221,7 +221,6 @@ dependencies { api "com.jzxiang.pickerview:TimePickerDialog:1.0.1" api "com.github.zyyoona7:EasyPopup:1.0.2" api "com.github.donkingliang:LabelsView:1.6.5" - api "com.github.yyued:SVGAPlayer-Android:2.6.1" api "com.ms-square:expandableTextView:0.1.4" annotationProcessor 'androidx.annotation:annotation:1.6.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9a8a42db1..bc638fcc3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -947,6 +947,8 @@ android:windowSoftInputMode="adjustPan" android:name=".ui.feedback.FeedbackActivity" android:screenOrientation="portrait" /> + \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/chwl/app/avroom/activity/AVRoomActivity.java index d8f6d8cf8..7b3ee6db2 100644 --- a/app/src/main/java/com/chwl/app/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/chwl/app/avroom/activity/AVRoomActivity.java @@ -42,6 +42,7 @@ import com.alibaba.fastjson.JSONObject; import com.chwl.app.notify.RoomNotifyManager; import com.chwl.app.ui.webview.baishun.BaiShunGameWebFragment; import com.chwl.app.ui.webview.baishun.IBaiShunGameListener; +import com.chwl.library.widget.SVGAView; import com.chwl.core.monsterhunting.bean.MonsterDataBean; import com.chwl.core.room.game.bean.BaiShunGameConfig; import com.chwl.core.support.room.AudioRoomContext; @@ -177,6 +178,15 @@ public class AVRoomActivity extends BaseMvpActivity { - private int selectPosition; - - public int getSelectPosition() { - return selectPosition; - } - - public void setSelectPosition(int selectPosition) { - notifyItemChanged(this.selectPosition); - this.selectPosition = selectPosition; - notifyItemChanged(this.selectPosition); - } - - public HeadWearShopAdapter(int layoutResId, int brid) { - super(layoutResId, brid); - } - - @Override - protected void convert(BindingViewHolder helper, HeadWearInfo item) { - super.convert(helper, item); - ItemHeadWearBinding binding = (ItemHeadWearBinding) helper.getBinding(); - binding.llRoot.setSelected(selectPosition == helper.getAdapterPosition()); - NobleUtil.loadHeadWears(item.getPic(), binding.ivHeadWear); - binding.setSelectPosition(selectPosition == helper.getAdapterPosition()); - - if (item.getLabelType() == HeadWearInfo.LABEL_TYPE_NORMAL) { - binding.ivTag.setVisibility(View.GONE); - - } else if (HeadWearInfo.LABEL_TYPE_NEW == item.getLabelType()) { - binding.ivTag.setVisibility(View.VISIBLE); - binding.ivTag.setImageResource(R.drawable.ic_mark_new); - - } else if (HeadWearInfo.LABEL_TYPE_DISCOUNT == item.getLabelType()) { - binding.ivTag.setVisibility(View.VISIBLE); - binding.ivTag.setImageResource(R.drawable.ic_mark_discount); - - } else if (HeadWearInfo.LABEL_TYPE_LIMIT == item.getLabelType()) { - binding.ivTag.setVisibility(View.VISIBLE); - binding.ivTag.setImageResource(R.drawable.ic_mark_limit); - - } else if (HeadWearInfo.LABEL_TYPE_EXCLUSIVE == item.getLabelType()) { - binding.ivTag.setVisibility(View.VISIBLE); - binding.ivTag.setImageResource(R.drawable.ic_mark_exclusive); - } - - binding.tvHeadName.setText(item.getName() + ""); - } - - public void setCarInfoHasBeenBought(HeadWearInfo carInfo) { - if (carInfo.getHeadwearId() <= 0 || ListUtils.isListEmpty(mData)) return; - int index = mData.indexOf(carInfo); - if (index == -1) return; - mData.get(index).setStatus(HeadWearInfo.STATUS_IN_USED); - notifyItemChanged(index); - } -} diff --git a/app/src/main/java/com/chwl/app/decoration/adapter/MyHeadWearAdapter.java b/app/src/main/java/com/chwl/app/decoration/adapter/MyHeadWearAdapter.java index 8ecee750e..5df707115 100644 --- a/app/src/main/java/com/chwl/app/decoration/adapter/MyHeadWearAdapter.java +++ b/app/src/main/java/com/chwl/app/decoration/adapter/MyHeadWearAdapter.java @@ -6,9 +6,11 @@ import com.chwl.app.R; import com.chwl.app.bindadapter.BaseAdapter; import com.chwl.app.bindadapter.BindingViewHolder; import com.chwl.app.databinding.ItemMyHeadWearBinding; +import com.chwl.app.utils.AvatarHelper; import com.chwl.core.decoration.headwear.bean.HeadWearInfo; import com.chwl.core.noble.NobleUtil; import com.chwl.library.utils.ResUtil; +import com.chwl.library.widget.SVGAView; /** * Created by huangmeng1 on 2018/5/11. @@ -20,11 +22,14 @@ public class MyHeadWearAdapter extends BaseAdapter { super(layoutResId, brid); } + private SVGAView.SVGACache svgaCache = SVGAView.newCache(10); + @Override protected void convert(BindingViewHolder helper, HeadWearInfo item) { super.convert(helper, item); ItemMyHeadWearBinding binding = (ItemMyHeadWearBinding) helper.getBinding(); - NobleUtil.loadHeadWears(item.getPic(), binding.ivCarCover); + binding.ivCarCover.bindCache(svgaCache); + AvatarHelper.loadAvatarFrame(binding.ivCarCover, item.getFirstUrl(), item.getType()); helper.addOnClickListener(R.id.tv_used); if (item.getLabelType() == HeadWearInfo.LABEL_TYPE_NORMAL) { diff --git a/app/src/main/java/com/chwl/app/support/PreloadResourceViewModel.kt b/app/src/main/java/com/chwl/app/support/PreloadResourceViewModel.kt index fa0788039..7e437cd5c 100644 --- a/app/src/main/java/com/chwl/app/support/PreloadResourceViewModel.kt +++ b/app/src/main/java/com/chwl/app/support/PreloadResourceViewModel.kt @@ -3,7 +3,7 @@ package com.chwl.app.support import androidx.lifecycle.viewModelScope import com.chwl.app.BuildConfig import com.chwl.app.base.BaseViewModel -import com.chwl.core.helper.PathHelper +import com.chwl.library.utils.PathHelper import com.chwl.core.home.model.HomeModel import com.chwl.library.common.util.SPUtils import com.chwl.library.download.DownloadException diff --git a/app/src/main/java/com/chwl/app/ui/debug/DebugActivity.kt b/app/src/main/java/com/chwl/app/ui/debug/DebugActivity.kt new file mode 100644 index 000000000..2f9a3f957 --- /dev/null +++ b/app/src/main/java/com/chwl/app/ui/debug/DebugActivity.kt @@ -0,0 +1,50 @@ +package com.chwl.app.ui.debug + +import com.chwl.app.base.BaseViewBindingActivity +import com.chwl.app.databinding.DebugActivityBinding +import com.netease.nim.uikit.StatusBarUtil + +class DebugActivity : BaseViewBindingActivity() { + override fun init() { + initWhiteTitleBar("调试") + initSVGAList() + } + + private fun initSVGAList() { + val adapter = DebugAdapter() + binding.recyclerView.adapter = adapter +// binding.recyclerView.setItemViewCacheSize(-1) + val svgaList = listOf( + "https://image.pekolive.com/花和玫瑰.svga", + "https://image.pekolive.com/firecrown.svga", + "https://image.pekolive.com/ningtangchengbaoqietu.svga", + "https://image.pekolive.com/xunmengfengche.svga", + "https://image.pekolive.com/tonghuaqiyuan1334.svga", + "https://image.pekolive.com/mengquyinhe.svga", + "https://image.pekolive.com/duqinghuashu.svga", + "https://image.pekolive.com/juzhijingling.svga", + "https://image.pekolive.com/3121_aixintouwei.svga", + "https://image.pekolive.com/4051_langmanyewan.svga" + ) + val list = ArrayList() + list.addAll(svgaList) + list.addAll(svgaList) + adapter.setNewData(list) + binding.btnRefreshAll.setOnClickListener { + adapter.notifyDataSetChanged() + } + binding.btnRefresh.setOnClickListener { + adapter.notifyItemChanged(5, true) + } + } + + override fun needSteepStateBar(): Boolean { + return true + } + + override fun setStatusBar() { + super.setStatusBar() + StatusBarUtil.transparencyBar(this) + StatusBarUtil.StatusBarLightMode(this) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/ui/debug/DebugAdapter.kt b/app/src/main/java/com/chwl/app/ui/debug/DebugAdapter.kt new file mode 100644 index 000000000..2754e8ea8 --- /dev/null +++ b/app/src/main/java/com/chwl/app/ui/debug/DebugAdapter.kt @@ -0,0 +1,47 @@ +package com.chwl.app.ui.debug + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.chwl.app.R +import com.chwl.library.widget.SVGAView +import com.example.lib_utils.log.ILog + +class DebugAdapter : BaseQuickAdapter(R.layout.debug_item_svga), ILog { + + private val svgaCache = SVGAView.newCache(10) + override fun convertPayloads( + helper: BaseViewHolder, + item: String?, + payloads: MutableList + ) { + super.convertPayloads(helper, item, payloads) + logD("convertPayloads holder:${helper.absoluteAdapterPosition} #${helper.hashCode()} SVGAView") + val svgaView = helper.getView(R.id.svga_view) + svgaView.loadUrl(item) + } + + override fun convert(helper: BaseViewHolder, item: String?) { + logD("convert holder:${helper.absoluteAdapterPosition} #${helper.hashCode()} SVGAView") + helper.setText(R.id.tv_name, helper.absoluteAdapterPosition.toString()) + val item = getItem(helper.bindingAdapterPosition) + val svgaView = helper.getView(R.id.svga_view) + svgaView.bindCache(svgaCache) + svgaView.setLogTag(helper.absoluteAdapterPosition.toString()) + svgaView.loadUrl(item) + } + + override fun onViewAttachedToWindow(holder: BaseViewHolder) { + super.onViewAttachedToWindow(holder) + logD("onViewAttachedToWindow holder:${holder.absoluteAdapterPosition} #${holder.hashCode()} SVGAView") +// val item = getItem(holder.bindingAdapterPosition) +// val svgaView = holder.getView(R.id.svga_view) +// svgaView.bindCache(SVGAView.newCache(10)) +// svgaView.setLogTag(holder.absoluteAdapterPosition.toString()) +// svgaView.loadUrl(item) + } + + override fun onViewDetachedFromWindow(holder: BaseViewHolder) { + super.onViewDetachedFromWindow(holder) + logD("onViewDetachedFromWindow holder:${holder.absoluteAdapterPosition} #${holder.hashCode()} SVGAView") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/ui/setting/SettingActivity.kt b/app/src/main/java/com/chwl/app/ui/setting/SettingActivity.kt index 4c7b48832..181ba5e63 100644 --- a/app/src/main/java/com/chwl/app/ui/setting/SettingActivity.kt +++ b/app/src/main/java/com/chwl/app/ui/setting/SettingActivity.kt @@ -13,6 +13,7 @@ import com.chwl.app.base.BaseViewBindingActivity import com.chwl.app.common.widget.dialog.DialogManager.OkCancelDialogListener import com.chwl.app.databinding.ActivitySettingBinding import com.chwl.app.notify.RoomNotifyManager +import com.chwl.app.ui.debug.DebugActivity import com.chwl.app.ui.im.avtivity.BlackListManageActivity import com.chwl.app.ui.language.LanguageActivity import com.chwl.app.ui.login.BindPhoneActivity @@ -221,6 +222,7 @@ class SettingActivity : BaseViewBindingActivity(), View. } private fun debug() { + startActivity(Intent(this, DebugActivity::class.java)) // CommonWebViewActivity.start(this,"https://api.molistar.xyz/molistar/activity/2024-invitationFission/index.html") // PublicChatRoomMessageActivity.start(this) // MyDecorationActivity.start(this,0) 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 d447e25c2..cc57b5ecd 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 @@ -25,8 +25,9 @@ import com.chwl.app.ui.user.adapter.UserInfoTopAlbumAdapter; import com.chwl.app.ui.user.fragment.UserInfoDataFragment; import com.chwl.app.ui.user.fragment.UserInfoDynamicFragment; import com.chwl.app.utils.AppBarStateChangeListener; +import com.chwl.app.utils.AvatarHelper; +import com.chwl.library.widget.SVGAView; import com.chwl.core.decoration.headwear.bean.HeadWearInfo; -import com.chwl.core.noble.NobleUtil; import com.example.lib_utils.UiUtils; import com.google.android.material.appbar.AppBarLayout; import com.netease.nim.uikit.StatusBarUtil; @@ -254,6 +255,7 @@ public class UserInfoActivity extends BaseBindingActivity - + + + + + + + + +