diff --git a/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewAdapter.java b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewAdapter.java index c52ad573..755a9d90 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewAdapter.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewAdapter.java @@ -1,6 +1,6 @@ package com.health.openscale.gui.overview; -import android.content.Context; +import android.app.Activity; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.ForegroundColorSpan; @@ -12,6 +12,7 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.navigation.Navigation; import androidx.recyclerview.widget.RecyclerView; import com.google.android.flexbox.AlignItems; @@ -20,17 +21,18 @@ import com.google.android.flexbox.FlexboxLayoutManager; import com.google.android.flexbox.JustifyContent; import com.health.openscale.R; import com.health.openscale.core.datatypes.ScaleMeasurement; +import com.health.openscale.gui.measurement.MeasurementEntryFragment; import com.health.openscale.gui.measurement.WeightMeasurementView; import java.text.DateFormat; import java.util.List; class OverviewAdapter extends RecyclerView.Adapter { - private Context context; + private Activity activity; private List scaleMeasurementList; - public OverviewAdapter(Context aContext, List scaleMeasurementList) { - this.context = aContext; + public OverviewAdapter(Activity activity, List scaleMeasurementList) { + this.activity = activity; this.scaleMeasurementList = scaleMeasurementList; } @@ -59,16 +61,35 @@ class OverviewAdapter extends RecyclerView.Adapter { } }); - FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(context); + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + OverviewFragmentDirections.ActionNavOverviewToNavDataentry action = OverviewFragmentDirections.actionNavOverviewToNavDataentry(); + action.setMeasurementId(scaleMeasurement.getId()); + action.setMode(MeasurementEntryFragment.DATA_ENTRY_MODE.VIEW); + Navigation.findNavController(activity, R.id.nav_host_fragment).navigate(action); + } + }); + + if (!scaleMeasurement.getComment().isEmpty()) { + holder.commentTextView.setVisibility(View.VISIBLE); + holder.commentIconView.setVisibility(View.VISIBLE); + holder.commentTextView.setText(scaleMeasurement.getComment()); + } else { + holder.commentTextView.setVisibility(View.GONE); + holder.commentIconView.setVisibility(View.GONE); + } + + FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(activity); layoutManager.setFlexDirection(FlexDirection.ROW); layoutManager.setJustifyContent(JustifyContent.SPACE_AROUND); layoutManager.setAlignItems(AlignItems.CENTER); holder.measurementRecyclerView.setLayoutManager(layoutManager); holder.measurementRecyclerView.setHasFixedSize(true); holder.measurementRecyclerView.setNestedScrollingEnabled(false); - holder.measurementRecyclerView.setAdapter(new MeasurementAdapter(context, scaleMeasurement, prevScaleMeasurement)); + holder.measurementRecyclerView.setAdapter(new MeasurementAdapter(activity, scaleMeasurement, prevScaleMeasurement)); - WeightMeasurementView weightMeasurementView = new WeightMeasurementView(context); + WeightMeasurementView weightMeasurementView = new WeightMeasurementView(activity); weightMeasurementView.loadFrom(scaleMeasurement, prevScaleMeasurement); SpannableStringBuilder weightValue = new SpannableStringBuilder(); weightValue.append("◆ "); @@ -99,6 +120,8 @@ class OverviewAdapter extends RecyclerView.Adapter { TextView weightView; ImageView expandMoreView; RecyclerView measurementRecyclerView; + ImageView commentIconView; + TextView commentTextView; public ViewHolder(@NonNull View itemView) { super(itemView); @@ -107,6 +130,8 @@ class OverviewAdapter extends RecyclerView.Adapter { weightView = itemView.findViewById(R.id.weightView); expandMoreView = itemView.findViewById(R.id.expandMoreView); measurementRecyclerView = itemView.findViewById(R.id.measurementRecyclerView); + commentIconView = itemView.findViewById(R.id.commentIconView); + commentTextView = itemView.findViewById(R.id.commentTextView); } } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java index f783cfcc..62bc745d 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/overview/OverviewFragment.java @@ -269,7 +269,7 @@ public class OverviewFragment extends Fragment { markedMeasurement = scaleMeasurementList.get(0); } - overviewAdapter = new OverviewAdapter(getContext(), scaleMeasurementList); + overviewAdapter = new OverviewAdapter(getActivity(), scaleMeasurementList); recyclerView.setAdapter(overviewAdapter); updateUserSelection(); diff --git a/android_app/app/src/main/res/layout/item_overview.xml b/android_app/app/src/main/res/layout/item_overview.xml index d5092739..389772a1 100644 --- a/android_app/app/src/main/res/layout/item_overview.xml +++ b/android_app/app/src/main/res/layout/item_overview.xml @@ -22,7 +22,7 @@ + app:srcCompat="@drawable/ic_expand_more" + app:tint="?attr/colorControlNormal" /> + app:layout_constraintTop_toBottomOf="@+id/weightView" > + + + + + + +