| /* |
| * 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 android.os.Parcel; |
| import android.os.Parcelable; |
| |
| /** |
| * A Parcelable containing (legacy) location provider properties. |
| * This object is just used inside the framework and system services. |
| * @hide |
| */ |
| public final class ProviderProperties implements Parcelable { |
| /** |
| * True if provider requires access to a |
| * data network (e.g., the Internet), false otherwise. |
| */ |
| public final boolean mRequiresNetwork; |
| |
| /** |
| * True if the provider requires access to a |
| * satellite-based positioning system (e.g., GPS), false |
| * otherwise. |
| */ |
| public final boolean mRequiresSatellite; |
| |
| /** |
| * True if the provider requires access to an appropriate |
| * cellular network (e.g., to make use of cell tower IDs), false |
| * otherwise. |
| */ |
| public final boolean mRequiresCell; |
| |
| /** |
| * True if the use of this provider may result in a |
| * monetary charge to the user, false if use is free. It is up to |
| * each provider to give accurate information. Cell (network) usage |
| * is not considered monetary cost. |
| */ |
| public final boolean mHasMonetaryCost; |
| |
| /** |
| * True if the provider is able to provide altitude |
| * information, false otherwise. A provider that reports altitude |
| * under most circumstances but may occasionally not report it |
| * should return true. |
| */ |
| public final boolean mSupportsAltitude; |
| |
| /** |
| * True if the provider is able to provide speed |
| * information, false otherwise. A provider that reports speed |
| * under most circumstances but may occasionally not report it |
| * should return true. |
| */ |
| public final boolean mSupportsSpeed; |
| |
| /** |
| * True if the provider is able to provide bearing |
| * information, false otherwise. A provider that reports bearing |
| * under most circumstances but may occasionally not report it |
| * should return true. |
| */ |
| public final boolean mSupportsBearing; |
| |
| /** |
| * Power requirement for this provider. |
| * |
| * @return the power requirement for this provider, as one of the |
| * constants Criteria.POWER_*. |
| */ |
| public final int mPowerRequirement; |
| |
| /** |
| * Constant describing the horizontal accuracy returned |
| * by this provider. |
| * |
| * @return the horizontal accuracy for this provider, as one of the |
| * constants Criteria.ACCURACY_COARSE or Criteria.ACCURACY_FINE |
| */ |
| public final int mAccuracy; |
| |
| public ProviderProperties(boolean mRequiresNetwork, |
| boolean mRequiresSatellite, boolean mRequiresCell, boolean mHasMonetaryCost, |
| boolean mSupportsAltitude, boolean mSupportsSpeed, boolean mSupportsBearing, |
| int mPowerRequirement, int mAccuracy) { |
| this.mRequiresNetwork = mRequiresNetwork; |
| this.mRequiresSatellite = mRequiresSatellite; |
| this.mRequiresCell = mRequiresCell; |
| this.mHasMonetaryCost = mHasMonetaryCost; |
| this.mSupportsAltitude = mSupportsAltitude; |
| this.mSupportsSpeed = mSupportsSpeed; |
| this.mSupportsBearing = mSupportsBearing; |
| this.mPowerRequirement = mPowerRequirement; |
| this.mAccuracy = mAccuracy; |
| } |
| |
| public static final Parcelable.Creator<ProviderProperties> CREATOR = |
| new Parcelable.Creator<ProviderProperties>() { |
| @Override |
| public ProviderProperties createFromParcel(Parcel in) { |
| boolean requiresNetwork = in.readInt() == 1; |
| boolean requiresSatellite = in.readInt() == 1; |
| boolean requiresCell = in.readInt() == 1; |
| boolean hasMonetaryCost = in.readInt() == 1; |
| boolean supportsAltitude = in.readInt() == 1; |
| boolean supportsSpeed = in.readInt() == 1; |
| boolean supportsBearing = in.readInt() == 1; |
| int powerRequirement = in.readInt(); |
| int accuracy = in.readInt(); |
| return new ProviderProperties(requiresNetwork, requiresSatellite, |
| requiresCell, hasMonetaryCost, supportsAltitude, supportsSpeed, supportsBearing, |
| powerRequirement, accuracy); |
| } |
| @Override |
| public ProviderProperties[] newArray(int size) { |
| return new ProviderProperties[size]; |
| } |
| }; |
| |
| @Override |
| public int describeContents() { |
| return 0; |
| } |
| |
| @Override |
| public void writeToParcel(Parcel parcel, int flags) { |
| parcel.writeInt(mRequiresNetwork ? 1 : 0); |
| parcel.writeInt(mRequiresSatellite ? 1 : 0); |
| parcel.writeInt(mRequiresCell ? 1 : 0); |
| parcel.writeInt(mHasMonetaryCost ? 1 : 0); |
| parcel.writeInt(mSupportsAltitude ? 1 : 0); |
| parcel.writeInt(mSupportsSpeed ? 1 : 0); |
| parcel.writeInt(mSupportsBearing ? 1 : 0); |
| parcel.writeInt(mPowerRequirement); |
| parcel.writeInt(mAccuracy); |
| } |
| } |