Compare commits

...

7 commits

Author SHA1 Message Date
706848b240 chore(deps): update agp to v8.8.0
All checks were successful
Build / build (pull_request) Successful in 7m8s
2025-01-26 21:05:57 +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
6 changed files with 96 additions and 50 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

@ -8,24 +8,31 @@ 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)
@ -33,45 +40,59 @@ import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
fun App() {
MaterialTheme {
Box(
modifier = Modifier.fillMaxHeight(),
contentAlignment = Alignment.Center,
) {
Column(
Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally,
) {
Row(modifier = Modifier.padding(8.dp)) {
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()
Row(modifier = Modifier.padding(8.dp)) {
var text by rememberSaveable(stateSaver = TextFieldValue.Saver) {
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("")
)
}
TextField(
value = text,
onValueChange = { text = it },
label = { Text("Your comment") },
modifier = Modifier.height(100.dp).fillMaxWidth().padding(8.dp),
)
}
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(modifier = Modifier.padding(8.dp)) {
Button(onClick = { /* Handle submit */ }, modifier = Modifier.padding(8.dp)) {
Icon(Icons.AutoMirrored.Filled.Send, contentDescription = "Send")
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(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,5 +1,5 @@
[versions]
agp = "8.5.2"
agp = "8.8.0"
android-compileSdk = "34"
android-minSdk = "24"
android-targetSdk = "34"
@ -11,7 +11,7 @@ androidx-espresso-core = "3.6.1"
androidx-lifecycle = "2.8.4"
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"

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.12.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME