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

Commit af229217 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix system service crash on radio session death. DO NOT MERGE" into qt-qpr1-dev

parents 21cc2e5f 1b16c57b
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -233,18 +233,24 @@ class RadioModule {
    }

    private void fanoutAidlCallbackLocked(AidlCallbackRunnable runnable) {
        List<TunerSession> deadSessions = null;
        for (TunerSession tunerSession : mAidlTunerSessions) {
            try {
                runnable.run(tunerSession.mCallback);
            } catch (DeadObjectException ex) {
                // The other side died without calling close(), so just purge it from our
                // records.
                // The other side died without calling close(), so just purge it from our records.
                Slog.e(TAG, "Removing dead TunerSession");
                mAidlTunerSessions.remove(tunerSession);
                if (deadSessions == null) {
                    deadSessions = new ArrayList<>();
                }
                deadSessions.add(tunerSession);
            } catch (RemoteException ex) {
                Slog.e(TAG, "Failed to invoke ITunerCallback: ", ex);
            }
        }
        if (deadSessions != null) {
            mAidlTunerSessions.removeAll(deadSessions);
        }
    }

    public android.hardware.radio.ICloseHandle addAnnouncementListener(@NonNull int[] enabledTypes,