Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 600109cb authored by Stanley Tng's avatar Stanley Tng Committed by Myles Watson
Browse files

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 699f42e2)
parent 2c5fd28b
Loading
Loading
Loading
Loading
+1 −20
Original line number Original line Diff line number Diff line
@@ -637,29 +637,10 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                IBinder token = entry.getKey();
                IBinder token = entry.getKey();
                ClientDeathRecipient deathRec = entry.getValue();
                ClientDeathRecipient deathRec = entry.getValue();
                if (deathRec.equals(this)) {
                if (deathRec.equals(this)) {
                    mBleApps.remove(token);
                    updateBleAppCount(token, false, mPackageName);
                    break;
                    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() {
        public String getPackageName() {