Skip to content

Commit facba15

Browse files
authored
Merge branch 'main' into dependabot/gradle/com.google.guava-guava-33.5.0-jre
2 parents ffd9de1 + e9ce620 commit facba15

File tree

32 files changed

+370
-317
lines changed

32 files changed

+370
-317
lines changed

.github/workflows/changelog.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ jobs:
1717
with:
1818
fetch-depth: 100
1919
submodules: true
20-
- uses: ruby/setup-ruby@1a615958ad9d422dd932dc1d5823942ee002799f # v1.227.0
20+
- uses: ruby/setup-ruby@0481980f17b760ef6bca5e8c55809102a0af1e5a # v1.263.0
2121
with:
22-
ruby-version: '2.7'
22+
ruby-version: '3.4'
2323
- name: Setup Bundler
2424
run: ./ci/danger/setup_bundler.sh
2525
- name: Danger CHANGELOG verifier

.github/workflows/dataconnect.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ env:
3434
FDC_JAVA_VERSION: ${{ inputs.javaVersion || '17' }}
3535
FDC_ANDROID_EMULATOR_API_LEVEL: ${{ inputs.androidEmulatorApiLevel || '34' }}
3636
FDC_NODEJS_VERSION: ${{ inputs.nodeJsVersion || '20' }}
37-
FDC_FIREBASE_TOOLS_VERSION: ${{ inputs.firebaseToolsVersion || '14.16.0' }}
37+
FDC_FIREBASE_TOOLS_VERSION: ${{ inputs.firebaseToolsVersion || '14.18.0' }}
3838
FDC_FIREBASE_TOOLS_DIR: /tmp/firebase-tools
3939
FDC_FIREBASE_COMMAND: /tmp/firebase-tools/node_modules/.bin/firebase
4040
FDC_PYTHON_VERSION: ${{ inputs.pythonVersion || '3.13' }}

.github/workflows/dataconnect_demo_app.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ on:
1818

1919
env:
2020
FDC_NODE_VERSION: ${{ inputs.nodeVersion || '20' }}
21-
FDC_FIREBASE_TOOLS_VERSION: ${{ inputs.firebaseToolsVersion || '14.16.0' }}
21+
FDC_FIREBASE_TOOLS_VERSION: ${{ inputs.firebaseToolsVersion || '14.18.0' }}
2222
FDC_JAVA_VERSION: ${{ inputs.javaVersion || '17' }}
2323
FDC_FIREBASE_TOOLS_DIR: ${{ github.workspace }}/firebase-tools
2424
FDC_FIREBASE_COMMAND: ${{ github.workspace }}/firebase-tools/node_modules/.bin/firebase

ci/danger/Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# commit Gemfile and Gemfile.lock.
33
source 'https://rubygems.org'
44

5-
gem 'danger', '8.4.5'
5+
gem 'danger', '9.5.3'

ci/danger/Gemfile.lock

