Extend generated factories.

So other packages don't need to know the name of the generated factory.

PiperOrigin-RevId: 231871231
Change-Id: I19c100a957b25fcc0bb044fb495c0e9fd4da08df
diff --git a/tests/common/src/com/android/tv/testing/TestSingletonApp.java b/tests/common/src/com/android/tv/testing/TestSingletonApp.java
index 86a2a2d..74fc192 100644
--- a/tests/common/src/com/android/tv/testing/TestSingletonApp.java
+++ b/tests/common/src/com/android/tv/testing/TestSingletonApp.java
@@ -49,7 +49,7 @@
 import com.android.tv.testing.dvr.DvrDataManagerInMemoryImpl;
 import com.android.tv.testing.testdata.TestData;
 import com.android.tv.tuner.singletons.TunerSingletons;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
+import com.android.tv.tuner.source.TsDataSourceManager;
 import com.android.tv.tuner.source.TunerTsStreamerManager;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactory;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactoryImpl;
@@ -80,8 +80,8 @@
     private final DefaultUiFlags mUiFlags = new DefaultUiFlags();
     private final DefaultConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags =
             new DefaultConcurrentDvrPlaybackFlags();
-    private final TsDataSourceManagerFactory mTsDataSourceManagerFactory =
-            new TsDataSourceManagerFactory(() -> new TunerTsStreamerManager(null));
+    private final TsDataSourceManager.Factory mTsDataSourceManagerFactory =
+            new TsDataSourceManager.Factory(() -> new TunerTsStreamerManager(null));
     private final TunerSessionFactoryImpl mTunerSessionFactory =
             new TunerSessionFactoryImpl(
                     new DefaultExoplayer2Flags(),
diff --git a/tuner/SampleDvbTuner/src/com/android/tv/tuner/sample/dvb/app/SampleDvbTuner.java b/tuner/SampleDvbTuner/src/com/android/tv/tuner/sample/dvb/app/SampleDvbTuner.java
index 5a46a96..568e3c9 100644
--- a/tuner/SampleDvbTuner/src/com/android/tv/tuner/sample/dvb/app/SampleDvbTuner.java
+++ b/tuner/SampleDvbTuner/src/com/android/tv/tuner/sample/dvb/app/SampleDvbTuner.java
@@ -19,17 +19,15 @@
 import android.content.ComponentName;
 import android.media.tv.TvContract;
 import com.android.tv.common.BaseApplication;
-import com.android.tv.common.flags.impl.DefaultCloudEpgFlags;
-import com.android.tv.common.flags.impl.DefaultConcurrentDvrPlaybackFlags;
-import com.android.tv.common.flags.impl.DefaultExoplayer2Flags;
 import com.android.tv.common.singletons.HasSingletons;
 import com.android.tv.tuner.modules.TunerSingletonsModule;
 import com.android.tv.tuner.sample.dvb.singletons.SampleDvbSingletons;
 import com.android.tv.tuner.sample.dvb.tvinput.SampleDvbTunerTvInputService;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactory;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactoryImpl;
-import com.android.tv.tuner.tvinput.factory.TunerSessionFactoryImplFactory;
 import dagger.android.AndroidInjector;
+import com.android.tv.common.flags.CloudEpgFlags;
+import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
 import javax.inject.Inject;
 
 /** The top level application for Sample DVB Tuner. */
@@ -37,19 +35,13 @@
         implements SampleDvbSingletons, HasSingletons<SampleDvbSingletons> {
 
     private String mEmbeddedInputId;
-    private final DefaultCloudEpgFlags mCloudEpgFlags = new DefaultCloudEpgFlags();
-    private final DefaultConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags =
-            new DefaultConcurrentDvrPlaybackFlags();
-    private final DefaultExoplayer2Flags mExoplayer2Flags = new DefaultExoplayer2Flags();
-    @Inject TunerSessionFactoryImplFactory mTunerSessionFactoryImplFactory;
-    private TunerSessionFactoryImpl mTunerSessionFactory;
+    @Inject CloudEpgFlags mCloudEpgFlags;
+    @Inject ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
+    @Inject TunerSessionFactoryImpl mTunerSessionFactory;
 
     @Override
     public void onCreate() {
         super.onCreate();
-        mTunerSessionFactory =
-                mTunerSessionFactoryImplFactory.create(
-                        mExoplayer2Flags, mConcurrentDvrPlaybackFlags);
     }
 
     @Override
@@ -71,7 +63,7 @@
     }
 
     @Override
-    public DefaultCloudEpgFlags getCloudEpgFlags() {
+    public CloudEpgFlags getCloudEpgFlags() {
         return mCloudEpgFlags;
     }
 
@@ -81,7 +73,7 @@
     }
 
     @Override
-    public DefaultConcurrentDvrPlaybackFlags getConcurrentDvrPlaybackFlags() {
+    public ConcurrentDvrPlaybackFlags getConcurrentDvrPlaybackFlags() {
         return mConcurrentDvrPlaybackFlags;
     }
 
diff --git a/tuner/SampleNetworkTuner/src/com/android/tv/tuner/sample/network/app/SampleNetworkTuner.java b/tuner/SampleNetworkTuner/src/com/android/tv/tuner/sample/network/app/SampleNetworkTuner.java
index cdf5865..eb5b2ad 100644
--- a/tuner/SampleNetworkTuner/src/com/android/tv/tuner/sample/network/app/SampleNetworkTuner.java
+++ b/tuner/SampleNetworkTuner/src/com/android/tv/tuner/sample/network/app/SampleNetworkTuner.java
@@ -19,17 +19,15 @@
 import android.content.ComponentName;
 import android.media.tv.TvContract;
 import com.android.tv.common.BaseApplication;
-import com.android.tv.common.flags.impl.DefaultCloudEpgFlags;
-import com.android.tv.common.flags.impl.DefaultConcurrentDvrPlaybackFlags;
-import com.android.tv.common.flags.impl.DefaultExoplayer2Flags;
 import com.android.tv.common.singletons.HasSingletons;
 import com.android.tv.tuner.modules.TunerSingletonsModule;
 import com.android.tv.tuner.sample.network.singletons.SampleNetworkSingletons;
 import com.android.tv.tuner.sample.network.tvinput.SampleNetworkTunerTvInputService;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactory;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactoryImpl;
-import com.android.tv.tuner.tvinput.factory.TunerSessionFactoryImplFactory;
 import dagger.android.AndroidInjector;
+import com.android.tv.common.flags.CloudEpgFlags;
+import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
 import javax.inject.Inject;
 
 /** The top level application for Sample DVB Tuner. */
@@ -37,19 +35,13 @@
         implements SampleNetworkSingletons, HasSingletons<SampleNetworkSingletons> {
 
     private String mEmbeddedInputId;
-    private final DefaultCloudEpgFlags mCloudEpgFlags = new DefaultCloudEpgFlags();
-    private final DefaultConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags =
-            new DefaultConcurrentDvrPlaybackFlags();
-    private final DefaultExoplayer2Flags mExoplayer2Flags = new DefaultExoplayer2Flags();
-    @Inject TunerSessionFactoryImplFactory mTunerSessionFactoryImplFactory;
-    private TunerSessionFactoryImpl mTunerSessionFactory;
+    @Inject CloudEpgFlags mCloudEpgFlags;
+    @Inject ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
+    @Inject TunerSessionFactoryImpl mTunerSessionFactory;
 
     @Override
     public void onCreate() {
         super.onCreate();
-        mTunerSessionFactory =
-                mTunerSessionFactoryImplFactory.create(
-                        mExoplayer2Flags, mConcurrentDvrPlaybackFlags);
     }
 
     @Override
@@ -71,7 +63,7 @@
     }
 
     @Override
-    public DefaultCloudEpgFlags getCloudEpgFlags() {
+    public CloudEpgFlags getCloudEpgFlags() {
         return mCloudEpgFlags;
     }
 
@@ -81,7 +73,7 @@
     }
 
     @Override
-    public DefaultConcurrentDvrPlaybackFlags getConcurrentDvrPlaybackFlags() {
+    public ConcurrentDvrPlaybackFlags getConcurrentDvrPlaybackFlags() {
         return mConcurrentDvrPlaybackFlags;
     }
 
diff --git a/tuner/src/com/android/tv/tuner/source/TsDataSourceManager.java b/tuner/src/com/android/tv/tuner/source/TsDataSourceManager.java
index 2167930..28756a9 100644
--- a/tuner/src/com/android/tv/tuner/source/TsDataSourceManager.java
+++ b/tuner/src/com/android/tv/tuner/source/TsDataSourceManager.java
@@ -27,6 +27,8 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
+import javax.inject.Inject;
+import javax.inject.Provider;
 
 /**
  * Manages {@link TsDataSource} for playback and recording. The class hides handling of {@link
@@ -45,6 +47,25 @@
 
     private boolean mKeepTuneStatus;
 
+    /**
+     * Factory for {@link }TsDataSourceManager}.
+     *
+     * <p>This wrapper class keeps other classes from needing to reference the {@link AutoFactory}
+     * generated class.
+     */
+    public static final class Factory {
+        private final TsDataSourceManagerFactory mDelegate;
+
+        @Inject
+        public Factory(Provider<TunerTsStreamerManager> tunerStreamerManagerProvider) {
+            mDelegate = new TsDataSourceManagerFactory(tunerStreamerManagerProvider);
+        }
+
+        public TsDataSourceManager create(boolean isRecording) {
+            return mDelegate.create(isRecording);
+        }
+    }
+
     TsDataSourceManager(
             boolean isRecording, @Provided TunerTsStreamerManager tunerStreamerManager) {
         mIsRecording = isRecording;
diff --git a/tuner/src/com/android/tv/tuner/tvinput/BaseTunerTvInputService.java b/tuner/src/com/android/tv/tuner/tvinput/BaseTunerTvInputService.java
index fb8eeb7..d22b639 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/BaseTunerTvInputService.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/BaseTunerTvInputService.java
@@ -23,8 +23,7 @@
 import android.media.tv.TvInputService;
 import android.util.Log;
 import com.android.tv.common.feature.CommonFeatures;
-import com.android.tv.common.flags.has.HasConcurrentDvrPlaybackFlags;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
+import com.android.tv.tuner.source.TsDataSourceManager;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactory;
 import dagger.android.AndroidInjection;
@@ -44,8 +43,8 @@
 
     private final Set<Session> mTunerSessions = Collections.newSetFromMap(new WeakHashMap<>());
     private ChannelDataManager mChannelDataManager;
-    private ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
-    @Inject TsDataSourceManagerFactory mTsDataSourceManagerFactory;
+    @Inject ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
+    @Inject TsDataSourceManager.Factory mTsDataSourceManagerFactory;
     @Inject TunerSessionFactory mTunerSessionFactory;
 
     @Override
@@ -59,8 +58,6 @@
         super.onCreate();
         if (DEBUG) Log.d(TAG, "onCreate");
         mChannelDataManager = new ChannelDataManager(getApplicationContext());
-        mConcurrentDvrPlaybackFlags =
-                HasConcurrentDvrPlaybackFlags.fromContext(getApplicationContext());
         if (CommonFeatures.DVR.isEnabled(this)) {
             JobScheduler jobScheduler =
                     (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
diff --git a/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java b/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java
index 92e896a..5561693 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSession.java
@@ -23,7 +23,7 @@
 import android.support.annotation.WorkerThread;
 import android.util.Log;
 import com.android.tv.common.compat.RecordingSessionCompat;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
+import com.android.tv.tuner.source.TsDataSourceManager;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
 
@@ -39,7 +39,7 @@
             String inputId,
             ChannelDataManager channelDataManager,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         super(context);
         mSessionWorker =
                 new TunerRecordingSessionWorker(
diff --git a/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorker.java b/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorker.java
index 91029a9..2c0c09a 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorker.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/TunerRecordingSessionWorker.java
@@ -55,7 +55,6 @@
 import com.android.tv.tuner.exoplayer.buffer.PlaybackBufferListener;
 import com.android.tv.tuner.source.TsDataSource;
 import com.android.tv.tuner.source.TsDataSourceManager;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
 import com.android.tv.tuner.ts.EventDetector.EventListener;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.google.android.exoplayer.C;
@@ -176,7 +175,7 @@
             ChannelDataManager dataManager,
             TunerRecordingSession session,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         mConcurrentDvrPlaybackFlags = concurrentDvrPlaybackFlags;
         mRandom.setSeed(System.nanoTime());
         mContext = context;
diff --git a/tuner/src/com/android/tv/tuner/tvinput/TunerSession.java b/tuner/src/com/android/tv/tuner/tvinput/TunerSession.java
index c456683..fedb5f6 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/TunerSession.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/TunerSession.java
@@ -30,7 +30,7 @@
 import com.android.tv.common.CommonPreferences.CommonPreferencesChangedListener;
 import com.android.tv.common.compat.TisSessionCompat;
 import com.android.tv.tuner.prefs.TunerPreferences;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
+import com.android.tv.tuner.source.TsDataSourceManager;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactory.SessionReleasedCallback;
 import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
@@ -55,7 +55,7 @@
             ChannelDataManager channelDataManager,
             SessionReleasedCallback releasedCallback,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         super(context);
         mReleasedCallback = releasedCallback;
         mTunerSessionOverlay = new TunerSessionOverlay(context);
diff --git a/tuner/src/com/android/tv/tuner/tvinput/TunerSessionExoV2.java b/tuner/src/com/android/tv/tuner/tvinput/TunerSessionExoV2.java
index 392e03a..4eca44d 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/TunerSessionExoV2.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/TunerSessionExoV2.java
@@ -30,7 +30,7 @@
 import com.android.tv.common.CommonPreferences.CommonPreferencesChangedListener;
 import com.android.tv.common.compat.TisSessionCompat;
 import com.android.tv.tuner.prefs.TunerPreferences;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
+import com.android.tv.tuner.source.TsDataSourceManager;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.android.tv.tuner.tvinput.factory.TunerSessionFactory.SessionReleasedCallback;
 import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
@@ -53,7 +53,7 @@
             ChannelDataManager channelDataManager,
             SessionReleasedCallback releasedCallback,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         super(context);
         mReleasedCallback = releasedCallback;
         mTunerSessionOverlay = new TunerSessionOverlay(context);
diff --git a/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorker.java b/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorker.java
index 976afb1..d3f9409 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorker.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorker.java
@@ -70,7 +70,6 @@
 import com.android.tv.tuner.prefs.TunerPreferences;
 import com.android.tv.tuner.source.TsDataSource;
 import com.android.tv.tuner.source.TsDataSourceManager;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
 import com.android.tv.tuner.ts.EventDetector.EventListener;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.android.tv.tuner.tvinput.debug.TunerDebug;
@@ -243,7 +242,7 @@
             TunerSession tunerSession,
             TunerSessionOverlay tunerSessionOverlay,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         this(
                 context,
                 channelDataManager,
@@ -262,7 +261,7 @@
             TunerSessionOverlay tunerSessionOverlay,
             @Nullable Handler handler,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         this.mConcurrentDvrPlaybackFlags = concurrentDvrPlaybackFlags;
         if (DEBUG) Log.d(TAG, "TunerSessionWorker created");
         mContext = context;
diff --git a/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorkerExoV2.java b/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorkerExoV2.java
index 17d9c41..82afff1 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorkerExoV2.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/TunerSessionWorkerExoV2.java
@@ -70,7 +70,6 @@
 import com.android.tv.tuner.prefs.TunerPreferences;
 import com.android.tv.tuner.source.TsDataSource;
 import com.android.tv.tuner.source.TsDataSourceManager;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
 import com.android.tv.tuner.ts.EventDetector.EventListener;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
 import com.android.tv.tuner.tvinput.debug.TunerDebug;
@@ -242,7 +241,7 @@
             TunerSessionExoV2 tunerSession,
             TunerSessionOverlay tunerSessionOverlay,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         this(
                 context,
                 channelDataManager,
@@ -261,7 +260,7 @@
             TunerSessionOverlay tunerSessionOverlay,
             @Nullable Handler handler,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         mConcurrentDvrPlaybackFlags = concurrentDvrPlaybackFlags;
         if (DEBUG) {
             Log.d(TAG, "TunerSessionWorkerExoV2 created");
diff --git a/tuner/src/com/android/tv/tuner/tvinput/factory/TunerSessionFactoryImpl.java b/tuner/src/com/android/tv/tuner/tvinput/factory/TunerSessionFactoryImpl.java
index 3da3030..6617995 100644
--- a/tuner/src/com/android/tv/tuner/tvinput/factory/TunerSessionFactoryImpl.java
+++ b/tuner/src/com/android/tv/tuner/tvinput/factory/TunerSessionFactoryImpl.java
@@ -2,26 +2,26 @@
 
 import android.content.Context;
 import android.media.tv.TvInputService.Session;
-import com.android.tv.tuner.source.TsDataSourceManagerFactory;
+import com.android.tv.tuner.source.TsDataSourceManager;
 import com.android.tv.tuner.tvinput.TunerSession;
 import com.android.tv.tuner.tvinput.TunerSessionExoV2;
 import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
-import com.google.auto.factory.AutoFactory;
-import com.google.auto.factory.Provided;
 import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
 import com.android.tv.common.flags.Exoplayer2Flags;
+import javax.inject.Inject;
 
 /** Creates a {@link TunerSessionFactory}. */
-@AutoFactory
 public class TunerSessionFactoryImpl implements TunerSessionFactory {
+
     private final Exoplayer2Flags mExoplayer2Flags;
     private final ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
-    private final TsDataSourceManagerFactory mTsDataSourceManagerFactory;
+    private final TsDataSourceManager.Factory mTsDataSourceManagerFactory;
 
+    @Inject
     public TunerSessionFactoryImpl(
             Exoplayer2Flags exoplayer2Flags,
             ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
-            @Provided TsDataSourceManagerFactory tsDataSourceManagerFactory) {
+            TsDataSourceManager.Factory tsDataSourceManagerFactory) {
         mExoplayer2Flags = exoplayer2Flags;
         mConcurrentDvrPlaybackFlags = concurrentDvrPlaybackFlags;
         mTsDataSourceManagerFactory = tsDataSourceManagerFactory;