1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko;
import org.mozilla.gecko.util.ActivityUtils;
import org.mozilla.gecko.util.HardwareUtils;
import org.mozilla.gecko.util.ThreadUtils;
import android.app.Activity;
import android.content.Context;
import android.graphics.RectF;
import android.hardware.SensorEventListener;
import android.location.LocationListener;
import android.view.View;
import android.widget.AbsoluteLayout;
public class BaseGeckoInterface implements GeckoAppShell.GeckoInterface {
// Bug 908744: Implement GeckoEventListener
// Bug 908752: Implement SensorEventListener
// Bug 908755: Implement LocationListener
// Bug 908756: Implement Tabs.OnTabsChangedListener
// Bug 908760: Implement GeckoEventResponder
private final Context mContext;
private GeckoProfile mProfile;
private final EventDispatcher eventDispatcher;
public BaseGeckoInterface(Context context) {
mContext = context;
eventDispatcher = new EventDispatcher();
}
@Override
public EventDispatcher getAppEventDispatcher() {
return eventDispatcher;
}
@Override
public GeckoProfile getProfile() {
// Fall back to default profile if we didn't load a specific one
if (mProfile == null) {
mProfile = GeckoProfile.get(mContext);
}
return mProfile;
}
@Override
public Activity getActivity() {
return (Activity)mContext;
}
@Override
public String getDefaultUAString() {
return HardwareUtils.isTablet() ? AppConstants.USER_AGENT_FENNEC_TABLET :
AppConstants.USER_AGENT_FENNEC_MOBILE;
}
// Bug 908775: Implement this
@Override
public void doRestart() {}
@Override
public void setFullScreen(final boolean fullscreen) {
ThreadUtils.postToUiThread(new Runnable() {
@Override
public void run() {
ActivityUtils.setFullScreen(getActivity(), fullscreen);
}
});
}
// Bug 908779: Implement this
@Override
public void addPluginView(final View view) {}
// Bug 908781: Implement this
@Override
public void removePluginView(final View view) {}
@Override
public void enableOrientationListener() {}
@Override
public void disableOrientationListener() {}
// Bug 908786: Implement this
@Override
public void addAppStateListener(GeckoAppShell.AppStateListener listener) {}
// Bug 908787: Implement this
@Override
public void removeAppStateListener(GeckoAppShell.AppStateListener listener) {}
// Bug 908789: Implement this
@Override
public void notifyWakeLockChanged(String topic, String state) {}
@Override
public boolean areTabsShown() {
return false;
}
// Bug 908791: Implement this
@Override
public AbsoluteLayout getPluginContainer() {
return null;
}
@Override
public void notifyCheckUpdateResult(String result) {
GeckoAppShell.notifyObservers("Update:CheckResult", result);
}
// Bug 908792: Implement this
@Override
public void invalidateOptionsMenu() {}
@Override
public void createShortcut(String title, String URI) {
// By default, do nothing.
}
@Override
public void checkUriVisited(String uri) {
// By default, no URIs are considered visited.
}
@Override
public void markUriVisited(final String uri) {
// By default, no URIs are marked as visited.
}
@Override
public void setUriTitle(final String uri, final String title) {
// By default, no titles are associated with URIs.
}
@Override
public void setAccessibilityEnabled(boolean enabled) {
// By default, take no action when accessibility is toggled on or off.
}
@Override
public boolean openUriExternal(String targetURI, String mimeType, String packageName, String className, String action, String title) {
// By default, never open external URIs.
return false;
}
@Override
public String[] getHandlersForMimeType(String mimeType, String action) {
// By default, offer no handlers for any MIME type.
return new String[] {};
}
@Override
public String[] getHandlersForURL(String url, String action) {
// By default, offer no handlers for any URL.
return new String[] {};
}
@Override
public String getDefaultChromeURI() {
// By default, use the GeckoView-specific chrome URI.
return "chrome://browser/content/geckoview.xul";
}
}
|