@@ -11,13 +11,16 @@ import androidx.fragment.app.Fragment
1111
1212private const val ARG_PARAM1 = " active" ;
1313private const val ARG_PARAM2 = " rest" ;
14+ private const val ARG_PARAM3 = " sets" ;
1415
1516class SettingsFragment : Fragment () {
1617 private var defaultActiveTime: Int = 45 ;
1718 private var defaultRestTime: Int = 15 ;
1819 private var mainActivity: MainActivity ? = null ;
1920 private var activeInput: EditText ? = null ;
2021 private var restInput: EditText ? = null ;
22+ private var setsInput: EditText ? = null ;
23+ private var defaultSets: Int = 0 ;
2124
2225 override fun onAttach (context : Context ) {
2326 super .onAttach(context);
@@ -30,6 +33,7 @@ class SettingsFragment : Fragment() {
3033 arguments?.let {
3134 defaultActiveTime = it.getInt(ARG_PARAM1 );
3235 defaultRestTime = it.getInt(ARG_PARAM2 );
36+ defaultSets = it.getInt(ARG_PARAM3 , 0 );
3337 }
3438 }
3539
@@ -48,6 +52,12 @@ class SettingsFragment : Fragment() {
4852 activeInput!! .setText(defaultActiveTime.toString());
4953 restInput = view.findViewById(R .id.restTime);
5054 restInput!! .setText(defaultRestTime.toString());
55+ setsInput = view.findViewById(R .id.setsCount);
56+ if (defaultSets > 0 ) {
57+ setsInput!! .setText(defaultSets.toString());
58+ } else {
59+ setsInput!! .setText(" " );
60+ }
5161
5262 view.findViewById<View >(R .id.activeTime_less).setOnClickListener {
5363 changeActiveValue(activeInput!! , defaultActiveTime, - 5 );
@@ -65,6 +75,14 @@ class SettingsFragment : Fragment() {
6575 changeRestValue(restInput!! , defaultRestTime, 5 );
6676 }
6777
78+ view.findViewById<View >(R .id.sets_less).setOnClickListener {
79+ changeSetsValue(- 1 );
80+ }
81+
82+ view.findViewById<View >(R .id.sets_more).setOnClickListener {
83+ changeSetsValue(1 );
84+ }
85+
6886 view.findViewById<View >(R .id.beginBtn).setOnClickListener { startTimer(); };
6987 }
7088
@@ -82,8 +100,18 @@ class SettingsFragment : Fragment() {
82100 editText.setText(newValue.toString());
83101 }
84102
103+ private fun changeSetsValue (delta : Int ) {
104+ val current = setsInput!! .text.toString().toIntOrNull() ? : 0 ;
105+ val newVal = (current + delta).coerceAtLeast(0 );
106+ if (newVal == 0 ) {
107+ setsInput!! .setText(" " );
108+ } else {
109+ setsInput!! .setText(newVal.toString());
110+ }
111+ }
112+
85113 override fun onSaveInstanceState (outState : Bundle ) {
86- if (activeInput == null || restInput == null ) {
114+ if (activeInput == null || restInput == null || setsInput == null ) {
87115 return ;
88116 }
89117 outState.putInt(
@@ -96,39 +124,47 @@ class SettingsFragment : Fragment() {
96124 Integer .parseInt(restInput!! .text.toString())
97125 );
98126
127+ outState.putInt(
128+ " settings.sets" ,
129+ setsInput!! .text.toString().toIntOrNull() ? : 0
130+ );
131+
99132 super .onSaveInstanceState(outState);
100133 }
101134
102135 override fun onDestroy () {
103136 super .onDestroy();
104137
105- if (activeInput == null || restInput == null ) {
138+ if (activeInput == null || restInput == null || setsInput == null ) {
106139 return ;
107140 }
108141 mainActivity!! .savePreferences(
109142 Integer .parseInt(activeInput!! .text.toString()),
110- Integer .parseInt(restInput!! .text.toString())
143+ Integer .parseInt(restInput!! .text.toString()),
144+ setsInput!! .text.toString().toIntOrNull() ? : 0
111145 );
112146 }
113147
114148 companion object {
115149 @JvmStatic
116- fun newInstance (active : Int , rest : Int ) =
150+ fun newInstance (active : Int , rest : Int , sets : Int ) =
117151 SettingsFragment ().apply {
118152 arguments = Bundle ().apply {
119153 putInt(ARG_PARAM1 , active);
120154 putInt(ARG_PARAM2 , rest);
155+ putInt(ARG_PARAM3 , sets);
121156 }
122157 };
123158 }
124159
125160 private fun startTimer () {
126161 var activeTime = Integer .parseInt(requireView().findViewById<EditText >(R .id.activeTime).text.toString());
127162 var restTime = Integer .parseInt(requireView().findViewById<EditText >(R .id.restTime).text.toString());
163+ val sets = requireView().findViewById<EditText >(R .id.setsCount).text.toString().toIntOrNull() ? : 0 ;
128164 if (activeTime < 5 )
129165 activeTime = 5 ;
130166 if (restTime < 0 )
131167 restTime = 0 ;
132- mainActivity!! .startTimer(activeTime, restTime);
168+ mainActivity!! .startTimer(activeTime, restTime, sets );
133169 }
134170}
0 commit comments