Commit 22d34c20 authored by Finnur Thorarinsson's avatar Finnur Thorarinsson Committed by Commit Bot

[Android] Photo Picker: Refactor Video Player out of PickerCategoryView.

This CL creates a custom View (PickerVideoPlayer) to encapsulate the
code in PickerCategoryView that relates to playing videos. The xml
components have already been factored out to a separate xml, and this
moves the corresponding Java code to a separate class also.

Bug: 895776, 656015
Change-Id: I4435f3a02bf18bc7c1afb35f35f34cb156908544
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2016649
Commit-Queue: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735819}
parent c33a2044
......@@ -1316,6 +1316,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapView.java",
"java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java",
"java/src/org/chromium/chrome/browser/photo_picker/PickerCategoryView.java",
"java/src/org/chromium/chrome/browser/photo_picker/PickerVideoPlayer.java",
"java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
"java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
"java/src/org/chromium/chrome/browser/prerender/ExternalPrerenderHandler.java",
......
......@@ -28,5 +28,11 @@
app:srcCompat="@drawable/zoom_in"
android:visibility="gone" />
<include layout="@layout/video_player" />
<org.chromium.chrome.browser.photo_picker.PickerVideoPlayer
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/playback_container"
android:background="@android:color/black"
android:clickable="true"
android:visibility="gone" />
</org.chromium.ui.widget.OptimizedFrameLayout>
\ No newline at end of file
......@@ -3,15 +3,8 @@
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/playback_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:clickable="true"
android:visibility="gone">
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<VideoView
android:id="@+id/video_player"
......@@ -72,4 +65,4 @@
style="@style/PhotoPicker.SeekBar" />
</FrameLayout>
</FrameLayout>
</FrameLayout>
</merge>
......@@ -52,7 +52,7 @@ import java.util.concurrent.TimeUnit;
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
public class PhotoPickerDialogTest implements PhotoPickerListener, SelectionObserver<PickerBitmap>,
DecoderServiceHost.ServiceReadyCallback,
PickerCategoryView.VideoPlaybackStatusCallback,
PickerVideoPlayer.VideoPlaybackStatusCallback,
AnimationListener {
// The timeout (in seconds) to wait for the decoder service to be ready.
private static final long WAIT_TIMEOUT_SECONDS = 30L;
......@@ -110,7 +110,7 @@ public class PhotoPickerDialogTest implements PhotoPickerListener, SelectionObse
mTestFiles.add(new PickerBitmap(Uri.parse("e"), 1L, PickerBitmap.TileTypes.PICTURE));
mTestFiles.add(new PickerBitmap(Uri.parse("f"), 0L, PickerBitmap.TileTypes.PICTURE));
PickerCategoryView.setTestFiles(mTestFiles);
PickerCategoryView.setProgressCallback(this);
PickerVideoPlayer.setProgressCallback(this);
PickerBitmapView.setAnimationListenerForTest(this);
DecoderServiceHost.setReadyCallback(this);
......@@ -357,7 +357,7 @@ public class PhotoPickerDialogTest implements PhotoPickerListener, SelectionObse
TestThreadUtils.runOnUiThreadBlocking(() -> {
View mute = categoryView.findViewById(R.id.mute);
categoryView.onClick(mute);
categoryView.getVideoPlayerForTesting().onClick(mute);
});
// Clicking the play button should restart playback.
......@@ -365,7 +365,7 @@ public class PhotoPickerDialogTest implements PhotoPickerListener, SelectionObse
TestThreadUtils.runOnUiThreadBlocking(() -> {
View playbutton = categoryView.findViewById(R.id.video_player_play_button);
categoryView.onClick(playbutton);
categoryView.getVideoPlayerForTesting().onClick(playbutton);
});
onVideoEndedCallback.waitForCallback(callCount, 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment