Calls unlinkToDeath in binderDied to deregister
When a registered BLE App unexpectedly dies and the binderDied callback
is called, the unlinkToDeath is called to remove linkage. Also, refactor
code to use an existing function.
Test: Manual test by repeatedly killing the gms core process.
Bug: 74076974
Change-Id: If47a534ecafe7fceae14f8cf8526987cabd279cd
(cherry picked from commit 699f42e246)
This commit is contained in:
committed by
Myles Watson
parent
2c5fd28b6e
commit
600109cb79
@@ -637,29 +637,10 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
|
||||
IBinder token = entry.getKey();
|
||||
ClientDeathRecipient deathRec = entry.getValue();
|
||||
if (deathRec.equals(this)) {
|
||||
mBleApps.remove(token);
|
||||
updateBleAppCount(token, false, mPackageName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isBleAppPresent()) {
|
||||
// Nothing to do, another app is here.
|
||||
return;
|
||||
}
|
||||
if (DBG) {
|
||||
Slog.d(TAG, "Disabling LE only mode after application crash");
|
||||
}
|
||||
try {
|
||||
mBluetoothLock.readLock().lock();
|
||||
if (mBluetooth != null && mBluetooth.getState() == BluetoothAdapter.STATE_BLE_ON) {
|
||||
mEnable = false;
|
||||
mBluetooth.onBrEdrDown();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Slog.e(TAG, "Unable to call onBrEdrDown", e);
|
||||
} finally {
|
||||
mBluetoothLock.readLock().unlock();
|
||||
}
|
||||
}
|
||||
|
||||
public String getPackageName() {
|
||||
|
||||
Reference in New Issue
Block a user