Version 3.1(After Revision):

Added Lihat Laporan Button in dashboard to move into the new Chart
Added Indonesia Full Translation Full
This commit is contained in:
Diassdp
2025-07-11 15:30:41 +07:00
parent 1aa29f0e23
commit 7768210d64
11 changed files with 241 additions and 220 deletions

View File

@ -15,7 +15,7 @@
android:theme="@style/Theme.HealthJournal"
tools:targetApi="31" >
<activity
android:name=".ui.laporan"
android:name=".ui.laporan.laporan"
android:exported="false" />
<activity
android:name=".laporan"

View File

@ -11,19 +11,17 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.firebase.Firebase
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.FirebaseDatabase
import com.google.firebase.database.ValueEventListener
import com.google.firebase.database.database
import com.healthjournal.R
import com.healthjournal.data.ResultData
import com.healthjournal.databinding.ActivityMainBinding
import com.healthjournal.receiver.ReminderReceiver
import com.healthjournal.ui.journal.input.JournalInputActivity
import com.healthjournal.ui.laporan
import com.healthjournal.ui.laporan.laporan
import com.healthjournal.ui.login.LoginActivity
import com.healthjournal.ui.profile.ProfileActivity
import com.healthjournal.ui.recommendation.RecommendationActivity
@ -148,9 +146,15 @@ class MainActivity : AppCompatActivity() {
binding.btnRecomendation.setOnClickListener {
startActivity(Intent(this, RecommendationActivity::class.java))
}
binding.btnInputData.setOnClickListener {
startActivity(Intent(this, JournalInputActivity::class.java))
if (dailyReport) {
Toast.makeText(this, "Laporan harian sudah dibuat", Toast.LENGTH_SHORT).show()
} else {
startActivity(Intent(this, JournalInputActivity::class.java))
}
}
binding.btnReport.setOnClickListener {
val intent = Intent(this, laporan::class.java)
intent.putExtra("healthDataList", ArrayList(healthDataList))
@ -184,6 +188,7 @@ class MainActivity : AppCompatActivity() {
binding.clDailyReport1.visibility = View.INVISIBLE
binding.clDailyReport2.visibility = View.VISIBLE
binding.btnRecomendation.visibility = View.VISIBLE
binding.btnInputData.visibility = View.GONE
binding.ivCuboidIndicator1Green.visibility = View.VISIBLE
binding.ivCuboidIndicator2Green.visibility = View.VISIBLE
binding.ivCuboidIndicator1Orange.visibility = View.INVISIBLE
@ -192,6 +197,7 @@ class MainActivity : AppCompatActivity() {
binding.clDailyReport1.visibility = View.VISIBLE
binding.clDailyReport2.visibility = View.INVISIBLE
binding.btnRecomendation.visibility = View.GONE
binding.btnInputData.visibility = View.VISIBLE
binding.ivCuboidIndicator1Green.visibility = View.INVISIBLE
binding.ivCuboidIndicator2Green.visibility = View.INVISIBLE
binding.ivCuboidIndicator1Orange.visibility = View.VISIBLE

View File

@ -3,15 +3,10 @@ package com.healthjournal.ui.journal.detail
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.google.firebase.Firebase
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.database
import com.healthjournal.R
import com.healthjournal.data.ResultData
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import com.healthjournal.databinding.ActivityDetailJournalBinding
class DetailJournalActivity : AppCompatActivity() {
@ -45,6 +40,7 @@ class DetailJournalActivity : AppCompatActivity() {
else -> "$completedGoals/$totalGoals goals completed"
}
}
private fun populateDetailJournal() {
val userID = user.currentUser?.uid
val journalID = intent.getStringExtra("JOURNAL_KEY")
@ -56,18 +52,16 @@ class DetailJournalActivity : AppCompatActivity() {
val result = task.result
if (result.exists()) {
val bmiValue = result.child("BMI").value.toString().toFloatOrNull() ?: 0f
Log.d("debug", bmiValue.toString())
binding.tvBloodsugarLevel2.text = "${result.child("bloodSugar").value ?: "N/A"} mg/dL"
binding.tvBloodsugarDesc.text = result.child("recommendation").child("bloodSugarAnalysis").value?.toString() ?: "No data"
binding.tvBloodpressureLevel2.text = "${result.child("bloodPressureDIA").value ?: "N/A"}/${result.child("bloodPressureSYS").value ?: "N/A"} mm Hg"
binding.tvBloodpressureLevel2.text = "${result.child("bloodPressureSYS").value ?: "N/A"}/${result.child("bloodPressureDIA").value ?: "N/A"} mm Hg"
binding.tvBloodpressureDesc.text = result.child("recommendation").child("bloodPressureAnalysis").value?.toString() ?: "No data"
binding.tvBMILevel2.text = String.format("%.2f BMI", bmiValue)
binding.tvBMIDesc.text = result.child("recommendation").child("BMIAnalysis").value?.toString() ?: "No data"
binding.tvJournalNote.text = result.child("note").value?.toString() ?: "No notes available"
val taskListSnapshot = result.child("recommendation").child("tasks")
Log.d("debug", taskListSnapshot.toString())
val taskList = mutableListOf<Map<String, Any>>()
if (taskListSnapshot.exists()) {
for (taskSnapshot in taskListSnapshot.children) {
@ -90,28 +84,28 @@ class DetailJournalActivity : AppCompatActivity() {
}
}
private fun deleteHistory() {
val userID = user.currentUser?.uid
val journalDate = intent.getStringExtra("JOURNAL_DATE")
if (userID != null && journalDate != null) {
database.getReference("users").child(userID).child("journal").child(journalDate)
val journalID = intent.getStringExtra("JOURNAL_KEY")
if (userID != null && journalID != null) {
database.getReference("users").child(userID).child("journal").child(journalID)
.removeValue()
.addOnCompleteListener(DetailJournalActivity()) {
.addOnCompleteListener(this) {
if (it.isSuccessful) {
Toast.makeText(this, "History deleted successfully", Toast.LENGTH_SHORT)
.show()
Toast.makeText(this, "History deleted successfully", Toast.LENGTH_SHORT).show()
finish()
} else {
Toast.makeText(this, it.exception!!.message, Toast.LENGTH_SHORT).show()
Toast.makeText(this, it.exception?.message, Toast.LENGTH_SHORT).show()
}
}
} else {
Toast.makeText(this, "Gagal menghapus: ID tidak ditemukan", Toast.LENGTH_SHORT).show()
}
}
private fun setupListener() {
binding.btnDeleteHistory.setOnClickListener() {
binding.btnDeleteHistory.setOnClickListener {
deleteHistory()
}
}
}
}

View File

@ -1,10 +1,9 @@
package com.healthjournal.ui
package com.healthjournal.ui.laporan
import MyMarkerView
import android.content.Intent
import android.os.Bundle
import android.view.MotionEvent
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import com.github.mikephil.charting.charts.LineChart
@ -16,7 +15,6 @@ import com.github.mikephil.charting.interfaces.datasets.ILineDataSet
import com.github.mikephil.charting.listener.ChartTouchListener
import com.github.mikephil.charting.listener.OnChartGestureListener
import com.github.mikephil.charting.listener.OnChartValueSelectedListener
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.healthjournal.R
import com.healthjournal.data.ResultData
import com.healthjournal.ui.journal.detail.DetailJournalActivity

View File

@ -1,5 +1,6 @@
package com.healthjournal.ui.profile
import android.app.DatePickerDialog
import android.content.Intent
import android.os.Bundle
import android.util.Log
@ -14,6 +15,7 @@ import com.google.firebase.database.database
import com.healthjournal.R
import com.healthjournal.databinding.ActivityProfileBinding
import com.healthjournal.ui.login.LoginActivity
import java.util.Calendar
class ProfileActivity : AppCompatActivity() {
private lateinit var binding: ActivityProfileBinding
@ -36,15 +38,36 @@ class ProfileActivity : AppCompatActivity() {
binding.btnLogout.setOnClickListener {
logout()
}
binding.btnUpdateData.setOnClickListener {
updateData()
}
binding.edtDate.setOnClickListener {
datepicker()
}
}
private fun logout(){
private fun datepicker(){
val calendar = Calendar.getInstance()
val year = calendar.get(Calendar.YEAR)
val month = calendar.get(Calendar.MONTH)
val day = calendar.get(Calendar.DAY_OF_MONTH)
val datePickerDialog = DatePickerDialog(
this,
{ _, selectedYear, selectedMonth, selectedDay ->
val selectedDate = "$selectedDay/${selectedMonth + 1}/$selectedYear"
binding.edtDate.setText(selectedDate)
},
year, month, day
)
datePickerDialog.show()
}
private fun logout() {
user.signOut()
startActivity(Intent(this, LoginActivity::class.java))
val intent = Intent(this, LoginActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)
finish()
}
@ -81,7 +104,4 @@ class ProfileActivity : AppCompatActivity() {
}
}
}
}

View File

@ -7,6 +7,7 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.auth.FirebaseAuth
import com.healthjournal.databinding.ActivityRegisterBinding
import com.healthjournal.ui.login.LoginActivity
import com.healthjournal.ui.users.UsersInputActivity
class RegisterActivity : AppCompatActivity() {
@ -26,7 +27,8 @@ class RegisterActivity : AppCompatActivity() {
registerUser()
}
binding.btnLogin.setOnClickListener{
startActivity(Intent(this@RegisterActivity, LoginActivity::class.java))
finish()
}
}

View File

@ -26,7 +26,6 @@ class UsersInputActivity : AppCompatActivity() {
user = FirebaseAuth.getInstance()
val gender = arrayOf("Male", "Female", "Other")
// Adapter for conditions
val conditionAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, gender)
binding.dropdownGender.setAdapter(conditionAdapter)

View File

@ -11,7 +11,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_height="265dp"
android:background="@drawable/bg_dashboard"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -41,7 +41,7 @@
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.375"
app:layout_constraintHorizontal_bias="0.248"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
@ -161,25 +161,23 @@
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="@+id/tv_title"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/tv_BMI_level1"
app:layout_constraintStart_toStartOf="@+id/tv_title"
app:layout_constraintTop_toBottomOf="@id/tv_BMI_desc" />
<TextView
android:id="@+id/tv_goals2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
android:layout_marginLeft="2dp"
android:textColor="@color/Accent_Light_Red"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@+id/tv_goals1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@id/tv_goals1"
app:layout_constraintTop_toTopOf="@+id/tv_goals1"
tools:text="3" />
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/tv_goals1"
app:layout_constraintStart_toStartOf="@+id/tv_goals1"
app:layout_constraintTop_toBottomOf="@+id/tv_goals1"
tools:text="Goals Completed" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView

View File

@ -203,18 +203,24 @@
<EditText
android:id="@+id/edt_gender"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<EditText
android:id="@+id/edt_age"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<EditText
android:id="@+id/edt_height"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />

View File

@ -240,7 +240,7 @@ z
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginTop="10dp"
android:text="Blood Sugar Level : "
android:text="Tingkat Gula Darah : "
android:textColor="@color/Primary_Light"
app:layout_constraintStart_toStartOf="@+id/tv_sub_title_2"
app:layout_constraintTop_toBottomOf="@+id/tv_sub_title_2" />
@ -276,7 +276,7 @@ z
android:layout_height="wrap_content"
android:textColor="@color/Primary_Light"
android:layout_marginTop="10dp"
android:text="Blood Pressure Level : "
android:text="Tingkat Tekanan Darah : "
android:textSize="12sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@+id/tv_sub_title_2"
@ -312,7 +312,7 @@ z
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:textColor="@color/Primary_Light"
android:text="BMI(Body Mass Index) : "
android:text="BMI(Inkes Massa Tubuh) : "
android:textSize="12sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/tv_sub_title_2"
@ -470,18 +470,18 @@ z
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_button"
android:visibility="gone"
android:text="Rekomendasi Sekarang"
android:textAllCaps="true"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="gone"
app:backgroundTint="@color/Primary_Light"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="@+id/fl_daily_counter"
app:layout_constraintHorizontal_bias="0.48"
app:layout_constraintStart_toStartOf="@+id/fl_daily_counter"
app:layout_constraintTop_toBottomOf="@+id/fl_daily_counter"
app:layout_constraintVertical_bias="1.0" />
app:layout_constraintVertical_bias="0.0" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_report"
@ -502,14 +502,12 @@ z
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_health_history"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.516"
app:layout_constraintStart_toStartOf="parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/cl_Health_Report"
app:layout_constraintVertical_bias="0.0"
tools:itemCount="1"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:itemCount="2"
tools:listitem="@layout/item_health_history" />
<ImageView

View File

@ -1,180 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".ui.recommendation.RecommendationActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="255dp"
android:background="@drawable/bg_dashboard"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="0dp"
android:layout_height="250dp"
android:background="@drawable/bg_dashboard"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="TODAY HEALTH"
android:textAlignment="center"
android:textColor="@color/Primary_Dark"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/tv_bloodsugar_level1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Tingkat Gula Darah :"
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/tv_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.18" />
<TextView
android:id="@+id/tv_bloodsugar_level2"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
tools:text="100 mg/dL"
app:layout_constraintTop_toTopOf="@id/tv_bloodsugar_level1"
app:layout_constraintBottom_toBottomOf="@id/tv_bloodsugar_level1"
app:layout_constraintStart_toEndOf="@id/tv_bloodsugar_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.02" />
<TextView
android:id="@+id/tv_bloodsugar_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
tools:text="Your blood sugar level is within the normal range. Maintain a balanced diet and regular exercise."
app:layout_constraintTop_toBottomOf="@id/tv_bloodsugar_level1"
app:layout_constraintStart_toStartOf="@id/tv_bloodsugar_level1"
app:layout_constraintEnd_toEndOf="@id/tv_bloodsugar_level2" />
<TextView
android:id="@+id/tv_bloodpressure_level1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="Tingkat Tekanan Darah :"
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/tv_bloodsugar_desc"
app:layout_constraintStart_toStartOf="@id/tv_bloodsugar_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" />
<TextView
android:id="@+id/tv_bloodpressure_level2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
tools:text="119/70 mm Hg"
app:layout_constraintTop_toTopOf="@id/tv_bloodpressure_level1"
app:layout_constraintBottom_toBottomOf="@id/tv_bloodpressure_level1"
app:layout_constraintStart_toEndOf="@id/tv_bloodpressure_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.018" />
<TextView
android:id="@+id/tv_bloodpressure_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
tools:text="Your blood sugar level is within the normal range. Maintain a balanced diet and regular exercise."
app:layout_constraintTop_toBottomOf="@id/tv_bloodpressure_level1"
app:layout_constraintStart_toStartOf="@id/tv_bloodpressure_level1"
app:layout_constraintEnd_toEndOf="@id/tv_bloodpressure_level2" />
<TextView
android:id="@+id/tv_BMI_level1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="BMI (Indeks Massa Tubuh) :"
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/tv_bloodpressure_desc"
app:layout_constraintStart_toStartOf="@id/tv_bloodpressure_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" />
<TextView
android:id="@+id/tv_BMI_level2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
android:maxLength="9"
tools:text="22.03 BMI"
app:layout_constraintTop_toTopOf="@id/tv_BMI_level1"
app:layout_constraintBottom_toBottomOf="@id/tv_BMI_level1"
app:layout_constraintStart_toEndOf="@id/tv_BMI_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.02" />
<TextView
android:id="@+id/tv_BMI_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
tools:text="This is still considered an acceptable range, and is associated with good health."
app:layout_constraintTop_toBottomOf="@id/tv_BMI_level1"
app:layout_constraintStart_toStartOf="@id/tv_BMI_level1"
app:layout_constraintEnd_toEndOf="@id/tv_BMI_level2" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_title"
android:id="@+id/tv_title_recommendation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="TODAY HEALTH"
android:layout_marginTop="16dp"
android:text="TODAY REKOMENDASI"
android:textAlignment="center"
android:textColor="@color/Primary_Dark"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/constraintLayout"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_bloodsugar_level1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Blood Sugar Level :"
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.375"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
<TextView
android:id="@+id/tv_bloodsugar_level2"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/tv_bloodsugar_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.02"
app:layout_constraintStart_toEndOf="@id/tv_bloodsugar_level1"
app:layout_constraintTop_toTopOf="@+id/tv_bloodsugar_level1"
tools:text="100 mg/dL" />
<TextView
android:id="@+id/tv_bloodsugar_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@+id/tv_bloodsugar_level2"
app:layout_constraintStart_toStartOf="@+id/tv_bloodsugar_level1"
app:layout_constraintTop_toBottomOf="@id/tv_bloodsugar_level1"
tools:text="Your blood sugar level is within the normal range. Maintain a balanced diet and regular exercise." />
<TextView
android:id="@+id/tv_bloodpressure_level1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Blood Pressure Level :"
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.408"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_bloodsugar_desc" />
<TextView
android:id="@+id/tv_bloodpressure_level2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/tv_bloodpressure_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.018"
app:layout_constraintStart_toEndOf="@id/tv_bloodpressure_level1"
app:layout_constraintTop_toBottomOf="@id/tv_bloodsugar_desc"
tools:text="119/70 mm Hg" />
<TextView
android:id="@+id/tv_bloodpressure_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@+id/tv_bloodpressure_level2"
app:layout_constraintStart_toStartOf="@+id/tv_bloodpressure_level1"
app:layout_constraintTop_toBottomOf="@id/tv_bloodpressure_level1"
tools:text="Your blood sugar level is within the normal range. Maintain a balanced diet and regular exercise." />
<TextView
android:id="@+id/tv_BMI_level1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="BMI(Body Mass Index) :"
android:textColor="@color/Primary_Dark"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.426"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_bloodpressure_desc" />
<TextView
android:id="@+id/tv_BMI_level2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLength="9"
android:textColor="@color/Accent_Light_Red"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/tv_BMI_level1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.02"
app:layout_constraintStart_toEndOf="@id/tv_BMI_level1"
app:layout_constraintTop_toTopOf="@+id/tv_BMI_level1"
tools:text="22.03 BMI" />
<TextView
android:id="@+id/tv_BMI_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@+id/tv_BMI_level2"
app:layout_constraintStart_toStartOf="@+id/tv_BMI_level1"
app:layout_constraintTop_toBottomOf="@id/tv_BMI_level1"
tools:text="This is still considered an acceptable range, and is associated with good health." />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_title_recommendation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="TODAY RECOMMENDATION"
android:textAlignment="center"
android:textColor="@color/Primary_Dark"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />
<ScrollView
android:id="@+id/sv_tasks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_title_recommendation">
app:layout_constraintEnd_toEndOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_tasks"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:itemCount="4"
tools:listitem="@layout/item_goals_recommendation" />
tools:listitem="@layout/item_goals_recommendation"
app:layout_constraintTop_toBottomOf="@id/tv_title_recommendation"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:nestedScrollingEnabled="false"
android:paddingBottom="16dp" />
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>