Merge commit '47cc8112c3f77637ef408ef18e48d146e8250a27' into eclair-mr2-plus-aosp * commit '47cc8112c3f77637ef408ef18e48d146e8250a27': Fix updating Bluetooth icon on status bar and for Wifi.
This commit is contained in:
@@ -25,6 +25,7 @@ import static android.net.wifi.WifiManager.WIFI_STATE_UNKNOWN;
|
|||||||
import android.app.AlarmManager;
|
import android.app.AlarmManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.bluetooth.BluetoothA2dp;
|
import android.bluetooth.BluetoothA2dp;
|
||||||
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -62,6 +63,7 @@ import java.util.HashMap;
|
|||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
@@ -1380,11 +1382,16 @@ public class WifiService extends IWifiManager.Stub {
|
|||||||
}
|
}
|
||||||
mPluggedType = pluggedType;
|
mPluggedType = pluggedType;
|
||||||
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
|
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
|
||||||
boolean isBluetoothPlaying =
|
BluetoothA2dp a2dp = new BluetoothA2dp(mContext);
|
||||||
intent.getIntExtra(
|
Set<BluetoothDevice> sinks = a2dp.getConnectedSinks();
|
||||||
BluetoothA2dp.EXTRA_SINK_STATE,
|
boolean isBluetoothPlaying = false;
|
||||||
BluetoothA2dp.STATE_DISCONNECTED) == BluetoothA2dp.STATE_PLAYING;
|
for (BluetoothDevice sink : sinks) {
|
||||||
|
if (a2dp.getSinkState(sink) == BluetoothA2dp.STATE_PLAYING) {
|
||||||
|
isBluetoothPlaying = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
mWifiStateTracker.setBluetoothScanMode(isBluetoothPlaying);
|
mWifiStateTracker.setBluetoothScanMode(isBluetoothPlaying);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ public class StatusBarPolicy {
|
|||||||
private IBinder mBluetoothIcon;
|
private IBinder mBluetoothIcon;
|
||||||
private IconData mBluetoothData;
|
private IconData mBluetoothData;
|
||||||
private int mBluetoothHeadsetState;
|
private int mBluetoothHeadsetState;
|
||||||
private int mBluetoothA2dpState;
|
private boolean mBluetoothA2dpConnected;
|
||||||
private int mBluetoothPbapState;
|
private int mBluetoothPbapState;
|
||||||
private boolean mBluetoothEnabled;
|
private boolean mBluetoothEnabled;
|
||||||
|
|
||||||
@@ -455,7 +455,7 @@ public class StatusBarPolicy {
|
|||||||
} else {
|
} else {
|
||||||
mBluetoothEnabled = false;
|
mBluetoothEnabled = false;
|
||||||
}
|
}
|
||||||
mBluetoothA2dpState = BluetoothA2dp.STATE_DISCONNECTED;
|
mBluetoothA2dpConnected = false;
|
||||||
mBluetoothHeadsetState = BluetoothHeadset.STATE_DISCONNECTED;
|
mBluetoothHeadsetState = BluetoothHeadset.STATE_DISCONNECTED;
|
||||||
mBluetoothPbapState = BluetoothPbap.STATE_DISCONNECTED;
|
mBluetoothPbapState = BluetoothPbap.STATE_DISCONNECTED;
|
||||||
mService.setIconVisibility(mBluetoothIcon, mBluetoothEnabled);
|
mService.setIconVisibility(mBluetoothIcon, mBluetoothEnabled);
|
||||||
@@ -1083,7 +1083,6 @@ public class StatusBarPolicy {
|
|||||||
|
|
||||||
private final void updateBluetooth(Intent intent) {
|
private final void updateBluetooth(Intent intent) {
|
||||||
int iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth;
|
int iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth;
|
||||||
|
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
|
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
|
||||||
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
|
int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
|
||||||
@@ -1092,8 +1091,12 @@ public class StatusBarPolicy {
|
|||||||
mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
|
mBluetoothHeadsetState = intent.getIntExtra(BluetoothHeadset.EXTRA_STATE,
|
||||||
BluetoothHeadset.STATE_ERROR);
|
BluetoothHeadset.STATE_ERROR);
|
||||||
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
|
} else if (action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED)) {
|
||||||
mBluetoothA2dpState = intent.getIntExtra(BluetoothA2dp.EXTRA_SINK_STATE,
|
BluetoothA2dp a2dp = new BluetoothA2dp(mContext);
|
||||||
BluetoothA2dp.STATE_DISCONNECTED);
|
if (a2dp.getConnectedSinks().size() != 0) {
|
||||||
|
mBluetoothA2dpConnected = true;
|
||||||
|
} else {
|
||||||
|
mBluetoothA2dpConnected = false;
|
||||||
|
}
|
||||||
} else if (action.equals(BluetoothPbap.PBAP_STATE_CHANGED_ACTION)) {
|
} else if (action.equals(BluetoothPbap.PBAP_STATE_CHANGED_ACTION)) {
|
||||||
mBluetoothPbapState = intent.getIntExtra(BluetoothPbap.PBAP_STATE,
|
mBluetoothPbapState = intent.getIntExtra(BluetoothPbap.PBAP_STATE,
|
||||||
BluetoothPbap.STATE_DISCONNECTED);
|
BluetoothPbap.STATE_DISCONNECTED);
|
||||||
@@ -1101,9 +1104,7 @@ public class StatusBarPolicy {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mBluetoothHeadsetState == BluetoothHeadset.STATE_CONNECTED ||
|
if (mBluetoothHeadsetState == BluetoothHeadset.STATE_CONNECTED || mBluetoothA2dpConnected ||
|
||||||
mBluetoothA2dpState == BluetoothA2dp.STATE_CONNECTED ||
|
|
||||||
mBluetoothA2dpState == BluetoothA2dp.STATE_PLAYING ||
|
|
||||||
mBluetoothPbapState == BluetoothPbap.STATE_CONNECTED) {
|
mBluetoothPbapState == BluetoothPbap.STATE_CONNECTED) {
|
||||||
iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth_connected;
|
iconId = com.android.internal.R.drawable.stat_sys_data_bluetooth_connected;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user