diff --git a/.winboll/bashPublishAPKAddTag.sh b/.winboll/bashPublishAPKAddTag.sh index 0a51077f..d210d28d 100644 --- a/.winboll/bashPublishAPKAddTag.sh +++ b/.winboll/bashPublishAPKAddTag.sh @@ -113,10 +113,10 @@ if [[ $? -eq 0 ]]; then # 如果Git已经提交了所有代码就执行标签和应用发布操作 # 预先询问是否添加工作流标签 - echo "Add Github Workflows Tag? (yes/No)" - result=$(askAddWorkflowsTag) - nAskAddWorkflowsTag=$? - echo $result + #echo "Add Github Workflows Tag? (yes/No)" + #result=$(askAddWorkflowsTag) + #nAskAddWorkflowsTag=$? + #echo $result # 发布应用 echo "Publishing WinBoLL APK ..." @@ -138,17 +138,17 @@ if [[ $? -eq 0 ]]; then fi # 添加 GitHub 工作流标签 - if [[ $nAskAddWorkflowsTag -eq 1 ]]; then + #if [[ $nAskAddWorkflowsTag -eq 1 ]]; then # 如果用户选择添加工作流标签 - result=$(addWorkflowsTag $1) - if [[ $? -eq 0 ]]; then - echo $result + #result=$(addWorkflowsTag $1) + #if [[ $? -eq 0 ]]; then + # echo $result # 工作流标签添加成功 - else - echo -e "${0}: addWorkflowsTag $1\n${result}\nAdd workflows tag cancel." - exit 1 # addWorkflowsTag 异常 - fi - fi + #else + #echo -e "${0}: addWorkflowsTag $1\n${result}\nAdd workflows tag cancel." + #exit 1 # addWorkflowsTag 异常 + #fi + #fi ## 清理更新描述文件内容 echo "" > $1/app_update_description.txt diff --git a/README.md b/README.md index 67c6f0fe..01d66250 100644 --- a/README.md +++ b/README.md @@ -114,9 +114,12 @@ # 本项目要实际运用需要注意以下几个步骤: # 在项目根目录下: -## 1. 项目模块编译环境设置(必须),settings.gradle-demo 要复制为 settings.gradle,并取消相应项目模块的注释。 -## 2. 项目 Android SDK 编译环境设置(可选),local.properties-demo 要复制为 local.properties,并按需要设置 Android SDK 目录。 -## 3. 类库型模块编译环境设置(可选),winboll.properties-demo 要复制为 winboll.properties,并按需要设置 WinBoLL Maven 库登录用户信息。 +## ★. 项目模块编译环境设置(必须),settings.gradle-demo 要复制为 settings.gradle,并取消相应项目模块的注释。 +## ★. 项目模块编译环境设置(必须) 在根目录拷贝 gradle.properties-androidx-demo 或者 gradle.properties-android-demo 文件为 gradle.properties。 +## ★. 项目 Android SDK 编译环境设置(可选),local.properties-demo 要复制为 local.properties,并按需要设置 Android SDK 目录。 +## ★. 应用签名密钥 keystore 设置问题。一般调试编译只需用【Termux】cd 进 GenKeyStore 目录执行 $ bash gen_debug_keystore.sh 命令即可完成设置。 +## ☆. 应用 WiBoLL 签名密钥配置问题<非必须考虑>。设置时需要 clone 【keystore】模块源码并拷贝模块目录的 appkey.jks 与 appkey.keystore 到项目根目录即可。 +## ☆. 类库型模块编译环境设置(可选),winboll.properties-demo 要复制为 winboll.properties,并按需要设置 WinBoLL Maven 库登录用户信息。 # ☆类库型项目编译方法 diff --git a/aes/build.gradle b/aes/build.gradle index cd6188de..67c1a20e 100644 --- a/aes/build.gradle +++ b/aes/build.gradle @@ -29,7 +29,7 @@ android { // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.8" + versionName "15.9" if(true) { versionName = genVersionName("${versionName}") } diff --git a/aes/build.properties b/aes/build.properties index 28b69bc6..0994e68f 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Jun 03 19:17:05 HKT 2025 -stageCount=2 +#Sat Jun 28 12:59:51 HKT 2025 +stageCount=3 libraryProject=libaes -baseVersion=15.8 -publishVersion=15.8.1 +baseVersion=15.9 +publishVersion=15.9.2 buildCount=0 -baseBetaVersion=15.8.2 +baseBetaVersion=15.9.3 diff --git a/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java b/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java index 1be1c587..ecec6228 100644 --- a/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java +++ b/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java @@ -83,7 +83,7 @@ public class AboutActivity extends AppCompatActivity implements IWinBoLLActivity appInfo.setAppGitOwner("Studio"); appInfo.setAppGitAPPBranch(szBranchName); appInfo.setAppGitAPPSubProjectFolder(szBranchName); - appInfo.setAppHomePage("https://discuz.winboll.cc/forum.php?mod=viewthread&tid=2&fromuid=1"); + appInfo.setAppHomePage("https://discuz.winboll.cc/forum.php?mod=viewthread&tid=3&extra=page%3D1"); appInfo.setAppAPKName("AES"); appInfo.setAppAPKFolderName("AES"); //appInfo.setIsAddDebugTools(false); diff --git a/androidxdemo/build.gradle b/androidxdemo/build.gradle index b789cbb9..366613a0 100644 --- a/androidxdemo/build.gradle +++ b/androidxdemo/build.gradle @@ -67,7 +67,7 @@ dependencies { //api 'androidx.vectordrawable:vectordrawable-animated:1.1.0' //api 'androidx.fragment:fragment:1.1.0' - api 'cc.winboll.studio:libaes:15.8.0' - api 'cc.winboll.studio:libapputils:15.8.1' - api 'cc.winboll.studio:libappbase:15.8.1' + api 'cc.winboll.studio:libaes:15.9.2' + api 'cc.winboll.studio:libapputils:15.8.4' + api 'cc.winboll.studio:libappbase:15.8.4' } diff --git a/androidxdemo/build.properties b/androidxdemo/build.properties index b790ea1a..9bfd4a76 100644 --- a/androidxdemo/build.properties +++ b/androidxdemo/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon May 19 21:43:40 GMT 2025 +#Sat Jun 28 05:02:54 GMT 2025 stageCount=0 libraryProject= baseVersion=15.0 publishVersion=15.0.0 -buildCount=22 +buildCount=27 baseBetaVersion=15.0.1 diff --git a/appbase/build.gradle b/appbase/build.gradle index e2b03776..f59582b9 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -30,7 +30,7 @@ android { // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.8" + versionName "15.9" if(true) { versionName = genVersionName("${versionName}") } diff --git a/appbase/build.properties b/appbase/build.properties index e47cbecf..94624655 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Jun 03 13:40:08 HKT 2025 -stageCount=5 +#Sun Aug 31 04:33:09 CST 2025 +stageCount=6 libraryProject=libappbase -baseVersion=15.8 -publishVersion=15.8.4 +baseVersion=15.9 +publishVersion=15.9.5 buildCount=0 -baseBetaVersion=15.8.5 +baseBetaVersion=15.9.6 diff --git a/appbase/src/main/AndroidManifest.xml b/appbase/src/main/AndroidManifest.xml index e8a8bdb9..66f68a38 100644 --- a/appbase/src/main/AndroidManifest.xml +++ b/appbase/src/main/AndroidManifest.xml @@ -9,7 +9,8 @@ android:label="@string/app_name" android:theme="@style/MyAPPBaseTheme" android:resizeableActivity="true" - android:process=":App"> + android:process=":App" + android:networkSecurityConfig="@xml/network_security_config"> - - @@ -105,7 +108,8 @@ - @@ -122,7 +126,6 @@ android:name="android.max_aspect" android:value="4.0"/> - diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java index 0b3a8a44..7f55f8a9 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java @@ -62,6 +62,11 @@ public class MainActivity extends WinBoLLActivity implements IWinBoLLActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { + if(item.getItemId() == R.id.item_yun) { + GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, cc.winboll.studio.libappbase.activities.YunActivity.class); + } else if(item.getItemId() == R.id.item_logon) { + GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, cc.winboll.studio.libappbase.activities.LogonActivity.class); + } // 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。 return super.onOptionsItemSelected(item); } diff --git a/appbase/src/main/res/menu/toolbar_main.xml b/appbase/src/main/res/menu/toolbar_main.xml index 7fac6448..41657dd1 100644 --- a/appbase/src/main/res/menu/toolbar_main.xml +++ b/appbase/src/main/res/menu/toolbar_main.xml @@ -5,6 +5,14 @@ android:id="@+id/item_home" android:title="HOME" android:icon="@drawable/ic_winboll"/> + + + + + + winboll.cc + + + + + 10.8.0.250 + + diff --git a/autoinstaller/build.properties b/autoinstaller/build.properties index d987d282..c20578cf 100644 --- a/autoinstaller/build.properties +++ b/autoinstaller/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun May 04 05:32:00 GMT 2025 -stageCount=1 +#Tue Jun 24 09:54:47 HKT 2025 +stageCount=3 libraryProject= baseVersion=15.2 -publishVersion=15.2.0 -buildCount=74 -baseBetaVersion=15.2.1 +publishVersion=15.2.2 +buildCount=0 +baseBetaVersion=15.2.3 diff --git a/contacts/README.md b/contacts/README.md index d48aa8ba..3a2e48f4 100644 --- a/contacts/README.md +++ b/contacts/README.md @@ -3,7 +3,7 @@ https://github.com/aJIEw/PhoneCallApp.git #### 介绍 -通讯录与拨号 +这是可以根据正则表达式匹配拦截骚扰电话的手机拨号应用。 #### 软件架构 适配安卓应用 [AIDE Pro] 的 Gradle 编译结构。 diff --git a/contacts/build.gradle b/contacts/build.gradle index 00166692..24e18ae9 100644 --- a/contacts/build.gradle +++ b/contacts/build.gradle @@ -45,9 +45,9 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - api 'cc.winboll.studio:libaes:15.8.0' - api 'cc.winboll.studio:libapputils:15.8.1' - api 'cc.winboll.studio:libappbase:15.8.1' + api 'cc.winboll.studio:libaes:15.9.2' + api 'cc.winboll.studio:libapputils:15.8.4' + api 'cc.winboll.studio:libappbase:15.8.4' // 权限请求框架:https://github.com/getActivity/XXPermissions api 'com.github.getActivity:XXPermissions:18.63' diff --git a/contacts/build.properties b/contacts/build.properties index a2f12cdb..1ae7c047 100644 --- a/contacts/build.properties +++ b/contacts/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 20 13:02:18 HKT 2025 -stageCount=3 +#Thu Jul 17 09:57:24 HKT 2025 +stageCount=12 libraryProject= baseVersion=15.3 -publishVersion=15.3.2 +publishVersion=15.3.11 buildCount=0 -baseBetaVersion=15.3.3 +baseBetaVersion=15.3.12 diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/activities/AboutActivity.java b/contacts/src/main/java/cc/winboll/studio/contacts/activities/AboutActivity.java index d447f79d..931846eb 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/activities/AboutActivity.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/activities/AboutActivity.java @@ -79,12 +79,12 @@ public class AboutActivity extends AppCompatActivity implements IWinBoLLActivity APPInfo appInfo = new APPInfo(); appInfo.setAppName("Contacts"); appInfo.setAppIcon(cc.winboll.studio.libaes.R.drawable.ic_winboll); - appInfo.setAppDescription("通讯录与拨号"); - appInfo.setAppGitName("APP"); + appInfo.setAppDescription("这是可以根据正则表达式匹配拦截骚扰电话的手机拨号应用。"); + appInfo.setAppGitName("APPBase"); appInfo.setAppGitOwner("Studio"); appInfo.setAppGitAPPBranch(szBranchName); appInfo.setAppGitAPPSubProjectFolder(szBranchName); - appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=Contacts"); + appInfo.setAppHomePage("https://discuz.winboll.cc/forum.php?mod=viewthread&tid=4&extra=page%3D1"); appInfo.setAppAPKName("Contacts"); appInfo.setAppAPKFolderName("Contacts"); return new AboutView(mContext, appInfo); 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 bea6b918..4664c02b 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 @@ -198,6 +198,9 @@ public class SettingsActivity extends AppCompatActivity implements IWinBoLLActiv settingsModel.setDunTotalCount(Integer.parseInt(etDunTotalCount.getText().toString())); settingsModel.setDunResumeSecondCount(Integer.parseInt(etDunResumeSecondCount.getText().toString())); settingsModel.setDunResumeCount(Integer.parseInt(etDunResumeCount.getText().toString())); + + // 应用效果提示 + ToastUtils.show((settingsModel.getDunTotalCount() == 1)?"电话骚扰防御力几乎为0。":String.format("以下设置将在连拨%d次后接通电话。", settingsModel.getDunTotalCount())); } settingsModel.setIsEnableDun(isEnableDun); Rules.getInstance(this).saveDun(); @@ -207,6 +210,7 @@ public class SettingsActivity extends AppCompatActivity implements IWinBoLLActiv etDunTotalCount.setText(Integer.toString(settingsModel.getDunTotalCount())); etDunResumeSecondCount.setText(Integer.toString(settingsModel.getDunResumeSecondCount())); etDunResumeCount.setText(Integer.toString(settingsModel.getDunResumeCount())); + } void updateStreamVolumeTextView() { @@ -243,6 +247,9 @@ public class SettingsActivity extends AppCompatActivity implements IWinBoLLActiv Rules.getInstance(this).resetDefaultBoBullToonURL(); EditText etBoBullToonURL = findViewById(R.id.bobulltoonurl_et); etBoBullToonURL.setText(Rules.getInstance(this).getBoBullToonURL()); + + final TomCat tomCat = TomCat.getInstance(this); + tomCat.cleanBoBullToon(); } public void onDownloadBoBullToon(View view) { @@ -330,4 +337,8 @@ public class SettingsActivity extends AppCompatActivity implements IWinBoLLActiv public void onAbout(View view) { App.getWinBoLLActivityManager().startWinBoLLActivity(this, AboutActivity.class); } + + public void onLogView(View view) { + App.getWinBoLLActivityManager().startLogActivity(this); + } } diff --git a/contacts/src/main/java/cc/winboll/studio/contacts/adapters/CallLogAdapter.java b/contacts/src/main/java/cc/winboll/studio/contacts/adapters/CallLogAdapter.java index 8ad75ba3..58ed0961 100644 --- a/contacts/src/main/java/cc/winboll/studio/contacts/adapters/CallLogAdapter.java +++ b/contacts/src/main/java/cc/winboll/studio/contacts/adapters/CallLogAdapter.java @@ -5,13 +5,18 @@ package cc.winboll.studio.contacts.adapters; * @Date 2025/02/26 13:09:32 * @Describe CallLogAdapter */ +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.PopupMenu; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import cc.winboll.studio.contacts.R; @@ -47,6 +52,38 @@ public class CallLogAdapter extends RecyclerView.Adapter { @@ -26,8 +32,10 @@ public class ContactAdapter extends RecyclerView.Adapter contactList; + Context mContext; - public ContactAdapter(List contactList) { + public ContactAdapter(Context context, List contactList) { + mContext = context; this.contactList = contactList; } @@ -41,6 +49,37 @@ public class ContactAdapter extends RecyclerView.Adapter + + + + + + +