diff --git a/media/java/android/media/tv/TvContract.java b/media/java/android/media/tv/TvContract.java index e98c5c8f96fe4..cd0e77697323e 100644 --- a/media/java/android/media/tv/TvContract.java +++ b/media/java/android/media/tv/TvContract.java @@ -16,6 +16,7 @@ package android.media.tv; +import android.annotation.SystemApi; import android.content.ComponentName; import android.content.ContentResolver; import android.content.ContentUris; @@ -119,6 +120,15 @@ public final class TvContract { .appendPath(PATH_PASSTHROUGH).build(); } + /** + * Returns true, if {@code channelUri} is a channel URI for a passthrough TV input. + * @hide + */ + @SystemApi + public static final boolean isChannelUriForPassthroughTvInput(Uri channelUri) { + return channelUri.toString().endsWith(PATH_PASSTHROUGH); + } + /** * Builds a URI that points to a channel logo. See {@link Channels.Logo}. * diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java index 01aaca0357139..d7ecd7a507cd7 100644 --- a/services/core/java/com/android/server/tv/TvInputManagerService.java +++ b/services/core/java/com/android/server/tv/TvInputManagerService.java @@ -993,7 +993,10 @@ public final class TvInputManagerService extends SystemService { synchronized (mLock) { try { getSessionLocked(sessionToken, callingUid, resolvedUserId).tune(channelUri); - + if (TvContract.isChannelUriForPassthroughTvInput(channelUri)) { + // Do not log the watch history for passthrough inputs. + return; + } long currentTime = System.currentTimeMillis(); long channelId = ContentUris.parseId(channelUri);