Loading packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java +23 −7 Original line number Diff line number Diff line Loading @@ -107,25 +107,21 @@ public final class BluetoothEventManager { addHandler(Intent.ACTION_DOCK_EVENT, new DockEventHandler()); mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter, null, mReceiverHandler); mContext.registerReceiver(mProfileBroadcastReceiver, mProfileIntentFilter, null, mReceiverHandler); } void registerProfileIntentReceiver() { mContext.registerReceiver(mBroadcastReceiver, mProfileIntentFilter, null, mReceiverHandler); mContext.registerReceiver(mProfileBroadcastReceiver, mProfileIntentFilter, null, mReceiverHandler); } public void setReceiverHandler(android.os.Handler handler) { mContext.unregisterReceiver(mBroadcastReceiver); mContext.unregisterReceiver(mProfileBroadcastReceiver); mReceiverHandler = handler; mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter, null, mReceiverHandler); registerProfileIntentReceiver(); } public void setDefaultReceiverHandler() { mContext.unregisterReceiver(mBroadcastReceiver); mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter, null, mReceiverHandler); registerProfileIntentReceiver(); } /** Register to start receiving callbacks for Bluetooth events. */ public void registerCallback(BluetoothCallback callback) { synchronized (mCallbacks) { Loading Loading @@ -154,11 +150,31 @@ public final class BluetoothEventManager { } }; private final BroadcastReceiver mProfileBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); Handler handler = mHandlerMap.get(action); if (handler != null) { handler.onReceive(context, intent, device); } } }; private class AdapterStateChangedHandler implements Handler { public void onReceive(Context context, Intent intent, BluetoothDevice device) { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); // Reregister Profile Broadcast Receiver as part of TURN OFF if (state == BluetoothAdapter.STATE_OFF) { context.unregisterReceiver(mProfileBroadcastReceiver); registerProfileIntentReceiver(); } // update local profiles and get paired devices mLocalAdapter.setBluetoothStateInt(state); // send callback to update UI and possibly start scanning Loading packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -237,7 +237,7 @@ public final class LocalBluetoothProfileManager { "Warning: PBAP Client profile was previously added but the UUID is now missing."); } mEventManager.setDefaultReceiverHandler(); mEventManager.registerProfileIntentReceiver(); // There is no local SDP record for HID and Settings app doesn't control PBAP Server. } Loading Loading
packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothEventManager.java +23 −7 Original line number Diff line number Diff line Loading @@ -107,25 +107,21 @@ public final class BluetoothEventManager { addHandler(Intent.ACTION_DOCK_EVENT, new DockEventHandler()); mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter, null, mReceiverHandler); mContext.registerReceiver(mProfileBroadcastReceiver, mProfileIntentFilter, null, mReceiverHandler); } void registerProfileIntentReceiver() { mContext.registerReceiver(mBroadcastReceiver, mProfileIntentFilter, null, mReceiverHandler); mContext.registerReceiver(mProfileBroadcastReceiver, mProfileIntentFilter, null, mReceiverHandler); } public void setReceiverHandler(android.os.Handler handler) { mContext.unregisterReceiver(mBroadcastReceiver); mContext.unregisterReceiver(mProfileBroadcastReceiver); mReceiverHandler = handler; mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter, null, mReceiverHandler); registerProfileIntentReceiver(); } public void setDefaultReceiverHandler() { mContext.unregisterReceiver(mBroadcastReceiver); mContext.registerReceiver(mBroadcastReceiver, mAdapterIntentFilter, null, mReceiverHandler); registerProfileIntentReceiver(); } /** Register to start receiving callbacks for Bluetooth events. */ public void registerCallback(BluetoothCallback callback) { synchronized (mCallbacks) { Loading Loading @@ -154,11 +150,31 @@ public final class BluetoothEventManager { } }; private final BroadcastReceiver mProfileBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); Handler handler = mHandlerMap.get(action); if (handler != null) { handler.onReceive(context, intent, device); } } }; private class AdapterStateChangedHandler implements Handler { public void onReceive(Context context, Intent intent, BluetoothDevice device) { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); // Reregister Profile Broadcast Receiver as part of TURN OFF if (state == BluetoothAdapter.STATE_OFF) { context.unregisterReceiver(mProfileBroadcastReceiver); registerProfileIntentReceiver(); } // update local profiles and get paired devices mLocalAdapter.setBluetoothStateInt(state); // send callback to update UI and possibly start scanning Loading
packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -237,7 +237,7 @@ public final class LocalBluetoothProfileManager { "Warning: PBAP Client profile was previously added but the UUID is now missing."); } mEventManager.setDefaultReceiverHandler(); mEventManager.registerProfileIntentReceiver(); // There is no local SDP record for HID and Settings app doesn't control PBAP Server. } Loading