Merge "Tuner API: remove builder of filter/Settings.java" into rvc-dev
diff --git a/api/system-current.txt b/api/system-current.txt
index c55a09b..54794e5 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -5003,7 +5003,7 @@
     method public boolean isPassthrough();
   }
 
-  public static class AvSettings.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.AvSettings.Builder> {
+  public static class AvSettings.Builder {
     method @NonNull public android.media.tv.tuner.filter.AvSettings build();
     method @NonNull public android.media.tv.tuner.filter.AvSettings.Builder setPassthrough(boolean);
   }
@@ -5021,7 +5021,7 @@
     method public int getDownloadId();
   }
 
-  public static class DownloadSettings.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.DownloadSettings.Builder> {
+  public static class DownloadSettings.Builder {
     method @NonNull public android.media.tv.tuner.filter.DownloadSettings build();
     method @NonNull public android.media.tv.tuner.filter.DownloadSettings.Builder setDownloadId(int);
   }
@@ -5187,7 +5187,7 @@
     field public static final int TS_INDEX_SPLICING_POINT_FLAG = 1024; // 0x400
   }
 
-  public static class RecordSettings.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.RecordSettings.Builder> {
+  public static class RecordSettings.Builder {
     method @NonNull public android.media.tv.tuner.filter.RecordSettings build();
     method @NonNull public android.media.tv.tuner.filter.RecordSettings.Builder setScIndexMask(int);
     method @NonNull public android.media.tv.tuner.filter.RecordSettings.Builder setScIndexType(int);
@@ -5207,7 +5207,7 @@
     method public boolean isRepeat();
   }
 
-  public abstract static class SectionSettings.Builder<T extends android.media.tv.tuner.filter.SectionSettings.Builder<T>> extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.SectionSettings.Builder<T>> {
+  public abstract static class SectionSettings.Builder<T extends android.media.tv.tuner.filter.SectionSettings.Builder<T>> {
     method @NonNull public T setCrcEnabled(boolean);
     method @NonNull public T setRaw(boolean);
     method @NonNull public T setRepeat(boolean);
@@ -5243,9 +5243,6 @@
     method public int getType();
   }
 
-  public abstract static class Settings.Builder<T extends android.media.tv.tuner.filter.Settings.Builder<T>> {
-  }
-
   public class TemiEvent extends android.media.tv.tuner.filter.FilterEvent {
     method @NonNull public byte[] getDescriptorData();
     method public byte getDescriptorTag();
@@ -5700,7 +5697,7 @@
     method public int getAcquireRange();
     method public int getExclusiveGroupId();
     method @NonNull public android.util.Range<java.lang.Integer> getFrequencyRange();
-    method @NonNull public android.media.tv.tuner.frontend.FrontendCapabilities getFrontendCapability();
+    method @NonNull public android.media.tv.tuner.frontend.FrontendCapabilities getFrontendCapabilities();
     method public int getId();
     method @NonNull public int[] getStatusCapabilities();
     method @NonNull public android.util.Range<java.lang.Integer> getSymbolRateRange();
diff --git a/media/java/android/media/tv/tuner/filter/AvSettings.java b/media/java/android/media/tv/tuner/filter/AvSettings.java
index bf11893..6c95668 100644
--- a/media/java/android/media/tv/tuner/filter/AvSettings.java
+++ b/media/java/android/media/tv/tuner/filter/AvSettings.java
@@ -65,12 +65,13 @@
     /**
      * Builder for {@link AvSettings}.
      */
-    public static class Builder extends Settings.Builder<Builder> {
+    public static class Builder {
+        private final int mMainType;
         private final boolean mIsAudio;
         private boolean mIsPassthrough;
 
         private Builder(int mainType, boolean isAudio) {
-            super(mainType);
+            mMainType = mainType;
             mIsAudio = isAudio;
         }
 
@@ -90,10 +91,5 @@
         public AvSettings build() {
             return new AvSettings(mMainType, mIsAudio, mIsPassthrough);
         }
-
-        @Override
-        Builder self() {
-            return this;
-        }
     }
 }
diff --git a/media/java/android/media/tv/tuner/filter/DownloadSettings.java b/media/java/android/media/tv/tuner/filter/DownloadSettings.java
index 915ad79..37884e5 100644
--- a/media/java/android/media/tv/tuner/filter/DownloadSettings.java
+++ b/media/java/android/media/tv/tuner/filter/DownloadSettings.java
@@ -59,11 +59,12 @@
     /**
      * Builder for {@link DownloadSettings}.
      */
-    public static class Builder extends Settings.Builder<Builder> {
+    public static class Builder {
+        private final int mMainType;
         private int mDownloadId;
 
         private Builder(int mainType) {
-            super(mainType);
+            mMainType = mainType;
         }
 
         /**
@@ -82,10 +83,5 @@
         public DownloadSettings build() {
             return new DownloadSettings(mMainType, mDownloadId);
         }
-
-        @Override
-        Builder self() {
-            return this;
-        }
     }
 }
diff --git a/media/java/android/media/tv/tuner/filter/RecordSettings.java b/media/java/android/media/tv/tuner/filter/RecordSettings.java
index 0c812ab..409978b 100644
--- a/media/java/android/media/tv/tuner/filter/RecordSettings.java
+++ b/media/java/android/media/tv/tuner/filter/RecordSettings.java
@@ -283,13 +283,14 @@
     /**
      * Builder for {@link RecordSettings}.
      */
-    public static class Builder extends Settings.Builder<Builder> {
+    public static class Builder {
+        private final int mMainType;
         private int mTsIndexMask;
         private int mScIndexType;
         private int mScIndexMask;
 
         private Builder(int mainType) {
-            super(mainType);
+            mMainType = mainType;
         }
 
         /**
@@ -324,11 +325,6 @@
         public RecordSettings build() {
             return new RecordSettings(mMainType, mTsIndexMask, mScIndexType, mScIndexMask);
         }
-
-        @Override
-        Builder self() {
-            return this;
-        }
     }
 
 }
diff --git a/media/java/android/media/tv/tuner/filter/SectionSettings.java b/media/java/android/media/tv/tuner/filter/SectionSettings.java
index 9470138..58e22c9 100644
--- a/media/java/android/media/tv/tuner/filter/SectionSettings.java
+++ b/media/java/android/media/tv/tuner/filter/SectionSettings.java
@@ -64,14 +64,14 @@
      *
      * @param <T> The subclass to be built.
      */
-    public abstract static class Builder<T extends Builder<T>>
-            extends Settings.Builder<Builder<T>> {
+    public abstract static class Builder<T extends Builder<T>> {
+        final int mMainType;
         boolean mCrcEnabled;
         boolean mIsRepeat;
         boolean mIsRaw;
 
         Builder(int mainType) {
-            super(mainType);
+            mMainType = mainType;
         }
 
         /**
diff --git a/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java b/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java
index cb547ec..976ad49 100644
--- a/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java
+++ b/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java
@@ -88,9 +88,9 @@
      * Builder for {@link SectionSettingsWithSectionBits}.
      */
     public static class Builder extends SectionSettings.Builder<Builder> {
-        private byte[] mFilter;
-        private byte[] mMask;
-        private byte[] mMode;
+        private byte[] mFilter = {};
+        private byte[] mMask = {};
+        private byte[] mMode = {};
 
         private Builder(int mainType) {
             super(mainType);
@@ -98,6 +98,8 @@
 
         /**
          * Sets filter bytes.
+         *
+         * <p>Default value is an empty byte array.
          */
         @NonNull
         public Builder setFilter(@NonNull byte[] filter) {
@@ -106,6 +108,8 @@
         }
         /**
          * Sets bit mask.
+         *
+         * <p>Default value is an empty byte array.
          */
         @NonNull
         public Builder setMask(@NonNull byte[] mask) {
@@ -114,6 +118,8 @@
         }
         /**
          * Sets mode.
+         *
+         * <p>Default value is an empty byte array.
          */
         @NonNull
         public Builder setMode(@NonNull byte[] mode) {
diff --git a/media/java/android/media/tv/tuner/filter/Settings.java b/media/java/android/media/tv/tuner/filter/Settings.java
index fee7f66..f89bc06 100644
--- a/media/java/android/media/tv/tuner/filter/Settings.java
+++ b/media/java/android/media/tv/tuner/filter/Settings.java
@@ -37,19 +37,4 @@
     public int getType() {
         return mType;
     }
-
-
-    /**
-     * Builder for {@link Settings}.
-     *
-     * @param <T> The subclass to be built.
-     */
-    public abstract static class Builder<T extends Builder<T>> {
-        /* package */ final int mMainType;
-
-        /* package */ Builder(int mainType) {
-            mMainType = mainType;
-        }
-        /* package */ abstract T self();
-    }
 }
diff --git a/media/java/android/media/tv/tuner/frontend/FrontendInfo.java b/media/java/android/media/tv/tuner/frontend/FrontendInfo.java
index 696d839..334900b 100644
--- a/media/java/android/media/tv/tuner/frontend/FrontendInfo.java
+++ b/media/java/android/media/tv/tuner/frontend/FrontendInfo.java
@@ -112,7 +112,7 @@
      * Gets frontend capabilities.
      */
     @NonNull
-    public FrontendCapabilities getFrontendCapability() {
+    public FrontendCapabilities getFrontendCapabilities() {
         return mFrontendCap;
     }
 }