Commit Graph

73 Commits

Author SHA1 Message Date
Jamil
04aeee2e7b fix(android): Simplify connlib gradle build configuration to ensure libconnlib.so is packaged (#3207)
Fixes #3205
2024-01-12 08:16:43 -08:00
Jamil
e410220ba8 chore(android): Remove outdated appDistribution group (#3204) 2024-01-11 20:43:45 -08:00
Jamil
4f37bfab93 refactor(connlib): Remove unused on_error callback (#3162)
Fixes #3161 
Fixes #2867
2024-01-11 12:42:41 +00:00
Jamil
653b32456a fix(android): handle_sign_in_callback is the host part of the URI (#3149)
Gets the new auth flow working for Android
2024-01-09 20:41:04 -08:00
Jamil
6a9ba5412c refactor(android): Remove AppLink in favor of nonce+state (#2826)
* Updates Android auth to remove AppLink authentication in favor of the
custom URI -based scheme defined in #2823
* Default browser is opened instead of requiring Chrome

Fixes #2703

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Signed-off-by: Brian Manifold <bmanifold@users.noreply.github.com>
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Brian Manifold <bmanifold@users.noreply.github.com>
Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Roopesh Chander <roop@roopc.net>
2024-01-09 17:41:54 +00:00
Jamil
1251397651 fix(ios/android): Pass device name and os version as overrides over connect (#3036)
Fixes #3035 
Fixes #3037 

# Before

<img width="738" alt="Screenshot 2023-12-28 at 8 05 31 AM"
src="https://github.com/firezone/firezone/assets/167144/c7ab4d74-672c-4536-97fe-f75d8d158bfb">

<img width="546" alt="Screenshot 2023-12-28 at 6 12 30 PM"
src="https://github.com/firezone/firezone/assets/167144/1bd4ba98-d11d-4277-bd14-b0afcdf78119">

# After

<img width="742" alt="Screenshot 2023-12-28 at 10 48 31 AM"
src="https://github.com/firezone/firezone/assets/167144/96054f82-069f-47f7-862c-986455ef76c0">
<img width="744" alt="Screenshot 2023-12-28 at 6 29 37 PM"
src="https://github.com/firezone/firezone/assets/167144/4ffc19b6-7c87-4ccb-bcfe-cb0e76fe95b7">
2024-01-03 20:08:33 +00:00
Jamil
b7197d04c3 chore(deps): Bump hilt and fix groups (#3081)
Fixes #2429
2024-01-02 17:37:02 +00:00
dependabot[bot]
05a64a9e20 chore(deps): bump com.diffplug.spotless from 6.23.2 to 6.23.3 in /kotlin/android (#3071)
Bumps com.diffplug.spotless from 6.23.2 to 6.23.3.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.diffplug.spotless&package-manager=gradle&previous-version=6.23.2&new-version=6.23.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-01-02 02:42:16 +00:00
dependabot[bot]
2039839da3 chore(deps): bump androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.5 to 2.7.6 in /kotlin/android (#3073)
Bumps androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.5
to 2.7.6.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.navigation:navigation-safe-args-gradle-plugin&package-manager=gradle&previous-version=2.7.5&new-version=2.7.6)](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-01-02 02:39:00 +00:00
Jamil
6113effb5e chore(ci): Lint Android readme (#3038) 2023-12-28 18:37:05 -06:00
Jason Elie Bou Kheir
141bd60c47 include detail about toolchain in README.md (#3020)
Sometimes, the targets installed in the `kotlin/android/README.md`
rustup steps are not installed in the same toolchain as the one that is
used to build the `debugApp`.

Added a small detail to check that the current toolchain has these
targets.

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-12-28 17:38:54 -06:00
Jamil
b28e99cdab chore(ci): Use 1.0.0 as version base (#2949)
Fixes #2948 

So it seems that it's easiest just to use an old-fashioned semver
string. This means we'll need to keep a version matrix in the docs of
which components are supported and for how long, but it's better than
having different version schemes for different Firezone components
altogether.
2023-12-19 14:19:16 +00:00
Jamil
de71e7060f Reduce webrtc log level to error (#2911) 2023-12-15 01:07:48 +00:00
Jamil
8499580388 Remove Apple SplitDNS in favor of unified split DNS approach (#2894)
<img width="1552" alt="Screenshot 2023-12-12 at 11 29 43 PM"
src="https://github.com/firezone/firezone/assets/167144/d517c830-64a8-462d-8cb5-c41835fa2059">

Found a reliable way to return default system DNS resolvers on iOS and
macOS. Even if this method is not perfect, I think it's still worth
pursuing because:

* Many administrators will set an upstream resolver in the portal anyway
(bypassing client system resolvers)
* It unifies our Split DNS approach across platforms (assuming we can
query the default system resolvers on Windows), allowing connlib to
intercept all DNS queries on all platforms. This opens the door for some
interesting feature possibilities in the area of malicious query
blocking. This also makes DNS bugs easier to investigate because there's
only one codepath for packets to take. See
https://github.com/firezone/firezone/issues/2859

Draft because it needs more testing and I need to figure out the
`RustVec<RustString>` type for the Swift -> Rust FFI.

Refs #2713
2023-12-13 22:01:00 +00:00
Jamil
ed3db22d01 Remove Account ID from Android (#2824)
Remove `AccountID` from Android. Refs #2791

---------

Co-authored-by: Brian Manifold <bmanifold@gmail.com>
2023-12-08 02:38:12 +00:00
bmanifold
d483fdeeed Update Android README dev instructions (#2814)
Updated the Dev Setup instructions for Android
2023-12-07 13:45:21 +00:00
dependabot[bot]
5bd4c875c2 build(deps): Bump com.android.application from 8.1.2 to 8.2.0 in /kotlin/android (#2761)
Bumps com.android.application from 8.1.2 to 8.2.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.application&package-manager=gradle&previous-version=8.1.2&new-version=8.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>
2023-12-05 14:02:24 +00:00
Jamil
ef959fe8a5 bump spotless (#2796)
Dependabot wasn't able to do this one automatically since it required
running the spotless fixer.
2023-12-05 14:02:05 +00:00
dependabot[bot]
58d8ec958b build(deps): Bump androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.4 to 2.7.5 in /kotlin/android (#2762)
Bumps androidx.navigation:navigation-safe-args-gradle-plugin from 2.7.4
to 2.7.5.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.navigation:navigation-safe-args-gradle-plugin&package-manager=gradle&previous-version=2.7.4&new-version=2.7.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>
2023-12-05 04:52:31 +00:00
dependabot[bot]
c890034e66 build(deps): Bump com.android.library from 8.1.2 to 8.2.0 in /kotlin/android (#2760)
Bumps com.android.library from 8.1.2 to 8.2.0.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.android.library&package-manager=gradle&previous-version=8.1.2&new-version=8.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>
2023-12-05 04:48:19 +00:00
Jamil
55ba09c8bf Remove PortalMock from Android and Apple (#2752)
It's fallen out of date and is no longer used.
2023-11-30 21:42:48 +00:00
Gabi
a309f11011 Fix gateway cleanup (#2704)
Yesterday, during some portion of the day connections between clients
and resources were impossible.

While I couldn't pinpoint the exact cause I found some issues with
cleanup. This PR fixes those.

Furthermore, I increased the default log level for tunnels in the
clients so that if this happens again we have better logs to triage.

~~Furthermore, I found out about #2705 so, I removed the limit of relays
from connlib since the portal already limits it to 2 (4 if you count
per-ip), that way we make sure that we always use both ipv4 and ipv6.
The connection start up time seems to slow down due to this but I think
this is better. We might want to go to only 2 urls again later on to
speed this up, if the portal can ensure it's a working relay
load-balanced relay there might not be a point in using more than a
single server~~. cc @AndrewDryga

Edit: we always get an ipv4 and ipv6 address for the same relay as the
first two relays in the relay list, save the case where only one of the
ip types is supported. We should be safe limiting it to 2.

---------

Signed-off-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-11-29 04:49:30 +00:00
Jamil
09d1f8cd68 Fix Android logo and fonts (#2689)
- Use capital `F` for logo
- Use Source Code Pro for font family on Android
2023-11-27 22:24:21 +00:00
Pratik Velani
e943f2aa4c feat(android): Implemented share diagnostic log functionality (#2528)
Fixes #2017 
- Added settings button to session screen.
- Added the `Share Diagnostic Logs` button on the settings screen.
- Implemented zip and share functionality.
2023-11-02 15:34:03 +00:00
dependabot[bot]
156266e7af build(deps): Bump com.google.firebase.appdistribution from 4.0.0 to 4.0.1 in /kotlin/android (#2562)
Bumps com.google.firebase.appdistribution from 4.0.0 to 4.0.1.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.firebase.appdistribution&package-manager=gradle&previous-version=4.0.0&new-version=4.0.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>
2023-11-01 08:44:15 -07:00
Jamil
2bca378f17 Allow data plane configuration at runtime (#2477)
## Changelog

- Updates connlib parameter API_URL (formerly known under different
names as `CONTROL_PLANE_URL`, `PORTAL_URL`, `PORTAL_WS_URL`, and
friends) to be configured as an "advanced" or "hidden" feature at
runtime so that we can test production builds on both staging and
production.
- Makes `AUTH_BASE_URL` configurable at runtime too
- Moves `CONNLIB_LOG_FILTER_STRING` to be configured like this as well
and simplifies its naming
- Fixes a timing attack bug on Android when comparing the `csrf` token
- Adds proper account ID validation to Android to prevent invalid URL
parameter strings from being saved and used
- Cleans up a number of UI / view issues on Android regarding typos,
consistency, etc
- Hides vars from from the `relay` CLI we may not want to expose just
yet
- `get_device_id()` is flawed for connlib components -- SMBios is rarely
available. Data plane components now require a `FIREZONE_ID` now instead
to use for upserting.


Fixes #2482 
Fixes #2471

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
2023-10-30 23:46:53 -07:00
Pratik Velani
28e1ad1523 refactor(android): Refactor navigation and session functionality (#2469)
This PR refactors navigation to fix nav issues and session
implementation to fix:
Fixes #2300 
Fixes #2186

---------

Signed-off-by: Pratik Velani <pratikvelani@gmail.com>
2023-10-27 07:15:57 -07:00
Jamil
f925898d55 Add CodeQL (#2476)
The CodeQL repo settings weren't sticking, so I figured I'd check our
config in as a workflow instead.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2023-10-21 02:28:54 -07:00
Gabi
d626f6dbf6 Connlib/forward dns (#2325)
With this we implement DNS forwarding that's specified in  #2043 

This also solve the DNS story in Android.

For the headless client in Linux we still need to implement split dns,
but we can make do with this, specially, we can read from resolvconf and
use the forward DNS (not ideal but can work if we want a beta headless
client).

For the resolver I used `trusted-proto-resolver`.

The other options were:

* Using `domain`'s resolver but while it could work for now, it's no
ideal for this since it doesn't support DoH or DoT and doesn't provide
us with a DNS cache.
* Using `trusted-proto-client`, it doesn't provide us with a DNS cache,
though we could eventually replace it since it provides a way to access
the underlying buffer which could make our code a bit simpler.
* Writing our own. While we could make the API ideal, this is too much
work for beta.


@pratikvelani I did some refactor in the kotlin side so we can return an
array of bytearrays so that we don't require parsing on connlib side, I
also tried to make the dns server detector a bit simpler please take a
look it's my first time doing kotlin

@thomaseizinger please take a look specially at the first commit, I
tried to integrate with the `poll_events` and the `ClientState`.
2023-10-18 20:39:20 +00:00
dependabot[bot]
a5cd0cf2b8 build(deps): Bump com.squareup.okhttp3:logging-interceptor from 4.9.1 to 4.12.0 in /kotlin/android/app (#2406)
Bumps
[com.squareup.okhttp3:logging-interceptor](https://github.com/square/okhttp)
from 4.9.1 to 4.12.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4984568367"><code>4984568</code></a>
Prepare for release 4.12.0.</li>
<li><a
href="ea720d32b5"><code>ea720d3</code></a>
[4.x] Add test for 103 handling (<a
href="https://redirect.github.com/square/okhttp/issues/8055">#8055</a>)</li>
<li><a
href="a6e54bfd1b"><code>a6e54bf</code></a>
Avoid hanging on takeHeaders (incorrect 103 handling) when response body
is e...</li>
<li><a
href="4190ca8a62"><code>4190ca8</code></a>
[4.x] Bump okio to 3.6 (<a
href="https://redirect.github.com/square/okhttp/issues/8052">#8052</a>)</li>
<li><a
href="9553f6dce9"><code>9553f6d</code></a>
[4.x] Fix bad merge (<a
href="https://redirect.github.com/square/okhttp/issues/8053">#8053</a>)</li>
<li><a
href="cd581af7cb"><code>cd581af</code></a>
Handle certificate corruption (<a
href="https://redirect.github.com/square/okhttp/issues/7982">#7982</a>)</li>
<li><a
href="708d89b9ea"><code>708d89b</code></a>
Make Public Suffix Database failures permanent (<a
href="https://redirect.github.com/square/okhttp/issues/7828">#7828</a>)</li>
<li><a
href="b147d282b3"><code>b147d28</code></a>
Fix for stalled streams (<a
href="https://redirect.github.com/square/okhttp/issues/7801">#7801</a>)
(<a
href="https://redirect.github.com/square/okhttp/issues/7818">#7818</a>)</li>
<li><a
href="f04809d513"><code>f04809d</code></a>
[4.x] Fix websocket reconnect race condition (<a
href="https://redirect.github.com/square/okhttp/issues/7815">#7815</a>)
(<a
href="https://redirect.github.com/square/okhttp/issues/7817">#7817</a>)</li>
<li><a
href="07b5d820a3"><code>07b5d82</code></a>
[4.x] Suppress removed (<a
href="https://redirect.github.com/square/okhttp/issues/7953">#7953</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/okhttp/compare/parent-4.9.1...parent-4.12.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.squareup.okhttp3:logging-interceptor&package-manager=gradle&previous-version=4.9.1&new-version=4.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 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>
2023-10-18 15:11:57 +00:00
dependabot[bot]
6eb5478700 build(deps): Bump com.google.code.gson:gson from 2.9.0 to 2.10.1 in /kotlin/android (#2410)
Bumps [com.google.code.gson:gson](https://github.com/google/gson) from
2.9.0 to 2.10.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/gson/releases">com.google.code.gson:gson's
releases</a>.</em></p>
<blockquote>
<h2>Gson 2.10.1</h2>
<p>This is technically a minor release rather than a patch release
because there is one small API change: a new
<code>JsonObject.isEmpty()</code> method.</p>
<h2>What's Changed: User-Visible Changes</h2>
<ul>
<li><em>Added JsonObject method isEmpty()</em> by <a
href="https://github.com/dhoard"><code>@​dhoard</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2233">google/gson#2233</a></li>
<li><em>Fix non-threadsafe creation of adapter for type with cyclic
dependency</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/1832">google/gson#1832</a></li>
<li><em>Remove EOFException special casing of
JsonStreamParser.next()</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/2281">google/gson#2281</a></li>
<li><em>Improve exception message for duplicate field names</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/2251">google/gson#2251</a></li>
<li><em>Fix the javadoc of JsonDeserializer.deserialize()</em> by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2243">google/gson#2243</a></li>
<li><em>Bump os-maven-plugin from 1.7.0 to 1.7.1</em> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2235">google/gson#2235</a></li>
<li><em>Bump jackson-databind from 2.13.4.2 to 2.14.0</em> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2234">google/gson#2234</a></li>
<li><em>Bump maven-release-plugin from 3.0.0-M6 to 3.0.0-M7</em> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2232">google/gson#2232</a></li>
<li><em>Bump japicmp-maven-plugin from 0.16.0 to 0.17.1</em> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2238">google/gson#2238</a></li>
<li><em>Bump jackson-databind from 2.14.0 to 2.14.1</em> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2241">google/gson#2241</a></li>
<li><em>Bump bnd-maven-plugin from 6.3.1 to 6.4.0</em> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2245">google/gson#2245</a></li>
</ul>
<h2>Site Documentation and Maintenance Changes (these were already
visible)</h2>
<ul>
<li><em>Add troubleshooting guide</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/2285">google/gson#2285</a></li>
<li><em>Replace custom user guide header anchors</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/2289">google/gson#2289</a></li>
<li><em>Improve variable names in user guide</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/2290">google/gson#2290</a></li>
<li><em>Add 2.10 changes to CHANGELOG; minor release follow-ups</em> by
<a href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2229">google/gson#2229</a></li>
<li><em>Mention in CHANGELOG that GitHub Releases are used in the
future</em> by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/google/gson/pull/2230">google/gson#2230</a></li>
<li><em>GitHub Workflows security hardening</em> by <a
href="https://github.com/sashashura"><code>@​sashashura</code></a> in <a
href="https://redirect.github.com/google/gson/pull/2274">google/gson#2274</a></li>
</ul>
<h2>Other Changes</h2>
<ul>
<li><em>Making consistent prefixs in PerformanceTest</em> by <a
href="https://github.com/CirQ"><code>@​CirQ</code></a> in <a
href="https://redirect.github.com/google/gson/pull/1760">google/gson#1760</a></li>
<li><em>Adjust version numbers and a test to conform to the SemVer
spec.</em> by <a
href="https://github.com/eamonnmcmanus"><code>@​eamonnmcmanus</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2237">google/gson#2237</a></li>
<li><em>Remove covered condition in JsonNull.equals()</em> by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2271">google/gson#2271</a></li>
<li><em>Remove the <code>final</code> keyword from <code>private</code>
method</em> by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2276">google/gson#2276</a></li>
<li><em>Code cleanup</em> by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2282">google/gson#2282</a></li>
<li><em>Unnecessary unboxing at JsonPrimitive.getAsBoolean()</em> by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2277">google/gson#2277</a></li>
<li><em>Rewrite the
<code>testParsingDatesFormattedWithSystemLocale()</code>, Fix <a
href="https://redirect.github.com/google/gson/issues/2199">#2199</a></em>
by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2287">google/gson#2287</a></li>
<li><em>Port tests from JUnit 3 to JUnit 4</em> by <a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
in <a
href="https://redirect.github.com/google/gson/pull/2294">google/gson#2294</a></li>
</ul>
<h2>New Contributors (thanks!)</h2>
<ul>
<li><a href="https://github.com/CirQ"><code>@​CirQ</code></a> made their
first contribution in <a
href="https://redirect.github.com/google/gson/pull/1760">google/gson#1760</a></li>
<li><a href="https://github.com/dhoard"><code>@​dhoard</code></a> made
their first contribution in <a
href="https://redirect.github.com/google/gson/pull/2233">google/gson#2233</a></li>
<li><a
href="https://github.com/MaicolAntali"><code>@​MaicolAntali</code></a>
made their first contribution in <a
href="https://redirect.github.com/google/gson/pull/2243">google/gson#2243</a></li>
<li><a
href="https://github.com/sashashura"><code>@​sashashura</code></a> made
their first contribution in <a
href="https://redirect.github.com/google/gson/pull/2274">google/gson#2274</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google/gson/compare/gson-parent-2.10...gson-parent-2.10.1">https://github.com/google/gson/compare/gson-parent-2.10...gson-parent-2.10.1</a></p>
<h2>Gson 2.10</h2>
<h2>Most important changes</h2>
<ul>
<li>
<p>Support for serializing and deserializing Java records, on Java ≥ 16.
(<a
href="https://redirect.github.com/google/gson/issues/2201">#2201</a>)</p>
</li>
<li>
<p>Add <code>JsonArray.asList</code> and <code>JsonObject.asMap</code>
view methods (<a
href="https://redirect.github.com/google/gson/issues/2225">#2225</a>)</p>
</li>
<li>
<p>Fix <code>TypeAdapterRuntimeTypeWrapper</code> not detecting
reflective <code>TreeTypeAdapter</code> and
<code>FutureTypeAdapter</code> (<a
href="https://redirect.github.com/google/gson/issues/1787">#1787</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/google/gson/blob/main/CHANGELOG.md">com.google.code.gson:gson's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>The change log for versions newer than 2.10 is available only on the
<a href="https://github.com/google/gson/releases">GitHub Releases
page</a>.</p>
<h2>Version 2.10</h2>
<ul>
<li>Support for serializing and deserializing Java records, on Java ≥
16. (<a
href="https://redirect.github.com/google/gson/pull/2201">google/gson#2201</a>)</li>
<li>Add <code>JsonArray.asList</code> and <code>JsonObject.asMap</code>
view methods (<a
href="https://redirect.github.com/google/gson/pull/2225">google/gson#2225</a>)</li>
<li>Fix <code>TypeAdapterRuntimeTypeWrapper</code> not detecting
reflective <code>TreeTypeAdapter</code> and
<code>FutureTypeAdapter</code> (<a
href="https://redirect.github.com/google/gson/pull/1787">google/gson#1787</a>)</li>
<li>Improve <code>JsonReader.skipValue()</code> (<a
href="https://redirect.github.com/google/gson/pull/2062">google/gson#2062</a>)</li>
<li>Perform numeric conversion for primitive numeric type adapters (<a
href="https://redirect.github.com/google/gson/pull/2158">google/gson#2158</a>)</li>
<li>Add <code>Gson.fromJson(..., TypeToken)</code> overloads (<a
href="https://redirect.github.com/google/gson/pull/1700">google/gson#1700</a>)</li>
<li>Fix changes to <code>GsonBuilder</code> affecting existing
<code>Gson</code> instances (<a
href="https://redirect.github.com/google/gson/pull/1815">google/gson#1815</a>)</li>
<li>Make <code>JsonElement</code> conversion methods more consistent and
fix javadoc (<a
href="https://redirect.github.com/google/gson/pull/2178">google/gson#2178</a>)</li>
<li>Throw <code>UnsupportedOperationException</code> when
<code>JsonWriter.jsonValue</code> is not supported (<a
href="https://redirect.github.com/google/gson/pull/1651">google/gson#1651</a>)</li>
<li>Disallow <code>JsonObject</code> <code>Entry.setValue(null)</code>
(<a
href="https://redirect.github.com/google/gson/pull/2167">google/gson#2167</a>)</li>
<li>Fix <code>TypeAdapter.toJson</code> throwing AssertionError for
custom IOException (<a
href="https://redirect.github.com/google/gson/pull/2172">google/gson#2172</a>)</li>
<li>Convert null to JsonNull for <code>JsonArray.set</code> (<a
href="https://redirect.github.com/google/gson/pull/2170">google/gson#2170</a>)</li>
<li>Fixed nullSafe usage. (<a
href="https://redirect.github.com/google/gson/pull/1555">google/gson#1555</a>)</li>
<li>Validate <code>TypeToken.getParameterized</code> arguments (<a
href="https://redirect.github.com/google/gson/pull/2166">google/gson#2166</a>)</li>
<li>Fix <a
href="https://redirect.github.com/google/gson/issues/1702">#1702</a>:
Gson.toJson creates CharSequence which does not implement toString (<a
href="https://redirect.github.com/google/gson/pull/1703">google/gson#1703</a>)</li>
<li>Prefer existing adapter for concurrent <code>Gson.getAdapter</code>
calls (<a
href="https://redirect.github.com/google/gson/pull/2153">google/gson#2153</a>)</li>
<li>Improve <code>ArrayTypeAdapter</code> for <code>Object[]</code> (<a
href="https://redirect.github.com/google/gson/pull/1716">google/gson#1716</a>)</li>
<li>Improve <code>AppendableWriter</code> performance (<a
href="https://redirect.github.com/google/gson/pull/1706">google/gson#1706</a>)</li>
</ul>
<h2>Version 2.9.1</h2>
<ul>
<li>Make <code>Object</code> and <code>JsonElement</code>
deserialization iterative rather than
recursive (<a
href="https://redirect.github.com/google/gson/pull/1912">google/gson#1912</a>)</li>
<li>Added parsing support for enum that has overridden toString() method
(<a
href="https://redirect.github.com/google/gson/pull/1950">google/gson#1950</a>)</li>
<li>Removed support for building Gson with Gradle (<a
href="https://redirect.github.com/google/gson/pull/2081">google/gson#2081</a>)</li>
<li>Removed obsolete <code>codegen</code> hierarchy (<a
href="https://redirect.github.com/google/gson/pull/2099">google/gson#2099</a>)</li>
<li>Add support for reflection access filter (<a
href="https://redirect.github.com/google/gson/pull/1905">google/gson#1905</a>)</li>
<li>Improve <code>TypeToken</code> creation validation (<a
href="https://redirect.github.com/google/gson/pull/2072">google/gson#2072</a>)</li>
<li>Add explicit support for <code>float</code> in
<code>JsonWriter</code> (<a
href="https://redirect.github.com/google/gson/pull/2130">google/gson#2130</a>,
<a
href="https://redirect.github.com/google/gson/pull/2132">google/gson#2132</a>)</li>
<li>Fail when parsing invalid local date (<a
href="https://redirect.github.com/google/gson/pull/2134">google/gson#2134</a>)</li>
</ul>
<p>Also many small improvements to javadoc.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2ce6a6106c"><code>2ce6a61</code></a>
[maven-release-plugin] prepare release gson-parent-2.10.1</li>
<li><a
href="1a2170b99c"><code>1a2170b</code></a>
Port tests from JUnit 3 to JUnit 4 (<a
href="https://redirect.github.com/google/gson/issues/2294">#2294</a>)</li>
<li><a
href="4aaf1385db"><code>4aaf138</code></a>
Improve variable names in user guide (<a
href="https://redirect.github.com/google/gson/issues/2290">#2290</a>)</li>
<li><a
href="a19d53f535"><code>a19d53f</code></a>
Replace custom user guide header anchors (<a
href="https://redirect.github.com/google/gson/issues/2289">#2289</a>)</li>
<li><a
href="6c12ded70d"><code>6c12ded</code></a>
Rewrite the <code>testParsingDatesFormattedWithSystemLocale()</code>,
Fix <a
href="https://redirect.github.com/google/gson/issues/2199">#2199</a> (<a
href="https://redirect.github.com/google/gson/issues/2287">#2287</a>)</li>
<li><a
href="f2f53fbe8e"><code>f2f53fb</code></a>
Add troubleshooting guide (<a
href="https://redirect.github.com/google/gson/issues/2285">#2285</a>)</li>
<li><a
href="f63a1b85ae"><code>f63a1b8</code></a>
Remove EOFException special casing of JsonStreamParser.next() (<a
href="https://redirect.github.com/google/gson/issues/2281">#2281</a>)</li>
<li><a
href="6c3cf22435"><code>6c3cf22</code></a>
Unnecessary unboxing at JsonPrimitive.getAsBoolean() (<a
href="https://redirect.github.com/google/gson/issues/2277">#2277</a>)</li>
<li><a
href="0a42c31efe"><code>0a42c31</code></a>
Code cleanup (<a
href="https://redirect.github.com/google/gson/issues/2282">#2282</a>)</li>
<li><a
href="28affcbdb9"><code>28affcb</code></a>
Remove the <code>final</code> keyword from <code>private</code> method
(<a
href="https://redirect.github.com/google/gson/issues/2276">#2276</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/google/gson/compare/gson-parent-2.9.0...gson-parent-2.10.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.code.gson:gson&package-manager=gradle&previous-version=2.9.0&new-version=2.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 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>
2023-10-18 13:41:06 +00:00
dependabot[bot]
c8c4a96da7 build(deps): Bump com.google.dagger:hilt-android from 2.48 to 2.48.1 in /kotlin/android/app (#2418)
Bumps [com.google.dagger:hilt-android](https://github.com/google/dagger)
from 2.48 to 2.48.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.48.1</h2>
<h2>Bug Fixes</h2>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>,
<a
href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>:
[KSP]: Fixes some incremental processing issues with KSP (c8a568956)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>:
[KSP] Fixes &quot;Unexpected element&quot; in XProcessing library (<a
href="bdc1bb06d4</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4059">#4059</a>:
[KSP] Align behavior of generic inline types in KSP with KAPT in
XProcessing library (<a
href="b0fa9cf493</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/3980">#3980</a>:
Fixes Lint crash with AGP 8.1.0. (e651294c2)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4055">#4055</a>:
Fixes issue with using generic types in Dagger's ClassKey
(9852b4237)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d9ba60724"><code>2d9ba60</code></a>
2.48.1 release</li>
<li><a
href="378535e5a4"><code>378535e</code></a>
Refactor ResolvedBindings and LegacyBindingGraph to include the
ComponentPath.</li>
<li><a
href="fd907cb956"><code>fd907cb</code></a>
Allow sharding for Dagger compiler tests.</li>
<li><a
href="558cc51334"><code>558cc51</code></a>
Fix Dagger's incremental processing for KSP.</li>
<li><a
href="5cc209ce61"><code>5cc209c</code></a>
[Refactor]: This CL refactors a few things in
<code>ComponentDescriptor</code>.</li>
<li><a
href="e8f5f2b8c4"><code>e8f5f2b</code></a>
Drop latest XProcessing jars into Dagger.</li>
<li><a
href="7412301439"><code>7412301</code></a>
Internal changes</li>
<li><a
href="76bde06981"><code>76bde06</code></a>
Rollback of &quot;[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>&quot;</li>
<li><a
href="e651294c2e"><code>e651294</code></a>
Fix Lint crash with AGP 8.1.0. See <a
href="https://redirect.github.com/google/dagger/pull/4023">google/dagger#4023</a>...</li>
<li><a
href="47953aaecf"><code>47953aa</code></a>
[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.48...dagger-2.48.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.dagger:hilt-android&package-manager=gradle&previous-version=2.48&new-version=2.48.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>
2023-10-18 06:26:17 -07:00
dependabot[bot]
4e62b2a52c build(deps): Bump com.google.dagger:hilt-android-compiler from 2.48 to 2.48.1 in /kotlin/android (#2419)
Bumps
[com.google.dagger:hilt-android-compiler](https://github.com/google/dagger)
from 2.48 to 2.48.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.48.1</h2>
<h2>Bug Fixes</h2>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>,
<a
href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>:
[KSP]: Fixes some incremental processing issues with KSP (c8a568956)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>:
[KSP] Fixes &quot;Unexpected element&quot; in XProcessing library (<a
href="bdc1bb06d4</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4059">#4059</a>:
[KSP] Align behavior of generic inline types in KSP with KAPT in
XProcessing library (<a
href="b0fa9cf493</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/3980">#3980</a>:
Fixes Lint crash with AGP 8.1.0. (e651294c2)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4055">#4055</a>:
Fixes issue with using generic types in Dagger's ClassKey
(9852b4237)</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d9ba60724"><code>2d9ba60</code></a>
2.48.1 release</li>
<li><a
href="378535e5a4"><code>378535e</code></a>
Refactor ResolvedBindings and LegacyBindingGraph to include the
ComponentPath.</li>
<li><a
href="fd907cb956"><code>fd907cb</code></a>
Allow sharding for Dagger compiler tests.</li>
<li><a
href="558cc51334"><code>558cc51</code></a>
Fix Dagger's incremental processing for KSP.</li>
<li><a
href="5cc209ce61"><code>5cc209c</code></a>
[Refactor]: This CL refactors a few things in
<code>ComponentDescriptor</code>.</li>
<li><a
href="e8f5f2b8c4"><code>e8f5f2b</code></a>
Drop latest XProcessing jars into Dagger.</li>
<li><a
href="7412301439"><code>7412301</code></a>
Internal changes</li>
<li><a
href="76bde06981"><code>76bde06</code></a>
Rollback of &quot;[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>&quot;</li>
<li><a
href="e651294c2e"><code>e651294</code></a>
Fix Lint crash with AGP 8.1.0. See <a
href="https://redirect.github.com/google/dagger/pull/4023">google/dagger#4023</a>...</li>
<li><a
href="47953aaecf"><code>47953aa</code></a>
[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.48...dagger-2.48.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.dagger:hilt-android-compiler&package-manager=gradle&previous-version=2.48&new-version=2.48.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>
2023-10-18 06:25:45 -07:00
Jamil
febe6801cf Fix/kotlin hilt compiler artifact issue (#2416) 2023-10-18 06:02:02 -07:00
Jamil
6153e580f3 Specify gradle dependency versions in ONLY one place (#2399) 2023-10-17 17:52:50 -07:00
dependabot[bot]
7d455f40a5 build(deps): Bump com.google.dagger:hilt-android from 2.44.1 to 2.48.1 in /kotlin/android/app (#2398)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [com.google.dagger:hilt-android](https://github.com/google/dagger)
from 2.44.1 to 2.48.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.48.1</h2>
<h2>Bug Fixes</h2>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>,
<a
href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>:
[KSP]: Fixes some incremental processing issues with KSP (c8a568956)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>:
[KSP] Fixes &quot;Unexpected element&quot; in XProcessing library (<a
href="bdc1bb06d4</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4059">#4059</a>:
[KSP] Align behavior of generic inline types in KSP with KAPT in
XProcessing library (<a
href="b0fa9cf493</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/3980">#3980</a>:
Fixes Lint crash with AGP 8.1.0. (e651294c2)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4055">#4055</a>:
Fixes issue with using generic types in Dagger's ClassKey
(9852b4237)</p>
<h1>Dagger 2.48</h1>
<h2>Dagger/Hilt KSP support</h2>
<p>Dagger 2.48 includes the alpha release of the Dagger and Hilt KSP
processors.</p>
<p>Instructions for using the Dagger/Hilt KSP processors can be found at
<a
href="https://dagger.dev/dev-guide/ksp">https://dagger.dev/dev-guide/ksp</a>.</p>
<p>In order to use Dagger’s KSP processor you will need to:</p>
<ul>
<li>Follow the basic setup to migrate Dagger’s processors from
<code>kapt</code> to <code>ksp</code> (see <a
href="https://dagger.dev/dev-guide/ksp#setup">https://dagger.dev/dev-guide/ksp#setup</a>).</li>
<li>Migrate any <a href="https://dagger.dev/dev-guide/spi">Dagger SPI
plugins</a> to the new Dagger SPI plugins API (with KSP support) (see <a
href="https://dagger.dev/dev-guide/ksp#new-dagger-spi-plugin-with-ksp-support">https://dagger.dev/dev-guide/ksp#new-dagger-spi-plugin-with-ksp-support</a>).</li>
<li>Ensure that there are no <code>kapt</code> processors that generate
classes that need to interact with Dagger (see <a
href="https://dagger.dev/dev-guide/ksp#interaction-with-javackapt-processors">https://dagger.dev/dev-guide/ksp#interaction-with-javackapt-processors</a>).</li>
</ul>
<p>If you depend on <code>androidx.hilt:hilt-common</code> or
<code>androidx.hilt:hilt-work</code> they will need to be updated to at
least <a
href="https://developer.android.com/jetpack/androidx/releases/hilt#hilt-common_hilt-compiler_hilt-work_version_11_2">1.1.0-alpha01</a>.</p>
<p>Also note that Dagger’s KSP processors are still in the alpha stage.
So far we’ve focused mainly on trying to ensure correctness rather than
optimize performance. Please apply due diligence when enabling
<code>ksp</code> and report any bugs or performance issues at <a
href="https://github.com/google/dagger/issues">https://github.com/google/dagger/issues</a>.
The current list of known issues can be found <a
href="https://github.com/google/dagger/issues?q=is%3Aissue+is%3Aopen+label%3A%22area%3A+ksp%22+label%3A%22type%3A+bug%22">here</a>.</p>
<p>There are also a few potentially breaking changes included with this
release. These changes were made to better support Dagger usage with
Kotlin sources, and make the migration from KAPT to KSP more seamless.
We don’t expect these changes to affect most users. Please see below for
more details.</p>
<h2>Breaking changes</h2>
<h3>The <code>dagger.ignoreProvisionKeyWildcards</code> is now enabled
by default</h3>
<p>This may break apps that are providing the same binding with
different wildcards, e.g. <code>Foo&lt;Bar&gt;</code> and <code>Foo&lt;?
extends Bar&gt;</code>.</p>
<p>Fix: See <a
href="https://dagger.dev/dev-guide/compiler-options#ignore-provision-key-wildcards">https://dagger.dev/dev-guide/compiler-options#ignore-provision-key-wildcards</a>
for suggestions on how to fix this. If fixing is not an immediate
option, you can still disable the flag with
<code>dagger.ignoreProvisionKeyWildcards=DISABLED</code>.</p>
<h3><code>@Binds</code> assignability check</h3>
<p>Unlike KAPT, KSP takes nullability into account when checking if a
type is assignable to another type. This changes the behavior of
Dagger’s <code>@Binds</code> usage validation such that a type that was
assignable in KAPT may no longer be assignable in KSP. For example:</p>
<pre lang="kotlin"><code>// Incorrect: this compiles successfully in
KAPT but the compilation fails in KSP
@Binds fun bind(impl: FooImpl&lt;Bar?&gt;): Foo&lt;Bar&gt;
</code></pre>
<p>Fix: To fix this breakage, users should update the parameter or
return type in the method such that they are actually assignable when
taking nullability into account. For example:</p>
<pre lang="kotlin"><code>// Correct: this compiles successfully in KAPT
and KSP
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d9ba60724"><code>2d9ba60</code></a>
2.48.1 release</li>
<li><a
href="378535e5a4"><code>378535e</code></a>
Refactor ResolvedBindings and LegacyBindingGraph to include the
ComponentPath.</li>
<li><a
href="fd907cb956"><code>fd907cb</code></a>
Allow sharding for Dagger compiler tests.</li>
<li><a
href="558cc51334"><code>558cc51</code></a>
Fix Dagger's incremental processing for KSP.</li>
<li><a
href="5cc209ce61"><code>5cc209c</code></a>
[Refactor]: This CL refactors a few things in
<code>ComponentDescriptor</code>.</li>
<li><a
href="e8f5f2b8c4"><code>e8f5f2b</code></a>
Drop latest XProcessing jars into Dagger.</li>
<li><a
href="7412301439"><code>7412301</code></a>
Internal changes</li>
<li><a
href="76bde06981"><code>76bde06</code></a>
Rollback of &quot;[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>&quot;</li>
<li><a
href="e651294c2e"><code>e651294</code></a>
Fix Lint crash with AGP 8.1.0. See <a
href="https://redirect.github.com/google/dagger/pull/4023">google/dagger#4023</a>...</li>
<li><a
href="47953aaecf"><code>47953aa</code></a>
[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.44.1...dagger-2.48.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.dagger:hilt-android&package-manager=gradle&previous-version=2.44.1&new-version=2.48.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>
2023-10-18 00:27:29 +00:00
dependabot[bot]
aa52bb424f build(deps): Bump com.squareup.okhttp3:okhttp from 4.10.0 to 4.12.0 in /kotlin/android (#2375)
Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp)
from 4.10.0 to 4.12.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4984568367"><code>4984568</code></a>
Prepare for release 4.12.0.</li>
<li><a
href="ea720d32b5"><code>ea720d3</code></a>
[4.x] Add test for 103 handling (<a
href="https://redirect.github.com/square/okhttp/issues/8055">#8055</a>)</li>
<li><a
href="a6e54bfd1b"><code>a6e54bf</code></a>
Avoid hanging on takeHeaders (incorrect 103 handling) when response body
is e...</li>
<li><a
href="4190ca8a62"><code>4190ca8</code></a>
[4.x] Bump okio to 3.6 (<a
href="https://redirect.github.com/square/okhttp/issues/8052">#8052</a>)</li>
<li><a
href="9553f6dce9"><code>9553f6d</code></a>
[4.x] Fix bad merge (<a
href="https://redirect.github.com/square/okhttp/issues/8053">#8053</a>)</li>
<li><a
href="cd581af7cb"><code>cd581af</code></a>
Handle certificate corruption (<a
href="https://redirect.github.com/square/okhttp/issues/7982">#7982</a>)</li>
<li><a
href="708d89b9ea"><code>708d89b</code></a>
Make Public Suffix Database failures permanent (<a
href="https://redirect.github.com/square/okhttp/issues/7828">#7828</a>)</li>
<li><a
href="b147d282b3"><code>b147d28</code></a>
Fix for stalled streams (<a
href="https://redirect.github.com/square/okhttp/issues/7801">#7801</a>)
(<a
href="https://redirect.github.com/square/okhttp/issues/7818">#7818</a>)</li>
<li><a
href="f04809d513"><code>f04809d</code></a>
[4.x] Fix websocket reconnect race condition (<a
href="https://redirect.github.com/square/okhttp/issues/7815">#7815</a>)
(<a
href="https://redirect.github.com/square/okhttp/issues/7817">#7817</a>)</li>
<li><a
href="07b5d820a3"><code>07b5d82</code></a>
[4.x] Suppress removed (<a
href="https://redirect.github.com/square/okhttp/issues/7953">#7953</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/okhttp/compare/parent-4.10.0...parent-4.12.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.squareup.okhttp3:okhttp&package-manager=gradle&previous-version=4.10.0&new-version=4.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 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>
2023-10-17 17:05:22 -07:00
dependabot[bot]
e7f91c49b1 build(deps): Bump com.google.dagger:hilt-android-compiler from 2.44.1 to 2.48.1 in /kotlin/android (#2373)
Bumps
[com.google.dagger:hilt-android-compiler](https://github.com/google/dagger)
from 2.44.1 to 2.48.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.48.1</h2>
<h2>Bug Fixes</h2>
<p>Fixes <a
href="https://redirect.github.com/google/dagger/issues/4063">#4063</a>,
<a
href="https://redirect.github.com/google/dagger/issues/4054">#4054</a>:
[KSP]: Fixes some incremental processing issues with KSP (c8a568956)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4046">#4046</a>:
[KSP] Fixes &quot;Unexpected element&quot; in XProcessing library (<a
href="bdc1bb06d4</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4059">#4059</a>:
[KSP] Align behavior of generic inline types in KSP with KAPT in
XProcessing library (<a
href="b0fa9cf493</a>)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/3980">#3980</a>:
Fixes Lint crash with AGP 8.1.0. (e651294c2)
Fixes <a
href="https://redirect.github.com/google/dagger/issues/4055">#4055</a>:
Fixes issue with using generic types in Dagger's ClassKey
(9852b4237)</p>
<h1>Dagger 2.48</h1>
<h2>Dagger/Hilt KSP support</h2>
<p>Dagger 2.48 includes the alpha release of the Dagger and Hilt KSP
processors.</p>
<p>Instructions for using the Dagger/Hilt KSP processors can be found at
<a
href="https://dagger.dev/dev-guide/ksp">https://dagger.dev/dev-guide/ksp</a>.</p>
<p>In order to use Dagger’s KSP processor you will need to:</p>
<ul>
<li>Follow the basic setup to migrate Dagger’s processors from
<code>kapt</code> to <code>ksp</code> (see <a
href="https://dagger.dev/dev-guide/ksp#setup">https://dagger.dev/dev-guide/ksp#setup</a>).</li>
<li>Migrate any <a href="https://dagger.dev/dev-guide/spi">Dagger SPI
plugins</a> to the new Dagger SPI plugins API (with KSP support) (see <a
href="https://dagger.dev/dev-guide/ksp#new-dagger-spi-plugin-with-ksp-support">https://dagger.dev/dev-guide/ksp#new-dagger-spi-plugin-with-ksp-support</a>).</li>
<li>Ensure that there are no <code>kapt</code> processors that generate
classes that need to interact with Dagger (see <a
href="https://dagger.dev/dev-guide/ksp#interaction-with-javackapt-processors">https://dagger.dev/dev-guide/ksp#interaction-with-javackapt-processors</a>).</li>
</ul>
<p>If you depend on <code>androidx.hilt:hilt-common</code> or
<code>androidx.hilt:hilt-work</code> they will need to be updated to at
least <a
href="https://developer.android.com/jetpack/androidx/releases/hilt#hilt-common_hilt-compiler_hilt-work_version_11_2">1.1.0-alpha01</a>.</p>
<p>Also note that Dagger’s KSP processors are still in the alpha stage.
So far we’ve focused mainly on trying to ensure correctness rather than
optimize performance. Please apply due diligence when enabling
<code>ksp</code> and report any bugs or performance issues at <a
href="https://github.com/google/dagger/issues">https://github.com/google/dagger/issues</a>.
The current list of known issues can be found <a
href="https://github.com/google/dagger/issues?q=is%3Aissue+is%3Aopen+label%3A%22area%3A+ksp%22+label%3A%22type%3A+bug%22">here</a>.</p>
<p>There are also a few potentially breaking changes included with this
release. These changes were made to better support Dagger usage with
Kotlin sources, and make the migration from KAPT to KSP more seamless.
We don’t expect these changes to affect most users. Please see below for
more details.</p>
<h2>Breaking changes</h2>
<h3>The <code>dagger.ignoreProvisionKeyWildcards</code> is now enabled
by default</h3>
<p>This may break apps that are providing the same binding with
different wildcards, e.g. <code>Foo&lt;Bar&gt;</code> and <code>Foo&lt;?
extends Bar&gt;</code>.</p>
<p>Fix: See <a
href="https://dagger.dev/dev-guide/compiler-options#ignore-provision-key-wildcards">https://dagger.dev/dev-guide/compiler-options#ignore-provision-key-wildcards</a>
for suggestions on how to fix this. If fixing is not an immediate
option, you can still disable the flag with
<code>dagger.ignoreProvisionKeyWildcards=DISABLED</code>.</p>
<h3><code>@Binds</code> assignability check</h3>
<p>Unlike KAPT, KSP takes nullability into account when checking if a
type is assignable to another type. This changes the behavior of
Dagger’s <code>@Binds</code> usage validation such that a type that was
assignable in KAPT may no longer be assignable in KSP. For example:</p>
<pre lang="kotlin"><code>// Incorrect: this compiles successfully in
KAPT but the compilation fails in KSP
@Binds fun bind(impl: FooImpl&lt;Bar?&gt;): Foo&lt;Bar&gt;
</code></pre>
<p>Fix: To fix this breakage, users should update the parameter or
return type in the method such that they are actually assignable when
taking nullability into account. For example:</p>
<pre lang="kotlin"><code>// Correct: this compiles successfully in KAPT
and KSP
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d9ba60724"><code>2d9ba60</code></a>
2.48.1 release</li>
<li><a
href="378535e5a4"><code>378535e</code></a>
Refactor ResolvedBindings and LegacyBindingGraph to include the
ComponentPath.</li>
<li><a
href="fd907cb956"><code>fd907cb</code></a>
Allow sharding for Dagger compiler tests.</li>
<li><a
href="558cc51334"><code>558cc51</code></a>
Fix Dagger's incremental processing for KSP.</li>
<li><a
href="5cc209ce61"><code>5cc209c</code></a>
[Refactor]: This CL refactors a few things in
<code>ComponentDescriptor</code>.</li>
<li><a
href="e8f5f2b8c4"><code>e8f5f2b</code></a>
Drop latest XProcessing jars into Dagger.</li>
<li><a
href="7412301439"><code>7412301</code></a>
Internal changes</li>
<li><a
href="76bde06981"><code>76bde06</code></a>
Rollback of &quot;[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>&quot;</li>
<li><a
href="e651294c2e"><code>e651294</code></a>
Fix Lint crash with AGP 8.1.0. See <a
href="https://redirect.github.com/google/dagger/pull/4023">google/dagger#4023</a>...</li>
<li><a
href="47953aaecf"><code>47953aa</code></a>
[Refactor] Remove duplicated logic in
<code>BindingGraphFactory</code>.</li>
<li>Additional commits viewable in <a
href="https://github.com/google/dagger/compare/dagger-2.44.1...dagger-2.48.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.dagger:hilt-android-compiler&package-manager=gradle&previous-version=2.44.1&new-version=2.48.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>
2023-10-17 17:02:58 -07:00
dependabot[bot]
d556a0793b build(deps): Bump com.squareup.moshi:moshi from 1.12.0 to 1.15.0 in /kotlin/android (#2374)
Bumps [com.squareup.moshi:moshi](https://github.com/square/moshi) from
1.12.0 to 1.15.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/square/moshi/blob/master/CHANGELOG.md">com.squareup.moshi:moshi's
changelog</a>.</em></p>
<blockquote>
<h2>Version 1.15.0</h2>
<p><em>2023-05-12</em></p>
<ul>
<li>Upgrade to Kotlin <code>1.8.21</code>.</li>
<li>Upgrade to KSP <code>1.8.21-1.0.11</code>.</li>
<li>Upgrade to kotlinx-metadata <code>0.6.0</code>.</li>
<li>Upgrade to KotlinPoet <code>1.13.2</code>.</li>
<li>Support Kotlin language version <code>1.9.0</code> in KAPT.</li>
<li>Include name of the type being processed when creating the
adapterGenerator fails in KSP.</li>
<li>Suppress <code>UNUSED_PARAMETER</code> in generated code.</li>
<li>Deprecate KAPT code gen. Please migrate to KSP, we will remove KAPT
support in a future release. This release will also print an annoying
noisy warning in KAPT processing if you use it.</li>
</ul>
<h2>Version 1.14.0</h2>
<p><em>2022-09-06</em></p>
<ul>
<li>Upgrade: [Kotlin 1.7.0][kotlin_1_7_0].</li>
<li>Upgrade [KotlinPoet 1.12.0][kotlinpoet_1_12_0].
<ul>
<li>Moshi no longer shades kotlinpoet-ksp APIs, meaning they can be
updated independently of Moshi updates.</li>
</ul>
</li>
<li>Upgrade: [KSP 1.7.0-1.0.6][ksp_1_7_0_1_0_6].</li>
<li>Upgrade: [kotlinx-metadata 0.5.0][kotlinx_metadata_0_5_0], allowing
reading of kotlin 1.8 APIs too.</li>
</ul>
<h2>Version 1.13.0</h2>
<p><em>2021-12-08</em></p>
<ul>
<li>
<p>New: Support for [Kotlin Symbol Processing (KSP)][ksp]. KSP is an
alternative to annotation
processing code gen. It's builds faster and better supports Kotlin
language features.</p>
<p>To use KSP in your application you must enable the KSP Gradle plugin
and add a KSP dependency
on Moshi codegen.</p>
<pre><code>plugins {

id(&quot;com.google.devtools.ksp&quot;).version(&quot;1.6.0-1.0.1&quot;)
}
<p>dependencies {
ksp(&quot;com.squareup.moshi:moshi-kotlin-codegen:1.13.0&quot;)
}
</code></pre></p>
<p>If you're switching from annotation processing (kapt) to KSP, you
should remove the kapt plugin
and the kapt Moshi dependency.</p>
</li>
<li>
<p>New: <code>@Json(ignore = true)</code> is a Moshi-specific way to
exclude properties from JSON encoding
and decoding.</p>
</li>
<li>
<p>New: Support Java 16 records. (Moshi still requires Java 8 only;
we're shipping a [multi-release</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="491e66bd64"><code>491e66b</code></a>
Moshi 1.x publishes releases</li>
<li><a
href="4109c5a9ec"><code>4109c5a</code></a>
Prepare artifact publishing on 1.x branch (<a
href="https://redirect.github.com/square/moshi/issues/1673">#1673</a>)</li>
<li><a
href="8f951b080e"><code>8f951b0</code></a>
1.15.0 preperations (<a
href="https://redirect.github.com/square/moshi/issues/1671">#1671</a>)</li>
<li><a
href="a86a068e98"><code>a86a068</code></a>
Fix publishing for 1.x (<a
href="https://redirect.github.com/square/moshi/issues/1574">#1574</a>)</li>
<li><a
href="084fb94122"><code>084fb94</code></a>
Prepare next development version</li>
<li><a
href="6e1d609113"><code>6e1d609</code></a>
Prepare version 1.14.0</li>
<li><a
href="2b879c4441"><code>2b879c4</code></a>
Moshi 1.14.x updates (<a
href="https://redirect.github.com/square/moshi/issues/1550">#1550</a>)</li>
<li><a
href="09a4543297"><code>09a4543</code></a>
Prepare for release 1.13.0.</li>
<li><a
href="bc441ad7f3"><code>bc441ad</code></a>
Don't mangle property names that contain a dollar sign (<a
href="https://redirect.github.com/square/moshi/issues/1446">#1446</a>)</li>
<li><a
href="fb5dd08168"><code>fb5dd08</code></a>
KSP followups from <a
href="https://redirect.github.com/square/moshi/issues/1393">#1393</a>
(<a
href="https://redirect.github.com/square/moshi/issues/1448">#1448</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/square/moshi/compare/moshi-parent-1.12.0...parent-1.15.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.squareup.moshi:moshi&package-manager=gradle&previous-version=1.12.0&new-version=1.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>
2023-10-17 17:01:41 -07:00
Jamil
be990e7fea Build, sign, distribute Android app via Firebase to testers (#2332)
Build, sign, and distribute Android app for testing.

Closes #2208
2023-10-16 22:23:22 -07:00
Pratik Velani
1c03cfc80f fix(android): Fixed auth redirect and clear accountId issue (#2303)
- Updated the chrome tab launch flow to fix unexpected behaviour when
closing the browser.
- Updated the signout functionality to not delete `accountId`.

Fixes #2184 
Fixes #2185
2023-10-11 15:27:38 -07:00
Jamil
00e77062b1 Return fd onRemoveRoute as well (#2296)
Implements the function signatures for `onRemoveRoute` as well.

Getting this error still though:

<img width="1633" alt="Screenshot 2023-10-10 at 8 25 17 AM"
src="https://github.com/firezone/firezone/assets/167144/3dc09f1b-10e1-401b-a1ef-64f1a09e35d5">

Android simulator, Pixel, API 34
2023-10-10 11:26:53 -07:00
Gabi
e516bcc8dd connlib+android: enable fd replacement (#2235)
Should be easier to review commit by commit.

The gist of this commit is:
* `onAddRoute` on Android now takes an address+prefix as to minimize
parsing
* `onAddRoute` recreates the vpn service each time(TODO: is this too bad
for performance?)
* `on_add_route` and `onAddRoute` returns the new fd
* on android after `on_add_route` we recreate `IfaceConfig` and
`DeviceIo` and we store the new values
* `peer_handler` now runs on a loop, where each time we fail a write
with an error code 9(bad descriptor) we try to take the new `DeviceIo`
* we keep an
[`AbortHandle`](https://docs.rs/tokio/latest/tokio/task/struct.AbortHandle.html)
from the `iface_handler` task, since closing the fd doesn't awake the
`read` task for `AsyncFd`(I tried it, right now `close` is only called
after dropping the fd) so we explicitly abort the task and start a new
one with the new `device_io`.
* in android `DeviceIo` has an atomic which tells if it's closed or open
and we change it to closed after `on_add_route`, we use this as to never
double-close the fd, instead we wait until it's dropped. This *might*
affect performance on android since we use non-`Ordering::Relaxed`
atomic operation each read/write but it won't affect perfromance in
other platforms, furthermore I believe the performance gains if we
remove this will be minimal.

Fixes #2227

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-10-08 23:52:45 -03:00
Jamil
5a33e9288c Fix kotlin / gradle CI caching (#2266)
- Parallelize static-analysis and build
- Set up cache properly to write on main and overwrite
- Fix licenseHeader check
- Fix linting issues
2023-10-07 09:36:00 -07:00
Jamil
da66264c84 Use larger builders for CPU-bound workflows (#2256)
- `ubuntu-22.04-firezone` is a 16-core builder for ~~kotlin~~ and docker
- ~~`macos-13-xlarge` is an M1 builder for Apple and docker arm64~~
- Configure the Gradle build cache
- Upgrade kotlin plugins, Android minSDK to 30, and gradle to 8.4


Edit: It appears that even using the largest runners for kotin and swift
don't speed the builds up that much (~30%), but will substantially
increase our cost, so I've reverted them to free.

Fixes #2210
2023-10-07 08:07:24 -07:00
Pratik Velani
8dbdda9faf fix(android): When chrome is not installed/enabled or the default browser (#2261)
Fixes #2225 
- Set Chrome app has a hard requirement for seamless user experience
with app link.
- Check if Chrome is not installed/enabled, then show an error toast.
- If Chrome is not set as the default browser, use the Chrome stable
version package name to force open the sign-in flow in Chrome.

Fixes #2184 
- Closing webview moves back to sign-in page.




_Applinks is supported in Firefox but is disabled by default
(https://support.mozilla.org/en-US/kb/set-firefox-android-open-links-native-apps)
..why 🤦‍♂️??_

Later based on user's browser we can update the redirected page to
include instructions to enable the link, something like this:


![Screenshot_1696581921](https://github.com/firezone/firezone/assets/1523745/2587b3de-7e85-4b82-aa99-61e58b8dc0b3)

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-10-06 21:00:04 +00:00
Jamil
80234f9c71 Github Actions cache on main and scope caches for all languages/runtimes (#2233) 2023-10-04 17:29:04 -07:00
Thomas Eizinger
464efbad56 refactor(connlib): restructure directory for consistency (#2236) 2023-10-05 09:52:35 +11:00
Jamil
ff1c0b950a Add make version command to set version in components (#2215)
Fixes #2213 

This will allow us to fetch the actual Firezone version that's in use
from within the language runtimes themselves without resorting to an
external mechanism to do so. This is useful in connlib for example when
selecting the Portal API to use with `X-Firezone-API-Version`, and
useful in log printing.

Since platforms enforce semantic version, I propose the convention:

`1.20231001.34` where MAJOR is `1` for Firezone 1.0, MINOR is our API
version, and PATCH is the release of that API version that is published
on the repo.

Given this system, publishing a release would consist of:

1. Edit `Makefile` to set the patch and minor versions appropriately
depending on whether there are breaking portal API changes.
2. `make version`
3. `git add .; git commit; git push` -- this opens a PR with the new
version numbers. In this PR we can discuss whether to stop-ship or go.
4. PR merged, release is drafted and deployed to staging with the new
tag and version numbers
5. build artifacts are uploaded to drafted release, everything is tagged
and versioned appropriately without having to introduce another commit
6. If all looks good, publish release
2023-10-03 15:22:02 +11:00
Pratik Velani
1ec5678734 feat(android): Implemented DNS resolver fallback (#2170)
Fixes #1969

- Implements fallback DNS resolver
- Added callback method to fetch DNS list

---------

Signed-off-by: Pratik Velani <pratikvelani@gmail.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2023-10-02 07:36:21 -07:00