1436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby/*
2436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * Copyright (C) 2011 The Android Open Source Project
3436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby *
4436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * Licensed under the Apache License, Version 2.0 (the "License");
5436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * you may not use this file except in compliance with the License.
6436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * You may obtain a copy of the License at
7436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby *
8436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby *      http://www.apache.org/licenses/LICENSE-2.0
9436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby *
10436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * Unless required by applicable law or agreed to in writing, software
11436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * distributed under the License is distributed on an "AS IS" BASIS,
12436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * See the License for the specific language governing permissions and
14436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * limitations under the License.
15436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby */
16436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
17436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hambypackage com.android.settings.bluetooth;
18436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
19436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hambyimport android.bluetooth.BluetoothClass;
20436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hambyimport android.bluetooth.BluetoothDevice;
21436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
22436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby/**
23436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * LocalBluetoothProfile is an interface defining the basic
24436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby * functionality related to a Bluetooth profile.
25436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby */
26436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hambyinterface LocalBluetoothProfile {
27436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
28436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    /**
29436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * Returns true if the user can initiate a connection, false otherwise.
30436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     */
31436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    boolean isConnectable();
32436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
33436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    /**
34436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * Returns true if the user can enable auto connection for this profile.
35436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     */
36436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    boolean isAutoConnectable();
37436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
38436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    boolean connect(BluetoothDevice device);
39436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
40436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    boolean disconnect(BluetoothDevice device);
41436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
42436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    int getConnectionStatus(BluetoothDevice device);
43436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
44436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    boolean isPreferred(BluetoothDevice device);
45436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
46436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    int getPreferred(BluetoothDevice device);
47436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
48436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    void setPreferred(BluetoothDevice device, boolean preferred);
49436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
50436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    boolean isProfileReady();
51436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
52436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    /** Display order for device profile settings. */
53436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    int getOrdinal();
54436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
55436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    /**
56436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * Returns the string resource ID for the localized name for this profile.
5779be0b3e6b5639c4cbe2bbcd9adb0ec4c28716edJake Hamby     * @param device the Bluetooth device (to distinguish between PAN roles)
58436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     */
5979be0b3e6b5639c4cbe2bbcd9adb0ec4c28716edJake Hamby    int getNameResource(BluetoothDevice device);
60436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
61436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    /**
62436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * Returns the string resource ID for the summary text for this profile
63436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * for the specified device, e.g. "Use for media audio" or
64436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * "Connected to media audio".
65436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * @param device the device to query for profile connection status
66436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     * @return a string resource ID for the profile summary text
67436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby     */
68436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    int getSummaryResourceForDevice(BluetoothDevice device);
69436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby
70436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby    int getDrawableResource(BluetoothClass btClass);
71436b29e68e6608bed9e8e7d54385b8f62d89208eJake Hamby}
72