For packages: com.android.internal com.android.internal.annotations com.android.internal.app com.android.internal.app.procstats com.android.internal.appwidget com.android.internal.backup com.android.internal.car com.android.internal.content com.android.internal.inputmethod com.android.internal.location com.android.internal.logging com.android.internal.midi com.android.internal.net com.android.internal.os com.android.internal.policy com.android.internal.statusbar com.android.internal.telecom com.android.internal.telephony.euicc com.android.internal.textservice com.android.internal.util com.android.internal.view com.android.internal.view.animation com.android.internal.view.menu com.android.internal.widget This is an automatically generated CL. See go/UnsupportedAppUsage for more details. Exempted-From-Owner-Approval: Mechanical changes to the codebase which have been approved by Android API council and announced on android-eng@ Bug: 110868826 Test: m Change-Id: I1c2954c5a579f073017c1794fd2d200e0a471602 Merged-In: Ib31b52e6957869e5744dadbb35cb4584ef17187f
111 lines
3.5 KiB
Java
111 lines
3.5 KiB
Java
/*
|
|
* Copyright (C) 2012 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.android.internal.location;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import android.annotation.UnsupportedAppUsage;
|
|
import android.location.LocationRequest;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.util.TimeUtils;
|
|
|
|
/** @hide */
|
|
public final class ProviderRequest implements Parcelable {
|
|
/** Location reporting is requested (true) */
|
|
@UnsupportedAppUsage
|
|
public boolean reportLocation = false;
|
|
|
|
/** The smallest requested interval */
|
|
@UnsupportedAppUsage
|
|
public long interval = Long.MAX_VALUE;
|
|
|
|
/**
|
|
* Whether provider shall make stronger than normal tradeoffs to substantially restrict power
|
|
* use.
|
|
*/
|
|
public boolean lowPowerMode = false;
|
|
|
|
/**
|
|
* A more detailed set of requests.
|
|
* <p>Location Providers can optionally use this to
|
|
* fine tune location updates, for example when there
|
|
* is a high power slow interval request and a
|
|
* low power fast interval request.
|
|
*/
|
|
@UnsupportedAppUsage
|
|
public List<LocationRequest> locationRequests = new ArrayList<LocationRequest>();
|
|
|
|
@UnsupportedAppUsage
|
|
public ProviderRequest() {
|
|
}
|
|
|
|
public static final Parcelable.Creator<ProviderRequest> CREATOR =
|
|
new Parcelable.Creator<ProviderRequest>() {
|
|
@Override
|
|
public ProviderRequest createFromParcel(Parcel in) {
|
|
ProviderRequest request = new ProviderRequest();
|
|
request.reportLocation = in.readInt() == 1;
|
|
request.interval = in.readLong();
|
|
request.lowPowerMode = in.readBoolean();
|
|
int count = in.readInt();
|
|
for (int i = 0; i < count; i++) {
|
|
request.locationRequests.add(LocationRequest.CREATOR.createFromParcel(in));
|
|
}
|
|
return request;
|
|
}
|
|
|
|
@Override
|
|
public ProviderRequest[] newArray(int size) {
|
|
return new ProviderRequest[size];
|
|
}
|
|
};
|
|
|
|
@Override
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void writeToParcel(Parcel parcel, int flags) {
|
|
parcel.writeInt(reportLocation ? 1 : 0);
|
|
parcel.writeLong(interval);
|
|
parcel.writeBoolean(lowPowerMode);
|
|
parcel.writeInt(locationRequests.size());
|
|
for (LocationRequest request : locationRequests) {
|
|
request.writeToParcel(parcel, flags);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
StringBuilder s = new StringBuilder();
|
|
s.append("ProviderRequest[");
|
|
if (reportLocation) {
|
|
s.append("ON");
|
|
s.append(" interval=");
|
|
TimeUtils.formatDuration(interval, s);
|
|
s.append(" lowPowerMode=" + lowPowerMode);
|
|
} else {
|
|
s.append("OFF");
|
|
}
|
|
s.append(']');
|
|
return s.toString();
|
|
}
|
|
}
|