Rokid/app/src/main/java/com/yuanxuan/rokid/ui/BrightnessFragment.kt

68 lines
2.1 KiB
Kotlin

package com.yuanxuan.rokid.ui
import android.os.Bundle
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import com.yuanxuan.rokid.R
import com.yuanxuan.rokid.databinding.FragmentSettingBinding
import kotlinx.coroutines.launch
class BrightnessFragment : Fragment() {
private lateinit var binding: FragmentSettingBinding
private val viewModel by viewModels<SettingViewModel>()
private val adapter by lazy {
SeekBarAdapter()
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = FragmentSettingBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.title.text = resources.getString(R.string.setting_brightness_title)
binding.tip.text = resources.getString(R.string.setting_brightness_tip)
binding.recyclerView.adapter = adapter
viewLifecycleOwner.lifecycleScope.launch {
viewModel.brightnessFlow.collect { data ->
adapter.submitList(data)
}
}
binding.root.requestFocus()
binding.root.setOnKeyListener { _, _, event ->
return@setOnKeyListener if (event.action == KeyEvent.ACTION_UP) {
when (event.keyCode) {
KeyEvent.KEYCODE_DPAD_RIGHT -> {
viewModel.brightnessAdd()
true
}
KeyEvent.KEYCODE_DPAD_LEFT -> {
viewModel.brightnessSubtract()
true
}
else -> {
false
}
}
} else {
false
}
}
}
}