diff --git a/LICENSE-Private-Demo b/LICENSE-Private-Demo new file mode 100644 index 0000000..dc5f366 --- /dev/null +++ b/LICENSE-Private-Demo @@ -0,0 +1,97 @@ +# WinBoLL 源码 LICENSE-Private-Demo 规范说明书 + +# LICENSE-Private-Demo + +# WinBoLL 源码公共转私有继承开发规范守则 + +## 核心声明 + +本文档**唯一核心设计目的**:通过文件标识、分支隔离、操作规范、责任界定四重约束,**从根源规避私有开发分支代码被人为合并、推送、提交至公共开源主流分支的风险**,明确人为操作失误、违规合并的全部责任归属,同时保证私有分支可正常同步、拉取公共主流分支的上游更新。 + +## 一、文件宗旨与风险防控说明 + +本文件为 WinBoLL 项目公共开源分支转为私有独立分支开发的**强制标准化操作手册与责任界定文件**,核心风控目标: + +1. 严格隔离公共开源分支与私有开发分支,通过授权文件标记实现分支属性一眼可辨,杜绝人为操作混淆 + +2. **重点防控人为操作导致的私有分支代码违规合并、回合、推送至公共 ****`winboll`**** 主流分支**,从流程上封堵合并风险 + +3. 明确所有开发提交者的操作责任,违规合并公共分支的行为由操作人承担全部代码泄露、合规风险 + +4. 规范私有分支初始化全流程,保证私有分支仅可单向同步公共分支更新,禁止任何反向代码流入公共分支 + +## 二、公私分支授权标识文件定义(风控核心依据) + +### 1. 公共开源分支唯一标识 + +**文件名:LICENSE** + +- 仅允许存在于公共主流分支 `winboll` 及官方公共衍生分支 + +- 标识当前分支为**开源公开可贡献分支**,遵循原开源授权协议 + +- **严禁私有分支内保留、恢复此文件**,出现即判定分支属性异常 + +### 2. 私有开发分支唯一标识 + +**文件名:LICENSE-Private** + +- 仅允许存在于私有开发分支,**绝对禁止出现在公共 ****`winboll`**** 分支** + +- 标识当前分支为**私有闭源分支**,代码仅限内部使用,禁止公开、禁止对外贡献 + +- 为本分支私有属性的法定判定依据,也是禁止合并至公共分支的核心标记 + +## 三、分支管理与合并风控规则(强制遵守) + +1. **公共主流分支**:固定为 `winboll`,为项目唯一开源主线,仅保留 `LICENSE` 文件,**禁止接收任何私有分支的合并、提交、推送请求**。 + +2. **私有开发分支**:统一从 `winboll` 分支检出,命名固定格式为 `private-demo-*`,与公共分支物理隔离。 + +3. **核心合并风控铁则** + + - 私有分支 → 公共分支:**永久禁止任何形式的合并、推送、PR 提交、代码回合,人为操作也绝不允许** + + - 公共分支 → 私有分支:允许正常拉取、同步上游更新,不影响私有开发迭代 + +4. 所有仓库提交者、合并操作者,均视为已阅读并完全认可本规则,**人为执行私有分支向公共分支的合并操作,由操作人承担全部代码泄露、合规违约、项目安全风险**。 + +## 四、公共转私有标准化操作步骤(锁死合并风险) + +请严格按顺序执行,每一步均为风控必要环节,不可跳过、不可修改顺序。 + +1. 基于公共主流分支 `winboll`,新建私有开发分支,严格使用 `private-demo-*` 命名,从名称上明确分支私有属性,避免人为混淆。 + +2. 本地仓库切换至新建私有分支,确认当前分支名称、检出来源无误。 + +3. **永久删除项目根目录公共授权文件 ****`LICENSE`**,彻底移除公共分支标识,断绝误合并的标识漏洞。 + +4. 将本规范文件 `LICENSE-Private-Demo` 复制并重命名为 `LICENSE-Private`,作为私有分支生效授权文件。 + +5. 将以上所有变更执行一次性 Git 提交,**提交信息必须固定使用以下内容,不可修改**: + + > 初始化私有开发分支,已切换私有授权文件,本分支禁止任何人为合并、推送至 winboll 公共分支 + > + > + +6. 提交完成后,本分支正式转为私有开发状态,后续所有代码提交、分支合并、版本迭代,均严禁指向公共 `winboll` 分支。 + +## 五、人为操作责任界定(核心补充条款) + +1. 本分支所有开发者、代码提交者、分支合并操作者,均视为**完全知晓本分支的私有属性与合并禁令**,自愿遵守本规范全部约束。 + +2. **无论故意或过失,凡是人为执行私有分支向公共 ****`winboll`**** 分支的合并、推送、PR 提交、代码回合操作,全部责任由执行操作的本人独立承担**,项目方不承担任何因人为违规操作导致的代码泄露、开源合规、版本污染风险。 + +3. 仓库管理员需严格校验合并请求的分支标识与授权文件,发现带有 `LICENSE-Private` 标记的分支申请合并至公共分支,一律直接拒绝,并记录操作人信息。 + +4. 分支属性校验以根目录授权文件为唯一标准:只要分支内存在 `LICENSE-Private` 文件,就绝对禁止向公共分支发起任何合并操作。 + +## 六、分支状态校验与异常处理 + +- 合规公共分支:仅存在 `LICENSE`,无 `LICENSE-Private` + +- 合规私有分支:仅存在 `LICENSE-Private`,无 `LICENSE` + +- 异常状态:两个文件同时存在 / 均不存在 → 立即停止开发与提交,按本规范重置分支状态,严禁执行任何合并操作 + +> (注:文档部分内容可能由 AI 生成) diff --git a/LICENSE-Private-Demo_docs/LICENSE-Private-Demo b/LICENSE-Private-Demo_docs/LICENSE-Private-Demo new file mode 100644 index 0000000..dc5f366 --- /dev/null +++ b/LICENSE-Private-Demo_docs/LICENSE-Private-Demo @@ -0,0 +1,97 @@ +# WinBoLL 源码 LICENSE-Private-Demo 规范说明书 + +# LICENSE-Private-Demo + +# WinBoLL 源码公共转私有继承开发规范守则 + +## 核心声明 + +本文档**唯一核心设计目的**:通过文件标识、分支隔离、操作规范、责任界定四重约束,**从根源规避私有开发分支代码被人为合并、推送、提交至公共开源主流分支的风险**,明确人为操作失误、违规合并的全部责任归属,同时保证私有分支可正常同步、拉取公共主流分支的上游更新。 + +## 一、文件宗旨与风险防控说明 + +本文件为 WinBoLL 项目公共开源分支转为私有独立分支开发的**强制标准化操作手册与责任界定文件**,核心风控目标: + +1. 严格隔离公共开源分支与私有开发分支,通过授权文件标记实现分支属性一眼可辨,杜绝人为操作混淆 + +2. **重点防控人为操作导致的私有分支代码违规合并、回合、推送至公共 ****`winboll`**** 主流分支**,从流程上封堵合并风险 + +3. 明确所有开发提交者的操作责任,违规合并公共分支的行为由操作人承担全部代码泄露、合规风险 + +4. 规范私有分支初始化全流程,保证私有分支仅可单向同步公共分支更新,禁止任何反向代码流入公共分支 + +## 二、公私分支授权标识文件定义(风控核心依据) + +### 1. 公共开源分支唯一标识 + +**文件名:LICENSE** + +- 仅允许存在于公共主流分支 `winboll` 及官方公共衍生分支 + +- 标识当前分支为**开源公开可贡献分支**,遵循原开源授权协议 + +- **严禁私有分支内保留、恢复此文件**,出现即判定分支属性异常 + +### 2. 私有开发分支唯一标识 + +**文件名:LICENSE-Private** + +- 仅允许存在于私有开发分支,**绝对禁止出现在公共 ****`winboll`**** 分支** + +- 标识当前分支为**私有闭源分支**,代码仅限内部使用,禁止公开、禁止对外贡献 + +- 为本分支私有属性的法定判定依据,也是禁止合并至公共分支的核心标记 + +## 三、分支管理与合并风控规则(强制遵守) + +1. **公共主流分支**:固定为 `winboll`,为项目唯一开源主线,仅保留 `LICENSE` 文件,**禁止接收任何私有分支的合并、提交、推送请求**。 + +2. **私有开发分支**:统一从 `winboll` 分支检出,命名固定格式为 `private-demo-*`,与公共分支物理隔离。 + +3. **核心合并风控铁则** + + - 私有分支 → 公共分支:**永久禁止任何形式的合并、推送、PR 提交、代码回合,人为操作也绝不允许** + + - 公共分支 → 私有分支:允许正常拉取、同步上游更新,不影响私有开发迭代 + +4. 所有仓库提交者、合并操作者,均视为已阅读并完全认可本规则,**人为执行私有分支向公共分支的合并操作,由操作人承担全部代码泄露、合规违约、项目安全风险**。 + +## 四、公共转私有标准化操作步骤(锁死合并风险) + +请严格按顺序执行,每一步均为风控必要环节,不可跳过、不可修改顺序。 + +1. 基于公共主流分支 `winboll`,新建私有开发分支,严格使用 `private-demo-*` 命名,从名称上明确分支私有属性,避免人为混淆。 + +2. 本地仓库切换至新建私有分支,确认当前分支名称、检出来源无误。 + +3. **永久删除项目根目录公共授权文件 ****`LICENSE`**,彻底移除公共分支标识,断绝误合并的标识漏洞。 + +4. 将本规范文件 `LICENSE-Private-Demo` 复制并重命名为 `LICENSE-Private`,作为私有分支生效授权文件。 + +5. 将以上所有变更执行一次性 Git 提交,**提交信息必须固定使用以下内容,不可修改**: + + > 初始化私有开发分支,已切换私有授权文件,本分支禁止任何人为合并、推送至 winboll 公共分支 + > + > + +6. 提交完成后,本分支正式转为私有开发状态,后续所有代码提交、分支合并、版本迭代,均严禁指向公共 `winboll` 分支。 + +## 五、人为操作责任界定(核心补充条款) + +1. 本分支所有开发者、代码提交者、分支合并操作者,均视为**完全知晓本分支的私有属性与合并禁令**,自愿遵守本规范全部约束。 + +2. **无论故意或过失,凡是人为执行私有分支向公共 ****`winboll`**** 分支的合并、推送、PR 提交、代码回合操作,全部责任由执行操作的本人独立承担**,项目方不承担任何因人为违规操作导致的代码泄露、开源合规、版本污染风险。 + +3. 仓库管理员需严格校验合并请求的分支标识与授权文件,发现带有 `LICENSE-Private` 标记的分支申请合并至公共分支,一律直接拒绝,并记录操作人信息。 + +4. 分支属性校验以根目录授权文件为唯一标准:只要分支内存在 `LICENSE-Private` 文件,就绝对禁止向公共分支发起任何合并操作。 + +## 六、分支状态校验与异常处理 + +- 合规公共分支:仅存在 `LICENSE`,无 `LICENSE-Private` + +- 合规私有分支:仅存在 `LICENSE-Private`,无 `LICENSE` + +- 异常状态:两个文件同时存在 / 均不存在 → 立即停止开发与提交,按本规范重置分支状态,严禁执行任何合并操作 + +> (注:文档部分内容可能由 AI 生成) diff --git a/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.docx b/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.docx new file mode 100644 index 0000000..0859049 Binary files /dev/null and b/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.docx differ diff --git a/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.pdf b/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.pdf new file mode 100644 index 0000000..10c3c11 Binary files /dev/null and b/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.pdf differ diff --git a/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.txt b/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.txt new file mode 100644 index 0000000..e191e48 --- /dev/null +++ b/LICENSE-Private-Demo_docs/WinBoLL_源码_LICENSE-Private-Demo_规范说明书.txt @@ -0,0 +1,97 @@ +# WinBoLL 源码 LICENSE\-Private\-Demo 规范说明书 + +# LICENSE\-Private\-Demo + +# WinBoLL 源码公共转私有继承开发规范守则 + +## 核心声明 + +本文档**唯一核心设计目的**:通过文件标识、分支隔离、操作规范、责任界定四重约束,**从根源规避私有开发分支代码被人为合并、推送、提交至公共开源主流分支的风险**,明确人为操作失误、违规合并的全部责任归属,同时保证私有分支可正常同步、拉取公共主流分支的上游更新。 + +## 一、文件宗旨与风险防控说明 + +本文件为 WinBoLL 项目公共开源分支转为私有独立分支开发的**强制标准化操作手册与责任界定文件**,核心风控目标: + +1. 严格隔离公共开源分支与私有开发分支,通过授权文件标记实现分支属性一眼可辨,杜绝人为操作混淆 + +2. **重点防控人为操作导致的私有分支代码违规合并、回合、推送至公共 ****`winboll`**** 主流分支**,从流程上封堵合并风险 + +3. 明确所有开发提交者的操作责任,违规合并公共分支的行为由操作人承担全部代码泄露、合规风险 + +4. 规范私有分支初始化全流程,保证私有分支仅可单向同步公共分支更新,禁止任何反向代码流入公共分支 + +## 二、公私分支授权标识文件定义(风控核心依据) + +### 1\. 公共开源分支唯一标识 + +**文件名:LICENSE** + +- 仅允许存在于公共主流分支 `winboll` 及官方公共衍生分支 + +- 标识当前分支为**开源公开可贡献分支**,遵循原开源授权协议 + +- **严禁私有分支内保留、恢复此文件**,出现即判定分支属性异常 + +### 2\. 私有开发分支唯一标识 + +**文件名:LICENSE\-Private** + +- 仅允许存在于私有开发分支,**绝对禁止出现在公共 ****`winboll`**** 分支** + +- 标识当前分支为**私有闭源分支**,代码仅限内部使用,禁止公开、禁止对外贡献 + +- 为本分支私有属性的法定判定依据,也是禁止合并至公共分支的核心标记 + +## 三、分支管理与合并风控规则(强制遵守) + +1. **公共主流分支**:固定为 `winboll`,为项目唯一开源主线,仅保留 `LICENSE` 文件,**禁止接收任何私有分支的合并、提交、推送请求**。 + +2. **私有开发分支**:统一从 `winboll` 分支检出,命名固定格式为 `private\-demo\-\*`,与公共分支物理隔离。 + +3. **核心合并风控铁则** + + - 私有分支 → 公共分支:**永久禁止任何形式的合并、推送、PR 提交、代码回合,人为操作也绝不允许** + + - 公共分支 → 私有分支:允许正常拉取、同步上游更新,不影响私有开发迭代 + +4. 所有仓库提交者、合并操作者,均视为已阅读并完全认可本规则,**人为执行私有分支向公共分支的合并操作,由操作人承担全部代码泄露、合规违约、项目安全风险**。 + +## 四、公共转私有标准化操作步骤(锁死合并风险) + +请严格按顺序执行,每一步均为风控必要环节,不可跳过、不可修改顺序。 + +1. 基于公共主流分支 `winboll`,新建私有开发分支,严格使用 `private\-demo\-\*` 命名,从名称上明确分支私有属性,避免人为混淆。 + +2. 本地仓库切换至新建私有分支,确认当前分支名称、检出来源无误。 + +3. **永久删除项目根目录公共授权文件 ****`LICENSE`**,彻底移除公共分支标识,断绝误合并的标识漏洞。 + +4. 将本规范文件 `LICENSE\-Private\-Demo` 复制并重命名为 `LICENSE\-Private`,作为私有分支生效授权文件。 + +5. 将以上所有变更执行一次性 Git 提交,**提交信息必须固定使用以下内容,不可修改**: + + > 初始化私有开发分支,已切换私有授权文件,本分支禁止任何人为合并、推送至 winboll 公共分支 + > + > + +6. 提交完成后,本分支正式转为私有开发状态,后续所有代码提交、分支合并、版本迭代,均严禁指向公共 `winboll` 分支。 + +## 五、人为操作责任界定(核心补充条款) + +1. 本分支所有开发者、代码提交者、分支合并操作者,均视为**完全知晓本分支的私有属性与合并禁令**,自愿遵守本规范全部约束。 + +2. **无论故意或过失,凡是人为执行私有分支向公共 ****`winboll`**** 分支的合并、推送、PR 提交、代码回合操作,全部责任由执行操作的本人独立承担**,项目方不承担任何因人为违规操作导致的代码泄露、开源合规、版本污染风险。 + +3. 仓库管理员需严格校验合并请求的分支标识与授权文件,发现带有 `LICENSE\-Private` 标记的分支申请合并至公共分支,一律直接拒绝,并记录操作人信息。 + +4. 分支属性校验以根目录授权文件为唯一标准:只要分支内存在 `LICENSE\-Private` 文件,就绝对禁止向公共分支发起任何合并操作。 + +## 六、分支状态校验与异常处理 + +- 合规公共分支:仅存在 `LICENSE`,无 `LICENSE\-Private` + +- 合规私有分支:仅存在 `LICENSE\-Private`,无 `LICENSE` + +- 异常状态:两个文件同时存在 / 均不存在 → 立即停止开发与提交,按本规范重置分支状态,严禁执行任何合并操作 + +> (注:文档部分内容可能由 AI 生成) diff --git a/LICENSE-Private-Demo_docs/long_pic_1778650008421587_503089827979333.jpg b/LICENSE-Private-Demo_docs/long_pic_1778650008421587_503089827979333.jpg new file mode 100644 index 0000000..77b5918 Binary files /dev/null and b/LICENSE-Private-Demo_docs/long_pic_1778650008421587_503089827979333.jpg differ diff --git a/aes/build.gradle b/aes/build.gradle index 899f105..8039c8c 100644 --- a/aes/build.gradle +++ b/aes/build.gradle @@ -24,13 +24,13 @@ android { defaultConfig { applicationId "cc.winboll.studio.aes" - minSdkVersion 21 + minSdkVersion 26 targetSdkVersion 30 versionCode 1 // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.15" + versionName "15.20" if(true) { versionName = genVersionName("${versionName}") } diff --git a/aes/build.properties b/aes/build.properties index d611252..4e746cb 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 25 04:16:42 HKT 2026 -stageCount=10 +#Tue May 12 13:11:28 HKT 2026 +stageCount=4 libraryProject=libaes -baseVersion=15.15 -publishVersion=15.15.9 +baseVersion=15.20 +publishVersion=15.20.3 buildCount=0 -baseBetaVersion=15.15.10 +baseBetaVersion=15.20.4 diff --git a/aes/src/main/res/values-night/styles.xml b/aes/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..5ac0e76 --- /dev/null +++ b/aes/src/main/res/values-night/styles.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/aes/src/main/res/values/styles.xml b/aes/src/main/res/values/styles.xml index 1da88ba..267068a 100644 --- a/aes/src/main/res/values/styles.xml +++ b/aes/src/main/res/values/styles.xml @@ -1,5 +1,16 @@ - + + + \ No newline at end of file diff --git a/appbase/build.gradle b/appbase/build.gradle index 7d90452..b95d796 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -24,13 +24,13 @@ android { defaultConfig { applicationId "cc.winboll.studio.appbase" - minSdkVersion 21 + minSdkVersion 26 targetSdkVersion 30 versionCode 1 // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.15" + versionName "15.20" if(true) { versionName = genVersionName("${versionName}") } diff --git a/appbase/build.properties b/appbase/build.properties index 4e84c0e..68642b1 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 28 17:08:30 HKT 2026 -stageCount=22 +#Tue May 12 09:17:15 HKT 2026 +stageCount=10 libraryProject=libappbase -baseVersion=15.15 -publishVersion=15.15.21 +baseVersion=15.20 +publishVersion=15.20.9 buildCount=0 -baseBetaVersion=15.15.22 +baseBetaVersion=15.20.10 diff --git a/appbase/src/main/AndroidManifest.xml b/appbase/src/main/AndroidManifest.xml index 5549b71..4c0df09 100644 --- a/appbase/src/main/AndroidManifest.xml +++ b/appbase/src/main/AndroidManifest.xml @@ -9,7 +9,9 @@ android:label="@string/app_name" android:theme="@style/MyAPPBaseTheme" android:resizeableActivity="true" - android:process=":App"> + android:process=":App" + android:sharedUserId="@string/shared_user_id" + android:sharedUserLabel="@string/shared_user_label"> - - - - - - - - + + = android.os.Build.VERSION_CODES.N) { - android.graphics.Rect bounds = new android.graphics.Rect(); - getWindow().getDecorView().getDisplay().getRectSize(bounds); - int height = bounds.height(); - int width = bounds.width(); - bounds.set(0, 0, width, height / 2); - LogUtils.d(TAG, "onSplitScreenMode() 分屏窗口范围: " + bounds); - android.content.Intent intent = new android.content.Intent(this, MainActivityAlias.class); - intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK); - LogUtils.d(TAG, "onSplitScreenMode() 准备启动MainActivityAlias"); - android.app.ActivityOptions options = android.app.ActivityOptions.makeBasic(); - options.setLaunchBounds(bounds); - startActivity(intent, options.toBundle()); - LogUtils.d(TAG, "onSplitScreenMode() MainActivityAlias已启动"); - } - } + public void onMultiInstance(View view) { LogUtils.d(TAG, "onMultiInstance() 多开窗口按钮已点击"); diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivityAlias.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivityAlias.java deleted file mode 100644 index 776a0f0..0000000 --- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivityAlias.java +++ /dev/null @@ -1,17 +0,0 @@ -package cc.winboll.studio.appbase; - -import android.os.Bundle; -import android.view.View; -import android.widget.Toolbar; -import cc.winboll.studio.appbase.R; - -public class MainActivityAlias extends MainActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - Toolbar toolbar = findViewById(R.id.toolbar); - setActionBar(toolbar); - } -} \ No newline at end of file diff --git a/appbase/src/main/res/layout-night/activity_about.xml b/appbase/src/main/res/layout-night/activity_about.xml new file mode 100644 index 0000000..f8af6b0 --- /dev/null +++ b/appbase/src/main/res/layout-night/activity_about.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/appbase/src/main/res/layout-night/activity_main.xml b/appbase/src/main/res/layout-night/activity_main.xml new file mode 100644 index 0000000..383caad --- /dev/null +++ b/appbase/src/main/res/layout-night/activity_main.xml @@ -0,0 +1,106 @@ + + + + + + + + + +