Compare commits

...

31 commits

Author SHA1 Message Date
9f8c113ed8 chore(deps): update dependency androidx.activity:activity-compose to v1.10.1 (#30)
All checks were successful
Build / build (push) Successful in 6m44s
Reviewed-on: #30
2025-06-21 20:37:47 +01:00
54bb769774 chore(deps): update kotlin to v2.1.21 (#37)
Some checks failed
Build / build (push) Has been cancelled
Reviewed-on: #37
2025-06-21 20:37:31 +01:00
472aca6f7f chore(deps): update kotlin to v2.1.21
All checks were successful
Build / build (pull_request) Successful in 8m15s
2025-06-21 19:04:33 +00:00
6a4eae24cf chore(deps): update dependency androidx.activity:activity-compose to v1.10.1
All checks were successful
Build / build (pull_request) Successful in 8m14s
2025-06-21 19:04:30 +00:00
f74f6840ef chore(deps): update androidx.lifecycle to v2.9.1 (#38)
All checks were successful
Build / build (push) Successful in 6m53s
Reviewed-on: #38
2025-06-21 19:32:25 +01:00
81fab5a147 chore(deps): update dependency gradle to v8.14.2 (#35)
Some checks are pending
Build / build (push) Waiting to run
Reviewed-on: #35
2025-06-21 19:32:03 +01:00
319f344145 chore(deps): update agp to v8.10.1 (#34)
Some checks failed
Build / build (push) Has been cancelled
Reviewed-on: #34
2025-06-21 19:31:48 +01:00
cdff3c2046 chore(deps): update dependency androidx.appcompat:appcompat to v1.7.1 (#39)
Some checks failed
Build / build (push) Has been cancelled
Reviewed-on: #39
2025-06-21 19:31:32 +01:00
440136b278 chore(deps): update androidx.lifecycle to v2.9.1
All checks were successful
Build / build (pull_request) Successful in 7m27s
2025-06-17 16:12:00 +00:00
883950315b chore(deps): update dependency gradle to v8.14.2
All checks were successful
Build / build (pull_request) Successful in 6m55s
2025-06-05 14:18:51 +00:00
b8e52049ad chore(deps): update dependency androidx.appcompat:appcompat to v1.7.1
All checks were successful
Build / build (pull_request) Successful in 7m48s
2025-06-04 18:03:40 +00:00
57c51b74ed chore(deps): update agp to v8.10.1
All checks were successful
Build / build (pull_request) Successful in 9m32s
2025-05-28 19:19:37 +00:00
468af55af4 chore(deps): update dependency androidx.constraintlayout:constraintlayout to v2.2.1
Some checks failed
Build / build (push) Failing after 14m30s
2025-04-19 16:00:57 +01:00
65905bf3c9 chore(deps): update kotlin to v2.1.20
Some checks failed
Build / build (push) Has been cancelled
2025-04-19 16:00:45 +01:00
bb7401461f chore(deps): update agp to v8.9.1
Some checks failed
Build / build (push) Has been cancelled
2025-04-19 16:00:32 +01:00
d0fee3c868 chore(deps): update dependency androidx.core:core-ktx to v1.16.0
All checks were successful
Build / build (pull_request) Successful in 6m45s
Build / build (push) Successful in 3m12s
2025-04-18 10:07:08 +00:00
eccf2870f9 chore(deps): update dependency gradle to v8.13 (#28)
All checks were successful
Build / build (push) Successful in 6m12s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gradle](https://gradle.org) ([source](https://github.com/gradle/gradle)) | minor | `8.12.1` -> `8.13` |

---

### Release Notes

<details>
<summary>gradle/gradle (gradle)</summary>

### [`v8.13`](https://github.com/gradle/gradle/releases/tag/v8.13.0): 8.13

[Compare Source](https://github.com/gradle/gradle/compare/v8.12.1...v8.13.0)

The Gradle team is excited to announce Gradle 8.13.

[Read the Release Notes](https://docs.gradle.org/8.13/release-notes.html)

We would like to thank the following community members for their contributions to this release of Gradle:
[Adam](https://github.com/adam-enko),
[Adam](https://github.com/aSemy),
[Ahmad Al-Masry](https://github.com/AhmadMasry),
[Ahmed Ehab](https://github.com/ahmedehabb),
[Aurimas](https://github.com/liutikas),
[Baptiste Decroix](https://github.com/bdecroix-spiria),
[Björn Kautler](https://github.com/Vampire),
[Borewit](https://github.com/Borewit),
[Jorge Matamoros](https://github.com/YungOkra),
[Lei Zhu](https://github.com/Korov),
[Madalin Valceleanu](https://github.com/vmadalin),
[Mohammed Thavaf](https://github.com/mthavaf),
[Patrick Brückner](https://github.com/madmuffin1),
[Philip Wedemann](https://github.com/hfhbd),
[Roberto Perez Alcolea](https://github.com/rpalcolea),
[Róbert Papp](https://github.com/TWiStErRob),
[Semyon Gaschenko](https://github.com/gasches),
[Shi Chen](https://github.com/CsCherrYY),
[Stefan M.](https://github.com/StefMa),
[Steven Schoen](https://github.com/DSteve595),
[tg-freigmbh](https://github.com/tg-freigmbh),
[TheGoesen](https://github.com/TheGoesen),
[Tony Robalik](https://github.com/autonomousapps),
[Zongle Wang](https://github.com/Goooler).

#### Upgrade instructions

Switch your build to use Gradle 8.13 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.13 && ./gradlew wrapper

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.13/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.13/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODAuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE4MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #28
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-03-06 20:26:38 +00:00
4dfe87aa53 chore(deps): update agp to v8.8.1 (#27)
Some checks failed
Build / build (push) Failing after 1m11s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.android.library](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | plugin | patch | `8.8.0` -> `8.8.1` |
| [com.android.application](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | plugin | patch | `8.8.0` -> `8.8.1` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjkuMyIsInVwZGF0ZWRJblZlciI6IjM5LjE2OS4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #27
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-02-20 23:03:42 +00:00
c96d070c00 chore(deps): update dependency androidx.activity:activity-compose to v1.10.0 (#22)
All checks were successful
Build / build (push) Successful in 6m46s
Reviewed-on: #22
2025-01-27 15:24:39 +00:00
ben
38c6206f5b fix(deps): promote compile SDK
* Needed by activity compose
2025-01-27 15:24:39 +00:00
785e6f2c78 chore(deps): update dependency androidx.activity:activity-compose to v1.10.0 2025-01-27 15:24:39 +00:00
4cce0a5108 chore(deps): update kotlin to v2.1.10 (#26)
All checks were successful
Build / build (push) Successful in 4m50s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [org.jetbrains.kotlin.multiplatform](https://kotlinlang.org/) ([source](https://github.com/JetBrains/kotlin)) | plugin | patch | `2.1.0` -> `2.1.10` |
| [org.jetbrains.kotlin.plugin.compose](https://kotlinlang.org/) ([source](https://github.com/JetBrains/kotlin)) | plugin | patch | `2.1.0` -> `2.1.10` |
| [org.jetbrains.kotlin:kotlin-test-junit](https://kotlinlang.org/) ([source](https://github.com/JetBrains/kotlin)) | dependencies | patch | `2.1.0` -> `2.1.10` |
| [org.jetbrains.kotlin:kotlin-test](https://kotlinlang.org/) ([source](https://github.com/JetBrains/kotlin)) | dependencies | patch | `2.1.0` -> `2.1.10` |

---

### Release Notes

<details>
<summary>JetBrains/kotlin (org.jetbrains.kotlin.multiplatform)</summary>

### [`v2.1.10`](https://github.com/JetBrains/kotlin/releases/tag/v2.1.10): Kotlin 2.1.10

##### Changelog

##### Compiler

-   [`KT-73858`](https://youtrack.jetbrains.com/issue/KT-73858) Compose  / iOS: NullPointerException on building
-   [`KT-73454`](https://youtrack.jetbrains.com/issue/KT-73454) K2: Fix type parameters mapping for typealiases with inner RHS
-   [`KT-73043`](https://youtrack.jetbrains.com/issue/KT-73043) K2 Compiler does not allow references to inner constructors with typealiases
-   [`KT-74040`](https://youtrack.jetbrains.com/issue/KT-74040) Compilation of inner class usage does not check the visibility of parent class during compilation in different rounds
-   [`KT-73339`](https://youtrack.jetbrains.com/issue/KT-73339) K2: "VerifyError: Bad type on operand stack" because of missing implicit cast on generic field receiver with star projection
-   [`KT-72585`](https://youtrack.jetbrains.com/issue/KT-72585) K2: Compilation failure when upgrading to Kotlin 2.0.20+: Cannot replace top-level type with star projection: S
-   [`KT-73399`](https://youtrack.jetbrains.com/issue/KT-73399) compile-time JVM codegen failure on a KProperty argument of a KSuspendFunction parameter
-   [`KT-72725`](https://youtrack.jetbrains.com/issue/KT-72725) KMP: Unsupported actualization of inherited java field in expect class
-   [`KT-73153`](https://youtrack.jetbrains.com/issue/KT-73153) K2: Standalone diagnostics on type arguments are not reported

##### Compose compiler

-   [`CMP-5680`](https://youtrack.jetbrains.com/issue/CMP-5680) Compose compiler: unexpected stability warnings for classes compiled with 2.0.10
-   [`b/381407900`](https://issuetracker.google.com/issues/381407900) Avoid adding Compose annotations on synthetic classes

##### IR. Inlining

-   [`KT-73981`](https://youtrack.jetbrains.com/issue/KT-73981) Cherry-pick the fix for KT-73482 to 2.1.10

##### JavaScript

-   [`KT-70778`](https://youtrack.jetbrains.com/issue/KT-70778) Kotlin Js companion is undefined  in production build
-   [`KT-73130`](https://youtrack.jetbrains.com/issue/KT-73130) KJS: Missed `break` for do/while in generated JS code
-   [`KT-58797`](https://youtrack.jetbrains.com/issue/KT-58797) Optimize the code generated for objects on JS and Wasm backends

##### Klibs

-   [`KT-70146`](https://youtrack.jetbrains.com/issue/KT-70146) \[KLIB Resolve] Don't fail on nonexistent transitive dependency
-   [`KT-73951`](https://youtrack.jetbrains.com/issue/KT-73951) Workaround for "Partial linkage engine may not patch some discrepancies in IR when compiling Kotlin/Native static caches" in 2.1.10

##### Native

-   [`KT-73559`](https://youtrack.jetbrains.com/issue/KT-73559) K/Native: AndroidNativeArm64 linking fails starting from Kotlin 2.1.0

##### Tools. CLI

-   [`KT-73967`](https://youtrack.jetbrains.com/issue/KT-73967) JDK 25: "IllegalArgumentException: 25-ea" with EA builds

##### Tools. Daemon

-   [`KT-73311`](https://youtrack.jetbrains.com/issue/KT-73311) "Unable to release compile session, maybe daemon is already down" flakiness

##### Tools. Gradle

-   [`KT-73728`](https://youtrack.jetbrains.com/issue/KT-73728) 'generatePomFileForMavenPublication' creates pom with dependencies with 'unspecified' version

##### Tools. Gradle. Multiplatform

-   [`KT-73620`](https://youtrack.jetbrains.com/issue/KT-73620) KMP 2.1.0: Transitive dependency is broken when setting publication groupId

##### Tools. Gradle. Native

-   [`KT-73572`](https://youtrack.jetbrains.com/issue/KT-73572) \[Gradle] `kotlin.native.cacheKind=none` doesn't work anymore
-   [`KT-71419`](https://youtrack.jetbrains.com/issue/KT-71419) Light bundle KGP IT run against a stable K/N version

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMzQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEzNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #26
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-27 15:11:29 +00:00
fe36344cd4 chore(deps): update agp to v8.8.0 (#19)
All checks were successful
Build / build (push) Successful in 7m39s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.android.library](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | plugin | minor | `8.5.2` -> `8.8.0` |
| [com.android.application](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | plugin | minor | `8.5.2` -> `8.8.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEyMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #19
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-26 21:13:30 +00:00
a41ee75b03 chore(deps): update dependency gradle to v8.12.1 (#23)
All checks were successful
Build / build (push) Successful in 8m4s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gradle](https://gradle.org) ([source](https://github.com/gradle/gradle)) | minor | `8.9` -> `8.12.1` |

---

### Release Notes

<details>
<summary>gradle/gradle (gradle)</summary>

### [`v8.12.1`](https://github.com/gradle/gradle/releases/tag/v8.12.1): 8.12.1

[Compare Source](https://github.com/gradle/gradle/compare/v8.12.0...v8.12.1)

The Gradle team is excited to announce Gradle 8.12.1.

[Read the Release Notes](https://docs.gradle.org/8.12.1/release-notes.html)

We would like to thank the following community members for their contributions to this release of Gradle:
[Abhiraj Adhikary](https://github.com/abhirajadhikary06),
[Ayush Saxena](https://github.com/Ayushcode10),
[Björn Kautler](https://github.com/Vampire),
[davidburstrom](https://github.com/davidburstrom),
[Dominic Fellbaum](https://github.com/felldo),
[Emmanuel Ferdman](https://github.com/emmanuel-ferdman),
[Finn Petersen](https://github.com/fp7),
[Johnny Lim](https://github.com/izeye),
[Mahdi Hosseinzadeh](https://github.com/mahozad),
[Martin Bonnin](https://github.com/martinbonnin),
[Paint_Ninja](https://github.com/PaintNinja),
[Petter Måhlén](https://github.com/pettermahlen),
[Philip Wedemann](https://github.com/hfhbd),
[stegeto22](https://github.com/stegeto22),
[Tanish](https://github.com/Taz03),
[TheGoesen](https://github.com/TheGoesen),
[Tim Nielens](https://github.com/tnielens),
[Trout Zhang](https://github.com/TroutZhang),
[Victor Merkulov](https://github.com/urdak)

#### Upgrade instructions

Switch your build to use Gradle 8.12.1 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.12.1

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.12.1/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.12.1/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

### [`v8.12`](https://github.com/gradle/gradle/releases/tag/v8.12.0): 8.12

[Compare Source](https://github.com/gradle/gradle/compare/v8.11.1...v8.12.0)

The Gradle team is excited to announce Gradle 8.12.

[Read the Release Notes](https://docs.gradle.org/8.12/release-notes.html)

We would like to thank the following community members for their contributions to this release of Gradle:
[Abhiraj Adhikary](https://github.com/abhirajadhikary06),
[Ayush Saxena](https://github.com/Ayushcode10),
[Björn Kautler](https://github.com/Vampire),
[davidburstrom](https://github.com/davidburstrom),
[Dominic Fellbaum](https://github.com/felldo),
[Emmanuel Ferdman](https://github.com/emmanuel-ferdman),
[Finn Petersen](https://github.com/fp7),
[Johnny Lim](https://github.com/izeye),
[Mahdi Hosseinzadeh](https://github.com/mahozad),
[Martin Bonnin](https://github.com/martinbonnin),
[Paint_Ninja](https://github.com/PaintNinja),
[Petter Måhlén](https://github.com/pettermahlen),
[Philip Wedemann](https://github.com/hfhbd),
[stegeto22](https://github.com/stegeto22),
[Tanish](https://github.com/Taz03),
[TheGoesen](https://github.com/TheGoesen),
[Tim Nielens](https://github.com/tnielens),
[Trout Zhang](https://github.com/TroutZhang),
[Victor Merkulov](https://github.com/urdak)

#### Upgrade instructions

Switch your build to use Gradle 8.12 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.12

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.12/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.12/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

### [`v8.11.1`](https://github.com/gradle/gradle/releases/tag/v8.11.1): 8.11.1

[Compare Source](https://github.com/gradle/gradle/compare/v8.11.0...v8.11.1)

This is a patch release for Gradle 8.11. We recommend users upgrade to 8.11.1 instead of 8.11.

It fixes the following issues:

-   [#&#8203;31268](https://github.com/gradle/gradle/issues/31268) BuildEventsListenerRegistry corrupted with Isolated Projects and parallel configuration
-   [#&#8203;31282](https://github.com/gradle/gradle/issues/31282) Running executables sporadically fails with ETXTBSY (Text file busy)
-   [#&#8203;31284](https://github.com/gradle/gradle/issues/31284) ArrayIndexOutOfBoundsException after upgrading to gradle 8.11 when generating problems report
-   [#&#8203;31310](https://github.com/gradle/gradle/issues/31310) Unable to run Gradle task in 8.10 due to bytecode interception

[Read the Release Notes](https://docs.gradle.org/8.11.1/release-notes.html)

#### Upgrade instructions

Switch your build to use Gradle 8.11.1 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.11.1

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.11.1/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.11.1/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

### [`v8.11`](https://github.com/gradle/gradle/releases/tag/v8.11.0): 8.11

[Compare Source](https://github.com/gradle/gradle/compare/v8.10.2...v8.11.0)

The Gradle team is excited to announce Gradle 8.11.

[Read the Release Notes](https://docs.gradle.org/8.11/release-notes.html)

We would like to thank the following community members for their contributions to this release of Gradle:
[Adam](https://github.com/adam-enko),
[alyssoncs](https://github.com/alyssoncs),
[Bilel MEDIMEGH](https://github.com/LelouBil),
[Björn Kautler](https://github.com/Vampire),
[Chuck Thomas](https://github.com/chuckthemole),
[Daniel Lacasse](https://github.com/lacasseio),
[Finn Petersen](https://github.com/fp7),
[JK](https://github.com/jknair0),
[Jérémie Bresson](https://github.com/jmini),
[luozexuan](https://github.com/luozexuan),
[Mahdi Hosseinzadeh](https://github.com/mahozad),
[Markus Gaisbauer](https://github.com/quijote),
[Matthew Haughton](https://github.com/3flex),
[Matthew Von-Maszewski](https://github.com/matthewvon),
[ploober](https://github.com/ploober),
[Siarhei](https://github.com/madhead),
[Titus James](https://github.com/tj330),
[vrp0211](https://github.com/vrp0211)

#### Upgrade instructions

Switch your build to use Gradle 8.11 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.11

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.11/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.11/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

### [`v8.10.2`](https://github.com/gradle/gradle/releases/tag/v8.10.2): 8.10.2

[Compare Source](https://github.com/gradle/gradle/compare/v8.10.1...v8.10.2)

This is a patch release for 8.10. We recommend using 8.10.2 instead of 8.10

It fixes the following issues:

-   [#&#8203;30472](https://github.com/gradle/gradle/issues/30472) Investigate possibly broken 8.10.1
-   [#&#8203;30477](https://github.com/gradle/gradle/issues/30477) Kotlin Mutliplatform build with reused daemon fails with "Cannot query the value of task ':compileKotlinWindows' property 'kotlinNativeBundleBuildService' because it has no value available."
-   [#&#8203;30497](https://github.com/gradle/gradle/issues/30497) DefaultTaskCollection#configureEach(Action) on task set cannot be executed in the current context

Issues fixed in the first patch release:

-   [#&#8203;30239](https://github.com/gradle/gradle/issues/30239) Gradle 8.10 Significantly Slower Due to Dependency Resolution
-   [#&#8203;30272](https://github.com/gradle/gradle/issues/30272) Broken equals() contract for LifecycleAwareProject
-   [#&#8203;30385](https://github.com/gradle/gradle/issues/30385) Gradle should not validate isolated projects when isolated projects is disabled

[Read the Release Notes](https://docs.gradle.org/8.10.2/release-notes.html)

#### Upgrade instructions

Switch your build to use Gradle 8.10.2 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.10.2

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.10.2/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.10.2/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

### [`v8.10.1`](https://github.com/gradle/gradle/releases/tag/v8.10.1): 8.10.1

[Compare Source](https://github.com/gradle/gradle/compare/v8.10.0...v8.10.1)

This is a patch release for 8.10. We recommend using 8.10.1 instead of 8.10

It fixes the following issues:

-   [#&#8203;30239](https://github.com/gradle/gradle/issues/30239) Gradle 8.10 Significantly Slower Due to Dependency Resolution
-   [#&#8203;30272](https://github.com/gradle/gradle/issues/30272) Broken equals() contract for LifecycleAwareProject
-   [#&#8203;30385](https://github.com/gradle/gradle/issues/30385) Gradle should not validate isolated projects when isolated projects is disabled

[Read the Release Notes](https://docs.gradle.org/8.10.1/release-notes.html)

#### Upgrade instructions

Switch your build to use Gradle 8.10.1 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.10.1

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.10.1/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.10.1/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

### [`v8.10`](https://github.com/gradle/gradle/releases/tag/v8.10.0): 8.10

[Compare Source](https://github.com/gradle/gradle/compare/v8.9.0...v8.10.0)

The Gradle team is excited to announce Gradle 8.10.

[Read the Release Notes](https://docs.gradle.org/8.10/release-notes.html)

We would like to thank the following community members for their contributions to this release of Gradle:
[Björn Kautler](https://github.com/Vampire),
[Craig Andrews](https://github.com/candrews),
[gotovsky](https://github.com/SergeyGotovskiy),
[Jeff](https://github.com/mathjeff),
[Kirill Gavrilov](https://github.com/gavvvr),
[Madalin Valceleanu](https://github.com/vmadalin),
[Sergei Vorobev](https://github.com/HackerMadCat),
[Thach Le](https://github.com/thachlp),
[Thad Guidry](https://github.com/thadguidry)

#### Upgrade instructions

Switch your build to use Gradle 8.10 by updating your wrapper:

    ./gradlew wrapper --gradle-version=8.10

See the Gradle [8.x upgrade guide](https://docs.gradle.org/8.10/userguide/upgrading_version\_8.html) to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](https://docs.gradle.org/8.10/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub Issues](https://github.com/gradle/gradle/issues) adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the [forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to your feedback via [Twitter](https://twitter.com/gradle) or on [GitHub](https://github.com/gradle).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjEzMy40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #23
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-26 20:55:35 +00:00
de8fe102bf chore(deps): update actions/checkout action to v4 (#24)
Some checks failed
Build / build (push) Has been cancelled
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout) | action | major | `v2` -> `v4` |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

### [`v4`](https://github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v422)

[Compare Source](https://github.com/actions/checkout/compare/v3...v4)

-   `url-helper.ts` now leverages well-known environment variables by [@&#8203;jww3](https://github.com/jww3) in https://github.com/actions/checkout/pull/1941
-   Expand unit test coverage for `isGhes` by [@&#8203;jww3](https://github.com/jww3) in https://github.com/actions/checkout/pull/1946

### [`v3`](https://github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v360)

[Compare Source](https://github.com/actions/checkout/compare/v2...v3)

-   [Fix: Mark test scripts with Bash'isms to be run via Bash](https://github.com/actions/checkout/pull/1377)
-   [Add option to fetch tags even if fetch-depth > 0](https://github.com/actions/checkout/pull/579)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjEyMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #24
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-26 20:49:40 +00:00
ec6fe692a3 chore(deps): update actions/setup-java action to v4 (#25)
Some checks are pending
Build / build (push) Waiting to run
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-java](https://github.com/actions/setup-java) | action | major | `v3` -> `v4` |

---

### Release Notes

<details>
<summary>actions/setup-java (actions/setup-java)</summary>

### [`v4`](https://github.com/actions/setup-java/compare/v3...v4)

[Compare Source](https://github.com/actions/setup-java/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjAuMyIsInVwZGF0ZWRJblZlciI6IjM5LjEyMC4zIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #25
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-26 20:49:26 +00:00
bd9163b2e1 chore(deps): update dependency org.jetbrains.compose to v1.7.3 (#18)
All checks were successful
Build / build (push) Successful in 11m59s
Release / release (push) Successful in 8m43s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [org.jetbrains.compose](https://github.com/JetBrains/compose-jb) | plugin | patch | `1.7.0` -> `1.7.3` |

---

### Release Notes

<details>
<summary>JetBrains/compose-jb (org.jetbrains.compose)</summary>

### [`v1.7.3`](https://github.com/JetBrains/compose-jb/blob/HEAD/CHANGELOG.md#173-December-2024)

*Changes since 1.7.1*

#### Features

##### Desktop

-   [Compose plugin for IntelliJ IDEA now supports K2 mode](https://github.com/JetBrains/compose-multiplatform/pull/5138)

#### Fixes

##### iOS

-   [Taps should be properly registered on interop views with `UIKitInteropInteractionMode.Cooperative` interaction mode](https://github.com/JetBrains/compose-multiplatform-core/pull/1731)
-   [Interactive pop](https://github.com/JetBrains/compose-multiplatform-core/pull/1731) (swipe to go back) on `UINavigationController` should recognize correctly

#### Dependencies

-   Gradle Plugin `org.jetbrains.compose`, version `1.7.3`. Based on Jetpack Compose libraries:
    -   [Runtime 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.6)
    -   [UI 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.6)
    -   [Foundation 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.6)
    -   [Material 1.7.6](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.6)
    -   [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1)

-   Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5)

-   Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha11`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0)

-   Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0)

***

### [`v1.7.1`](https://github.com/JetBrains/compose-jb/blob/HEAD/CHANGELOG.md#171-November-2024)

*Changes since 1.7.0*

#### Fixes

##### Multiple Platforms

-   [Fixed `Modifier.clickable` binary compatibility with 1.6 on non-JVM targets](https://github.com/JetBrains/compose-multiplatform-core/pull/1647)
-   [Fixed `Modifier.toggleable` and `Modifier.selectable` binary compatibility with 1.6 on non-JVM targets](https://github.com/JetBrains/compose-multiplatform-core/pull/1649)
-   [Fix issue where `DateRangePicker` doesn't show confirmation button on iOS and Desktop](https://github.com/JetBrains/compose-multiplatform-core/pull/1666)
-   [Fix Skia paragraph caching performance degradation](https://github.com/JetBrains/compose-multiplatform-core/pull/1676)

##### iOS

-   [Fling animation works correctly for fast scrolling gestures](https://github.com/JetBrains/compose-multiplatform-core/pull/1616)
-   [Fix HorizontalPager snapping on iOS](https://github.com/JetBrains/compose-multiplatform-core/pull/1661)
-   [Fixed double recomposition on the first screen](https://github.com/JetBrains/compose-multiplatform-core/pull/1668)
-   [Fix Accessibility Items availability inside dialogs](https://github.com/JetBrains/compose-multiplatform-core/pull/1678)
-   [Memory leak due to Compose view controller never GCed](https://github.com/JetBrains/compose-multiplatform-core/pull/1660)

##### Desktop

-   [Fix for excessive garbage generation from redrawing on Swing](https://github.com/JetBrains/compose-multiplatform-core/pull/1657)

#### Dependencies

-   Gradle Plugin `org.jetbrains.compose`, version `1.7.1`. Based on Jetpack Compose libraries:
    -   [Runtime 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.7.5)
    -   [UI 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.5)
    -   [Foundation 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.7.5)
    -   [Material 1.7.5](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.5)
    -   [Material3 1.3.1](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.3.1)

-   Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.8.4`. Based on [Jetpack Lifecycle 2.8.5](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.5)

-   Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.8.0-alpha10`. Based on [Jetpack Navigation 2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0)

-   Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.0.1`. Based on [Jetpack Material3 Adaptive 1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0)

***

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEyMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: #18
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-21 14:49:48 +00:00
ed227bf2b6 docs: add README.md and update form submission logic (#21)
Some checks are pending
Build / build (push) Waiting to run
This commit updates the README.md with project details, including features, technologies, installation instructions, and project structure.
- It also includes a description of the app, features like free-text input, sentiment selection, submitting content to a server, and displaying a Snackbar.
- It updates the form submission logic in `App.kt` to delay showing the "Feedback sent" Snackbar by 1 second.

Closes #2

Reviewed-on: #21
Co-authored-by: Ben Martin <ben.martin@sky.uk>
Co-committed-by: Ben Martin <ben.martin@sky.uk>
2025-01-21 14:49:02 +00:00
063ec7632f feat: improve UI with sentiment selection, input field, and feedback submission (#17)
Some checks are pending
Build / build (push) Waiting to run
This commit enhances the UI of the application with the following changes:
- Adds sentiment selection via `FilterChip` components with leading icons and friendly names for each `Sentiment` option.
- Introduces a `TextField` for user comments.
- Implements feedback submission, which resets the selected sentiment and clears the comment field upon clicking the button.
- Shows a snackbar to display feedback success after the button is clicked.
- Improves `FilterChip` styling with `ChipDefaults` properties and uses larger font size.
- Uses `Scaffold` to provide a structure for the app.

Closes #4

Reviewed-on: #17
Co-authored-by: Ben Martin <ben.martin@sky.uk>
Co-committed-by: Ben Martin <ben.martin@sky.uk>
2025-01-21 14:37:45 +00:00
3d2cc0a62c chore: Configure Renovate (#16)
Some checks failed
Build / build (push) Has been cancelled
Welcome to [Renovate](https://github.com/renovatebot/renovate)! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.

---
### Detected Package Files

 * `.github/workflows/build.yaml` (github-actions)
 * `.github/workflows/release.yaml` (github-actions)
 * `gradle.properties` (gradle)
 * `settings.gradle.kts` (gradle)
 * `build.gradle.kts` (gradle)
 * `composeApp/build.gradle.kts` (gradle)
 * `gradle/libs.versions.toml` (gradle)
 * `gradle/wrapper/gradle-wrapper.properties` (gradle-wrapper)

### What to Expect

With your current configuration, Renovate will create 6 Pull Requests:

<details>
<summary>chore(deps): update dependency org.jetbrains.compose to v1.7.3</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/compose.multiplatform`
  - Merge into: `master`
  - Upgrade [org.jetbrains.compose](https://github.com/JetBrains/compose-jb) to `1.7.3`

</details>

<details>
<summary>chore(deps): update agp to v8.8.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/agp`
  - Merge into: `master`
  - Upgrade [com.android.library](https://android.googlesource.com/platform/tools/base) to `8.8.0`
  - Upgrade [com.android.application](https://android.googlesource.com/platform/tools/base) to `8.8.0`

</details>

<details>
<summary>chore(deps): update dependency androidx.activity:activity-compose to v1.10.0</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/androidx.activitycompose`
  - Merge into: `master`
  - Upgrade [androidx.activity:activity-compose](https://cs.android.com/androidx/platform/frameworks/support) to `1.10.0`

</details>

<details>
<summary>chore(deps): update dependency gradle to v8.12</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/gradle-8.x`
  - Merge into: `master`
  - Upgrade [gradle](https://github.com/gradle/gradle) to `8.12`

</details>

<details>
<summary>chore(deps): update actions/checkout action to v4</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/actions-checkout-4.x`
  - Merge into: `master`
  - Upgrade [actions/checkout](https://github.com/actions/checkout) to `v4`

</details>

<details>
<summary>chore(deps): update actions/setup-java action to v4</summary>

  - Schedule: ["at any time"]
  - Branch name: `renovate/actions-setup-java-4.x`
  - Merge into: `master`
  - Upgrade [actions/setup-java](https://github.com/actions/setup-java) to `v4`

</details>

🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or overwhelm the project. See docs for `prhourlylimit` for details.

---

 Got questions? Check out Renovate's [Docs](https://docs.renovatebot.com/), particularly the Getting Started section.
If you need any further assistance then you can also [request help here](https://github.com/renovatebot/renovate/discussions).

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

<!--renovate-config-hash:94693a990c975907e7f13da3309b9d56ba02b3983519b41786edf5cf031e457c-->

Reviewed-on: #16
Co-authored-by: Renovate Bot <renovate@brmartin.co.uk>
Co-committed-by: Renovate Bot <renovate@brmartin.co.uk>
2025-01-21 14:32:24 +00:00
0feaf9e92b feat: improve layout and add send icon to comment submission UI (#15)
All checks were successful
Build / build (push) Successful in 6m38s
This commit makes the following improvements to the comment submission UI:
-   Wraps the UI in a `Box` to center the content.
-   Pads `Row` components.
-   Adds an `Icon` in the submit button.
-   Makes `TextField` fill available width and height.
These changes affect `App.kt`.

Closes #6

Reviewed-on: #15
Co-authored-by: Ben Martin <ben.martin@sky.uk>
Co-committed-by: Ben Martin <ben.martin@sky.uk>
2025-01-21 13:58:12 +00:00
7 changed files with 116 additions and 53 deletions

View file

@ -12,10 +12,10 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

View file

@ -11,10 +11,10 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

View file

@ -1,14 +1,39 @@
This is a Kotlin Multiplatform project targeting Android, iOS.
# Bob -- The Handy Feedback App
* `/composeApp` is for code that will be shared across your Compose Multiplatform applications.
It contains several subfolders:
- `commonMain` is for code thats common for all targets.
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
For example, if you want to use Apples CoreCrypto for the iOS part of your Kotlin app,
`iosMain` would be the right folder for such calls.
This project is a simple Kotlin Multiplatform Application that allows users to enter free-text and
submit the content to a server over HTTP. It also includes a form with sentiment selection and
displays a Snackbar whenever the submit button is pressed.
* `/iosApp` contains iOS applications. Even if youre sharing your UI with Compose Multiplatform,
you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
## Features
- Free-text input form
- Sentiment selection using FilterChips
- Submit content to a server using Retrofit
- Display Snackbar on form submission
Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html)…
## Technologies Used
- Kotlin
- Jetpack Compose
- Retrofit
- Gradle
## Getting Started
### Installation
1. Download the latest release from
the [releases page](https://git.brmartin.co.uk/bob/mobile-application/releases)
2. Install the application following the on-screen instructions.
### Usage
1. Run the application on an Android emulator or a physical device.
2. Select a sentiment using the FilterChips.
3. Enter your text in the provided text field.
4. Press the submit button to send the content to the server.
### Project Structure
- `composeApp/src/commonMain/kotlin/uk/sky/bob/application/App.kt`: Main Compose UI and form
submission logic.

View file

@ -1,25 +1,38 @@
package uk.sky.bob.application
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Button
import androidx.compose.material.ChipDefaults
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.FilterChip
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold
import androidx.compose.material.Text
import androidx.compose.material.TextField
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.Send
import androidx.compose.material.rememberScaffoldState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.jetbrains.compose.ui.tooling.preview.Preview
@OptIn(ExperimentalMaterialApi::class)
@ -27,38 +40,60 @@ import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
fun App() {
MaterialTheme {
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
Row {
val state = remember { mutableStateOf(Sentiment.HAPPY) }
for (emotion in Sentiment.entries) {
FilterChip(
onClick = { state.value = emotion },
selected = state.value == emotion,
modifier = Modifier.padding(8.dp),
leadingIcon = { Text(emotion.leadingIcon) },
) {
Text(emotion.friendlyName)
val scaffoldState = rememberScaffoldState()
val scope = rememberCoroutineScope()
Scaffold(scaffoldState = scaffoldState) {
Box(
modifier = Modifier.fillMaxHeight(),
contentAlignment = Alignment.Center,
) {
Column(
Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally,
) {
val sentiment = remember { mutableStateOf(Sentiment.HAPPY) }
var comment by rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(
TextFieldValue("")
)
}
Row(modifier = Modifier.padding(8.dp)) {
for (emotion in Sentiment.entries) {
FilterChip(
onClick = { sentiment.value = emotion },
selected = sentiment.value == emotion,
modifier = Modifier.padding(8.dp),
leadingIcon = { Text(emotion.leadingIcon, fontSize = 20.sp) },
colors = ChipDefaults.outlinedFilterChipColors(),
border = ChipDefaults.outlinedBorder,
) {
Text(emotion.friendlyName, fontSize = 20.sp)
}
}
}
}
}
Row {
var text by rememberSaveable(stateSaver = TextFieldValue.Saver) {
mutableStateOf(
TextFieldValue("")
)
}
TextField(
value = text,
onValueChange = { text = it },
label = { Text("Your comment") },
maxLines = 3,
)
}
Row(modifier = Modifier.padding(8.dp)) {
TextField(
value = comment,
onValueChange = { comment = it },
label = { Text("Your comment") },
modifier = Modifier.height(100.dp).fillMaxWidth().padding(8.dp),
)
}
Row {
Button(onClick = { /* Handle submit */ }) {
Text("Submit")
Row(modifier = Modifier.padding(8.dp)) {
Button(onClick = {
sentiment.value = Sentiment.HAPPY
comment = TextFieldValue("")
scope.launch {
delay(1000)
scaffoldState.snackbarHostState.showSnackbar("Feedback sent")
}
}, modifier = Modifier.padding(8.dp)) {
Icon(Icons.AutoMirrored.Filled.Send, contentDescription = "Send")
}
}
}
}
}

View file

@ -1,19 +1,19 @@
[versions]
agp = "8.5.2"
android-compileSdk = "34"
agp = "8.10.1"
android-compileSdk = "35"
android-minSdk = "24"
android-targetSdk = "34"
androidx-activityCompose = "1.9.3"
androidx-appcompat = "1.7.0"
androidx-constraintlayout = "2.2.0"
androidx-core-ktx = "1.15.0"
androidx-activityCompose = "1.10.1"
androidx-appcompat = "1.7.1"
androidx-constraintlayout = "2.2.1"
androidx-core-ktx = "1.16.0"
androidx-espresso-core = "3.6.1"
androidx-lifecycle = "2.8.4"
androidx-lifecycle = "2.9.1"
androidx-material = "1.12.0"
androidx-test-junit = "1.2.1"
compose-multiplatform = "1.7.0"
compose-multiplatform = "1.7.3"
junit = "4.13.2"
kotlin = "2.1.0"
kotlin = "2.1.21"
[libraries]
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

3
renovate.json Normal file
View file

@ -0,0 +1,3 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}