Commit Graph

363 Commits

Author SHA1 Message Date
dependabot[bot]
a80a9cbe2d build(deps): bump the lifecycle group in /kotlin/android with 3 updates (#10433)
Bumps the lifecycle group in /kotlin/android with 3 updates:
androidx.lifecycle:lifecycle-runtime-ktx,
androidx.lifecycle:lifecycle-viewmodel-ktx and
androidx.lifecycle:lifecycle-livedata-ktx.

Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.9.2 to 2.9.4

Updates `androidx.lifecycle:lifecycle-viewmodel-ktx` from 2.9.2 to 2.9.4

Updates `androidx.lifecycle:lifecycle-livedata-ktx` from 2.9.2 to 2.9.4


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 09:16:48 +00:00
dependabot[bot]
039f8f5f09 build(deps): bump the hilt group in /kotlin/android with 5 updates (#10438)
Bumps the hilt group in /kotlin/android with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [com.google.dagger.hilt.android](https://github.com/google/dagger) |
`2.57` | `2.57.1` |
| [com.google.dagger:hilt-android](https://github.com/google/dagger) |
`2.57` | `2.57.1` |
| androidx.hilt:hilt-compiler | `1.2.0` | `1.3.0` |
|
[com.google.dagger:hilt-android-compiler](https://github.com/google/dagger)
| `2.57` | `2.57.1` |
|
[com.google.dagger:hilt-android-testing](https://github.com/google/dagger)
| `2.57` | `2.57.1` |

Updates `com.google.dagger.hilt.android` from 2.57 to 2.57.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger.hilt.android's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4734">#4734</a>:
Updated Hilt's Gradle Plugin detection of AGP to maximize compatibility
and avoid the confusing 'The Hilt Android Gradle plugin can only be
applied to an Android project.' error when the plugin is on an Android
project. (20adecbf5)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Set coreLibrariesVersion for the Kotlin compilation of the Hilt Gradle
Plugin to further improve backwards compatibility. (00c7fc203)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Use api / language versions for the Kotlin compilation of the Hilt
Gradle Plugin to not force projects to update to Kotlin 2.2.0, the
current version used by the plugin. (58e499243)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4780">#4780</a>:
Add support for the Jakarta Singleton annotation in Hilt.
(ec7f76fa3)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4917">#4917</a>:
Removes the explicit dependency to androidx.annotation:annotation-jvm
and to a beta version of it. (092a85af0)</li>
<li>Limit number of similar bindings shown in error messages to 20
(59ac2f981)</li>
<li>Update wording for <a
href="https://github.com/AssistedInject"><code>@​AssistedInject</code></a>
error to be more specific. (1702e79e0)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85586e55c6"><code>85586e5</code></a>
2.57.1 release</li>
<li><a
href="20adecbf5e"><code>20adecb</code></a>
Update Hilt's Gradle Plugin detection of AGP</li>
<li><a
href="ec7f76fa3f"><code>ec7f76f</code></a>
Add the <code>jakarta.inject.Singleton</code> annotation to the Hilt
<code>SingletonComponent</code></li>
<li><a
href="f5c5301bcd"><code>f5c5301</code></a>
Add gRPC projects to Gradle</li>
<li><a
href="26a0a42d02"><code>26a0a42</code></a>
Add additional tests for parameterized injection and parameterized
modules.</li>
<li><a
href="0e73ac51f1"><code>0e73ac5</code></a>
Internal changes.</li>
<li><a
href="3ae4745e59"><code>3ae4745</code></a>
Add hilt-android-testing to the Gradle projects</li>
<li><a
href="092a85af09"><code>092a85a</code></a>
Bump <code>androidx.annotation:annotation</code> for Dagger/Hilt
androidx deps and remov...</li>
<li><a
href="57a439ba18"><code>57a439b</code></a>
Add hilt-android to the Gradle projects</li>
<li><a
href="59ac2f981f"><code>59ac2f9</code></a>
Add a limit to the number of similar bindings shown to prevent too much
error...</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.57...dagger-2.57.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android` from 2.57 to 2.57.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4734">#4734</a>:
Updated Hilt's Gradle Plugin detection of AGP to maximize compatibility
and avoid the confusing 'The Hilt Android Gradle plugin can only be
applied to an Android project.' error when the plugin is on an Android
project. (20adecbf5)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Set coreLibrariesVersion for the Kotlin compilation of the Hilt Gradle
Plugin to further improve backwards compatibility. (00c7fc203)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Use api / language versions for the Kotlin compilation of the Hilt
Gradle Plugin to not force projects to update to Kotlin 2.2.0, the
current version used by the plugin. (58e499243)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4780">#4780</a>:
Add support for the Jakarta Singleton annotation in Hilt.
(ec7f76fa3)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4917">#4917</a>:
Removes the explicit dependency to androidx.annotation:annotation-jvm
and to a beta version of it. (092a85af0)</li>
<li>Limit number of similar bindings shown in error messages to 20
(59ac2f981)</li>
<li>Update wording for <a
href="https://github.com/AssistedInject"><code>@​AssistedInject</code></a>
error to be more specific. (1702e79e0)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85586e55c6"><code>85586e5</code></a>
2.57.1 release</li>
<li><a
href="20adecbf5e"><code>20adecb</code></a>
Update Hilt's Gradle Plugin detection of AGP</li>
<li><a
href="ec7f76fa3f"><code>ec7f76f</code></a>
Add the <code>jakarta.inject.Singleton</code> annotation to the Hilt
<code>SingletonComponent</code></li>
<li><a
href="f5c5301bcd"><code>f5c5301</code></a>
Add gRPC projects to Gradle</li>
<li><a
href="26a0a42d02"><code>26a0a42</code></a>
Add additional tests for parameterized injection and parameterized
modules.</li>
<li><a
href="0e73ac51f1"><code>0e73ac5</code></a>
Internal changes.</li>
<li><a
href="3ae4745e59"><code>3ae4745</code></a>
Add hilt-android-testing to the Gradle projects</li>
<li><a
href="092a85af09"><code>092a85a</code></a>
Bump <code>androidx.annotation:annotation</code> for Dagger/Hilt
androidx deps and remov...</li>
<li><a
href="57a439ba18"><code>57a439b</code></a>
Add hilt-android to the Gradle projects</li>
<li><a
href="59ac2f981f"><code>59ac2f9</code></a>
Add a limit to the number of similar bindings shown to prevent too much
error...</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.57...dagger-2.57.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `androidx.hilt:hilt-compiler` from 1.2.0 to 1.3.0

Updates `com.google.dagger:hilt-android-compiler` from 2.57 to 2.57.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-compiler's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4734">#4734</a>:
Updated Hilt's Gradle Plugin detection of AGP to maximize compatibility
and avoid the confusing 'The Hilt Android Gradle plugin can only be
applied to an Android project.' error when the plugin is on an Android
project. (20adecbf5)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Set coreLibrariesVersion for the Kotlin compilation of the Hilt Gradle
Plugin to further improve backwards compatibility. (00c7fc203)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Use api / language versions for the Kotlin compilation of the Hilt
Gradle Plugin to not force projects to update to Kotlin 2.2.0, the
current version used by the plugin. (58e499243)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4780">#4780</a>:
Add support for the Jakarta Singleton annotation in Hilt.
(ec7f76fa3)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4917">#4917</a>:
Removes the explicit dependency to androidx.annotation:annotation-jvm
and to a beta version of it. (092a85af0)</li>
<li>Limit number of similar bindings shown in error messages to 20
(59ac2f981)</li>
<li>Update wording for <a
href="https://github.com/AssistedInject"><code>@​AssistedInject</code></a>
error to be more specific. (1702e79e0)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85586e55c6"><code>85586e5</code></a>
2.57.1 release</li>
<li><a
href="20adecbf5e"><code>20adecb</code></a>
Update Hilt's Gradle Plugin detection of AGP</li>
<li><a
href="ec7f76fa3f"><code>ec7f76f</code></a>
Add the <code>jakarta.inject.Singleton</code> annotation to the Hilt
<code>SingletonComponent</code></li>
<li><a
href="f5c5301bcd"><code>f5c5301</code></a>
Add gRPC projects to Gradle</li>
<li><a
href="26a0a42d02"><code>26a0a42</code></a>
Add additional tests for parameterized injection and parameterized
modules.</li>
<li><a
href="0e73ac51f1"><code>0e73ac5</code></a>
Internal changes.</li>
<li><a
href="3ae4745e59"><code>3ae4745</code></a>
Add hilt-android-testing to the Gradle projects</li>
<li><a
href="092a85af09"><code>092a85a</code></a>
Bump <code>androidx.annotation:annotation</code> for Dagger/Hilt
androidx deps and remov...</li>
<li><a
href="57a439ba18"><code>57a439b</code></a>
Add hilt-android to the Gradle projects</li>
<li><a
href="59ac2f981f"><code>59ac2f9</code></a>
Add a limit to the number of similar bindings shown to prevent too much
error...</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.57...dagger-2.57.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android-testing` from 2.57 to 2.57.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-testing's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4734">#4734</a>:
Updated Hilt's Gradle Plugin detection of AGP to maximize compatibility
and avoid the confusing 'The Hilt Android Gradle plugin can only be
applied to an Android project.' error when the plugin is on an Android
project. (20adecbf5)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Set coreLibrariesVersion for the Kotlin compilation of the Hilt Gradle
Plugin to further improve backwards compatibility. (00c7fc203)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4848">#4848</a>:
Use api / language versions for the Kotlin compilation of the Hilt
Gradle Plugin to not force projects to update to Kotlin 2.2.0, the
current version used by the plugin. (58e499243)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4780">#4780</a>:
Add support for the Jakarta Singleton annotation in Hilt.
(ec7f76fa3)</li>
<li>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4917">#4917</a>:
Removes the explicit dependency to androidx.annotation:annotation-jvm
and to a beta version of it. (092a85af0)</li>
<li>Limit number of similar bindings shown in error messages to 20
(59ac2f981)</li>
<li>Update wording for <a
href="https://github.com/AssistedInject"><code>@​AssistedInject</code></a>
error to be more specific. (1702e79e0)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85586e55c6"><code>85586e5</code></a>
2.57.1 release</li>
<li><a
href="20adecbf5e"><code>20adecb</code></a>
Update Hilt's Gradle Plugin detection of AGP</li>
<li><a
href="ec7f76fa3f"><code>ec7f76f</code></a>
Add the <code>jakarta.inject.Singleton</code> annotation to the Hilt
<code>SingletonComponent</code></li>
<li><a
href="f5c5301bcd"><code>f5c5301</code></a>
Add gRPC projects to Gradle</li>
<li><a
href="26a0a42d02"><code>26a0a42</code></a>
Add additional tests for parameterized injection and parameterized
modules.</li>
<li><a
href="0e73ac51f1"><code>0e73ac5</code></a>
Internal changes.</li>
<li><a
href="3ae4745e59"><code>3ae4745</code></a>
Add hilt-android-testing to the Gradle projects</li>
<li><a
href="092a85af09"><code>092a85a</code></a>
Bump <code>androidx.annotation:annotation</code> for Dagger/Hilt
androidx deps and remov...</li>
<li><a
href="57a439ba18"><code>57a439b</code></a>
Add hilt-android to the Gradle projects</li>
<li><a
href="59ac2f981f"><code>59ac2f9</code></a>
Add a limit to the number of similar bindings shown to prevent too much
error...</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.57...dagger-2.57.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-23 07:47:02 +00:00
Firezone Bot
8f46007674 chore: publish android-client 1.5.4 (#10374) 2025-09-18 10:37:20 -07:00
Jamil
bfbdec1ea9 chore(android): tidy up AuthViewModel (#10372)
- removes unused authFlowLaunched var
- store long authUrl in val
2025-09-18 03:39:10 +00:00
Jamil
f2ff5dfeca fix(android): launch auth in CustomTab (#10371)
Unfortunately, Firefox on Android seems to have a bug where it only
allows one tab to intercept the custom URI scheme handler for our auth
redirect. This causes an issue where the first sign in works, but
subsequent ones do not because that first tab is still open.

Luckily the fix here is quite simple. By using Android's CustomTabs to
launch the activity, only one, sandboxed instance is ever open and the
URI intercept works reliably. Both Firefox and Chrome (and likely other
browsers) support CustomTabs, which means the user's default browser is
used, allowing cookies, password managers, etc to be used.

Related to this, this PR also fixes a bug where dismissing the launched
auth flow would result in it immediately relaunching, making it
impossible to get back to the app unless you force quit or complete the
sign in process.

Fixes #10318
2025-09-18 03:37:03 +00:00
Firezone Bot
ea960cce74 chore: publish android-client 1.5.3 (#10141) 2025-08-05 16:38:23 +00:00
dependabot[bot]
b3d005536b build(deps): bump the navigation group in /kotlin/android with 4 updates (#10095)
Bumps the navigation group in /kotlin/android with 4 updates:
androidx.navigation:navigation-safe-args-gradle-plugin,
androidx.navigation:navigation-fragment-ktx,
androidx.navigation:navigation-ui-ktx and
androidx.navigation:navigation-testing.

Updates `androidx.navigation:navigation-safe-args-gradle-plugin` from
2.9.2 to 2.9.3

Updates `androidx.navigation:navigation-fragment-ktx` from 2.9.2 to
2.9.3

Updates `androidx.navigation:navigation-ui-ktx` from 2.9.2 to 2.9.3

Updates `androidx.navigation:navigation-testing` from 2.9.2 to 2.9.3


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 15:26:59 +00:00
dependabot[bot]
adc17a30e9 build(deps): bump com.android.application from 8.11.1 to 8.12.0 in /kotlin/android in the com-android group (#10094)
Bumps the com-android group in /kotlin/android with 1 update:
com.android.application.

Updates `com.android.application` from 8.11.1 to 8.12.0


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.application&package-manager=gradle&previous-version=8.11.1&new-version=8.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 12:07:10 +00:00
dependabot[bot]
4b0199c048 build(deps): bump the junit group in /kotlin/android with 2 updates (#10096)
Bumps the junit group in /kotlin/android with 2 updates:
androidx.browser:browser and androidx.test.ext:junit.

Updates `androidx.browser:browser` from 1.8.0 to 1.9.0

Updates `androidx.test.ext:junit` from 1.2.1 to 1.3.0


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 12:06:25 +00:00
dependabot[bot]
2c3f686d08 build(deps): bump androidx.test.espresso:espresso-contrib from 3.6.1 to 3.7.0 in /kotlin/android (#10097)
Bumps androidx.test.espresso:espresso-contrib from 3.6.1 to 3.7.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.test.espresso:espresso-contrib&package-manager=gradle&previous-version=3.6.1&new-version=3.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 12:06:00 +00:00
dependabot[bot]
19bfb16c57 build(deps): bump com.google.firebase.crashlytics from 3.0.4 to 3.0.5 in /kotlin/android (#10098)
Bumps com.google.firebase.crashlytics from 3.0.4 to 3.0.5.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase.crashlytics&package-manager=gradle&previous-version=3.0.4&new-version=3.0.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 12:05:41 +00:00
dependabot[bot]
f79c822bba build(deps): bump com.android.application from 8.10.1 to 8.11.1 in /kotlin/android in the com-android group (#9916)
Bumps the com-android group in /kotlin/android with 1 update:
com.android.application.

Updates `com.android.application` from 8.10.1 to 8.11.1


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.application&package-manager=gradle&previous-version=8.10.1&new-version=8.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 21:59:36 +00:00
Jamil
71c3450f98 chore(android): bump gradlew to 8.14.3 (#10033)
This is needed to unblock #9916.

Related: https://github.com/firezone/firezone/pull/9916
2025-07-28 21:37:07 +00:00
Jamil
589d2bbf4b fix(android): spawn shell to cargo (#10024)
Unfortunately this seems to be a race condition with read or setting the
path properly for this exec block. I've verified `cargo` is in the PATH,
and have tried this on a fresh Mac with Android Studio (latest release
version).

Spawning cargo from `sh -c` fixes the issue.
2025-07-28 03:42:21 +00:00
dependabot[bot]
8925d70ae1 build(deps): bump the lifecycle group in /kotlin/android with 3 updates (#9919)
Bumps the lifecycle group in /kotlin/android with 3 updates:
androidx.lifecycle:lifecycle-runtime-ktx,
androidx.lifecycle:lifecycle-viewmodel-ktx and
androidx.lifecycle:lifecycle-livedata-ktx.

Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.9.1 to 2.9.2

Updates `androidx.lifecycle:lifecycle-viewmodel-ktx` from 2.9.1 to 2.9.2

Updates `androidx.lifecycle:lifecycle-livedata-ktx` from 2.9.1 to 2.9.2


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 10:12:50 +00:00
dependabot[bot]
09f64a6c1e build(deps): bump the navigation group in /kotlin/android with 4 updates (#9922)
Bumps the navigation group in /kotlin/android with 4 updates:
androidx.navigation:navigation-safe-args-gradle-plugin,
androidx.navigation:navigation-fragment-ktx,
androidx.navigation:navigation-ui-ktx and
androidx.navigation:navigation-testing.

Updates `androidx.navigation:navigation-safe-args-gradle-plugin` from
2.9.0 to 2.9.2

Updates `androidx.navigation:navigation-fragment-ktx` from 2.9.0 to
2.9.2

Updates `androidx.navigation:navigation-ui-ktx` from 2.9.0 to 2.9.2

Updates `androidx.navigation:navigation-testing` from 2.9.0 to 2.9.2


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 08:36:24 +00:00
dependabot[bot]
7832068ab7 build(deps): bump the hilt group in /kotlin/android with 4 updates (#9925)
Bumps the hilt group in /kotlin/android with 4 updates:
[com.google.dagger.hilt.android](https://github.com/google/dagger),
[com.google.dagger:hilt-android](https://github.com/google/dagger),
[com.google.dagger:hilt-android-compiler](https://github.com/google/dagger)
and
[com.google.dagger:hilt-android-testing](https://github.com/google/dagger).

Updates `com.google.dagger.hilt.android` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger.hilt.android's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android-compiler` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-compiler's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android-testing` from 2.56.2 to 2.57
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/dagger/releases">com.google.dagger:hilt-android-testing's
releases</a>.</em></p>
<blockquote>
<h2>Dagger 2.57</h2>
<h1>Potential breaking changes</h1>
<p>The generated <code>Factory</code>/<code>MembersInjector</code>
constructors have changed from public to private. This shouldn’t affect
most users since these classes are only meant to be called by Dagger’s
other generated code. If you do happen to be broken by this change, you
should avoid calling Dagger’s generated
<code>Factory</code>/<code>MembersInjector</code> classes directly. For
a temporary solution, you can also switch to using the public static
methods to create an instance. (165cf20ee)</p>
<h1>Bug fixes</h1>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4779">#4779</a>.
Unshades the Kotlinx Metadata to support Kotlin 2.2.0 (bfa88b962)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="370c1b8363"><code>370c1b8</code></a>
2.57 release</li>
<li><a
href="3e66fdf163"><code>3e66fdf</code></a>
Add developer information to the Hilt Gradle Plugin POM</li>
<li><a
href="07c2d73938"><code>07c2d73</code></a>
Internal changes</li>
<li><a
href="e966c5c981"><code>e966c5c</code></a>
Internal codegen</li>
<li><a
href="78a530cc3b"><code>78a530c</code></a>
Internal changes</li>
<li><a
href="18d0bf32fe"><code>18d0bf3</code></a>
Automated Code Change</li>
<li><a
href="b5901d3cce"><code>b5901d3</code></a>
Internal change</li>
<li><a
href="e716cbe163"><code>e716cbe</code></a>
Automated Code Change</li>
<li><a
href="2e940c0a84"><code>2e940c0</code></a>
Automated Code Change</li>
<li><a
href="93c342a676"><code>93c342a</code></a>
Automated Code Change</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.56.2...dagger-2.57">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 06:58:53 +00:00
dependabot[bot]
4bb4360792 build(deps): bump the okhttp group in /kotlin/android with 2 updates (#9928)
Bumps the okhttp group in /kotlin/android with 2 updates:
[com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) and
[com.squareup.okhttp3:logging-interceptor](https://github.com/square/okhttp).

Updates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.1.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/okhttp/blob/master/CHANGELOG.md">com.squareup.okhttp3:okhttp's
changelog</a>.</em></p>
<blockquote>
<h2>Version 5.1.0</h2>
<p><em>2025-07-07</em></p>
<ul>
<li>
<p>New: <code>Response.peekTrailers()</code>. When we changed
<code>Response.trailers()</code> to block instead of
throwing in 5.0.0, we inadvertently removed the ability for callers to
peek the trailers
(by catching the <code>IllegalStateException</code> if they weren't
available). This new API restores that
capability.</p>
</li>
<li>
<p>Fix: Don't crash on <code>trailers()</code> if the response doesn't
have a body. We broke [Retrofit] users
who read the trailers on the <code>raw()</code> OkHttp response, after
its body was decoded.</p>
</li>
</ul>
<h2>Version 5.0.0</h2>
<p><em>2025-07-02</em></p>
<p>This is our first stable release of OkHttp since 2023. Here's the
highlights if you're upgrading
from OkHttp 4.x:</p>
<p><strong>OkHttp is now packaged as separate JVM and Android
artifacts.</strong> This allows us to offer
platform-specific features and optimizations. If your build system
handles [Gradle module metadata],
this change should be automatic.</p>
<p><strong>MockWebServer has a new coordinate and package name.</strong>
We didn’t like that our old artifact
depends on JUnit 4 so the new one doesn’t. It also has a better API
built on immutable values. (We
intend to continue publishing the old <code>okhttp3.mockwebserver</code>
artifact so there’s no urgency to
migrate.)</p>
<table>
<thead>
<tr>
<th align="left">Coordinate</th>
<th align="left">Package Name</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3:5.0.0</td>
<td align="left">mockwebserver3</td>
<td align="left">Core module. No JUnit dependency!</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit4:5.0.0</td>
<td align="left">mockwebserver3.junit4</td>
<td align="left">Optional JUnit 4 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit5:5.0.0</td>
<td align="left">mockwebserver3.junit5</td>
<td align="left">Optional JUnit 5 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver:5.0.0</td>
<td align="left">okhttp3.mockwebserver</td>
<td align="left">Obsolete. Depends on JUnit 4.</td>
</tr>
</tbody>
</table>
<p><strong>OkHttp now supports Happy Eyeballs ([RFC 8305][rfc_8305]) for
IPv4+IPv6 networks.</strong> It attempts
both IPv6 and IPv4 connections concurrently, keeping whichever connects
first.</p>
<p><strong>We’ve improved our Kotlin APIs.</strong> You can skip the
builder:</p>
<pre lang="kotlin"><code>val request = Request(
  url = &quot;https://cash.app/&quot;.toHttpUrl(),
)
</code></pre>
<p><strong>OkHttp now supports [GraalVM].</strong></p>
<p>Here’s what has changed since 5.0.0-alpha.17:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d2dd180697"><code>d2dd180</code></a>
Prepare for release 5.1.0.</li>
<li><a
href="61a87359f6"><code>61a8735</code></a>
New Response.peekTrailers() API (<a
href="https://redirect.github.com/square/okhttp/issues/8921">#8921</a>)</li>
<li><a
href="66844010f7"><code>6684401</code></a>
Update dependency gradle to v8.14.3 (<a
href="https://redirect.github.com/square/okhttp/issues/8915">#8915</a>)</li>
<li><a
href="7adb2b637c"><code>7adb2b6</code></a>
Update junit-framework monorepo (<a
href="https://redirect.github.com/square/okhttp/issues/8914">#8914</a>)</li>
<li><a
href="e41ff18df8"><code>e41ff18</code></a>
Link to new mockwebserver artifacts (<a
href="https://redirect.github.com/square/okhttp/issues/8911">#8911</a>)</li>
<li><a
href="0ff87513e2"><code>0ff8751</code></a>
Remove Graal init tracing (<a
href="https://redirect.github.com/square/okhttp/issues/8909">#8909</a>)</li>
<li><a
href="b9a2560e56"><code>b9a2560</code></a>
Run graal on master (<a
href="https://redirect.github.com/square/okhttp/issues/8907">#8907</a>)</li>
<li><a
href="8339524463"><code>8339524</code></a>
Remove ExperimentalOkHttpApi references (<a
href="https://redirect.github.com/square/okhttp/issues/8908">#8908</a>)</li>
<li><a
href="ce29ef6182"><code>ce29ef6</code></a>
Fix graal tests (<a
href="https://redirect.github.com/square/okhttp/issues/8906">#8906</a>)</li>
<li><a
href="85796896c3"><code>8579689</code></a>
Don't force a response body read on all trailers (<a
href="https://redirect.github.com/square/okhttp/issues/8904">#8904</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.1.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.squareup.okhttp3:logging-interceptor` from 4.12.0 to 5.1.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/okhttp/blob/master/CHANGELOG.md">com.squareup.okhttp3:logging-interceptor's
changelog</a>.</em></p>
<blockquote>
<h2>Version 5.1.0</h2>
<p><em>2025-07-07</em></p>
<ul>
<li>
<p>New: <code>Response.peekTrailers()</code>. When we changed
<code>Response.trailers()</code> to block instead of
throwing in 5.0.0, we inadvertently removed the ability for callers to
peek the trailers
(by catching the <code>IllegalStateException</code> if they weren't
available). This new API restores that
capability.</p>
</li>
<li>
<p>Fix: Don't crash on <code>trailers()</code> if the response doesn't
have a body. We broke [Retrofit] users
who read the trailers on the <code>raw()</code> OkHttp response, after
its body was decoded.</p>
</li>
</ul>
<h2>Version 5.0.0</h2>
<p><em>2025-07-02</em></p>
<p>This is our first stable release of OkHttp since 2023. Here's the
highlights if you're upgrading
from OkHttp 4.x:</p>
<p><strong>OkHttp is now packaged as separate JVM and Android
artifacts.</strong> This allows us to offer
platform-specific features and optimizations. If your build system
handles [Gradle module metadata],
this change should be automatic.</p>
<p><strong>MockWebServer has a new coordinate and package name.</strong>
We didn’t like that our old artifact
depends on JUnit 4 so the new one doesn’t. It also has a better API
built on immutable values. (We
intend to continue publishing the old <code>okhttp3.mockwebserver</code>
artifact so there’s no urgency to
migrate.)</p>
<table>
<thead>
<tr>
<th align="left">Coordinate</th>
<th align="left">Package Name</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3:5.0.0</td>
<td align="left">mockwebserver3</td>
<td align="left">Core module. No JUnit dependency!</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit4:5.0.0</td>
<td align="left">mockwebserver3.junit4</td>
<td align="left">Optional JUnit 4 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver3-junit5:5.0.0</td>
<td align="left">mockwebserver3.junit5</td>
<td align="left">Optional JUnit 5 integration.</td>
</tr>
<tr>
<td align="left">com.squareup.okhttp3:mockwebserver:5.0.0</td>
<td align="left">okhttp3.mockwebserver</td>
<td align="left">Obsolete. Depends on JUnit 4.</td>
</tr>
</tbody>
</table>
<p><strong>OkHttp now supports Happy Eyeballs ([RFC 8305][rfc_8305]) for
IPv4+IPv6 networks.</strong> It attempts
both IPv6 and IPv4 connections concurrently, keeping whichever connects
first.</p>
<p><strong>We’ve improved our Kotlin APIs.</strong> You can skip the
builder:</p>
<pre lang="kotlin"><code>val request = Request(
  url = &quot;https://cash.app/&quot;.toHttpUrl(),
)
</code></pre>
<p><strong>OkHttp now supports [GraalVM].</strong></p>
<p>Here’s what has changed since 5.0.0-alpha.17:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d2dd180697"><code>d2dd180</code></a>
Prepare for release 5.1.0.</li>
<li><a
href="61a87359f6"><code>61a8735</code></a>
New Response.peekTrailers() API (<a
href="https://redirect.github.com/square/okhttp/issues/8921">#8921</a>)</li>
<li><a
href="66844010f7"><code>6684401</code></a>
Update dependency gradle to v8.14.3 (<a
href="https://redirect.github.com/square/okhttp/issues/8915">#8915</a>)</li>
<li><a
href="7adb2b637c"><code>7adb2b6</code></a>
Update junit-framework monorepo (<a
href="https://redirect.github.com/square/okhttp/issues/8914">#8914</a>)</li>
<li><a
href="e41ff18df8"><code>e41ff18</code></a>
Link to new mockwebserver artifacts (<a
href="https://redirect.github.com/square/okhttp/issues/8911">#8911</a>)</li>
<li><a
href="0ff87513e2"><code>0ff8751</code></a>
Remove Graal init tracing (<a
href="https://redirect.github.com/square/okhttp/issues/8909">#8909</a>)</li>
<li><a
href="b9a2560e56"><code>b9a2560</code></a>
Run graal on master (<a
href="https://redirect.github.com/square/okhttp/issues/8907">#8907</a>)</li>
<li><a
href="8339524463"><code>8339524</code></a>
Remove ExperimentalOkHttpApi references (<a
href="https://redirect.github.com/square/okhttp/issues/8908">#8908</a>)</li>
<li><a
href="ce29ef6182"><code>ce29ef6</code></a>
Fix graal tests (<a
href="https://redirect.github.com/square/okhttp/issues/8906">#8906</a>)</li>
<li><a
href="85796896c3"><code>8579689</code></a>
Don't force a response body read on all trailers (<a
href="https://redirect.github.com/square/okhttp/issues/8904">#8904</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.1.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 06:58:34 +00:00
Thomas Eizinger
5141817134 feat(connlib): add reason argument to reset API (#9878)
In order to provide more detailed logs, why `connlib`'s network state is
being reset, we add a `reason` parameter that is gets logged.

Resolves: #9867
2025-07-15 13:48:33 +00:00
dependabot[bot]
d8608f791a build(deps): bump com.google.firebase:firebase-bom from 33.15.0 to 33.16.0 in /kotlin/android (#9756)
Bumps com.google.firebase:firebase-bom from 33.15.0 to 33.16.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=33.15.0&new-version=33.16.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 15:09:32 +00:00
dependabot[bot]
e14d193467 build(deps): bump com.google.gms.google-services from 4.4.2 to 4.4.3 in /kotlin/android (#9759)
Bumps com.google.gms.google-services from 4.4.2 to 4.4.3.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.gms.google-services&package-manager=gradle&previous-version=4.4.2&new-version=4.4.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 15:09:02 +00:00
Jamil
4091457788 ci: publish android 1.5.2 (#9735)
**NOTE**: This is for last week's release of 1.5.2. We will still need
to do a release to cut 1.5.3.
2025-07-01 14:11:48 +00:00
Jamil
a5b4ec489f fix(docs): fix spacing due to new prettier (#9630)
Prettier was upgraded and has changed its mind on some spacing rules in
markdown files.
2025-06-23 05:52:57 +00:00
Jamil
3029e00355 fix(android): fix view state lifecycle around tunnel/auth (#9621)
`onViewCreated()` is called when the view initializes, and then
`onResume()` is called right after, in addition to anytime the view is
shown again.

To prevent showing the VPN permission activity twice, we remove the
`checkTunnelState()` from onViewCreated, allowing only `onResume()` to
call it.

A boolean flag is added to track whether this is the "first" launch of
the app in order to determine whether to `connectOnStart`.

Fixes #9584

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2025-06-22 16:20:11 +00:00
Thomas Eizinger
faeb958882 refactor: use UniFFI for Android FFI (#9415)
To make our FFI layer between Android and Rust safer, we adopt the
UniFFI tool from Mozilla. UniFFI allows us to create a dedicated crate
(here `client-ffi`) that contains Rust structs annotated with various
attributes. These macros then generate code at compile time that is
built into the shared object. Using a dedicated CLI from the UniFFI
project, we can then generate Kotlin bindings from this shared object.

The primary motivation for this effort is memory safety across the FFI
boundary. Most importantly, we want to ensure that:

- The session pointer is not used after it has been free'd
- Disconnecting the session frees the pointer
- Freeing the session does not happen as part of a callback as that
triggers a cyclic dependency on the Rust side (callbacks are executed on
a runtime and that runtime is dropped as part of dropping the session)

To achieve all of these goals, we move away from callbacks altogether.
UniFFI has great support for async functions. We leverage this support
to expose a `suspend fn` to Android that returns `Event`s. These events
map to the current callback functions. Internally, these events are read
from a channel with a capacity of 1000 events. It is therefore not very
time-critical that the app reads from this channel. `connlib` will
happily continue even if the channel is full. 1000 events should be more
than sufficient though in case the host app cannot immediately process
them. We don't send events very often after all.

This event-based design has major advantages: It allows us to make use
of `AutoCloseable` on the Kotlin side, meaning the `session` pointer is
only ever accessed as part of a `use` block and automatically closed
(and therefore free'd) at the end of the block.

To communicate with the session, we introduce a `TunnelCommand` which
represents all actions that the host app can send to `connlib`. These
are passed through a channel to the `suspend fn` which continuously
listens for events and commands.

Resolves: #9499
Related: #3959

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2025-06-17 21:48:34 +00:00
dependabot[bot]
c3760e371c build(deps): bump androidx.security:security-crypto from 1.1.0-alpha07 to 1.1.0-beta01 in /kotlin/android (#9426)
Bumps androidx.security:security-crypto from 1.1.0-alpha07 to
1.1.0-beta01.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.security:security-crypto&package-manager=gradle&previous-version=1.1.0-alpha07&new-version=1.1.0-beta01)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-10 16:13:22 +00:00
Thomas Eizinger
a78b4a29f1 chore(android): update README instructions (#9497)
While setting up Android Studio on my Mac, I noticed that these
instructions are slightly out of date and can be improved.
2025-06-10 14:08:29 +00:00
dependabot[bot]
5d9342eca8 build(deps): bump com.google.firebase:firebase-bom from 33.14.0 to 33.15.0 in /kotlin/android (#9447)
Bumps com.google.firebase:firebase-bom from 33.14.0 to 33.15.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=33.14.0&new-version=33.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 15:04:16 +00:00
Jamil
dad812a607 chore(android): remove dupe boot permission (#9451)
Not sure how I didn't see this before, but `RECEIVE_BOOT_COMPLETED` is
duplicated and newer versions of Android Studio complain about this.
2025-06-06 13:50:37 +00:00
dependabot[bot]
9ff3c44662 build(deps): bump androidx.fragment:fragment-testing from 1.8.7 to 1.8.8 in /kotlin/android (#9429)
Bumps androidx.fragment:fragment-testing from 1.8.7 to 1.8.8.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.fragment:fragment-testing&package-manager=gradle&previous-version=1.8.7&new-version=1.8.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 07:32:47 +00:00
dependabot[bot]
0b6d545d92 build(deps): bump com.google.firebase.crashlytics from 3.0.3 to 3.0.4 in /kotlin/android (#9428)
Bumps com.google.firebase.crashlytics from 3.0.3 to 3.0.4.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase.crashlytics&package-manager=gradle&previous-version=3.0.3&new-version=3.0.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 07:32:44 +00:00
dependabot[bot]
255bfa8283 build(deps): bump the lifecycle group in /kotlin/android with 3 updates (#9423)
Bumps the lifecycle group in /kotlin/android with 3 updates:
androidx.lifecycle:lifecycle-runtime-ktx,
androidx.lifecycle:lifecycle-viewmodel-ktx and
androidx.lifecycle:lifecycle-livedata-ktx.

Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.9.0 to 2.9.1

Updates `androidx.lifecycle:lifecycle-viewmodel-ktx` from 2.9.0 to 2.9.1

Updates `androidx.lifecycle:lifecycle-livedata-ktx` from 2.9.0 to 2.9.1


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 07:32:40 +00:00
dependabot[bot]
1dcc4e63be build(deps): bump androidx.appcompat:appcompat from 1.7.0 to 1.7.1 in /kotlin/android in the androidx group (#9422)
Bumps the androidx group in /kotlin/android with 1 update:
androidx.appcompat:appcompat.

Updates `androidx.appcompat:appcompat` from 1.7.0 to 1.7.1


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.appcompat:appcompat&package-manager=gradle&previous-version=1.7.0&new-version=1.7.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-06 07:32:37 +00:00
Jamil
7498d992cb chore: publish android 1.5.1 (#9405) 2025-06-05 03:24:32 +00:00
Jamil
a7af119668 chore: publish android 1.5.0 (#9378) 2025-06-03 06:58:22 +00:00
dependabot[bot]
e7118a27a0 build(deps): bump com.android.application from 8.10.0 to 8.10.1 in /kotlin/android in the com-android group (#9327)
Bumps the com-android group in /kotlin/android with 1 update:
com.android.application.

Updates `com.android.application` from 8.10.0 to 8.10.1


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.application&package-manager=gradle&previous-version=8.10.0&new-version=8.10.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 05:44:40 +00:00
dependabot[bot]
3b5b7852d4 build(deps): bump com.google.firebase:firebase-bom from 33.13.0 to 33.14.0 in /kotlin/android (#9328)
Bumps com.google.firebase:firebase-bom from 33.13.0 to 33.14.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=33.13.0&new-version=33.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 05:43:58 +00:00
dependabot[bot]
bba77f82dd build(deps): bump com.diffplug.spotless from 7.0.3 to 7.0.4 in /kotlin/android (#9329)
Bumps com.diffplug.spotless from 7.0.3 to 7.0.4.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.diffplug.spotless&package-manager=gradle&previous-version=7.0.3&new-version=7.0.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 05:43:38 +00:00
Jamil
2d9c946e96 refactor(android): use early returns in connect logic (#9280)
Our connect logic is more complex than it needs to be. This aims to
simplify that a bit to aid in future maintenance.

Related:
https://github.com/firezone/firezone/pull/9279#discussion_r2108127619
2025-05-27 20:41:36 +00:00
dependabot[bot]
0cb6e2069e build(deps): bump the retrofit group in /kotlin/android with 2 updates (#9253)
Bumps the retrofit group in /kotlin/android with 2 updates:
[com.squareup.retrofit2:retrofit](https://github.com/square/retrofit)
and
[com.squareup.retrofit2:converter-moshi](https://github.com/square/retrofit).

Updates `com.squareup.retrofit2:retrofit` from 2.11.0 to 3.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/square/retrofit/releases">com.squareup.retrofit2:retrofit's
releases</a>.</em></p>
<blockquote>
<h2>3.0.0</h2>
<p><strong>Changed</strong></p>
<ul>
<li>
<p>Upgrade to OkHttp 4.12 (from 3.14).</p>
<p>This is the version of OkHttp that is written in Kotlin, and as a
result Retrofit now has a transitive Kotlin dependency. However, this is
also the <em>supported</em> version of OkHttp whereas the previous
version was out of support for nearly 4 years.</p>
</li>
</ul>
<p>Note: The 3.x versions of Retrofit maintain forward
binary-compatibility with the 2.x versions.
This means libraries compiled against 2.x can still be used with the 3.x
versions.</p>
<h2>2.12.0</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>First-party converters now support deferring serialization to happen
when the request body is written (i.e., during HTTP execution) rather
than when the HTTP request is created. In some cases this moves
conversion from a calling thread to a background thread, such as in the
case when using <code>Call.enqueue</code> directly.</p>
<p>The following converters support this feature through a new
<code>withStreaming()</code> factory method:</p>
<ul>
<li>Gson</li>
<li>Jackson</li>
<li>Moshi</li>
<li>Protobuf</li>
<li>Wire</li>
</ul>
</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Primitive types used with <code>@Tag</code> now work by storing the
value boxed with the boxed class as the key.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/retrofit/blob/trunk/CHANGELOG.md">com.squareup.retrofit2:retrofit's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/square/retrofit/releases/tag/3.0.0">3.0.0</a> -
2025-05-15</h2>
<p><strong>Changed</strong></p>
<ul>
<li>
<p>Upgrade to OkHttp 4.12 (from 3.14).</p>
<p>This is the version of OkHttp that is written in Kotlin, and as a
result Retrofit now has a transitive Kotlin dependency. However, this is
also the <em>supported</em> version of OkHttp whereas the previous
version was out of support for nearly 4 years.</p>
</li>
</ul>
<p>Note: The 3.x versions of Retrofit maintain forward
binary-compatibility with the 2.x versions.
This means libraries compiled against 2.x can still be used with the 3.x
versions.</p>
<h2><a
href="https://github.com/square/retrofit/releases/tag/2.12.0">2.12.0</a>
- 2025-05-15</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>First-party converters now support deferring serialization to happen
when the request body is written (i.e., during HTTP execution) rather
than when the HTTP request is created. In some cases this moves
conversion from a calling thread to a background thread, such as in the
case when using <code>Call.enqueue</code> directly.</p>
<p>The following converters support this feature through a new
<code>withStreaming()</code> factory method:</p>
<ul>
<li>Gson</li>
<li>Jackson</li>
<li>Moshi</li>
<li>Protobuf</li>
<li>Wire</li>
</ul>
</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Primitive types used with <code>@Tag</code> now work by storing the
value boxed with the boxed class as the key.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3ab0f1a2c1"><code>3ab0f1a</code></a>
Prepare version 3.0.0</li>
<li><a
href="e5c02d08f3"><code>e5c02d0</code></a>
Commit 2.x docs (<a
href="https://redirect.github.com/square/retrofit/issues/4378">#4378</a>)</li>
<li><a
href="5bc3f183cf"><code>5bc3f18</code></a>
Fix links on the proudction site (<a
href="https://redirect.github.com/square/retrofit/issues/4377">#4377</a>)</li>
<li><a
href="7c3b2290bd"><code>7c3b229</code></a>
Remove compileOnly stdlib dependency (<a
href="https://redirect.github.com/square/retrofit/issues/4376">#4376</a>)</li>
<li><a
href="84185470ad"><code>8418547</code></a>
Update okhttp monorepo to v4 (major) (<a
href="https://redirect.github.com/square/retrofit/issues/4375">#4375</a>)</li>
<li><a
href="06216a3b24"><code>06216a3</code></a>
Try to fix removal of latest dir during release</li>
<li><a
href="1697bdc491"><code>1697bdc</code></a>
Prepare next development version</li>
<li><a
href="5a6ce364ad"><code>5a6ce36</code></a>
Prepare version 2.12.0</li>
<li><a
href="4fb8aed0cc"><code>4fb8aed</code></a>
Fix artifact name (<a
href="https://redirect.github.com/square/retrofit/issues/4372">#4372</a>)</li>
<li><a
href="bf11ef4cfa"><code>bf11ef4</code></a>
Dedicated website build, final status job (<a
href="https://redirect.github.com/square/retrofit/issues/4371">#4371</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/retrofit/compare/2.11.0...3.0.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.squareup.retrofit2:converter-moshi` from 2.11.0 to 3.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/square/retrofit/releases">com.squareup.retrofit2:converter-moshi's
releases</a>.</em></p>
<blockquote>
<h2>3.0.0</h2>
<p><strong>Changed</strong></p>
<ul>
<li>
<p>Upgrade to OkHttp 4.12 (from 3.14).</p>
<p>This is the version of OkHttp that is written in Kotlin, and as a
result Retrofit now has a transitive Kotlin dependency. However, this is
also the <em>supported</em> version of OkHttp whereas the previous
version was out of support for nearly 4 years.</p>
</li>
</ul>
<p>Note: The 3.x versions of Retrofit maintain forward
binary-compatibility with the 2.x versions.
This means libraries compiled against 2.x can still be used with the 3.x
versions.</p>
<h2>2.12.0</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>First-party converters now support deferring serialization to happen
when the request body is written (i.e., during HTTP execution) rather
than when the HTTP request is created. In some cases this moves
conversion from a calling thread to a background thread, such as in the
case when using <code>Call.enqueue</code> directly.</p>
<p>The following converters support this feature through a new
<code>withStreaming()</code> factory method:</p>
<ul>
<li>Gson</li>
<li>Jackson</li>
<li>Moshi</li>
<li>Protobuf</li>
<li>Wire</li>
</ul>
</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Primitive types used with <code>@Tag</code> now work by storing the
value boxed with the boxed class as the key.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/retrofit/blob/trunk/CHANGELOG.md">com.squareup.retrofit2:converter-moshi's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/square/retrofit/releases/tag/3.0.0">3.0.0</a> -
2025-05-15</h2>
<p><strong>Changed</strong></p>
<ul>
<li>
<p>Upgrade to OkHttp 4.12 (from 3.14).</p>
<p>This is the version of OkHttp that is written in Kotlin, and as a
result Retrofit now has a transitive Kotlin dependency. However, this is
also the <em>supported</em> version of OkHttp whereas the previous
version was out of support for nearly 4 years.</p>
</li>
</ul>
<p>Note: The 3.x versions of Retrofit maintain forward
binary-compatibility with the 2.x versions.
This means libraries compiled against 2.x can still be used with the 3.x
versions.</p>
<h2><a
href="https://github.com/square/retrofit/releases/tag/2.12.0">2.12.0</a>
- 2025-05-15</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>First-party converters now support deferring serialization to happen
when the request body is written (i.e., during HTTP execution) rather
than when the HTTP request is created. In some cases this moves
conversion from a calling thread to a background thread, such as in the
case when using <code>Call.enqueue</code> directly.</p>
<p>The following converters support this feature through a new
<code>withStreaming()</code> factory method:</p>
<ul>
<li>Gson</li>
<li>Jackson</li>
<li>Moshi</li>
<li>Protobuf</li>
<li>Wire</li>
</ul>
</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Primitive types used with <code>@Tag</code> now work by storing the
value boxed with the boxed class as the key.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3ab0f1a2c1"><code>3ab0f1a</code></a>
Prepare version 3.0.0</li>
<li><a
href="e5c02d08f3"><code>e5c02d0</code></a>
Commit 2.x docs (<a
href="https://redirect.github.com/square/retrofit/issues/4378">#4378</a>)</li>
<li><a
href="5bc3f183cf"><code>5bc3f18</code></a>
Fix links on the proudction site (<a
href="https://redirect.github.com/square/retrofit/issues/4377">#4377</a>)</li>
<li><a
href="7c3b2290bd"><code>7c3b229</code></a>
Remove compileOnly stdlib dependency (<a
href="https://redirect.github.com/square/retrofit/issues/4376">#4376</a>)</li>
<li><a
href="84185470ad"><code>8418547</code></a>
Update okhttp monorepo to v4 (major) (<a
href="https://redirect.github.com/square/retrofit/issues/4375">#4375</a>)</li>
<li><a
href="06216a3b24"><code>06216a3</code></a>
Try to fix removal of latest dir during release</li>
<li><a
href="1697bdc491"><code>1697bdc</code></a>
Prepare next development version</li>
<li><a
href="5a6ce364ad"><code>5a6ce36</code></a>
Prepare version 2.12.0</li>
<li><a
href="4fb8aed0cc"><code>4fb8aed</code></a>
Fix artifact name (<a
href="https://redirect.github.com/square/retrofit/issues/4372">#4372</a>)</li>
<li><a
href="bf11ef4cfa"><code>bf11ef4</code></a>
Dedicated website build, final status job (<a
href="https://redirect.github.com/square/retrofit/issues/4371">#4371</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/retrofit/compare/2.11.0...3.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-27 14:11:32 +00:00
dependabot[bot]
4110d0badf build(deps): bump the navigation group in /kotlin/android with 4 updates (#9251)
Bumps the navigation group in /kotlin/android with 4 updates:
androidx.navigation:navigation-safe-args-gradle-plugin,
androidx.navigation:navigation-fragment-ktx,
androidx.navigation:navigation-ui-ktx and
androidx.navigation:navigation-testing.

Updates `androidx.navigation:navigation-safe-args-gradle-plugin` from
2.8.9 to 2.9.0

Updates `androidx.navigation:navigation-fragment-ktx` from 2.8.9 to
2.9.0

Updates `androidx.navigation:navigation-ui-ktx` from 2.8.9 to 2.9.0

Updates `androidx.navigation:navigation-testing` from 2.8.9 to 2.9.0


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-27 14:01:05 +00:00
dependabot[bot]
e68e8dcf77 build(deps): bump the lifecycle group in /kotlin/android with 3 updates (#9248)
Bumps the lifecycle group in /kotlin/android with 3 updates:
androidx.lifecycle:lifecycle-runtime-ktx,
androidx.lifecycle:lifecycle-viewmodel-ktx and
androidx.lifecycle:lifecycle-livedata-ktx.

Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.8.7 to 2.9.0

Updates `androidx.lifecycle:lifecycle-viewmodel-ktx` from 2.8.7 to 2.9.0

Updates `androidx.lifecycle:lifecycle-livedata-ktx` from 2.8.7 to 2.9.0


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-27 14:00:17 +00:00
dependabot[bot]
4ee3421c87 build(deps): bump com.android.application from 8.9.2 to 8.10.0 in /kotlin/android in the com-android group (#9276)
Bumps the com-android group in /kotlin/android with 1 update:
com.android.application.

Updates `com.android.application` from 8.9.2 to 8.10.0


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.application&package-manager=gradle&previous-version=8.9.2&new-version=8.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-27 13:58:40 +00:00
dependabot[bot]
19d3f815dc build(deps): bump androidx.fragment:fragment-testing from 1.8.6 to 1.8.7 in /kotlin/android (#9259)
Bumps androidx.fragment:fragment-testing from 1.8.6 to 1.8.7.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.fragment:fragment-testing&package-manager=gradle&previous-version=1.8.6&new-version=1.8.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-27 13:57:18 +00:00
Jamil
1f87469634 fix(android): ensure connectOnStart applies only to start (#9279)
A bug was introduced in #9227 where the `connectOnStart` was being read
for both resumed launches and initial launches. This PR updates that
logic so that we only check `connectOnStart` when the app is actually
launched.

On mobile platforms, this flag is not as clearcut as on desktop
platforms, but it's maintained here because ChromeOS is also used on
desktop systems.
2025-05-27 04:20:53 +00:00
Jamil
f2d88f49a0 feat(android): Managed configuration (#9227)
Adds managed configuration support for Android in line with other
platforms.

Related: #4505 
Related: #9203 
Related: #9196
2025-05-26 23:37:02 +00:00
Jamil
b5c18db5e8 chore(ci): Bump next clients version to 1.5.0 (#9229)
We've decided we'll be bumping the minor with shipping managed
configurations support.
2025-05-26 04:24:35 +00:00
Jamil
9a29d9c2fa chore(deps/android): Enable desugaring (#9222)
The `com.google.android.gms:play-services-tasks` 2.3.0 update requires
desugaring to be enabled on the project, so this PR adds that.

Supersedes: #8830
2025-05-25 09:01:08 -07:00
Jamil
029d6ba6ee fix(android): Fix request permission screen padding (#9200)
The padding on this screen was broken, resulting in elements flush
against the edge of the display.

While I was in here, I decided to do a quick round of polish on the
layout and sizing of elements here.

<img width="395" alt="Screenshot 2025-05-21 at 4 24 08 PM"
src="https://github.com/user-attachments/assets/db4f53a3-1ee9-41ae-8172-8cca22be742b"
/>
2025-05-22 10:02:38 +00:00
Jamil
a1feba9458 fix(android): Bump Android NDK and build target (#9198)
Android recently bumped their default page size to 16 KB, which requires
an updated NDK to successfully build connlib.

See https://developer.android.com/guide/practices/page-sizes
2025-05-21 23:29:48 +00:00