aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/io/trygvis/soilmoisture
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/io/trygvis/soilmoisture')
-rw-r--r--app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java18
-rw-r--r--app/src/main/java/io/trygvis/soilmoisture/MainActivity.java12
-rw-r--r--app/src/main/java/io/trygvis/soilmoisture/SmDevice.java6
-rw-r--r--app/src/main/java/io/trygvis/soilmoisture/SmSensor.java (renamed from app/src/main/java/io/trygvis/soilmoisture/SoilMonitor.java)4
4 files changed, 28 insertions, 12 deletions
diff --git a/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java b/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java
index 8a36476..0f08076 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java
@@ -5,6 +5,7 @@ import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattService;
import android.content.ComponentName;
+import android.content.ContentValues;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
@@ -27,6 +28,7 @@ import static io.trygvis.android.bt.BtService.BtServiceListenerBroadcastReceiver
public class DefaultSoilMoistureService extends Service implements SoilMoistureService {
private final static String TAG = DefaultSoilMoistureService.class.getSimpleName();
+ private final static int DEFAULT_WARNING_LEVEL = 750;
private final IBinder binder = new LocalBinder<>(this);
@@ -123,7 +125,21 @@ public class DefaultSoilMoistureService extends Service implements SoilMoistureS
return false;
}).
- onFinally(() -> sendBroadcast(createNewDevice(address)));
+ onFinally(() -> {
+ btService.runTx(db -> {
+ if (!btDevice.isSeenBefore() && smDevice.isUseful()) {
+ for (SmSensor soilMonitor : smDevice.getSensors()) {
+ ContentValues values = new ContentValues();
+ values.put("bt_device", btDevice.getId());
+ values.put("warning_level", DEFAULT_WARNING_LEVEL);
+ db.insert("soil_monitor", null, values);
+ }
+ }
+
+ return null;
+ });
+ sendBroadcast(createNewDevice(address));
+ });
btDevice.connect(executor);
} else {
diff --git a/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java b/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java
index 64e8202..2e6df76 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java
@@ -252,9 +252,9 @@ public class MainActivity extends ListActivity {
for (SmDevice d : devices) {
(d.isUseful() ? usefulDevices : unusefulDevices).add(d);
}
- List<SoilMonitor> monitors = new ArrayList<>();
+ List<SmSensor> monitors = new ArrayList<>();
for (SmDevice d : devices) {
- monitors.addAll(d.getMonitors());
+ monitors.addAll(d.getSensors());
}
if (groupByDevice) {
@@ -333,7 +333,7 @@ public class MainActivity extends ListActivity {
if (o instanceof SmDevice) {
return 0;
- } else if (o instanceof SoilMonitor) {
+ } else if (o instanceof SmSensor) {
return 1;
}
@@ -371,8 +371,8 @@ public class MainActivity extends ListActivity {
if (o instanceof SmDevice) {
return getSmDeviceView((SmDevice) o, view);
- } else if (o instanceof SoilMonitor) {
- return getSoilMonitorView((SoilMonitor) o, view);
+ } else if (o instanceof SmSensor) {
+ return getSoilMonitorView((SmSensor) o, view);
}
throw new RuntimeException("Not implemented");
@@ -408,7 +408,7 @@ public class MainActivity extends ListActivity {
return view;
}
- private View getSoilMonitorView(SoilMonitor soilMonitor, View view) {
+ private View getSoilMonitorView(SmSensor smSensor, View view) {
throw new RuntimeException("Not implemented");
}
}
diff --git a/app/src/main/java/io/trygvis/soilmoisture/SmDevice.java b/app/src/main/java/io/trygvis/soilmoisture/SmDevice.java
index 169f4b3..e24416c 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/SmDevice.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/SmDevice.java
@@ -16,7 +16,7 @@ class SmDevice implements BtDevice.BtDeviceWrapper<SmDevice> {
private Boolean isUseful;
- private List<SoilMonitor> monitors = new ArrayList<>();
+ private List<SmSensor> sensors = new ArrayList<>();
public SmDevice(BtDevice<SmDevice> btDevice) {
this.btDevice = btDevice;
@@ -54,7 +54,7 @@ class SmDevice implements BtDevice.BtDeviceWrapper<SmDevice> {
return name;
}
- public List<SoilMonitor> getMonitors() {
- return monitors;
+ public List<SmSensor> getSensors() {
+ return sensors;
}
}
diff --git a/app/src/main/java/io/trygvis/soilmoisture/SoilMonitor.java b/app/src/main/java/io/trygvis/soilmoisture/SmSensor.java
index 564202d..f27c364 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/SoilMonitor.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/SmSensor.java
@@ -2,14 +2,14 @@ package io.trygvis.soilmoisture;
import java.util.Date;
-class SoilMonitor {
+class SmSensor {
private final SmDevice device;
private Date timestamp;
private int lastValue;
- SoilMonitor(SmDevice device) {
+ SmSensor(SmDevice device) {
this.device = device;
}