From c5715a86ca4ad21372d028bdbcbb17cecc5af68d Mon Sep 17 00:00:00 2001
From: Armand <4831c0@proton.me>
Date: Sun, 10 Aug 2025 19:47:01 +0200
Subject: [PATCH] android: widget skeleton
---
firka/android/app/build.gradle.kts | 6 +++
.../android/app/src/main/AndroidManifest.xml | 11 +++++
.../app/firka/naplo/glance/AppWidget.kt | 45 +++++++++++++++++++
.../naplo/glance/TimetableWidgetReceiver.kt | 7 +++
.../app/src/main/res/xml/timetable_widget.xml | 7 +++
firka/pubspec.yaml | 1 +
6 files changed, 77 insertions(+)
create mode 100644 firka/android/app/src/main/kotlin/app/firka/naplo/glance/AppWidget.kt
create mode 100644 firka/android/app/src/main/kotlin/app/firka/naplo/glance/TimetableWidgetReceiver.kt
create mode 100644 firka/android/app/src/main/res/xml/timetable_widget.xml
diff --git a/firka/android/app/build.gradle.kts b/firka/android/app/build.gradle.kts
index 5e2136d..eae246c 100644
--- a/firka/android/app/build.gradle.kts
+++ b/firka/android/app/build.gradle.kts
@@ -10,6 +10,7 @@ import java.util.zip.ZipOutputStream.STORED
plugins {
id("com.android.application")
id("kotlin-android")
+ id("org.jetbrains.kotlin.plugin.compose") version "2.2.0"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
}
@@ -32,6 +33,10 @@ android {
targetCompatibility = JavaVersion.VERSION_17
}
+ buildFeatures {
+ compose = true
+ }
+
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
@@ -97,6 +102,7 @@ android {
}
dependencies {
implementation("androidx.wear:wear-ongoing:1.0.0")
+ implementation("androidx.glance:glance-appwidget:1.1.1")
}
flutter {
diff --git a/firka/android/app/src/main/AndroidManifest.xml b/firka/android/app/src/main/AndroidManifest.xml
index 1069cd7..b2c38f1 100644
--- a/firka/android/app/src/main/AndroidManifest.xml
+++ b/firka/android/app/src/main/AndroidManifest.xml
@@ -31,6 +31,17 @@
+
+
+
+
+
+
+
+
?
+ get() = HomeWidgetGlanceStateDefinition()
+
+ override suspend fun provideGlance(context: Context, id: GlanceId) {
+ provideContent {
+ GlanceContent(context, currentState())
+ }
+ }
+
+ @Composable
+ private fun GlanceContent(context: Context, currentState: HomeWidgetGlanceState) {
+ val prefs = currentState.preferences
+ val counter = prefs.getInt("counter", 0)
+ Box(modifier = GlanceModifier.background(Color.White).padding(16.dp)) {
+ Column {
+ Text(
+ counter.toString()
+ )
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/firka/android/app/src/main/kotlin/app/firka/naplo/glance/TimetableWidgetReceiver.kt b/firka/android/app/src/main/kotlin/app/firka/naplo/glance/TimetableWidgetReceiver.kt
new file mode 100644
index 0000000..eb6371c
--- /dev/null
+++ b/firka/android/app/src/main/kotlin/app/firka/naplo/glance/TimetableWidgetReceiver.kt
@@ -0,0 +1,7 @@
+package app.firka.naplo.glance
+
+import HomeWidgetGlanceWidgetReceiver
+
+class TimetableWidgetReceiver : HomeWidgetGlanceWidgetReceiver() {
+ override val glanceAppWidget = AppWidget()
+}
\ No newline at end of file
diff --git a/firka/android/app/src/main/res/xml/timetable_widget.xml b/firka/android/app/src/main/res/xml/timetable_widget.xml
new file mode 100644
index 0000000..d3ae3f0
--- /dev/null
+++ b/firka/android/app/src/main/res/xml/timetable_widget.xml
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/firka/pubspec.yaml b/firka/pubspec.yaml
index c558c3e..1c2053d 100644
--- a/firka/pubspec.yaml
+++ b/firka/pubspec.yaml
@@ -58,6 +58,7 @@ dependencies:
flutter_screenutil: ^5.9.3
flutter_arc_text: ^0.6.0
flutter_svg: ^1.1.6
+ home_widget: ^0.8.0
dev_dependencies:
flutter_test: