[Modify]夺宝精灵修改

This commit is contained in:
wushaocheng
2023-09-12 10:03:24 +08:00
parent 7548b4174a
commit 63f1e02c6f
28 changed files with 182 additions and 64 deletions

View File

@@ -4,9 +4,11 @@ import android.widget.ImageView
import androidx.core.view.isGone
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.opensource.svgaplayer.SVGAImageView
import com.yizhuan.erban.R
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.erban.ui.utils.loadFromAssets
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
import com.yizhuan.xchat_android_core.utils.TextUtils
@@ -25,5 +27,28 @@ class HomeHotAdapter :
helper.setGone(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
val svgaLiving = helper.getView<SVGAImageView>(R.id.svga_living)
val avatars: Array<ImageView> = arrayOf(
helper.getView(R.id.iv_avatar_0),
helper.getView(R.id.iv_avatar_1),
helper.getView(R.id.iv_avatar_2),
helper.getView(R.id.iv_avatar_3),
helper.getView(R.id.iv_avatar_4)
)
for (i in avatars.indices) {
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
avatars[i].isGone = avatarUrl.isNullOrBlank()
avatars[i].load(avatarUrl)
}
svgaLiving.loadFromAssets("svga/home_white_living.svga")
}
override fun onViewAttachedToWindow(holder: BaseViewHolder) {
super.onViewAttachedToWindow(holder)
val svgaLiving = holder.getView<SVGAImageView>(R.id.svga_living)
svgaLiving?.loadFromAssets("svga/home_white_living.svga")
}
}

View File

@@ -4,6 +4,7 @@ import android.util.SparseArray
import androidx.core.util.forEach
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.mob.moblink.beans.ServerData.Res
import com.yizhuan.erban.base.BaseViewModel
import com.yizhuan.erban.base.Event
import com.yizhuan.erban.treasurefairy.event.UpdateDataEvent
@@ -85,6 +86,9 @@ class FairyViewModel : BaseViewModel() {
val exchangeDebrisRecordLiveData: LiveData<ListResult<ExchangeGiftInfo>> =
_exchangeDebrisRecordLiveData
private val _buyDebrisLiveData = MutableLiveData<String?>()
val buyDebrisLiveData: LiveData<String?> = _buyDebrisLiveData
init {
initPrizeInfoList()
}
@@ -468,4 +472,13 @@ class FairyViewModel : BaseViewModel() {
)
}
fun buyDebris(num: String, uid: String) {
safeLaunch(
block = {
val result = TreasureFairyModel.buyDebris(num, uid)
_buyDebrisLiveData.value = result
}
)
}
}

View File

