am 75f0fac9: Merge "Fix a couple of bugs from the location overhaul." into jb-mr1-dev
* commit '75f0fac91bd7fa67fa76cfdd4e163b9f35be0432': Fix a couple of bugs from the location overhaul.
This commit is contained in:
@@ -39,10 +39,9 @@ public final class ProviderRequest implements Parcelable {
|
|||||||
* is a high power slow interval request and a
|
* is a high power slow interval request and a
|
||||||
* low power fast interval request.
|
* low power fast interval request.
|
||||||
*/
|
*/
|
||||||
public List<LocationRequest> locationRequests = null;
|
public List<LocationRequest> locationRequests = new ArrayList<LocationRequest>();
|
||||||
|
|
||||||
public ProviderRequest() {
|
public ProviderRequest() { }
|
||||||
}
|
|
||||||
|
|
||||||
public static final Parcelable.Creator<ProviderRequest> CREATOR =
|
public static final Parcelable.Creator<ProviderRequest> CREATOR =
|
||||||
new Parcelable.Creator<ProviderRequest>() {
|
new Parcelable.Creator<ProviderRequest>() {
|
||||||
@@ -52,7 +51,6 @@ public final class ProviderRequest implements Parcelable {
|
|||||||
request.reportLocation = in.readInt() == 1;
|
request.reportLocation = in.readInt() == 1;
|
||||||
request.interval = in.readLong();
|
request.interval = in.readLong();
|
||||||
int count = in.readInt();
|
int count = in.readInt();
|
||||||
request.locationRequests = new ArrayList<LocationRequest>(count);
|
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
request.locationRequests.add(LocationRequest.CREATOR.createFromParcel(in));
|
request.locationRequests.add(LocationRequest.CREATOR.createFromParcel(in));
|
||||||
}
|
}
|
||||||
@@ -73,8 +71,10 @@ public final class ProviderRequest implements Parcelable {
|
|||||||
public void writeToParcel(Parcel parcel, int flags) {
|
public void writeToParcel(Parcel parcel, int flags) {
|
||||||
parcel.writeInt(reportLocation ? 1 : 0);
|
parcel.writeInt(reportLocation ? 1 : 0);
|
||||||
parcel.writeLong(interval);
|
parcel.writeLong(interval);
|
||||||
parcel.writeParcelableArray(locationRequests.toArray(
|
parcel.writeInt(locationRequests.size());
|
||||||
new LocationRequest[locationRequests.size()]), 0);
|
for (LocationRequest request : locationRequests) {
|
||||||
|
request.writeToParcel(parcel, flags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ public final class ProviderRequestUnbundled {
|
|||||||
return mRequest.interval;
|
return mRequest.interval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Never null.
|
||||||
|
*/
|
||||||
public List<LocationRequest> getLocationRequests() {
|
public List<LocationRequest> getLocationRequests() {
|
||||||
return mRequest.locationRequests;
|
return mRequest.locationRequests;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class FusedLocationProvider extends LocationProviderBase implements Fusio
|
|||||||
case MSG_SET_REQUEST:
|
case MSG_SET_REQUEST:
|
||||||
{
|
{
|
||||||
RequestWrapper wrapper = (RequestWrapper) msg.obj;
|
RequestWrapper wrapper = (RequestWrapper) msg.obj;
|
||||||
mEngine.setRequirements(wrapper.request, wrapper.source);
|
mEngine.setRequest(wrapper.request, wrapper.source);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ public class FusedLocationProvider extends LocationProviderBase implements Fusio
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSetRequest(ProviderRequestUnbundled request, WorkSource source) {
|
public void onSetRequest(ProviderRequestUnbundled request, WorkSource source) {
|
||||||
mHandler.obtainMessage(MSG_SET_REQUEST, new RequestWrapper(request, source));
|
mHandler.obtainMessage(MSG_SET_REQUEST, new RequestWrapper(request, source)).sendToTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -120,9 +120,9 @@ public class FusionEngine implements LocationListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Called on mLooper thread */
|
/** Called on mLooper thread */
|
||||||
public void setRequirements(ProviderRequestUnbundled request, WorkSource source) {
|
public void setRequest(ProviderRequestUnbundled request, WorkSource source) {
|
||||||
mRequest = request;
|
mRequest = request;
|
||||||
mEnabled = true;
|
mEnabled = request.getReportLocation();
|
||||||
updateRequirements();
|
updateRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -787,10 +787,6 @@ public class LocationManagerService extends ILocationManager.Stub implements Obs
|
|||||||
for (UpdateRecord record : records) {
|
for (UpdateRecord record : records) {
|
||||||
LocationRequest locationRequest = record.mRequest;
|
LocationRequest locationRequest = record.mRequest;
|
||||||
|
|
||||||
if (providerRequest.locationRequests == null) {
|
|
||||||
providerRequest.locationRequests = new ArrayList<LocationRequest>();
|
|
||||||
}
|
|
||||||
|
|
||||||
providerRequest.locationRequests.add(locationRequest);
|
providerRequest.locationRequests.add(locationRequest);
|
||||||
if (locationRequest.getInterval() < providerRequest.interval) {
|
if (locationRequest.getInterval() < providerRequest.interval) {
|
||||||
providerRequest.reportLocation = true;
|
providerRequest.reportLocation = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user