diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 9385878..68d0b46 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -59,7 +59,7 @@
         
+            android:exported="false" />
         
             
                 
@@ -72,6 +72,11 @@
                 
             
         
+        
+            
+                
+            
+        
         = Build.VERSION_CODES.O) {
             CharSequence name = "Location updates";
-            // Create the channel for the notification
             NotificationChannel mChannel =
                     new NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_LOW);
 
-            // Set the Notification Channel for the Notification Manager.
             mNotificationManager.createNotificationChannel(mChannel);
         }
     }
@@ -148,49 +107,24 @@ public class LocationUpdatesService extends Service {
             removeLocationUpdates();
             stopSelf();
         }
-        // Tells the system to not try to recreate the service after it has been killed.
+
         return START_STICKY;
     }
 
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-        mChangingConfiguration = true;
-    }
-
+    @Nullable
     @Override
     public IBinder onBind(Intent intent) {
-        // Called when MainActivity comes to the foreground
-        // and binds with this service. The service should cease to be a foreground service
-        // when that happens.
-        Log.i(TAG, "in onBind()");
-        stopForeground(true);
-        mChangingConfiguration = false;
         return mBinder;
     }
 
     @Override
     public void onRebind(Intent intent) {
-        // Called when MainActivity returns to the foreground
-        // and binds once again with this service. The service should cease to be a foreground
-        // service when that happens.
-        Log.i(TAG, "in onRebind()");
-        stopForeground(true);
-        mChangingConfiguration = false;
         super.onRebind(intent);
     }
 
     @Override
     public boolean onUnbind(Intent intent) {
-        Log.i(TAG, "Last client unbound from service");
-
-        // Called when the last client (MainActivity ) unbinds from this
-        // service. If this method is called due to a configuration change in MainActivity, we
-        // do nothing. Otherwise, we make this service a foreground service.
-        if (!mChangingConfiguration && Utils.requestingLocationUpdates(this)) {
-            startForeground(NOTIFICATION_ID, getNotification());
-        }
-        return true; // Ensures onRebind() is called when a client re-binds.
+        return true;
     }
 
     @Override
@@ -199,16 +133,19 @@ public class LocationUpdatesService extends Service {
     }
 
     public void requestLocationUpdates() {
-        requestInterval = Utils.getLocationUpdateIntervals(getApplicationContext());
+        long requestInterval = Utils.getLocationUpdateIntervals(getApplicationContext());
         Log.i(TAG, "Requesting location updates. Interval is " + requestInterval);
+        mLocationRequest.setInterval(requestInterval);
+        mLocationRequest.setFastestInterval(requestInterval);
         Utils.setRequestingLocationUpdates(this, true);
         startService(new Intent(getApplicationContext(), LocationUpdatesService.class));
+        startForeground(NOTIFICATION_ID, getNotification());
         try {
             mFusedLocationClient.requestLocationUpdates(mLocationRequest,
                     mLocationCallback, Looper.myLooper());
         } catch (SecurityException unlikely) {
             //When we lost permission
-            Utils.setRequestingLocationUpdates(this, false);
+            removeLocationUpdates();
         }
     }
 
@@ -216,30 +153,24 @@ public class LocationUpdatesService extends Service {
         Log.i(TAG, "Removing location updates");
         try {
             mFusedLocationClient.removeLocationUpdates(mLocationCallback);
-            Utils.setRequestingLocationUpdates(this, false);
-            stopSelf();
         } catch (SecurityException unlikely) {
             //When we lost permission
-            Utils.setRequestingLocationUpdates(this, true);
+            Log.i(TAG, "No location permission");
         }
+        Utils.setRequestingLocationUpdates(this, false);
+        stopSelf();
     }
 
