修复广告屏蔽规则保存,网址前面总有1个空格

This commit is contained in:
sonichy 2024-03-27 13:33:50 +08:00
parent eff2b03f0c
commit 14783e4b7b
6 changed files with 34 additions and 20 deletions

BIN
app.apk

Binary file not shown.

View File

@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hty.browser" package="com.hty.browser"
android:versionCode="4" android:versionCode="4"
android:versionName="4.36"> android:versionName="4.37">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 查询网络状态权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 查询网络状态权限 -->

View File

@ -9,7 +9,7 @@ p { text-indent:2em; }
</style> </style>
</head> </head>
<body> <body>
<h2 align=center><img src=logo.png><br>海天鹰浏览器 V4.36</h2> <h2 align=center><img src=logo.png><br>海天鹰浏览器 V4.37</h2>
<p>内置扩展的浏览器。</p> <p>内置扩展的浏览器。</p>
<p>扩展:链接关键字过滤,链接关键字高亮,图片自定义过滤,视频独立播放。</p> <p>扩展:链接关键字过滤,链接关键字高亮,图片自定义过滤,视频独立播放。</p>
<p>作者:海天鹰</p> <p>作者:海天鹰</p>
@ -23,6 +23,7 @@ p { text-indent:2em; }
<p><a href="https://stackoverflow.com/questions/3462582/display-the-android-webviews-favicon" target="_blank">获取网页图标</a></p> <p><a href="https://stackoverflow.com/questions/3462582/display-the-android-webviews-favicon" target="_blank">获取网页图标</a></p>
<p><a href="https://www.jianshu.com/p/c9a18050a249" target="_blank">字符串转Bitmap</a></p> <p><a href="https://www.jianshu.com/p/c9a18050a249" target="_blank">字符串转Bitmap</a></p>
<h3>更新日志:</h3> <h3>更新日志:</h3>
<h3>V4.37 (2024-03-27)</h3><ol><li>修复保存网址规则前面有1个空格的问题。</li><li>增加点击规则查看详情。</li></ol>
<h3>V4.36 (2024-03-25)</h3><ol><li>增加添加网址到主页。</li></ol> <h3>V4.36 (2024-03-25)</h3><ol><li>增加添加网址到主页。</li></ol>
<h3>V4.35 (2024-03-16)</h3><ol><li>增加自定义主页。</li></ol> <h3>V4.35 (2024-03-16)</h3><ol><li>增加自定义主页。</li></ol>
<h3>V4.34 (2024-01-30)</h3><ol><li>增加hash链接转magnet。</li></ol> <h3>V4.34 (2024-01-30)</h3><ol><li>增加hash链接转magnet。</li></ol>

View File

