Commit c1385250 authored by kubat's avatar kubat
Browse files

bugfix

parent f7b382d6
Showing with 12 additions and 23 deletions
+12 -23
......@@ -56,38 +56,19 @@ class MarksActivity : AppCompatActivity() {
marksViewModel.marks.observe(this, LifecycleObserver {
marks = it.toMutableList()
marksAdapter.data = marks
marksAdapter.data = marksViewModel.marksForSubject(subject.key).toMutableList()
marksAdapter.notifyDataSetChanged()
recalculateAverage()
})
fab.setOnClickListener { view ->
marks.add(Mark(UUID.randomUUID().toString(), 1, 5, subject.key))
updateRecyclerView()
recalculateAverage()
marksViewModel.insert(Mark(UUID.randomUUID().toString(), 1, 5, subject.key))
}
}
fun Double.round(decimals: Int): Double {
var multiplier = 1.0
repeat(decimals) { multiplier *= 10 }
return round(this * multiplier) / multiplier
}
fun recalculateAverage()
{
var avg: Double = 0.0
if (marks.isNotEmpty()) {
var sum = 0.0
var weightSum = 0.0
marks.forEach { mark ->
sum += (mark.weight * mark.value)
weightSum += mark.weight
}
avg = (sum / weightSum).round(2)
}
average.text = getString(R.string.average) + " " + avg.toString()
average.text = getString(R.string.average) + " " + marksViewModel.getSubjectMarksAverage(subject.key)
}
fun updateRecyclerView()
......
......@@ -30,6 +30,14 @@ class MarksViewModel(application: Application) : AndroidViewModel(application) {
marks = markRepository.marks
}
fun Double.round(decimals: Int): Double {
var multiplier = 1.0
repeat(decimals) { multiplier *= 10 }
return kotlin.math.round(this * multiplier) / multiplier
}
fun getSubjectMarksAverage(subjectKey: String) : Double {
val ms = marksForSubject(subjectKey)
var sum = 0.0;
......@@ -39,7 +47,7 @@ class MarksViewModel(application: Application) : AndroidViewModel(application) {
wsum += it.weight
}
return if (wsum == 0.0) 0.0 else sum / wsum
return if (wsum == 0.0) 0.0 else (sum / wsum).round(2)
}
fun insert(mark: Mark) = viewModelScope.launch {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment