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