394 Commits

Author SHA1 Message Date
dependabot[bot]
adac8a2297 build(deps): Bump org.mozilla.rust-android-gradle.rust-android from 0.9.3 to 0.9.4 in /kotlin/android (#4857)
Bumps org.mozilla.rust-android-gradle.rust-android from 0.9.3 to 0.9.4.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.mozilla.rust-android-gradle.rust-android&package-manager=gradle&previous-version=0.9.3&new-version=0.9.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>
2024-05-01 13:45:55 +00:00
Jamil
4dc656c90a chore(ci): bump versions (#4840) 2024-04-30 16:31:20 -07:00
Jason Elie Bou Kheir
4baf0cb93b test(android): add instrumentation test github action (#4178)
Fixes #2311
2024-04-30 17:05:46 +00:00
Jamil
b79ce96bc6 chore(website): Bump versions (#4821)
- Bump versions to point to latest binaries
- Stage versions for next release
2024-04-29 22:06:00 +00:00
Jamil
dc159ffbcb revert(android): revert to unpublished version (#4807) 2024-04-28 18:39:20 -07:00
Jamil
5dc52edecc ci: Bump versions and fix release overwrites (#4769) 2024-04-24 11:43:19 -07:00
Jamil
6720ab5bc1 chore(clients): Bump Apple to 1.0.2; Android 1.0.1 (#4590)
CI won't pass for these builds without these bumps because the versions
are already published.
2024-04-11 22:34:17 +00:00
dependabot[bot]
e411b94071 build(deps): Bump the retrofit group in /kotlin/android with 2 updates (#4445)
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.9.0 to 2.11.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>2.11.0</h2>
<p><strong>New</strong></p>
<ul>
<li>The built-in <code>OptionalConverterFactory</code> is now public to
allow installing it before other converters which consume all types
(e.g., Moshi, Gson, Jackson, etc.).</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Ensure that exceptions thrown from failure to parse method
annotations can be observed by multiple threads/callers. Previously only
the first caller would see the actual parsing exception and other
callers would get a cryptic <code>ClassCastException</code>.</li>
</ul>
<h2>2.10.0</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>Support using <code>Unit</code> as a response type. This can be used
for non-body HTTP methods like <code>HEAD</code> or body-containing HTTP
methods like <code>GET</code> where the body will be discarded without
deserialization.</p>
</li>
<li>
<p>kotlinx.serialization converter!</p>
<p>This was imported from <a
href="https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/">github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/</a>
and remains unchanged from its 1.0.0 release.</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-kotlinx-serialization</code>.</p>
</li>
<li>
<p>JAXB 3 converter!</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-jaxb3</code>.</p>
</li>
<li>
<p><code>@Header</code>, <code>@Headers</code>, and
<code>@HeaderMap</code> can now set non-ASCII values through the
<code>allowUnsafeNonAsciiValues</code> annotation property. These are
not technically compliant with the HTTP specification, but are often
supported or required by services.</p>
</li>
<li>
<p>Publish a BOM of all modules. The Maven coordinates are
<code>com.squareup.retrofit2:retrofit-bom</code>.</p>
</li>
<li>
<p><code>Invocation</code> now exposes the service
<code>Class&lt;?&gt;</code> and the instance on which the method was
invoked. This disambiguates the source when service inheritence is
used.</p>
</li>
<li>
<p>A response type keeper annotation processor is now available for
generating shrinker rules for all referenced types in your service
interface. In some cases, it's impossible for static shrinker rules to
keep the entirety of what Retrofit needs at runtime. This annotation
processor generates those additional rules. For more info see <a
href="https://github.com/square/retrofit/tree/trunk/retrofit-response-type-keeper#readme">its
README</a>.</p>
</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Add shrinker rules to retain the generic signatures of built-in
types (<code>Call</code>, <code>Response</code>, etc.) which are used
via reflection at runtime.</li>
<li>Remove backpressure support from RxJava 2 and 3 adapters. Since we
only deliver a single value and the Reactive Streams specification
states that callers must request a non-zero subscription value, we never
need to honor backpressure.</li>
<li>Kotlin <code>Retrofit.create</code> function now has a non-null
lower bound. Even if you specified a nullable type before this function
would never return null.</li>
<li>Suspend functions now capture and defer all <code>Throwable</code>
subtypes (not just <code>Exception</code> subtypes) to avoid Java's
<code>UndeclaredThrowableException</code> when thrown
synchronously.</li>
<li>Eagerly reject <code>suspend fun</code> functions that return
<code>Call&lt;Body&gt;</code>. These are never correct, and should
declare a return type of <code>Body</code> directly.</li>
<li>Support for Java 14-specific and Java 16-specific reflection needed
to invoke default methods on interfaces have been moved to separate
versions of a class through a multi-release jar. This should have no
observable impact other than the jar now contains classes which target
Java 14 and Java 16 bytecode that might trip up some static analysis
tools which are not aware of multi-release jars.</li>
<li>Parameter names are now displayed in exception messages when
available in the underlying Java bytecode.</li>
<li>Jackson converter now supports binary formats by using byte streams
rather than character streams in its implementation. Use the
<code>create(ObjectMapper, MediaType)</code> overload to supply the
value of the <code>Content-Type</code> header for your format.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Do not include synthetic methods when doing eager validation.</li>
<li>Use per-method rather than per-class locking when parsing
annotations. This eliminates contention when multiple calls are made in
quick succession at the beginning of the process lifetime.</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>[2.11.0] - 2024-03-28</h2>
<p><strong>New</strong></p>
<ul>
<li>The built-in <code>OptionalConverterFactory</code> is now public to
allow installing it before other converters which consume all types
(e.g., Moshi, Gson, Jackson, etc.).</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Ensure that exceptions thrown from failure to parse method
annotations can be observed by multiple threads/callers. Previously only
the first caller would see the actual parsing exception and other
callers would get a cryptic <code>ClassCastException</code>.</li>
</ul>
<h2>[2.10.0] - 2024-03-18</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>Support using <code>Unit</code> as a response type. This can be used
for non-body HTTP methods like <code>HEAD</code> or body-containing HTTP
methods like <code>GET</code> where the body will be discarded without
deserialization.</p>
</li>
<li>
<p>kotlinx.serialization converter!</p>
<p>This was imported from <a
href="https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/">github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/</a>
and remains unchanged from its 1.0.0 release.</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-kotlinx-serialization</code>.</p>
</li>
<li>
<p>JAXB 3 converter!</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-jaxb3</code>.</p>
</li>
<li>
<p><code>@Header</code>, <code>@Headers</code>, and
<code>@HeaderMap</code> can now set non-ASCII values through the
<code>allowUnsafeNonAsciiValues</code> annotation property. These are
not technically compliant with the HTTP specification, but are often
supported or required by services.</p>
</li>
<li>
<p>Publish a BOM of all modules. The Maven coordinates are
<code>com.squareup.retrofit2:retrofit-bom</code>.</p>
</li>
<li>
<p><code>Invocation</code> now exposes the service
<code>Class&lt;?&gt;</code> and the instance on which the method was
invoked. This disambiguates the source when service inheritence is
used.</p>
</li>
<li>
<p>A response type keeper annotation processor is now available for
generating shrinker rules for all referenced types in your service
interface. In some cases, it's impossible for static shrinker rules to
keep the entirety of what Retrofit needs at runtime. This annotation
processor generates those additional rules. For more info see <a
href="https://github.com/square/retrofit/tree/trunk/retrofit-response-type-keeper#readme">its
README</a>.</p>
</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Add shrinker rules to retain the generic signatures of built-in
types (<code>Call</code>, <code>Response</code>, etc.) which are used
via reflection at runtime.</li>
<li>Remove backpressure support from RxJava 2 and 3 adapters. Since we
only deliver a single value and the Reactive Streams specification
states that callers must request a non-zero subscription value, we never
need to honor backpressure.</li>
<li>Kotlin <code>Retrofit.create</code> function now has a non-null
lower bound. Even if you specified a nullable type before this function
would never return null.</li>
<li>Suspend functions now capture and defer all <code>Throwable</code>
subtypes (not just <code>Exception</code> subtypes) to avoid Java's
<code>UndeclaredThrowableException</code> when thrown
synchronously.</li>
<li>Eagerly reject <code>suspend fun</code> functions that return
<code>Call&lt;Body&gt;</code>. These are never correct, and should
declare a return type of <code>Body</code> directly.</li>
<li>Support for Java 14-specific and Java 16-specific reflection needed
to invoke default methods on interfaces have been moved to separate
versions of a class through a multi-release jar. This should have no
observable impact other than the jar now contains classes which target
Java 14 and Java 16 bytecode that might trip up some static analysis
tools which are not aware of multi-release jars.</li>
<li>Parameter names are now displayed in exception messages when
available in the underlying Java bytecode.</li>
<li>Jackson converter now supports binary formats by using byte streams
rather than character streams in its implementation. Use the
<code>create(ObjectMapper, MediaType)</code> overload to supply the
value of the <code>Content-Type</code> header for your format.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Do not include synthetic methods when doing eager validation.</li>
<li>Use per-method rather than per-class locking when parsing
annotations. This eliminates contention when multiple calls are made in
quick succession at the beginning of the process lifetime.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc76c22a68"><code>cc76c22</code></a>
Prepare version 2.11.0</li>
<li><a
href="eba9567812"><code>eba9567</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4117">#4117</a>
from square/jw.public-optional.2024-03-27</li>
<li><a
href="c579693e70"><code>c579693</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4114">#4114</a>
from square/jw.locks.2024-03-22</li>
<li><a
href="d6eac54ccf"><code>d6eac54</code></a>
Make optional converter public</li>
<li><a
href="9b5e6307b8"><code>9b5e630</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4116">#4116</a>
from deterclosed/trunk</li>
<li><a
href="bab101e678"><code>bab101e</code></a>
all: remove repetitive words</li>
<li><a
href="80aee71348"><code>80aee71</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4115">#4115</a>
from square/renovate/gradle-8.x</li>
<li><a
href="83acb51298"><code>83acb51</code></a>
Update dependency gradle to v8.7</li>
<li><a
href="d41213948e"><code>d412139</code></a>
Gracefully handle parse failure with locking</li>
<li><a
href="8f5a3c940f"><code>8f5a3c9</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4110">#4110</a>
from jonapoul/patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/square/retrofit/compare/2.9.0...2.11.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.squareup.retrofit2:converter-moshi` from 2.9.0 to 2.11.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>2.11.0</h2>
<p><strong>New</strong></p>
<ul>
<li>The built-in <code>OptionalConverterFactory</code> is now public to
allow installing it before other converters which consume all types
(e.g., Moshi, Gson, Jackson, etc.).</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Ensure that exceptions thrown from failure to parse method
annotations can be observed by multiple threads/callers. Previously only
the first caller would see the actual parsing exception and other
callers would get a cryptic <code>ClassCastException</code>.</li>
</ul>
<h2>2.10.0</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>Support using <code>Unit</code> as a response type. This can be used
for non-body HTTP methods like <code>HEAD</code> or body-containing HTTP
methods like <code>GET</code> where the body will be discarded without
deserialization.</p>
</li>
<li>
<p>kotlinx.serialization converter!</p>
<p>This was imported from <a
href="https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/">github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/</a>
and remains unchanged from its 1.0.0 release.</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-kotlinx-serialization</code>.</p>
</li>
<li>
<p>JAXB 3 converter!</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-jaxb3</code>.</p>
</li>
<li>
<p><code>@Header</code>, <code>@Headers</code>, and
<code>@HeaderMap</code> can now set non-ASCII values through the
<code>allowUnsafeNonAsciiValues</code> annotation property. These are
not technically compliant with the HTTP specification, but are often
supported or required by services.</p>
</li>
<li>
<p>Publish a BOM of all modules. The Maven coordinates are
<code>com.squareup.retrofit2:retrofit-bom</code>.</p>
</li>
<li>
<p><code>Invocation</code> now exposes the service
<code>Class&lt;?&gt;</code> and the instance on which the method was
invoked. This disambiguates the source when service inheritence is
used.</p>
</li>
<li>
<p>A response type keeper annotation processor is now available for
generating shrinker rules for all referenced types in your service
interface. In some cases, it's impossible for static shrinker rules to
keep the entirety of what Retrofit needs at runtime. This annotation
processor generates those additional rules. For more info see <a
href="https://github.com/square/retrofit/tree/trunk/retrofit-response-type-keeper#readme">its
README</a>.</p>
</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Add shrinker rules to retain the generic signatures of built-in
types (<code>Call</code>, <code>Response</code>, etc.) which are used
via reflection at runtime.</li>
<li>Remove backpressure support from RxJava 2 and 3 adapters. Since we
only deliver a single value and the Reactive Streams specification
states that callers must request a non-zero subscription value, we never
need to honor backpressure.</li>
<li>Kotlin <code>Retrofit.create</code> function now has a non-null
lower bound. Even if you specified a nullable type before this function
would never return null.</li>
<li>Suspend functions now capture and defer all <code>Throwable</code>
subtypes (not just <code>Exception</code> subtypes) to avoid Java's
<code>UndeclaredThrowableException</code> when thrown
synchronously.</li>
<li>Eagerly reject <code>suspend fun</code> functions that return
<code>Call&lt;Body&gt;</code>. These are never correct, and should
declare a return type of <code>Body</code> directly.</li>
<li>Support for Java 14-specific and Java 16-specific reflection needed
to invoke default methods on interfaces have been moved to separate
versions of a class through a multi-release jar. This should have no
observable impact other than the jar now contains classes which target
Java 14 and Java 16 bytecode that might trip up some static analysis
tools which are not aware of multi-release jars.</li>
<li>Parameter names are now displayed in exception messages when
available in the underlying Java bytecode.</li>
<li>Jackson converter now supports binary formats by using byte streams
rather than character streams in its implementation. Use the
<code>create(ObjectMapper, MediaType)</code> overload to supply the
value of the <code>Content-Type</code> header for your format.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Do not include synthetic methods when doing eager validation.</li>
<li>Use per-method rather than per-class locking when parsing
annotations. This eliminates contention when multiple calls are made in
quick succession at the beginning of the process lifetime.</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>[2.11.0] - 2024-03-28</h2>
<p><strong>New</strong></p>
<ul>
<li>The built-in <code>OptionalConverterFactory</code> is now public to
allow installing it before other converters which consume all types
(e.g., Moshi, Gson, Jackson, etc.).</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Ensure that exceptions thrown from failure to parse method
annotations can be observed by multiple threads/callers. Previously only
the first caller would see the actual parsing exception and other
callers would get a cryptic <code>ClassCastException</code>.</li>
</ul>
<h2>[2.10.0] - 2024-03-18</h2>
<p><strong>New</strong></p>
<ul>
<li>
<p>Support using <code>Unit</code> as a response type. This can be used
for non-body HTTP methods like <code>HEAD</code> or body-containing HTTP
methods like <code>GET</code> where the body will be discarded without
deserialization.</p>
</li>
<li>
<p>kotlinx.serialization converter!</p>
<p>This was imported from <a
href="https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/">github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/</a>
and remains unchanged from its 1.0.0 release.</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-kotlinx-serialization</code>.</p>
</li>
<li>
<p>JAXB 3 converter!</p>
<p>The Maven coordinates are
<code>com.squareup.retrofit2:converter-jaxb3</code>.</p>
</li>
<li>
<p><code>@Header</code>, <code>@Headers</code>, and
<code>@HeaderMap</code> can now set non-ASCII values through the
<code>allowUnsafeNonAsciiValues</code> annotation property. These are
not technically compliant with the HTTP specification, but are often
supported or required by services.</p>
</li>
<li>
<p>Publish a BOM of all modules. The Maven coordinates are
<code>com.squareup.retrofit2:retrofit-bom</code>.</p>
</li>
<li>
<p><code>Invocation</code> now exposes the service
<code>Class&lt;?&gt;</code> and the instance on which the method was
invoked. This disambiguates the source when service inheritence is
used.</p>
</li>
<li>
<p>A response type keeper annotation processor is now available for
generating shrinker rules for all referenced types in your service
interface. In some cases, it's impossible for static shrinker rules to
keep the entirety of what Retrofit needs at runtime. This annotation
processor generates those additional rules. For more info see <a
href="https://github.com/square/retrofit/tree/trunk/retrofit-response-type-keeper#readme">its
README</a>.</p>
</li>
</ul>
<p><strong>Changed</strong></p>
<ul>
<li>Add shrinker rules to retain the generic signatures of built-in
types (<code>Call</code>, <code>Response</code>, etc.) which are used
via reflection at runtime.</li>
<li>Remove backpressure support from RxJava 2 and 3 adapters. Since we
only deliver a single value and the Reactive Streams specification
states that callers must request a non-zero subscription value, we never
need to honor backpressure.</li>
<li>Kotlin <code>Retrofit.create</code> function now has a non-null
lower bound. Even if you specified a nullable type before this function
would never return null.</li>
<li>Suspend functions now capture and defer all <code>Throwable</code>
subtypes (not just <code>Exception</code> subtypes) to avoid Java's
<code>UndeclaredThrowableException</code> when thrown
synchronously.</li>
<li>Eagerly reject <code>suspend fun</code> functions that return
<code>Call&lt;Body&gt;</code>. These are never correct, and should
declare a return type of <code>Body</code> directly.</li>
<li>Support for Java 14-specific and Java 16-specific reflection needed
to invoke default methods on interfaces have been moved to separate
versions of a class through a multi-release jar. This should have no
observable impact other than the jar now contains classes which target
Java 14 and Java 16 bytecode that might trip up some static analysis
tools which are not aware of multi-release jars.</li>
<li>Parameter names are now displayed in exception messages when
available in the underlying Java bytecode.</li>
<li>Jackson converter now supports binary formats by using byte streams
rather than character streams in its implementation. Use the
<code>create(ObjectMapper, MediaType)</code> overload to supply the
value of the <code>Content-Type</code> header for your format.</li>
</ul>
<p><strong>Fixed</strong></p>
<ul>
<li>Do not include synthetic methods when doing eager validation.</li>
<li>Use per-method rather than per-class locking when parsing
annotations. This eliminates contention when multiple calls are made in
quick succession at the beginning of the process lifetime.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc76c22a68"><code>cc76c22</code></a>
Prepare version 2.11.0</li>
<li><a
href="eba9567812"><code>eba9567</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4117">#4117</a>
from square/jw.public-optional.2024-03-27</li>
<li><a
href="c579693e70"><code>c579693</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4114">#4114</a>
from square/jw.locks.2024-03-22</li>
<li><a
href="d6eac54ccf"><code>d6eac54</code></a>
Make optional converter public</li>
<li><a
href="9b5e6307b8"><code>9b5e630</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4116">#4116</a>
from deterclosed/trunk</li>
<li><a
href="bab101e678"><code>bab101e</code></a>
all: remove repetitive words</li>
<li><a
href="80aee71348"><code>80aee71</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4115">#4115</a>
from square/renovate/gradle-8.x</li>
<li><a
href="83acb51298"><code>83acb51</code></a>
Update dependency gradle to v8.7</li>
<li><a
href="d41213948e"><code>d412139</code></a>
Gracefully handle parse failure with locking</li>
<li><a
href="8f5a3c940f"><code>8f5a3c9</code></a>
Merge pull request <a
href="https://redirect.github.com/square/retrofit/issues/4110">#4110</a>
from jonapoul/patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/square/retrofit/compare/2.9.0...2.11.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>
2024-04-01 16:22:23 +00:00
dependabot[bot]
1cdc462b7e build(deps): Bump com.google.firebase:firebase-bom from 32.7.4 to 32.8.0 in /kotlin/android (#4446)
Bumps com.google.firebase:firebase-bom from 32.7.4 to 32.8.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=32.7.4&new-version=32.8.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>
2024-04-01 16:21:35 +00:00
dependabot[bot]
b26942b254 build(deps): Bump the hilt group in /kotlin/android with 3 updates (#4444)
Bumps the hilt group in /kotlin/android with 3 updates:
[com.google.dagger.hilt.android](https://github.com/google/dagger),
[com.google.dagger:hilt-android](https://github.com/google/dagger) and
[com.google.dagger:hilt-android-compiler](https://github.com/google/dagger).

Updates `com.google.dagger.hilt.android` from 2.51 to 2.51.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.51.1</h2>
<h1>New Dagger Features</h1>
<ul>
<li>Added <code>BindingGraphPlugin#onProcessingRoundBegin</code> for
pre-processing initialization. (2a6a0b461)</li>
</ul>
<h1>Dagger bug fixes</h1>
<p>Fixed <a
href="https://redirect.github.com/google/dagger/issues/4181">#4181</a>:
Associate Dagger Android output with the generated Component, so that
incremental builds with Ksp won’t fail.
Fixed <a
href="https://redirect.github.com/google/dagger/issues/4254">#4254</a>:
Support using scoped <code>@LazyClassKey</code> map bindings.
Fixed <a
href="https://redirect.github.com/google/dagger/issues/4262">#4262</a>:
Support referencing an array of annotations in a map key annotation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="394cf25e1b"><code>394cf25</code></a>
2.51.1 release</li>
<li><a
href="86896790d1"><code>8689679</code></a>
Update xprocessing.jar for Dagger.</li>
<li><a
href="2a6a0b4616"><code>2a6a0b4</code></a>
Reset processingEnv for BindingGraphPlugins for each round.</li>
<li><a
href="fc2363d904"><code>fc2363d</code></a>
Associate Dagger Android output with generated Component.</li>
<li><a
href="29d9a8ef34"><code>29d9a8e</code></a>
Make LazyClassKeyMap accept both MapFactory and MapProviderFactory</li>
<li><a
href="c213e3696d"><code>c213e36</code></a>
Fix bug in AnnotationExpression.</li>
<li><a
href="e6c2ac86a2"><code>e6c2ac8</code></a>
Delete obsolete documentation</li>
<li><a
href="e8e1ce6946"><code>e8e1ce6</code></a>
Fix diagnostic kind in InjectValidator.</li>
<li><a
href="3fa9a8acb0"><code>3fa9a8a</code></a>
Migrate from soon-to-be-deprecated <code>propagateIfPossible</code> to
equivalent `throw...</li>
<li><a
href="922ff50c10"><code>922ff50</code></a>
reduce number of times resolving parameter types in an extreme
case.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.51...dagger-2.51.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android` from 2.51 to 2.51.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.51.1</h2>
<h1>New Dagger Features</h1>
<ul>
<li>Added <code>BindingGraphPlugin#onProcessingRoundBegin</code> for
pre-processing initialization. (2a6a0b461)</li>
</ul>
<h1>Dagger bug fixes</h1>
<p>Fixed <a
href="https://redirect.github.com/google/dagger/issues/4181">#4181</a>:
Associate Dagger Android output with the generated Component, so that
incremental builds with Ksp won’t fail.
Fixed <a
href="https://redirect.github.com/google/dagger/issues/4254">#4254</a>:
Support using scoped <code>@LazyClassKey</code> map bindings.
Fixed <a
href="https://redirect.github.com/google/dagger/issues/4262">#4262</a>:
Support referencing an array of annotations in a map key annotation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="394cf25e1b"><code>394cf25</code></a>
2.51.1 release</li>
<li><a
href="86896790d1"><code>8689679</code></a>
Update xprocessing.jar for Dagger.</li>
<li><a
href="2a6a0b4616"><code>2a6a0b4</code></a>
Reset processingEnv for BindingGraphPlugins for each round.</li>
<li><a
href="fc2363d904"><code>fc2363d</code></a>
Associate Dagger Android output with generated Component.</li>
<li><a
href="29d9a8ef34"><code>29d9a8e</code></a>
Make LazyClassKeyMap accept both MapFactory and MapProviderFactory</li>
<li><a
href="c213e3696d"><code>c213e36</code></a>
Fix bug in AnnotationExpression.</li>
<li><a
href="e6c2ac86a2"><code>e6c2ac8</code></a>
Delete obsolete documentation</li>
<li><a
href="e8e1ce6946"><code>e8e1ce6</code></a>
Fix diagnostic kind in InjectValidator.</li>
<li><a
href="3fa9a8acb0"><code>3fa9a8a</code></a>
Migrate from soon-to-be-deprecated <code>propagateIfPossible</code> to
equivalent `throw...</li>
<li><a
href="922ff50c10"><code>922ff50</code></a>
reduce number of times resolving parameter types in an extreme
case.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.51...dagger-2.51.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.google.dagger:hilt-android-compiler` from 2.51 to 2.51.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.51.1</h2>
<h1>New Dagger Features</h1>
<ul>
<li>Added <code>BindingGraphPlugin#onProcessingRoundBegin</code> for
pre-processing initialization. (2a6a0b461)</li>
</ul>
<h1>Dagger bug fixes</h1>
<p>Fixed <a
href="https://redirect.github.com/google/dagger/issues/4181">#4181</a>:
Associate Dagger Android output with the generated Component, so that
incremental builds with Ksp won’t fail.
Fixed <a
href="https://redirect.github.com/google/dagger/issues/4254">#4254</a>:
Support using scoped <code>@LazyClassKey</code> map bindings.
Fixed <a
href="https://redirect.github.com/google/dagger/issues/4262">#4262</a>:
Support referencing an array of annotations in a map key annotation.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="394cf25e1b"><code>394cf25</code></a>
2.51.1 release</li>
<li><a
href="86896790d1"><code>8689679</code></a>
Update xprocessing.jar for Dagger.</li>
<li><a
href="2a6a0b4616"><code>2a6a0b4</code></a>
Reset processingEnv for BindingGraphPlugins for each round.</li>
<li><a
href="fc2363d904"><code>fc2363d</code></a>
Associate Dagger Android output with generated Component.</li>
<li><a
href="29d9a8ef34"><code>29d9a8e</code></a>
Make LazyClassKeyMap accept both MapFactory and MapProviderFactory</li>
<li><a
href="c213e3696d"><code>c213e36</code></a>
Fix bug in AnnotationExpression.</li>
<li><a
href="e6c2ac86a2"><code>e6c2ac8</code></a>
Delete obsolete documentation</li>
<li><a
href="e8e1ce6946"><code>e8e1ce6</code></a>
Fix diagnostic kind in InjectValidator.</li>
<li><a
href="3fa9a8acb0"><code>3fa9a8a</code></a>
Migrate from soon-to-be-deprecated <code>propagateIfPossible</code> to
equivalent `throw...</li>
<li><a
href="922ff50c10"><code>922ff50</code></a>
reduce number of times resolving parameter types in an extreme
case.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.51...dagger-2.51.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>
2024-04-01 16:21:15 +00:00
Jason Elie Bou Kheir
b0bde8b0a7 feat(android): UI notification for reauth (#3621)
Fixes #3329

---------

Signed-off-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-03-30 18:05:57 +00:00
Jamil
16337d57f3 refactor(connlib): Reduce log noisiness for GA (#4381)
Fixes #4380 
Fixes #4379
2024-03-28 20:51:59 +00:00
Gabi
24e0641871 chore: set rust log level to info for gateways and client (#4319)
- [x] Updated log level string for client and gateways to info or higher
- [x] Update logs to hide DNS information

I also removed `hickory_resolve` errors which could contain sensitive
info from our general error and hide the logs that specifically relates
to them.

@bmanifold double checking that the log levels in the gateway's `*.tf`
files are just used for our own gateways.

Also, the relays still have `debug`, since only we see that I think that
makes sense but double checking with @jamilbk

Fixes: #3618.

---------

Signed-off-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-03-27 01:39:12 +00:00
Gabi
a7cf3669b1 chore(android): remove onTunnelReady callback (#4315)
Fixes #4223
2024-03-26 17:32:11 +00:00
Gabi
703f07fed5 chore(android): prevent from calling setDns and reconnect redundantly (#4278)
Related to changes in #4263
2024-03-23 02:32:14 +00:00
Jason Elie Bou Kheir
48b788a46d feat(android): changing managed config restarts TunnelService (#4181)
Fixes #4040

Depends on #4180

---------

Signed-off-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-03-22 14:58:52 +00:00
Jason Elie Bou Kheir
83030a155d test(android): add github action workflow step for unit tests (#4177)
Fixes #2309 

Not sure how to test the workflow itself in this PR 🤔

---------

Signed-off-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-03-21 16:25:13 +00:00
Jason Elie Bou Kheir
c94b2de02a feat(android): use device serial for deviceName (#4180)
Fixes #4042 

The serial number of the device is blocked behind a permission. There's
a couple ways we can go about this:

-----

### (1) Ask the user to (optionally) grant the permission

When we show the grant VPN permission activity, we also mention the
optional READ_PRIVILEGED_PHONE_STATE permission. Here, the user can
decide to grant it or not, and if they decide not to, they can grant it
in the future in the app settings. When the permission is not granted,
the `deviceName` falls back to the `Build.MODEL`

### (2) Force the user to grant the permission

We keep asking them to grant the permission in the splash view.
`deviceName` is always the serial number of the device.

### (3) Let MDM grant the permission

We don't provide a UI to grant the permission in the application.
Instead, the `deviceName` is the `Build.MODEL` by default, unless
advanced users or admins using MDM set the permission, in which case
it's the serial number of the device.

### (4) Let MDM set a custom/override device name

This could be an alternative to (3) if it is easier for customers using
MDM software to manage it this way. Though I doubt it...

-----

Going with option (3) is safe, and the other options can be added
incrementally in the future. However, it requires communicating to the
customer that they should set this permission for the `deviceName` to be
the serial of the device. That's not a problem yet, since the relevant
customer is using MDM to manage the app; it's trivial to set this
permission via that UI.

If we did want to show this permission to the user, I think option (1)
is most likely going to be better than option (2) in most cases.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-03-21 12:39:23 +00:00
Gabi
db62e7bacc feat(android): detect network and dns changes and send them to connlib (#4163)
This completely removes the `get_system_default_resolvers` for android
2024-03-21 02:14:01 +00:00
Gabi
2e85ea1b3a refactor(connlib): use on_update_routes instead of on_add/on_remove_route (#3825)
Extracted from #3791 and #3750 

Co-authored-by: @jamilbk <jamilbk@users.noreply.github.com>
2024-03-12 19:49:32 +00:00
dependabot[bot]
2faef87be3 build(deps): Bump com.google.firebase:firebase-bom from 32.7.3 to 32.7.4 in /kotlin/android (#4077)
Bumps com.google.firebase:firebase-bom from 32.7.3 to 32.7.4.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=32.7.3&new-version=32.7.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>
2024-03-11 16:46:28 +00:00
Jason Elie Bou Kheir
da326a02a2 chore(android): upgrade hilt to 2.51 (#4056)
The error I was getting was:

```error
java.lang.RuntimeException: Cannot create an instance of class dev.firezone.android.features.splash.ui.SplashViewModel
Caused by: java.lang.NoSuchMethodException: dev.firezone.android.features.splash.ui.SplashViewModel.<init> []
```

I'm not sure how hilt works, but I saw a package for the hilt compiler
that was version 2.50. After upgrading that, the crash stopped
happening. My best guess is that the compiler needs to be on the same
version, otherwise it doesn't work?
2024-03-11 03:39:12 +00:00
Thomas Eizinger
998bf17891 refactor(connlib): only call onDisconnect for unrecoverable errors (#4014)
Previously, we called `onDisconnect` in two kinds of situations:

- With an error when we wanted the clients to clear the token
- Without an error when the token was still valid (i.e. after a call to
`disconnect` from the clients)

This is unnecessarily redundant. Firezone is designed to **not** have a
state of "signed in but disconnected". Thus, every time connlib calls
`disconnect`, we should clear the token and sign the user out.

At present, we only do this for errors with the control plane. Errors in
the actual tunnel are only logged and we continue trying to use the
tunnel. There are errors in the tunnel where we should also give up
(i.e. TUN device gone, fatal IO error, etc). At present, those are not
yet bubbled up but we will at some point. Once we have
https://github.com/firezone/firezone/pull/3682, it will be much easier
to create a type-safe contract that ensures we only disconnect on fatal
errors.

---------

Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
Co-authored-by: ReactorScram <ReactorScram@users.noreply.github.com>
2024-03-08 02:22:48 +00:00
Jamil
6cfbef97d3 chore: Update copyright date (#4044) 2024-03-08 01:55:27 +00:00
Jamil
90c831538a refactor(android): Log allowed/disallowed applications (#4038)
Also DRY up the call a little bit.
2024-03-07 20:11:07 +00:00
Jamil
0c40c9e8a0 chore(android): remove unused dep (#4021)
Wasn't used...
2024-03-07 03:03:12 +00:00
dependabot[bot]
e6e2ac67b2 build(deps): Bump com.google.firebase.appdistribution from 4.0.1 to 4.2.0 in /kotlin/android (#3944)
Bumps com.google.firebase.appdistribution from 4.0.1 to 4.2.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase.appdistribution&package-manager=gradle&previous-version=4.0.1&new-version=4.2.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>
2024-03-05 15:10:53 +00:00
dependabot[bot]
9c7a42e87f build(deps): Bump androidx.preference:preference-ktx from 1.2.0 to 1.2.1 in /kotlin/android (#3943)
Bumps androidx.preference:preference-ktx from 1.2.0 to 1.2.1.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.preference:preference-ktx&package-manager=gradle&previous-version=1.2.0&new-version=1.2.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 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>
2024-03-05 15:06:05 +00:00
Jamil
932594e919 fix(android): Handle empty strings for allowed and disallowed VPN apps (#3918)
Fixes an issue where an MDM could set these to an empty string, causing
a crash because then both would be added, which [isn't
allowed](https://developer.android.com/reference/android/net/VpnService.Builder#addAllowedApplication(java.lang.String)).


https://console.firebase.google.com/u/0/project/firezone-55040/crashlytics/app/android:dev.firezone.android/issues/a79c59418b12b8de7718561aa9d23f7e?time=last-seven-days&types=crash&sessionEventKey=65E623EB03C100015D9436036031A7CF_1921042370018336672
2024-03-04 20:53:22 +00:00
Jamil
09f82b5b5a fix(android): Fix crash on start due to Hilt 2.51 (#3916)
Refs #3915 

See
https://console.firebase.google.com/u/0/project/firezone-55040/crashlytics/app/android:dev.firezone.android/issues/a14ff0d9f0993b845689765cfc45e3a3?time=last-seven-days&types=crash&sessionEventKey=65E5FF2403D4000135CA829CFA73366A_1921000905659802022
2024-03-04 17:43:42 +00:00
Jamil
5898a2c1e8 chore(android): Remove redundant dependency (#3890)
More cleanup from a long time ago in a galaxy far away
2024-03-04 02:59:56 +00:00
Jamil
8c59ff7aa1 refactor: Reduce log levels for production releases to avoid filling customer's… (#3899)
Tuning the logging down a bit on our production releases. Prevents
gathering data we don't need to be gathering and prevents filling up
drive space with debug logs.

refs #3618
2024-03-03 17:42:09 -08:00
Jamil
b32fcf7e6e fix(dependencies): Catch groups that dependabot missed (#3883)
Dependabot doesn't look to be using the new config just yet, so bump
these manually.
2024-03-01 18:47:45 +00:00
Jamil
fe35fabca4 fix(ci): Fix Android dependabot groups (#3869)
Fix typo preventing dependabot from figuring things out
2024-03-01 18:22:09 +00:00
dependabot[bot]
ffe7926a1c build(deps): Bump the com-android group in /kotlin/android with 1 update (#3856)
Bumps the com-android group in /kotlin/android with 1 update:
com.android.application.

Updates `com.android.application` from 8.2.1 to 8.3.0


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.application&package-manager=gradle&previous-version=8.2.1&new-version=8.3.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>
2024-03-01 15:32:06 +00:00
dependabot[bot]
12e60b2728 build(deps): Bump androidx.security:security-crypto from 1.1.0-alpha05 to 1.1.0-alpha06 in /kotlin/android (#3857)
Bumps androidx.security:security-crypto from 1.1.0-alpha05 to
1.1.0-alpha06.


[![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-alpha05&new-version=1.1.0-alpha06)](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>
2024-03-01 14:33:00 +00:00
dependabot[bot]
a3dc34ac7e build(deps): Bump androidx.hilt:hilt-compiler from 1.0.0 to 1.2.0 in /kotlin/android (#3858)
Bumps androidx.hilt:hilt-compiler from 1.0.0 to 1.2.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.hilt:hilt-compiler&package-manager=gradle&previous-version=1.0.0&new-version=1.2.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>
2024-03-01 14:32:45 +00:00
dependabot[bot]
b90fd27718 build(deps): Bump com.google.firebase:firebase-bom from 32.7.1 to 32.7.3 in /kotlin/android (#3859)
Bumps com.google.firebase:firebase-bom from 32.7.1 to 32.7.3.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase:firebase-bom&package-manager=gradle&previous-version=32.7.1&new-version=32.7.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>
2024-03-01 14:32:31 +00:00
dependabot[bot]
e6a6fa6903 build(deps): Bump com.google.gms.google-services from 4.4.0 to 4.4.1 in /kotlin/android (#3860)
Bumps com.google.gms.google-services from 4.4.0 to 4.4.1.


[![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.0&new-version=4.4.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 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>
2024-03-01 14:31:25 +00:00
Jamil
2ed6b3d07f chore(connlib): Tune log filters to enable debug in dev and info for gateway deployments (#3788)
Refs #3618

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-02-27 23:35:08 +00:00
Jason Elie Bou Kheir
7c296494bd feat(android): add settings button to the session view (#3755)
Adds a `Settings` button similar to the sign in view:

![Screenshot_20240224_120508](https://github.com/firezone/firezone/assets/5115126/12826481-0013-4d46-9d65-b48d22fa859e)

Then, while signed in, there is a warning dialog when the user attempts
to "save" their settings:

![Screenshot_20240224_120724](https://github.com/firezone/firezone/assets/5115126/c4b8b2b0-2b0d-4175-9e00-c4aafa9a3ef0)
2024-02-27 07:00:57 +00:00
Jason Elie Bou Kheir
c6ff8858fb feat(android): use Android ShareSheet for sharing logs (#3756)
Fixes #3545 


![sharesheet](https://github.com/firezone/firezone/assets/5115126/dce8cbea-14c4-4feb-8cda-7ed4c0de20b5)
2024-02-26 17:55:29 +00:00
Jason Elie Bou Kheir
0ec1b93b11 fix(android): delete log zip on finish and on create (#3757)
When deleting the log zip on resume, the file can be deleted before the
email client has a chance to attach it. This causes a race condition
where the attachment will sometimes fail to attach when sharing.
2024-02-26 17:49:46 +00:00
Jamil
b769abdb0a fix(ci): Use default NDK on GH runners (#3716)
This should fix the flaky kotlin builds if the NDK is actually
installed.
2024-02-21 18:17:47 +00:00
Andrew Dryga
5b1e3ea1d1 feat(portal): Billing system (#3642) 2024-02-20 15:01:17 -06:00
Gabi
3d3e737ba3 refactor(connlib): replace webrtc-rs with snownet (#3391)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>

Resolves: #3377.

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-02-20 06:56:31 +00:00
Jason Elie Bou Kheir
c476e87eec fix(android): move log zip file outside of log folder (#3677)
Fixes #3330

The when the log zip file is created, it's created as an empty file in
the `logs` directory. The `logs` directory is then zipped, and written
to the zip file. The empty file remains as an artifact in the final zip
file.

This moves the location of the zip file outside of the `logs` directory,
where it will be cleaned up later.
2024-02-17 21:19:22 +00:00
Jamil
91681fb15d feat(android): Add support for per-app VPN configurable through MDM (#3657)
Refs #3613
2024-02-17 17:50:33 +00:00
Jason Elie Bou Kheir
5f126fa8f2 feat(android): add Reset to Defaults button and add space to settings activity (#3651)
Fixes #3570 and #3650 


![keyboard_pixel_tablet](https://github.com/firezone/firezone/assets/5115126/37209c6d-79c3-4bc2-82be-89da8347e353)

![desktop_pixel_tablet](https://github.com/firezone/firezone/assets/5115126/4b279f58-dd6a-4cf6-bd42-e15dc5b4bd41)
2024-02-15 15:23:30 +00:00
Jamil
354ee3cb02 refactor(android): Clean up tunnel fd establishment (#3645)
Cleans up the VpnService establishment logic a little
2024-02-14 13:18:23 +00:00