Skip to content

Release/v1.6.3#1381

Open
Tri250 wants to merge 35 commits into
CyberTimon:mainfrom
Tri250:release/v1.6.3
Open

Release/v1.6.3#1381
Tri250 wants to merge 35 commits into
CyberTimon:mainfrom
Tri250:release/v1.6.3

Conversation

@Tri250

@Tri250 Tri250 commented Jul 15, 2026

Copy link
Copy Markdown

Description

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Performance improvement
  • Code refactoring
  • Documentation update
  • UI/UX improvement
  • Build/CI or Dependency update

Changes Made

Screenshots/Videos

Testing

  • I have tested these changes locally and confirmed that they work as expected without issues

Test Configuration:

  • OS: (e.g. Windows 11, macOS Sonoma, Ubuntu 24.04)
  • Hardware: (e.g. Intel i7, Apple M2, Nvidia RTX 3060)

Checklist

  • My code follows the project's code style
  • I haven't added unnecessary AI-generated code comments
  • My changes generate no new warnings or errors

Additional Notes

AI Disclaimer:

Please state the involvement of AI in this PR:

  • This PR is entirely AI-generated
  • This PR is AI-generated but guided by a human
  • This PR was handwritten with AI assistance (spell check, logic suggestions, error resolving)
  • This PR contains only blood, sweat, and coffee (AI-free)

RapidRAW Android Bot and others added 30 commits July 12, 2026 00:57
- 权限:Android 13+ 细粒度媒体权限、EXIF GPS、MANAGE_EXTERNAL_STORAGE、Intent Filters
- AI引擎:5个ONNX模型强制CPU EP、移除Android无用的register_exit_handler
- 崩溃恢复:独立 .android_crash_flag 检测与保守设置回退
- 安全:CSP策略、network_security_config.xml (强制HTTPS)、ProGuard规则
- UI/UX:Android WebView触摸优化、Edge-to-Edge沉浸式
- 性能:minSdk 26、R8 shrinkResources、NDK ABI过滤、Rayon线程池限制
- 新增:PermissionHelper.java、ExportForegroundService.java、android_permissions.rs
- 操作链路:MainActivity Intent转发、权限结果回调、启动时自动权限检查
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
- P1-C8: 新增EditHistoryPanel.tsx前端组件,支持分支历史树可视化
- P3: 新增OnboardingManager.kt新手引导管理器
- P3: 新增FoldableAdapter.kt折叠屏/平板/横屏适配器
- 集成到MainActivity: 引导页检测、设备状态通知、折叠屏适配
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
- 新增 TauriActivity.kt 基类(AppCompatActivity 子类),提供 Tauri 2.x Android 生命周期方法
- 修复 MainActivity.kt:移除与父类冲突的 webView 声明,添加 onSwipeLeft/onSwipeRight 实现
- 修复 ComparisonViewManager.kt:context 参数改为属性
- 修复 FoldableAdapter.kt:移除不存在的 android.window.ScreenArea 导入,修复 currentWindowMetrics API
- 修复 ImagePickerHelper.kt:Activity 改为 ComponentActivity,修正 ActivityResultLauncher 泛型
- 修复 StorageHelper.kt:逻辑非运算符优先级错误
- Android APK 构建成功:5 个 ABI (arm64/arm/x86_64/x86/universal)
关键修复:
- CRITICAL: 添加 Splash 主题回退(values/themes.xml),修复 API 26-30 启动崩溃
- CRITICAL: 添加 16KB 页大小对齐(CMake + Cargo.toml),Android 15+ 必需
- CRITICAL: 修复 fitsSystemWindows 与 enableEdgeToEdge 冲突,改用 WindowInsetsCompat
- HIGH: ExportForegroundService 使用 ContextCompat.startForegroundService (Android 14+)
- HIGH: PermissionHelper 移除废弃的 startActivityForResult
- HIGH: StorageHelper 使用 getExternalFilesDir 替代废弃的 getExternalStorageDirectory
- HIGH: 移除 ThumbnailAccelerator 的 RenderScript 死代码 (Android 14+ 已移除)
- HIGH: gpu_processing.rs panic 改为优雅错误处理,避免 Android Surface 失效时崩溃
- MEDIUM: gradle.properties 添加 R8 fullMode、compileSdk 36 抑制、并行/缓存优化
- 添加 System.loadLibrary("rapidraw_lib") 启动 Tauri 运行时
- 修复 onRestoreInstanceState 调用错误的 super 方法
- BuildTask.groovy: 检测jniLibs预编译.so,存在则跳过tauri CLI构建
- tauri.build.gradle.kts: 修正前端dist路径为../../../../dist
根本原因: 项目缺少Tauri移动端架构所需的核心Kotlin类,
导致WebView无法通过JNI正确创建和加载。

修复内容:
- 添加 WryActivity.kt - Tauri官方Activity基类(含setWebView、生命周期回调)
- 添加 RustWebView.kt - WebView子类(含evalScript、IPC支持)
- 添加 RustWebViewClient.kt - WebViewClient(自定义协议、资源加载)
- 添加 RustWebChromeClient.kt - WebChromeClient(权限、文件选择)
- 添加 Ipc.kt - JS与Rust之间的IPC桥接
- 添加 Rust.kt - JNI绑定 + System.loadLibrary
- 添加 Logger.kt - 日志工具类
- MainActivity: 继承自WryActivity而非TauriActivity
- PermissionHelper.java: 合并wry版本的权限检查方法
- build.gradle.kts: 添加lifecycle依赖
- 删除空壳 TauriActivity.kt

兼容安卓15-16系统。
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
添加 jackson-databind/core/annotations 2.15.3、kotlinx-coroutines-android 1.6.4、
kotlinx-coroutines-core-jvm 1.7.3 的本地 Maven 仓库缓存,
用于在网络受限环境中支持 Gradle --offline 构建模式。
- Update version to 1.6.0 in tauri.conf.json, package.json, tauri.properties
- Configure Gradle mirrors (Aliyun + dl.google.com) for Chinese network
- Configure Cargo mirror (USTC) for Chinese network
- Add Android signing keystore for release builds
- Update ProGuard rules with Tauri/JNI/WebView keep rules
- Harden CSP by removing localhost from connect-src for production
- Migrate .cargo/config to .cargo/config.toml
- Add Android cross-compile linker config and 16KB page alignment
- Move Android rustflags from Cargo.toml to .cargo/config.toml
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
@Tri250
Tri250 requested a review from CyberTimon as a code owner July 15, 2026 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant