diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt index a19395a..60a20e8 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt @@ -117,7 +117,7 @@ class ChatSettingView @JvmOverloads constructor( id = 2L, name = "Sound-2", description = "This is description for sound-2", - isMale = true, + isMale = false, imgUrl = "" ), @@ -133,7 +133,7 @@ class ChatSettingView @JvmOverloads constructor( id = 4L, name = "Sound-4", description = "This is description for sound-4", - isMale = true, + isMale = false, imgUrl = "" ), diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt index f0b789b..a2c1d25 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt @@ -20,6 +20,8 @@ class FontSetView @JvmOverloads constructor( private var mBinding: LayoutFontSetViewBinding private var mFontValue = 16 // 12, 14, 16, 18, 20 + private val mFontMinValue = 16 + private val mFontMaxValue = 20 init { mBinding = LayoutFontSetViewBinding.inflate(LayoutInflater.from(context), this, true) @@ -32,13 +34,17 @@ class FontSetView @JvmOverloads constructor( private fun setupClickListeners() { with (mBinding) { ivFontPlus.setOnClickListener { - mFontValue -= GAP + if (mFontValue > mFontMinValue) { + mFontValue -= GAP + } tvFontValue.text = mFontValue.toString() levelSeekbar.setLevel((mFontValue - 16)/GAP) } ivFontAdd.setOnClickListener { - mFontValue += GAP + if (mFontValue < mFontMinValue) { + mFontValue += GAP + } tvFontValue.text = mFontValue.toString() levelSeekbar.setLevel((mFontValue - 16)/GAP) } @@ -50,6 +56,12 @@ class FontSetView @JvmOverloads constructor( fromUser: Boolean ) { mFontValue = 16 + level * GAP + if (mFontValue > mFontMaxValue) { + mFontValue = mFontMaxValue + } + if (mFontValue < mFontMinValue) { + mFontValue = mFontMinValue + } tvFontValue.text = mFontValue.toString() } diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt index 90301a1..697af5c 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt @@ -110,7 +110,7 @@ class LevelSeekBar @JvmOverloads constructor( } private fun drawTrack(canvas: Canvas) { - val centerY = height / 2f + val centerY = height / 2f + 3 // TODO check y location val trackTop = centerY - trackHeight / 2 val trackBottom = centerY + trackHeight / 2 diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandBubbleSubView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandBubbleSubView.kt index 3f80e8e..f1e53fc 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandBubbleSubView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandBubbleSubView.kt @@ -46,7 +46,7 @@ class ExpandBubbleSubView @JvmOverloads constructor( }.setup { addType(R.layout.layout_item_setting_bubble) - onClick(R.id.tv_select) { + onClick(R.id.iv_select) { val bubble = getModel() if (!bubble.select) { itemsRv.bindingAdapter.models?.filterIsInstance()?.forEach { item -> diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSelectView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSelectView.kt index 7822393..1c3b6a3 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSelectView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSelectView.kt @@ -5,18 +5,15 @@ import android.animation.AnimatorListenerAdapter import android.animation.ObjectAnimator import android.animation.ValueAnimator import android.content.Context -import android.graphics.drawable.GradientDrawable import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import android.view.animation.AccelerateDecelerateInterpolator import android.widget.LinearLayout -import android.widget.TextView import com.remax.visualnovel.R import com.remax.visualnovel.databinding.LayoutExpandSelectViewBinding -import com.remax.visualnovel.databinding.LayoutSettingSoundSubViewBinding import com.remax.visualnovel.entity.response.ChatSound -import com.remax.visualnovel.utils.spannablex.utils.dp + class ExpandSoundSelectView @JvmOverloads constructor( @@ -43,6 +40,12 @@ class ExpandSoundSelectView @JvmOverloads constructor( setTitleText(R.string.title_sound_actor) setTitleIcon(R.mipmap.setting_sound_icon) setupClickListeners() + + mExpandView.setEventListener(object: ExpandSoundSubView.IEventListener { + override fun onSoundSelected(sound: ChatSound) { + setTitleText(sound.name) + } + }) } private fun setupClickListeners() { @@ -58,6 +61,10 @@ class ExpandSoundSelectView @JvmOverloads constructor( mBinding.titleText.text = context.resources.getString(titleRes) } + fun setTitleText(title: String) { + mBinding.titleText.text = title + } + fun setItems(newItems: List) { mExpandView.setItems(newItems) } diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSubView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSubView.kt index b27760c..66c9283 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSubView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandSoundSubView.kt @@ -8,7 +8,6 @@ import androidx.recyclerview.widget.RecyclerView import com.drake.brv.annotaion.DividerOrientation import com.drake.brv.utils.bindingAdapter import com.drake.brv.utils.divider -import com.drake.brv.utils.grid import com.drake.brv.utils.linear import com.drake.brv.utils.models import com.drake.brv.utils.setup @@ -17,7 +16,8 @@ import com.remax.visualnovel.databinding.LayoutItemSettingSoundBinding import com.remax.visualnovel.databinding.LayoutSettingSoundSubViewBinding import com.remax.visualnovel.entity.response.ChatSound import com.remax.visualnovel.extension.glide.load -import com.remax.visualnovel.widget.uitoken.changeBackground +import com.remax.visualnovel.utils.ResUtil +import com.remax.visualnovel.widget.uitoken.setBgColorDirectly import com.remax.visualnovel.widget.uitoken.view.UITokenLinearLayout class ExpandSoundSubView @JvmOverloads constructor( @@ -28,6 +28,13 @@ class ExpandSoundSubView @JvmOverloads constructor( private lateinit var items: List private var mBinding: LayoutSettingSoundSubViewBinding + private lateinit var mEventListener: IEventListener + + + interface IEventListener { + fun onSoundSelected(sound: ChatSound) + } + init { mBinding = LayoutSettingSoundSubViewBinding.inflate(LayoutInflater.from(context), this, true) @@ -45,14 +52,15 @@ class ExpandSoundSubView @JvmOverloads constructor( } - fun setSelectedSound() { + fun setEventListener(eventListener: IEventListener) { + mEventListener = eventListener } private fun initRv(itemsRv: RecyclerView) { itemsRv.linear(VERTICAL) .divider { - setDivider(16, true) + setDivider(5, true) orientation = DividerOrientation.VERTICAL }.setup { addType(R.layout.layout_item_setting_sound) @@ -62,14 +70,14 @@ class ExpandSoundSubView @JvmOverloads constructor( playActorSound(bubble) } - onClick(R.id.tv_select) { - val bubble = getModel() - if (!bubble.select) { + onClick(R.id.item_root) { + val sound = getModel() + if (!sound.select) { itemsRv.bindingAdapter.models?.filterIsInstance()?.forEach { item -> - item.select = item == bubble + item.select = item == sound } itemsRv.bindingAdapter.notifyDataSetChanged() - setSelectedSound() + mEventListener.onSoundSelected(sound) } } @@ -83,9 +91,10 @@ class ExpandSoundSubView @JvmOverloads constructor( } tvSoundName.text = item.name - itemRoot.changeBackground(backgroundUIColorToken = if (item.isMale) R.string.male_bg else R.string.female_bg) - tvSoundDescrible.setTextColor(context.resources.getColor(if (item.isMale) R.color.male_text_color else R.color.female_text_color)) + itemRoot.setBgColorDirectly(bgColor = if (item.isMale) R.color.male_bg else R.color.female_bg, radius = ResUtil.getPixelSize(R.dimen.dp_10).toFloat()) + tvSoundDescrible.setTextColor(ResUtil.getColor(if (item.isMale) R.color.male_text_color else R.color.female_text_color)) tvSoundDescrible.text = item.description + ivSelect.setImageResource(if (item.select) R.drawable.sound_item_selected else R.drawable.sound_item_unselected) } } } diff --git a/VisualNovel/app/src/main/res/drawable/radio_button_selector.xml b/VisualNovel/app/src/main/res/drawable/radio_button_selector.xml new file mode 100644 index 0000000..4e555d0 --- /dev/null +++ b/VisualNovel/app/src/main/res/drawable/radio_button_selector.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/drawable/radio_checked.xml b/VisualNovel/app/src/main/res/drawable/radio_checked.xml new file mode 100644 index 0000000..43d9ea9 --- /dev/null +++ b/VisualNovel/app/src/main/res/drawable/radio_checked.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/drawable/radio_unchecked.xml b/VisualNovel/app/src/main/res/drawable/radio_unchecked.xml new file mode 100644 index 0000000..429bd0e --- /dev/null +++ b/VisualNovel/app/src/main/res/drawable/radio_unchecked.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/drawable/sound_item_selected.xml b/VisualNovel/app/src/main/res/drawable/sound_item_selected.xml new file mode 100644 index 0000000..780ba89 --- /dev/null +++ b/VisualNovel/app/src/main/res/drawable/sound_item_selected.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/drawable/sound_item_unselected.xml b/VisualNovel/app/src/main/res/drawable/sound_item_unselected.xml new file mode 100644 index 0000000..bdcf875 --- /dev/null +++ b/VisualNovel/app/src/main/res/drawable/sound_item_unselected.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/layout/layout_item_setting_sound.xml b/VisualNovel/app/src/main/res/layout/layout_item_setting_sound.xml index 8b7e488..a4cc1d7 100644 --- a/VisualNovel/app/src/main/res/layout/layout_item_setting_sound.xml +++ b/VisualNovel/app/src/main/res/layout/layout_item_setting_sound.xml @@ -4,9 +4,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/item_root" - app:backgroundColorToken="@string/color_glo_color_orange_10" - app:radiusToken="@string/radius_m" android:padding="@dimen/dp_10" + app:advRadius="@dimen/dp_10" + app:advBgColor="@color/male_bg" > @@ -21,8 +21,8 @@ android:id="@+id/userAvatar" android:layout_width="@dimen/dp_55" android:layout_height="@dimen/dp_55" - app:backgroundColorToken="@string/color_primary_normal" - app:radiusToken="@string/radius_round" /> + app:advBgColor="@color/black" + app:advRadius="@dimen/dp_28" /> - @@ -58,7 +51,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toEndOf="@+id/left_container" - android:layout_toStartOf="@+id/tv_select" + android:layout_toStartOf="@+id/iv_select" android:layout_marginHorizontal="@dimen/dp_9" android:layout_centerVertical="true" android:orientation="vertical" diff --git a/VisualNovel/app/src/main/res/layout/layout_setting_sound_sub_view.xml b/VisualNovel/app/src/main/res/layout/layout_setting_sound_sub_view.xml index a7ba96e..a80504e 100644 --- a/VisualNovel/app/src/main/res/layout/layout_setting_sound_sub_view.xml +++ b/VisualNovel/app/src/main/res/layout/layout_setting_sound_sub_view.xml @@ -12,12 +12,12 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" - app:backgroundColorToken="@string/color_chat_setting_item_bg" - app:radiusToken="@string/radius_m" + app:advRadius="@dimen/dp_12" + app:advBgColor="@color/chat_setting_sex_radio_bg" android:padding="@dimen/dp_12" > - + app:radioCheck="true" />--> + + + + + + + + + diff --git a/VisualNovel/app/src/main/res/values/colors.xml b/VisualNovel/app/src/main/res/values/colors.xml index 822ac50..771454a 100644 --- a/VisualNovel/app/src/main/res/values/colors.xml +++ b/VisualNovel/app/src/main/res/values/colors.xml @@ -216,6 +216,9 @@ #ffa4a8b7 + #ff241e2f + +