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

Commit c505cc19 authored by Shubang Lu's avatar Shubang Lu Committed by Android (Google) Code Review
Browse files

Merge "TIF: Change the isForeground API to isVisible and isMainSession" into sc-dev

parents d78b21c5 e8c3a424
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android {
    field public static final String ACCESS_SHARED_LIBRARIES = "android.permission.ACCESS_SHARED_LIBRARIES";
    field public static final String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS";
    field public static final String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER";
    field public static final String ACCESS_TUNED_INFO = "android.permission.ACCESS_TUNED_INFO";
    field public static final String ACCESS_TV_DESCRAMBLER = "android.permission.ACCESS_TV_DESCRAMBLER";
    field public static final String ACCESS_TV_TUNER = "android.permission.ACCESS_TV_TUNER";
    field public static final String ACCESS_VIBRATOR_STATE = "android.permission.ACCESS_VIBRATOR_STATE";
@@ -5635,8 +5636,9 @@ package android.media.tv {
    method public int getAppType();
    method @Nullable public android.net.Uri getChannelUri();
    method @NonNull public String getInputId();
    method public boolean isForeground();
    method public boolean isMainSession();
    method public boolean isRecordingSession();
    method public boolean isVisible();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int APP_TAG_SELF = 0; // 0x0
    field public static final int APP_TYPE_NON_SYSTEM = 3; // 0x3
@@ -5760,7 +5762,7 @@ package android.media.tv {
    method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
    method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
    method @NonNull @RequiresPermission("com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS") public java.util.List<android.media.tv.TunedInfo> getCurrentTunedInfos();
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TUNED_INFO) public java.util.List<android.media.tv.TunedInfo> getCurrentTunedInfos();
    method @NonNull @RequiresPermission("android.permission.DVB_DEVICE") public java.util.List<android.media.tv.DvbDeviceInfo> getDvbDeviceList();
    method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
    method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
@@ -5787,7 +5789,7 @@ package android.media.tv {
  }
  public abstract static class TvInputManager.TvInputCallback {
    method public void onCurrentTunedInfosUpdated(@NonNull java.util.List<android.media.tv.TunedInfo>);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TUNED_INFO) public void onCurrentTunedInfosUpdated(@NonNull java.util.List<android.media.tv.TunedInfo>);
  }
  public abstract class TvInputService extends android.app.Service {
+6 −0
Original line number Diff line number Diff line
@@ -5734,6 +5734,12 @@
    <permission android:name="android.permission.SET_CLIP_SOURCE"
                android:protectionLevel="signature|recents" />

    <!-- @SystemApi Allows an application to access TV tuned info
         <p>Not for use by third-party applications.
         @hide -->
    <permission android:name="android.permission.ACCESS_TUNED_INFO"
        android:protectionLevel="signature|privileged|vendorPrivileged" />

    <!-- Allows an application to indicate via
         {@link android.content.pm.PackageInstaller.SessionParams#setRequireUserAction(boolean)}
         that user action should not be required for an app update.
+1 −0
Original line number Diff line number Diff line
@@ -458,6 +458,7 @@ applications that come with the platform
        <permission name="android.permission.ACCESS_TV_TUNER" />
        <permission name="android.permission.TUNER_RESOURCE_ACCESS" />
        <!-- Permissions required for CTS test - TVInputManagerTest -->
        <permission name="android.permission.ACCESS_TUNED_INFO" />
        <permission name="android.permission.TV_INPUT_HARDWARE" />
        <!-- Permission required for CTS test - PrivilegedLocationPermissionTest -->
        <permission name="android.permission.LOCATION_HARDWARE" />
+32 −12
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
import android.view.Surface;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -92,18 +93,20 @@ public final class TunedInfo implements Parcelable {
    private final String mInputId;
    @Nullable private final Uri mChannelUri;
    private final boolean mIsRecordingSession;
    private final boolean mIsForeground;
    private final boolean mIsVisible;
    private final boolean mIsMainSession;
    @AppType private final int mAppType;
    private final int mAppTag;

    /** @hide */
    public TunedInfo(
            String inputId, @Nullable Uri channelUri, boolean isRecordingSession,
            boolean isForeground, @AppType int appType, int appTag) {
            boolean isVisible, boolean isMainSession, @AppType int appType, int appTag) {
        mInputId = inputId;
        mChannelUri = channelUri;
        mIsRecordingSession = isRecordingSession;
        mIsForeground = isForeground;
        mIsVisible = isVisible;
        mIsMainSession = isMainSession;
        mAppType = appType;
        mAppTag = appTag;
    }
@@ -114,7 +117,8 @@ public final class TunedInfo implements Parcelable {
        String uriString = source.readString();
        mChannelUri = uriString == null ? null : Uri.parse(uriString);
        mIsRecordingSession = (source.readInt() == 1);
        mIsForeground = (source.readInt() == 1);
        mIsVisible = (source.readInt() == 1);
        mIsMainSession = (source.readInt() == 1);
        mAppType = source.readInt();
        mAppTag = source.readInt();
    }
@@ -145,11 +149,23 @@ public final class TunedInfo implements Parcelable {
    }

    /**
     * Returns {@code true} if the application is a foreground application.
     * @see android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND
     * Returns {@code true} if the corresponding session is visible.
     * <p>The system checks whether the {@link Surface} of the session is {@code null} or not. When
     * it becomes invisible, the surface is destroyed and set to null.
     * @see TvInputService.Session#onSetSurface(Surface)
     * @see android.view.SurfaceView#notifySurfaceDestroyed
     */
    public boolean isForeground() {
        return mIsForeground;
    public boolean isVisible() {
        return mIsVisible;
    }

    /**
     * Returns {@code true} if the corresponding session is set as main session.
     * @see TvView#setMain
     * @see TvInputService.Session#onSetMain
     */
    public boolean isMainSession() {
        return mIsMainSession;
    }

    /**
@@ -180,7 +196,8 @@ public final class TunedInfo implements Parcelable {
        String uriString = mChannelUri == null ? null : mChannelUri.toString();
        dest.writeString(uriString);
        dest.writeInt(mIsRecordingSession ? 1 : 0);
        dest.writeInt(mIsForeground ? 1 : 0);
        dest.writeInt(mIsVisible ? 1 : 0);
        dest.writeInt(mIsMainSession ? 1 : 0);
        dest.writeInt(mAppType);
        dest.writeInt(mAppTag);
    }
@@ -190,7 +207,8 @@ public final class TunedInfo implements Parcelable {
        return "inputID=" + mInputId
                + ";channelUri=" + mChannelUri
                + ";isRecording=" + mIsRecordingSession
                + ";isForeground=" + mIsForeground
                + ";isVisible=" + mIsVisible
                + ";isMainSession=" + mIsMainSession
                + ";appType=" + mAppType
                + ";appTag=" + mAppTag;
    }
@@ -206,7 +224,8 @@ public final class TunedInfo implements Parcelable {
        return TextUtils.equals(mInputId, other.getInputId())
                && Objects.equals(mChannelUri, other.mChannelUri)
                && mIsRecordingSession == other.mIsRecordingSession
                && mIsForeground == other.mIsForeground
                && mIsVisible == other.mIsVisible
                && mIsMainSession == other.mIsMainSession
                && mAppType == other.mAppType
                && mAppTag == other.mAppTag;
    }
@@ -214,6 +233,7 @@ public final class TunedInfo implements Parcelable {
    @Override
    public int hashCode() {
        return Objects.hash(
                mInputId, mChannelUri, mIsRecordingSession, mIsForeground, mAppType, mAppTag);
                mInputId, mChannelUri, mIsRecordingSession, mIsVisible, mIsMainSession, mAppType,
                mAppTag);
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -907,6 +907,7 @@ public final class TvInputManager {
         * @hide
         */
        @SystemApi
        @RequiresPermission(android.Manifest.permission.ACCESS_TUNED_INFO)
        public void onCurrentTunedInfosUpdated(@NonNull List<TunedInfo> tunedInfos) {
        }
    }
@@ -1989,7 +1990,7 @@ public final class TvInputManager {
     * @hide
     */
    @SystemApi
    @RequiresPermission("com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS")
    @RequiresPermission(android.Manifest.permission.ACCESS_TUNED_INFO)
    @NonNull
    public List<TunedInfo> getCurrentTunedInfos() {
        try {
Loading