]> gitweb.fperrin.net Git - Dictionary.git/blob - src/com/hughes/android/dictionary/MyWebView.java
Avoid deprecation warnings.
[Dictionary.git] / src / com / hughes / android / dictionary / MyWebView.java
1
2 package com.hughes.android.dictionary;
3
4 import android.app.Activity;
5 import android.content.Context;
6 import android.content.Intent;
7 import android.util.AttributeSet;
8 import android.util.Log;
9 import android.view.ContextMenu;
10 import android.webkit.WebView;
11 import android.webkit.WebViewClient;
12
13 import com.hughes.android.dictionary.engine.HtmlEntry;
14 import com.hughes.util.StringUtil;
15
16 public class MyWebView extends WebView {
17
18     private static final String LOG = "MyWebView";
19
20     HtmlDisplayActivity activity;
21
22     private static void quickdicUrlToIntent(final String url, final Intent intent) {
23         int firstColon = url.indexOf("?");
24         if (firstColon == -1)
25             return;
26         int secondColon = url.indexOf("&", firstColon + 1);
27         if (secondColon == -1)
28             return;
29         intent.putExtra(C.SEARCH_TOKEN, StringUtil.decodeFromUrl(url.substring(secondColon + 1)));
30     }
31
32     public MyWebView(Context context) {
33         super(context);
34     }
35
36     public MyWebView(Context context, AttributeSet attrs) {
37         super(context, attrs);
38         getSettings().setSupportZoom(true);
39         getSettings().setBuiltInZoomControls(true);
40         // TODO: check why AUTO does not work and consider using it (API 29/Android 10 only)
41         //getSettings().setForceDark(WebSettings.FORCE_DARK_ON);
42
43         final WebViewClient webViewClient = new WebViewClient() {
44             @Override
45             @SuppressWarnings("deprecation")
46             public boolean shouldOverrideUrlLoading(WebView view, String url) {
47                 if (HtmlEntry.isQuickdicUrl(url)) {
48                     Log.d(LOG, "Handling Quickdic URL: " + url);
49                     final Intent result = new Intent();
50                     quickdicUrlToIntent(url, result);
51                     Log.d(LOG, "SEARCH_TOKEN=" + result.getStringExtra(C.SEARCH_TOKEN));
52                     activity.setResult(Activity.RESULT_OK, result);
53                     activity.finish();
54                     return true;
55                 }
56                 return super.shouldOverrideUrlLoading(view, url);
57             }
58         };
59         setWebViewClient(webViewClient);
60     }
61
62     @Override
63     public void onCreateContextMenu(ContextMenu menu) {
64         super.onCreateContextMenu(menu);
65     }
66
67 }