diff options
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/tv/MainActivity.java | 10 | ||||
-rw-r--r-- | src/com/android/tv/SetupPassthroughActivity.java | 25 | ||||
-rw-r--r-- | src/com/android/tv/TvApplication.java | 15 | ||||
-rw-r--r-- | src/com/android/tv/TvSingletons.java | 7 | ||||
-rw-r--r-- | src/com/android/tv/data/epg/EpgFetchService.java | 5 | ||||
-rw-r--r-- | src/com/android/tv/data/epg/EpgFetcherImpl.java | 37 | ||||
-rw-r--r-- | src/com/android/tv/modules/TvApplicationModule.java | 7 |
7 files changed, 53 insertions, 53 deletions
diff --git a/src/com/android/tv/MainActivity.java b/src/com/android/tv/MainActivity.java index a018c930..c2257096 100644 --- a/src/com/android/tv/MainActivity.java +++ b/src/com/android/tv/MainActivity.java @@ -66,6 +66,7 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.widget.FrameLayout; import android.widget.Toast; + import com.android.tv.MainActivity.MySingletons; import com.android.tv.analytics.SendChannelStatusRunnable; import com.android.tv.analytics.SendConfigInfoRunnable; @@ -97,6 +98,7 @@ import com.android.tv.data.ProgramDataManager; import com.android.tv.data.StreamInfo; import com.android.tv.data.WatchedHistoryManager; import com.android.tv.data.api.Channel; +import com.android.tv.data.epg.EpgFetcher; import com.android.tv.dialog.HalfSizedDialogFragment; import com.android.tv.dialog.PinDialogFragment; import com.android.tv.dialog.PinDialogFragment.OnPinCheckedListener; @@ -150,12 +152,16 @@ import com.android.tv.util.Utils; import com.android.tv.util.ViewCache; import com.android.tv.util.account.AccountHelper; import com.android.tv.util.images.ImageCache; + import com.google.common.base.Optional; + import dagger.android.AndroidInjection; import dagger.android.ContributesAndroidInjector; + import com.android.tv.common.flags.BackendKnobsFlags; import com.android.tv.common.flags.LegacyFlags; import com.android.tv.common.flags.StartupFlags; + import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayDeque; @@ -166,6 +172,7 @@ import java.util.Objects; import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; + import javax.inject.Inject; import javax.inject.Provider; @@ -286,6 +293,7 @@ public class MainActivity extends Activity @Inject SetupUtils mSetupUtils; @Inject Optional<BuiltInTunerManager> mOptionalBuiltInTunerManager; @Inject AccountHelper mAccountHelper; + @Inject EpgFetcher mEpgFetcher; @VisibleForTesting protected TunableTvView mTvView; private View mContentView; @@ -833,7 +841,7 @@ public class MainActivity extends Activity .getTunerInputController() .executeNetworkTunerDiscoveryAsyncTask(this); } - TvSingletons.getSingletons(this).getEpgFetcher().fetchImmediatelyIfNeeded(); + mEpgFetcher.fetchImmediatelyIfNeeded(); } @Override diff --git a/src/com/android/tv/SetupPassthroughActivity.java b/src/com/android/tv/SetupPassthroughActivity.java index 806bb142..25049f1d 100644 --- a/src/com/android/tv/SetupPassthroughActivity.java +++ b/src/com/android/tv/SetupPassthroughActivity.java @@ -19,7 +19,6 @@ package com.android.tv; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ComponentName; -import android.content.Context; import android.content.Intent; import android.media.tv.TvInputInfo; import android.os.Bundle; @@ -27,6 +26,7 @@ import android.os.Handler; import android.os.Looper; import android.support.annotation.MainThread; import android.util.Log; + import com.android.tv.common.CommonConstants; import com.android.tv.common.SoftPreconditions; import com.android.tv.common.actions.InputSetupActionUtils; @@ -38,10 +38,14 @@ import com.android.tv.features.TvFeatures; import com.android.tv.util.SetupUtils; import com.android.tv.util.TvInputManagerHelper; import com.android.tv.util.Utils; + import com.google.android.tv.partner.support.EpgContract; + import dagger.android.AndroidInjection; import dagger.android.ContributesAndroidInjector; + import java.util.concurrent.TimeUnit; + import javax.inject.Inject; /** @@ -64,6 +68,7 @@ public class SetupPassthroughActivity extends Activity { @Inject TvInputManagerHelper mInputManager; @Inject SetupUtils mSetupUtils; @Inject ChannelDataManager mChannelDataManager; + @Inject EpgFetcher mEpgFetcher; @Override public void onCreate(Bundle savedInstanceState) { @@ -131,10 +136,10 @@ public class SetupPassthroughActivity extends Activity { } if (needToFetchEpg) { if (sScanTimeoutMonitor == null) { - sScanTimeoutMonitor = new ScanTimeoutMonitor(this, mChannelDataManager); + sScanTimeoutMonitor = new ScanTimeoutMonitor(mEpgFetcher, mChannelDataManager); } sScanTimeoutMonitor.startMonitoring(); - TvSingletons.getSingletons(this).getEpgFetcher().onChannelScanStarted(); + mEpgFetcher.onChannelScanStarted(); } } } @@ -150,9 +155,9 @@ public class SetupPassthroughActivity extends Activity { boolean setupComplete = requestCode == REQUEST_START_SETUP_ACTIVITY && resultCode == Activity.RESULT_OK; // Tells EpgFetcher that channel source setup is finished. - EpgFetcher epgFetcher = TvSingletons.getSingletons(this).getEpgFetcher(); + if (mEpgFetcherDuringScan) { - epgFetcher.onChannelScanFinished(); + mEpgFetcher.onChannelScanFinished(); } if (!setupComplete) { setResult(resultCode, data); @@ -165,7 +170,7 @@ public class SetupPassthroughActivity extends Activity { if (DEBUG) Log.d(TAG, "extra " + data.getExtras()); String inputId = data.getStringExtra(TvInputInfo.EXTRA_INPUT_ID); if (mEpgInputWhiteList.isInputWhiteListed(inputId)) { - epgFetcher.fetchImmediately(); + mEpgFetcher.fetchImmediately(); } } @@ -204,7 +209,7 @@ public class SetupPassthroughActivity extends Activity { // Set timeout long enough. The message in Sony TV says the scanning takes about 30 minutes. private static final long SCAN_TIMEOUT_MS = TimeUnit.MINUTES.toMillis(30); - private final Context mContext; + private final EpgFetcher mEpgFetcher; private final ChannelDataManager mChannelDataManager; private final Handler mHandler = new Handler(Looper.getMainLooper()); private final Runnable mScanTimeoutRunnable = @@ -232,8 +237,8 @@ public class SetupPassthroughActivity extends Activity { }; private boolean mStarted; - private ScanTimeoutMonitor(Context context, ChannelDataManager mChannelDataManager) { - mContext = context.getApplicationContext(); + private ScanTimeoutMonitor(EpgFetcher epgFetcher, ChannelDataManager mChannelDataManager) { + mEpgFetcher = epgFetcher; this.mChannelDataManager = mChannelDataManager; } @@ -262,7 +267,7 @@ public class SetupPassthroughActivity extends Activity { private void onScanTimedOut() { stopMonitoring(); - TvSingletons.getSingletons(mContext).getEpgFetcher().onChannelScanFinished(); + mEpgFetcher.onChannelScanFinished(); } } diff --git a/src/com/android/tv/TvApplication.java b/src/com/android/tv/TvApplication.java index 65a3d928..f4fdd5b8 100644 --- a/src/com/android/tv/TvApplication.java +++ b/src/com/android/tv/TvApplication.java @@ -35,6 +35,7 @@ import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; import android.widget.Toast; + import com.android.tv.common.BaseApplication; import com.android.tv.common.feature.CommonFeatures; import com.android.tv.common.recording.RecordingStorageStatusManager; @@ -46,7 +47,6 @@ import com.android.tv.data.ChannelDataManager; import com.android.tv.data.PreviewDataManager; import com.android.tv.data.ProgramDataManager; import com.android.tv.data.epg.EpgFetcher; -import com.android.tv.data.epg.EpgFetcherImpl; import com.android.tv.data.epg.EpgReader; import com.android.tv.dvr.DvrDataManager; import com.android.tv.dvr.DvrDataManagerImpl; @@ -68,12 +68,17 @@ import com.android.tv.util.AsyncDbTask.DbExecutor; import com.android.tv.util.SetupUtils; import com.android.tv.util.TvInputManagerHelper; import com.android.tv.util.Utils; + import com.google.common.base.Optional; + import dagger.Lazy; + import com.android.tv.common.flags.CloudEpgFlags; import com.android.tv.common.flags.LegacyFlags; + import java.util.List; import java.util.concurrent.Executor; + import javax.inject.Inject; /** @@ -117,7 +122,7 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet private Boolean mRunningInMainProcess; @Inject Lazy<TvInputManagerHelper> mLazyTvInputManagerHelper; private boolean mStarted; - private EpgFetcher mEpgFetcher; + @Inject EpgFetcher mEpgFetcher; @Inject Optional<BuiltInTunerManager> mOptionalBuiltInTunerManager; @Inject SetupUtils mSetupUtils; @@ -158,7 +163,6 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet // In SetupFragment, transitions are set in the constructor. Because the fragment can be // created in Activity.onCreate() by the framework, SetupAnimationHelper should be // initialized here before Activity.onCreate() is called. - mEpgFetcher = EpgFetcherImpl.create(this, mCloudEpgFlags, mLegacyFlags); SetupAnimationHelper.initialize(this); getTvInputManagerHelper(); @@ -246,11 +250,6 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet } @Override - public EpgFetcher getEpgFetcher() { - return mEpgFetcher; - } - - @Override public synchronized SetupUtils getSetupUtils() { return mSetupUtils; } diff --git a/src/com/android/tv/TvSingletons.java b/src/com/android/tv/TvSingletons.java index 8f9fd25e..af488cc8 100644 --- a/src/com/android/tv/TvSingletons.java +++ b/src/com/android/tv/TvSingletons.java @@ -17,6 +17,7 @@ package com.android.tv; import android.content.Context; + import com.android.tv.analytics.Analytics; import com.android.tv.analytics.Tracker; import com.android.tv.common.BaseApplication; @@ -25,7 +26,6 @@ import com.android.tv.common.flags.has.HasUiFlags; import com.android.tv.data.ChannelDataManager; import com.android.tv.data.PreviewDataManager; import com.android.tv.data.ProgramDataManager; -import com.android.tv.data.epg.EpgFetcher; import com.android.tv.data.epg.EpgReader; import com.android.tv.dvr.DvrDataManager; import com.android.tv.dvr.DvrManager; @@ -37,8 +37,11 @@ import com.android.tv.tunerinputcontroller.HasBuiltInTunerManager; import com.android.tv.util.SetupUtils; import com.android.tv.util.TvInputManagerHelper; import com.android.tv.util.account.AccountHelper; + import dagger.Lazy; + import com.android.tv.common.flags.BackendKnobsFlags; + import java.util.concurrent.Executor; /** Interface with getters for application scoped singletons. */ @@ -115,8 +118,6 @@ public interface TvSingletons extends BaseSingletons, HasBuiltInTunerManager, Ha Lazy<EpgReader> providesEpgReader(); - EpgFetcher getEpgFetcher(); - /** @deprecated use injection instead. */ @Deprecated SetupUtils getSetupUtils(); diff --git a/src/com/android/tv/data/epg/EpgFetchService.java b/src/com/android/tv/data/epg/EpgFetchService.java index 3418d522..cfa79cb0 100644 --- a/src/com/android/tv/data/epg/EpgFetchService.java +++ b/src/com/android/tv/data/epg/EpgFetchService.java @@ -20,7 +20,6 @@ import android.app.job.JobParameters; import android.app.job.JobService; import com.android.tv.Starter; -import com.android.tv.TvSingletons; import com.android.tv.data.ChannelDataManager; import dagger.android.AndroidInjection; @@ -29,7 +28,7 @@ import javax.inject.Inject; /** JobService to Fetch EPG data. */ public class EpgFetchService extends JobService { - private EpgFetcher mEpgFetcher; + @Inject EpgFetcher mEpgFetcher; @Inject ChannelDataManager mChannelDataManager; @Override @@ -37,8 +36,6 @@ public class EpgFetchService extends JobService { AndroidInjection.inject(this); super.onCreate(); Starter.start(this); - TvSingletons tvSingletons = TvSingletons.getSingletons(getApplicationContext()); - mEpgFetcher = tvSingletons.getEpgFetcher(); } @Override diff --git a/src/com/android/tv/data/epg/EpgFetcherImpl.java b/src/com/android/tv/data/epg/EpgFetcherImpl.java index b40ce0d2..d860f9c2 100644 --- a/src/com/android/tv/data/epg/EpgFetcherImpl.java +++ b/src/com/android/tv/data/epg/EpgFetcherImpl.java @@ -38,10 +38,12 @@ import android.support.annotation.VisibleForTesting; import android.support.annotation.WorkerThread; import android.text.TextUtils; import android.util.Log; + import com.android.tv.TvSingletons; import com.android.tv.common.BuildConfig; import com.android.tv.common.SoftPreconditions; import com.android.tv.common.buildtype.HasBuildType; +import com.android.tv.common.dagger.annotations.ApplicationContext; import com.android.tv.common.util.Clock; import com.android.tv.common.util.CommonUtils; import com.android.tv.common.util.LocationUtils; @@ -59,12 +61,13 @@ import com.android.tv.perf.EventNames; import com.android.tv.perf.PerformanceMonitor; import com.android.tv.perf.TimerEvent; import com.android.tv.util.Utils; + import com.google.android.tv.partner.support.EpgInput; import com.google.android.tv.partner.support.EpgInputs; import com.google.common.collect.ImmutableSet; + import com.android.tv.common.flags.BackendKnobsFlags; -import com.android.tv.common.flags.CloudEpgFlags; -import com.android.tv.common.flags.LegacyFlags; + import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -75,6 +78,8 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; +import javax.inject.Inject; + /** * The service class to fetch EPG routinely or on-demand during channel scanning * @@ -132,31 +137,9 @@ public class EpgFetcherImpl implements EpgFetcher { private Clock mClock; - public static EpgFetcher create( - Context context, CloudEpgFlags cloudEpgFlags, LegacyFlags legacyFlags) { - context = context.getApplicationContext(); - TvSingletons tvSingletons = TvSingletons.getSingletons(context); - ChannelDataManager channelDataManager = tvSingletons.getChannelDataManager(); - PerformanceMonitor performanceMonitor = tvSingletons.getPerformanceMonitor(); - EpgReader epgReader = tvSingletons.providesEpgReader().get(); - Clock clock = tvSingletons.getClock(); - EpgInputWhiteList epgInputWhiteList = new EpgInputWhiteList(cloudEpgFlags, legacyFlags); - BackendKnobsFlags backendKnobsFlags = tvSingletons.getBackendKnobs(); - HasBuildType.BuildType buildType = tvSingletons.getBuildType(); - return new EpgFetcherImpl( - context, - epgInputWhiteList, - channelDataManager, - epgReader, - performanceMonitor, - clock, - backendKnobsFlags, - buildType); - } - - @VisibleForTesting - EpgFetcherImpl( - Context context, + @Inject + public EpgFetcherImpl( + @ApplicationContext Context context, EpgInputWhiteList epgInputWhiteList, ChannelDataManager channelDataManager, EpgReader epgReader, diff --git a/src/com/android/tv/modules/TvApplicationModule.java b/src/com/android/tv/modules/TvApplicationModule.java index eb20182c..10f1030f 100644 --- a/src/com/android/tv/modules/TvApplicationModule.java +++ b/src/com/android/tv/modules/TvApplicationModule.java @@ -27,6 +27,8 @@ import com.android.tv.common.dagger.annotations.ApplicationContext; import com.android.tv.data.ChannelDataManager; import com.android.tv.data.ChannelDataManagerFactory; import com.android.tv.data.epg.EpgFetchService; +import com.android.tv.data.epg.EpgFetcher; +import com.android.tv.data.epg.EpgFetcherImpl; import com.android.tv.dialog.PinDialogFragment; import com.android.tv.dvr.ui.playback.DvrPlaybackActivity; import com.android.tv.onboarding.OnboardingActivity; @@ -34,6 +36,7 @@ import com.android.tv.ui.DetailsActivity; import com.android.tv.util.AsyncDbTask; import com.android.tv.util.TvInputManagerHelper; +import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.android.ContributesAndroidInjector; @@ -86,6 +89,10 @@ public abstract class TvApplicationModule { return channelDataManager; } + @Binds + @Singleton + abstract EpgFetcher epgFetcher(EpgFetcherImpl impl); + @ContributesAndroidInjector abstract PinDialogFragment contributesPinDialogFragment(); |