diff options
Diffstat (limited to 'common/src/com/android')
6 files changed, 42 insertions, 11 deletions
diff --git a/common/src/com/android/tv/common/SharedPreferencesUtils.java b/common/src/com/android/tv/common/SharedPreferencesUtils.java index fb3d9b56..1b929d3b 100644 --- a/common/src/com/android/tv/common/SharedPreferencesUtils.java +++ b/common/src/com/android/tv/common/SharedPreferencesUtils.java @@ -35,6 +35,7 @@ public final class SharedPreferencesUtils { public static final String SHARED_PREF_RECURRING_RUNNER = "sharedPreferencesRecurringRunner"; public static final String SHARED_PREF_EPG = "epg_preferences"; public static final String SHARED_PREF_SERIES_RECORDINGS = "seriesRecordings"; + public static final String SHARED_PREF_CHANNEL_LOGO_URIS = "channelLogoUris"; private static boolean sInitializeCalled; diff --git a/common/src/com/android/tv/common/TvCommonUtils.java b/common/src/com/android/tv/common/TvCommonUtils.java index a88dd3a8..c391ad24 100644 --- a/common/src/com/android/tv/common/TvCommonUtils.java +++ b/common/src/com/android/tv/common/TvCommonUtils.java @@ -23,6 +23,8 @@ import android.media.tv.TvInputInfo; * Util class for common use in TV app and inputs. */ public final class TvCommonUtils { + private static Boolean sRunningInTest; + private TvCommonUtils() { } /** @@ -58,12 +60,15 @@ public final class TvCommonUtils { * the usual devices even the application is running in tests. We need to figure it out by * checking whether the class in tv-tests-common module can be loaded or not. */ - public static boolean isRunningInTest() { - try { - Class.forName("com.android.tv.testing.Utils"); - return true; - } catch (ClassNotFoundException e) { - return false; + public static synchronized boolean isRunningInTest() { + if (sRunningInTest == null) { + try { + Class.forName("com.android.tv.testing.Utils"); + sRunningInTest = true; + } catch (ClassNotFoundException e) { + sRunningInTest = false; + } } + return sRunningInTest; } } diff --git a/common/src/com/android/tv/common/TvContentRatingCache.java b/common/src/com/android/tv/common/TvContentRatingCache.java index 5694cda7..8b3c06f1 100644 --- a/common/src/com/android/tv/common/TvContentRatingCache.java +++ b/common/src/com/android/tv/common/TvContentRatingCache.java @@ -43,6 +43,7 @@ public final class TvContentRatingCache implements MemoryManageable { return INSTANCE; } + // @GuardedBy("TvContentRatingCache.this") private final Map<String, TvContentRating[]> mRatingsMultiMap = new ArrayMap<>(); /** @@ -51,7 +52,7 @@ public final class TvContentRatingCache implements MemoryManageable { * Returns {@code null} if the string is empty or contains no valid ratings. */ @Nullable - public TvContentRating[] getRatings(String commaSeparatedRatings) { + public synchronized TvContentRating[] getRatings(String commaSeparatedRatings) { if (TextUtils.isEmpty(commaSeparatedRatings)) { return null; } @@ -136,7 +137,7 @@ public final class TvContentRatingCache implements MemoryManageable { } @Override - public void performTrimMemory(int level) { + public synchronized void performTrimMemory(int level) { mRatingsMultiMap.clear(); } diff --git a/common/src/com/android/tv/common/feature/SharedPreferencesFeature.java b/common/src/com/android/tv/common/feature/SharedPreferencesFeature.java index a4a79b38..881f53d6 100644 --- a/common/src/com/android/tv/common/feature/SharedPreferencesFeature.java +++ b/common/src/com/android/tv/common/feature/SharedPreferencesFeature.java @@ -19,7 +19,6 @@ package com.android.tv.common.feature; import android.content.Context; import android.content.SharedPreferences; import android.util.Log; - import com.android.tv.common.SharedPreferencesUtils; /** diff --git a/common/src/com/android/tv/common/feature/TestableFeature.java b/common/src/com/android/tv/common/feature/TestableFeature.java index a02877ec..d7e707a1 100644 --- a/common/src/com/android/tv/common/feature/TestableFeature.java +++ b/common/src/com/android/tv/common/feature/TestableFeature.java @@ -36,14 +36,29 @@ public class TestableFeature implements Feature { private final Feature mDelegate; private Boolean mTestValue = null; + /** + * Creates testable feature. + */ public static TestableFeature createTestableFeature(Feature delegate) { return new TestableFeature(delegate); } + /** + * Creates testable feature with initial value. + */ + public static TestableFeature createTestableFeature(Feature delegate, Boolean initialValue) { + return new TestableFeature(delegate, initialValue); + } + private TestableFeature(Feature delegate) { mDelegate = delegate; } + private TestableFeature(Feature delegate, Boolean initialValue) { + mDelegate = delegate; + mTestValue = initialValue; + } + @VisibleForTesting public void enableForTest() { if (!TvCommonUtils.isRunningInTest()) { diff --git a/common/src/com/android/tv/common/ui/setup/SetupMultiPaneFragment.java b/common/src/com/android/tv/common/ui/setup/SetupMultiPaneFragment.java index 63247481..b9ad4657 100644 --- a/common/src/com/android/tv/common/ui/setup/SetupMultiPaneFragment.java +++ b/common/src/com/android/tv/common/ui/setup/SetupMultiPaneFragment.java @@ -34,6 +34,7 @@ public abstract class SetupMultiPaneFragment extends SetupFragment { private static final boolean DEBUG = false; public static final int ACTION_DONE = Integer.MAX_VALUE; + public static final int ACTION_SKIP = ACTION_DONE - 1; private static final String CONTENT_FRAGMENT_TAG = "content_fragment"; @@ -53,7 +54,12 @@ public abstract class SetupMultiPaneFragment extends SetupFragment { } if (needsDoneButton()) { setOnClickAction(view.findViewById(R.id.button_done), getActionCategory(), ACTION_DONE); - } else { + } + if (needsSkipButton()) { + view.findViewById(R.id.button_skip).setVisibility(View.VISIBLE); + setOnClickAction(view.findViewById(R.id.button_skip), getActionCategory(), ACTION_SKIP); + } + if (!needsDoneButton() && !needsSkipButton()) { View doneButtonContainer = view.findViewById(R.id.done_button_container); // Use content view to check layout direction while view is being created. if (getResources().getConfiguration().getLayoutDirection() @@ -90,6 +96,10 @@ public abstract class SetupMultiPaneFragment extends SetupFragment { return true; } + protected boolean needsSkipButton() { + return false; + } + @Override protected int[] getParentIdsForDelay() { return new int[] {R.id.content_fragment, R.id.guidedactions_list}; @@ -99,4 +109,4 @@ public abstract class SetupMultiPaneFragment extends SetupFragment { public int[] getSharedElementIds() { return new int[] {R.id.action_fragment_background, R.id.done_button_container}; } -} +}
\ No newline at end of file |