aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-01-29 00:20:32 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-01-29 00:20:32 +0000
commit7123dbc959bc0bf5eb41e7aa0fcbb0e00aafe842 (patch)
treeeaa47937482de0d61267e7b7c620ab3ceb1111bf
parente34ca2b8c8f6a02446db2c4eaf750650aee7200d (diff)
parent593897d5f9a46c018cce8e5e3d280e0c65d0b145 (diff)
downloadTV-7123dbc959bc0bf5eb41e7aa0fcbb0e00aafe842.tar.gz
Use autofactory that are needed by "Get more channels" am: 91247e9944 am: e368fb8d2e am: 593897d5f9
Change-Id: Ic326796b1170a39ebbf9fbd51cad9a540f5657b4
-rw-r--r--common/src/com/android/tv/common/customization/CustomizationManager.java10
-rw-r--r--src/com/android/tv/menu/MenuRowFactory.java31
-rw-r--r--src/com/android/tv/menu/TvOptionsRowAdapter.java18
-rw-r--r--src/com/android/tv/modules/TvApplicationModule.java11
-rw-r--r--src/com/android/tv/ui/TvOverlayManager.java13
5 files changed, 64 insertions, 19 deletions
diff --git a/common/src/com/android/tv/common/customization/CustomizationManager.java b/common/src/com/android/tv/common/customization/CustomizationManager.java
index 5a29d7c0..acdad2c9 100644
--- a/common/src/com/android/tv/common/customization/CustomizationManager.java
+++ b/common/src/com/android/tv/common/customization/CustomizationManager.java
@@ -25,9 +25,12 @@ import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.support.annotation.IntDef;
+import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.util.Log;
+
import com.android.tv.common.CommonConstants;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -129,7 +132,7 @@ public class CustomizationManager {
sTrickplayMode = TRICKPLAY_MODE_ENABLED;
} else {
try {
- String customization = null;
+ String customization;
Resources res =
context.getPackageManager()
.getResourcesForApplication(sCustomizationPackage);
@@ -160,7 +163,7 @@ public class CustomizationManager {
List<PackageInfo> packageInfos =
context.getPackageManager()
.getPackagesHoldingPermissions(CUSTOMIZE_PERMISSIONS, 0);
- if (packageInfos.size() != 0) {
+ if (!packageInfos.isEmpty()) {
/** Iterate through all packages returning the first vendor customizer */
for (PackageInfo packageInfo : packageInfos) {
if (packageInfo.packageName.startsWith("com.android") == false) {
@@ -170,7 +173,7 @@ public class CustomizationManager {
}
/** If no vendor package found, return first in the list */
- if (sCustomizationPackage == "") {
+ if (TextUtils.isEmpty(sCustomizationPackage)) {
sCustomizationPackage = packageInfos.get(0).packageName;
}
}
@@ -260,6 +263,7 @@ public class CustomizationManager {
*
* <p>Row ID is one of ID_OPTIONS_ROW or ID_PARTNER_ROW.
*/
+ @Nullable
public List<CustomAction> getCustomActions(String rowId) {
return mRowIdToCustomActionsMap.get(rowId);
}
diff --git a/src/com/android/tv/menu/MenuRowFactory.java b/src/com/android/tv/menu/MenuRowFactory.java
index a3837a10..ca30ef82 100644
--- a/src/com/android/tv/menu/MenuRowFactory.java
+++ b/src/com/android/tv/menu/MenuRowFactory.java
@@ -19,28 +19,43 @@ package com.android.tv.menu;
import android.content.Context;
import android.support.annotation.Nullable;
import android.text.TextUtils;
+
import com.android.tv.MainActivity;
import com.android.tv.R;
import com.android.tv.common.customization.CustomAction;
import com.android.tv.common.customization.CustomizationManager;
+import com.android.tv.menu.MenuRowFactory.Factory;
import com.android.tv.ui.TunableTvView;
-import com.android.tv.common.flags.LegacyFlags;
+
+import com.google.auto.factory.AutoFactory;
+import com.google.auto.factory.Provided;
+
import java.util.List;
/** A factory class to create menu rows. */
+@AutoFactory(implementing = Factory.class)
public class MenuRowFactory {
+
+ /** Factory for a {@link MenuRowFactory}. */
+ public interface Factory {
+ /** Creates a {@link MenuRowFactory} */
+ MenuRowFactory create(MainActivity mainActivity, TunableTvView tvView);
+ }
+
private final MainActivity mMainActivity;
private final TunableTvView mTvView;
private final CustomizationManager mCustomizationManager;
- private final LegacyFlags mLegacyFlags;
+ private final TvOptionsRowAdapter.Factory mTvOptionsRowAdapterFactory;
/** A constructor. */
public MenuRowFactory(
- MainActivity mainActivity, TunableTvView tvView, LegacyFlags mLegacyFlags) {
+ MainActivity mainActivity,
+ TunableTvView tvView,
+ @Provided TvOptionsRowAdapter.Factory tvOptionsRowAdapterFactory) {
mMainActivity = mainActivity;
mTvView = tvView;
mCustomizationManager = new CustomizationManager(mainActivity);
- this.mLegacyFlags = mLegacyFlags;
+ mTvOptionsRowAdapterFactory = tvOptionsRowAdapterFactory;
mCustomizationManager.initialize();
}
@@ -65,7 +80,7 @@ public class MenuRowFactory {
mMainActivity,
menu,
mCustomizationManager.getCustomActions(CustomizationManager.ID_OPTIONS_ROW),
- mLegacyFlags);
+ mTvOptionsRowAdapterFactory);
}
return null;
}
@@ -78,14 +93,14 @@ public class MenuRowFactory {
private TvOptionsRow(
Context context,
Menu menu,
- List<CustomAction> customActions,
- LegacyFlags legacyFlags) {
+ @Nullable List<CustomAction> customActions,
+ TvOptionsRowAdapter.Factory tvOptionsRowAdapterFactory) {
super(
context,
menu,
R.string.menu_title_options,
R.dimen.action_card_height,
- new TvOptionsRowAdapter(context, customActions, legacyFlags));
+ tvOptionsRowAdapterFactory.create(context, customActions));
}
}
diff --git a/src/com/android/tv/menu/TvOptionsRowAdapter.java b/src/com/android/tv/menu/TvOptionsRowAdapter.java
index 418560a8..af63c9c9 100644
--- a/src/com/android/tv/menu/TvOptionsRowAdapter.java
+++ b/src/com/android/tv/menu/TvOptionsRowAdapter.java
@@ -18,6 +18,8 @@ package com.android.tv.menu;
import android.content.Context;
import android.media.tv.TvTrackInfo;
+import android.support.annotation.Nullable;
+
import com.android.tv.TvOptionsManager;
import com.android.tv.common.BuildConfig;
import com.android.tv.common.customization.CustomAction;
@@ -28,18 +30,32 @@ import com.android.tv.ui.sidepanel.ClosedCaptionFragment;
import com.android.tv.ui.sidepanel.DeveloperOptionFragment;
import com.android.tv.ui.sidepanel.DisplayModeFragment;
import com.android.tv.ui.sidepanel.MultiAudioFragment;
+
+import com.google.auto.factory.AutoFactory;
+import com.google.auto.factory.Provided;
+
import com.android.tv.common.flags.LegacyFlags;
+
import java.util.ArrayList;
import java.util.List;
/*
* An adapter of options.
*/
+@AutoFactory(implementing = TvOptionsRowAdapter.Factory.class)
public class TvOptionsRowAdapter extends CustomizableOptionsRowAdapter {
private final LegacyFlags mLegacyFlags;
+ /** Factory for a {@link TvOptionsRowAdapter}. */
+ public interface Factory {
+ /** Creates a {@link TvOptionsRowAdapter} */
+ TvOptionsRowAdapter create(Context context, @Nullable List<CustomAction> customActions);
+ }
+
public TvOptionsRowAdapter(
- Context context, List<CustomAction> customActions, LegacyFlags mLegacyFlags) {
+ Context context,
+ @Nullable List<CustomAction> customActions,
+ @Provided LegacyFlags mLegacyFlags) {
super(context, customActions);
this.mLegacyFlags = mLegacyFlags;
}
diff --git a/src/com/android/tv/modules/TvApplicationModule.java b/src/com/android/tv/modules/TvApplicationModule.java
index 1955ecf7..cb4059a1 100644
--- a/src/com/android/tv/modules/TvApplicationModule.java
+++ b/src/com/android/tv/modules/TvApplicationModule.java
@@ -39,6 +39,10 @@ import com.android.tv.dvr.provider.DvrDbSync;
import com.android.tv.dvr.provider.DvrDbSyncFactory;
import com.android.tv.dvr.provider.DvrQueryScheduleFutureFactory;
import com.android.tv.dvr.ui.playback.DvrPlaybackActivity;
+import com.android.tv.menu.MenuRowFactory;
+import com.android.tv.menu.MenuRowFactoryFactory;
+import com.android.tv.menu.TvOptionsRowAdapter;
+import com.android.tv.menu.TvOptionsRowAdapterFactory;
import com.android.tv.onboarding.OnboardingActivity;
import com.android.tv.onboarding.SetupSourcesFragment;
import com.android.tv.setup.SystemSetupActivity;
@@ -126,6 +130,13 @@ public abstract class TvApplicationModule {
abstract DvrQueryScheduleFuture.Factory dvrQueryScheduleFutureFactory(
DvrQueryScheduleFutureFactory dvrQueryScheduleFutureFactory);
+ @Binds
+ abstract TvOptionsRowAdapter.Factory tvOptionsRowAdapterFactory(
+ TvOptionsRowAdapterFactory impl);
+
+ @Binds
+ abstract MenuRowFactory.Factory menuRowFactoryFactory(MenuRowFactoryFactory impl);
+
@ContributesAndroidInjector
abstract PinDialogFragment contributesPinDialogFragment();
diff --git a/src/com/android/tv/ui/TvOverlayManager.java b/src/com/android/tv/ui/TvOverlayManager.java
index 0ab7c685..cf1a9113 100644
--- a/src/com/android/tv/ui/TvOverlayManager.java
+++ b/src/com/android/tv/ui/TvOverlayManager.java
@@ -63,6 +63,7 @@ import com.android.tv.menu.Menu;
import com.android.tv.menu.Menu.MenuShowReason;
import com.android.tv.menu.MenuRowFactory;
import com.android.tv.menu.MenuView;
+import com.android.tv.menu.TvOptionsRowAdapter;
import com.android.tv.onboarding.NewSourcesFragment;
import com.android.tv.onboarding.SetupSourcesFragment;
import com.android.tv.search.ProgramGuideSearchFragment;
@@ -74,8 +75,6 @@ import com.android.tv.util.TvInputManagerHelper;
import com.google.auto.factory.AutoFactory;
import com.google.auto.factory.Provided;
-import com.android.tv.common.flags.LegacyFlags;
-
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -225,7 +224,7 @@ public class TvOverlayManager implements AccessibilityStateChangeListener {
private final List<Runnable> mPendingActions = new ArrayList<>();
private final Queue<PendingDialogAction> mPendingDialogActionQueue = new LinkedList<>();
- private final LegacyFlags mLegacyFlags;
+ private final TvOptionsRowAdapter.Factory mTvOptionsRowAdapterFactory;
private OnBackStackChangedListener mOnBackStackChangedListener;
@@ -240,14 +239,14 @@ public class TvOverlayManager implements AccessibilityStateChangeListener {
SelectInputView selectInputView,
ViewGroup sceneContainer,
ProgramGuideSearchFragment searchFragment,
- @Provided LegacyFlags legacyFlags,
@Provided ChannelDataManager channelDataManager,
@Provided TvInputManagerHelper tvInputManager,
- @Provided ProgramDataManager programDataManager) {
+ @Provided ProgramDataManager programDataManager,
+ @Provided TvOptionsRowAdapter.Factory mTvOptionsRowAdapterFactory) {
mMainActivity = mainActivity;
mChannelTuner = channelTuner;
+ this.mTvOptionsRowAdapterFactory = mTvOptionsRowAdapterFactory;
TvSingletons singletons = TvSingletons.getSingletons(mainActivity);
- mLegacyFlags = legacyFlags;
mChannelDataManager = channelDataManager;
mInputManager = tvInputManager;
mTvView = tvView;
@@ -286,7 +285,7 @@ public class TvOverlayManager implements AccessibilityStateChangeListener {
tvView,
optionsManager,
menuView,
- new MenuRowFactory(mainActivity, tvView, this.mLegacyFlags),
+ new MenuRowFactory(mainActivity, tvView, this.mTvOptionsRowAdapterFactory),
new Menu.OnMenuVisibilityChangeListener() {
@Override
public void onMenuVisibilityChange(boolean visible) {