@capgo/inappbrowser 0.4.3 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,217 +22,241 @@ import java.util.Map;
22
22
 
23
23
  public class WebViewDialog extends Dialog {
24
24
 
25
- private WebView _webView;
26
- private Toolbar _toolbar;
27
- private Options _options;
28
- private boolean isInitialized = false;
29
-
30
- public WebViewDialog(Context context, int theme, Options options) {
31
- super(context, theme);
32
- this._options = options;
33
- this.isInitialized = false;
34
- }
25
+ private WebView _webView;
26
+ private Toolbar _toolbar;
27
+ private Options _options;
28
+ private boolean isInitialized = false;
35
29
 
36
- public void presentWebView() {
37
- requestWindowFeature(Window.FEATURE_NO_TITLE);
38
- setCancelable(true);
39
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
40
- setContentView(R.layout.activity_browser);
41
- getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
42
-
43
- this._webView = findViewById(R.id.browser_view);
44
-
45
- _webView.getSettings().setJavaScriptEnabled(true);
46
- _webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
47
- _webView.getSettings().setDatabaseEnabled(true);
48
- _webView.getSettings().setDomStorageEnabled(true);
49
- _webView.getSettings().setPluginState(android.webkit.WebSettings.PluginState.ON);
50
- _webView.getSettings().setLoadWithOverviewMode(true);
51
- _webView.getSettings().setUseWideViewPort(true);
52
-
53
- Map<String, String> requestHeaders = new HashMap<>();
54
- if (_options.getHeaders() != null) {
55
- Iterator<String> keys = _options.getHeaders().keys();
56
- while (keys.hasNext()) {
57
- String key = keys.next();
58
- if (TextUtils.equals(key, "User-Agent")) {
59
- _webView.getSettings().setUserAgentString(_options.getHeaders().getString(key));
60
- } else {
61
- requestHeaders.put(key, _options.getHeaders().getString(key));
62
- }
63
- }
64
- }
30
+ public WebViewDialog(Context context, int theme, Options options) {
31
+ super(context, theme);
32
+ this._options = options;
33
+ this.isInitialized = false;
34
+ }
65
35
 
66
- _webView.loadUrl(this._options.getUrl(), requestHeaders);
67
- _webView.requestFocus();
68
- _webView.requestFocusFromTouch();
36
+ public void presentWebView() {
37
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
38
+ setCancelable(true);
39
+ getWindow()
40
+ .setFlags(
41
+ WindowManager.LayoutParams.FLAG_FULLSCREEN,
42
+ WindowManager.LayoutParams.FLAG_FULLSCREEN
43
+ );
44
+ setContentView(R.layout.activity_browser);
45
+ getWindow()
46
+ .setLayout(
47
+ WindowManager.LayoutParams.MATCH_PARENT,
48
+ WindowManager.LayoutParams.MATCH_PARENT
49
+ );
69
50
 
70
- setupToolbar();
71
- setWebViewClient();
51
+ this._webView = findViewById(R.id.browser_view);
72
52
 
73
- if (!this._options.isPresentAfterPageLoad()) {
74
- show();
75
- _options.getPluginCall().resolve();
53
+ _webView.getSettings().setJavaScriptEnabled(true);
54
+ _webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
55
+ _webView.getSettings().setDatabaseEnabled(true);
56
+ _webView.getSettings().setDomStorageEnabled(true);
57
+ _webView
58
+ .getSettings()
59
+ .setPluginState(android.webkit.WebSettings.PluginState.ON);
60
+ _webView.getSettings().setLoadWithOverviewMode(true);
61
+ _webView.getSettings().setUseWideViewPort(true);
62
+
63
+ Map<String, String> requestHeaders = new HashMap<>();
64
+ if (_options.getHeaders() != null) {
65
+ Iterator<String> keys = _options.getHeaders().keys();
66
+ while (keys.hasNext()) {
67
+ String key = keys.next();
68
+ if (TextUtils.equals(key, "User-Agent")) {
69
+ _webView
70
+ .getSettings()
71
+ .setUserAgentString(_options.getHeaders().getString(key));
72
+ } else {
73
+ requestHeaders.put(key, _options.getHeaders().getString(key));
76
74
  }
75
+ }
77
76
  }
78
77
 
79
- public void setUrl(String url) {
80
- Map<String, String> requestHeaders = new HashMap<>();
81
- if (_options.getHeaders() != null) {
82
- Iterator<String> keys = _options.getHeaders().keys();
83
- while (keys.hasNext()) {
84
- String key = keys.next();
85
- if (TextUtils.equals(key, "User-Agent")) {
86
- _webView.getSettings().setUserAgentString(_options.getHeaders().getString(key));
87
- } else {
88
- requestHeaders.put(key, _options.getHeaders().getString(key));
89
- }
90
- }
78
+ _webView.loadUrl(this._options.getUrl(), requestHeaders);
79
+ _webView.requestFocus();
80
+ _webView.requestFocusFromTouch();
81
+
82
+ setupToolbar();
83
+ setWebViewClient();
84
+
85
+ if (!this._options.isPresentAfterPageLoad()) {
86
+ show();
87
+ _options.getPluginCall().resolve();
88
+ }
89
+ }
90
+
91
+ public void setUrl(String url) {
92
+ Map<String, String> requestHeaders = new HashMap<>();
93
+ if (_options.getHeaders() != null) {
94
+ Iterator<String> keys = _options.getHeaders().keys();
95
+ while (keys.hasNext()) {
96
+ String key = keys.next();
97
+ if (TextUtils.equals(key, "User-Agent")) {
98
+ _webView
99
+ .getSettings()
100
+ .setUserAgentString(_options.getHeaders().getString(key));
101
+ } else {
102
+ requestHeaders.put(key, _options.getHeaders().getString(key));
91
103
  }
92
- _webView.loadUrl(url, requestHeaders);
104
+ }
93
105
  }
106
+ _webView.loadUrl(url, requestHeaders);
107
+ }
108
+
109
+ private void setTitle(String newTitleText) {
110
+ TextView textView = (TextView) _toolbar.findViewById(R.id.titleText);
111
+ textView.setText(newTitleText);
112
+ }
94
113
 
95
- private void setTitle(String newTitleText) {
96
- TextView textView = (TextView) _toolbar.findViewById(R.id.titleText);
97
- textView.setText(newTitleText);
114
+ private void setupToolbar() {
115
+ _toolbar = this.findViewById(R.id.tool_bar);
116
+ if (!TextUtils.isEmpty(_options.getTitle())) {
117
+ this.setTitle(_options.getTitle());
118
+ } else {
119
+ try {
120
+ URI uri = new URI(_options.getUrl());
121
+ this.setTitle(uri.getHost());
122
+ } catch (URISyntaxException e) {
123
+ this.setTitle(_options.getTitle());
124
+ }
98
125
  }
99
126
 
100
- private void setupToolbar() {
101
- _toolbar = this.findViewById(R.id.tool_bar);
102
- if (!TextUtils.isEmpty(_options.getTitle())) {
103
- this.setTitle(_options.getTitle());
104
- } else {
105
- try {
106
- URI uri = new URI(_options.getUrl());
107
- this.setTitle(uri.getHost());
108
- } catch (URISyntaxException e) {
109
- this.setTitle(_options.getTitle());
110
- }
127
+ View backButton = _toolbar.findViewById(R.id.backButton);
128
+ backButton.setOnClickListener(
129
+ new View.OnClickListener() {
130
+ @Override
131
+ public void onClick(View view) {
132
+ if (_webView.canGoBack()) {
133
+ _webView.goBack();
134
+ }
111
135
  }
136
+ }
137
+ );
112
138
 
113
- View backButton = _toolbar.findViewById(R.id.backButton);
114
- backButton.setOnClickListener(
115
- new View.OnClickListener() {
116
- @Override
117
- public void onClick(View view) {
118
- if (_webView.canGoBack()) {
119
- _webView.goBack();
120
- }
121
- }
122
- }
123
- );
124
-
125
- View forwardButton = _toolbar.findViewById(R.id.forwardButton);
126
- forwardButton.setOnClickListener(
127
- new View.OnClickListener() {
128
- @Override
129
- public void onClick(View view) {
130
- if (_webView.canGoForward()) {
131
- _webView.goForward();
132
- }
133
- }
134
- }
135
- );
136
-
137
- View closeButton = _toolbar.findViewById(R.id.closeButton);
138
- closeButton.setOnClickListener(
139
- new View.OnClickListener() {
140
- @Override
141
- public void onClick(View view) {
142
- dismiss();
143
- _options.getCallbacks().closeEvent(_webView.getUrl());
144
- }
145
- }
146
- );
147
-
148
- if (TextUtils.equals(_options.getToolbarType(), "activity")) {
149
- _toolbar.findViewById(R.id.forwardButton).setVisibility(View.GONE);
150
- _toolbar.findViewById(R.id.backButton).setVisibility(View.GONE);
151
- //TODO: Add share button functionality
152
- } else if (TextUtils.equals(_options.getToolbarType(), "navigation")) {
153
- //TODO: Remove share button when implemented
154
- } else if (TextUtils.equals(_options.getToolbarType(), "blank")) {
155
- _toolbar.setVisibility(View.GONE);
156
- } else {
157
- _toolbar.findViewById(R.id.forwardButton).setVisibility(View.GONE);
158
- _toolbar.findViewById(R.id.backButton).setVisibility(View.GONE);
139
+ View forwardButton = _toolbar.findViewById(R.id.forwardButton);
140
+ forwardButton.setOnClickListener(
141
+ new View.OnClickListener() {
142
+ @Override
143
+ public void onClick(View view) {
144
+ if (_webView.canGoForward()) {
145
+ _webView.goForward();
146
+ }
147
+ }
148
+ }
149
+ );
150
+
151
+ View closeButton = _toolbar.findViewById(R.id.closeButton);
152
+ closeButton.setOnClickListener(
153
+ new View.OnClickListener() {
154
+ @Override
155
+ public void onClick(View view) {
156
+ dismiss();
157
+ _options.getCallbacks().closeEvent(_webView.getUrl());
159
158
  }
159
+ }
160
+ );
161
+
162
+ if (TextUtils.equals(_options.getToolbarType(), "activity")) {
163
+ _toolbar.findViewById(R.id.forwardButton).setVisibility(View.GONE);
164
+ _toolbar.findViewById(R.id.backButton).setVisibility(View.GONE);
165
+ //TODO: Add share button functionality
166
+ } else if (TextUtils.equals(_options.getToolbarType(), "navigation")) {
167
+ //TODO: Remove share button when implemented
168
+ } else if (TextUtils.equals(_options.getToolbarType(), "blank")) {
169
+ _toolbar.setVisibility(View.GONE);
170
+ } else {
171
+ _toolbar.findViewById(R.id.forwardButton).setVisibility(View.GONE);
172
+ _toolbar.findViewById(R.id.backButton).setVisibility(View.GONE);
160
173
  }
174
+ }
175
+
176
+ private void setWebViewClient() {
177
+ _webView.setWebViewClient(
178
+ new WebViewClient() {
179
+ @Override
180
+ public boolean shouldOverrideUrlLoading(
181
+ WebView view,
182
+ WebResourceRequest request
183
+ ) {
184
+ return false;
185
+ }
186
+
187
+ @Override
188
+ public void onLoadResource(WebView view, String url) {
189
+ super.onLoadResource(view, url);
190
+ }
191
+
192
+ @Override
193
+ public void onPageStarted(WebView view, String url, Bitmap favicon) {
194
+ super.onPageStarted(view, url, favicon);
195
+ try {
196
+ URI uri = new URI(url);
197
+ setTitle(uri.getHost());
198
+ } catch (URISyntaxException e) {
199
+ // Do nothing
200
+ }
201
+ _options.getCallbacks().urlChangeEvent(url);
202
+ }
161
203
 
162
- private void setWebViewClient() {
163
- _webView.setWebViewClient(
164
- new WebViewClient() {
165
- @Override
166
- public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
167
- return false;
168
- }
169
-
170
- @Override
171
- public void onLoadResource(WebView view, String url) {
172
- super.onLoadResource(view, url);
173
- }
174
-
175
- @Override
176
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
177
- super.onPageStarted(view, url, favicon);
178
- try {
179
- URI uri = new URI(url);
180
- setTitle(uri.getHost());
181
- } catch (URISyntaxException e) {
182
- // Do nothing
183
- }
184
- _options.getCallbacks().urlChangeEvent(url);
185
- }
186
-
187
- @Override
188
- public void onPageFinished(WebView view, String url) {
189
- super.onPageFinished(view, url);
190
- _options.getCallbacks().pageLoaded();
191
- if (!isInitialized) {
192
- isInitialized = true;
193
- _webView.clearHistory();
194
- if (_options.isPresentAfterPageLoad()) {
195
- show();
196
- _options.getPluginCall().resolve();
197
- }
198
- }
199
-
200
- ImageButton backButton = _toolbar.findViewById(R.id.backButton);
201
- if (_webView.canGoBack()) {
202
- backButton.setImageResource(R.drawable.arrow_back_enabled);
203
- backButton.setEnabled(true);
204
- } else {
205
- backButton.setImageResource(R.drawable.arrow_back_disabled);
206
- backButton.setEnabled(false);
207
- }
208
-
209
- ImageButton forwardButton = _toolbar.findViewById(R.id.forwardButton);
210
- if (_webView.canGoForward()) {
211
- forwardButton.setImageResource(R.drawable.arrow_forward_enabled);
212
- forwardButton.setEnabled(true);
213
- } else {
214
- forwardButton.setImageResource(R.drawable.arrow_forward_disabled);
215
- forwardButton.setEnabled(false);
216
- }
217
-
218
- _options.getCallbacks().pageLoaded();
219
- }
220
-
221
- @Override
222
- public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
223
- super.onReceivedError(view, request, error);
224
- _options.getCallbacks().pageLoadError();
225
- }
204
+ @Override
205
+ public void onPageFinished(WebView view, String url) {
206
+ super.onPageFinished(view, url);
207
+ _options.getCallbacks().pageLoaded();
208
+ if (!isInitialized) {
209
+ isInitialized = true;
210
+ _webView.clearHistory();
211
+ if (_options.isPresentAfterPageLoad()) {
212
+ show();
213
+ _options.getPluginCall().resolve();
226
214
  }
227
- );
228
- }
215
+ }
229
216
 
230
- @Override
231
- public void onBackPressed() {
232
- if (_webView.canGoBack() && TextUtils.equals(_options.getToolbarType(), "navigation")) {
233
- _webView.goBack();
234
- } else {
235
- super.onBackPressed();
217
+ ImageButton backButton = _toolbar.findViewById(R.id.backButton);
218
+ if (_webView.canGoBack()) {
219
+ backButton.setImageResource(R.drawable.arrow_back_enabled);
220
+ backButton.setEnabled(true);
221
+ } else {
222
+ backButton.setImageResource(R.drawable.arrow_back_disabled);
223
+ backButton.setEnabled(false);
224
+ }
225
+
226
+ ImageButton forwardButton = _toolbar.findViewById(R.id.forwardButton);
227
+ if (_webView.canGoForward()) {
228
+ forwardButton.setImageResource(R.drawable.arrow_forward_enabled);
229
+ forwardButton.setEnabled(true);
230
+ } else {
231
+ forwardButton.setImageResource(R.drawable.arrow_forward_disabled);
232
+ forwardButton.setEnabled(false);
233
+ }
234
+
235
+ _options.getCallbacks().pageLoaded();
236
+ }
237
+
238
+ @Override
239
+ public void onReceivedError(
240
+ WebView view,
241
+ WebResourceRequest request,
242
+ WebResourceError error
243
+ ) {
244
+ super.onReceivedError(view, request, error);
245
+ _options.getCallbacks().pageLoadError();
236
246
  }
247
+ }
248
+ );
249
+ }
250
+
251
+ @Override
252
+ public void onBackPressed() {
253
+ if (
254
+ _webView.canGoBack() &&
255
+ TextUtils.equals(_options.getToolbarType(), "navigation")
256
+ ) {
257
+ _webView.goBack();
258
+ } else {
259
+ super.onBackPressed();
237
260
  }
261
+ }
238
262
  }