diff --git a/README.md b/README.md index ac0a4c2..1383d21 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Android:海天鹰浏览器 -基于 Android WebView 组件的浏览器,支持收藏夹、图片广告过滤。 +基于 Android WebView 组件的浏览器,支持收藏夹、图片广告过滤、视频独立播放。 ### 主界面 ![alt](preview.png) \ No newline at end of file diff --git a/app-debug.apk b/app-debug.apk index e22308d..119270f 100644 Binary files a/app-debug.apk and b/app-debug.apk differ diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml index 68a665d..c7252d3 100644 --- a/main/AndroidManifest.xml +++ b/main/AndroidManifest.xml @@ -2,7 +2,7 @@ + android:versionName="3.5"> 海天鹰浏览器 -


海天鹰浏览器 V3.4

+


海天鹰浏览器 V3.6

内置扩展的浏览器。

-

扩展:[查看图片]文字链接转图片,广告图片自定义过滤。

+

扩展:[国产]高亮,广告图片自定义过滤。

作者:黄颖

E-mail:sonichy@163.com

QQ:84429027

更新日志:

+

V3.6 (2018-05-30)

  1. 修复从收藏夹返回输入法不能自动隐藏的问题。
+

V3.5 (2018-04-25)

  1. 收藏夹支持搜索。

V3.4 (2018-03-13)

  1. 增加视频独立播放。
  2. 使用系统下载取代浏览器跳转下载、图片下载,并增加链接下载

V3.3 (2018-01)

  1. 增加分享菜单。
  2. 增加:视频全屏禁用屏幕休眠。
  3. 解决网页跳转APP协议问题。

V3.2 (2017-12-17)

  1. 修复:关闭查找框,高亮不消失的问题。
  2. 增加过滤iframe。
  3. 修复:EditTextPreference没有设置defaultValue,引起第一次运行点击主页菜单崩溃。