@@ -63,6 +63,8 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
private var isSelect = false
private var mPrice = -1
companion object {
@JvmStatic
fun start(context: Context) {
@@ -109,8 +111,10 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
setFairyPriceSelect(3)
}
binding.tvBuy.setOnClickListener {
if(!isSelect){
if (!isSelect) {
toast("請選擇購買的碎片數量")
} else {
viewModel.buyDebris(mPrice.toString(), AuthModel.get().currentUid.toString())
}
}
@@ -168,6 +172,10 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
isCheck = isChecked
}
viewModel.buyDebrisLiveData.observe(this) {
toast("碎片購買成功")
}
viewModel.prizeInfoListLiveData.observe(this) {
it?.forEachIndexed { index, prizeInfo ->
if (index < fairyItems.size) {
@@ -238,8 +246,9 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
private fun setFairyPriceSelect(pos: Int) {
isSelect = true
when(pos){
1 ->{
when (pos) {
1 -> {
mPrice = 1
binding.viewPrice1.isSelected = true
binding.viewPrice2.isSelected = false
binding.viewPrice3.isSelected = false
@@ -250,7 +259,8 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
binding.tvTwo.alpha = 0.4f
binding.tvThree.alpha = 0.4f
}
2 ->{
2 -> {
mPrice = 10
binding.viewPrice1.isSelected = false
binding.viewPrice2.isSelected = true
binding.viewPrice3.isSelected = false
@@ -261,7 +271,8 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
binding.tvTwo.alpha = 1f
binding.tvThree.alpha = 0.4f
}
3 ->{
3 -> {
mPrice = 100
binding.viewPrice1.isSelected = false
binding.viewPrice2.isSelected = false
binding.viewPrice3.isSelected = true
@@ -308,7 +319,7 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
fairyItems[selectIndex].isSelected = true
}
if ((selectIndex == targetIndex || targetIndex == -2) && minCount >= 24) {
if(!isCheck) {
if (!isCheck) {
HomePrizeDialog.newInstance().show(context)
}
disposable?.dispose()
@@ -375,10 +386,10 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
*/
override fun onReceivedNimBroadcastMessage(body: String?) {
val baseProtocol: BaseProtocol<*> = try {
JSON.parseObject(body, BaseProtocol::class.java)
} catch (e: Exception) {
null
} ?: return
JSON.parseObject(body, BaseProtocol::class.java)
} catch (e: Exception) {
null
} ?: return
when (baseProtocol.first) {
CustomAttachment.CUSTOM_MSG_BOX -> if (baseProtocol.second == CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
val roomBoxPrizeAttachment = RoomBoxPrizeAttachment(

View File

@@ -51,16 +51,14 @@ class MyFairyDialog : BaseDialog<TreasureFairyDialogMyFairyBinding>() {
binding?.rg?.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rb_base -> binding?.viewPager?.currentItem = 0
R.id.rb_epic -> binding?.viewPager?.currentItem = 1
R.id.rb_legend -> binding?.viewPager?.currentItem = 2
R.id.rb_legend -> binding?.viewPager?.currentItem = 1
}
}
binding?.viewPager?.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
override fun onPageSelected(position: Int) {
when (position) {
0 -> binding?.rg?.check(R.id.rb_base)
1 -> binding?.rg?.check(R.id.rb_epic)
2 -> binding?.rg?.check(R.id.rb_legend)
1 -> binding?.rg?.check(R.id.rb_legend)
}
DemoCache.saveMyFairyIndex(position)
}
@@ -69,7 +67,6 @@ class MyFairyDialog : BaseDialog<TreasureFairyDialogMyFairyBinding>() {
childFragmentManager,
listOf(
MyFairyFragment.newInstance(MyFairyItemView.BASE),
MyFairyFragment.newInstance(MyFairyItemView.EPIC),
MyFairyFragment.newInstance(MyFairyItemView.LEGEND)
)
)

View File

@@ -33,8 +33,6 @@ class MyFairyFragment : BaseViewBindingFragment<TreasureFairyFragmentMyFairyBind
binding.fairyItem0,
binding.fairyItem1,
binding.fairyItem2,
binding.fairyItem3,
binding.fairyItem4
)
fairyItems.forEach {
it.setFairyType(fairyType)

View File

@@ -65,7 +65,7 @@ class TestFairyFragment : BaseViewBindingFragment<TreasureFairyFragmentTestFairy
getString(R.string.fairy_no_further_data_is_available)
))
.setRecyclerView(binding.recyclerView)
.setLayoutManager(GridLayoutManager(context, 5, LinearLayoutManager.VERTICAL, false))
.setLayoutManager(GridLayoutManager(context, 3, LinearLayoutManager.VERTICAL, false))
.build()
viewModel.myFairyInfoLiveData.observe(viewLifecycleOwner) {
@@ -79,7 +79,7 @@ class TestFairyFragment : BaseViewBindingFragment<TreasureFairyFragmentTestFairy
}
}
}
rvDelegate.setNewData(fairyInfos)
rvDelegate.setNewData(fairyInfos?.take(3))
}
if (fairyType == MyFairyItemView.EPIC) {
@@ -104,7 +104,7 @@ class TestFairyFragment : BaseViewBindingFragment<TreasureFairyFragmentTestFairy
viewModel.oneKeyAdd(testFairyAdapter.data)
}
if (fairyType == MyFairyItemView.EPIC) {
if (fairyType == MyFairyItemView.BASE) {
binding.viewBgAnim.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy_anim_legend)
binding.viewBgTop.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy_legend)
}

View File

@@ -40,7 +40,7 @@ public class FairyDialogWebViewActivity extends CommonWebViewActivity {
getWindow().setGravity(Gravity.BOTTOM);
View layoutRoot = findViewById(R.id.ll_root);
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) layoutRoot.getLayoutParams();
layoutParams.height = ScreenUtil.screenWidth * 1100 / 750;
layoutParams.height = ScreenUtil.screenWidth * 1245 / 750;
layoutParams.width = FrameLayout.LayoutParams.MATCH_PARENT;
layoutRoot.setLayoutParams(layoutParams);
layoutTitleBar.setVisibility(View.GONE);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_4" />
<solid android:color="@color/color_365A65" />
</shape>

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
@@ -22,7 +21,7 @@
android:id="@+id/mRecyclerRoom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_2"
android:layout_marginTop="@dimen/dp_8"
android:overScrollMode="never"
android:scrollbars="none"
app:spanCount="2"

View File

@@ -43,6 +43,61 @@
app:layout_constraintTop_toTopOf="@+id/iv_room_image"
tools:src="@drawable/tag_101" />
<FrameLayout
android:id="@+id/fl_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginBottom="12dp"
app:layout_constraintBottom_toTopOf="@+id/tv_room_title"
app:layout_constraintStart_toStartOf="@+id/iv_room_image">
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_0"
android:layout_width="22dp"
android:layout_height="22dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_1"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="18dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_2"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="36dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_3"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="54dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_avatar_4"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="72dp"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1px" />
</FrameLayout>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_room_title"
android:layout_width="0dp"
@@ -53,23 +108,31 @@
android:textSize="@dimen/sp_14"
android:textStyle="bold"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginBottom="@dimen/dp_8"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
app:layout_constraintEnd_toStartOf="@+id/tv_online_number"
app:layout_constraintBottom_toBottomOf="@+id/tv_online_number"
app:layout_constraintEnd_toStartOf="@+id/svga_living"
app:layout_constraintBottom_toBottomOf="@+id/iv_room_image"
tools:text="@string/layout_item_room_common_02" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/svga_living"
android:layout_width="@dimen/dp_10"
android:layout_height="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_2"
app:layout_constraintTop_toTopOf="@+id/tv_online_number"
app:layout_constraintBottom_toBottomOf="@+id/tv_online_number"
app:layout_constraintEnd_toStartOf="@+id/tv_online_number"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_online_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_12"
android:drawablePadding="2dp"
android:gravity="center"
android:includeFontPadding="false"
android:textColor="@color/color_white"
android:textSize="10sp"
app:drawableStartCompat="@drawable/ic_home_hot_hot"
android:textSize="@dimen/sp_11"
app:layout_constraintEnd_toEndOf="@+id/iv_room_image"
app:layout_constraintBottom_toBottomOf="@+id/iv_room_image"
tools:text="266" />

View File

@@ -100,16 +100,6 @@
android:button="@null"
android:checked="true" />
<RadioButton
android:id="@+id/rb_epic"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:layout_weight="1"
android:background="@drawable/selector_bg_fairy_my_epic"
android:button="@null" />
<RadioButton
android:id="@+id/rb_legend"
android:layout_width="0dp"

View File

@@ -12,17 +12,34 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
app:layout_constraintEnd_toStartOf="@id/fairy_item_1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <com.yizhuan.erban.treasurefairy.view.MyFairyItemView-->
<!-- android:id="@+id/fairy_item_1"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintEnd_toStartOf="@id/fairy_item_2"-->
<!-- app:layout_constraintStart_toEndOf="@id/fairy_item_0"-->
<!-- app:layout_constraintTop_toTopOf="@id/fairy_item_0" />-->
<!-- <com.yizhuan.erban.treasurefairy.view.MyFairyItemView-->
<!-- android:id="@+id/fairy_item_2"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toEndOf="@id/fairy_item_1"-->
<!-- app:layout_constraintTop_toTopOf="@id/fairy_item_0" />-->
<com.yizhuan.erban.treasurefairy.view.MyFairyItemView
android:id="@+id/fairy_item_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toStartOf="@id/fairy_item_2"
app:layout_constraintStart_toEndOf="@id/fairy_item_0"
app:layout_constraintTop_toTopOf="@id/fairy_item_0" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fairy_item_0" />
<com.yizhuan.erban.treasurefairy.view.MyFairyItemView
android:id="@+id/fairy_item_2"
@@ -30,24 +47,7 @@
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/fairy_item_1"
app:layout_constraintTop_toTopOf="@id/fairy_item_0" />
<com.yizhuan.erban.treasurefairy.view.MyFairyItemView
android:id="@+id/fairy_item_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toStartOf="@id/fairy_item_4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fairy_item_0" />
<com.yizhuan.erban.treasurefairy.view.MyFairyItemView
android:id="@+id/fairy_item_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/fairy_item_3"
app:layout_constraintTop_toTopOf="@id/fairy_item_3" />
app:layout_constraintTop_toTopOf="@id/fairy_item_1" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -133,7 +133,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="26dp"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -2,7 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_width="66dp"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginTop="5dp"