Merge "Fix MediaCas CTS failure TRM is checking input parameters and won't allow null executor. Use context main executor to call Tuner Resource Manager (TRM)" into rvc-dev

This commit is contained in:
Henry Fang
2020-07-16 18:49:50 +00:00
committed by Android (Google) Code Review

View File

@@ -34,7 +34,6 @@ import android.media.tv.tunerresourcemanager.ResourceClientProfile;
import android.media.tv.tunerresourcemanager.TunerResourceManager; import android.media.tv.tunerresourcemanager.TunerResourceManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.os.IHwBinder; import android.os.IHwBinder;
import android.os.Looper; import android.os.Looper;
@@ -50,6 +49,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@@ -392,7 +392,10 @@ public final class MediaCas implements AutoCloseable {
@Override @Override
public void onReclaimResources() { public void onReclaimResources() {
synchronized (mSessionMap) { synchronized (mSessionMap) {
mSessionMap.forEach((casSession, sessionResourceHandle) -> casSession.close()); List<Session> sessionList = new ArrayList<>(mSessionMap.keySet());
for (Session casSession: sessionList) {
casSession.close();
}
} }
mEventHandler.sendMessage(mEventHandler.obtainMessage( mEventHandler.sendMessage(mEventHandler.obtainMessage(
EventHandler.MSG_CAS_RESOURCE_LOST)); EventHandler.MSG_CAS_RESOURCE_LOST));
@@ -734,7 +737,7 @@ public final class MediaCas implements AutoCloseable {
ResourceClientProfile profile = ResourceClientProfile profile =
new ResourceClientProfile(tvInputServiceSessionId, priorityHint); new ResourceClientProfile(tvInputServiceSessionId, priorityHint);
mTunerResourceManager.registerClientProfile( mTunerResourceManager.registerClientProfile(
profile, new HandlerExecutor(mEventHandler), mResourceListener, clientId); profile, context.getMainExecutor(), mResourceListener, clientId);
mClientId = clientId[0]; mClientId = clientId[0];
} }
} }