149 lines
4.3 KiB
Java
149 lines
4.3 KiB
Java
/*
|
|
* Copyright (C) 2013 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 android.location;
|
|
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
|
|
/**
|
|
* A data class representing a set of options to configure batching sessions.
|
|
* @hide
|
|
*/
|
|
public class FusedBatchOptions implements Parcelable {
|
|
private volatile long mPeriodInNS = 0;
|
|
private volatile int mSourcesToUse = 0;
|
|
private volatile int mFlags = 0;
|
|
|
|
// the default value is set to request fixes at no cost
|
|
private volatile double mMaxPowerAllocationInMW = 0;
|
|
// If non-zero can be used for power savings by throttling location when device hasn't moved.
|
|
private volatile float mSmallestDisplacementMeters = 0;
|
|
|
|
/*
|
|
* Getters and setters for properties needed to hold the options.
|
|
*/
|
|
public void setMaxPowerAllocationInMW(double value) {
|
|
mMaxPowerAllocationInMW = value;
|
|
}
|
|
|
|
public double getMaxPowerAllocationInMW() {
|
|
return mMaxPowerAllocationInMW;
|
|
}
|
|
|
|
public void setPeriodInNS(long value) {
|
|
mPeriodInNS = value;
|
|
}
|
|
|
|
public long getPeriodInNS() {
|
|
return mPeriodInNS;
|
|
}
|
|
|
|
public void setSmallestDisplacementMeters(float value) {
|
|
mSmallestDisplacementMeters = value;
|
|
}
|
|
|
|
public float getSmallestDisplacementMeters() {
|
|
return mSmallestDisplacementMeters;
|
|
}
|
|
|
|
public void setSourceToUse(int source) {
|
|
mSourcesToUse |= source;
|
|
}
|
|
|
|
public void resetSourceToUse(int source) {
|
|
mSourcesToUse &= ~source;
|
|
}
|
|
|
|
public boolean isSourceToUseSet(int source) {
|
|
return (mSourcesToUse & source) != 0;
|
|
}
|
|
|
|
public int getSourcesToUse() {
|
|
return mSourcesToUse;
|
|
}
|
|
|
|
public void setFlag(int flag) {
|
|
mFlags |= flag;
|
|
}
|
|
|
|
public void resetFlag(int flag) {
|
|
mFlags &= ~flag;
|
|
}
|
|
|
|
public boolean isFlagSet(int flag) {
|
|
return (mFlags & flag) != 0;
|
|
}
|
|
|
|
public int getFlags() {
|
|
return mFlags;
|
|
}
|
|
|
|
/**
|
|
* Definition of enum flag sets needed by this class.
|
|
* Such values need to be kept in sync with the ones in fused_location.h
|
|
*/
|
|
public static final class SourceTechnologies {
|
|
public static int GNSS = 1<<0;
|
|
public static int WIFI = 1<<1;
|
|
public static int SENSORS = 1<<2;
|
|
public static int CELL = 1<<3;
|
|
public static int BLUETOOTH = 1<<4;
|
|
}
|
|
|
|
public static final class BatchFlags {
|
|
// follow the definitions to the letter in fused_location.h
|
|
public static int WAKEUP_ON_FIFO_FULL = 0x0000001;
|
|
public static int CALLBACK_ON_LOCATION_FIX =0x0000002;
|
|
}
|
|
|
|
/*
|
|
* Method definitions to support Parcelable operations.
|
|
*/
|
|
public static final @android.annotation.NonNull Parcelable.Creator<FusedBatchOptions> CREATOR =
|
|
new Parcelable.Creator<FusedBatchOptions>() {
|
|
@Override
|
|
public FusedBatchOptions createFromParcel(Parcel parcel) {
|
|
FusedBatchOptions options = new FusedBatchOptions();
|
|
options.setMaxPowerAllocationInMW(parcel.readDouble());
|
|
options.setPeriodInNS(parcel.readLong());
|
|
options.setSourceToUse(parcel.readInt());
|
|
options.setFlag(parcel.readInt());
|
|
options.setSmallestDisplacementMeters(parcel.readFloat());
|
|
return options;
|
|
}
|
|
|
|
@Override
|
|
public FusedBatchOptions[] newArray(int size) {
|
|
return new FusedBatchOptions[size];
|
|
}
|
|
};
|
|
|
|
@Override
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void writeToParcel(Parcel parcel, int flags) {
|
|
parcel.writeDouble(mMaxPowerAllocationInMW);
|
|
parcel.writeLong(mPeriodInNS);
|
|
parcel.writeInt(mSourcesToUse);
|
|
parcel.writeInt(mFlags);
|
|
parcel.writeFloat(mSmallestDisplacementMeters);
|
|
}
|
|
}
|