diff options
Diffstat (limited to 'app/src/main/java/io/trygvis/soilmoisture')
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) { } |