11af4b0280af406cfc7eb46810f6b76e57b983e11destradaa/* 21af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Copyright (C) 2013 The Android Open Source Project 31af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * 41af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Licensed under the Apache License, Version 2.0 (the "License"); 51af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * you may not use this file except in compliance with the License. 61af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * You may obtain a copy of the License at 71af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * 81af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * http://www.apache.org/licenses/LICENSE-2.0 91af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * 101af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Unless required by applicable law or agreed to in writing, software 111af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * distributed under the License is distributed on an "AS IS" BASIS, 121af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * See the License for the specific language governing permissions and 141af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * limitations under the License. 151af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */ 161af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 171af4b0280af406cfc7eb46810f6b76e57b983e11destradaapackage android.location; 181af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 191af4b0280af406cfc7eb46810f6b76e57b983e11destradaaimport android.os.Parcel; 201af4b0280af406cfc7eb46810f6b76e57b983e11destradaaimport android.os.Parcelable; 211af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 221af4b0280af406cfc7eb46810f6b76e57b983e11destradaa/** 231af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * A data class representing a set of options to configure batching sessions. 241af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * @hide 251af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */ 261af4b0280af406cfc7eb46810f6b76e57b983e11destradaapublic class FusedBatchOptions implements Parcelable { 271af4b0280af406cfc7eb46810f6b76e57b983e11destradaa private volatile long mPeriodInNS = 0; 281af4b0280af406cfc7eb46810f6b76e57b983e11destradaa private volatile int mSourcesToUse = 0; 291af4b0280af406cfc7eb46810f6b76e57b983e11destradaa private volatile int mFlags = 0; 301af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 311af4b0280af406cfc7eb46810f6b76e57b983e11destradaa // the default value is set to request fixes at no cost 321af4b0280af406cfc7eb46810f6b76e57b983e11destradaa private volatile double mMaxPowerAllocationInMW = 0; 331af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 341af4b0280af406cfc7eb46810f6b76e57b983e11destradaa /* 351af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Getters and setters for properties needed to hold the options. 361af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */ 371af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void setMaxPowerAllocationInMW(double value) { 381af4b0280af406cfc7eb46810f6b76e57b983e11destradaa mMaxPowerAllocationInMW = value; 391af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 401af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 411af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public double getMaxPowerAllocationInMW() { 421af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return mMaxPowerAllocationInMW; 431af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 441af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 451af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void setPeriodInNS(long value) { 461af4b0280af406cfc7eb46810f6b76e57b983e11destradaa mPeriodInNS = value; 471af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 481af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 491af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public long getPeriodInNS() { 501af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return mPeriodInNS; 511af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 521af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 531af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void setSourceToUse(int source) { 541af4b0280af406cfc7eb46810f6b76e57b983e11destradaa mSourcesToUse |= source; 551af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 561af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 571af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void resetSourceToUse(int source) { 581af4b0280af406cfc7eb46810f6b76e57b983e11destradaa mSourcesToUse &= ~source; 591af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 601af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 611af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public boolean isSourceToUseSet(int source) { 621af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return (mSourcesToUse & source) != 0; 631af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 641af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 651af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public int getSourcesToUse() { 661af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return mSourcesToUse; 671af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 681af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 691af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void setFlag(int flag) { 701af4b0280af406cfc7eb46810f6b76e57b983e11destradaa mFlags |= flag; 711af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 721af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 731af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void resetFlag(int flag) { 741af4b0280af406cfc7eb46810f6b76e57b983e11destradaa mFlags &= ~flag; 751af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 761af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 771af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public boolean isFlagSet(int flag) { 781af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return (mFlags & flag) != 0; 791af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 801af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 811af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public int getFlags() { 821af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return mFlags; 831af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 841af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 851af4b0280af406cfc7eb46810f6b76e57b983e11destradaa /** 861af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Definition of enum flag sets needed by this class. 871af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Such values need to be kept in sync with the ones in fused_location.h 881af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */ 891af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static final class SourceTechnologies { 901af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static int GNSS = 1<<0; 911af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static int WIFI = 1<<1; 921af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static int SENSORS = 1<<2; 931af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static int CELL = 1<<3; 941af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static int BLUETOOTH = 1<<4; 951af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 961af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 971af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static final class BatchFlags { 98cc972725af35284c0b571aaa0dc6873e69b15119destradaa // follow the definitions to the letter in fused_location.h 99cc972725af35284c0b571aaa0dc6873e69b15119destradaa public static int WAKEUP_ON_FIFO_FULL = 0x0000001; 100cc972725af35284c0b571aaa0dc6873e69b15119destradaa public static int CALLBACK_ON_LOCATION_FIX =0x0000002; 1011af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 1021af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 1031af4b0280af406cfc7eb46810f6b76e57b983e11destradaa /* 1041af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Method definitions to support Parcelable operations. 1051af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */ 1061af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public static final Parcelable.Creator<FusedBatchOptions> CREATOR = 1071af4b0280af406cfc7eb46810f6b76e57b983e11destradaa new Parcelable.Creator<FusedBatchOptions>() { 1081af4b0280af406cfc7eb46810f6b76e57b983e11destradaa @Override 1091af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public FusedBatchOptions createFromParcel(Parcel parcel) { 1101af4b0280af406cfc7eb46810f6b76e57b983e11destradaa FusedBatchOptions options = new FusedBatchOptions(); 1111af4b0280af406cfc7eb46810f6b76e57b983e11destradaa options.setMaxPowerAllocationInMW(parcel.readDouble()); 1121af4b0280af406cfc7eb46810f6b76e57b983e11destradaa options.setPeriodInNS(parcel.readLong()); 1131af4b0280af406cfc7eb46810f6b76e57b983e11destradaa options.setSourceToUse(parcel.readInt()); 1141af4b0280af406cfc7eb46810f6b76e57b983e11destradaa options.setFlag(parcel.readInt()); 1151af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return options; 1161af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 1171af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 1181af4b0280af406cfc7eb46810f6b76e57b983e11destradaa @Override 1191af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public FusedBatchOptions[] newArray(int size) { 1201af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return new FusedBatchOptions[size]; 1211af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 1221af4b0280af406cfc7eb46810f6b76e57b983e11destradaa }; 1231af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 1241af4b0280af406cfc7eb46810f6b76e57b983e11destradaa @Override 1251af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public int describeContents() { 1261af4b0280af406cfc7eb46810f6b76e57b983e11destradaa return 0; 1271af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 1281af4b0280af406cfc7eb46810f6b76e57b983e11destradaa 1291af4b0280af406cfc7eb46810f6b76e57b983e11destradaa @Override 1301af4b0280af406cfc7eb46810f6b76e57b983e11destradaa public void writeToParcel(Parcel parcel, int flags) { 1311af4b0280af406cfc7eb46810f6b76e57b983e11destradaa parcel.writeDouble(mMaxPowerAllocationInMW); 1321af4b0280af406cfc7eb46810f6b76e57b983e11destradaa parcel.writeLong(mPeriodInNS); 1331af4b0280af406cfc7eb46810f6b76e57b983e11destradaa parcel.writeInt(mSourcesToUse); 1341af4b0280af406cfc7eb46810f6b76e57b983e11destradaa parcel.writeInt(mFlags); 1351af4b0280af406cfc7eb46810f6b76e57b983e11destradaa } 1361af4b0280af406cfc7eb46810f6b76e57b983e11destradaa} 137