From 3432575aa7eb9ab30f5f1a33941dcd7545f6667b Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 12 Apr 2025 21:14:33 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E6=B7=BB=E5=8A=A0BoBullToon=20URL=20?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8A=9F=E8=83=BD...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contacts/build.properties | 4 ++-- .../contacts/activities/SettingsActivity.java | 18 +++++++++++----- .../studio/contacts/beans/SettingsModel.java | 21 +++++++++++++++++-- .../studio/contacts/bobulltoon/TomCat.java | 17 ++++++++++----- .../cc/winboll/studio/contacts/dun/Rules.java | 14 +++++++++++++ .../src/main/res/layout/activity_settings.xml | 17 +++++++++++++-- 6 files changed, 75 insertions(+), 16 deletions(-) diff --git a/contacts/build.properties b/contacts/build.properties index ca82b8b..117b57d 100644 --- a/contacts/build.properties +++ b/contacts/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 01 17:48:43 HKT 2025 +#Sat Apr 12 13:11:52 GMT 2025 stageCount=7 libraryProject= baseVersion=15.2 publishVersion=15.2.6 -buildCount=0 +buildCount=5 baseBetaVersion=15.2.7 diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/activities/SettingsActivity.java b/contacts/src/main/java/cc/winboll/studio/contacts/activities/SettingsActivity.java index 09bd722..92b1e97 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/activities/SettingsActivity.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/activities/SettingsActivity.java @@ -24,6 +24,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import cc.winboll.studio.contacts.App; import cc.winboll.studio.contacts.R; import cc.winboll.studio.contacts.adapters.PhoneConnectRuleAdapter; import cc.winboll.studio.contacts.beans.MainServiceBean; @@ -34,13 +35,11 @@ import cc.winboll.studio.contacts.bobulltoon.TomCat; import cc.winboll.studio.contacts.dun.Rules; import cc.winboll.studio.contacts.services.MainService; import cc.winboll.studio.contacts.views.DuInfoTextView; -import cc.winboll.studio.libaes.winboll.APPInfo; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.winboll.IWinBollActivity; import com.hjq.toast.ToastUtils; import java.lang.reflect.Field; import java.util.List; -import cc.winboll.studio.contacts.App; public class SettingsActivity extends AppCompatActivity implements IWinBollActivity { @@ -177,6 +176,8 @@ public class SettingsActivity extends AppCompatActivity implements IWinBollActiv etDunResumeSecondCount.setEnabled(!isEnableDun); etDunResumeCount.setEnabled(!isEnableDun); + EditText etBoBullToonURL = findViewById(R.id.bobulltoonurl_et); + etBoBullToonURL.setText(Rules.getInstance(this).getBoBullToonURL()); } public static void notifyDunInfoUpdate() { @@ -232,8 +233,17 @@ public class SettingsActivity extends AppCompatActivity implements IWinBollActiv ToastUtils.show("悬浮窗已开启"); } } + + public void onResetBoBullToonURL(View view) { + Rules.getInstance(this).resetDefaultBoBullToonURL(); + } public void onDownloadBoBullToon(View view) { + EditText etBoBullToonURL = findViewById(R.id.bobulltoonurl_et); + if(!etBoBullToonURL.getText().toString().trim().equals(Rules.getInstance(this).getBoBullToonURL())) { + Rules.getInstance(this).setBoBullToonURL(etBoBullToonURL.getText().toString().trim()); + } + final TomCat tomCat = TomCat.getInstance(this); new Thread(new Runnable() { @Override @@ -247,8 +257,6 @@ public class SettingsActivity extends AppCompatActivity implements IWinBollActiv }).start(); } - - public void onSearchBoBullToonPhone(View view) { TomCat tomCat = TomCat.getInstance(this); EditText etPhone = findViewById(R.id.activitysettingsEditText1); @@ -311,7 +319,7 @@ public class SettingsActivity extends AppCompatActivity implements IWinBollActiv } } } - + public void onAbout(View view) { App.getWinBollActivityManager().startWinBollActivity(this, AboutActivity.class); } diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/beans/SettingsModel.java b/contacts/src/main/java/cc/winboll/studio/contacts/beans/SettingsModel.java index 2f0fc1e..21b6c22 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/beans/SettingsModel.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/beans/SettingsModel.java @@ -13,6 +13,8 @@ import java.io.IOException; public class SettingsModel extends BaseBean { public static final String TAG = "SettingsModel"; + + public static final String DEFAULT_BOBULLTOON_URL = "http://10.8.0.12:3000/Studio/BoBullToon/archive/main.zip"; // 替换为实际的 ZIP 文件 URL // 云盾防御层数量 int dunTotalCount; @@ -24,6 +26,8 @@ public class SettingsModel extends BaseBean { int dunResumeCount; // 是否启用云盾 boolean isEnableDun; + // BoBullToon 应用模块数据请求地址 + String szBoBullToon_URL; public SettingsModel() { this.dunTotalCount = 6; @@ -31,14 +35,24 @@ public class SettingsModel extends BaseBean { this.dunResumeSecondCount = 60; this.dunResumeCount = 1; this.isEnableDun = false; + this.szBoBullToon_URL = DEFAULT_BOBULLTOON_URL; } - public SettingsModel(int dunTotalCount, int dunCurrentCount, int dunResumeSecondCount, int dunResumeCount, boolean isEnableDun) { + public SettingsModel(int dunTotalCount, int dunCurrentCount, int dunResumeSecondCount, int dunResumeCount, boolean isEnableDun, String szBoBullToon_URL) { this.dunTotalCount = dunTotalCount; this.dunCurrentCount = dunCurrentCount; this.dunResumeSecondCount = dunResumeSecondCount; this.dunResumeCount = dunResumeCount; this.isEnableDun = isEnableDun; + this.szBoBullToon_URL = szBoBullToon_URL; + } + + public void setBoBullToon_URL(String boBullToon_URL) { + this.szBoBullToon_URL = boBullToon_URL; + } + + public String getBoBullToon_URL() { + return szBoBullToon_URL; } public void setDunTotalCount(int dunTotalCount) { @@ -96,7 +110,8 @@ public class SettingsModel extends BaseBean { jsonWriter.name("dunResumeSecondCount").value(getDunResumeSecondCount()); jsonWriter.name("dunResumeCount").value(getDunResumeCount()); jsonWriter.name("isEnableDun").value(isEnableDun()); - + jsonWriter.name("szBoBullToon_URL").value(getBoBullToon_URL()); + } @Override @@ -112,6 +127,8 @@ public class SettingsModel extends BaseBean { setDunResumeCount(jsonReader.nextInt()); } else if (name.equals("isEnableDun")) { setIsEnableDun(jsonReader.nextBoolean()); + } else if (name.equals("szBoBullToon_URL")) { + setBoBullToon_URL(jsonReader.nextString()); } else { return false; } diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/bobulltoon/TomCat.java b/contacts/src/main/java/cc/winboll/studio/contacts/bobulltoon/TomCat.java index ffd20eb..7e2fba2 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/bobulltoon/TomCat.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/bobulltoon/TomCat.java @@ -6,6 +6,7 @@ package cc.winboll.studio.contacts.bobulltoon; * @Describe 汤姆猫管家 :使用 BoBullToon 项目,对通讯地址进行筛选判断的好朋友。 */ import android.content.Context; +import cc.winboll.studio.contacts.dun.Rules; import cc.winboll.studio.libappbase.LogUtils; import com.hjq.toast.ToastUtils; import java.io.File; @@ -28,6 +29,7 @@ public class TomCat { public static final String TAG = "TomCat"; List listPhoneBoBullToon = new ArrayList(); + String mszBoBullToon_URL; static volatile TomCat _TomCat; Context mContext; @@ -42,7 +44,7 @@ public class TomCat { return _TomCat; } - void downloadAndExtractZip(String zipUrl, String destinationFolder) throws IOException { + boolean downloadAndExtractZip(String zipUrl, String destinationFolder) throws IOException { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(zipUrl) @@ -95,13 +97,16 @@ public class TomCat { // 删除临时 ZIP 文件 tempZipFile.delete(); LogUtils.d(TAG, "已更新 BoBullToon 数据"); + return true; } catch (Exception e) { + ToastUtils.show(e.getMessage()); LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + return false; } } public boolean downloadBoBullToon() { - String zipUrl = "http://10.8.0.12:3000/Studio/BoBullToon/archive/main.zip"; // 替换为实际的 ZIP 文件 URL + String zipUrl = Rules.getInstance(mContext).getBoBullToonURL(); // 替换为实际的 ZIP 文件 URL String destinationFolder = getWorkingFolder().getPath(); // 替换为实际的目标文件夹路径 try { // 删除旧文件 @@ -113,9 +118,11 @@ public class TomCat { } // 更新新文件 - downloadAndExtractZip(zipUrl, destinationFolder); - LogUtils.d(TAG, "ZIP 文件下载并解压成功。"); - return true; + if(downloadAndExtractZip(zipUrl, destinationFolder)) { + LogUtils.d(TAG, "ZIP 文件下载并解压成功。"); + return true; + } + return false; } catch (IOException e) { LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); } diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java b/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java index cc7870a..05bd4f2 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/dun/Rules.java @@ -81,6 +81,20 @@ public class Rules { LogUtils.d(TAG, String.format("saveRules()")); PhoneConnectRuleModel.saveBeanList(mContext, _PhoneConnectRuleModelList, PhoneConnectRuleModel.class); } + + public void resetDefaultBoBullToonURL() { + mSettingsModel.setBoBullToon_URL(SettingsModel.DEFAULT_BOBULLTOON_URL); + saveDun(); + } + + public void setBoBullToonURL(String szUrl) { + mSettingsModel.setBoBullToon_URL(szUrl); + saveDun(); + } + + public String getBoBullToonURL() { + return mSettingsModel.getBoBullToon_URL(); + } public void loadDun() { mSettingsModel = SettingsModel.loadBean(mContext, SettingsModel.class); diff --git a/contacts/src/main/res/layout/activity_settings.xml b/contacts/src/main/res/layout/activity_settings.xml index d1c90ce..c0afc54 100644 --- a/contacts/src/main/res/layout/activity_settings.xml +++ b/contacts/src/main/res/layout/activity_settings.xml @@ -195,16 +195,29 @@ android:text="拨不通电话记录查询:"/> + +