@@ -70,7 +70,7 @@ public class ThermometerDataFragment extends Fragment {
7070 private int count = 0 , turns = 0 ;
7171 private float sum = 0 ;
7272 private boolean returningFromPause = false ;
73-
73+ private static String unit = "°C" ;
7474 private float tempValue = -1 ;
7575
7676 private enum THERMOMETER_SENSOR {INBUILT_SENSOR , SHT21_SENSOR }
@@ -87,6 +87,12 @@ private enum THERMOMETER_SENSOR {INBUILT_SENSOR, SHT21_SENSOR}
8787 LineChart mChart ;
8888 @ BindView (R .id .thermo_meter )
8989 PointerSpeedometer thermometer ;
90+ @ BindView (R .id .label_thermo_stat_min )
91+ TextView label_statMin ;
92+ @ BindView (R .id .label_thermo_stat_avg )
93+ TextView label_statAvg ;
94+ @ BindView (R .id .label_thermo_stat_max )
95+ TextView label_statMax ;
9096
9197 private Timer graphTimer ;
9298 private SensorManager sensorManager ;
@@ -101,16 +107,18 @@ private enum THERMOMETER_SENSOR {INBUILT_SENSOR, SHT21_SENSOR}
101107 private Unbinder unbinder ;
102108 private long previousTimeElapsed = (System .currentTimeMillis () - startTime ) / updatePeriod ;
103109 private ThermometerActivity thermoSensor ;
110+ private ThermometerSettingsFragment thermoSettings ;
104111 private View rootView ;
105112
106113 public static ThermometerDataFragment newInstance () {
107114 return new ThermometerDataFragment ();
108115 }
109116
110- public static void setParameters (int highLimit , int updatePeriod , String type , String gain ) {
111- ThermometerDataFragment .highLimit = highLimit ;
117+ public static void setParameters (int updatePeriod , String type , String unit ) {
112118 ThermometerDataFragment .updatePeriod = updatePeriod ;
113119 ThermometerDataFragment .sensorType = Integer .valueOf (type );
120+ ThermometerDataFragment .unit = unit ;
121+
114122 }
115123
116124 @ Override
@@ -147,8 +155,7 @@ public void onResume() {
147155 updateGraphs ();
148156 sum = 0 ;
149157 count = 0 ;
150- currentMin = 125 ;
151- currentMax = -40 ;
158+ setUnit ();
152159 entries .clear ();
153160 mChart .clear ();
154161 mChart .invalidate ();
@@ -193,7 +200,7 @@ private void plotAllRecordedData() {
193200 statMin .setText (String .format (Locale .getDefault (), PSLabSensor .THERMOMETER_DATA_FORMAT , currentMin ));
194201 statMean .setText (String .format (Locale .getDefault (), PSLabSensor .THERMOMETER_DATA_FORMAT , (sum / recordedThermoArray .size ())));
195202
196- LineDataSet dataSet = new LineDataSet (entries , getString (R . string . thermo_unit ));
203+ LineDataSet dataSet = new LineDataSet (entries ,PreferenceManager . getDefaultSharedPreferences ( getActivity ()). getString (thermoSettings . KEY_THERMO_UNIT . toString (), "°C" ));
197204 dataSet .setDrawCircles (false );
198205 dataSet .setDrawValues (false );
199206 dataSet .setLineWidth (2 );
@@ -260,15 +267,15 @@ public void run() {
260267 sum += entry .getY ();
261268 statMean .setText (DataFormatter .formatDouble ((sum / count ), PSLabSensor .THERMOMETER_DATA_FORMAT ));
262269
263- LineDataSet dataSet = new LineDataSet (entries , getString (R . string . thermo_unit ));
270+ LineDataSet dataSet = new LineDataSet (entries ,PreferenceManager . getDefaultSharedPreferences ( getActivity ()). getString (thermoSettings . KEY_THERMO_UNIT . toString (), "°C" ));
264271 dataSet .setDrawCircles (false );
265272 dataSet .setDrawValues (false );
266273 dataSet .setLineWidth (2 );
267274 LineData data = new LineData (dataSet );
268275
269276 mChart .setData (data );
270277 mChart .notifyDataSetChanged ();
271- mChart .setVisibleXRangeMaximum (80 );
278+ mChart .setVisibleXRangeMaximum (800 );
272279 mChart .moveViewToX (data .getEntryCount ());
273280 mChart .invalidate ();
274281 } catch (IndexOutOfBoundsException e ) {
@@ -354,8 +361,7 @@ public void saveGraph() {
354361
355362
356363 private void setupInstruments () {
357- thermometer .setMaxSpeed (PreferenceManager .getDefaultSharedPreferences (getActivity ()).getFloat (thermoSensor .THERMOMETER_MAX_LIMIT , 125 ));
358- thermometer .setMinSpeed (PreferenceManager .getDefaultSharedPreferences (getActivity ()).getFloat (thermoSensor .THERMOMETER_MIN_LIMIT ,-40 ));
364+ setUnit ();
359365 XAxis x = mChart .getXAxis ();
360366 this .y = mChart .getAxisLeft ();
361367 YAxis y2 = mChart .getAxisRight ();
@@ -484,7 +490,7 @@ private void visualizeData() {
484490 sum += entry .getY ();
485491 statMean .setText (String .format (Locale .getDefault (), PSLabSensor .THERMOMETER_DATA_FORMAT , (sum / count )));
486492
487- LineDataSet dataSet = new LineDataSet (entries , getString (R . string . thermo_unit ));
493+ LineDataSet dataSet = new LineDataSet (entries ,PreferenceManager . getDefaultSharedPreferences ( getActivity ()). getString (thermoSettings . KEY_THERMO_UNIT . toString (), "°C" ));
488494 dataSet .setDrawCircles (false );
489495 dataSet .setDrawValues (false );
490496 dataSet .setLineWidth (2 );
@@ -515,8 +521,7 @@ public void onSensorChanged(SensorEvent event) {
515521 private void resetInstrumentData () {
516522 tempValue = 0 ;
517523 count = 0 ;
518- currentMin = 125 ;
519- currentMax = -40 ;
524+ setUnit ();
520525 sum = 0 ;
521526 sensor = null ;
522527 if (sensorManager != null ) {
@@ -578,4 +583,26 @@ private void initiateThermoSensor(int type) {
578583 break ;
579584 }
580585 }
586+
587+ public void setUnit (){
588+ if ("°F" .equals (ThermometerDataFragment .unit )){
589+ currentMax = 257 ;
590+ currentMin = -40 ;
591+ thermometer .setMaxSpeed (PreferenceManager .getDefaultSharedPreferences (getActivity ()).getFloat (thermoSensor .THERMOMETER_MAX_LIMIT , 257 ));
592+ thermometer .setMinSpeed (PreferenceManager .getDefaultSharedPreferences (getActivity ()).getFloat (thermoSensor .THERMOMETER_MIN_LIMIT ,-40 ));
593+ label_statAvg .setText (R .string .avg_thermo_fahrenheit );
594+ label_statMax .setText (R .string .max_thermo_fahrenheit );
595+ label_statMin .setText (R .string .min_thermo_fahrenheit );
596+ thermometer .setUnit ("°F" );
597+ }else {
598+ currentMax = 125 ;
599+ currentMin = -40 ;
600+ thermometer .setMaxSpeed (PreferenceManager .getDefaultSharedPreferences (getActivity ()).getFloat (thermoSensor .THERMOMETER_MAX_LIMIT , 125 ));
601+ thermometer .setMinSpeed (PreferenceManager .getDefaultSharedPreferences (getActivity ()).getFloat (thermoSensor .THERMOMETER_MIN_LIMIT ,-40 ));
602+ label_statAvg .setText (R .string .avg_thermo_celcius );
603+ label_statMax .setText (R .string .max_thermo_celcius );
604+ label_statMin .setText (R .string .min_thermo_celcius );
605+ thermometer .setUnit ("°C" );
606+ }
607+ }
581608}
0 commit comments