Lines changed: 67 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,102 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
addressable (2.8.1)
5-
public_suffix (>= 2.0.2, < 6.0)
4+
activesupport (8.0.3)
5+
base64
6+
benchmark (>= 0.3)
7+
bigdecimal
8+
concurrent-ruby (~> 1.0, >= 1.3.1)
9+
connection_pool (>= 2.2.5)
10+
drb
11+
i18n (>= 1.6, < 2)
12+
logger (>= 1.4.2)
13+
minitest (>= 5.1)
14+
securerandom (>= 0.3)
15+
tzinfo (~> 2.0, >= 2.0.5)
16+
uri (>= 0.13.1)
17+
addressable (2.8.7)
18+
public_suffix (>= 2.0.2, < 7.0)
19+
base64 (0.3.0)
20+
benchmark (0.4.1)
21+
bigdecimal (3.3.0)
622
claide (1.1.0)
723
claide-plugins (0.9.2)
824
cork
925
nap
1026
open4 (~> 1.3)
1127
colored2 (3.1.2)
28+
concurrent-ruby (1.3.5)
29+
connection_pool (2.5.4)
1230
cork (0.3.0)
1331
colored2 (~> 3.1)
14-
danger (8.4.5)
32+
danger (9.5.3)
33+
base64 (~> 0.2)
1534
claide (~> 1.0)
1635
claide-plugins (>= 0.9.2)
17-
colored2 (~> 3.1)
36+
colored2 (>= 3.1, < 5)
1837
cork (~> 0.1)
19-
faraday (>= 0.9.0, < 2.0)
38+
faraday (>= 0.9.0, < 3.0)
2039
faraday-http-cache (~> 2.0)
21-
git (~> 1.7)
22-
kramdown (~> 2.3)
40+
git (>= 1.13, < 3.0)
41+
kramdown (>= 2.5.1, < 3.0)
2342
kramdown-parser-gfm (~> 1.0)
24-
no_proxy_fix
25-
octokit (~> 4.7)
26-
terminal-table (>= 1, < 4)
27-
faraday (1.10.1)
28-
faraday-em_http (~> 1.0)
29-
faraday-em_synchrony (~> 1.0)
30-
faraday-excon (~> 1.1)
31-
faraday-httpclient (~> 1.0)
32-
faraday-multipart (~> 1.0)
33-
faraday-net_http (~> 1.0)
34-
faraday-net_http_persistent (~> 1.0)
35-
faraday-patron (~> 1.0)
36-
faraday-rack (~> 1.0)
37-
faraday-retry (~> 1.0)
38-
ruby2_keywords (>= 0.0.4)
39-
faraday-em_http (1.0.0)
40-
faraday-em_synchrony (1.0.0)
41-
faraday-excon (1.1.0)
42-
faraday-http-cache (2.4.1)
43+
octokit (>= 4.0)
44+
pstore (~> 0.1)
45+
terminal-table (>= 1, < 5)
46+
drb (2.2.3)
47+
faraday (2.14.0)
48+
faraday-net_http (>= 2.0, < 3.5)
49+
json
50+
logger
51+
faraday-http-cache (2.5.1)
4352
faraday (>= 0.8)
44-
faraday-httpclient (1.0.1)
45-
faraday-multipart (1.0.4)
46-
multipart-post (~> 2)
47-
faraday-net_http (1.0.1)
48-
faraday-net_http_persistent (1.2.0)
49-
faraday-patron (1.0.0)
50-
faraday-rack (1.0.0)
51-
faraday-retry (1.0.3)
52-
git (1.13.1)
53+
faraday-net_http (3.4.1)
54+
net-http (>= 0.5.0)
55+
git (2.3.3)
56+
activesupport (>= 5.0)
5357
addressable (~> 2.8)
58+
process_executer (~> 1.1)
5459
rchardet (~> 1.8)
55-
kramdown (2.4.0)
56-
rexml
60+
i18n (1.14.7)
61+
concurrent-ruby (~> 1.0)
62+
json (2.15.1)
63+
kramdown (2.5.1)
64+
rexml (>= 3.3.9)
5765
kramdown-parser-gfm (1.1.0)
5866
kramdown (~> 2.0)
59-
multipart-post (2.2.3)
67+
logger (1.7.0)
68+
minitest (5.25.5)
6069
nap (1.1.0)
61-
no_proxy_fix (0.1.2)
62-
octokit (4.25.1)
70+
net-http (0.6.0)
71+
uri
72+
octokit (10.0.0)
6373
faraday (>= 1, < 3)
6474
sawyer (~> 0.9)
6575
open4 (1.3.4)
66-
public_suffix (5.0.1)
67-
rchardet (1.8.0)
68-
rexml (3.2.8)
69-
strscan (>= 3.0.9)
70-
ruby2_keywords (0.0.5)
76+
process_executer (1.3.0)
77+
pstore (0.2.0)
78+
public_suffix (6.0.2)
79+
rchardet (1.10.0)
80+
rexml (3.4.4)
7181
sawyer (0.9.2)
7282
addressable (>= 2.3.5)
7383
faraday (>= 0.17.3, < 3)
74-
strscan (3.1.0)
75-
terminal-table (3.0.2)
76-
unicode-display_width (>= 1.1.1, < 3)
77-
unicode-display_width (2.2.0)
84+
securerandom (0.4.1)
85+
terminal-table (4.0.0)
86+
unicode-display_width (>= 1.1.1, < 4)
87+
tzinfo (2.0.6)
88+
concurrent-ruby (~> 1.0)
89+
unicode-display_width (3.2.0)
90+
unicode-emoji (~> 4.1)
91+
unicode-emoji (4.1.0)
92+
uri (1.0.4)
7893

7994
PLATFORMS
95+
arm64-darwin-24
8096
ruby
8197

8298
DEPENDENCIES
83-
danger (= 8.4.5)
99+
danger (= 9.5.3)
84100

