1+ package com.willowtreeapps.namegame.store
2+
3+ import android.app.Dialog
4+ import android.os.Bundle
5+ import android.view.LayoutInflater
6+ import android.view.View
7+ import android.view.ViewGroup
8+ import androidx.fragment.app.DialogFragment
9+ import com.willowtreeapps.common.SettingsViewState
10+ import com.willowtreeapps.common.ui.SettingsPresenter
11+ import com.willowtreeapps.common.ui.SettingsView
12+ import com.willowtreeapps.namegame.NameGameApp
13+ import com.willowtreeapps.namegame.R
14+ import kotlinx.android.synthetic.main.fragment_settings.*
15+
16+ class SettingsDialogFragment : DialogFragment (), SettingsView {
17+
18+ var presenter: SettingsPresenter ? = null
19+
20+ companion object {
21+ fun newInstance (): SettingsDialogFragment {
22+ val f = SettingsDialogFragment ()
23+ return f
24+ }
25+ }
26+
27+ override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog {
28+ val dialog = super .onCreateDialog(savedInstanceState)
29+ return dialog
30+ }
31+
32+ override fun onCreateView (inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ): View ? {
33+ return inflater.inflate(R .layout.fragment_settings, container, false )
34+ }
35+
36+
37+ override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
38+ super .onViewCreated(view, savedInstanceState)
39+ numberPicker.minValue = 1
40+ numberPicker.maxValue = 20
41+ numberPicker.setOnValueChangedListener { _, _, newVal ->
42+ presenter?.numQuestionsChanged(newVal)
43+ }
44+ btn_ok.setOnClickListener { dismiss() }
45+ }
46+
47+ override fun onResume () {
48+ super .onResume()
49+ presenter = NameGameApp .gameEngine().attachView(this ) as SettingsPresenter
50+ }
51+
52+ override fun onPause () {
53+ super .onPause()
54+ NameGameApp .gameEngine().detachView(this )
55+ }
56+
57+ override fun showSettings (viewState : SettingsViewState ) {
58+ numberPicker.value = viewState.numQuestions
59+ }
60+ }
0 commit comments