blob: 15a9101452edd7bfc9f818b416a9552927da6573 [file] [log] [blame]
/*
* Copyright (C) 2011 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.bluetooth;
import android.os.Parcel;
import android.os.Parcelable;
/**
* The Bluetooth Health Application Configuration that is used in conjunction with
* the {@link BluetoothHealth} class. This class represents an application configuration
* that the Bluetooth Health third party application will register to communicate with the
* remote Bluetooth health device.
*
*/
public final class BluetoothHealthAppConfiguration implements Parcelable {
private final String mName;
private final int mDataType;
private final int mRole;
private final int mChannelType;
/**
* Constructor to register the SINK role
*
* @param name Friendly name associated with the application configuration
* @param dataType Data Type of the remote Bluetooth Health device
* @hide
*/
BluetoothHealthAppConfiguration(String name, int dataType) {
mName = name;
mDataType = dataType;
mRole = BluetoothHealth.SINK_ROLE;
mChannelType = BluetoothHealth.CHANNEL_TYPE_ANY;
}
/**
* Constructor to register the application configuration.
*
* @param name Friendly name associated with the application configuration
* @param dataType Data Type of the remote Bluetooth Health device
* @param role {@link BluetoothHealth#SOURCE_ROLE} or
* {@link BluetoothHealth#SINK_ROLE}
* @hide
*/
BluetoothHealthAppConfiguration(String name, int dataType, int role, int
channelType) {
mName = name;
mDataType = dataType;
mRole = role;
mChannelType = channelType;
}
@Override
public boolean equals(Object o) {
if (o instanceof BluetoothHealthAppConfiguration) {
BluetoothHealthAppConfiguration config = (BluetoothHealthAppConfiguration) o;
// config.getName() can never be NULL
return mName.equals(config.getName()) &&
mDataType == config.getDataType() &&
mRole == config.getRole() &&
mChannelType == config.getChannelType();
}
return false;
}
@Override
public int hashCode() {
int result = 17;
result = 31 * result + (mName != null ? mName.hashCode() : 0);
result = 31 * result + mDataType;
result = 31 * result + mRole;
result = 31 * result + mChannelType;
return result;
}
@Override
public String toString() {
return "BluetoothHealthAppConfiguration [mName = " + mName +
",mDataType = " + mDataType + ", mRole = " + mRole + ",mChannelType = " +
mChannelType + "]";
}
public int describeContents() {
return 0;
}
/**
* Return the data type associated with this application configuration.
*
* @return dataType
*/
public int getDataType() {
return mDataType;
}
/**
* Return the name of the application configuration.
*
* @return String name
*/
public String getName() {
return mName;
}
/**
* Return the role associated with this application configuration.
*
* @return One of {@link BluetoothHealth#SOURCE_ROLE} or
* {@link BluetoothHealth#SINK_ROLE}
*/
public int getRole() {
return mRole;
}
/**
* Return the channel type associated with this application configuration.
*
* @return One of {@link BluetoothHealth#CHANNEL_TYPE_RELIABLE} or
* {@link BluetoothHealth#CHANNEL_TYPE_STREAMING} or
* {@link BluetoothHealth#CHANNEL_TYPE_ANY}.
* @hide
*/
public int getChannelType() {
return mChannelType;
}
public static final Parcelable.Creator<BluetoothHealthAppConfiguration> CREATOR =
new Parcelable.Creator<BluetoothHealthAppConfiguration>() {
@Override
public BluetoothHealthAppConfiguration createFromParcel(Parcel in) {
String name = in.readString();
int type = in.readInt();
int role = in.readInt();
int channelType = in.readInt();
return new BluetoothHealthAppConfiguration(name, type, role,
channelType);
}
@Override
public BluetoothHealthAppConfiguration[] newArray(int size) {
return new BluetoothHealthAppConfiguration[size];
}
};
public void writeToParcel(Parcel out, int flags) {
out.writeString(mName);
out.writeInt(mDataType);
out.writeInt(mRole);
out.writeInt(mChannelType);
}
}