85101
BUNDLED WITH
86-
1.17.2
102+
2.7.2

firebase-ai/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Unreleased
22

33
- [changed] **Breaking Change**: Removed the `candidateCount` option from `LiveGenerationConfig`
4+
- [changed] Added support for user interrupts for the `startAudioConversation` method in the
5+
`LiveSession` class. (#7413)
46
- [changed] Added support for the URL context tool, which allows the model to access content from
57
provided public web URLs to inform and enhance its responses. (#7382)
68
- [changed] Added better error messages to `ServiceConnectionHandshakeFailedException` (#7412)

firebase-ai/api.txt

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ package com.google.firebase.ai {
2727
method public static com.google.firebase.ai.FirebaseAI getInstance(com.google.firebase.FirebaseApp app);
2828
method public static com.google.firebase.ai.FirebaseAI getInstance(com.google.firebase.FirebaseApp app = Firebase.app, com.google.firebase.ai.type.GenerativeBackend backend);
2929
method public static com.google.firebase.ai.FirebaseAI getInstance(com.google.firebase.FirebaseApp app = Firebase.app, com.google.firebase.ai.type.GenerativeBackend backend, boolean useLimitedUseAppCheckTokens);
30-
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.ImagenModel imagenModel(String modelName);
31-
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.ImagenModel imagenModel(String modelName, com.google.firebase.ai.type.ImagenGenerationConfig? generationConfig = null);
32-
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.ImagenModel imagenModel(String modelName, com.google.firebase.ai.type.ImagenGenerationConfig? generationConfig = null, com.google.firebase.ai.type.ImagenSafetySettings? safetySettings = null);
33-
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.ImagenModel imagenModel(String modelName, com.google.firebase.ai.type.ImagenGenerationConfig? generationConfig = null, com.google.firebase.ai.type.ImagenSafetySettings? safetySettings = null, com.google.firebase.ai.type.RequestOptions requestOptions = com.google.firebase.ai.type.RequestOptions());
30+
method public com.google.firebase.ai.ImagenModel imagenModel(String modelName);
31+
method public com.google.firebase.ai.ImagenModel imagenModel(String modelName, com.google.firebase.ai.type.ImagenGenerationConfig? generationConfig = null);
32+
method public com.google.firebase.ai.ImagenModel imagenModel(String modelName, com.google.firebase.ai.type.ImagenGenerationConfig? generationConfig = null, com.google.firebase.ai.type.ImagenSafetySettings? safetySettings = null);
33+
method public com.google.firebase.ai.ImagenModel imagenModel(String modelName, com.google.firebase.ai.type.ImagenGenerationConfig? generationConfig = null, com.google.firebase.ai.type.ImagenSafetySettings? safetySettings = null, com.google.firebase.ai.type.RequestOptions requestOptions = com.google.firebase.ai.type.RequestOptions());
3434
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.LiveGenerativeModel liveModel(String modelName);
3535
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.LiveGenerativeModel liveModel(String modelName, com.google.firebase.ai.type.LiveGenerationConfig? generationConfig = null);
3636
method @com.google.firebase.ai.type.PublicPreviewAPI public com.google.firebase.ai.LiveGenerativeModel liveModel(String modelName, com.google.firebase.ai.type.LiveGenerationConfig? generationConfig = null, java.util.List<com.google.firebase.ai.type.Tool>? tools = null);
@@ -72,11 +72,11 @@ package com.google.firebase.ai {
7272
method public com.google.firebase.ai.Chat startChat(java.util.List<com.google.firebase.ai.type.Content> history = emptyList());
7373
}
7474

75-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenModel {
76-
method public suspend Object? editImage(java.util.List<? extends com.google.firebase.ai.type.ImagenReferenceImage> referenceImages, String prompt, com.google.firebase.ai.type.ImagenEditingConfig? config = null, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
75+
public final class ImagenModel {
76+
method @com.google.firebase.ai.type.PublicPreviewAPI public suspend Object? editImage(java.util.List<? extends com.google.firebase.ai.type.ImagenReferenceImage> referenceImages, String prompt, com.google.firebase.ai.type.ImagenEditingConfig? config = null, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
7777
method public suspend Object? generateImages(String prompt, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
78-
method public suspend Object? inpaintImage(com.google.firebase.ai.type.ImagenInlineImage image, String prompt, com.google.firebase.ai.type.ImagenMaskReference mask, com.google.firebase.ai.type.ImagenEditingConfig config, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
79-
method public suspend Object? outpaintImage(com.google.firebase.ai.type.ImagenInlineImage image, com.google.firebase.ai.type.Dimensions newDimensions, com.google.firebase.ai.type.ImagenImagePlacement newPosition = com.google.firebase.ai.type.ImagenImagePlacement.CENTER, String prompt = "", com.google.firebase.ai.type.ImagenEditingConfig? config = null, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
78+
method @com.google.firebase.ai.type.PublicPreviewAPI public suspend Object? inpaintImage(com.google.firebase.ai.type.ImagenInlineImage image, String prompt, com.google.firebase.ai.type.ImagenMaskReference mask, com.google.firebase.ai.type.ImagenEditingConfig config, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
79+
method @com.google.firebase.ai.type.PublicPreviewAPI public suspend Object? outpaintImage(com.google.firebase.ai.type.ImagenInlineImage image, com.google.firebase.ai.type.Dimensions newDimensions, com.google.firebase.ai.type.ImagenImagePlacement newPosition = com.google.firebase.ai.type.ImagenImagePlacement.CENTER, String prompt = "", com.google.firebase.ai.type.ImagenEditingConfig? config = null, kotlin.coroutines.Continuation<? super com.google.firebase.ai.type.ImagenGenerationResponse<com.google.firebase.ai.type.ImagenInlineImage>>);
8080
}
8181

8282
@com.google.firebase.ai.type.PublicPreviewAPI public final class LiveGenerativeModel {
@@ -148,7 +148,9 @@ package com.google.firebase.ai.java {
148148
method public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> sendFunctionResponse(java.util.List<com.google.firebase.ai.type.FunctionResponsePart> functionList);
149149
method public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> sendMediaStream(java.util.List<com.google.firebase.ai.type.MediaData> mediaChunks);
150150
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> startAudioConversation();
151-
method public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> startAudioConversation(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.FunctionCallPart,com.google.firebase.ai.type.FunctionResponsePart>? functionCallHandler);
151+
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> startAudioConversation(boolean enableInterruptions);
152+
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> startAudioConversation(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.FunctionCallPart,com.google.firebase.ai.type.FunctionResponsePart>? functionCallHandler);
153+
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> startAudioConversation(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.FunctionCallPart,com.google.firebase.ai.type.FunctionResponsePart>? functionCallHandler, boolean enableInterruptions);
152154
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public abstract com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> stopAudioConversation();
153155
method public abstract void stopReceiving();
154156
field public static final com.google.firebase.ai.java.LiveSessionFutures.Companion Companion;
@@ -581,7 +583,7 @@ package com.google.firebase.ai.type {
581583
property public boolean isThought;
582584
}
583585

584-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenAspectRatio {
586+
public final class ImagenAspectRatio {
585587
field public static final com.google.firebase.ai.type.ImagenAspectRatio.Companion Companion;
586588
field public static final com.google.firebase.ai.type.ImagenAspectRatio LANDSCAPE_16x9;
587589
field public static final com.google.firebase.ai.type.ImagenAspectRatio LANDSCAPE_4x3;
@@ -630,7 +632,7 @@ package com.google.firebase.ai.type {
630632
ctor public ImagenForegroundMask(Double? dilation = null);
631633
}
632634

633-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenGenerationConfig {
635+
public final class ImagenGenerationConfig {
634636
ctor public ImagenGenerationConfig(String? negativePrompt = null, Integer? numberOfImages = 1, com.google.firebase.ai.type.ImagenAspectRatio? aspectRatio = null, com.google.firebase.ai.type.ImagenImageFormat? imageFormat = null, Boolean? addWatermark = null);
635637
method public Boolean? getAddWatermark();
636638
method public com.google.firebase.ai.type.ImagenAspectRatio? getAspectRatio();
@@ -665,17 +667,17 @@ package com.google.firebase.ai.type {
665667
}
666668

667669
public final class ImagenGenerationConfigKt {
668-
method @com.google.firebase.ai.type.PublicPreviewAPI public static com.google.firebase.ai.type.ImagenGenerationConfig imagenGenerationConfig(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.ImagenGenerationConfig.Builder,kotlin.Unit> init);
670+
method public static com.google.firebase.ai.type.ImagenGenerationConfig imagenGenerationConfig(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.ImagenGenerationConfig.Builder,kotlin.Unit> init);
669671
}
670672

671-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenGenerationResponse<T> {
673+
public final class ImagenGenerationResponse<T> {
672674
method public String? getFilteredReason();
673675
method public java.util.List<T> getImages();
674676
property public final String? filteredReason;
675677
property public final java.util.List<T> images;
676678
}
677679

678-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenImageFormat {
680+
public final class ImagenImageFormat {
679681
method public Integer? getCompressionQuality();
680682
method public String getMimeType();
681683
method public static com.google.firebase.ai.type.ImagenImageFormat jpeg(Integer? compressionQuality = null);
@@ -712,7 +714,7 @@ package com.google.firebase.ai.type {
712714
method public com.google.firebase.ai.type.ImagenImagePlacement fromCoordinate(int x, int y);
713715
}
714716

715-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenInlineImage {
717+
public final class ImagenInlineImage {
716718
method public android.graphics.Bitmap asBitmap();
717719
method public byte[] getData();
718720
method public String getMimeType();
@@ -737,7 +739,7 @@ package com.google.firebase.ai.type {
737739
method public java.util.List<com.google.firebase.ai.type.ImagenReferenceImage> generateMaskAndPadForOutpainting(com.google.firebase.ai.type.ImagenInlineImage image, com.google.firebase.ai.type.Dimensions newDimensions, com.google.firebase.ai.type.ImagenImagePlacement newPosition = com.google.firebase.ai.type.ImagenImagePlacement.CENTER, double dilation = 0.01);
738740
}
739741

740-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenPersonFilterLevel {
742+
public final class ImagenPersonFilterLevel {
741743
field public static final com.google.firebase.ai.type.ImagenPersonFilterLevel ALLOW_ADULT;
742744
field public static final com.google.firebase.ai.type.ImagenPersonFilterLevel ALLOW_ALL;
743745
field public static final com.google.firebase.ai.type.ImagenPersonFilterLevel BLOCK_ALL;
@@ -762,7 +764,7 @@ package com.google.firebase.ai.type {
762764
property public final Integer? referenceId;
763765
}
764766

765-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenSafetyFilterLevel {
767+
public final class ImagenSafetyFilterLevel {
766768
field public static final com.google.firebase.ai.type.ImagenSafetyFilterLevel BLOCK_LOW_AND_ABOVE;
767769
field public static final com.google.firebase.ai.type.ImagenSafetyFilterLevel BLOCK_MEDIUM_AND_ABOVE;
768770
field public static final com.google.firebase.ai.type.ImagenSafetyFilterLevel BLOCK_NONE;
@@ -773,7 +775,7 @@ package com.google.firebase.ai.type {
773775
public static final class ImagenSafetyFilterLevel.Companion {
774776
}
775777

776-
@com.google.firebase.ai.type.PublicPreviewAPI public final class ImagenSafetySettings {
778+
public final class ImagenSafetySettings {
777779
ctor public ImagenSafetySettings(com.google.firebase.ai.type.ImagenSafetyFilterLevel safetyFilterLevel, com.google.firebase.ai.type.ImagenPersonFilterLevel personFilterLevel);
778780
}
779781

@@ -891,6 +893,7 @@ package com.google.firebase.ai.type {
891893
method public suspend Object? send(String text, kotlin.coroutines.Continuation<? super kotlin.Unit>);
892894
method public suspend Object? sendFunctionResponse(java.util.List<com.google.firebase.ai.type.FunctionResponsePart> functionList, kotlin.coroutines.Continuation<? super kotlin.Unit>);
893895
method public suspend Object? sendMediaStream(java.util.List<com.google.firebase.ai.type.MediaData> mediaChunks, kotlin.coroutines.Continuation<? super kotlin.Unit>);
896+
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public suspend Object? startAudioConversation(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.FunctionCallPart,com.google.firebase.ai.type.FunctionResponsePart>? functionCallHandler = null, boolean enableInterruptions = false, kotlin.coroutines.Continuation<? super kotlin.Unit>);
894897
method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public suspend Object? startAudioConversation(kotlin.jvm.functions.Function1<? super com.google.firebase.ai.type.FunctionCallPart,com.google.firebase.ai.type.FunctionResponsePart>? functionCallHandler = null, kotlin.coroutines.Continuation<? super kotlin.Unit>);
895898
method public void stopAudioConversation();
896899
method public void stopReceiving();

0 commit comments

Comments
 (0)