Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 491ac57c authored by Dante Russo's avatar Dante Russo Committed by Steve Kondik
Browse files

Combo Provider: Get the package name from resource

Get the package name for combo provider from resouce
instead of hardcoding the name. Also, geofence services
provider is renamed to differentiate from the hal
geofence provider

CRs-fixed: 608477

Change-Id: I84739e440d688d6e1784aa5ab4e2074eaa740bab
parent a43e60ad
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -839,8 +839,11 @@
        <item>com.android.location.fused</item>
    </string-array>

    <!-- Component name of the service providing geofence API support. -->
    <string name="config_geofenceProvider" translatable="false">com.qualcomm.location</string>
    <!-- Component name of the geofence services provider. -->
    <string name="config_geofenceServicesProvider" translatable="false">com.qualcomm.location</string>

    <!-- Component name of the combo network location provider. -->
    <string name="config_comboNetworkLocationProvider" translatable="false">com.qualcomm.location</string>

    <!-- Boolean indicating if current platform supports bluetooth SCO for off call
    use cases -->
+2 −1
Original line number Diff line number Diff line
@@ -1579,7 +1579,8 @@
  <java-symbol type="string" name="config_geocoderProviderPackageName" />
  <java-symbol type="string" name="config_geofenceProviderPackageName" />
  <java-symbol type="string" name="config_networkLocationProviderPackageName" />
  <java-symbol type="string" name="config_geofenceProvider" />
  <java-symbol type="string" name="config_geofenceServicesProvider" />
  <java-symbol type="string" name="config_comboNetworkLocationProvider" />
  <java-symbol type="string" name="config_wimaxManagerClassname" />
  <java-symbol type="string" name="config_wimaxNativeLibLocation" />
  <java-symbol type="string" name="config_wimaxServiceClassname" />
+19 −8
Original line number Diff line number Diff line
@@ -143,6 +143,9 @@ public class LocationManagerService extends ILocationManager.Stub {
    private LocationFudger mLocationFudger;
    private GeofenceManager mGeofenceManager;
    private String mGeoFencerPackageName;
    private String mComboNlpPackageName;
    private String mComboNlpReadyMarker;
    private String mComboNlpScreenMarker;
    private GeoFencerBase mGeoFencer;
    private boolean mGeoFencerEnabled;
    private PackageManager mPackageManager;
@@ -454,7 +457,7 @@ public class LocationManagerService extends ILocationManager.Stub {
        }

        mGeoFencerPackageName = resources.getString(
                com.android.internal.R.string.config_geofenceProvider);
                com.android.internal.R.string.config_geofenceServicesProvider);
        if (mGeoFencerPackageName != null &&
                mPackageManager.resolveService(new Intent(mGeoFencerPackageName), 0) != null) {
            mGeoFencer = GeoFencerProxy.getGeoFencerProxy(mContext, mGeoFencerPackageName);
@@ -463,6 +466,14 @@ public class LocationManagerService extends ILocationManager.Stub {
            mGeoFencer = null;
            mGeoFencerEnabled = false;
        }

        mComboNlpPackageName = resources.getString(
                com.android.internal.R.string.config_comboNetworkLocationProvider);
        if (mComboNlpPackageName != null) {
            mComboNlpReadyMarker = mComboNlpPackageName + ".nlp:ready";
            mComboNlpScreenMarker = mComboNlpPackageName + ".nlp:screen";
        }

    }

    /**
@@ -2127,7 +2138,7 @@ public class LocationManagerService extends ILocationManager.Stub {

    private Location screenLocationLocked(Location location, String provider) {

        if (false == provider.equals(LocationManager.NETWORK_PROVIDER)) {
        if (mComboNlpPackageName == null || false == provider.equals(LocationManager.NETWORK_PROVIDER)) {
            return location;
        }

@@ -2136,15 +2147,15 @@ public class LocationManagerService extends ILocationManager.Stub {
            extras = new Bundle();
        }

        if (!extras.containsKey("com.qualcomm.location.nlp:ready")) {
            // see if com.qualcomm.location is a passive listener
        if (!extras.containsKey(mComboNlpReadyMarker)) {
            // see if Combo Nlp is a passive listener
            ArrayList<UpdateRecord> records =
                mRecordsByProvider.get(LocationManager.PASSIVE_PROVIDER);
            if (records != null) {
                for (UpdateRecord r : records) {
                    if (r.mReceiver.mPackageName.equals("com.qualcomm.location")) {
                        extras.putBoolean("com.qualcomm.location.nlp:screen", true);
                        // send location to com.qualcomm.location for screening
                    if (r.mReceiver.mPackageName.equals(mComboNlpPackageName)) {
                        extras.putBoolean(mComboNlpScreenMarker, true);
                        // send location to Combo Nlp  for screening
                        if (!r.mReceiver.callLocationChangedLocked(location)) {
                            Slog.w(TAG, "RemoteException calling onLocationChanged on "
                                   + r.mReceiver);
@@ -2165,7 +2176,7 @@ public class LocationManagerService extends ILocationManager.Stub {
                Log.d(TAG, "This location is marked as ready for broadcast");
            }
            // clear the ready marker
            extras.remove("com.qualcomm.location.nlp:ready");
            extras.remove(mComboNlpReadyMarker);
        }

        return location;