-
Notifications
You must be signed in to change notification settings - Fork 616
Fix inefficiency in the setCustomKeys Kotlin extension #6536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Javadoc Changes:--- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/crashlytics/KeyValueBuilder.html 2024-11-28 21:25:35.766509165 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/crashlytics/KeyValueBuilder.html 2024-11-28 21:23:08.959620483 +0000
@@ -11,7 +11,7 @@
<pre>public final class <a href="/docs/reference/android/com/google/firebase/crashlytics/KeyValueBuilder.html">KeyValueBuilder</a></pre>
</p>
<hr>
- <p>Helper class to enable fluent syntax in <code><a href="/docs/reference/android/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
+ <p>Helper class to enable convenient syntax in <code><a href="/docs/reference/android/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
<h2>Summary</h2>
<div class="devsite-table-wrapper">
<table class="responsive">
@@ -27,7 +27,8 @@
<tbody class="list">
<tr>
<td>
- <div><code><a href="/docs/reference/android/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a> crashlytics)</code></div>
+ <div><code><span><del><a href="/docs/reference/android/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a></del></span>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a> crashlytics)</code></div>
+ <p><strong>This method is deprecated.</strong> Do not construct this directly.</p>
</td>
</tr>
</tbody>
@@ -94,7 +95,8 @@
<h2>Public constructors</h2>
<div class="api-item"><a name="KeyValueBuilder-com.google.firebase.crashlytics.FirebaseCrashlytics-"></a><a name="keyvaluebuilder"></a>
<h3 class="api-name" id="KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</h3>
- <pre class="api-signature no-pretty-print">public <a href="/docs/reference/android/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a> crashlytics)</pre>
+ <pre class="api-signature no-pretty-print">public <span><del><a href="/docs/reference/android/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a></del></span>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a> crashlytics)</pre>
+ <aside class="caution"><strong>This method is deprecated.</strong><br>Do not construct this directly. Use `setCustomKeys` instead. To be removed in the next major release.</aside>
</div>
</div>
<div class="list"> --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/crashlytics/package-summary.html 2024-11-28 21:25:35.766509165 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/crashlytics/package-summary.html 2024-11-28 21:23:08.959620483 +0000
@@ -37,7 +37,7 @@
<tr>
<td><code><a href="/docs/reference/android/com/google/firebase/crashlytics/KeyValueBuilder.html">KeyValueBuilder</a></code></td>
<td>
- <p>Helper class to enable fluent syntax in <code><a href="/docs/reference/android/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
+ <p>Helper class to enable convenient syntax in <code><a href="/docs/reference/android/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
</td>
</tr>
</tbody> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html 2024-11-28 21:25:35.766509165 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html 2024-11-28 21:23:08.959620483 +0000
@@ -11,7 +11,7 @@
<pre>class <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html">KeyValueBuilder</a></pre>
</p>
<hr>
- <p>Helper class to enable fluent syntax in <code><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
+ <p>Helper class to enable convenient syntax in <code><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
<h2>Summary</h2>
<div class="devsite-table-wrapper">
<table class="responsive">
@@ -27,7 +27,8 @@
<tbody class="list">
<tr>
<td>
- <div><code><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a>(crashlytics: <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a>)</code></div>
+ <div><code><span><del><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a></del></span>(crashlytics: <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a>)</code></div>
+ <p><strong>This function is deprecated.</strong> Do not construct this directly.</p>
</td>
</tr>
</tbody>
@@ -94,7 +95,8 @@
<h2>Public constructors</h2>
<div class="api-item"><a name="KeyValueBuilder-com.google.firebase.crashlytics.FirebaseCrashlytics-"></a><a name="keyvaluebuilder"></a>
<h3 class="api-name" id="KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</h3>
- <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a>(crashlytics: <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a>)</pre>
+ <pre class="api-signature no-pretty-print"><span><del><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html#KeyValueBuilder(com.google.firebase.crashlytics.FirebaseCrashlytics)">KeyValueBuilder</a></del></span>(crashlytics: <a href="/docs/reference/kotlin/com/google/firebase/crashlytics/FirebaseCrashlytics.html">FirebaseCrashlytics</a>)</pre>
+ <aside class="caution"><strong>This function is deprecated.</strong><br>Do not construct this directly. Use `setCustomKeys` instead. To be removed in the next major release.</aside>
</div>
</div>
<div class="list"> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/crashlytics/package-summary.html 2024-11-28 21:25:35.766509165 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/crashlytics/package-summary.html 2024-11-28 21:23:08.959620483 +0000
@@ -33,7 +33,7 @@
<tr>
<td><code><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/KeyValueBuilder.html">KeyValueBuilder</a></code></td>
<td>
- <p>Helper class to enable fluent syntax in <code><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
+ <p>Helper class to enable convenient syntax in <code><a href="/docs/reference/kotlin/com/google/firebase/crashlytics/package-summary.html#(com.google.firebase.crashlytics.FirebaseCrashlytics).setCustomKeys(kotlin.Function1)">setCustomKeys</a></code></p>
</td>
</tr>
</tbody> |
Vertex AI Mock Responses Check
|
Coverage Report 1Affected Products
Test Logs |
The public api surface has changed for the subproject firebase-crashlytics: Please update the api.txt files for the subprojects being affected by this change by running ./gradlew ${subproject}:generateApiTxtFile. Also perform a major/minor bump accordingly. |
Test Results 8 files - 1 028 8 suites - 1 028 19s ⏱️ - 32m 44s Results for commit eb6c917. ± Comparison against base commit 91418a1. This pull request removes 5851 tests.
♻️ This comment has been updated with latest results. |
Size Report 1Affected Products
Test Logs |
# Conflicts: # firebase-crashlytics/CHANGELOG.md
Fixed inefficiency in the Kotlin
FirebaseCrashlytics.setCustomKeys
extension.The old implementation called
setCustomKey
for every key/value pair, which serializes to disk, and is not an intuitive behaviour for customers. This now callssetCustomKeys
once with the entire built map.This proxies to the existing Java
CustomKeysAndValues.Builder
but gives nice Kotlin syntax. The old class had a public ctor, I plan to make this internal since customers shouldn't instantiate this class directly. This is done in a way to not break the api, even though the api is internal.pair=tejasd