Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private fun updateFeedback() {
- val now = DateTime.now()
- val dayOfWeek = now.dayOfWeek
- val isMonday = dayOfWeek == 1
- val faceIcon: Int
- val message: String
- if (isMonday) {
- val nowWeekdayIndex = dayOfWeek - 1
- val last4WeekCalories = (1..4).sumByDouble { model.days[model.days.size - ((model.weekDays * (it + 1)) - nowWeekdayIndex)].intakeCalories.toDouble() }.toFloat()
- val average4WeeksCalories = last4WeekCalories / 4
- faceIcon = R.drawable.feedback_logging_info
- message = repository.getString(R.string.logging_cal_and_activities_feedback_info, Math.round(average4WeeksCalories))
- } else {
- val acceptedKcalOffside = 50f
- val thisWeekStart = DateUtils.getWeekStart(now)
- val thisWeekEnd = DateUtils.getWeekEnd(thisWeekStart).withMillisOfDay(0).plusDays(1)
- val daysLoggedThisWeek = model.days
- .filter { it.dateTime.isAfter(thisWeekStart.minus(1)) && it.dateTime.isBefore(thisWeekStart.plusWeeks(1)) }
- .filter { it.intakeCalories > 0f }
- .count()
- val daysInRecommendedRange = model.days
- .filter { it.dateTime.isAfter(thisWeekStart.minus(1)) && it.dateTime.isBefore(thisWeekEnd) }
- .filter {
- val intake = it.intakeCalories
- val min = it.recommendCalories - acceptedKcalOffside
- val max = it.recommendCalories + acceptedKcalOffside
- intake in min..max
- }
- .count()
- val value = daysInRecommendedRange.toFloat() / now.dayOfWeek.toFloat()
- if (value >= 0.5f) {
- faceIcon = R.drawable.feedback_logging_positive
- message = repository.getString(R.string.logging_cal_and_activities_feedback_positive, daysInRecommendedRange, daysLoggedThisWeek)
- } else {
- faceIcon = R.drawable.feedback_logging_negative
- message = repository.getString(R.string.logging_cal_and_activities_feedback_negative, daysInRecommendedRange, daysLoggedThisWeek)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement