Merge "Import translations. DO NOT MERGE" into lmp-dev
diff --git a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
index bcb803b..e61b3fd 100755
--- a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
@@ -133,7 +133,9 @@
}
mProfileConnectionState.put(profile, newProfileState);
if (newProfileState == BluetoothProfile.STATE_CONNECTED) {
- if (!mProfiles.contains(profile)) {
+ if (profile instanceof MapProfile) {
+ profile.setPreferred(mDevice, true);
+ } else if (!mProfiles.contains(profile)) {
mRemovedProfiles.remove(profile);
mProfiles.add(profile);
if (profile instanceof PanProfile &&
@@ -142,15 +144,8 @@
mLocalNapRoleConnected = true;
}
}
- if (profile instanceof MapProfile) {
- profile.setPreferred(mDevice, true);
- }
} else if (profile instanceof MapProfile &&
newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
- if (mProfiles.contains(profile)) {
- mRemovedProfiles.add(profile);
- mProfiles.remove(profile);
- }
profile.setPreferred(mDevice, false);
} else if (mLocalNapRoleConnected && profile instanceof PanProfile &&
((PanProfile) profile).isLocalRoleNap(mDevice) &&
diff --git a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
index c94c2cf..757535a 100755
--- a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
+++ b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
@@ -154,6 +154,13 @@
mProfileContainer.addPreference(pbapPref);
}
+ final MapProfile mapProfile = mManager.getProfileManager().getMapProfile();
+ final int mapPermission = mCachedDevice.getMessagePermissionChoice();
+ if (mapPermission != CachedBluetoothDevice.ACCESS_UNKNOWN) {
+ CheckBoxPreference mapPreference = createProfilePreference(mapProfile);
+ mProfileContainer.addPreference(mapPreference);
+ }
+
showOrHideProfileGroup();
}
@@ -225,9 +232,13 @@
boolean isConnected =
status == BluetoothProfile.STATE_CONNECTED;
- if (isConnected) {
+ if (profilePref.isChecked()) {
askDisconnect(mManager.getForegroundActivity(), profile);
} else {
+ if (profile instanceof MapProfile) {
+ mCachedDevice.setMessagePermissionChoice(BluetoothDevice.ACCESS_ALLOWED);
+ refreshProfilePreference(profilePref, profile);
+ }
if (profile.isPreferred(device)) {
// profile is preferred but not connected: disable auto-connect
profile.setPreferred(device, false);
@@ -259,6 +270,11 @@
public void onClick(DialogInterface dialog, int which) {
device.disconnect(profile);
profile.setPreferred(device.getDevice(), false);
+ if (profile instanceof MapProfile) {
+ device.setMessagePermissionChoice(BluetoothDevice.ACCESS_REJECTED);
+ refreshProfilePreference(
+ (CheckBoxPreference)findPreference(profile.toString()), profile);
+ }
}
};
@@ -297,6 +313,7 @@
mProfileContainer.removePreference(profilePref);
}
}
+
showOrHideProfileGroup();
}
@@ -307,7 +324,10 @@
// Gray out checkbox while connecting and disconnecting.
profilePref.setEnabled(!mCachedDevice.isBusy());
- if (profile instanceof PbapServerProfile) {
+ if (profile instanceof MapProfile) {
+ profilePref.setChecked(mCachedDevice.getMessagePermissionChoice()
+ == CachedBluetoothDevice.ACCESS_ALLOWED);
+ } else if (profile instanceof PbapServerProfile) {
// Handle PBAP specially.
profilePref.setChecked(mCachedDevice.getPhonebookPermissionChoice()
== CachedBluetoothDevice.ACCESS_ALLOWED);
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
index 8fff9648..2a6a759 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothProfileManager.java
@@ -309,6 +309,10 @@
return mPbapProfile;
}
+ MapProfile getMapProfile(){
+ return mMapProfile;
+ }
+
/**
* Fill in a list of LocalBluetoothProfile objects that are supported by
* the local device and the remote device.
diff --git a/src/com/android/settings/bluetooth/MapProfile.java b/src/com/android/settings/bluetooth/MapProfile.java
index fb1b180..f47e24f 100644
--- a/src/com/android/settings/bluetooth/MapProfile.java
+++ b/src/com/android/settings/bluetooth/MapProfile.java
@@ -113,7 +113,7 @@
public boolean connect(BluetoothDevice device) {
if(V)Log.d(TAG,"connect() - should not get called");
- return true; // MAP never connects out
+ return false; // MAP never connects out
}
public boolean disconnect(BluetoothDevice device) {