From 99ac9b0a28c0131fda54eec542ede3eb20cbda98 Mon Sep 17 00:00:00 2001 From: Nick Chalko Date: Mon, 27 Jan 2020 18:17:59 -0800 Subject: Hide "get more channels" when playstore URL is empty PiperOrigin-RevId: 291843199 Change-Id: I8073e49189aae153d8ca4aa4f77aefa0484ca4a5 --- src/com/android/tv/menu/TvOptionsRowAdapter.java | 12 +++++++++-- .../tv/onboarding/SetupSourcesFragment.java | 25 +++++++++++++--------- .../android/tv/menu/TvOptionsRowAdapterTest.java | 16 +++++++++++--- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/com/android/tv/menu/TvOptionsRowAdapter.java b/src/com/android/tv/menu/TvOptionsRowAdapter.java index af63c9c9..dc29667e 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.text.TextUtils; + import android.support.annotation.Nullable; import com.android.tv.TvOptionsManager; @@ -35,6 +37,7 @@ import com.google.auto.factory.AutoFactory; import com.google.auto.factory.Provided; import com.android.tv.common.flags.LegacyFlags; +import com.android.tv.common.flags.UiFlags; import java.util.ArrayList; import java.util.List; @@ -45,6 +48,7 @@ import java.util.List; @AutoFactory(implementing = TvOptionsRowAdapter.Factory.class) public class TvOptionsRowAdapter extends CustomizableOptionsRowAdapter { private final LegacyFlags mLegacyFlags; + private final UiFlags mUiFlags; /** Factory for a {@link TvOptionsRowAdapter}. */ public interface Factory { @@ -55,9 +59,11 @@ public class TvOptionsRowAdapter extends CustomizableOptionsRowAdapter { public TvOptionsRowAdapter( Context context, @Nullable List customActions, - @Provided LegacyFlags mLegacyFlags) { + @Provided LegacyFlags mLegacyFlags, + @Provided UiFlags uiFlags) { super(context, customActions); this.mLegacyFlags = mLegacyFlags; + mUiFlags = uiFlags; } @Override @@ -69,7 +75,9 @@ public class TvOptionsRowAdapter extends CustomizableOptionsRowAdapter { actionList.add(MenuAction.SYSTEMWIDE_PIP_ACTION); } actionList.add(MenuAction.SELECT_AUDIO_LANGUAGE_ACTION); - actionList.add(MenuAction.MORE_CHANNELS_ACTION); + if (!TextUtils.isEmpty(mUiFlags.moreChannelsUrl())) { + actionList.add(MenuAction.MORE_CHANNELS_ACTION); + } if (BuildConfig.ENG || mLegacyFlags.enableDeveloperFeatures()) { actionList.add(MenuAction.DEV_ACTION); } diff --git a/src/com/android/tv/onboarding/SetupSourcesFragment.java b/src/com/android/tv/onboarding/SetupSourcesFragment.java index b54d1bc9..b97c7801 100644 --- a/src/com/android/tv/onboarding/SetupSourcesFragment.java +++ b/src/com/android/tv/onboarding/SetupSourcesFragment.java @@ -22,6 +22,7 @@ import android.media.tv.TvInputInfo; import android.media.tv.TvInputManager.TvInputCallback; import android.os.Bundle; import android.support.annotation.NonNull; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -48,6 +49,8 @@ import com.google.common.base.Optional; import dagger.android.AndroidInjection; import dagger.android.ContributesAndroidInjector; +import com.android.tv.common.flags.UiFlags; + import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -121,6 +124,7 @@ public class SetupSourcesFragment extends SetupMultiPaneFragment { @Inject ChannelDataManager mChannelDataManager; @Inject SetupUtils mSetupUtils; @Inject Optional mBuiltInTunerManagerOptional; + @Inject UiFlags mUiFlags; private List mInputs; private int mKnownInputStartIndex; private int mDoneInputStartIndex; @@ -342,16 +346,17 @@ public class SetupSourcesFragment extends SetupMultiPaneFragment { ++position; actions.add(GuidedActionsStylistWithDivider.createDividerAction(getContext())); } - // online store action - ++position; - actions.add( - new GuidedAction.Builder(getActivity()) - .id(ACTION_ONLINE_STORE) - .title(getString(R.string.setup_store_action_title)) - .description(getString(R.string.setup_store_action_description)) - .icon(R.drawable.ic_app_store) - .build()); - + if (!TextUtils.isEmpty(mUiFlags.moreChannelsUrl())) { + // online store action + ++position; + actions.add( + new GuidedAction.Builder(getActivity()) + .id(ACTION_ONLINE_STORE) + .title(getString(R.string.setup_store_action_title)) + .description(getString(R.string.setup_store_action_description)) + .icon(R.drawable.ic_app_store) + .build()); + } if (newPosition != -1) { VerticalGridView gridView = getGuidedActionsStylist().getActionsGridView(); gridView.setSelectedPosition(newPosition); diff --git a/tests/unit/src/com/android/tv/menu/TvOptionsRowAdapterTest.java b/tests/unit/src/com/android/tv/menu/TvOptionsRowAdapterTest.java index 64a055a2..255880a6 100644 --- a/tests/unit/src/com/android/tv/menu/TvOptionsRowAdapterTest.java +++ b/tests/unit/src/com/android/tv/menu/TvOptionsRowAdapterTest.java @@ -16,26 +16,33 @@ package com.android.tv.menu; import static androidx.test.InstrumentationRegistry.getInstrumentation; + import static com.google.common.truth.Truth.assertWithMessage; + import static org.junit.Assert.fail; import android.media.tv.TvTrackInfo; import android.os.SystemClock; import android.text.TextUtils; + import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; + import com.android.tv.common.flags.impl.DefaultLegacyFlags; +import com.android.tv.common.flags.impl.DefaultUiFlags; import com.android.tv.testing.activities.BaseMainActivityTestCase; import com.android.tv.testing.constants.Constants; import com.android.tv.testing.testinput.ChannelState; import com.android.tv.testing.testinput.ChannelStateData; import com.android.tv.testing.testinput.TvTestInputConstants; -import java.util.Collections; -import java.util.List; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.Collections; +import java.util.List; + /** Tests for {@link TvOptionsRowAdapter}. */ @MediumTest @RunWith(AndroidJUnit4.class) @@ -52,7 +59,10 @@ public class TvOptionsRowAdapterTest extends BaseMainActivityTestCase { super.setUp(); mTvOptionsRowAdapter = new TvOptionsRowAdapter( - mActivity, Collections.emptyList(), DefaultLegacyFlags.DEFAULT); + mActivity, + Collections.emptyList(), + DefaultLegacyFlags.DEFAULT, + new DefaultUiFlags()); tuneToChannel(TvTestInputConstants.CH_1_DEFAULT_DONT_MODIFY); waitUntilAudioTracksHaveSize(1); waitUntilAudioTrackSelected(ChannelState.DEFAULT.getSelectedAudioTrackId()); -- cgit v1.2.3