取消自动更新,增强版本文件格式检查,解决格式错误引起的崩溃

This commit is contained in:
sonichy 2023-04-17 23:20:00 +08:00
parent 6078b278fb
commit 5b1b46cbb2
7 changed files with 64 additions and 27 deletions

BIN
app.apk

Binary file not shown.

View File

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

View File

@ -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://www.jianshu.com/p/c9a18050a249" target="_blank">字符串转Bitmap</a></p>
<h3>更新日志:</h3>
<h3>V4.31 (2023-04-17)</h3><ol><li>取消自动升级,以免因升级错误引起崩溃。</li></ol>
<h3>V4.30 (2023-03-23)</h3><ol><li>收藏夹测试 ExpandableListView 控件</li></ol>
<h3>V4.29 (2023-03-01)</h3><ol><li>收藏夹增加分类。</li><li>收藏夹分类的修改和删除。</li><li>修改导出HTML和CSV方法。</li><li>新建收藏和修改收藏编辑框设置最大行数,避免窗口撑大不完整。</li></ol>
<h3>V4.28 (2022-11-07)</h3><ol><li>资源探查脚本支持返回多个对象。<br>分类标题增加数量。<br>使用 &lt;details&gt; 代替 &lt;div&gt;,分类可折叠。</li></ol>

View File

@ -62,7 +62,12 @@ public class FavoriteActivity extends Activity {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
IMM = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imageButton_clear = (ImageButton) findViewById(R.id.imageButton_clear);
imageButton_clear.setOnClickListener(new OnClickListener());
imageButton_clear.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
editText.setText("");
}
});
imageButton_clear.setVisibility(View.GONE);
editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(new EditChangedListener());
@ -389,17 +394,6 @@ public class FavoriteActivity extends Activity {
return true;
}
class OnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageButton_clear:
editText.setText("");
break;
}
}
}
class RadioButtonOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {

View File

@ -12,6 +12,8 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
@ -20,6 +22,7 @@ import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SimpleCursorTreeAdapter;
@ -36,6 +39,8 @@ import java.lang.reflect.Field;
import java.util.ArrayList;
public class FavoriteActivity1 extends Activity {
EditText editText;
ImageButton imageButton_clear;
ExpandableListView expandableListView;
int position = 0;
@ -43,6 +48,16 @@ public class FavoriteActivity1 extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_favorite1);
editText = (EditText) findViewById(R.id.editText1);
editText.addTextChangedListener(new EditChangedListener());
imageButton_clear = (ImageButton) findViewById(R.id.imageButton_clear1);
imageButton_clear.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
editText.setText("");
}
});
imageButton_clear.setVisibility(View.GONE);
expandableListView = (ExpandableListView) findViewById(R.id.expandablelistView);
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@ -227,7 +242,6 @@ public class FavoriteActivity1 extends Activity {
@Override
public boolean onContextItemSelected(MenuItem item) {
ExpandableListView.ExpandableListContextMenuInfo menuInfo = (ExpandableListView.ExpandableListContextMenuInfo) item.getMenuInfo();
position = expandableListView.getFirstVisiblePosition();
switch (item.getGroupId()) {
case 0:
final String group_name = ((TextView) menuInfo.targetView.findViewById(R.id.group_name)).getText().toString();
@ -345,6 +359,7 @@ public class FavoriteActivity1 extends Activity {
int i = db.update(DBHelper.TableName, values, "_id = " + sid, null);
if (i != -1) {
onCreate(null);
//expandableListView.expandGroup(position);
} else
Toast.makeText(getApplicationContext(), "修改失败", Toast.LENGTH_SHORT).show();
try {
@ -452,4 +467,24 @@ public class FavoriteActivity1 extends Activity {
}
}
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) {
if (s.toString().equals("")) {
imageButton_clear.setVisibility(View.GONE);
} else {
imageButton_clear.setVisibility(View.VISIBLE);
}
//search(0, s.toString());
}
}
}

View File

@ -111,8 +111,8 @@ public class MainActivity extends Activity {
InputMethodManager IMM;
ProgressBar pgb1;
String urlo = "", HTRE = "", ptitle = "", urln = "";
String urlVersion = "https://www.gitlink.org.cn/api/sonichy/HTYBrowser/raw?filepath=version&ref=master";
String urlUpdate = "https://www.gitlink.org.cn/api/sonichy/HTYBrowser/raw?filepath=app.apk&ref=master";
String url_version = "https://www.gitlink.org.cn/api/sonichy/HTYBrowser/raw?filepath=version&ref=master";
String url_update = "https://www.gitlink.org.cn/api/sonichy/HTYBrowser/raw?filepath=app.apk&ref=master";
CustomViewCallback customViewCallback;
boolean isFullScreen, isManualCheckUpdate = false;
static File dir;
@ -241,7 +241,6 @@ public class MainActivity extends Activity {
checkUpdate();
}
};
new Thread(CU).start();
receiver = new DownloadCompleteReceiver();
IntentFilter intentFilter = new IntentFilter();
@ -1171,7 +1170,7 @@ public class MainActivity extends Activity {
// 添加一个下载任务
long downloadId = downloadManager.enqueue(request);
Log.e(Thread.currentThread().getStackTrace()[2] + "", downloadId + "");
if(surl == urlUpdate){
if (surl == url_update) {
downloadIdUpdate = downloadId;
}
}
@ -1179,14 +1178,23 @@ public class MainActivity extends Activity {
void checkUpdate() {
try {
String versionL = MainActivity.this.getPackageManager().getPackageInfo(MainActivity.this.getPackageName(), 0).versionName;
URL url = new URL(urlVersion);
URL url = new URL(url_version);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//conn.setRequestMethod("GET");
//if (conn.getResponseCode() == 200) {
InputStream IS = conn.getInputStream();
InputStreamReader ISR = new InputStreamReader(IS);
BufferedReader bufferReader = new BufferedReader(ISR);
String versionS = bufferReader.readLine();
BufferedReader BR = new BufferedReader(ISR);
String versionS = BR.readLine();
if (!versionS.startsWith("{") && !versionS.endsWith("}")) {
Looper.prepare();
Toast.makeText(getApplicationContext(), "服务器版本号解析错误:\n" + versionS, Toast.LENGTH_SHORT).show();
Looper.myLooper().loop();
return;
} else {
versionS = versionS.replace("{", "");
versionS = versionS.replace("}", "");
}
Log.e(Thread.currentThread().getStackTrace()[2] + "", versionS + " > " + versionL + " ?");
String[] AVersionS = versionS.split("\\.");
String[] AVersionL = versionL.split("\\.");
@ -1200,7 +1208,7 @@ public class MainActivity extends Activity {
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
downloadBySystem(urlUpdate, "", "", "", "HTYBrowser.apk");
downloadBySystem(url_update, "", "", "", "HTYBrowser.apk");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@ -1212,7 +1220,7 @@ public class MainActivity extends Activity {
dialog.show();
Looper.myLooper().loop();
} else {
if(isManualCheckUpdate) {
if (isManualCheckUpdate) {
Looper.prepare();
Toast.makeText(getApplicationContext(), "当前版本 " + versionL + " >= 服务器版本 "+ versionS + ",是最新的版本", Toast.LENGTH_SHORT).show();
Looper.myLooper().loop();
@ -1220,10 +1228,9 @@ public class MainActivity extends Activity {
Log.e("检查更新: ", "当前版本是最新的版本");
}
//}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
}

View File

@ -1 +1 @@
4.30
{4.31}