From df0aa16d8ef506286dfe139b53d92b904bd78fb3 Mon Sep 17 00:00:00 2001 From: xfy Date: Wed, 20 May 2026 13:55:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=85=B3=E4=BA=8E?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=B8=8E=E5=BC=80=E6=BA=90=E8=AE=B8=E5=8F=AF?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 AboutActivity、LicensesActivity 及对应的 Slide 转场动画 - MainActivity 接入 CalendarMonthView,支持导航到关于页面 - 移除 composeResources 下的 AGENTS.md Co-Authored-By: Claude Opus 4.7 (1M context) --- androidApp/src/main/AndroidManifest.xml | 8 ++++ .../kotlin/plus/rua/project/AboutActivity.kt | 48 +++++++++++++++++++ .../plus/rua/project/LicensesActivity.kt | 40 ++++++++++++++++ .../kotlin/plus/rua/project/MainActivity.kt | 17 +++++-- .../src/main/res/anim/slide_in_left.xml | 7 +++ .../src/main/res/anim/slide_in_right.xml | 7 +++ .../src/main/res/anim/slide_out_left.xml | 7 +++ .../src/main/res/anim/slide_out_right.xml | 7 +++ .../src/commonMain/composeResources/AGENTS.md | 26 ---------- 9 files changed, 138 insertions(+), 29 deletions(-) create mode 100644 androidApp/src/main/kotlin/plus/rua/project/AboutActivity.kt create mode 100644 androidApp/src/main/kotlin/plus/rua/project/LicensesActivity.kt create mode 100644 androidApp/src/main/res/anim/slide_in_left.xml create mode 100644 androidApp/src/main/res/anim/slide_in_right.xml create mode 100644 androidApp/src/main/res/anim/slide_out_left.xml create mode 100644 androidApp/src/main/res/anim/slide_out_right.xml delete mode 100644 shared/src/commonMain/composeResources/AGENTS.md diff --git a/androidApp/src/main/AndroidManifest.xml b/androidApp/src/main/AndroidManifest.xml index edf4072..88c3208 100644 --- a/androidApp/src/main/AndroidManifest.xml +++ b/androidApp/src/main/AndroidManifest.xml @@ -18,6 +18,14 @@ + + + + \ No newline at end of file diff --git a/androidApp/src/main/kotlin/plus/rua/project/AboutActivity.kt b/androidApp/src/main/kotlin/plus/rua/project/AboutActivity.kt new file mode 100644 index 0000000..50a6839 --- /dev/null +++ b/androidApp/src/main/kotlin/plus/rua/project/AboutActivity.kt @@ -0,0 +1,48 @@ +package plus.rua.project + +import android.content.Intent +import android.os.Build +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import plus.rua.project.ui.AboutScreen + +class AboutActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + overrideActivityTransition( + OVERRIDE_TRANSITION_OPEN, + R.anim.slide_in_right, + R.anim.slide_out_left + ) + overrideActivityTransition( + OVERRIDE_TRANSITION_CLOSE, + R.anim.slide_in_left, + R.anim.slide_out_right + ) + } + + setContent { + AboutScreen( + onBack = { + finish() + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + @Suppress("DEPRECATION") + overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right) + } + }, + onNavigateToLicenses = { + startActivity(Intent(this, LicensesActivity::class.java)) + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + @Suppress("DEPRECATION") + overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) + } + } + ) + } + } +} diff --git a/androidApp/src/main/kotlin/plus/rua/project/LicensesActivity.kt b/androidApp/src/main/kotlin/plus/rua/project/LicensesActivity.kt new file mode 100644 index 0000000..4e25155 --- /dev/null +++ b/androidApp/src/main/kotlin/plus/rua/project/LicensesActivity.kt @@ -0,0 +1,40 @@ +package plus.rua.project + +import android.os.Build +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import plus.rua.project.ui.LicensesScreen + +class LicensesActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + overrideActivityTransition( + OVERRIDE_TRANSITION_OPEN, + R.anim.slide_in_right, + R.anim.slide_out_left + ) + overrideActivityTransition( + OVERRIDE_TRANSITION_CLOSE, + R.anim.slide_in_left, + R.anim.slide_out_right + ) + } + + setContent { + LicensesScreen( + onBack = { + finish() + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + @Suppress("DEPRECATION") + overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right) + } + } + ) + } + } +} diff --git a/androidApp/src/main/kotlin/plus/rua/project/MainActivity.kt b/androidApp/src/main/kotlin/plus/rua/project/MainActivity.kt index eb8f16d..b30b016 100644 --- a/androidApp/src/main/kotlin/plus/rua/project/MainActivity.kt +++ b/androidApp/src/main/kotlin/plus/rua/project/MainActivity.kt @@ -1,11 +1,14 @@ package plus.rua.project +import android.content.Intent +import android.os.Build import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview +import plus.rua.project.ui.CalendarMonthView class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -13,7 +16,15 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) setContent { - App() + CalendarMonthView( + onNavigateToAbout = { + startActivity(Intent(this, AboutActivity::class.java)) + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + @Suppress("DEPRECATION") + overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) + } + } + ) } } } @@ -21,5 +32,5 @@ class MainActivity : ComponentActivity() { @Preview @Composable fun AppAndroidPreview() { - App() -} \ No newline at end of file + CalendarMonthView() +} diff --git a/androidApp/src/main/res/anim/slide_in_left.xml b/androidApp/src/main/res/anim/slide_in_left.xml new file mode 100644 index 0000000..e77d682 --- /dev/null +++ b/androidApp/src/main/res/anim/slide_in_left.xml @@ -0,0 +1,7 @@ + + diff --git a/androidApp/src/main/res/anim/slide_in_right.xml b/androidApp/src/main/res/anim/slide_in_right.xml new file mode 100644 index 0000000..2d0ad18 --- /dev/null +++ b/androidApp/src/main/res/anim/slide_in_right.xml @@ -0,0 +1,7 @@ + + diff --git a/androidApp/src/main/res/anim/slide_out_left.xml b/androidApp/src/main/res/anim/slide_out_left.xml new file mode 100644 index 0000000..6cf3ee1 --- /dev/null +++ b/androidApp/src/main/res/anim/slide_out_left.xml @@ -0,0 +1,7 @@ + + diff --git a/androidApp/src/main/res/anim/slide_out_right.xml b/androidApp/src/main/res/anim/slide_out_right.xml new file mode 100644 index 0000000..9a000bf --- /dev/null +++ b/androidApp/src/main/res/anim/slide_out_right.xml @@ -0,0 +1,7 @@ + + diff --git a/shared/src/commonMain/composeResources/AGENTS.md b/shared/src/commonMain/composeResources/AGENTS.md deleted file mode 100644 index e068d4f..0000000 --- a/shared/src/commonMain/composeResources/AGENTS.md +++ /dev/null @@ -1,26 +0,0 @@ - - - -# composeResources - -## Purpose -Compose Multiplatform 共享资源目录,存放跨平台可访问的图片和文件资源。 - -## Key Files - -无(目录仅包含子目录) - -## Subdirectories - -| Directory | Purpose | -|-----------|---------| -| `drawable/` | 图片资源(图标、插图等) | -| `files/` | 原始文件资源 | - -## For AI Agents - -### Working In This Directory -- 资源通过 Compose 的 `Res` 对象访问(如 `Res.drawable.xxx`) -- 添加新资源后需重新编译以生成访问代码 - -