1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. |
4 | |
5 | package org.chromium.android_webview.test; |
6 | |
7 | import android.app.Activity; |
8 | import android.view.Gravity; |
9 | import android.view.View; |
10 | import android.view.ViewGroup; |
11 | import android.view.WindowManager; |
12 | import android.webkit.WebChromeClient; |
13 | import android.widget.FrameLayout; |
14 | |
15 | import org.chromium.content.browser.test.util.CallbackHelper; |
16 | |
17 | import java.util.concurrent.TimeUnit; |
18 | import java.util.concurrent.TimeoutException; |
19 | |
20 | /** |
21 | * This class is a AwContentsClient for full screen video test. |
22 | */ |
23 | public class FullScreenVideoTestAwContentsClient extends TestAwContentsClient { |
24 | public final static int WAITING_SECONDS = 20; |
25 | private CallbackHelper mOnShowCustomViewCallbackHelper = new CallbackHelper(); |
26 | private CallbackHelper mOnHideCustomViewCallbackHelper = new CallbackHelper(); |
27 | |
28 | private Activity mActivity; |
29 | |
30 | public FullScreenVideoTestAwContentsClient(Activity activity) { |
31 | mActivity = activity; |
32 | } |
33 | |
34 | @Override |
35 | public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) { |
36 | mActivity.getWindow().setFlags( |
37 | WindowManager.LayoutParams.FLAG_FULLSCREEN, |
38 | WindowManager.LayoutParams.FLAG_FULLSCREEN); |
39 | |
40 | mActivity.getWindow().addContentView(view, |
41 | new FrameLayout.LayoutParams( |
42 | ViewGroup.LayoutParams.MATCH_PARENT, |
43 | ViewGroup.LayoutParams.MATCH_PARENT, |
44 | Gravity.CENTER)); |
45 | mOnShowCustomViewCallbackHelper.notifyCalled(); |
46 | } |
47 | |
48 | @Override |
49 | public void onHideCustomView() { |
50 | mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); |
51 | mOnHideCustomViewCallbackHelper.notifyCalled(); |
52 | } |
53 | |
54 | public void waitForCustomViewShown() throws TimeoutException, InterruptedException { |
55 | mOnShowCustomViewCallbackHelper.waitForCallback(0, 1, WAITING_SECONDS, TimeUnit.SECONDS); |
56 | } |
57 | |
58 | public void waitForCustomViewHidden() throws InterruptedException, TimeoutException { |
59 | mOnHideCustomViewCallbackHelper.waitForCallback(0, 1, WAITING_SECONDS, TimeUnit.SECONDS); |
60 | } |
61 | } |