Skip to content

Commit 2d7c9c4

Browse files
committed
Moved some WebView config code from EditorFragment to EditorWebViewAbstract
1 parent c5882ba commit 2d7c9c4

File tree

2 files changed

+42
-31
lines changed

2 files changed

+42
-31
lines changed

WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,11 @@
44
import android.app.Activity;
55
import android.os.Build;
66
import android.os.Bundle;
7-
import android.support.annotation.NonNull;
87
import android.text.Spanned;
98
import android.view.LayoutInflater;
109
import android.view.View;
1110
import android.view.ViewGroup;
12-
import android.webkit.ConsoleMessage;
13-
import android.webkit.JsResult;
14-
import android.webkit.WebChromeClient;
15-
import android.webkit.WebSettings;
1611
import android.webkit.WebView;
17-
import android.webkit.WebViewClient;
1812
import android.widget.ToggleButton;
1913

2014
import com.android.volley.toolbox.ImageLoader;
@@ -79,7 +73,7 @@ public void onCreate(Bundle savedInstanceState) {
7973
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
8074
View view = inflater.inflate(R.layout.fragment_editor, container, false);
8175
mWebView = (EditorWebViewAbstract) view.findViewById(R.id.webview);
82-
initWebView();
76+
initJsEditor();
8377

8478
ToggleButton mediaButton = (ToggleButton) view.findViewById(R.id.format_bar_button_media);
8579
mTagToggleButtonMap.put(TAG_FORMAT_BAR_BUTTON_MEDIA, mediaButton);
@@ -117,30 +111,7 @@ public void onDetach() {
117111
super.onDetach();
118112
}
119113

120-
@SuppressLint("SetJavaScriptEnabled")
121-
private void initWebView() {
122-
WebSettings webSettings = mWebView.getSettings();
123-
webSettings.setJavaScriptEnabled(true);
124-
webSettings.setDefaultTextEncodingName("utf-8");
125-
mWebView.setWebViewClient(new WebViewClient() {
126-
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
127-
AppLog.e(T.EDITOR, description);
128-
}
129-
});
130-
mWebView.setWebChromeClient(new WebChromeClient() {
131-
@Override
132-
public boolean onConsoleMessage(@NonNull ConsoleMessage cm) {
133-
AppLog.d(T.EDITOR, cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId());
134-
return true;
135-
}
136-
137-
@Override
138-
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
139-
AppLog.d(T.EDITOR, message);
140-
return true;
141-
}
142-
});
143-
114+
private void initJsEditor() {
144115
String htmlEditor = Utils.getHtmlFromFile(mActivity, "android-editor.html");
145116

146117
mWebView.addJavascriptInterface(new JsCallbackReceiver(this), JS_CALLBACK_HANDLER);

WordPressEditor/src/main/java/org/wordpress/android/editor/EditorWebViewAbstract.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,54 @@
11
package org.wordpress.android.editor;
22

3+
import android.annotation.SuppressLint;
34
import android.content.Context;
5+
import android.support.annotation.NonNull;
46
import android.util.AttributeSet;
7+
import android.webkit.ConsoleMessage;
8+
import android.webkit.JsResult;
9+
import android.webkit.WebChromeClient;
10+
import android.webkit.WebSettings;
511
import android.webkit.WebView;
12+
import android.webkit.WebViewClient;
613

14+
import org.wordpress.android.util.AppLog;
15+
16+
/**
17+
* A text editor WebView with support for JavaScript execution.
18+
*/
719
public abstract class EditorWebViewAbstract extends WebView {
820
public abstract void execJavaScriptFromString(String javaScript);
921

1022
public EditorWebViewAbstract(Context context, AttributeSet attrs) {
1123
super(context, attrs);
24+
configureWebView();
25+
}
26+
27+
@SuppressLint("SetJavaScriptEnabled")
28+
private void configureWebView() {
29+
WebSettings webSettings = this.getSettings();
30+
webSettings.setJavaScriptEnabled(true);
31+
webSettings.setDefaultTextEncodingName("utf-8");
32+
33+
this.setWebViewClient(new WebViewClient() {
34+
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
35+
AppLog.e(AppLog.T.EDITOR, description);
36+
}
37+
});
38+
39+
this.setWebChromeClient(new WebChromeClient() {
40+
@Override
41+
public boolean onConsoleMessage(@NonNull ConsoleMessage cm) {
42+
AppLog.d(AppLog.T.EDITOR, cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId());
43+
return true;
44+
}
45+
46+
@Override
47+
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
48+
AppLog.d(AppLog.T.EDITOR, message);
49+
return true;
50+
}
51+
});
1252
}
1353

1454
@Override

0 commit comments

Comments
 (0)