mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-08 23:07:26 -04:00
Move WebViewClient init to KiwixWebView
This commit is contained in:
parent
3f9149d640
commit
1bb65fa8b8
@ -594,9 +594,7 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
||||
}
|
||||
|
||||
private KiwixWebView newTab(String url) {
|
||||
KiwixWebView webView = new KiwixWebView(KiwixMobileActivity.this);
|
||||
webView.setWebViewClient(new KiwixWebViewClient(this));
|
||||
webView.setWebChromeClient(new KiwixWebChromeClient(this));
|
||||
KiwixWebView webView = new KiwixWebView(KiwixMobileActivity.this, this);
|
||||
webView.loadUrl(url);
|
||||
webView.loadPrefs();
|
||||
|
||||
@ -609,14 +607,7 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
||||
}
|
||||
|
||||
private void newTabInBackground(String url) {
|
||||
KiwixWebView webView = new KiwixWebView(KiwixMobileActivity.this);
|
||||
webView.setWebChromeClient(new KiwixWebChromeClient(this) {
|
||||
@Override
|
||||
public void onReceivedTitle(WebView view, String sTitle) {
|
||||
super.onReceivedTitle(view, sTitle);
|
||||
tabDrawerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
});
|
||||
KiwixWebView webView = new KiwixWebView(KiwixMobileActivity.this, this);
|
||||
webView.loadUrl(url);
|
||||
webView.loadPrefs();
|
||||
mWebViews.add(webView);
|
||||
@ -1532,6 +1523,10 @@ public class KiwixMobileActivity extends AppCompatActivity implements WebViewCal
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void webViewTitleUpdated(String title) {
|
||||
tabDrawerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void selectSettings() {
|
||||
final String zimFile = ZimContentProvider.getZimFile();
|
||||
Intent i = new Intent(this, KiwixSettingsActivity.class);
|
||||
|
@ -3,7 +3,7 @@ package org.kiwix.kiwixmobile;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebView;
|
||||
|
||||
class KiwixWebChromeClient extends WebChromeClient {
|
||||
public class KiwixWebChromeClient extends WebChromeClient {
|
||||
|
||||
private WebViewCallback callback;
|
||||
|
||||
@ -15,4 +15,9 @@ class KiwixWebChromeClient extends WebChromeClient {
|
||||
public void onProgressChanged(WebView view, int progress) {
|
||||
callback.webViewProgressChanged(progress);
|
||||
}
|
||||
|
||||
@Override public void onReceivedTitle(WebView view, String title) {
|
||||
super.onReceivedTitle(view, title);
|
||||
callback.webViewTitleUpdated(title);
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import android.widget.LinearLayout;
|
||||
import java.util.HashMap;
|
||||
import org.kiwix.kiwixmobile.settings.Constants;
|
||||
|
||||
class KiwixWebViewClient extends WebViewClient {
|
||||
public class KiwixWebViewClient extends WebViewClient {
|
||||
|
||||
private static final HashMap<String, String> DOCUMENT_TYPES = new HashMap<String, String>() {{
|
||||
put("epub", "application/epub+zip");
|
||||
@ -72,7 +72,8 @@ class KiwixWebViewClient extends WebViewClient {
|
||||
} else if (!Constants.IS_CUSTOM_APP) {
|
||||
LayoutInflater inflater = LayoutInflater.from(view.getContext());
|
||||
help = (LinearLayout) inflater.inflate(R.layout.help, null);
|
||||
help.findViewById(R.id.get_content_card).setOnClickListener(card -> callback.manageZimFiles(1));
|
||||
help.findViewById(R.id.get_content_card)
|
||||
.setOnClickListener(card -> callback.manageZimFiles(1));
|
||||
view.addView(help);
|
||||
}
|
||||
callback.webViewUrlFinishedLoading();
|
||||
|
@ -16,4 +16,6 @@ public interface WebViewCallback {
|
||||
void manageZimFiles(int tab);
|
||||
|
||||
void webViewProgressChanged(int progress);
|
||||
|
||||
void webViewTitleUpdated(String title);
|
||||
}
|
||||
|
@ -19,8 +19,6 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.views;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
@ -30,24 +28,22 @@ import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||
import org.kiwix.kiwixmobile.KiwixWebChromeClient;
|
||||
import org.kiwix.kiwixmobile.KiwixWebViewClient;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.WebViewCallback;
|
||||
|
||||
public class KiwixWebView extends WebView {
|
||||
|
||||
@ -61,6 +57,7 @@ public class KiwixWebView extends WebView {
|
||||
0, 0, -1.0f, 0, 255, // blue
|
||||
0, 0, 0, 1.0f, 0 // alpha
|
||||
};
|
||||
private WebViewCallback callback;
|
||||
|
||||
private OnPageChangeListener mChangeListener;
|
||||
|
||||
@ -87,7 +84,8 @@ public class KiwixWebView extends WebView {
|
||||
|
||||
File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP && kiwixMobileActivity.getExternalMediaDirs().length > 0) {
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP
|
||||
&& kiwixMobileActivity.getExternalMediaDirs().length > 0) {
|
||||
root = kiwixMobileActivity.getExternalMediaDirs()[0];
|
||||
}
|
||||
|
||||
@ -125,16 +123,11 @@ public class KiwixWebView extends WebView {
|
||||
}
|
||||
};
|
||||
|
||||
public KiwixWebView(Context context) {
|
||||
public KiwixWebView(Context context, WebViewCallback callback) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public KiwixWebView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public KiwixWebView(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
this.callback = callback;
|
||||
setWebViewClient(new KiwixWebViewClient(callback));
|
||||
setWebChromeClient(new KiwixWebChromeClient(callback));
|
||||
}
|
||||
|
||||
public void loadPrefs() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user