修复广告屏蔽规则保存,网址前面总有1个空格
This commit is contained in:
parent
eff2b03f0c
commit
14783e4b7b
|
@ -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" /> <!-- 查询网络状态权限 -->
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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++) {
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue