Upstream version 6.35.132.0
[platform/framework/web/crosswalk.git] / src / xwalk / runtime / android / runtime / src / org / xwalk / runtime / XWalkCoreProviderImpl.java
1 // Copyright (c) 2013-2014 Intel Corporation. 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.xwalk.runtime;
6
7 import android.app.Activity;
8 import android.content.Context;
9 import android.content.Intent;
10 import android.view.KeyEvent;
11 import android.view.View;
12 import android.widget.FrameLayout;
13
14 import org.chromium.content.browser.LoadUrlParams;
15 import org.xwalk.core.XWalkView;
16 import org.xwalk.core.XWalkPreferences;
17
18 /**
19  * The implementation class for runtime core. It calls the methods provided
20  * by runtime core and customizes the behaviors for runtime.
21  */
22 class XWalkCoreProviderImpl implements XWalkRuntimeViewProvider {
23     private Context mContext;
24     private Activity mActivity;
25     private XWalkView mXWalkView;
26
27     public XWalkCoreProviderImpl(Context context, Activity activity) {
28         mContext = context;
29         mActivity = activity;
30         init(context, activity);
31     }
32
33     private void init(Context context, Activity activity) {
34         // TODO(yongsheng): do customizations for XWalkView. There will
35         // be many callback classes which are needed to be implemented.
36         mXWalkView = new XWalkView(context, activity);
37     }
38
39     @Override
40     public void loadAppFromUrl(String url) {
41         mXWalkView.load(url, null);
42     }
43
44     @Override
45     public void loadAppFromManifest(String manifestUrl) {
46         mXWalkView.loadAppFromManifest(manifestUrl, null);
47     }
48
49     @Override
50     public void onCreate() {
51     }
52
53     @Override
54     public void onResume() {
55         mXWalkView.resumeTimers();
56         mXWalkView.onShow();
57     }
58
59     @Override
60     public void onPause() {
61         mXWalkView.pauseTimers();
62         mXWalkView.onHide();
63     }
64
65     @Override
66     public void onDestroy() {
67         mXWalkView.onDestroy();
68     }
69
70     @Override
71     public void onActivityResult(int requestCode, int resultCode, Intent data) {
72         mXWalkView.onActivityResult(requestCode, resultCode, data);
73     }
74
75     @Override
76     public boolean onNewIntent(Intent intent) {
77         return mXWalkView.onNewIntent(intent);
78     }
79
80     @Override
81     public void enableRemoteDebugging(String frontEndUrl, String socketName) {
82         // TODO(yongsheng): Enable two parameters once they're supported in XWalkView.
83         XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
84     }
85
86     @Override
87     public void disableRemoteDebugging() {
88         XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, false);
89     }
90
91     @Override
92     public String getVersion() {
93         return mXWalkView.getXWalkVersion();
94     }
95
96     @Override
97     public View getView() {
98         return mXWalkView;
99     }
100
101     // For instrumentation test.
102     @Override
103     public String getTitleForTest() {
104         return mXWalkView.getTitle();
105     }
106
107     @Override
108     public void setCallbackForTest(Object callback) {
109         XWalkRuntimeTestHelper testHelper = new XWalkRuntimeTestHelper(mContext, mXWalkView);
110         testHelper.setCallbackForTest(callback);
111         mXWalkView.setXWalkClient(testHelper.getClient());
112         mXWalkView.setXWalkWebChromeClient(testHelper.getWebChromeClient());
113         mXWalkView.setResourceClient(testHelper.getResourceClient());
114     }
115
116     @Override
117     public void loadDataForTest(String data, String mimeType, boolean isBase64Encoded) {
118         mXWalkView.load("", data);
119     }
120
121     @Override
122     public boolean onKeyUp(int keyCode, KeyEvent event) {
123         return mXWalkView.onKeyUp(keyCode, event);
124     }
125 }