From 57fa0a9ce9331b264e2b0aa0561409e295e6d46d Mon Sep 17 00:00:00 2001 From: nchalko Date: Fri, 13 Jul 2018 14:48:41 -0700 Subject: CLEANUP: Make TunerInputController optional PiperOrigin-RevId: 204532275 Change-Id: Ib721a5f631f1cd19aa6b51e883b4b4fc259483a4 --- src/com/android/tv/MainActivity.java | 17 +++++++++------- src/com/android/tv/TvApplication.java | 23 +++++++++++++--------- src/com/android/tv/TvSingletons.java | 3 ++- .../tv/onboarding/SetupSourcesFragment.java | 9 ++++++--- .../android/tv/tuner/TunerInputControllerImpl.java | 2 +- .../com/android/tv/testing/TestSingletonApp.java | 14 +++++++------ .../src/com/android/tv/util/MockTvSingletons.java | 3 ++- 7 files changed, 43 insertions(+), 28 deletions(-) diff --git a/src/com/android/tv/MainActivity.java b/src/com/android/tv/MainActivity.java index 0653a4f2..d2556406 100644 --- a/src/com/android/tv/MainActivity.java +++ b/src/com/android/tv/MainActivity.java @@ -109,6 +109,7 @@ import com.android.tv.perf.PerformanceMonitorManagerFactory; import com.android.tv.recommendation.ChannelPreviewUpdater; import com.android.tv.recommendation.NotificationService; import com.android.tv.search.ProgramGuideSearchFragment; +import com.android.tv.tunerinputcontroller.TunerInputController; import com.android.tv.ui.ChannelBannerView; import com.android.tv.ui.DetailsActivity; import com.android.tv.ui.InputBannerView; @@ -141,6 +142,7 @@ 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 java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayDeque; @@ -802,7 +804,10 @@ public class MainActivity extends Activity startService(notificationIntent); } TvSingletons singletons = TvSingletons.getSingletons(this); - singletons.getTunerInputController().executeNetworkTunerDiscoveryAsyncTask(this); + Optional tunerInputController = singletons.getTunerInputController(); + if (tunerInputController.isPresent()) { + tunerInputController.get().executeNetworkTunerDiscoveryAsyncTask(this); + } singletons.getEpgFetcher().fetchImmediatelyIfNeeded(); } @@ -1899,8 +1904,7 @@ public class MainActivity extends Activity selectTrack(TvTrackInfo.TYPE_AUDIO, bestTrack, UNDEFINED_TRACK_INDEX); } else { mTvOptionsManager.onMultiAudioChanged( - TvTrackInfoUtils - .getMultiAudioString(this, bestTrack, false)); + TvTrackInfoUtils.getMultiAudioString(this, bestTrack, false)); } return; } @@ -2549,10 +2553,9 @@ public class MainActivity extends Activity mTvView.selectTrack(type, track == null ? null : track.getId()); if (type == TvTrackInfo.TYPE_AUDIO) { mTvOptionsManager.onMultiAudioChanged( - track == null - ? null - : TvTrackInfoUtils - .getMultiAudioString(this, track, false)); + track == null + ? null + : TvTrackInfoUtils.getMultiAudioString(this, track, false)); } else if (type == TvTrackInfo.TYPE_SUBTITLE) { mTvOptionsManager.onClosedCaptionsChanged(track, trackIndex); } diff --git a/src/com/android/tv/TvApplication.java b/src/com/android/tv/TvApplication.java index a91eff5f..628219e9 100644 --- a/src/com/android/tv/TvApplication.java +++ b/src/com/android/tv/TvApplication.java @@ -66,6 +66,7 @@ import com.android.tv.tunerinputcontroller.TunerInputController; 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 java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; @@ -121,7 +122,7 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet private TvInputManagerHelper mTvInputManagerHelper; private boolean mStarted; private EpgFetcher mEpgFetcher; - private TunerInputController mTunerInputController; + private Optional mOptionalTunerInputController; @Override public void onCreate() { @@ -215,8 +216,11 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet boolean isFirstLaunch = sharedPreferences.getBoolean(PREFERENCE_IS_FIRST_LAUNCH, true); if (isFirstLaunch) { if (DEBUG) Log.d(TAG, "Congratulations, it's the first launch!"); - getTunerInputController() - .onCheckingUsbTunerStatus(this, ACTION_APPLICATION_FIRST_LAUNCHED); + if (getTunerInputController().isPresent()) { + getTunerInputController() + .get() + .onCheckingUsbTunerStatus(this, ACTION_APPLICATION_FIRST_LAUNCHED); + } SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean(PREFERENCE_IS_FIRST_LAUNCH, false); editor.apply(); @@ -355,13 +359,14 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet } @Override - public synchronized TunerInputController getTunerInputController() { - if (mTunerInputController == null) { - mTunerInputController = - new TunerInputControllerImpl( - ComponentName.unflattenFromString(getEmbeddedTunerInputId())); + public synchronized Optional getTunerInputController() { + if (mOptionalTunerInputController == null) { + mOptionalTunerInputController = + Optional.of( + new TunerInputControllerImpl( + ComponentName.unflattenFromString(getEmbeddedTunerInputId()))); } - return mTunerInputController; + return mOptionalTunerInputController; } @Override diff --git a/src/com/android/tv/TvSingletons.java b/src/com/android/tv/TvSingletons.java index e4e6b1bd..0333d501 100644 --- a/src/com/android/tv/TvSingletons.java +++ b/src/com/android/tv/TvSingletons.java @@ -37,6 +37,7 @@ import com.android.tv.tunerinputcontroller.TunerInputController; import com.android.tv.util.SetupUtils; import com.android.tv.util.TvInputManagerHelper; import com.android.tv.util.account.AccountHelper; +import com.google.common.base.Optional; import java.util.concurrent.Executor; import javax.inject.Provider; @@ -100,7 +101,7 @@ public interface TvSingletons extends BaseSingletons { SetupUtils getSetupUtils(); - TunerInputController getTunerInputController(); + Optional getTunerInputController(); ExperimentLoader getExperimentLoader(); diff --git a/src/com/android/tv/onboarding/SetupSourcesFragment.java b/src/com/android/tv/onboarding/SetupSourcesFragment.java index f032f622..cb95331e 100644 --- a/src/com/android/tv/onboarding/SetupSourcesFragment.java +++ b/src/com/android/tv/onboarding/SetupSourcesFragment.java @@ -197,9 +197,12 @@ public class SetupSourcesFragment extends SetupMultiPaneFragment { mChannelDataManager.addListener(mChannelDataManagerListener); super.onCreate(savedInstanceState); mParentFragment = (SetupSourcesFragment) getParentFragment(); - singletons - .getTunerInputController() - .executeNetworkTunerDiscoveryAsyncTask(getContext()); + if (singletons.getTunerInputController().isPresent()) { + singletons + .getTunerInputController() + .get() + .executeNetworkTunerDiscoveryAsyncTask(getContext()); + } } @Override diff --git a/src/com/android/tv/tuner/TunerInputControllerImpl.java b/src/com/android/tv/tuner/TunerInputControllerImpl.java index 88419be5..6594cd35 100644 --- a/src/com/android/tv/tuner/TunerInputControllerImpl.java +++ b/src/com/android/tv/tuner/TunerInputControllerImpl.java @@ -464,7 +464,7 @@ public class TunerInputControllerImpl implements TunerInputController { Starter.start(context); TunerInputControllerImpl tunerInputController = (TunerInputControllerImpl) - TvSingletons.getSingletons(context).getTunerInputController(); + TvSingletons.getSingletons(context).getTunerInputController().get(); if (!TUNER.isEnabled(context)) { tunerInputController.handleTunerStatusChanged( context, false, Collections.emptySet(), null); diff --git a/tests/common/src/com/android/tv/testing/TestSingletonApp.java b/tests/common/src/com/android/tv/testing/TestSingletonApp.java index 21aabac6..4fcf853b 100644 --- a/tests/common/src/com/android/tv/testing/TestSingletonApp.java +++ b/tests/common/src/com/android/tv/testing/TestSingletonApp.java @@ -51,6 +51,7 @@ import com.android.tv.tunerinputcontroller.TunerInputController; import com.android.tv.util.SetupUtils; import com.android.tv.util.TvInputManagerHelper; import com.android.tv.util.account.AccountHelper; +import com.google.common.base.Optional; import java.util.concurrent.Executor; import javax.inject.Provider; @@ -67,16 +68,17 @@ public class TestSingletonApp extends Application implements TvSingletons { public DvrDataManager mDvrDataManager; private final Provider mEpgReaderProvider = SingletonProvider.create(epgReader); - private TunerInputController mTunerInputController; + private Optional mOptionalTunerInputController; private PerformanceMonitor mPerformanceMonitor; private ChannelDataManager mChannelDataManager; @Override public void onCreate() { super.onCreate(); - mTunerInputController = - new TunerInputControllerImpl( - ComponentName.unflattenFromString(getEmbeddedTunerInputId())); + mOptionalTunerInputController = + Optional.of( + new TunerInputControllerImpl( + ComponentName.unflattenFromString(getEmbeddedTunerInputId()))); tvInputManagerHelper = new FakeTvInputManagerHelper(this); setupUtils = SetupUtils.createForTvSingletons(this); @@ -184,8 +186,8 @@ public class TestSingletonApp extends Application implements TvSingletons { } @Override - public TunerInputController getTunerInputController() { - return mTunerInputController; + public Optional getTunerInputController() { + return mOptionalTunerInputController; } @Override diff --git a/tests/unit/src/com/android/tv/util/MockTvSingletons.java b/tests/unit/src/com/android/tv/util/MockTvSingletons.java index 655bc90b..01579a26 100644 --- a/tests/unit/src/com/android/tv/util/MockTvSingletons.java +++ b/tests/unit/src/com/android/tv/util/MockTvSingletons.java @@ -41,6 +41,7 @@ import com.android.tv.dvr.recorder.RecordingScheduler; import com.android.tv.perf.PerformanceMonitor; import com.android.tv.testing.FakeClock; import com.android.tv.tunerinputcontroller.TunerInputController; +import com.google.common.base.Optional; import java.util.concurrent.Executor; import javax.inject.Provider; @@ -154,7 +155,7 @@ public class MockTvSingletons implements TvSingletons { } @Override - public TunerInputController getTunerInputController() { + public Optional getTunerInputController() { return mApp.getTunerInputController(); } -- cgit v1.2.3