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.java21
-rw-r--r--app/src/main/java/io/trygvis/soilmoisture/MainActivity.java8
-rw-r--r--app/src/main/java/io/trygvis/soilmoisture/SoilMoistureService.java3
3 files changed, 28 insertions, 4 deletions
diff --git a/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java b/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java
index 25dac5c..86a1917 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/DefaultSoilMoistureService.java
@@ -169,7 +169,7 @@ public class DefaultSoilMoistureService extends Service implements SoilMoistureS
return stop();
}).
- onFinally(() -> {
+ onFinally(success -> {
if (smDevice.getIsUseful() == null) {
smDevice.setIsUseful(false);
}
@@ -344,9 +344,10 @@ public class DefaultSoilMoistureService extends Service implements SoilMoistureS
return stop();
}).
- onFinally(() -> {
- Toast.makeText(context, R.string.error_could_not_read_value, Toast.LENGTH_SHORT).
- show();
+ onFinally(success -> {
+ if (!success) {
+ sendBroadcast(createToast(R.string.error_could_not_read_value, Toast.LENGTH_SHORT));
+ }
});
sensor.getDevice().getBtDevice().withConnection(promise);
@@ -356,6 +357,13 @@ public class DefaultSoilMoistureService extends Service implements SoilMoistureS
// Event creation and dispatching
// -----------------------------------------------------------------------
+ private Intent createToast(int id, int length) {
+ return new Intent(SoilMoistureListener.INTENT_NAME).
+ putExtra("event", "toast").
+ putExtra("id", id).
+ putExtra("length", length);
+ }
+
private Intent createReady(boolean success) {
return new Intent(SoilMoistureListener.INTENT_NAME).
putExtra("event", "ready").
@@ -389,6 +397,11 @@ public class DefaultSoilMoistureService extends Service implements SoilMoistureS
String event = intent.getStringExtra("event");
Log.i(TAG, "Dispatching event " + intent.getAction() + "/" + event);
switch (event) {
+ case "toast":
+ listener.onToast(
+ intent.getIntExtra("id", 0),
+ intent.getIntExtra("length", 0));
+ break;
case "ready":
listener.onReady(
intent.getBooleanExtra("success", false));
diff --git a/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java b/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java
index c6293c6..79b09c4 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/MainActivity.java
@@ -584,6 +584,14 @@ public class MainActivity extends ListActivity {
private class MySoilMoistureListener extends SoilMoistureListener {
@Override
+ public void onToast(int id, int length) {
+ CharSequence text = getText(id);
+
+ Log.i(TAG, "Toast: " + text);
+ Toast.makeText(context, text, length).show();
+ }
+
+ @Override
public void onReady(boolean ok) {
if (!ok) {
Toast.makeText(context,
diff --git a/app/src/main/java/io/trygvis/soilmoisture/SoilMoistureService.java b/app/src/main/java/io/trygvis/soilmoisture/SoilMoistureService.java
index 5e3ddbb..b7f2060 100644
--- a/app/src/main/java/io/trygvis/soilmoisture/SoilMoistureService.java
+++ b/app/src/main/java/io/trygvis/soilmoisture/SoilMoistureService.java
@@ -35,6 +35,9 @@ public interface SoilMoistureService {
DefaultSoilMoistureService.dispatchEvent(intent, this);
}
+ public void onToast(int id, int length) {
+ }
+
public void onReady(boolean ok) {
}