package android.location;
import android.os.Parcel;
import android.os.Parcelable;
public class FusedBatchOptions implements Parcelable {
private volatile long mPeriodInNS = 0;
private volatile int mSourcesToUse = 0;
private volatile int mFlags = 0;
private volatile double mMaxPowerAllocationInMW = 0;
private volatile float mSmallestDisplacementMeters = 0;
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;
}
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 {
public static int WAKEUP_ON_FIFO_FULL = 0x0000001;
public static int CALLBACK_ON_LOCATION_FIX =0x0000002;
}
public static final 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);
}
}