MAP 1.1 Review fixes
- Fixes to the issues found during review. - added support for BluetoothProfile ProfileService Classes - Added new MapProfile.java to comply with new structure - changed ORDINAL to use BluetoothProfile.MAP directly - Moved construction of MapProfile to LocalBluetoothProfileManager constructor - Added support for multiple concurent permission activities and/or multiple notifications (i.e. pbap and map permission request right after each other) - cleanup - changed settings to use Notification.Builder - made the notifications for map/pbab more informative - added handling of back button + "clear all notifications" Bug:10692365 Change-Id: I9803c9658a96b1a9c1d4734d2fdd22f1421d2827
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.bluetooth;
|
||||
import android.bluetooth.BluetoothA2dp;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothHeadset;
|
||||
import android.bluetooth.BluetoothMap;
|
||||
import android.bluetooth.BluetoothInputDevice;
|
||||
import android.bluetooth.BluetoothPan;
|
||||
import android.bluetooth.BluetoothPbap;
|
||||
@@ -44,7 +45,7 @@ import java.util.List;
|
||||
*/
|
||||
final class LocalBluetoothProfileManager {
|
||||
private static final String TAG = "LocalBluetoothProfileManager";
|
||||
|
||||
private static final boolean DEBUG = Utils.D;
|
||||
/** Singleton instance. */
|
||||
private static LocalBluetoothProfileManager sInstance;
|
||||
|
||||
@@ -79,6 +80,7 @@ final class LocalBluetoothProfileManager {
|
||||
|
||||
private A2dpProfile mA2dpProfile;
|
||||
private HeadsetProfile mHeadsetProfile;
|
||||
private MapProfile mMapProfile;
|
||||
private final HidProfile mHidProfile;
|
||||
private OppProfile mOppProfile;
|
||||
private final PanProfile mPanProfile;
|
||||
@@ -119,11 +121,17 @@ final class LocalBluetoothProfileManager {
|
||||
addPanProfile(mPanProfile, PanProfile.NAME,
|
||||
BluetoothPan.ACTION_CONNECTION_STATE_CHANGED);
|
||||
|
||||
if(DEBUG) Log.d(TAG, "Adding local MAP profile");
|
||||
mMapProfile = new MapProfile(mContext, mLocalAdapter,
|
||||
mDeviceManager, this);
|
||||
addProfile(mMapProfile, MapProfile.NAME,
|
||||
BluetoothMap.ACTION_CONNECTION_STATE_CHANGED);
|
||||
|
||||
//Create PBAP server profile, but do not add it to list of profiles
|
||||
// as we do not need to monitor the profile as part of profile list
|
||||
mPbapProfile = new PbapServerProfile(context);
|
||||
|
||||
Log.d(TAG, "LocalBluetoothProfileManager construction complete");
|
||||
if (DEBUG) Log.d(TAG, "LocalBluetoothProfileManager construction complete");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,7 +145,7 @@ final class LocalBluetoothProfileManager {
|
||||
// A2DP
|
||||
if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.AudioSource)) {
|
||||
if (mA2dpProfile == null) {
|
||||
Log.d(TAG, "Adding local A2DP profile");
|
||||
if(DEBUG) Log.d(TAG, "Adding local A2DP profile");
|
||||
mA2dpProfile = new A2dpProfile(mContext, mLocalAdapter, mDeviceManager, this);
|
||||
addProfile(mA2dpProfile, A2dpProfile.NAME,
|
||||
BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED);
|
||||
@@ -150,7 +158,7 @@ final class LocalBluetoothProfileManager {
|
||||
if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.Handsfree_AG) ||
|
||||
BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.HSP_AG)) {
|
||||
if (mHeadsetProfile == null) {
|
||||
Log.d(TAG, "Adding local HEADSET profile");
|
||||
if (DEBUG) Log.d(TAG, "Adding local HEADSET profile");
|
||||
mHeadsetProfile = new HeadsetProfile(mContext, mLocalAdapter,
|
||||
mDeviceManager, this);
|
||||
addProfile(mHeadsetProfile, HeadsetProfile.NAME,
|
||||
@@ -163,7 +171,7 @@ final class LocalBluetoothProfileManager {
|
||||
// OPP
|
||||
if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.ObexObjectPush)) {
|
||||
if (mOppProfile == null) {
|
||||
Log.d(TAG, "Adding local OPP profile");
|
||||
if(DEBUG) Log.d(TAG, "Adding local OPP profile");
|
||||
mOppProfile = new OppProfile();
|
||||
// Note: no event handler for OPP, only name map.
|
||||
mProfileNameMap.put(OppProfile.NAME, mOppProfile);
|
||||
@@ -301,7 +309,6 @@ final class LocalBluetoothProfileManager {
|
||||
return mPbapProfile;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fill in a list of LocalBluetoothProfile objects that are supported by
|
||||
* the local device and the remote device.
|
||||
@@ -354,7 +361,7 @@ final class LocalBluetoothProfileManager {
|
||||
}
|
||||
|
||||
if(isPanNapConnected)
|
||||
Log.d(TAG, "Valid PAN-NAP connection exists.");
|
||||
if(DEBUG) Log.d(TAG, "Valid PAN-NAP connection exists.");
|
||||
if ((BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.NAP) &&
|
||||
mPanProfile != null) || isPanNapConnected) {
|
||||
profiles.add(mPanProfile);
|
||||
|
Reference in New Issue
Block a user