From 9550889bdfcf5ef33039a3327ed04b7cc8a9366a Mon Sep 17 00:00:00 2001 From: grtsinry43 Date: Wed, 23 Apr 2025 10:24:20 +0800 Subject: [PATCH] feat: Introduce Network Functionality and Screen Time Implementation - Implement `NetworkModule` for HTTP client management with JSON serialization. - Add `kotlinx-serialization-json` and `ktor-client` dependencies. - Update `Greeting` class to perform network requests to fetch and display time data. - Add `NetworkResponse` and `TimeResponse` data classes for handling the remote API response. - Introduce `ScreenTime` interface for platform-specific screen time data. - Implement `ScreenTime` for Linux and Android, with basic or placeholder logic. - Add `INTERNET` and `ACCESS_NETWORK_STATE` permissions to Android's `AndroidManifest.xml`. - Add `ScreenTime.native.kt`, `ScreenTime.jvm.kt` and `ScreenTime.android.kt` to separate platform-specific code. - Implement `kotlin("plugin.serialization")` plugin in shared module. - Update dependencies. - Add `ignoreUnknownKeys` and `coerceInputValues` for JSON serialization. - Update `App` to display time data from remote API. --- .../src/androidMain/AndroidManifest.xml | 5 +++ .../com/grtsinry43/activityanalyzer/App.kt | 13 ++++++- gradle/libs.versions.toml | 8 ++-- shared/build.gradle.kts | 2 + .../grtsinry43/activityanalyzer/ScreenTime.kt | 8 ++++ .../grtsinry43/activityanalyzer/Greeting.kt | 18 +++------ .../activityanalyzer/NetworkModule.kt | 2 + .../grtsinry43/activityanalyzer/ScreenTime.kt | 12 ++++++ .../grtsinry43/activityanalyzer/ScreenTime.kt | 38 +++++++++++++++++++ .../activityanalyzer/ScreenTime.native.kt | 5 +++ 10 files changed, 93 insertions(+), 18 deletions(-) create mode 100644 shared/src/androidMain/kotlin/com/grtsinry43/activityanalyzer/ScreenTime.kt create mode 100644 shared/src/commonMain/kotlin/com/grtsinry43/activityanalyzer/ScreenTime.kt create mode 100644 shared/src/jvmMain/kotlin/com/grtsinry43/activityanalyzer/ScreenTime.kt create mode 100644 shared/src/nativeMain/kotlin/com/grtsinry43/activityanalyzer/ScreenTime.native.kt diff --git a/composeApp/src/androidMain/AndroidManifest.xml b/composeApp/src/androidMain/AndroidManifest.xml index c5db0b1..d56ee80 100644 --- a/composeApp/src/androidMain/AndroidManifest.xml +++ b/composeApp/src/androidMain/AndroidManifest.xml @@ -1,6 +1,11 @@ + + + + +