X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FMyWebView.java;h=028ddbcdd964ec8e4df19bd38d245ce3a3ef766f;hb=6075de7ee940e23133cf187f44a525e19cccf038;hp=5f396978af57b951ba8f0151c9ffb6bdd2d2fbc3;hpb=6b8d93c656bd93ad26fa57a5f3a07cfb481d4e7d;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/MyWebView.java b/src/com/hughes/android/dictionary/MyWebView.java index 5f39697..028ddbc 100644 --- a/src/com/hughes/android/dictionary/MyWebView.java +++ b/src/com/hughes/android/dictionary/MyWebView.java @@ -1,20 +1,63 @@ + package com.hughes.android.dictionary; +import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.util.AttributeSet; +import android.util.Log; import android.view.ContextMenu; import android.webkit.WebView; +import android.webkit.WebViewClient; + +import com.hughes.android.dictionary.engine.HtmlEntry; +import com.hughes.util.StringUtil; public class MyWebView extends WebView { + private static final String LOG = "MyWebView"; + + HtmlDisplayActivity activity; + + private static void quickdicUrlToIntent(final String url, final Intent intent) { + int firstColon = url.indexOf("?"); + if (firstColon == -1) + return; + int secondColon = url.indexOf("&", firstColon + 1); + if (secondColon == -1) + return; + intent.putExtra(C.SEARCH_TOKEN, StringUtil.decodeFromUrl(url.substring(secondColon + 1))); + } + public MyWebView(Context context) { super(context); } - + public MyWebView(Context context, AttributeSet attrs) { super(context, attrs); - } + getSettings().setSupportZoom(true); + getSettings().setBuiltInZoomControls(true); + // TODO: check why AUTO does not work and consider using it (API 29/Android 10 only) + //getSettings().setForceDark(WebSettings.FORCE_DARK_ON); + final WebViewClient webViewClient = new WebViewClient() { + @Override + @SuppressWarnings("deprecation") + public boolean shouldOverrideUrlLoading(WebView view, String url) { + if (HtmlEntry.isQuickdicUrl(url)) { + Log.d(LOG, "Handling Quickdic URL: " + url); + final Intent result = new Intent(); + quickdicUrlToIntent(url, result); + Log.d(LOG, "SEARCH_TOKEN=" + result.getStringExtra(C.SEARCH_TOKEN)); + activity.setResult(Activity.RESULT_OK, result); + activity.finish(); + return true; + } + return super.shouldOverrideUrlLoading(view, url); + } + }; + setWebViewClient(webViewClient); + } @Override public void onCreateContextMenu(ContextMenu menu) {