From dfa70644d328516415550ba22fc199694e98b400 Mon Sep 17 00:00:00 2001
From: aringot <alexis.ringot@fhstp.ac.at>
Date: Thu, 30 Aug 2018 12:39:40 +0200
Subject: [PATCH] Fixed bug: alert did not pop up after a detection while app
 visible

---
 .../at/ac/fhstp/sonicontrol/MainActivity.java | 35 ++++++++++++++-----
 1 file changed, 26 insertions(+), 9 deletions(-)

diff --git a/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/MainActivity.java b/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/MainActivity.java
index ebbab418..e67ea27e 100644
--- a/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/MainActivity.java
+++ b/SoniControl/app/src/main/java/at/ac/fhstp/sonicontrol/MainActivity.java
@@ -459,23 +459,40 @@ public class MainActivity extends BaseActivity implements Scan.DetectionListener
                 Manifest.permission.ACCESS_FINE_LOCATION);
 
         if((!(isGPSEnabled && gpsEnabled) && !(isNetworkEnabled && networkEnabled)) || status != PackageManager.PERMISSION_GRANTED){
-            btnAlertSpoof.setEnabled(false);
-            btnAlertDismissAlways.setEnabled(false);
-            txtNoLocation.setText(R.string.on_alert_no_location_message);
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    btnAlertSpoof.setEnabled(false);
+                    btnAlertDismissAlways.setEnabled(false);
+                    txtNoLocation.setText(R.string.on_alert_no_location_message);
+                }
+            });
         }else if(!saveJsonFile){
-            btnAlertSpoof.setEnabled(false);
-            btnAlertDismissAlways.setEnabled(false);
-            txtNoLocation.setText(R.string.on_alert_no_location_message);
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    btnAlertSpoof.setEnabled(false);
+                    btnAlertDismissAlways.setEnabled(false);
+                    txtNoLocation.setText(R.string.alert_no_json_file_message);
+                }
+            });
         }else{
-            btnAlertSpoof.setEnabled(true);
-            btnAlertDismissAlways.setEnabled(true);
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    btnAlertSpoof.setEnabled(true);
+                    btnAlertDismissAlways.setEnabled(true);
+                    txtNoLocation.setText("");
+                }
+            });
         }
 
         sigType = signalType; //set the technology variable to the latest detected one
 
         boolean activityExists = settings.getBoolean("active", false);
         if (activityExists) {
-            uiHandler.post(displayAlert);
+            runOnUiThread(displayAlert);
+            //uiHandler.post(displayAlert); NOTE: runOnUiThread will execute code directly, not post
         }
     }
 
-- 
GitLab