@ -4,14 +4,9 @@ import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.media.MediaScannerConnection;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
@ -26,19 +21,13 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView; import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileWriter;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -50,7 +39,6 @@ public class ADBlockActivity extends Activity {
ListView listView; ListView listView;
ArrayAdapter<String> adapter; ArrayAdapter<String> adapter;
List<String> datas0, datas; List<String> datas0, datas;
//String[] SL;
InputMethodManager IMM; InputMethodManager IMM;
int position; int position;
@ -98,6 +86,29 @@ public class ADBlockActivity extends Activity {
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, datas); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, datas);
listView = (ListView) findViewById(R.id.listView); listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter); listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String url = ((TextView) arg1.findViewById(android.R.id.text1)).getText().toString();
AlertDialog.Builder builder = new AlertDialog.Builder(ADBlockActivity.this);
builder.setIcon(android.R.drawable.ic_menu_info_details);
builder.setTitle("规则");
builder.setMessage(url);
builder.setPositiveButton("打开", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(ADBlockActivity.this, MainActivity.class);
intent.putExtra("url", url);
intent.putExtra("newWindow", true);
setResult(RESULT_OK, intent);
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
}
});
listView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { listView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
@Override @Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) { public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
@ -132,12 +143,12 @@ public class ADBlockActivity extends Activity {
int id = item.getItemId(); int id = item.getItemId();
switch (id) { switch (id) {
case 0: case 0:
//SL = readFile("blockrules").split(",");
datas0 = Arrays.asList(readFile("blockrules").split(",")); datas0 = Arrays.asList(readFile("blockrules").split(","));
search(); search();
break; break;
case 1: case 1:
String s = datas.toString().replace("[", "").replace("]", ""); IMM.hideSoftInputFromWindow(editText.getWindowToken(), 0);
String s = datas.toString().replace("[", "").replace("]", "").replace(", ", ",");
Log.e(Thread.currentThread().getStackTrace()[2] + "", "Write: " + s); Log.e(Thread.currentThread().getStackTrace()[2] + "", "Write: " + s);
writeFile("blockrules", s); writeFile("blockrules", s);
break; break;
@ -179,11 +190,11 @@ public class ADBlockActivity extends Activity {
break; break;
case 3: case 3:
final EditText editText_url = new EditText(ADBlockActivity.this); final EditText editText_url = new EditText(ADBlockActivity.this);
editText_url.setMaxLines(3); editText_url.setMaxLines(4);
editText_url.setHint("网址"); editText_url.setHint("网址");
editText_url.setText(url); editText_url.setText(url);
AlertDialog.Builder builder = new AlertDialog.Builder(ADBlockActivity.this); AlertDialog.Builder builder = new AlertDialog.Builder(ADBlockActivity.this);
builder.setIcon(android.R.drawable.btn_star_big_on); builder.setIcon(android.R.drawable.ic_menu_edit);
builder.setTitle("修改"); builder.setTitle("修改");
builder.setView(editText_url); builder.setView(editText_url);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@ -241,6 +252,7 @@ public class ADBlockActivity extends Activity {
} }
void search() { void search() {
IMM.hideSoftInputFromWindow(editText.getWindowToken(), 0);
datas.clear(); datas.clear();
String s = editText.getText().toString(); String s = editText.getText().toString();
for (int i=0; i<datas0.size(); i++) { for (int i=0; i<datas0.size(); i++) {

View File

@ -1077,6 +1077,7 @@ public class MainActivity extends Activity {
// s = s.substring(0, s.length() - 1); // s = s.substring(0, s.length() - 1);
// } // }
String js = "javascript:var rules='" + s + "';var rule=new Array();rule=rules.split(',');var img=document.getElementsByTagName('img');for(i=0;i<img.length;i++){for(j=0;j<rule.length;j++){if(img[i].src.indexOf(rule[j])!=-1){img[i].style.display='none';}}}"; String js = "javascript:var rules='" + s + "';var rule=new Array();rule=rules.split(',');var img=document.getElementsByTagName('img');for(i=0;i<img.length;i++){for(j=0;j<rule.length;j++){if(img[i].src.indexOf(rule[j])!=-1){img[i].style.display='none';}}}";
writeFile("ADBlock.txt", js);
list_webView.get(currentPage).loadUrl(js); list_webView.get(currentPage).loadUrl(js);
} }
} }
@ -1614,7 +1615,7 @@ public class MainActivity extends Activity {
BW.flush(); BW.flush();
String filepath = MainActivity.dir + File.separator + filename; String filepath = MainActivity.dir + File.separator + filename;
MediaScannerConnection.scanFile(MainActivity.this, new String[] { filepath }, null, null); MediaScannerConnection.scanFile(MainActivity.this, new String[] { filepath }, null, null);
Toast.makeText(MainActivity.this, "写文件 " + MainActivity.dir + File.separator + filename + " 成功", Toast.LENGTH_SHORT).show(); //Toast.makeText(MainActivity.this, "写文件 " + MainActivity.dir + File.separator + filename + " 成功", Toast.LENGTH_SHORT).show();
} catch (Exception e) { } catch (Exception e) {
Log.e(Thread.currentThread().getStackTrace()[2] + "", e.toString()); Log.e(Thread.currentThread().getStackTrace()[2] + "", e.toString());
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();

View File

@ -1 +1 @@
{4.36} {4.37}