From 6b2dd5b290850301472a7097c84f76972b43b507 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 26 Mar 2021 20:09:25 +0100 Subject: Add new Preferences activity and allow choosing temperature units --- .../com/javispedro/rempe/DeviceViewHolder.java | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java') diff --git a/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java b/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java index 2e2a441..4d1c99a 100644 --- a/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java +++ b/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java @@ -1,11 +1,13 @@ package com.javispedro.rempe; import android.content.Context; +import android.content.SharedPreferences; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; import com.dsi.ant.plugins.antplus.pcc.defines.RequestAccessResult; @@ -18,6 +20,8 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. private final View mView; private final Context mContext; + private final SharedPreferences mPrefs; + private final TextView mTemperatureView; private final TextView mMinMaxTemperatureLabel; private final TextView mMinTemperatureView; @@ -29,12 +33,17 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. private final TextView mSignalLabel; private final ProgressBar mSignalBar; + private final static BigDecimal C2F_MULT = new BigDecimal("1.8"); + private final static BigDecimal C2F_ADD = new BigDecimal("32"); + private final static BigDecimal C2K_ADD = new BigDecimal("273.15"); + private Device mDevice; public DeviceViewHolder(View view) { super(view); mView = view; mContext = view.getContext(); + mPrefs = PreferenceManager.getDefaultSharedPreferences(mContext); mNameView = view.findViewById(R.id.nameView); mStatusView = view.findViewById(R.id.statusView); mStatusImageView = view.findViewById(R.id.statusImageView); @@ -82,8 +91,18 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. mSignalBar.setProgress(0); } - private String formatTemperature(BigDecimal temp) { - return mContext.getString(R.string.temperature_celsius, temp); + private String formatTemperature(BigDecimal tempC) { + switch (Preferences.getUnits(mPrefs)) { + default: + case "celsius": + return mContext.getString(R.string.temperature_celsius, tempC); + case "fahrenheit": + BigDecimal tempF = (tempC.multiply(C2F_MULT)).add(C2F_ADD); + return mContext.getString(R.string.temperature_fahrenheit, tempF); + case "kelvin": + BigDecimal tempK = (tempC.add(C2K_ADD)); + return mContext.getString(R.string.temperature_kelvin, tempK); + } } @Override -- cgit v1.2.3