-    /**
-     * Returns the {@link NotificationCompat} used as part of the foreground service.
-     */
     private Notification getNotification() {
         Intent intent = new Intent(this, LocationUpdatesService.class);
 
         CharSequence text = Utils.getLocationText(mLocation);
 
-        // Extra to help us figure out if we arrived in onStartCommand via the notification or not.
         intent.putExtra(EXTRA_STARTED_FROM_NOTIFICATION, true);
 
-        // The PendingIntent that leads to a call to onStartCommand() in this service.
         PendingIntent servicePendingIntent = PendingIntent.getService(this, 0, intent,
                 PendingIntent.FLAG_UPDATE_CURRENT);
 
-        // The PendingIntent to launch activity.
         PendingIntent activityPendingIntent = PendingIntent.getActivity(this, 0,
                 new Intent(this, MainActivity.class), 0);
 
@@ -252,7 +183,7 @@ public class LocationUpdatesService extends Service {
                 .setPriority(-1)
                 .setContentTitle(Utils.getLocationTitle(mLocation))
                 .setOngoing(true)
-                .setSmallIcon(R.mipmap.ic_launcher)
+                .setSmallIcon(R.drawable.mini_icon)
                 .setWhen(System.currentTimeMillis());
 
         return builder.build();
@@ -278,21 +209,12 @@ public class LocationUpdatesService extends Service {
 
         mLocation = location;
 
-        // Notify anyone listening for broadcasts about the new location.
-        Intent intent = new Intent(ACTION_BROADCAST);
-        intent.putExtra(EXTRA_LOCATION, location);
-        LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);
-
-        // Update notification content if running as a foreground service.
-        if (serviceIsRunningInForeground(this)) {
-            mNotificationManager.notify(NOTIFICATION_ID, getNotification());
-        }
+        mNotificationManager.notify(NOTIFICATION_ID, getNotification());
 
         Constraints constraints = new Constraints.Builder()
                 .setRequiredNetworkType(NetworkType.CONNECTED)
                 .build();
 
-        // Create the Data object:
         Data locationData = new Data.Builder()
                 .putDouble("Lat", mLocation.getLatitude())
                 .putDouble("Long", mLocation.getLongitude())
@@ -315,42 +237,9 @@ public class LocationUpdatesService extends Service {
                 .enqueueUniqueWork("SendLocationUpdate", ExistingWorkPolicy.REPLACE, uploadWorkRequest);
     }
 
-    /**
-     * Sets the location request parameters.
-     */
-    private void createLocationRequest() {
-        mLocationRequest = new LocationRequest();
-        mLocationRequest.setInterval(requestInterval);
-        mLocationRequest.setFastestInterval(requestInterval);
-        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
-    }
-
-    /**
-     * Class used for the client Binder.  Since this service runs in the same process as its
-     * clients, we don't need to deal with IPC.
-     */
     public class LocalBinder extends Binder {
         LocationUpdatesService getService() {
             return LocationUpdatesService.this;
         }
     }
-
-    /**
-     * Returns true if this is a foreground service.
-     *
-     * @param context The {@link Context}.
-     */
-    public boolean serviceIsRunningInForeground(Context context) {
-        ActivityManager manager = (ActivityManager) context.getSystemService(
-                Context.ACTIVITY_SERVICE);
-        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(
-                Integer.MAX_VALUE)) {
-            if (getClass().getName().equals(service.service.getClassName())) {
-                if (service.foreground) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
 }
\ No newline at end of file
diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java
index bfd10ea..12969c4 100644
--- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java
+++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MainActivity.java
@@ -20,7 +20,6 @@ import android.content.pm.PackageManager;
 import android.location.Location;
 import android.os.Bundle;
 import android.os.IBinder;
-import android.widget.Toast;
 
 import io.flutter.plugin.common.MethodChannel;
 
@@ -34,8 +33,6 @@ public class MainActivity extends FlutterActivity {
 
     private static final int REQUEST_PERMISSIONS_REQUEST_CODE = 34;
 
-    private MyReceiver myReceiver;
-
     private LocationUpdatesService mService = null;
 
     private boolean mBound = false;
@@ -87,8 +84,8 @@ public class MainActivity extends FlutterActivity {
                             }
                             break;
                         case "startLocationService":
-                            if (checkPermissions()) {
-                                requestPermissions();
+                            if (isNoLocationPermissions()) {
+                                requestLocationPermissions();
                             } else {
                                 mService.requestLocationUpdates();
                             }
@@ -110,12 +107,11 @@ public class MainActivity extends FlutterActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        myReceiver = new MyReceiver();
-        if (Utils.requestingLocationUpdates(this)) {
-            if (checkPermissions()) {
-                requestPermissions();
+        /*if (Utils.requestingLocationUpdates(this)) {
+            if (isNoLocationPermissions()) {
+                requestLocationPermissions();
             }
-        }
+        }*/
     }
 
     @Override
@@ -128,13 +124,10 @@ public class MainActivity extends FlutterActivity {
     @Override
     protected void onResume() {
         super.onResume();
-        LocalBroadcastManager.getInstance(this).registerReceiver(myReceiver,
-                new IntentFilter(LocationUpdatesService.ACTION_BROADCAST));
     }
 
     @Override
     protected void onPause() {
-        LocalBroadcastManager.getInstance(this).unregisterReceiver(myReceiver);
         super.onPause();
     }
 
@@ -147,12 +140,12 @@ public class MainActivity extends FlutterActivity {
         super.onStop();
     }
 
-    private boolean checkPermissions() {
+    private boolean isNoLocationPermissions() {
         return PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(this,
                 Manifest.permission.ACCESS_FINE_LOCATION);
     }
 
-    private void requestPermissions() {
+    private void requestLocationPermissions() {
         ActivityCompat.requestPermissions(MainActivity.this,
                 new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                 REQUEST_PERMISSIONS_REQUEST_CODE);
@@ -168,14 +161,4 @@ public class MainActivity extends FlutterActivity {
         }
     }
 
-    private class MyReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            Location location = intent.getParcelableExtra(LocationUpdatesService.EXTRA_LOCATION);
-            if (location != null) {
-                //TODO looks like we need to remove this
-            }
-        }
-    }
-
 }
diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java
index af6748b..b4376bb 100644
--- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java
+++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java
@@ -120,7 +120,7 @@ public class MessagingService extends FirebaseMessagingService {
                 }
                 broadcastIntent.putExtra("actionData", data.get("action" + i + "_data"));
                 PendingIntent actionIntent = PendingIntent.getBroadcast(this, i, broadcastIntent, PendingIntent.FLAG_CANCEL_CURRENT);
-                notificationBuilder.addAction(R.drawable.mini_icon, data.get("action" + i), actionIntent);
+                notificationBuilder.addAction(R.drawable.blank_icon, data.get("action" + i), actionIntent);
             }   
         }
         NotificationManager notificationManager =