aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornchalko <nchalko@google.com>2018-12-18 12:26:40 -0800
committerCopybara-Service <copybara-piper@google.com>2018-12-18 13:05:16 -0800
commit5bd4840e4ef9474dd1e0c90efc996d2b00cf0037 (patch)
tree3020f2743ae30fef74951a9297fd698a345b98f9
parent13f1bdce2947cefc4c0a9ad2e24dbee06e7d558d (diff)
downloadTV-5bd4840e4ef9474dd1e0c90efc996d2b00cf0037.tar.gz
Create a Optional BuiltInTunerManager
This manager is absent if the tuner is not enabled. PiperOrigin-RevId: 226039646 Change-Id: Ib71a3a9abd361794048ea8917300a9f2187ea3d2
-rw-r--r--src/com/android/tv/MainActivity.java21
-rw-r--r--src/com/android/tv/TvApplication.java18
-rw-r--r--src/com/android/tv/TvSingletons.java7
-rw-r--r--src/com/android/tv/app/LiveTvApplication.java7
-rw-r--r--src/com/android/tv/features/TvFeatures.java8
-rw-r--r--src/com/android/tv/onboarding/SetupSourcesFragment.java5
-rw-r--r--src/com/android/tv/tunerinputcontroller/BuiltInTunerManager.java21
-rw-r--r--src/com/android/tv/tunerinputcontroller/HasBuiltInTunerManager.java28
-rw-r--r--src/com/android/tv/ui/sidepanel/SettingsFragment.java12
-rw-r--r--tests/common/src/com/android/tv/testing/TestSingletonApp.java8
-rw-r--r--tests/unit/src/com/android/tv/util/MockTvSingletons.java6
11 files changed, 91 insertions, 50 deletions
diff --git a/src/com/android/tv/MainActivity.java b/src/com/android/tv/MainActivity.java
index 682fc2a7..fae27723 100644
--- a/src/com/android/tv/MainActivity.java
+++ b/src/com/android/tv/MainActivity.java
@@ -115,7 +115,7 @@ import com.android.tv.receiver.AudioCapabilitiesReceiver;
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.tunerinputcontroller.BuiltInTunerManager;
import com.android.tv.ui.ChannelBannerView;
import com.android.tv.ui.DetailsActivity;
import com.android.tv.ui.InputBannerView;
@@ -272,6 +272,7 @@ public class MainActivity extends Activity
private DvrManager mDvrManager;
private ConflictChecker mDvrConflictChecker;
private SetupUtils mSetupUtils;
+ private Optional<BuiltInTunerManager> mOptionalBuiltInTunerManager;
@VisibleForTesting protected TunableTvView mTvView;
private View mContentView;
@@ -433,7 +434,7 @@ public class MainActivity extends Activity
new TvInputCallback() {
@Override
public void onInputAdded(String inputId) {
- if (TvFeatures.TUNER.isEnabled(MainActivity.this)
+ if (mOptionalBuiltInTunerManager.isPresent()
&& mTunerInputId.equals(inputId)
&& CommonPreferences.shouldShowSetupActivity(MainActivity.this)) {
Intent intent =
@@ -483,6 +484,7 @@ public class MainActivity extends Activity
finishAndRemoveTask();
return;
}
+ mOptionalBuiltInTunerManager = tvSingletons.getBuiltInTunerManager();
mSetupUtils = tvSingletons.getSetupUtils();
TvSingletons tvApplication = (TvSingletons) getApplication();
@@ -545,7 +547,7 @@ public class MainActivity extends Activity
Toast.makeText(this, "Using Strict Mode for eng builds", Toast.LENGTH_SHORT).show();
}
mTracker = tvApplication.getTracker();
- if (TvFeatures.TUNER.isEnabled(this)) {
+ if (mOptionalBuiltInTunerManager.isPresent()) {
mTvInputManagerHelper.addCallback(mTvInputCallback);
}
mTunerInputId = tvSingletons.getEmbeddedTunerInputId();
@@ -816,12 +818,13 @@ public class MainActivity extends Activity
notificationIntent.setAction(NotificationService.ACTION_SHOW_RECOMMENDATION);
startService(notificationIntent);
}
- TvSingletons singletons = TvSingletons.getSingletons(this);
- Optional<TunerInputController> tunerInputController = singletons.getTunerInputController();
- if (tunerInputController.isPresent()) {
- tunerInputController.get().executeNetworkTunerDiscoveryAsyncTask(this);
+ if (mOptionalBuiltInTunerManager.isPresent()) {
+ mOptionalBuiltInTunerManager
+ .get()
+ .getTunerInputController()
+ .executeNetworkTunerDiscoveryAsyncTask(this);
}
- singletons.getEpgFetcher().fetchImmediatelyIfNeeded();
+ TvSingletons.getSingletons(this).getEpgFetcher().fetchImmediatelyIfNeeded();
}
@Override
@@ -2059,7 +2062,7 @@ public class MainActivity extends Activity
}
if (mTvInputManagerHelper != null) {
mTvInputManagerHelper.clearTvInputLabels();
- if (TvFeatures.TUNER.isEnabled(this)) {
+ if (mOptionalBuiltInTunerManager.isPresent()) {
mTvInputManagerHelper.removeCallback(mTvInputCallback);
}
}
diff --git a/src/com/android/tv/TvApplication.java b/src/com/android/tv/TvApplication.java
index 4954c98a..630ba376 100644
--- a/src/com/android/tv/TvApplication.java
+++ b/src/com/android/tv/TvApplication.java
@@ -172,12 +172,12 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet
new TvInputCallback() {
@Override
public void onInputAdded(String inputId) {
- if (getTunerInputController().isPresent()
- && TvFeatures.TUNER.isEnabled(TvApplication.this)
+ if (getBuiltInTunerManager().isPresent()
&& TextUtils.equals(
inputId, getEmbeddedTunerInputId())) {
- getTunerInputController()
+ getBuiltInTunerManager()
.get()
+ .getTunerInputController()
.updateTunerInputInfo(TvApplication.this);
}
handleInputCountChanged();
@@ -188,10 +188,13 @@ public abstract class TvApplication extends BaseApplication implements TvSinglet
handleInputCountChanged();
}
});
- if (getTunerInputController().isPresent() && TvFeatures.TUNER.isEnabled(this)) {
+ if (getBuiltInTunerManager().isPresent()) {
// If the tuner input service is added before the app is started, we need to
// handle it here.
- getTunerInputController().get().updateTunerInputInfo(TvApplication.this);
+ getBuiltInTunerManager()
+ .get()
+ .getTunerInputController()
+ .updateTunerInputInfo(TvApplication.this);
}
if (CommonFeatures.DVR.isEnabled(this)) {
mDvrScheduleManager = new DvrScheduleManager(this);
@@ -215,9 +218,10 @@ 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!");
- if (getTunerInputController().isPresent()) {
- getTunerInputController()
+ if (getBuiltInTunerManager().isPresent()) {
+ getBuiltInTunerManager()
.get()
+ .getTunerInputController()
.onCheckingUsbTunerStatus(this, ACTION_APPLICATION_FIRST_LAUNCHED);
}
SharedPreferences.Editor editor = sharedPreferences.edit();
diff --git a/src/com/android/tv/TvSingletons.java b/src/com/android/tv/TvSingletons.java
index f7a1273d..f582b236 100644
--- a/src/com/android/tv/TvSingletons.java
+++ b/src/com/android/tv/TvSingletons.java
@@ -33,17 +33,16 @@ import com.android.tv.dvr.DvrScheduleManager;
import com.android.tv.dvr.DvrWatchedPositionManager;
import com.android.tv.dvr.recorder.RecordingScheduler;
import com.android.tv.perf.PerformanceMonitor;
-import com.android.tv.tunerinputcontroller.TunerInputController;
+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 com.google.common.base.Optional;
import com.android.tv.common.flags.BackendKnobsFlags;
import java.util.concurrent.Executor;
import javax.inject.Provider;
/** Interface with getters for application scoped singletons. */
-public interface TvSingletons extends BaseSingletons {
+public interface TvSingletons extends BaseSingletons, HasBuiltInTunerManager {
/** Returns the @{@link TvSingletons} using the application context. */
static TvSingletons getSingletons(Context context) {
@@ -102,8 +101,6 @@ public interface TvSingletons extends BaseSingletons {
SetupUtils getSetupUtils();
- Optional<TunerInputController> getTunerInputController();
-
ExperimentLoader getExperimentLoader();
Executor getDbExecutor();
diff --git a/src/com/android/tv/app/LiveTvApplication.java b/src/com/android/tv/app/LiveTvApplication.java
index 903b5def..db20846c 100644
--- a/src/com/android/tv/app/LiveTvApplication.java
+++ b/src/com/android/tv/app/LiveTvApplication.java
@@ -37,7 +37,7 @@ import com.android.tv.perf.PerformanceMonitor;
import com.android.tv.perf.PerformanceMonitorManagerFactory;
import com.android.tv.tuner.livetuner.LiveTvTunerTvInputService;
import com.android.tv.tuner.setup.LiveTvTunerSetupActivity;
-import com.android.tv.tunerinputcontroller.TunerInputController;
+import com.android.tv.tunerinputcontroller.BuiltInTunerManager;
import com.android.tv.util.account.AccountHelper;
import com.android.tv.util.account.AccountHelperImpl;
import com.google.common.base.Optional;
@@ -59,7 +59,6 @@ public class LiveTvApplication extends TvApplication {
}
};
- private final Optional<TunerInputController> mOptionalTunerInputController = Optional.absent();
private final DefaultBackendKnobsFlags mBackendKnobsFlags = new DefaultBackendKnobsFlags();
private final DefaultCloudEpgFlags mCloudEpgFlags = new DefaultCloudEpgFlags();
private final DefaultConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags =
@@ -157,8 +156,8 @@ public class LiveTvApplication extends TvApplication {
}
@Override
- public Optional<TunerInputController> getTunerInputController() {
- return mOptionalTunerInputController;
+ public Optional<BuiltInTunerManager> getBuiltInTunerManager() {
+ return Optional.absent();
}
@Override
diff --git a/src/com/android/tv/features/TvFeatures.java b/src/com/android/tv/features/TvFeatures.java
index a176e4cc..b42c2f2c 100644
--- a/src/com/android/tv/features/TvFeatures.java
+++ b/src/com/android/tv/features/TvFeatures.java
@@ -20,8 +20,6 @@ import static com.android.tv.common.feature.EngOnlyFeature.ENG_ONLY_FEATURE;
import static com.android.tv.common.feature.FeatureUtils.OFF;
import static com.android.tv.common.feature.FeatureUtils.ON;
import static com.android.tv.common.feature.FeatureUtils.and;
-import static com.android.tv.common.feature.FeatureUtils.aospFeature;
-import static com.android.tv.common.feature.FeatureUtils.not;
import static com.android.tv.common.feature.FeatureUtils.or;
import android.content.Context;
@@ -34,7 +32,6 @@ import com.android.tv.common.feature.ExperimentFeature;
import com.android.tv.common.feature.Feature;
import com.android.tv.common.feature.FeatureUtils;
import com.android.tv.common.feature.GServiceFeature;
-
import com.android.tv.common.feature.PropertyFeature;
import com.android.tv.common.feature.Sdk;
import com.android.tv.common.feature.TestableFeature;
@@ -61,11 +58,6 @@ public final class TvFeatures extends CommonFeatures {
*/
public static final Feature ANALYTICS_V2 = and(ON, ANALYTICS_OPT_IN);
- /** Enables Embedded tuner */
- public static final Feature TUNER =
- aospFeature(
- OFF);
-
// TODO(b/76149661): Fix EPG search or remove it
public static final Feature EPG_SEARCH = OFF;
diff --git a/src/com/android/tv/onboarding/SetupSourcesFragment.java b/src/com/android/tv/onboarding/SetupSourcesFragment.java
index a53c4934..3566c9c3 100644
--- a/src/com/android/tv/onboarding/SetupSourcesFragment.java
+++ b/src/com/android/tv/onboarding/SetupSourcesFragment.java
@@ -197,10 +197,11 @@ public class SetupSourcesFragment extends SetupMultiPaneFragment {
mChannelDataManager.addListener(mChannelDataManagerListener);
super.onCreate(savedInstanceState);
mParentFragment = (SetupSourcesFragment) getParentFragment();
- if (singletons.getTunerInputController().isPresent()) {
+ if (singletons.getBuiltInTunerManager().isPresent()) {
singletons
- .getTunerInputController()
+ .getBuiltInTunerManager()
.get()
+ .getTunerInputController()
.executeNetworkTunerDiscoveryAsyncTask(getContext());
}
}
diff --git a/src/com/android/tv/tunerinputcontroller/BuiltInTunerManager.java b/src/com/android/tv/tunerinputcontroller/BuiltInTunerManager.java
new file mode 100644
index 00000000..e19974c0
--- /dev/null
+++ b/src/com/android/tv/tunerinputcontroller/BuiltInTunerManager.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.tv.tunerinputcontroller;
+
+/** Controllers and parameters needed to access a built in tuner. */
+public interface BuiltInTunerManager {
+ TunerInputController getTunerInputController();
+}
diff --git a/src/com/android/tv/tunerinputcontroller/HasBuiltInTunerManager.java b/src/com/android/tv/tunerinputcontroller/HasBuiltInTunerManager.java
new file mode 100644
index 00000000..67d647d2
--- /dev/null
+++ b/src/com/android/tv/tunerinputcontroller/HasBuiltInTunerManager.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.tv.tunerinputcontroller;
+
+import com.google.common.base.Optional;
+
+/**
+ * Has optional {@link BuiltInTunerManager}.
+ *
+ * <p>If the {@code BuiltInTunerManager} is absent the built tuner is not enabled.
+ */
+public interface HasBuiltInTunerManager {
+
+ Optional<BuiltInTunerManager> getBuiltInTunerManager();
+}
diff --git a/src/com/android/tv/ui/sidepanel/SettingsFragment.java b/src/com/android/tv/ui/sidepanel/SettingsFragment.java
index 6a181156..aa71fb75 100644
--- a/src/com/android/tv/ui/sidepanel/SettingsFragment.java
+++ b/src/com/android/tv/ui/sidepanel/SettingsFragment.java
@@ -29,7 +29,6 @@ import com.android.tv.common.CommonPreferences;
import com.android.tv.common.customization.CustomizationManager;
import com.android.tv.common.util.PermissionUtils;
import com.android.tv.dialog.PinDialogFragment;
-import com.android.tv.features.TvFeatures;
import com.android.tv.license.LicenseSideFragment;
import com.android.tv.license.Licenses;
import com.android.tv.util.Utils;
@@ -80,10 +79,9 @@ public class SettingsFragment extends SideFragment {
customizeChannelListItem.setEnabled(false);
items.add(customizeChannelListItem);
final MainActivity activity = getMainActivity();
+ TvSingletons singletons = TvSingletons.getSingletons(getContext());
boolean hasNewInput =
- TvSingletons.getSingletons(getContext())
- .getSetupUtils()
- .hasNewInput(activity.getTvInputManagerHelper());
+ singletons.getSetupUtils().hasNewInput(activity.getTvInputManagerHelper());
items.add(
new ActionItem(
getString(R.string.settings_channel_source_item_setup),
@@ -126,11 +124,9 @@ public class SettingsFragment extends SideFragment {
// It's TBD.
}
boolean showTrickplaySetting = false;
- if (TvFeatures.TUNER.isEnabled(getContext())) {
+ if (singletons.getBuiltInTunerManager().isPresent()) {
for (TvInputInfo inputInfo :
- TvSingletons.getSingletons(getContext())
- .getTvInputManagerHelper()
- .getTvInputInfos(true, true)) {
+ singletons.getTvInputManagerHelper().getTvInputInfos(true, true)) {
if (Utils.isInternalTvInput(getContext(), inputInfo.getId())) {
showTrickplaySetting = true;
break;
diff --git a/tests/common/src/com/android/tv/testing/TestSingletonApp.java b/tests/common/src/com/android/tv/testing/TestSingletonApp.java
index fb6b2756..de0db8ce 100644
--- a/tests/common/src/com/android/tv/testing/TestSingletonApp.java
+++ b/tests/common/src/com/android/tv/testing/TestSingletonApp.java
@@ -51,7 +51,7 @@ import com.android.tv.testing.testdata.TestData;
import com.android.tv.tuner.tvinput.factory.TunerSessionFactory;
import com.android.tv.tuner.tvinput.factory.TunerSessionFactory.HasTunerSessionFactory;
import com.android.tv.tuner.tvinput.factory.TunerSessionFactoryImpl;
-import com.android.tv.tunerinputcontroller.TunerInputController;
+import com.android.tv.tunerinputcontroller.BuiltInTunerManager;
import com.android.tv.util.SetupUtils;
import com.android.tv.util.TvInputManagerHelper;
import com.android.tv.util.account.AccountHelper;
@@ -71,7 +71,7 @@ public class TestSingletonApp extends Application implements TvSingletons, HasTu
public DvrDataManager mDvrDataManager;
private final Provider<EpgReader> mEpgReaderProvider = SingletonProvider.create(epgReader);
- private final Optional<TunerInputController> mOptionalTunerInputController = Optional.absent();
+ private final Optional<BuiltInTunerManager> mBuiltInTunerManagerOptional = Optional.absent();
private final DefaultBackendKnobsFlags mBackendKnobs = new DefaultBackendKnobsFlags();
private final DefaultCloudEpgFlags mCloudEpgFlags = new DefaultCloudEpgFlags();
private final DefaultConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags =
@@ -190,8 +190,8 @@ public class TestSingletonApp extends Application implements TvSingletons, HasTu
}
@Override
- public Optional<TunerInputController> getTunerInputController() {
- return mOptionalTunerInputController;
+ public Optional<BuiltInTunerManager> getBuiltInTunerManager() {
+ return mBuiltInTunerManagerOptional;
}
@Override
diff --git a/tests/unit/src/com/android/tv/util/MockTvSingletons.java b/tests/unit/src/com/android/tv/util/MockTvSingletons.java
index 68dcfde1..d59ef2d4 100644
--- a/tests/unit/src/com/android/tv/util/MockTvSingletons.java
+++ b/tests/unit/src/com/android/tv/util/MockTvSingletons.java
@@ -42,7 +42,7 @@ import com.android.tv.dvr.DvrWatchedPositionManager;
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.android.tv.tunerinputcontroller.BuiltInTunerManager;
import com.google.common.base.Optional;
import java.util.concurrent.Executor;
import javax.inject.Provider;
@@ -161,8 +161,8 @@ public class MockTvSingletons implements TvSingletons {
}
@Override
- public Optional<TunerInputController> getTunerInputController() {
- return mApp.getTunerInputController();
+ public Optional<BuiltInTunerManager> getBuiltInTunerManager() {
+ return mApp.getBuiltInTunerManager();
}
@Override