aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/InputSessionManager.java
diff options
context:
space:
mode:
authorNick Chalko <nchalko@google.com>2017-05-10 19:00:37 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-05-10 19:00:37 +0000
commitc11f019e2f3b2e9a4edb0bd2687c149a30c209a0 (patch)
tree14d9836ff9283690321c166560ee3450792236ad /src/com/android/tv/InputSessionManager.java
parent430c2be3b91676005fdd243553e38acff8dfc3de (diff)
parent0550a7221be0581b0bd421a9d70400ff8699a6e7 (diff)
downloadTV-c11f019e2f3b2e9a4edb0bd2687c149a30c209a0.tar.gz
Sync to ub-tv-dev at lost+ hash 550cbec17259717c5453f6be1eb05736ba10ef1d
am: 0550a7221b Change-Id: Id38d8bc09ffbf856c8976893096c47d3bcc8b8b7
Diffstat (limited to 'src/com/android/tv/InputSessionManager.java')
-rw-r--r--src/com/android/tv/InputSessionManager.java28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/com/android/tv/InputSessionManager.java b/src/com/android/tv/InputSessionManager.java
index e4b0f456..faf76555 100644
--- a/src/com/android/tv/InputSessionManager.java
+++ b/src/com/android/tv/InputSessionManager.java
@@ -37,7 +37,6 @@ import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log;
-import com.android.tv.common.SoftPreconditions;
import com.android.tv.data.Channel;
import com.android.tv.ui.TunableTvView;
import com.android.tv.ui.TunableTvView.OnTuneListener;
@@ -73,6 +72,8 @@ public class InputSessionManager {
Collections.synchronizedSet(new ArraySet<>());
private final Set<OnTvViewChannelChangeListener> mOnTvViewChannelChangeListeners =
new ArraySet<>();
+ private final Set<OnRecordingSessionChangeListener> mOnRecordingSessionChangeListeners =
+ new ArraySet<>();
public InputSessionManager(Context context) {
mContext = context.getApplicationContext();
@@ -113,6 +114,9 @@ public class InputSessionManager {
RecordingSession session = new RecordingSession(inputId, tag, callback, handler, endTimeMs);
mRecordingSessions.add(session);
if (DEBUG) Log.d(TAG, "Recording session created: " + session);
+ for (OnRecordingSessionChangeListener listener : mOnRecordingSessionChangeListeners) {
+ listener.onRecordingSessionChange(true, mRecordingSessions.size());
+ }
return session;
}
@@ -123,6 +127,9 @@ public class InputSessionManager {
mRecordingSessions.remove(session);
session.release();
if (DEBUG) Log.d(TAG, "Recording session released: " + session);
+ for (OnRecordingSessionChangeListener listener : mOnRecordingSessionChangeListeners) {
+ listener.onRecordingSessionChange(false, mRecordingSessions.size());
+ }
}
/**
@@ -148,9 +155,17 @@ public class InputSessionManager {
}
}
- /**
- * Returns the current {@link TvView} channel.
- */
+ /** Adds the {@link OnRecordingSessionChangeListener}. */
+ public void addOnRecordingSessionChangeListener(OnRecordingSessionChangeListener listener) {
+ mOnRecordingSessionChangeListeners.add(listener);
+ }
+
+ /** Removes the {@link OnRecordingSessionChangeListener}. */
+ public void removeRecordingSessionChangeListener(OnRecordingSessionChangeListener listener) {
+ mOnRecordingSessionChangeListeners.remove(listener);
+ }
+
+ /** Returns the current {@link TvView} channel. */
@MainThread
public Uri getCurrentTvViewChannelUri() {
for (TvViewSession session : mTvViewSessions) {
@@ -546,4 +561,9 @@ public class InputSessionManager {
public interface OnTvViewChannelChangeListener {
void onTvViewChannelChange(@Nullable Uri channelUri);
}
+
+ /** Called when recording session is created or destroyed. */
+ public interface OnRecordingSessionChangeListener {
+ void onRecordingSessionChange(boolean create, int count);
+ }
}