From 738cba30bcb6eef526dcca460de634ed1ac9a40d Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 21 Dec 2016 20:19:36 +0100 Subject: [PATCH] [android] - use local broadcast receiver for telemetry (#7511) --- .../mapbox/mapboxsdk/location/LocationServices.java | 7 ++++--- .../mapbox/mapboxsdk/telemetry/TelemetryService.java | 12 +++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java index 4fade484b40..8d73be20f0e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationServices.java @@ -3,11 +3,13 @@ import android.Manifest; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationManager; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; +import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import com.mapbox.mapboxsdk.telemetry.TelemetryLocationReceiver; @@ -138,10 +140,9 @@ public void onLocationChanged(Location location) { listener.onLocationChanged(location); } - // Update the Telemetry Receiver - Intent locIntent = new Intent(TelemetryLocationReceiver.INTENT_STRING); + Intent locIntent = new Intent(); locIntent.putExtra(LocationManager.KEY_LOCATION_CHANGED, location); - context.sendBroadcast(locIntent); + LocalBroadcastManager.getInstance(context).sendBroadcast(locIntent); } /** diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/TelemetryService.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/TelemetryService.java index 008f355f29a..704cf20d44e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/TelemetryService.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/TelemetryService.java @@ -8,6 +8,7 @@ import android.os.AsyncTask; import android.os.IBinder; import android.support.annotation.Nullable; +import android.support.v4.content.LocalBroadcastManager; import android.util.Log; /** @@ -52,13 +53,10 @@ public IBinder onBind(Intent intent) { @Override public void onCreate() { super.onCreate(); - - Log.i(TAG, "onCreate() called"); - - // Enable Location Listening for lifecycle of app - IntentFilter filter = new IntentFilter(TelemetryLocationReceiver.INTENT_STRING); - telemetryLocationReceiver = new TelemetryLocationReceiver(); - registerReceiver(telemetryLocationReceiver, filter); + LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver( + new TelemetryLocationReceiver(), + new IntentFilter(TelemetryLocationReceiver.INTENT_STRING) + ); } /**