Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / android_webview / javatests / src / org / chromium / android_webview / test / FullScreenVideoTestAwContentsClient.java
1 // Copyright 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 static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
16
17 import org.chromium.content.browser.test.util.CallbackHelper;
18
19 import java.util.concurrent.TimeUnit;
20 import java.util.concurrent.TimeoutException;
21
22 /**
23  * This class is a AwContentsClient for full screen video test.
24  */
25 public class FullScreenVideoTestAwContentsClient extends TestAwContentsClient {
26     public static final long WAITING_SECONDS = scaleTimeout(20);
27     private CallbackHelper mOnShowCustomViewCallbackHelper = new CallbackHelper();
28     private CallbackHelper mOnHideCustomViewCallbackHelper = new CallbackHelper();
29
30     private Activity mActivity;
31
32     public FullScreenVideoTestAwContentsClient(Activity activity) {
33         mActivity = activity;
34     }
35
36     @Override
37     public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {
38         mActivity.getWindow().setFlags(
39                 WindowManager.LayoutParams.FLAG_FULLSCREEN,
40                 WindowManager.LayoutParams.FLAG_FULLSCREEN);
41
42         mActivity.getWindow().addContentView(view,
43                 new FrameLayout.LayoutParams(
44                         ViewGroup.LayoutParams.MATCH_PARENT,
45                         ViewGroup.LayoutParams.MATCH_PARENT,
46                         Gravity.CENTER));
47         mOnShowCustomViewCallbackHelper.notifyCalled();
48     }
49
50     @Override
51     public void onHideCustomView() {
52         mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
53         mOnHideCustomViewCallbackHelper.notifyCalled();
54     }
55
56     public void waitForCustomViewShown() throws TimeoutException, InterruptedException {
57         mOnShowCustomViewCallbackHelper.waitForCallback(0, 1, WAITING_SECONDS, TimeUnit.SECONDS);
58     }
59
60     public void waitForCustomViewHidden() throws InterruptedException, TimeoutException {
61         mOnHideCustomViewCallbackHelper.waitForCallback(0, 1, WAITING_SECONDS, TimeUnit.SECONDS);
62     }
63 }