From 89aea7039262c4b67f52f486ec53590ab0cb78e2 Mon Sep 17 00:00:00 2001 From: OliE Date: Mon, 5 Jan 2015 11:46:38 +0100 Subject: [PATCH] show details if someone click on the pie chart --- .../openscale/gui/OverviewFragment.java | 53 ++++++++++++++++--- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java index 46908fbe..95c6aff0 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java @@ -25,6 +25,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import com.health.openscale.R; import com.health.openscale.core.OpenScale; @@ -50,7 +51,9 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener private TextView txtAvgFat; private TextView txtAvgWater; private TextView txtAvgMuscle; - + + private ScaleData lastScaleData; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -62,7 +65,10 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener txtAvgFat = (TextView) overviewView.findViewById(R.id.txtAvgFat); txtAvgWater = (TextView) overviewView.findViewById(R.id.txtAvgWater); txtAvgMuscle = (TextView) overviewView.findViewById(R.id.txtAvgMuscle); - + + pieChart.setOnValueTouchListener(new PieChartTouchListener()); + pieChart.setChartRotationEnabled(false); + overviewView.findViewById(R.id.btnInsertData).setOnClickListener(new View.OnClickListener() { public void onClick(View view) { btnOnClickInsertData(); @@ -82,12 +88,13 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener txtOverviewTitle.setText(getResources().getString(R.string.label_overview_title_start) + " " + scaleUser.user_name + " " + getResources().getString(R.string.label_overview_title_end)); List arcValues = new ArrayList(); - + if (scaleDataList.isEmpty()) { - return; - } - - ScaleData lastScaleData = scaleDataList.get(0); + lastScaleData = null; + return; + } + + lastScaleData = scaleDataList.get(0); arcValues.add(new ArcValue(lastScaleData.fat, Utils.COLOR_ORANGE)); arcValues.add(new ArcValue(lastScaleData.water, Utils.COLOR_BLUE)); @@ -143,6 +150,38 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener startActivityForResult(intent, 1); } + private class PieChartTouchListener implements PieChartView.PieChartOnValueTouchListener + { + @Override + public void onValueTouched(int i, ArcValue arcValue) + { + if (lastScaleData == null) { + return; + } + + + String date_time = new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(lastScaleData.date_time); + + switch (i) { + case 0: + Toast.makeText(getActivity(), getResources().getString(R.string.info_your_fat) + " " + lastScaleData.fat + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show(); + break; + case 1: + Toast.makeText(getActivity(), getResources().getString(R.string.info_your_water) + " " + lastScaleData.water + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show(); + break; + case 2: + Toast.makeText(getActivity(), getResources().getString(R.string.info_your_muscle) + " " + lastScaleData.muscle + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show(); + break; + } + } + + @Override + public void onNothingTouched() + { + + } + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) {