From cc68e27b2e72e41d2128e9cc294590414b9616b5 Mon Sep 17 00:00:00 2001 From: MadRat Date: Fri, 8 Feb 2019 18:47:44 +0300 Subject: [PATCH] Refractored ResultFragment --- .../ui/base_fragment/BaseFragment.kt | 10 +++--- .../abiturhelper/ui/result/ResultPresenter.kt | 25 +++++++------- .../madrat/abiturhelper/ui/result/ResultVP.kt | 12 ++++--- .../abiturhelper/ui/result/ResultView.kt | 33 +++++++++++-------- .../ui/setup_score/SetupScoreVP.kt | 2 -- app/src/main/res/layout/fragment_result.xml | 1 + 6 files changed, 45 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/madrat/abiturhelper/ui/base_fragment/BaseFragment.kt b/app/src/main/java/com/madrat/abiturhelper/ui/base_fragment/BaseFragment.kt index 6aade04..3d23ddb 100644 --- a/app/src/main/java/com/madrat/abiturhelper/ui/base_fragment/BaseFragment.kt +++ b/app/src/main/java/com/madrat/abiturhelper/ui/base_fragment/BaseFragment.kt @@ -26,11 +26,11 @@ class BaseFragment : Fragment(), BaseVP.View { socialScience: EditText?) : Bundle { val bundle = Bundle() - bundle.putString("maths", maths.text.toString()) - bundle.putString("russian", russian.text.toString()) - bundle.putString("physics", physics?.text.toString()) - bundle.putString("computerScience", computerScience?.text.toString()) - bundle.putString("socialScience", socialScience?.text.toString()) + bundle.putInt("maths", maths.text.toString().toInt()) + bundle.putInt("russian", russian.text.toString().toInt()) + physics?.text.toString().toIntOrNull()?.let { bundle.putInt("physics", it) } + computerScience?.text.toString().toIntOrNull()?.let { bundle.putInt("computerScience", it) } + socialScience?.text.toString().toIntOrNull()?.let { bundle.putInt("socialScience", it) } return bundle } } \ No newline at end of file diff --git a/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultPresenter.kt b/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultPresenter.kt index 6685dc6..e0163b5 100644 --- a/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultPresenter.kt +++ b/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultPresenter.kt @@ -1,19 +1,20 @@ package com.madrat.abiturhelper.ui.result -class ResultPresenter(private var rv: ResultVP.View) : ResultVP.Presenter { +import android.content.Context +import android.os.Bundle - lateinit var maths : String +class ResultPresenter (private var rv: ResultVP.View, private val arguments: Bundle) : ResultVP.Presenter { - /*val maths = arguments?.getString("maths") - - maths_value.text = maths - - val russian = arguments?.getString("russian") - val physics = arguments?.getString("physics") - val computerScience = arguments?.getString("computerScience") - val socialScience = arguments?.getString("socialScience")*/ + override fun returnString(key: String?):String? { + return arguments.getInt(key).toString() + } - override fun addEgeScore(): String { - return rv.setEgeScore() + override fun returnSum():String? { + val maths = arguments.getInt("maths") + val russian = arguments.getInt("russian") + val physics = arguments.getInt("physics") + val computerScience = arguments.getInt("computerScience") + val socialScience = arguments.getInt("socialScience") + return (maths + russian + physics + computerScience + socialScience).toString() } } diff --git a/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultVP.kt b/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultVP.kt index 769955c..c781d5f 100644 --- a/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultVP.kt +++ b/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultVP.kt @@ -1,15 +1,17 @@ package com.madrat.abiturhelper.ui.result -import android.os.Bundle +import android.widget.LinearLayout +import android.widget.TextView interface ResultVP { interface View { - fun setMVP() - - fun setEgeScore(): String + fun setupMVP() + fun checkField(linearLayout: LinearLayout, textViewValue: TextView, key: String) + fun setupFields() } interface Presenter { - fun addEgeScore(): String + fun returnSum():String? + fun returnString(key: String?):String? } } diff --git a/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultView.kt b/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultView.kt index d4d447a..1b2c31f 100644 --- a/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultView.kt +++ b/app/src/main/java/com/madrat/abiturhelper/ui/result/ResultView.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import com.madrat.abiturhelper.R @@ -19,9 +21,8 @@ class ResultView : Fragment(), ResultVP.View { override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - setMVP() - - resultValue.text = resultPresenter?.addEgeScore() + setupMVP() + setupFields() } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, @@ -30,21 +31,25 @@ class ResultView : Fragment(), ResultVP.View { return inflater.inflate(R.layout.fragment_result, container, false) } - override fun setMVP() { - resultPresenter = ResultPresenter(this) + override fun setupMVP() { + resultPresenter = ResultPresenter(this, arguments!!) } - override fun setEgeScore(): String { - - val maths = arguments?.getString("maths") + override fun checkField(linearLayout: LinearLayout, textViewValue: TextView, key: String) { + textViewValue.text = resultPresenter?.returnString(key) + if (textViewValue.text.toString().toInt() == 0) { + linearLayout.visibility = View.GONE + } + } - mathsValue.text = maths + override fun setupFields() { + mathsValue.text = resultPresenter?.returnString("maths") + russianValue.text = resultPresenter?.returnString("russian") - val russian = arguments?.getString("russian") - val physics = arguments?.getString("physics") - val computerScience = arguments?.getString("computerScience") - val socialScience = arguments?.getString("socialScience") + checkField(physics, physicsValue, "physics") + checkField(computerScience, computerScienceValue, "computerScience") + checkField(socialScience, socialScienceValue, "socialScience") - return maths + russian + physics + computerScience + socialScience + resultValue.text = resultPresenter?.returnSum() } } diff --git a/app/src/main/java/com/madrat/abiturhelper/ui/setup_score/SetupScoreVP.kt b/app/src/main/java/com/madrat/abiturhelper/ui/setup_score/SetupScoreVP.kt index 620d271..2db46bb 100644 --- a/app/src/main/java/com/madrat/abiturhelper/ui/setup_score/SetupScoreVP.kt +++ b/app/src/main/java/com/madrat/abiturhelper/ui/setup_score/SetupScoreVP.kt @@ -1,7 +1,5 @@ package com.madrat.abiturhelper.ui.setup_score -import androidx.fragment.app.Fragment - interface SetupScoreVP { interface View { fun setMVP() diff --git a/app/src/main/res/layout/fragment_result.xml b/app/src/main/res/layout/fragment_result.xml index 306e33f..65a4695 100644 --- a/app/src/main/res/layout/fragment_result.xml +++ b/app/src/main/res/layout/fragment_result.xml @@ -73,6 +73,7 @@