summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java')
-rw-r--r--app/src/main/java/com/javispedro/rempe/DeviceViewHolder.java42
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));
});