-
Notifications
You must be signed in to change notification settings - Fork 642
[AI] Add LiveAPI Transcription #7482
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
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. |
Javadoc Changes:--- /home/runner/diff/original/firebase-kotlindoc/android/client/firebase-ai/_toc.yaml 2025-10-17 18:09:25.884865158 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/client/firebase-ai/_toc.yaml 2025-10-17 18:06:12.241682011 +0000
@@ -52,6 +52,8 @@
- title: "Classes"
section:
+ - title: "AudioTranscriptionConfig"
+ path: "/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html"
- title: "BlockReason"
path: "/docs/reference/android/com/google/firebase/ai/type/BlockReason.html"
- title: "Candidate"
@@ -232,6 +234,8 @@
path: "/docs/reference/android/com/google/firebase/ai/type/Tool.html"
- title: "ToolConfig"
path: "/docs/reference/android/com/google/firebase/ai/type/ToolConfig.html"
+ - title: "Transcription"
+ path: "/docs/reference/android/com/google/firebase/ai/type/Transcription.html"
- title: "UrlContext"
path: "/docs/reference/android/com/google/firebase/ai/type/UrlContext.html"
- title: "UrlContextMetadata" --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/java/LiveSessionFutures.html 2025-10-17 18:09:25.886981042 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/java/LiveSessionFutures.html 2025-10-17 18:06:12.244953015 +0000
@@ -157,6 +157,13 @@
<tr>
<td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
<td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler<br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
+ <td>
<div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br> Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler,<br> boolean enableInterruptions<br>)</code></div>
<p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
</td>
@@ -164,6 +171,20 @@
<tr>
<td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
<td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler,<br> boolean enableInterruptions<br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
+ <td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler,<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler,<br> boolean enableInterruptions<br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
+ <td>
<div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
<p>Stops the audio conversation with the Gemini Server.</p>
</td>
@@ -301,7 +322,7 @@
<h3 class="api-name" id="send(com.google.firebase.ai.type.Content)">send</h3>
<pre class="api-signature no-pretty-print">public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#send(com.google.firebase.ai.type.Content)">send</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a> content)</pre>
<p>Sends <code><a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">data</a></code> to the model.</p>
- <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+ <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
@@ -328,7 +349,7 @@
<h3 class="api-name" id="send(kotlin.String)">send</h3>
<pre class="api-signature no-pretty-print">public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#send(kotlin.String)">send</a>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a> text)</pre>
<p>Sends text to the model.</p>
- <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+ <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
@@ -408,7 +429,7 @@
<pre class="api-signature no-pretty-print">public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <span><del><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#sendMediaStream(kotlin.collections.List)">sendMediaStream</a></del></span>(@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/kotlin/java/util/List.html">List</a><@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/MediaData.html">MediaData</a>> mediaChunks)</pre>
<aside class="caution"><strong>This method is deprecated.</strong><br>Use sendAudioRealtime, sendVideoRealtime, or sendTextRealtime instead</aside>
<p>Streams client data to the model.</p>
- <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+ <p>Calling this after <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
@@ -541,6 +562,32 @@
</table>
</div>
</div>
+ <div class="api-item"><a name="startAudioConversation-kotlin.Function2-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function2)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler<br>)</pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
<div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
<h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</h3>
<pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br> Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler,<br> boolean enableInterruptions<br>)</pre>
@@ -574,11 +621,83 @@
</table>
</div>
</div>
+ <div class="api-item"><a name="startAudioConversation(kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler,<br> boolean enableInterruptions<br>)</pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>boolean enableInterruptions</code></td>
+ <td>
+ <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+ <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler,<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler,<br> boolean enableInterruptions<br>)</pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a function call.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>boolean enableInterruptions</code></td>
+ <td>
+ <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+ <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
<div class="api-item"><a name="stopAudioConversation--"></a><a name="stopaudioconversation"></a>
<h3 class="api-name" id="stopAudioConversation()">stopAudioConversation</h3>
<pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>public abstract @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>()</pre>
<p>Stops the audio conversation with the Gemini Server.</p>
- <p>This only needs to be called after a previous call to <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+ <p>This only needs to be called after a previous call to <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
<p>If there is no audio conversation currently active, this function does nothing.</p>
</div>
<div class="api-item"><a name="stopReceiving--"></a><a name="stopreceiving"></a>
@@ -586,7 +705,7 @@
<pre class="api-signature no-pretty-print">public abstract void <a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#stopReceiving()">stopReceiving</a>()</pre>
<p>Stops receiving from the model.</p>
<p>If this function is called during an ongoing audio conversation, the model's response will not be received, and no audio will be played; the live session object will no longer receive data from the server.</p>
- <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+ <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/android/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup> --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html 1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html 2025-10-17 18:06:12.271298038 +0000
@@ -0,0 +1,45 @@
+<html devsite="true">
+ <head>
+ <title>AudioTranscriptionConfig</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+ </head>
+ <body>
+ <div id="metadata-info-block"></div>
+ <h1>AudioTranscriptionConfig</h1>
+ <p>
+ <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></pre>
+ </p>
+ <hr>
+ <p>The audio transcription configuration. Its presence enables audio transcription</p>
+ <h2>Summary</h2>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%"><h3>Public constructors</h3></th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</code></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="list">
+ <h2>Public constructors</h2>
+ <div class="api-item"><a name="AudioTranscriptionConfig--"></a><a name="audiotranscriptionconfig"></a>
+ <h3 class="api-name" id="AudioTranscriptionConfig()">AudioTranscriptionConfig</h3>
+ <pre class="api-signature no-pretty-print">public <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</pre>
+ </div>
+ </div>
+ </body>
+</html>
+ --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html 2025-10-17 18:09:25.930901772 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html 2025-10-17 18:06:12.271559168 +0000
@@ -34,6 +34,13 @@
</td>
</tr>
<tr>
+ <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a></code></div>
+ <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+ </td>
+ </tr>
+ <tr>
<td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a></code></td>
<td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a></code></div>
@@ -41,6 +48,13 @@
</td>
</tr>
<tr>
+ <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a></code></div>
+ <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+ </td>
+ </tr>
+ <tr>
<td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a></code></td>
<td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a></code></div>
@@ -133,12 +147,24 @@
<tr>
<td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
<td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a> config)</code></div>
+ </td>
+ </tr>
+ <tr>
+ <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+ <td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a> maxOutputTokens)</code></div>
</td>
</tr>
<tr>
<td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
<td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a> config)</code></div>
+ </td>
+ </tr>
+ <tr>
+ <td><code>final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+ <td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a> presencePenalty)</code></div>
</td>
</tr>
@@ -182,11 +208,21 @@
<pre class="api-signature no-pretty-print">public final <a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#frequencyPenalty()">frequencyPenalty</a></pre>
<p>See <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#frequencyPenalty()">LiveGenerationConfig.frequencyPenalty</a></code></p>
</div>
+ <div class="api-item"><a name="getInputAudioTranscription()"></a><a name="setInputAudioTranscription()"></a><a name="getInputAudioTranscription--"></a><a name="setInputAudioTranscription--"></a>
+ <h3 class="api-name" id="inputAudioTranscription()">inputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">public final <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a></pre>
+ <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+ </div>
<div class="api-item"><a name="getMaxOutputTokens()"></a><a name="setMaxOutputTokens()"></a><a name="getMaxOutputTokens--"></a><a name="setMaxOutputTokens--"></a>
<h3 class="api-name" id="maxOutputTokens()">maxOutputTokens</h3>
<pre class="api-signature no-pretty-print">public final <a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a></pre>
<p>See <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#maxOutputTokens()">LiveGenerationConfig.maxOutputTokens</a></code>.</p>
</div>
+ <div class="api-item"><a name="getOutputAudioTranscription()"></a><a name="setOutputAudioTranscription()"></a><a name="getOutputAudioTranscription--"></a><a name="setOutputAudioTranscription--"></a>
+ <h3 class="api-name" id="outputAudioTranscription()">outputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">public final <a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a></pre>
+ <p>see <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+ </div>
<div class="api-item"><a name="getPresencePenalty()"></a><a name="setPresencePenalty()"></a><a name="getPresencePenalty--"></a><a name="setPresencePenalty--"></a>
<h3 class="api-name" id="presencePenalty()">presencePenalty</h3>
<pre class="api-signature no-pretty-print">public final <a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a></pre>
@@ -236,10 +272,18 @@
<h3 class="api-name" id="setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</h3>
<pre class="api-signature no-pretty-print">public final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a> frequencyPenalty)</pre>
</div>
+ <div class="api-item"><a name="setInputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setinputaudiotranscription"></a>
+ <h3 class="api-name" id="setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">public final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a> config)</pre>
+ </div>
<div class="api-item"><a name="setMaxOutputTokens-kotlin.Int-"></a><a name="setmaxoutputtokens"></a>
<h3 class="api-name" id="setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</h3>
<pre class="api-signature no-pretty-print">public final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Integer.html">Integer</a> maxOutputTokens)</pre>
</div>
+ <div class="api-item"><a name="setOutputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setoutputaudiotranscription"></a>
+ <h3 class="api-name" id="setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">public final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(<a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a> config)</pre>
+ </div>
<div class="api-item"><a name="setPresencePenalty-kotlin.Float-"></a><a name="setpresencepenalty"></a>
<h3 class="api-name" id="setPresencePenalty(kotlin.Float)">setPresencePenalty</h3>
<pre class="api-signature no-pretty-print">public final @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(<a href="https://developer.android.com/reference/kotlin/java/lang/Float.html">Float</a> presencePenalty)</pre> --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveServerContent.html 2025-10-17 18:09:25.909472159 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveServerContent.html 2025-10-17 18:06:12.257101463 +0000
@@ -41,6 +41,13 @@
</td>
</tr>
<tr>
+ <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a></code></div>
+ <p>The input transcription.</p>
+ </td>
+ </tr>
+ <tr>
<td><code>final boolean</code></td>
<td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code></div>
@@ -48,6 +55,13 @@
</td>
</tr>
<tr>
+ <td><code>final <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a></code></div>
+ <p>The output transcription.</p>
+ </td>
+ </tr>
+ <tr>
<td><code>final boolean</code></td>
<td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code></div>
@@ -71,7 +85,8 @@
<tbody class="list">
<tr>
<td>
- <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a> content,<br> boolean interrupted,<br> boolean turnComplete,<br> boolean generationComplete<br>)</code></div>
+ <div><code><span><del><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a> content,<br> boolean interrupted,<br> boolean turnComplete,<br> boolean generationComplete,<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a> inputTranscription,<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a> outputTranscription<br>)</code></div>
+ <p><strong>This method is deprecated.</strong> This class should not be constructed, only received from the Server</p>
</td>
</tr>
</tbody>
@@ -92,12 +107,22 @@
<p>For realtime playback, there will be a delay between when the model finishes generating content and the client has finished playing back the generated content. <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#generationComplete()">generationComplete</a></code> indicates that the model is done generating data, while <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code> indicates the model is waiting for additional client messages. Sending a message during this delay may cause an <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> message to be sent.</p>
<p>Note that if the model was <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code>, this will not be set. The model will go from <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> -><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code>.</p>
</div>
+ <div class="api-item"><a name="getInputTranscription()"></a><a name="setInputTranscription()"></a><a name="getInputTranscription--"></a><a name="setInputTranscription--"></a>
+ <h3 class="api-name" id="inputTranscription()">inputTranscription</h3>
+ <pre class="api-signature no-pretty-print">public final <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a></pre>
+ <p>The input transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+ </div>
<div class="api-item"><a name="getInterrupted()"></a><a name="setInterrupted()"></a><a name="getInterrupted--"></a><a name="setInterrupted--"></a>
<h3 class="api-name" id="interrupted()">interrupted</h3>
<pre class="api-signature no-pretty-print">public final boolean <a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></pre>
<p>The model was interrupted by the client while generating data.</p>
<p>An interruption occurs when the client sends a message while the model is actively sending data.</p>
</div>
+ <div class="api-item"><a name="getOutputTranscription()"></a><a name="setOutputTranscription()"></a><a name="getOutputTranscription--"></a><a name="setOutputTranscription--"></a>
+ <h3 class="api-name" id="outputTranscription()">outputTranscription</h3>
+ <pre class="api-signature no-pretty-print">public final <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a> <a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a></pre>
+ <p>The output transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+ </div>
<div class="api-item"><a name="getTurnComplete()"></a><a name="setTurnComplete()"></a><a name="getTurnComplete--"></a><a name="setTurnComplete--"></a>
<h3 class="api-name" id="turnComplete()">turnComplete</h3>
<pre class="api-signature no-pretty-print">public final boolean <a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></pre>
@@ -127,9 +152,10 @@
</div>
<div class="list">
<h2>Public constructors</h2>
- <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-"></a><a name="liveservercontent"></a>
- <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</h3>
- <pre class="api-signature no-pretty-print">public <a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a> content,<br> boolean interrupted,<br> boolean turnComplete,<br> boolean generationComplete<br>)</pre>
+ <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, com.google.firebase.ai.type.Transcription, com.google.firebase.ai.type.Transcription)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-com.google.firebase.ai.type.Transcription-com.google.firebase.ai.type.Transcription-"></a><a name="liveservercontent"></a>
+ <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</h3>
+ <pre class="api-signature no-pretty-print">public <span><del><a href="/docs/reference/android/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Content.html">Content</a> content,<br> boolean interrupted,<br> boolean turnComplete,<br> boolean generationComplete,<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a> inputTranscription,<br> <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a> outputTranscription<br>)</pre>
+ <aside class="caution"><strong>This method is deprecated.</strong><br>This class should not be constructed, only received from the Server</aside>
</div>
</div>
</body> --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveSession.html 2025-10-17 18:09:25.910426471 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/LiveSession.html 2025-10-17 18:06:12.259868400 +0000
@@ -119,6 +119,13 @@
<tr>
<td><code>final void</code></td>
<td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler,<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler,<br> boolean enableInterruptions<br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>final void</code></td>
+ <td>
<div><code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
<p>Stops the audio conversation with the model.</p>
</td>
@@ -474,6 +481,45 @@
</td>
</tr>
<tr>
+ <td><code>boolean enableInterruptions</code></td>
+ <td>
+ <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+ <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>public final void <a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler,<br> Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler,<br> boolean enableInterruptions<br>)</pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/android/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>Function1<@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>, @<a href="https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html">NonNull</a> <a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>> functionCallHandler</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a function call. The <code><a href="/docs/reference/android/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a></code> that the callback function returns will be automatically sent to the model.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>Function2<<a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a>, <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>> transcriptHandler</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription.</p>
+ </td>
+ </tr>
+ <tr>
<td><code>boolean enableInterruptions</code></td>
<td>
<p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p> --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/Transcription.html 1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/Transcription.html 2025-10-17 18:06:12.270393910 +0000
@@ -0,0 +1,48 @@
+<html devsite="true">
+ <head>
+ <title>Transcription</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/android/_reference-head-tags.html" %}
+ </head>
+ <body>
+ <div id="metadata-info-block"></div>
+ <h1>Transcription</h1>
+ <p>
+ <pre>public final class <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></pre>
+ </p>
+ <hr>
+ <p>Audio transcription message.</p>
+ <h2>Summary</h2>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%"><h3>Public fields</h3></th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>final <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a></code></td>
+ <td>
+ <div><code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html#text()">text</a></code></div>
+ <p>Transcription text</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="list">
+ <h2>Public fields</h2>
+ <div class="api-item"><a name="getText()"></a><a name="setText()"></a><a name="getText--"></a><a name="setText--"></a>
+ <h3 class="api-name" id="text()">text</h3>
+ <pre class="api-signature no-pretty-print">public final <a href="https://developer.android.com/reference/kotlin/java/lang/String.html">String</a> <a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html#text()">text</a></pre>
+ <p>Transcription text</p>
+ </div>
+ </div>
+ </body>
+</html>
+ --- /home/runner/diff/original/firebase-kotlindoc/android/com/google/firebase/ai/type/package-summary.html 2025-10-17 18:09:25.896752011 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/android/com/google/firebase/ai/type/package-summary.html 2025-10-17 18:06:12.249604632 +0000
@@ -53,6 +53,12 @@
</colgroup>
<tbody class="list">
<tr>
+ <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+ <td>
+ <p>The audio transcription configuration.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="/docs/reference/android/com/google/firebase/ai/type/BlockReason.html">BlockReason</a></code></td>
<td>
<p>Describes why content was blocked.</p>
@@ -571,6 +577,12 @@
</td>
</tr>
<tr>
+ <td><code><a href="/docs/reference/android/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+ <td>
+ <p>Audio transcription message.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="/docs/reference/android/com/google/firebase/ai/type/UrlContext.html">UrlContext</a></code></td>
<td>
<p>Specifies the URL context configuration.</p> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/client/firebase-ai/_toc.yaml 2025-10-17 18:09:25.944331993 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/client/firebase-ai/_toc.yaml 2025-10-17 18:06:12.277768341 +0000
@@ -50,6 +50,8 @@
- title: "Classes"
section:
+ - title: "AudioTranscriptionConfig"
+ path: "/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html"
- title: "BlockReason"
path: "/docs/reference/kotlin/com/google/firebase/ai/type/BlockReason.html"
- title: "Candidate"
@@ -216,6 +218,8 @@
path: "/docs/reference/kotlin/com/google/firebase/ai/type/Tool.html"
- title: "ToolConfig"
path: "/docs/reference/kotlin/com/google/firebase/ai/type/ToolConfig.html"
+ - title: "Transcription"
+ path: "/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html"
- title: "UrlContext"
path: "/docs/reference/kotlin/com/google/firebase/ai/type/UrlContext.html"
- title: "UrlContextMetadata" --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html 2025-10-17 18:09:25.952175363 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html 2025-10-17 18:06:12.280204540 +0000
@@ -152,6 +152,13 @@
<tr>
<td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
<td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?<br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
+ <td>
<div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br> functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
<p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
</td>
@@ -159,6 +166,20 @@
<tr>
<td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
<td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
+ <td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>abstract <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></code></td>
+ <td>
<div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
<p>Stops the audio conversation with the Gemini Server.</p>
</td>
@@ -299,7 +320,7 @@
<h3 class="api-name" id="send(com.google.firebase.ai.type.Content)">send</h3>
<pre class="api-signature no-pretty-print">abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#send(com.google.firebase.ai.type.Content)">send</a>(content: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
<p>Sends <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">data</a></code> to the model.</p>
- <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+ <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
@@ -326,7 +347,7 @@
<h3 class="api-name" id="send(kotlin.String)">send</h3>
<pre class="api-signature no-pretty-print">abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#send(kotlin.String)">send</a>(text: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
<p>Sends text to the model.</p>
- <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+ <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
@@ -406,7 +427,7 @@
<pre class="api-signature no-pretty-print">abstract fun <span><del><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#sendMediaStream(kotlin.collections.List)">sendMediaStream</a></del></span>(mediaChunks: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html">List</a><<a href="/docs/reference/kotlin/com/google/firebase/ai/type/MediaData.html">MediaData</a>>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
<aside class="caution"><strong>This function is deprecated.</strong><br>Use sendAudioRealtime, sendVideoRealtime, or sendTextRealtime instead</aside>
<p>Streams client data to the model.</p>
- <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code> will play the response audio immediately.</p>
+ <p>Calling this after <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code> will play the response audio immediately.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup>
@@ -539,6 +560,32 @@
</table>
</div>
</div>
+ <div class="api-item"><a name="startAudioConversation-kotlin.Function2-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function2)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2)">startAudioConversation</a>(<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?<br>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
<div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
<h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</h3>
<pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Boolean)">startAudioConversation</a>(<br> functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
@@ -572,11 +619,83 @@
</table>
</div>
</div>
+ <div class="api-item"><a name="startAudioConversation(kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
+ <td>
+ <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+ <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#close()">close</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a function call.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
+ <td>
+ <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+ <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
<div class="api-item"><a name="stopAudioConversation--"></a><a name="stopaudioconversation"></a>
<h3 class="api-name" id="stopAudioConversation()">stopAudioConversation</h3>
<pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopAudioConversation()">stopAudioConversation</a>(): <a href="/docs/reference/kotlin/com/google/common/util/concurrent/ListenableFuture.html">ListenableFuture</a><<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>></pre>
<p>Stops the audio conversation with the Gemini Server.</p>
- <p>This only needs to be called after a previous call to <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+ <p>This only needs to be called after a previous call to <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
<p>If there is no audio conversation currently active, this function does nothing.</p>
</div>
<div class="api-item"><a name="stopReceiving--"></a><a name="stopreceiving"></a>
@@ -584,7 +703,7 @@
<pre class="api-signature no-pretty-print">abstract fun <a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#stopReceiving()">stopReceiving</a>(): <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></pre>
<p>Stops receiving from the model.</p>
<p>If this function is called during an ongoing audio conversation, the model's response will not be received, and no audio will be played; the live session object will no longer receive data from the server.</p>
- <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation(kotlin.Function1)">startAudioConversation</a></code>.</p>
+ <p>To resume receiving data, you must either handle it directly using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#receive()">receive</a></code>, or indirectly by using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/java/LiveSessionFutures.html#startAudioConversation()">startAudioConversation</a></code>.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<colgroup> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html 1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html 2025-10-17 18:06:12.304105850 +0000
@@ -0,0 +1,45 @@
+<html devsite="true">
+ <head>
+ <title>AudioTranscriptionConfig</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+ </head>
+ <body>
+ <div id="metadata-info-block"></div>
+ <h1>AudioTranscriptionConfig</h1>
+ <p>
+ <pre>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></pre>
+ </p>
+ <hr>
+ <p>The audio transcription configuration. Its presence enables audio transcription</p>
+ <h2>Summary</h2>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%"><h3>Public constructors</h3></th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</code></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="list">
+ <h2>Public constructors</h2>
+ <div class="api-item"><a name="AudioTranscriptionConfig--"></a><a name="audiotranscriptionconfig"></a>
+ <h3 class="api-name" id="AudioTranscriptionConfig()">AudioTranscriptionConfig</h3>
+ <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html#AudioTranscriptionConfig()">AudioTranscriptionConfig</a>()</pre>
+ </div>
+ </div>
+ </body>
+</html>
+ --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html 2025-10-17 18:09:25.989033400 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html 2025-10-17 18:06:12.304380215 +0000
@@ -62,12 +62,24 @@
<tr>
<td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
<td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(config: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?)</code></div>
+ </td>
+ </tr>
+ <tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+ <td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(maxOutputTokens: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?)</code></div>
</td>
</tr>
<tr>
<td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
<td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(config: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?)</code></div>
+ </td>
+ </tr>
+ <tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></code></td>
+ <td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(presencePenalty: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?)</code></div>
</td>
</tr>
@@ -124,6 +136,13 @@
</td>
</tr>
<tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</code></td>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a></code></div>
+ <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?</code></td>
<td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a></code></div>
@@ -131,6 +150,13 @@
</td>
</tr>
<tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</code></td>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a></code></div>
+ <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?</code></td>
<td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a></code></div>
@@ -193,10 +219,18 @@
<h3 class="api-name" id="setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</h3>
<pre class="api-signature no-pretty-print">fun <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setFrequencyPenalty(kotlin.Float)">setFrequencyPenalty</a>(frequencyPenalty: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?): <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
</div>
+ <div class="api-item"><a name="setInputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setinputaudiotranscription"></a>
+ <h3 class="api-name" id="setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">fun <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setInputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setInputAudioTranscription</a>(config: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?): <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
+ </div>
<div class="api-item"><a name="setMaxOutputTokens-kotlin.Int-"></a><a name="setmaxoutputtokens"></a>
<h3 class="api-name" id="setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</h3>
<pre class="api-signature no-pretty-print">fun <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setMaxOutputTokens(kotlin.Int)">setMaxOutputTokens</a>(maxOutputTokens: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?): <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
</div>
+ <div class="api-item"><a name="setOutputAudioTranscription-com.google.firebase.ai.type.AudioTranscriptionConfig-"></a><a name="setoutputaudiotranscription"></a>
+ <h3 class="api-name" id="setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">fun <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setOutputAudioTranscription(com.google.firebase.ai.type.AudioTranscriptionConfig)">setOutputAudioTranscription</a>(config: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?): <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
+ </div>
<div class="api-item"><a name="setPresencePenalty-kotlin.Float-"></a><a name="setpresencepenalty"></a>
<h3 class="api-name" id="setPresencePenalty(kotlin.Float)">setPresencePenalty</h3>
<pre class="api-signature no-pretty-print">fun <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#setPresencePenalty(kotlin.Float)">setPresencePenalty</a>(presencePenalty: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?): <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html">LiveGenerationConfig.Builder</a></pre>
@@ -229,11 +263,21 @@
<pre class="api-signature no-pretty-print">var <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#frequencyPenalty()">frequencyPenalty</a>: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?</pre>
<p>See <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#frequencyPenalty()">LiveGenerationConfig.frequencyPenalty</a></code></p>
</div>
+ <div class="api-item"><a name="getInputAudioTranscription()"></a><a name="setInputAudioTranscription()"></a><a name="getInputAudioTranscription--"></a><a name="setInputAudioTranscription--"></a>
+ <h3 class="api-name" id="inputAudioTranscription()">inputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">var <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#inputAudioTranscription()">inputAudioTranscription</a>: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</pre>
+ <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#inputAudioTranscription()">LiveGenerationConfig.inputAudioTranscription</a></code></p>
+ </div>
<div class="api-item"><a name="getMaxOutputTokens()"></a><a name="setMaxOutputTokens()"></a><a name="getMaxOutputTokens--"></a><a name="setMaxOutputTokens--"></a>
<h3 class="api-name" id="maxOutputTokens()">maxOutputTokens</h3>
<pre class="api-signature no-pretty-print">var <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#maxOutputTokens()">maxOutputTokens</a>: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>?</pre>
<p>See <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#maxOutputTokens()">LiveGenerationConfig.maxOutputTokens</a></code>.</p>
</div>
+ <div class="api-item"><a name="getOutputAudioTranscription()"></a><a name="setOutputAudioTranscription()"></a><a name="getOutputAudioTranscription--"></a><a name="setOutputAudioTranscription--"></a>
+ <h3 class="api-name" id="outputAudioTranscription()">outputAudioTranscription</h3>
+ <pre class="api-signature no-pretty-print">var <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#outputAudioTranscription()">outputAudioTranscription</a>: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a>?</pre>
+ <p>see <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.html#outputAudioTranscription()">LiveGenerationConfig.outputAudioTranscription</a></code></p>
+ </div>
<div class="api-item"><a name="getPresencePenalty()"></a><a name="setPresencePenalty()"></a><a name="getPresencePenalty--"></a><a name="setPresencePenalty--"></a>
<h3 class="api-name" id="presencePenalty()">presencePenalty</h3>
<pre class="api-signature no-pretty-print">var <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.Builder.html#presencePenalty()">presencePenalty</a>: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html">Float</a>?</pre> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveServerContent.html 2025-10-17 18:09:25.969028732 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveServerContent.html 2025-10-17 18:06:12.286564322 +0000
@@ -28,7 +28,8 @@
<tbody class="list">
<tr>
<td>
- <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br> content: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br> interrupted: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> turnComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> generationComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+ <div><code><span><del><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br> content: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br> interrupted: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> turnComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> generationComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> inputTranscription: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?,<br> outputTranscription: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?<br>)</code></div>
+ <p><strong>This function is deprecated.</strong> This class should not be constructed, only received from the Server</p>
</td>
</tr>
</tbody>
@@ -61,6 +62,13 @@
</td>
</tr>
<tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</code></td>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a></code></div>
+ <p>The input transcription.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
<td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code></div>
@@ -68,6 +76,13 @@
</td>
</tr>
<tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</code></td>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a></code></div>
+ <p>The output transcription.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
<td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code></div>
@@ -79,9 +94,10 @@
</div>
<div class="list">
<h2>Public constructors</h2>
- <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-"></a><a name="liveservercontent"></a>
- <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</h3>
- <pre class="api-signature no-pretty-print"><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)">LiveServerContent</a>(<br> content: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br> interrupted: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> turnComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> generationComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</pre>
+ <div class="api-item"><a name="LiveServerContent(com.google.firebase.ai.type.Content, kotlin.Boolean, kotlin.Boolean, kotlin.Boolean, com.google.firebase.ai.type.Transcription, com.google.firebase.ai.type.Transcription)"></a><a name="LiveServerContent-com.google.firebase.ai.type.Content-kotlin.Boolean-kotlin.Boolean-kotlin.Boolean-com.google.firebase.ai.type.Transcription-com.google.firebase.ai.type.Transcription-"></a><a name="liveservercontent"></a>
+ <h3 class="api-name" id="LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</h3>
+ <pre class="api-signature no-pretty-print"><span><del><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#LiveServerContent(com.google.firebase.ai.type.Content,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,com.google.firebase.ai.type.Transcription,com.google.firebase.ai.type.Transcription)">LiveServerContent</a></del></span>(<br> content: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Content.html">Content</a>?,<br> interrupted: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> turnComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> generationComplete: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a>,<br> inputTranscription: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?,<br> outputTranscription: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?<br>)</pre>
+ <aside class="caution"><strong>This function is deprecated.</strong><br>This class should not be constructed, only received from the Server</aside>
</div>
</div>
<div class="list">
@@ -99,12 +115,22 @@
<p>For realtime playback, there will be a delay between when the model finishes generating content and the client has finished playing back the generated content. <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#generationComplete()">generationComplete</a></code> indicates that the model is done generating data, while <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code> indicates the model is waiting for additional client messages. Sending a message during this delay may cause an <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> message to be sent.</p>
<p>Note that if the model was <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code>, this will not be set. The model will go from <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a></code> -><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a></code>.</p>
</div>
+ <div class="api-item"><a name="getInputTranscription()"></a><a name="setInputTranscription()"></a><a name="getInputTranscription--"></a><a name="setInputTranscription--"></a>
+ <h3 class="api-name" id="inputTranscription()">inputTranscription</h3>
+ <pre class="api-signature no-pretty-print">val <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#inputTranscription()">inputTranscription</a>: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</pre>
+ <p>The input transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+ </div>
<div class="api-item"><a name="getInterrupted()"></a><a name="setInterrupted()"></a><a name="getInterrupted--"></a><a name="setInterrupted--"></a>
<h3 class="api-name" id="interrupted()">interrupted</h3>
<pre class="api-signature no-pretty-print">val <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#interrupted()">interrupted</a>: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></pre>
<p>The model was interrupted by the client while generating data.</p>
<p>An interruption occurs when the client sends a message while the model is actively sending data.</p>
</div>
+ <div class="api-item"><a name="getOutputTranscription()"></a><a name="setOutputTranscription()"></a><a name="getOutputTranscription--"></a><a name="setOutputTranscription--"></a>
+ <h3 class="api-name" id="outputTranscription()">outputTranscription</h3>
+ <pre class="api-signature no-pretty-print">val <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#outputTranscription()">outputTranscription</a>: <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?</pre>
+ <p>The output transcription. The transcription is independent to the model turn which means it doesn't imply any ordering between transcription and model turn.</p>
+ </div>
<div class="api-item"><a name="getTurnComplete()"></a><a name="setTurnComplete()"></a><a name="getTurnComplete--"></a><a name="setTurnComplete--"></a>
<h3 class="api-name" id="turnComplete()">turnComplete</h3>
<pre class="api-signature no-pretty-print">val <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveServerContent.html#turnComplete()">turnComplete</a>: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></pre> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveSession.html 2025-10-17 18:09:25.970024753 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/LiveSession.html 2025-10-17 18:06:12.290484455 +0000
@@ -117,6 +117,13 @@
</td>
</tr>
<tr>
+ <td><code>suspend <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></code></td>
+ <td>
+ <div><code>@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)?,<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)?,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><br>)</code></div>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></code></td>
<td>
<div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a>()</code></div>
@@ -474,6 +481,45 @@
</td>
</tr>
<tr>
+ <td><code>enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a> = false</code></td>
+ <td>
+ <p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p>
+ <p><b>WARNING</b>: The user interruption feature relies on device-specific support, and may not be consistently available.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="api-item"><a name="startAudioConversation(kotlin.Function1, kotlin.Function2, kotlin.Boolean)"></a><a name="startAudioConversation-kotlin.Function1-kotlin.Function2-kotlin.Boolean-"></a><a name="startaudioconversation"></a>
+ <h3 class="api-name" id="startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</h3>
+ <pre class="api-signature no-pretty-print">@<a href="https://developer.android.com/reference/kotlin/androidx/annotation/RequiresPermission.html">RequiresPermission</a>(value = "android.permission.RECORD_AUDIO")<br>suspend fun <a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#startAudioConversation(kotlin.Function1,kotlin.Function2,kotlin.Boolean)">startAudioConversation</a>(<br> functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)? = null,<br> transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)? = null,<br> enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a> = false<br>): <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></pre>
+ <p>Starts an audio conversation with the model, which can only be stopped using <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#stopAudioConversation()">stopAudioConversation</a></code> or <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/LiveSession.html#close()">close</a></code>.</p>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%">Parameters</th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code>functionCallHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionCallPart.html">FunctionCallPart</a>) <span style="white-space: nowrap;">-></span> <a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a>)? = null</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a function call. The <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/FunctionResponsePart.html">FunctionResponsePart</a></code> that the callback function returns will be automatically sent to the model.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>transcriptHandler: ((<a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?, <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a>?) <span style="white-space: nowrap;">-></span> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>)? = null</code></td>
+ <td>
+ <p>A callback function that is invoked whenever the model receives a transcript. The first <code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code> object is the input transcription, and the second is the output transcription.</p>
+ </td>
+ </tr>
+ <tr>
<td><code>enableInterruptions: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a> = false</code></td>
<td>
<p>If enabled, allows the user to speak over or interrupt the model's ongoing reply.</p> --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/Transcription.html 1970-01-01 00:00:00.000000000 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/Transcription.html 2025-10-17 18:06:12.303543603 +0000
@@ -0,0 +1,48 @@
+<html devsite="true">
+ <head>
+ <title>Transcription</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "docs/reference/kotlin/_reference-head-tags.html" %}
+ </head>
+ <body>
+ <div id="metadata-info-block"></div>
+ <h1>Transcription</h1>
+ <p>
+ <pre>class <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></pre>
+ </p>
+ <hr>
+ <p>Audio transcription message.</p>
+ <h2>Summary</h2>
+ <div class="devsite-table-wrapper">
+ <table class="responsive">
+ <colgroup>
+ <col width="40%">
+ <col>
+ </colgroup>
+ <thead>
+ <tr>
+ <th colspan="100%"><h3>Public properties</h3></th>
+ </tr>
+ </thead>
+ <tbody class="list">
+ <tr>
+ <td><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>?</code></td>
+ <td>
+ <div><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html#text()">text</a></code></div>
+ <p>Transcription text</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="list">
+ <h2>Public properties</h2>
+ <div class="api-item"><a name="getText()"></a><a name="setText()"></a><a name="getText--"></a><a name="setText--"></a>
+ <h3 class="api-name" id="text()">text</h3>
+ <pre class="api-signature no-pretty-print">val <a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html#text()">text</a>: <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a>?</pre>
+ <p>Transcription text</p>
+ </div>
+ </div>
+ </body>
+</html>
+ --- /home/runner/diff/original/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/package-summary.html 2025-10-17 18:09:25.956676997 +0000
+++ /home/runner/diff/modified/firebase-kotlindoc/kotlin/com/google/firebase/ai/type/package-summary.html 2025-10-17 18:06:12.281643600 +0000
@@ -38,6 +38,12 @@
</colgroup>
<tbody class="list">
<tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.html">AudioTranscriptionConfig</a></code></td>
+ <td>
+ <p>The audio transcription configuration.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/BlockReason.html">BlockReason</a></code></td>
<td>
<p>Describes why content was blocked.</p>
@@ -528,6 +534,12 @@
</td>
</tr>
<tr>
+ <td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/Transcription.html">Transcription</a></code></td>
+ <td>
+ <p>Audio transcription message.</p>
+ </td>
+ </tr>
+ <tr>
<td><code><a href="/docs/reference/kotlin/com/google/firebase/ai/type/UrlContext.html">UrlContext</a></code></td>
<td>
<p>Specifies the URL context configuration.</p> --- /home/runner/diff/original/reports/problems/problems-report.html 2025-10-17 18:10:29.629570119 +0000
+++ /home/runner/diff/modified/reports/problems/problems-report.html 2025-10-17 18:08:16.801612287 +0000
@@ -650,7 +650,7 @@
<script type="text/javascript">
function configurationCacheProblems() { return (
// begin-report-data
-{"diagnostics":[{"locations":[{"pluginId":"firebase-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"pluginId":"firebase-java-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":37}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":32}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":38}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('ndkVersion = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('includeAndroidResources = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('compileSdk = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('sourceCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('targetCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('testBuildType = <value>') instead."}]]},{"locations":[{"taskPath":":firebase-appdistribution-api:generateDackkaDocumentation"}],"problem":[{"text":"Invocation of Task.project at execution time has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10.0."}],"contextualLabel":"Invocation of Task.project at execution time has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_7.html#task_project","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"invocation-of-task-project-at-execution-time","displayName":"Invocation of Task.project at execution time has been deprecated."}],"solutions":[[{"text":"This API is incompatible with the configuration cache, which will become the only mode supported by Gradle in a future release."}]]}],"problemsReport":{"totalProblemCount":18,"buildName":"com.google.firebase","requestedTasks":"kotlindoc","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"count":4}]}}
+{"diagnostics":[{"locations":[{"pluginId":"com.android.internal.library"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getCrunchPngs' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType$AgpDecorated.isCrunchPngs' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"locations":[{"pluginId":"com.android.internal.library"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getUseProguard' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.gradle.internal.dsl.BuildType.isUseProguard' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"locations":[{"pluginId":"firebase-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-abt/firebase-abt.gradle'","line":34}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"pluginId":"firebase-java-library"}],"problem":[{"text":"The Report.destination property has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The Report.destination property has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:destination","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-report-destination-property-has-been-deprecated","displayName":"The Report.destination property has been deprecated."}],"solutions":[[{"text":"Please use the outputLocation property instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":31}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution/firebase-appdistribution.gradle'","line":37}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":32}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"locations":[{"path":"build file '/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-appdistribution-api/firebase-appdistribution-api.gradle'","line":38}],"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('namespace = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('multiDexEnabled = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('ndkVersion = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('includeAndroidResources = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('compileSdk = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('abortOnError = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('sourceCompatibility = <value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('targetCompatibility = <value>') instead."}]]},{"locations":[{"pluginId":"com.android.internal.application"}],"problem":[{"text":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"Starting with Gradle 9.0, this property will be ignored by Gradle."}],"contextualLabel":"Declaring an 'is-' property with a Boolean type has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_boolean_properties","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-an-is-property-with-a-boolean-type","displayName":"Declaring an 'is-' property with a Boolean type has been deprecated."}],"solutions":[[{"text":"Add a method named 'getWearAppUnbundled' with the same behavior and mark the old one with @Deprecated, or change the type of 'com.android.build.api.variant.impl.ApplicationVariantImpl.isWearAppUnbundled' (and the setter) to 'boolean'."}],[{"text":"The combination of method name and return type is not consistent with Java Bean property rules and will become unsupported in future versions of Groovy."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10.0."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('testBuildType = <value>') instead."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfig.java"},{"taskPath":":firebase-config:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfig.java"},{"taskPath":":firebase-config:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/FirebaseCommonRegistrar.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/FirebaseCommonRegistrar.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-common/src/main/java/com/google/firebase/heartbeatinfo/HeartBeatInfoStorage.java"},{"taskPath":":firebase-common:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"taskPath":":firebase-config:generateDackkaDocumentation"}],"problem":[{"text":"Invocation of Task.project at execution time has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10.0."}],"contextualLabel":"Invocation of Task.project at execution time has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_7.html#task_project","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"invocation-of-task-project-at-execution-time","displayName":"Invocation of Task.project at execution time has been deprecated."}],"solutions":[[{"text":"This API is incompatible with the configuration cache, which will become the only mode supported by Gradle in a future release."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-database/src/main/java/com/google/firebase/database/core/utilities/Utilities.java"},{"taskPath":":firebase-database:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-database/src/main/java/com/google/firebase/database/core/utilities/Utilities.java"},{"taskPath":":firebase-database:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/model/CrashlyticsReport.java","line":246,"column":30,"length":14},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/model/CrashlyticsReport.java:246: warning: [AutoValueMutable] An @AutoValue property that is a primitive array returns the original array, which can therefore be modified by the caller. If this is OK, you can suppress this warning with @SuppressWarnings(\"mutable\"). Otherwise, you should replace the property with an immutable type, perhaps a simple wrapper around the original array.\n public abstract byte[] getContents();\n ^"}],"contextualLabel":"[AutoValueMutable] An @AutoValue property that is a primitive array returns the original array, which can therefore be modified by the caller. If this is OK, you can suppress this warning with @SuppressWarnings(\"mutable\"). Otherwise, you should replace the property with an immutable type, perhaps a simple wrapper around the original array.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-proc-messager","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CommonUtils.java"},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CommonUtils.java"},{"taskPath":":firebase-crashlytics:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":17,"column":18,"length":10},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:17: warning: [deprecation] AsyncTask in android.os has been deprecated\nimport android.os.AsyncTask;\n ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":417,"column":21,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:417: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n && (settings.isPersistenceEnabled()\n ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java","line":499,"column":18,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirebaseFirestore.java:499: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n Tasks.call(\n ^\n where TResult is a type-variable:\n TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java","line":62,"column":20,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/ComponentProvider.java:62: warning: [deprecation] isPersistenceEnabled() in FirebaseFirestoreSettings has been deprecated\n return settings.isPersistenceEnabled()\n ^"}],"contextualLabel":"isPersistenceEnabled() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java","line":239,"column":14,"length":5},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/GrpcCallProvider.java:239: warning: [deprecation] <TResult>call(Executor,Callable<TResult>) in Tasks has been deprecated\n Tasks.call(\n ^\n where TResult is a type-variable:\n TResult extends Object declared in method <TResult>call(Executor,Callable<TResult>)"}],"contextualLabel":"<TResult>call(java.util.concurrent.Executor,java.util.concurrent.Callable<TResult>) in com.google.android.gms.tasks.Tasks has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java","line":56,"column":28,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/FirestoreRegistrar.java:56: warning: [deprecation] optional(Class<?>) in Dependency has been deprecated\n .add(Dependency.optional(FirebaseOptions.class))\n ^"}],"contextualLabel":"optional(java.lang.Class<?>) in com.google.firebase.components.Dependency has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java","line":83,"column":65,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/MemoryComponentProvider.java:83: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java","line":49,"column":63,"length":18},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/core/SQLiteComponentProvider.java:49: warning: [deprecation] getCacheSizeBytes() in FirebaseFirestoreSettings has been deprecated\n LruGarbageCollector.Params.WithCacheSizeBytes(settings.getCacheSizeBytes());\n ^"}],"contextualLabel":"getCacheSizeBytes() in com.google.firebase.firestore.FirebaseFirestoreSettings has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":50,"length":9},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] AsyncTask in android.os has been deprecated\n ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n ^"}],"contextualLabel":"android.os.AsyncTask in android.os has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java","line":44,"column":59,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/util/Executors.java:44: warning: [deprecation] THREAD_POOL_EXECUTOR in AsyncTask has been deprecated\n ASYNC_THREAD_POOL_MAXIMUM_CONCURRENCY, AsyncTask.THREAD_POOL_EXECUTOR);\n ^"}],"contextualLabel":"THREAD_POOL_EXECUTOR in android.os.AsyncTask has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java","line":52,"column":15,"length":24},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/FirestoreCallCredentials.java:52: warning: [deprecation] thisUsesUnstableApi() in CallCredentials has been deprecated\n public void thisUsesUnstableApi() {}\n ^"}],"contextualLabel":"thisUsesUnstableApi() in io.grpc.CallCredentials has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":16,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] NetworkInfo in android.net has been deprecated\n android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n ^"}],"contextualLabel":"android.net.NetworkInfo in android.net has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":209,"column":47,"length":21},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:209: warning: [deprecation] getActiveNetworkInfo() in ConnectivityManager has been deprecated\n android.net.NetworkInfo networkInfo = conn.getActiveNetworkInfo();\n ^"}],"contextualLabel":"getActiveNetworkInfo() in android.net.ConnectivityManager has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java","line":210,"column":46,"length":12},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation warning"}],"severity":"WARNING","problemDetails":[{"text":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/AndroidConnectivityMonitor.java:210: warning: [deprecation] isConnected() in NetworkInfo has been deprecated\n return networkInfo != null && networkInfo.isConnected();\n ^"}],"contextualLabel":"isConnected() in android.net.NetworkInfo has been deprecated","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-warn-has-been-deprecated","displayName":"Java compilation warning"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/ObjectValue.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use unchecked or unsafe operations."}],"contextualLabel":"Some input files use unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-firestore/src/main/java/com/google/firebase/firestore/model/ObjectValue.java"},{"taskPath":":firebase-firestore:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsException.java"},{"taskPath":":firebase-installations:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallationsException.java"},{"taskPath":":firebase-installations:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ForegroundNotifier.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ForegroundNotifier.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DeveloperListenerManager.java"},{"taskPath":":firebase-inappmessaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"taskPath":":encoders:protoc-gen-firebase-encoders:shadowJar"}],"problem":[{"text":"The FileTreeElement.getMode() method has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 9.0."}],"contextualLabel":"The FileTreeElement.getMode() method has been deprecated.","documentationLink":"https://docs.gradle.org/8.13/userguide/upgrading_version_8.html#unix_file_permissions_deprecated","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"the-filetreeelement-getmode-method-has-been-deprecated","displayName":"The FileTreeElement.getMode() method has been deprecated."}],"solutions":[[{"text":"Please use the getPermissions() method instead."}]]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/internal/FiamWindowManager.java"},{"taskPath":":firebase-inappmessaging-display:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-inappmessaging-display/src/main/java/com/google/firebase/inappmessaging/display/internal/FiamWindowManager.java"},{"taskPath":":firebase-inappmessaging-display:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/ModelDownloaderComponent.java"},{"taskPath":":firebase-ml-modeldownloader:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/ModelDownloaderComponent.java"},{"taskPath":":firebase-ml-modeldownloader:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-messaging/src/main/java/com/google/firebase/messaging/SyncTask.java"},{"taskPath":":firebase-messaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-messaging/src/main/java/com/google/firebase/messaging/SyncTask.java"},{"taskPath":":firebase-messaging:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java"},{"taskPath":":firebase-perf:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Some input files use or override a deprecated API."}],"contextualLabel":"Some input files use or override a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-plural","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/firebase-perf/src/main/java/com/google/firebase/perf/metrics/AppStartTrace.java"},{"taskPath":":firebase-perf:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/NetworkClient.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/StorageHelper.java"},{"taskPath":":appcheck:firebase-appcheck:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-debug:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug/src/main/java/com/google/firebase/appcheck/debug/internal/DebugAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-debug:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java"},{"taskPath":":appcheck:firebase-appcheck-debug-testing:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java uses unchecked or unsafe operations."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java uses unchecked or unsafe operations.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-debug-testing/src/main/java/com/google/firebase/appcheck/debug/testing/DebugAppCheckTestHelper.java"},{"taskPath":":appcheck:firebase-appcheck-debug-testing:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:unchecked for details."}],"contextualLabel":"Recompile with -Xlint:unchecked for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-unchecked-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-playintegrity:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-playintegrity/src/main/java/com/google/firebase/appcheck/playintegrity/internal/PlayIntegrityAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-playintegrity:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-recaptchaenterprise:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: /home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java uses or overrides a deprecated API."}],"contextualLabel":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java uses or overrides a deprecated API.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-filename","displayName":"Java compilation note"}]},{"locations":[{"path":"/home/runner/work/firebase-android-sdk/firebase-android-sdk/appcheck/firebase-appcheck-recaptchaenterprise/src/main/java/com/google/firebase/appcheck/recaptchaenterprise/internal/RecaptchaEnterpriseAppCheckProvider.java"},{"taskPath":":appcheck:firebase-appcheck-recaptchaenterprise:compileReleaseJavaWithJavac"}],"problem":[{"text":"Java compilation note"}],"severity":"ADVICE","problemDetails":[{"text":"Note: Recompile with -Xlint:deprecation for details."}],"contextualLabel":"Recompile with -Xlint:deprecation for details.","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler-note-deprecated-recompile","displayName":"Java compilation note"}]}],"problemsReport":{"totalProblemCount":75,"buildName":"com.google.firebase","requestedTasks":"kotlindoc","documentationLink":"https://docs.gradle.org/8.13/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"count":4}]}}
// end-report-data
);}
</script> |
Generated by 🚫 Danger |
Coverage Report 1Affected ProductsNo changes between base commit (264ebad) and merge commit (3d18df6).Test Logs |
The public api surface has changed for the subproject firebase-ai: 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. |
The public api surface has changed for the subproject firebase-ai: 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. |
Size Report 1Affected Products
Test Logs |
The public api surface has changed for the subproject firebase-ai: 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. |
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds support for audio transcription in the Live API. It introduces AudioTranscriptionConfig
and Transcription
types, and updates LiveGenerationConfig
, LiveSession
, and LiveServerMessage
to handle transcription. The changes are mostly well-implemented, but I've identified a critical bug in LiveSession.kt
where some startAudioConversation
overloads could lead to infinite recursion. Additionally, there are some minor typos in method names within LiveGenerationConfig.kt
and the corresponding api.txt
file that should be corrected for consistency.
firebase-ai/src/main/kotlin/com/google/firebase/ai/type/LiveGenerationConfig.kt
Outdated
Show resolved
Hide resolved
firebase-ai/src/main/kotlin/com/google/firebase/ai/java/LiveSessionFutures.kt
Outdated
Show resolved
Hide resolved
firebase-ai/src/main/kotlin/com/google/firebase/ai/type/AudioTranscriptionConfig.kt
Outdated
Show resolved
Hide resolved
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces transcription capabilities to the Live API, a significant and well-implemented feature. The changes include adding AudioTranscriptionConfig
and the Transcription
type, along with new overloads for startAudioConversation
in both LiveSession
and LiveSessionFutures
to handle a transcriptHandler
callback. The internal messaging system has also been updated to support transcription configuration and data. The overall implementation is solid and aligns with the existing codebase patterns. I have one minor suggestion to improve documentation clarity.
Uh oh!
There was an error while loading. Please reload this page.