diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-01-29 00:20:32 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-01-29 00:20:32 +0000 |
commit | 7123dbc959bc0bf5eb41e7aa0fcbb0e00aafe842 (patch) | |
tree | eaa47937482de0d61267e7b7c620ab3ceb1111bf | |
parent | e34ca2b8c8f6a02446db2c4eaf750650aee7200d (diff) | |
parent | 593897d5f9a46c018cce8e5e3d280e0c65d0b145 (diff) | |
download | TV-7123dbc959bc0bf5eb41e7aa0fcbb0e00aafe842.tar.gz |
Use autofactory that are needed by "Get more channels" am: 91247e9944 am: e368fb8d2e am: 593897d5f9
Change-Id: Ic326796b1170a39ebbf9fbd51cad9a540f5657b4
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) { |