diff --git a/main/java/com/hty/browser/DBHelper.java b/main/java/com/hty/browser/DBHelper.java index 2cf4143..bc0a50d 100644 --- a/main/java/com/hty/browser/DBHelper.java +++ b/main/java/com/hty/browser/DBHelper.java @@ -53,14 +53,14 @@ public class DBHelper extends SQLiteOpenHelper { db.close(); } - public Cursor query(String url) { + public Cursor query(String s) { db = getWritableDatabase(); Cursor c = null; - if (url.equalsIgnoreCase("")) { + if (s.equals("")) { c = db.query(TableName, null, null, null, null, null, "_id desc"); } else { - c = db.query(TableName, null, "website=?", new String[] { url }, null, null, "_id desc"); - } + c = db.query(TableName, null, "website LIKE '%" + s + "%' or title LIKE '%" + s + "%'", null, null, null, "_id desc"); + } return c; } diff --git a/main/java/com/hty/browser/FavoriteActivity.java b/main/java/com/hty/browser/FavoriteActivity.java index ec2de7b..1516a43 100644 --- a/main/java/com/hty/browser/FavoriteActivity.java +++ b/main/java/com/hty/browser/FavoriteActivity.java @@ -3,19 +3,26 @@ package com.hty.browser; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; +import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.MenuItem; import android.view.View; import android.view.View.OnCreateContextMenuListener; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; +import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; @@ -24,42 +31,19 @@ import android.widget.Toast; public class FavoriteActivity extends Activity { SimpleCursorAdapter adapter; ListView listView; + EditText editText; + InputMethodManager IMM; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_favorite); - DBHelper helper = new DBHelper(this); - Cursor c = helper.query(""); - String[] from = { "_id", "title", "website" }; - int[] to = { R.id.id, R.id.title, R.id.website }; - adapter = new SimpleCursorAdapter(this, R.layout.favorite_row, c, from, to, 0); - listView = (ListView) this.findViewById(R.id.listView1); - listView.setAdapter(adapter); - listView.setDivider(new ColorDrawable(Color.GREEN)); - listView.setDividerHeight(2); - listView.setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { - String url = ((TextView) arg1.findViewById(R.id.website)).getText().toString(); - Intent intent = new Intent(FavoriteActivity.this, MainActivity.class); - intent.putExtra("url", url); - setResult(RESULT_OK, intent); - finish(); - } - }); - - listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { - @Override - public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) { - AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; - String title = ((TextView) info.targetView.findViewById(R.id.title)).getText().toString(); - menu.setHeaderTitle(title); - menu.add(0, 0, 0, "复制链接"); - menu.add(0, 1, 1, "删除"); - } - }); - + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); + editText = (EditText) findViewById(R.id.editText); + editText.addTextChangedListener(new EditChangedListener()); + listView = (ListView) findViewById(R.id.listView1); + search(editText.getText().toString()); + IMM = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); } @Override @@ -73,11 +57,10 @@ public class FavoriteActivity extends Activity { Toast.makeText(getApplicationContext(), "链接已复制", Toast.LENGTH_SHORT).show(); break; case 1: - int id = Integer.parseInt(((TextView) menuInfo.targetView.findViewById(R.id.id)).getText() - .toString()); + int id = Integer.parseInt(((TextView) menuInfo.targetView.findViewById(R.id.id)).getText().toString()); DBHelper helper = new DBHelper(getApplicationContext()); helper.del(id); - Cursor c = helper.query(""); + Cursor c = helper.query(editText.getText().toString()); String[] from = { "_id", "title", "website" }; int[] to = { R.id.id, R.id.title, R.id.website }; adapter = new SimpleCursorAdapter(this, R.layout.favorite_row, c, from, to, 0); @@ -88,6 +71,59 @@ public class FavoriteActivity extends Activity { } public void favback(View v) { + IMM.hideSoftInputFromWindow(editText.getWindowToken(), 0); finish(); } + + void search(String s) { + DBHelper helper = new DBHelper(this); + Cursor c = helper.query(s); + String[] from = { "_id", "title", "website" }; + int[] to = { R.id.id, R.id.title, R.id.website }; + adapter = new SimpleCursorAdapter(this, R.layout.favorite_row, c, from, to, 0); + listView.setAdapter(adapter); + listView.setDivider(new ColorDrawable(Color.GREEN)); + listView.setDividerHeight(2); + listView.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { + String url = ((TextView) arg1.findViewById(R.id.website)).getText().toString(); + Intent intent = new Intent(FavoriteActivity.this, MainActivity.class); + intent.putExtra("url", url); + setResult(RESULT_OK, intent); + IMM.hideSoftInputFromWindow(editText.getWindowToken(), 0); + finish(); + } + }); + + listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { + @Override + public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) { + AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; + String title = ((TextView) info.targetView.findViewById(R.id.title)).getText().toString(); + menu.setHeaderTitle(title); + menu.add(0, 0, 0, "复制链接"); + menu.add(0, 1, 1, "删除"); + } + }); + } + + class EditChangedListener implements TextWatcher { + + @Override + public void beforeTextChanged(CharSequence s, int start, int count,int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + search(s.toString()); + } + } + } diff --git a/main/java/com/hty/browser/MainActivity.java b/main/java/com/hty/browser/MainActivity.java index ada98a6..793c636 100644 --- a/main/java/com/hty/browser/MainActivity.java +++ b/main/java/com/hty/browser/MainActivity.java @@ -63,7 +63,6 @@ import android.webkit.WebView; import android.webkit.WebView.FindListener; import android.webkit.WebView.HitTestResult; import android.webkit.WebViewClient; -import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.FrameLayout; @@ -96,7 +95,7 @@ public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); - + IMM = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); String path = Environment.getExternalStorageDirectory().getPath() + File.separator + "HTYBrowser"; dir = new File(path); if (!dir.exists()) { @@ -106,7 +105,7 @@ public class MainActivity extends Activity { //ptitle = "百度"; //urln = "http//www.baidu.com"; getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); - IMM = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); + LinearLayout1 = (LinearLayout) findViewById(R.id.LinearLayout1); LinearLayout2 = (LinearLayout) findViewById(R.id.LinearLayout2); // RelativeLayout1 = (RelativeLayout) @@ -194,14 +193,15 @@ public class MainActivity extends Activity { editText1.setText(url); urln = url; btnBack.setEnabled(true); + IMM.hideSoftInputFromWindow(editText1.getWindowToken(), 0); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); String js = ""; - // link2img,宽度适应浏览器 - js = "javascript:var obj=document.getElementsByTagName('a');var aimg=new Array();var dw=document.documentElement.clientWidth-10;var dh=document.documentElement.clientHeight;for(var i=0;idw){var text='';bl=(dw/iw).toFixed(2);this.style.width=dw+'px';this.style.height=dw*ih/iw+'px';text=' '+i+': W:'+dw+'/'+iw+'='+bl;this.style.border='1px solid blue';var span=document.createElement('span');span.textContent=text;span.setAttribute('style','white-space:nowrap;');this.parentNode.appendChild(span);}}})(i);}}"; + // 关键字链接高亮 + js = "javascript:var a=document.getElementsByTagName('a');for(var i=0;i - + + + - + - + - + - + - + - + + android:singleLine="true"/> + android:text="0/0"/> + android:src="@android:drawable/ic_media_rew"/> + android:src="@android:drawable/ic_media_ff"/> + android:src="@android:drawable/ic_menu_close_clear_cancel"/> diff --git a/version b/version new file mode 100644 index 0000000..548d713 --- /dev/null +++ b/version @@ -0,0 +1 @@ +3.7 \ No newline at end of file