Files
webtoon-viewer/app/src/main/java/com/webtoonviewer/ui/DialogAutoScrollSpeedFragment.kt

75 lines
2.6 KiB
Kotlin

package com.webtoonviewer.ui
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import androidx.fragment.app.DialogFragment
import com.google.android.material.tabs.TabLayout
import com.webtoonviewer.R
import com.webtoonviewer.utils.SharedPreferencesHelper
class DialogAutoScrollSpeedFragment: DialogFragment() {
private lateinit var speedPreferences: SharedPreferencesHelper
companion object {
private const val ARG_PARAM = "param"
fun newInstance(param: String): DialogAutoScrollSpeedFragment {
val fragment = DialogAutoScrollSpeedFragment()
val args = Bundle().apply {
putString(ARG_PARAM, param)
}
fragment.arguments = args
return fragment
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.dialog_auto_scroll_speed, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
speedPreferences = SharedPreferencesHelper(requireContext(), "auto_scroll_speed")
val tabLayout: TabLayout = view.findViewById(R.id.tabLayoutDialogAutoScrollSpeed)
// Adding tabs to TabLayout
val tabs = listOf("1x", "2x", "3x", "4x", "5x")
for (tab in tabs) {
tabLayout.addTab(tabLayout.newTab().setText(tab))
}
val title = arguments?.getString(ARG_PARAM) ?: ""
val textView: TextView = view.findViewById(R.id.textViewImageDialogTitle)
textView.text = title
val savedTab = speedPreferences.readData(title, "1x")
// Set initial selected tab
val initialTabIndex = tabs.indexOf(savedTab)
tabLayout.getTabAt(initialTabIndex)?.select()
// Handle tab selection
tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
tab?.let {
val selectedText = it.text.toString()
speedPreferences.saveData(title, selectedText)
dismiss()
}
}
override fun onTabUnselected(tab: TabLayout.Tab?) {}
override fun onTabReselected(tab: TabLayout.Tab?) {}
})
}
}