取消自动更新,增强版本文件格式检查,解决格式错误引起的崩溃
This commit is contained in:
parent
6078b278fb
commit
5b1b46cbb2
|
@ -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" /> <!-- 查询网络状态权限 -->
|
||||
|
|
|
@ -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>使用 <details> 代替 <div>,分类可折叠。</li></ol>
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue