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

Commit 0fa31fb3 authored by Dante Russo's avatar Dante Russo Committed by Linux Build Service Account
Browse files

gps: LocationManager CTS proximity test fix

CTS proximity tests needs to use
GeoFenceManager for GeoFences to be
able to see mock locations

Change-Id: I7696ac4f0985fe526f1eb2dacd177b4db3c658ae
CRs-Fixed: 452172
parent bf9de7f3
Loading
Loading
Loading
Loading
+11 −4
Original line number Original line Diff line number Diff line
@@ -177,6 +177,7 @@ public class LocationManagerService extends ILocationManager.Stub {
    private PackageManager mPackageManager;
    private PackageManager mPackageManager;
    private String mGeoFencerPackageName;
    private String mGeoFencerPackageName;
    private GeoFencerBase mGeoFencer;
    private GeoFencerBase mGeoFencer;
    private boolean mGeoFencerEnabled;
    private PowerManager mPowerManager;
    private PowerManager mPowerManager;
    private UserManager mUserManager;
    private UserManager mUserManager;
    private GeocoderProxy mGeocodeProvider;
    private GeocoderProxy mGeocodeProvider;
@@ -240,7 +241,7 @@ public class LocationManagerService extends ILocationManager.Stub {
        super();
        super();
        mContext = context;
        mContext = context;
        mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);
        mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);

        mGeoFencerEnabled = false;
        if (D) Log.d(TAG, "Constructed");
        if (D) Log.d(TAG, "Constructed");


        // most startup is deferred until systemReady()
        // most startup is deferred until systemReady()
@@ -511,8 +512,10 @@ public class LocationManagerService extends ILocationManager.Stub {
        if (mGeoFencerPackageName != null &&
        if (mGeoFencerPackageName != null &&
                mPackageManager.resolveService(new Intent(mGeoFencerPackageName), 0) != null){
                mPackageManager.resolveService(new Intent(mGeoFencerPackageName), 0) != null){
            mGeoFencer = GeoFencerProxy.getGeoFencerProxy(mContext, mGeoFencerPackageName);
            mGeoFencer = GeoFencerProxy.getGeoFencerProxy(mContext, mGeoFencerPackageName);
            mGeoFencerEnabled = true;
        } else {
        } else {
            mGeoFencer = null;
            mGeoFencer = null;
            mGeoFencerEnabled = false;
        }
        }


        // bind to fused hardware provider if supported
        // bind to fused hardware provider if supported
@@ -1807,7 +1810,7 @@ public class LocationManagerService extends ILocationManager.Stub {
        }
        }
        long identity = Binder.clearCallingIdentity();
        long identity = Binder.clearCallingIdentity();
        try {
        try {
            if (mGeoFencer != null) {
            if (mGeoFencer != null && mGeoFencerEnabled) {
                long expiration;
                long expiration;
                if (sanitizedRequest.getExpireAt() == Long.MAX_VALUE) {
                if (sanitizedRequest.getExpireAt() == Long.MAX_VALUE) {
                    expiration = -1; // -1 means forever
                    expiration = -1; // -1 means forever
@@ -1837,7 +1840,7 @@ public class LocationManagerService extends ILocationManager.Stub {
        // geo-fence manager uses the public location API, need to clear identity
        // geo-fence manager uses the public location API, need to clear identity
        long identity = Binder.clearCallingIdentity();
        long identity = Binder.clearCallingIdentity();
        try {
        try {
            if (mGeoFencer != null) {
            if (mGeoFencer != null && mGeoFencerEnabled) {
                mGeoFencer.remove(intent);
                mGeoFencer.remove(intent);
            } else {
            } else {
                mGeofenceManager.removeFence(geofence, intent);
                mGeofenceManager.removeFence(geofence, intent);
@@ -2431,6 +2434,7 @@ public class LocationManagerService extends ILocationManager.Stub {
                    removeProviderLocked(p);
                    removeProviderLocked(p);
                }
                }
            }
            }
            mGeoFencerEnabled = false;
            addTestProviderLocked(name, properties);
            addTestProviderLocked(name, properties);
            updateProvidersLocked();
            updateProvidersLocked();
        }
        }
@@ -2466,6 +2470,9 @@ public class LocationManagerService extends ILocationManager.Stub {
            long identity = Binder.clearCallingIdentity();
            long identity = Binder.clearCallingIdentity();
            removeProviderLocked(mProvidersByName.get(provider));
            removeProviderLocked(mProvidersByName.get(provider));


            if (mGeoFencer != null) {
                mGeoFencerEnabled = true;
            }
            // reinstate real provider if available
            // reinstate real provider if available
            LocationProviderInterface realProvider = mRealProviders.get(provider);
            LocationProviderInterface realProvider = mRealProviders.get(provider);
            if (realProvider != null) {
            if (realProvider != null) {
@@ -2620,7 +2627,7 @@ public class LocationManagerService extends ILocationManager.Stub {


            mGeofenceManager.dump(pw);
            mGeofenceManager.dump(pw);


            if (mGeoFencer != null) {
            if (mGeoFencer != null && mGeoFencerEnabled) {
                mGeoFencer.dump(pw, "");
                mGeoFencer.dump(pw, "");
            }
            }