Merge "Add setBackgroundColor() in VideoPreference" into rvc-dev
diff --git a/src/com/android/settings/widget/VideoPreference.java b/src/com/android/settings/widget/VideoPreference.java
index 949ba9b..6356378 100644
--- a/src/com/android/settings/widget/VideoPreference.java
+++ b/src/com/android/settings/widget/VideoPreference.java
@@ -39,12 +39,18 @@
public class VideoPreference extends Preference {
private static final String TAG = "VideoPreference";
+ private static final int DEFAULT_BACKGROUND_RESOURCE_ID = -1;
private final Context mContext;
@VisibleForTesting
AnimationController mAnimationController;
@VisibleForTesting
boolean mAnimationAvailable;
+ @VisibleForTesting
+ LinearLayout mAnimationView;
+ @VisibleForTesting
+ int mBackgroundResId = DEFAULT_BACKGROUND_RESOURCE_ID;
+
private float mAspectRatio = 1.0f;
private int mPreviewId;
private int mAnimationId;
@@ -114,6 +120,7 @@
mVideo = (TextureView) holder.findViewById(R.id.video_texture_view);
mPreviewImage = (ImageView) holder.findViewById(R.id.video_preview_image);
mPlayButton = (ImageView) holder.findViewById(R.id.video_play_button);
+ mAnimationView = (LinearLayout) holder.itemView;
final AspectRatioFrameLayout layout = (AspectRatioFrameLayout) holder.findViewById(
R.id.video_container);
@@ -123,6 +130,9 @@
layout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, mHeight));
}
+ if (mBackgroundResId != DEFAULT_BACKGROUND_RESOURCE_ID) {
+ mAnimationView.setBackgroundResource(mBackgroundResId);
+ }
if (mAnimationController != null) {
mAnimationController.attachView(mVideo, mPreviewImage, mPlayButton);
}
@@ -203,6 +213,14 @@
}
/**
+ * Set the background color of the video preference
+ * @param resId resource id of color
+ */
+ public void setBackgroundColor(int resId) {
+ mBackgroundResId = resId;
+ }
+
+ /**
* Handle animation operations.
*/
interface AnimationController {
diff --git a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
index 3439ca4..720ad20 100644
--- a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
@@ -32,6 +32,7 @@
import android.view.TextureView;
import android.view.View;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceViewHolder;
@@ -60,6 +61,9 @@
private ImageView fakePreview;
@Mock
private ImageView fakePlayButton;
+ @Mock
+ private LinearLayout mAnimationView;
+
private Context mContext;
private VideoPreference mVideoPreference;
private PreferenceViewHolder mPreferenceViewHolder;
@@ -73,6 +77,7 @@
new MediaAnimationController(mContext, R.raw.accessibility_screen_magnification));
mVideoPreference = new VideoPreference(mContext, null /* attrs */);
mVideoPreference.mAnimationController = mAnimationController;
+ mVideoPreference.mAnimationView = mAnimationView;
when(mAnimationController.getVideoWidth()).thenReturn(VIDEO_WIDTH);
when(mAnimationController.getVideoHeight()).thenReturn(VIDEO_HEIGHT);
@@ -157,6 +162,13 @@
assertThat(vp2.mAnimationController instanceof VectorAnimationController).isTrue();
}
+ @Test
+ public void setBackgroundColor_shouldBeCalled() {
+ mVideoPreference.setBackgroundColor(1111);
+
+ assertThat(mVideoPreference.mBackgroundResId).isEqualTo(1111);
+ }
+
public static class TestFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {