diff options
Diffstat (limited to 'app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java')
-rw-r--r-- | app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java b/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java index 9731471..6306a2b 100644 --- a/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java +++ b/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java @@ -2,6 +2,7 @@ package com.javispedro.rempe; import android.content.Context; import android.view.View; +import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -18,12 +19,15 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. private final Context mContext; private final TextView mTemperatureView; + private final TextView mMinMaxTemperatureLabel; private final TextView mMinTemperatureView; private final TextView mMaxTemperatureView; private final TextView mNameView; private final TextView mStatusView; - private final ProgressBar mSignalBar; + private final ImageView mStatusImageView; + private final ProgressBar mStatusProgressView; private final TextView mSignalLabel; + private final ProgressBar mSignalBar; private Device mDevice; @@ -33,7 +37,10 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. mContext = view.getContext(); mNameView = view.findViewById(R.id.nameView); mStatusView = view.findViewById(R.id.statusView); + mStatusImageView = view.findViewById(R.id.statusImageView); + mStatusProgressView = view.findViewById(R.id.statusProgressBar); mTemperatureView = view.findViewById(R.id.temperatureView); + mMinMaxTemperatureLabel = view.findViewById(R.id.minmaxTemperatureLabel); mMinTemperatureView = view.findViewById(R.id.minTemperatureView); mMaxTemperatureView = view.findViewById(R.id.maxTemperatureView); mSignalBar = view.findViewById(R.id.signalBar); @@ -52,8 +59,9 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. } mDevice = device; if (mDevice != null) { - mNameView.setText(mDevice.getDeviceName()); mDevice.setObserver(this); + onDeviceInfoChanged(); + onDeviceStateChanged(); } } @@ -63,12 +71,15 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. private void resetDisplay() { mTemperatureView.setText(mContext.getString(R.string.temperature_nothing)); + mMinMaxTemperatureLabel.setVisibility(View.INVISIBLE); mMinTemperatureView.setText(mContext.getString(R.string.temperature_nothing)); mMaxTemperatureView.setText(mContext.getString(R.string.temperature_nothing)); mNameView.setText(""); mStatusView.setText(""); - mSignalBar.setProgress(0); + mStatusImageView.setVisibility(View.INVISIBLE); + mStatusProgressView.setVisibility(View.INVISIBLE); mSignalLabel.setVisibility(View.INVISIBLE); + mSignalBar.setProgress(0); } private String formatTemperature(BigDecimal temp) { @@ -88,8 +99,32 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. runOnUiThread(() -> { if (mDevice.getConnectResult() != RequestAccessResult.SUCCESS) { mStatusView.setText(Device.connectionRequestAccessResultToString(mContext, mDevice.getConnectResult())); + mStatusImageView.setImageResource(R.drawable.ic_baseline_error_24); + mStatusProgressView.setVisibility(View.INVISIBLE); + mStatusImageView.setVisibility(View.VISIBLE); } else { mStatusView.setText(Device.deviceStateToString(mContext, mDevice.getCurrentDeviceState())); + switch (mDevice.getCurrentDeviceState()) { + case TRACKING: + mStatusImageView.setImageResource(R.drawable.ic_baseline_check_24); + mStatusProgressView.setVisibility(View.INVISIBLE); + mStatusImageView.setVisibility(View.VISIBLE); + break; + case SEARCHING: + case PROCESSING_REQUEST: + mStatusImageView.setVisibility(View.INVISIBLE); + mStatusProgressView.setVisibility(View.VISIBLE); + break; + case DEAD: + mStatusImageView.setImageResource(R.drawable.ic_baseline_error_24); + mStatusProgressView.setVisibility(View.INVISIBLE); + mStatusImageView.setVisibility(View.VISIBLE); + break; + default: + mStatusImageView.setVisibility(View.INVISIBLE); + mStatusProgressView.setVisibility(View.INVISIBLE); + break; + } } }); } @@ -99,6 +134,7 @@ public class DeviceViewHolder extends RecyclerView.ViewHolder implements Device. runOnUiThread(() -> { final Reading reading = mDevice.getLastReading(); mTemperatureView.setText(formatTemperature(reading.temperature)); + mMinMaxTemperatureLabel.setVisibility(View.VISIBLE); mMinTemperatureView.setText(formatTemperature(reading.lowLast24Hours)); mMaxTemperatureView.setText(formatTemperature(reading.highLast24Hours)); }); |