Loading core/java/android/hardware/radio/TunerCallbackAdapter.java +37 −30 Original line number Diff line number Diff line Loading @@ -63,22 +63,28 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub { } void close() { ProgramList programList; synchronized (mLock) { if (mProgramList != null) { mProgramList.close(); if (mProgramList == null) { return; } programList = mProgramList; } programList.close(); } void setProgramListObserver(@Nullable ProgramList programList, ProgramList.OnCloseListener closeListener) { Objects.requireNonNull(closeListener, "CloseListener cannot be null"); ProgramList prevProgramList; synchronized (mLock) { if (mProgramList != null) { prevProgramList = mProgramList; mProgramList = programList; } if (prevProgramList != null) { Log.w(TAG, "Previous program list observer wasn't properly closed, closing it..."); mProgramList.close(); prevProgramList.close(); } mProgramList = programList; if (programList == null) { return; } Loading @@ -105,7 +111,6 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub { } }); } } @Nullable List<RadioManager.ProgramInfo> getLastCompleteList() { synchronized (mLock) { Loading Loading @@ -245,12 +250,14 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub { @Override public void onProgramListUpdated(ProgramList.Chunk chunk) { mHandler.post(() -> { ProgramList programList; synchronized (mLock) { if (mProgramList == null) { return; } mProgramList.apply(Objects.requireNonNull(chunk, "Chunk cannot be null")); programList = mProgramList; } programList.apply(Objects.requireNonNull(chunk, "Chunk cannot be null")); }); } Loading Loading
core/java/android/hardware/radio/TunerCallbackAdapter.java +37 −30 Original line number Diff line number Diff line Loading @@ -63,22 +63,28 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub { } void close() { ProgramList programList; synchronized (mLock) { if (mProgramList != null) { mProgramList.close(); if (mProgramList == null) { return; } programList = mProgramList; } programList.close(); } void setProgramListObserver(@Nullable ProgramList programList, ProgramList.OnCloseListener closeListener) { Objects.requireNonNull(closeListener, "CloseListener cannot be null"); ProgramList prevProgramList; synchronized (mLock) { if (mProgramList != null) { prevProgramList = mProgramList; mProgramList = programList; } if (prevProgramList != null) { Log.w(TAG, "Previous program list observer wasn't properly closed, closing it..."); mProgramList.close(); prevProgramList.close(); } mProgramList = programList; if (programList == null) { return; } Loading @@ -105,7 +111,6 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub { } }); } } @Nullable List<RadioManager.ProgramInfo> getLastCompleteList() { synchronized (mLock) { Loading Loading @@ -245,12 +250,14 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub { @Override public void onProgramListUpdated(ProgramList.Chunk chunk) { mHandler.post(() -> { ProgramList programList; synchronized (mLock) { if (mProgramList == null) { return; } mProgramList.apply(Objects.requireNonNull(chunk, "Chunk cannot be null")); programList = mProgramList; } programList.apply(Objects.requireNonNull(chunk, "Chunk cannot be null")); }); } Loading