2020import android .app .AlertDialog ;
2121import android .app .Dialog ;
2222import android .app .PendingIntent ;
23+ import android .bluetooth .BluetoothAdapter ;
2324import android .content .BroadcastReceiver ;
2425import android .content .ComponentName ;
2526import android .content .Context ;
@@ -81,6 +82,7 @@ class QuickSettings {
8182 private DisplayManager mDisplayManager ;
8283 private WifiDisplayStatus mWifiDisplayStatus ;
8384 private PhoneStatusBar mStatusBarService ;
85+ private QuickSettingsModel .BluetoothState mBluetoothState ;
8486
8587 private BrightnessController mBrightnessController ;
8688 private BluetoothController mBluetoothController ;
@@ -115,6 +117,7 @@ public QuickSettings(Context context, QuickSettingsContainerView container) {
115117 mContainerView = container ;
116118 mModel = new QuickSettingsModel (context );
117119 mWifiDisplayStatus = new WifiDisplayStatus ();
120+ mBluetoothState = new QuickSettingsModel .BluetoothState ();
118121 mHandler = new Handler ();
119122
120123 Resources r = mContext .getResources ();
@@ -128,6 +131,7 @@ public QuickSettings(Context context, QuickSettingsContainerView container) {
128131
129132 IntentFilter filter = new IntentFilter ();
130133 filter .addAction (DisplayManager .ACTION_WIFI_DISPLAY_STATUS_CHANGED );
134+ filter .addAction (BluetoothAdapter .ACTION_CONNECTION_STATE_CHANGED );
131135 mContext .registerReceiver (mReceiver , filter );
132136 }
133137
@@ -739,6 +743,10 @@ private void applyWifiDisplayStatus() {
739743 mModel .onWifiDisplayStateChanged (mWifiDisplayStatus );
740744 }
741745
746+ private void applyBluetoothStatus () {
747+ mModel .onBluetoothStateChange (mBluetoothState );
748+ }
749+
742750 private final BroadcastReceiver mReceiver = new BroadcastReceiver () {
743751 @ Override
744752 public void onReceive (Context context , Intent intent ) {
@@ -748,6 +756,12 @@ public void onReceive(Context context, Intent intent) {
748756 mWifiDisplayStatus = status ;
749757 applyWifiDisplayStatus ();
750758 }
759+ if (intent .getAction ().equals (BluetoothAdapter .ACTION_CONNECTION_STATE_CHANGED )) {
760+ int status = intent .getIntExtra (BluetoothAdapter .EXTRA_CONNECTION_STATE ,
761+ BluetoothAdapter .STATE_DISCONNECTED );
762+ mBluetoothState .connected = (status == BluetoothAdapter .STATE_CONNECTED );
763+ applyBluetoothStatus ();
764+ }
751765 }
752766 };
753767}
0 commit comments