diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-10-05 07:30:20 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-10-05 07:30:20 +0000 |
commit | bb2e798ef4d546dd54cd9e95796403062b860c15 (patch) | |
tree | d31e2adc1f9cce4f27ca07d30bee921032e33a3c /common/src/com/android/tv/common | |
parent | bc7f430decab0bc34a533811efe457d4615f28aa (diff) | |
parent | 6ebde20b03db4c0d57f67acaac11832b610b966b (diff) | |
download | TV-bb2e798ef4d546dd54cd9e95796403062b860c15.tar.gz |
Snap for 4378450 from 6ebde20b03db4c0d57f67acaac11832b610b966b to oc-mr1-releaseandroid-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-security-8.1.0_r93android-security-8.1.0_r92android-security-8.1.0_r91android-security-8.1.0_r90android-security-8.1.0_r89android-security-8.1.0_r88android-security-8.1.0_r87android-security-8.1.0_r86android-security-8.1.0_r85android-security-8.1.0_r84android-security-8.1.0_r83android-security-8.1.0_r82android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r81android-8.1.0_r80android-8.1.0_r79android-8.1.0_r78android-8.1.0_r77android-8.1.0_r76android-8.1.0_r75android-8.1.0_r74android-8.1.0_r73android-8.1.0_r72android-8.1.0_r71android-8.1.0_r70android-8.1.0_r69android-8.1.0_r68android-8.1.0_r66android-8.1.0_r6android-8.1.0_r5android-8.1.0_r4android-8.1.0_r3android-8.1.0_r23android-8.1.0_r19android-8.1.0_r16android-8.1.0_r15android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1security-oc-mr1-releaseoreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-security-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m4-s1-release
Change-Id: I07f19344c030a9c2b0fd7ba425f7bf7462575f92
Diffstat (limited to 'common/src/com/android/tv/common')
9 files changed, 54 insertions, 56 deletions
diff --git a/common/src/com/android/tv/common/SharedPreferencesUtils.java b/common/src/com/android/tv/common/SharedPreferencesUtils.java index fb3d9b56..140c4e6f 100644 --- a/common/src/com/android/tv/common/SharedPreferencesUtils.java +++ b/common/src/com/android/tv/common/SharedPreferencesUtils.java @@ -35,6 +35,11 @@ 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"; + /** No need to pre-initialize. It's used only on the worker thread. */ + public static final String SHARED_PREF_CHANNEL_LOGO_URIS = "channelLogoUris"; + /** Stores the UI related settings */ + public static final String SHARED_PREF_UI_SETTINGS = "ui_settings"; + public static final String SHARED_PREF_PREVIEW_PROGRAMS = "previewPrograms"; private static boolean sInitializeCalled; @@ -63,6 +68,7 @@ public final class SharedPreferencesUtils { context.getSharedPreferences(SHARED_PREF_EPG, Context.MODE_PRIVATE); context.getSharedPreferences(SHARED_PREF_SERIES_RECORDINGS, Context.MODE_PRIVATE); + context.getSharedPreferences(SHARED_PREF_UI_SETTINGS, Context.MODE_PRIVATE); return null; } 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/CommonFeatures.java b/common/src/com/android/tv/common/feature/CommonFeatures.java index d47aa603..62c88ead 100644 --- a/common/src/com/android/tv/common/feature/CommonFeatures.java +++ b/common/src/com/android/tv/common/feature/CommonFeatures.java @@ -17,7 +17,6 @@ package com.android.tv.common.feature; import static com.android.tv.common.feature.FeatureUtils.AND; -import static com.android.tv.common.feature.FeatureUtils.OR; import static com.android.tv.common.feature.TestableFeature.createTestableFeature; /** @@ -34,7 +33,7 @@ public class CommonFeatures { * DVR API is introduced in N, it only works when app runs as a system app. */ public static final TestableFeature DVR = createTestableFeature( - AND(OR(Sdk.N_PRE_2_OR_HIGHER, Sdk.AT_LEAST_N), SystemAppFeature.SYSTEM_APP_FEATURE)); + AND(Sdk.AT_LEAST_N, SystemAppFeature.SYSTEM_APP_FEATURE)); /** * ENABLE_RECORDING_REGARDLESS_OF_STORAGE_STATUS diff --git a/common/src/com/android/tv/common/feature/Sdk.java b/common/src/com/android/tv/common/feature/Sdk.java index 46a681f8..9f99a64f 100644 --- a/common/src/com/android/tv/common/feature/Sdk.java +++ b/common/src/com/android/tv/common/feature/Sdk.java @@ -18,50 +18,18 @@ package com.android.tv.common.feature; import android.content.Context; import android.os.Build; -import android.support.v4.os.BuildCompat; /** * Holder for SDK version features */ public class Sdk { - - public static final Feature N_PRE_2_OR_HIGHER = - new SdkPreviewVersionFeature(Build.VERSION_CODES.M, 2, true); - - private static class SdkPreviewVersionFeature implements Feature { - private final int mVersionCode; - private final int mPreviewCode; - private final boolean mAllowHigherPreview; - - private SdkPreviewVersionFeature(int versionCode, int previewCode, - boolean allowHigerPreview) { - mVersionCode = versionCode; - mPreviewCode = previewCode; - mAllowHigherPreview = allowHigerPreview; - } - - @Override - public boolean isEnabled(Context context) { - try { - if (mAllowHigherPreview) { - return Build.VERSION.SDK_INT == mVersionCode - && Build.VERSION.PREVIEW_SDK_INT >= mPreviewCode; - } else { - return Build.VERSION.SDK_INT == mVersionCode - && Build.VERSION.PREVIEW_SDK_INT == mPreviewCode; + public static final Feature AT_LEAST_N = + new Feature() { + @Override + public boolean isEnabled(Context context) { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N; } - } catch (NoSuchFieldError e) { - return false; - } - } - } - - public static final Feature AT_LEAST_N = new Feature() { - @Override - public boolean isEnabled(Context context) { - return BuildCompat.isAtLeastN(); - } - }; + }; private Sdk() {} } 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/SetupGuidedStepFragment.java b/common/src/com/android/tv/common/ui/setup/SetupGuidedStepFragment.java index bcaefec9..88159da9 100644 --- a/common/src/com/android/tv/common/ui/setup/SetupGuidedStepFragment.java +++ b/common/src/com/android/tv/common/ui/setup/SetupGuidedStepFragment.java @@ -72,9 +72,6 @@ public abstract class SetupGuidedStepFragment extends GuidedStepFragment { } // gridView Alignment VerticalGridView gridView = getGuidedActionsStylist().getActionsGridView(); - // Workaround of b/28274171 - // TODO: Remove the following line once b/28274171 is resolved. - gridView.setFocusable(true); int offset = getResources().getDimensionPixelOffset( R.dimen.setup_guidedactions_selector_margin_top); gridView.setWindowAlignmentOffset(offset); @@ -86,8 +83,6 @@ public abstract class SetupGuidedStepFragment extends GuidedStepFragment { ViewGroup group = (ViewGroup) view.findViewById(R.id.content_frame); group.setClipChildren(false); group.setClipToPadding(false); - // Workaround b/26205201 - view.findViewById(R.id.guidedactions_list2).setFocusable(false); return view; } 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 |