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

Commit 7b9eaf2f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Tuner Java API: minor changes per API review feedback"

parents f1145b8e c090b6db
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -4826,7 +4826,7 @@ package android.media.tv.tuner {
    method public int getAudioFilterCount();
    method public int getDemuxCount();
    method public int getFilterCapabilities();
    method @Nullable @Size(5) public int[] getLinkCapabilities();
    method @NonNull @Size(5) public int[] getLinkCapabilities();
    method public int getPcrFilterCount();
    method public int getPesFilterCount();
    method public int getPlaybackCount();
@@ -4842,7 +4842,7 @@ package android.media.tv.tuner {
    method public int addPid(int, int, @Nullable android.media.tv.tuner.filter.Filter);
    method public void close();
    method public int removePid(int, int, @Nullable android.media.tv.tuner.filter.Filter);
    method public int setKeyToken(@Nullable byte[]);
    method public int setKeyToken(@NonNull byte[]);
    field public static final int PID_TYPE_MMTP = 2; // 0x2
    field public static final int PID_TYPE_T = 1; // 0x1
  }
@@ -4879,10 +4879,11 @@ package android.media.tv.tuner {
  }
  public class Tuner implements java.lang.AutoCloseable {
    ctor @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public Tuner(@NonNull android.content.Context, @NonNull String, int, @Nullable android.media.tv.tuner.Tuner.OnResourceLostListener);
    ctor @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public Tuner(@NonNull android.content.Context, @Nullable String, int);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int cancelScanning();
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int cancelTuning();
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void clearOnTuneEventListener();
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void clearResourceLostListener();
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void close();
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int connectCiCam(int);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int disconnectCiCam();
@@ -4892,15 +4893,16 @@ package android.media.tv.tuner {
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo();
    method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) public android.media.tv.tuner.Descrambler openDescrambler();
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrPlayback openDvrPlayback(long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.dvr.OnPlaybackStatusChangedListener);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrRecorder openDvrRecorder(long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.dvr.OnRecordStatusChangedListener);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrPlayback openDvrPlayback(long, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.dvr.OnPlaybackStatusChangedListener);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrRecorder openDvrRecorder(long, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.dvr.OnRecordStatusChangedListener);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.filter.Filter openFilter(int, int, long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.filter.FilterCallback);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Lnb openLnb(@Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.LnbCallback);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Lnb openLnbByName(@Nullable String, @Nullable java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Lnb openLnb(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Lnb openLnbByName(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
    method @Nullable public android.media.tv.tuner.filter.TimeFilter openTimeFilter();
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int scan(@NonNull android.media.tv.tuner.frontend.FrontendSettings, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.ScanCallback);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setLna(boolean);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setLnaEnabled(boolean);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void setOnTuneEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.OnTuneEventListener);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void setResourceLostListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.Tuner.OnResourceLostListener);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void shareFrontendFromTuner(@NonNull android.media.tv.tuner.Tuner);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int tune(@NonNull android.media.tv.tuner.frontend.FrontendSettings);
    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void updateResourcePriority(int, int);
+2 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ package android.media.tv.tuner;

import android.annotation.BytesLong;
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.annotation.NonNull;
import android.annotation.Size;
import android.annotation.SystemApi;
import android.media.tv.tuner.filter.Filter;
@@ -159,7 +159,7 @@ public class DemuxCapabilities {
     * {@link FilterConfiguration}.
     * <p>The ith element represents the filter's capability as the source for the ith type.
     */
    @Nullable
    @NonNull
    @Size(5)
    public int[] getLinkCapabilities() {
        return mLinkCaps;
+8 −1
Original line number Diff line number Diff line
@@ -17,12 +17,15 @@
package android.media.tv.tuner;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.media.tv.tuner.TunerConstants.Result;
import android.media.tv.tuner.filter.Filter;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;

/**
 * This class is used to interact with descramblers.
@@ -75,6 +78,7 @@ public class Descrambler implements AutoCloseable {
     * @param filter an optional filter instance to identify upper stream.
     * @return result status of the operation.
     */
    @Result
    public int addPid(@PidType int pidType, int pid, @Nullable Filter filter) {
        return nativeAddPid(pidType, pid, filter);
    }
@@ -89,6 +93,7 @@ public class Descrambler implements AutoCloseable {
     * @param filter an optional filter instance to identify upper stream.
     * @return result status of the operation.
     */
    @Result
    public int removePid(@PidType int pidType, int pid, @Nullable Filter filter) {
        return nativeRemovePid(pidType, pid, filter);
    }
@@ -102,7 +107,9 @@ public class Descrambler implements AutoCloseable {
     * @param keyToken the token to be used to link the key slot.
     * @return result status of the operation.
     */
    public int setKeyToken(@Nullable byte[] keyToken) {
    @Result
    public int setKeyToken(@NonNull byte[] keyToken) {
        Objects.requireNonNull(keyToken, "key token must not be null");
        return nativeSetKeyToken(keyToken);
    }

+54 −13
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.media.tv.tuner.frontend.Atsc3PlpInfo;
import android.media.tv.tuner.frontend.FrontendInfo;
import android.media.tv.tuner.frontend.FrontendSettings;
import android.media.tv.tuner.frontend.FrontendStatus;
import android.media.tv.tuner.frontend.FrontendStatus.FrontendStatusType;
import android.media.tv.tuner.frontend.OnTuneEventListener;
import android.media.tv.tuner.frontend.ScanCallback;
import android.os.Handler;
@@ -45,6 +46,7 @@ import android.os.Looper;
import android.os.Message;

import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executor;

/**
@@ -88,6 +90,10 @@ public class Tuner implements AutoCloseable {
    private ScanCallback mScanCallback;
    @Nullable
    private Executor mScanCallbackExecutor;
    @Nullable
    private OnResourceLostListener mOnResourceLostListener;
    @Nullable
    private Executor mOnResourceLostListenerExecutor;

    /**
     * Constructs a Tuner instance.
@@ -97,13 +103,36 @@ public class Tuner implements AutoCloseable {
     * @param useCase the use case of this Tuner instance.
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    public Tuner(@NonNull Context context, @NonNull String tvInputSessionId,
            @TvInputService.PriorityHintUseCaseType int useCase,
            @Nullable OnResourceLostListener listener) {
    public Tuner(@NonNull Context context, @Nullable String tvInputSessionId,
            @TvInputService.PriorityHintUseCaseType int useCase) {
        nativeSetup();
        mContext = context;
    }

    /**
     * Sets the listener for resource lost.
     *
     * @param executor the executor on which the listener should be invoked.
     * @param listener the listener that will be run.
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    public void setResourceLostListener(@NonNull @CallbackExecutor Executor executor,
            @NonNull OnResourceLostListener listener) {
        Objects.requireNonNull(executor, "OnResourceLostListener must not be null");
        Objects.requireNonNull(listener, "executor must not be null");
        mOnResourceLostListener = listener;
        mOnResourceLostListenerExecutor = executor;
    }

    /**
     * Removes the listener for resource lost.
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    public void clearResourceLostListener() {
        mOnResourceLostListener = null;
        mOnResourceLostListenerExecutor = null;
    }

    /**
     * Shares the frontend resource with another Tuner instance
     *
@@ -387,7 +416,7 @@ public class Tuner implements AutoCloseable {
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    @Result
    public int setLna(boolean enable) {
    public int setLnaEnabled(boolean enable) {
        TunerUtils.checkTunerPermission(mContext);
        return nativeSetLna(enable);
    }
@@ -398,10 +427,10 @@ public class Tuner implements AutoCloseable {
     * <p>This retrieve the statuses of the frontend for given status types.
     *
     * @param statusTypes an array of status types which the caller requests.
     * @return statuses which response the caller's requests.
     * @return statuses which response the caller's requests. {@code null} if the operation failed.
     */
    @Nullable
    public FrontendStatus getFrontendStatus(@NonNull int[] statusTypes) {
    public FrontendStatus getFrontendStatus(@NonNull @FrontendStatusType int[] statusTypes) {
        return nativeGetFrontendStatus(statusTypes);
    }

@@ -482,6 +511,10 @@ public class Tuner implements AutoCloseable {

    /**
     * Gets Demux capabilities.
     *
     * @param context the context of the caller.
     * @return A {@link DemuxCapabilities} instance that represents the demux capabilities.
     *         {@code null} if the operation failed.
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    @Nullable
@@ -637,13 +670,15 @@ public class Tuner implements AutoCloseable {
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    @Nullable
    public Lnb openLnb(@CallbackExecutor @Nullable Executor executor, @Nullable LnbCallback cb) {
    public Lnb openLnb(@CallbackExecutor @NonNull Executor executor, @NonNull LnbCallback cb) {
        Objects.requireNonNull(executor, "executor must not be null");
        Objects.requireNonNull(cb, "LnbCallback must not be null");
        TunerUtils.checkTunerPermission(mContext);
        return openLnbByName(null, executor, cb);
    }

    /**
     * Opens an LNB (low-noise block downconverter) object.
     * Opens an LNB (low-noise block downconverter) object specified by the give name.
     *
     * @param name the LNB name.
     * @param executor the executor on which callback will be invoked. The default event handler
@@ -653,8 +688,10 @@ public class Tuner implements AutoCloseable {
     */
    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
    @Nullable
    public Lnb openLnbByName(@Nullable String name, @CallbackExecutor @Nullable Executor executor,
    public Lnb openLnbByName(@NonNull String name, @CallbackExecutor @NonNull Executor executor,
            @NonNull LnbCallback cb) {
        Objects.requireNonNull(executor, "executor must not be null");
        Objects.requireNonNull(cb, "LnbCallback must not be null");
        TunerUtils.checkTunerPermission(mContext);
        // TODO: use resource manager to get LNB ID.
        return new Lnb(0);
@@ -718,8 +755,10 @@ public class Tuner implements AutoCloseable {
    @Nullable
    public DvrRecorder openDvrRecorder(
            @BytesLong long bufferSize,
            @CallbackExecutor @Nullable Executor executor,
            @Nullable OnRecordStatusChangedListener l) {
            @CallbackExecutor @NonNull Executor executor,
            @NonNull OnRecordStatusChangedListener l) {
        Objects.requireNonNull(executor, "executor must not be null");
        Objects.requireNonNull(l, "OnRecordStatusChangedListener must not be null");
        TunerUtils.checkTunerPermission(mContext);
        DvrRecorder dvr = nativeOpenDvrRecorder(bufferSize);
        return dvr;
@@ -739,8 +778,10 @@ public class Tuner implements AutoCloseable {
    @Nullable
    public DvrPlayback openDvrPlayback(
            @BytesLong long bufferSize,
            @CallbackExecutor @Nullable Executor executor,
            @Nullable OnPlaybackStatusChangedListener l) {
            @CallbackExecutor @NonNull Executor executor,
            @NonNull OnPlaybackStatusChangedListener l) {
        Objects.requireNonNull(executor, "executor must not be null");
        Objects.requireNonNull(l, "OnPlaybackStatusChangedListener must not be null");
        TunerUtils.checkTunerPermission(mContext);
        DvrPlayback dvr = nativeOpenDvrPlayback(bufferSize);
        return dvr;
+1 −1
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ public interface ScanCallback {
    void onInputStreamIds(@NonNull int[] inputStreamIds);

    /** Locked signal standard for DVBS. */
    void onDvbsStandard(@DvbsFrontendSettings.Standard int dvbsStandandard);
    void onDvbsStandard(@DvbsFrontendSettings.Standard int dvbsStandard);

    /** Locked signal standard. for DVBT */
    void onDvbtStandard(@DvbtFrontendSettings.Standard int dvbtStandard);
Loading