Skip to content

Commit c530e0a

Browse files
JolandaVerhoefgithub-actions[bot]
authored andcommitted
🤖 Apply Spotless formatting
1 parent 5238b3d commit c530e0a

File tree

9 files changed

+39
-48
lines changed

9 files changed

+39
-48
lines changed

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateAccountTags.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import androidx.compose.material3.Text
2828
import androidx.compose.runtime.Composable
2929
import androidx.compose.ui.platform.LocalContext
3030
import androidx.compose.ui.unit.dp
31+
import androidx.core.net.toUri
3132
import com.google.firebase.Firebase
3233
import com.google.firebase.ai.ai
3334
import com.google.firebase.ai.type.GenerateContentResponse
@@ -37,7 +38,6 @@ import com.google.firebase.ai.type.content
3738
import com.google.firebase.ai.type.generationConfig
3839
import kotlinx.serialization.Serializable
3940
import kotlinx.serialization.json.Json
40-
import androidx.core.net.toUri
4141

4242
typealias AccountTags = List<AccountTag>
4343

@@ -126,7 +126,7 @@ private fun ErrorText(blockReasonMessage: String?) {
126126
"""
127127
There was a problem generating the description. Here is some information that might help you debug:
128128
Block reason message: $blockReasonMessage
129-
""".trimIndent(),
129+
""".trimIndent(),
130130
color = MaterialTheme.colorScheme.error,
131131
)
132-
}
132+
}

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateChapters.kt

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import androidx.compose.ui.tooling.preview.Preview
3535
import androidx.compose.ui.unit.dp
3636
import com.google.firebase.Firebase
3737
import com.google.firebase.ai.ai
38-
import com.google.firebase.ai.type.GenerateContentResponse
3938
import com.google.firebase.ai.type.GenerativeBackend
4039
import com.google.firebase.ai.type.PromptFeedback
4140
import com.google.firebase.ai.type.Schema
@@ -90,10 +89,7 @@ private val chaptersModel = Firebase.ai(backend = GenerativeBackend.vertexAI())
9089
* @return A Composable function that displays either the chapters UI or an
9190
* error message.
9291
*/
93-
suspend fun generateChapters(
94-
videoUri: Uri,
95-
onChapterClicked: (timestamp: Long) -> Unit
96-
): @Composable () -> Unit {
92+
suspend fun generateChapters(videoUri: Uri, onChapterClicked: (timestamp: Long) -> Unit): @Composable () -> Unit {
9793

9894
// Execute the model call with our custom prompt
9995
var promptFeedback: PromptFeedback? = null
@@ -106,11 +102,11 @@ suspend fun generateChapters(
106102
Analyze the video and create a list of around 3-7 chapters with timestamps and descriptive titles (of max 3 words).
107103
Each chapter should be at least 10 seconds long.
108104
Make sure to evenly divide the chapters over the video.
109-
""".trimIndent(),
105+
""".trimIndent(),
110106
)
111107
},
112108
).collect { response ->
113-
if(response.promptFeedback != null) promptFeedback = response.promptFeedback
109+
if (response.promptFeedback != null) promptFeedback = response.promptFeedback
114110
outputStringBuilder.append(response.text)
115111
}
116112
val responseText = outputStringBuilder.toString()
@@ -123,7 +119,7 @@ suspend fun generateChapters(
123119
// Failure - display an error text
124120
return {
125121
ErrorText(
126-
promptFeedback?.blockReasonMessage
122+
promptFeedback?.blockReasonMessage,
127123
)
128124
}
129125
}
@@ -164,14 +160,13 @@ private fun ChaptersUiPreview() {
164160
ChaptersUi(chapters = chapters, onChapterClicked = {})
165161
}
166162

167-
168163
@Composable
169164
private fun ErrorText(blockReasonMessage: String?) {
170165
Text(
171166
"""
172167
There was a problem generating the description. Here is some information that might help you debug:
173168
Block reason message: $blockReasonMessage
174-
""".trimIndent(),
169+
""".trimIndent(),
175170
color = MaterialTheme.colorScheme.error,
176171
)
177-
}
172+
}

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateDescription.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import com.google.firebase.ai.type.content
2828

2929
suspend fun generateDescription(videoUri: Uri): @Composable () -> Unit {
3030
val response = Firebase.ai(backend = GenerativeBackend.vertexAI())
31-
.generativeModel(modelName = "gemini-2.5-flash",)
31+
.generativeModel(modelName = "gemini-2.5-flash")
3232
.generateContent(
3333
content {
3434
fileData(videoUri.toString(), "video/mp4")
@@ -61,4 +61,4 @@ suspend fun generateDescription(videoUri: Uri): @Composable () -> Unit {
6161
)
6262
}
6363
}
64-
}
64+
}

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateHashtags.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ private val hashtagsModel = Firebase.ai(backend = GenerativeBackend.vertexAI())
4141
generationConfig {
4242
responseMimeType = "application/json"
4343
responseSchema = Schema.array(items = Schema.string("Hashtag"))
44-
}
44+
},
4545
)
4646

4747
/**
@@ -76,7 +76,7 @@ suspend fun generateHashtags(videoUri: Uri): @Composable () -> Unit {
7676
val hashtags: List<String> = Json.decodeFromString(responseText)
7777
return { HashtagsUi(hashtags) }
7878
} catch (e: Exception) {
79-
return { ErrorText("The model returned invalid data. Debug info: ${e.message}")}
79+
return { ErrorText("The model returned invalid data. Debug info: ${e.message}") }
8080
}
8181
} else {
8282
// Failure - display an error text
@@ -106,7 +106,7 @@ private fun ErrorText(blockReasonMessage: String?) {
106106
"""
107107
There was a problem generating the description. Here is some information that might help you debug:
108108
Block reason message: $blockReasonMessage
109-
""".trimIndent(),
110-
color = MaterialTheme.colorScheme.error
109+
""".trimIndent(),
110+
color = MaterialTheme.colorScheme.error,
111111
)
112-
}
112+
}

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateLinks.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,9 @@ import android.net.Uri
2020
import androidx.compose.foundation.clickable
2121
import androidx.compose.foundation.layout.Arrangement
2222
import androidx.compose.foundation.layout.Column
23-
import androidx.compose.foundation.layout.FlowRow
24-
import androidx.compose.material3.AssistChip
2523
import androidx.compose.material3.MaterialTheme
2624
import androidx.compose.material3.Text
2725
import androidx.compose.runtime.Composable
28-
import androidx.compose.ui.Alignment
2926
import androidx.compose.ui.Modifier
3027
import androidx.compose.ui.platform.LocalContext
3128
import androidx.compose.ui.text.style.TextDecoration
@@ -104,7 +101,7 @@ private fun LinksUi(links: List<String>) {
104101
modifier = Modifier.clickable {
105102
val browserIntent = Intent(Intent.ACTION_VIEW, link.toUri())
106103
context.startActivity(browserIntent)
107-
}
104+
},
108105
)
109106
}
110107
}
@@ -116,7 +113,7 @@ private fun ErrorText(blockReasonMessage: String?) {
116113
"""
117114
There was a problem generating the description. Here is some information that might help you debug:
118115
Block reason message: $blockReasonMessage
119-
""".trimIndent(),
116+
""".trimIndent(),
120117
color = MaterialTheme.colorScheme.error,
121118
)
122-
}
119+
}

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/GenerateThumbnails.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private val thumbnailsModel = Firebase.ai(backend = GenerativeBackend.vertexAI()
5353
generationConfig {
5454
responseMimeType = "application/json"
5555
responseSchema = Schema.array(items = Schema.long("thumbnail timestamp in milliseconds"))
56-
}
56+
},
5757
)
5858

5959
suspend fun generateThumbnails(videoUri: Uri, context: Context): @Composable () -> Unit {
@@ -79,7 +79,7 @@ suspend fun generateThumbnails(videoUri: Uri, context: Context): @Composable ()
7979
val thumbnailBitmaps = extractListOfThumbnails(context, videoUri, thumbnails)
8080
return { ThumbnailsUi(thumbnails, thumbnailBitmaps) }
8181
} catch (e: Exception) {
82-
return { ErrorText("The model returned invalid data. Debug info: ${e.message}")}
82+
return { ErrorText("The model returned invalid data. Debug info: ${e.message}") }
8383
}
8484
} else {
8585
// Failure - display an error text
@@ -115,7 +115,7 @@ private fun ErrorText(blockReasonMessage: String?) {
115115
"""
116116
There was a problem generating the description. Here is some information that might help you debug:
117117
Block reason message: $blockReasonMessage
118-
""".trimIndent(),
119-
color = MaterialTheme.colorScheme.error
118+
""".trimIndent(),
119+
color = MaterialTheme.colorScheme.error,
120120
)
121-
}
121+
}

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/VideoMetadataCreationScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ fun VideoMetadataCreationScreen(viewModel: VideoMetadataCreationViewModel = hilt
114114

115115
VideoPlayer(
116116
player = uiState.player,
117-
modifier = Modifier.aspectRatio(16f/9f)
117+
modifier = Modifier.aspectRatio(16f / 9f),
118118
)
119119

120120
MetadataCreationSection(

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/player/VideoPlayer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ fun VideoPlayer(player: Player?, modifier: Modifier = Modifier) {
7575
@OptIn(UnstableApi::class) // New Media3 Compose artifact is currently experimental
7676
@Composable
7777
fun PlayPauseButton(player: Player?, modifier: Modifier = Modifier) {
78-
if(player == null) return
78+
if (player == null) return
7979

8080
val state = rememberPlayPauseButtonState(player)
8181

‎ai-catalog/samples/gemini-video-metadata-creation/src/main/java/com/android/ai/samples/geminivideometadatacreation/viewmodel/VideoMetadataCreationViewModel.kt

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package com.android.ai.samples.geminivideometadatacreation.viewmodel
1818
import android.app.Application
1919
import android.graphics.Bitmap
2020
import android.net.Uri
21-
import android.util.Log
2221
import androidx.annotation.OptIn
2322
import androidx.compose.runtime.Composable
2423
import androidx.lifecycle.ViewModel
@@ -35,12 +34,12 @@ import com.android.ai.samples.geminivideometadatacreation.generateLinks
3534
import com.android.ai.samples.geminivideometadatacreation.generateThumbnails
3635
import com.android.ai.samples.geminivideometadatacreation.util.sampleVideoList
3736
import dagger.hilt.android.lifecycle.HiltViewModel
37+
import javax.inject.Inject
3838
import kotlinx.coroutines.flow.MutableStateFlow
3939
import kotlinx.coroutines.flow.StateFlow
4040
import kotlinx.coroutines.flow.asStateFlow
4141
import kotlinx.coroutines.flow.update
4242
import kotlinx.coroutines.launch
43-
import javax.inject.Inject
4443

4544
/**
4645
* ViewModel class responsible for handling video metadata creation using Gemini API.
@@ -50,8 +49,7 @@ import javax.inject.Inject
5049
* [StateFlow].
5150
*/
5251
@HiltViewModel
53-
class VideoMetadataCreationViewModel @Inject constructor(private val application: Application) :
54-
ViewModel() {
52+
class VideoMetadataCreationViewModel @Inject constructor(private val application: Application) : ViewModel() {
5553

5654
private val _uiState = MutableStateFlow(VideoMetadataCreationState())
5755
val uiState: StateFlow<VideoMetadataCreationState> = _uiState.asStateFlow()
@@ -69,10 +67,11 @@ class VideoMetadataCreationViewModel @Inject constructor(private val application
6967
MetadataType.THUMBNAILS -> generateThumbnails(videoUri, application)
7068
MetadataType.HASHTAGS -> generateHashtags(videoUri)
7169
MetadataType.ACCOUNT_TAGS -> generateAccountTags(videoUri)
72-
MetadataType.CHAPTERS -> generateChapters(videoUri,
73-
onChapterClicked = {
74-
timestamp -> uiState.value.player?.seekTo(timestamp)
75-
}
70+
MetadataType.CHAPTERS -> generateChapters(
71+
videoUri,
72+
onChapterClicked = { timestamp ->
73+
uiState.value.player?.seekTo(timestamp)
74+
},
7675
)
7776
MetadataType.LINKS -> generateLinks(videoUri)
7877
}
@@ -81,13 +80,12 @@ class VideoMetadataCreationViewModel @Inject constructor(private val application
8180
metadataCreationState = MetadataCreationState.Success(generatedUI),
8281
)
8382
}
84-
8583
} catch (e: Exception) {
8684
// If something went wrong, show an error
8785
_uiState.update {
8886
it.copy(
8987
metadataCreationState = MetadataCreationState.Error(
90-
e.localizedMessage ?: "An unknown error occurred"
88+
e.localizedMessage ?: "An unknown error occurred",
9189
),
9290
)
9391
}
@@ -101,17 +99,18 @@ class VideoMetadataCreationViewModel @Inject constructor(private val application
10199
player = ExoPlayer.Builder(application).build().apply {
102100
playWhenReady = true
103101
playVideo(this, uiState.value.selectedVideoUri)
104-
})
102+
},
103+
)
105104
}
106105
}
107106

108107
fun releasePlayer() {
109108
uiState.value.player?.release()
110109
_uiState.update { it.copy(player = null) }
111110
}
112-
111+
113112
private fun playVideo(player: Player?, uri: Uri?) {
114-
if(player == null || uri == null) return
113+
if (player == null || uri == null) return
115114
player.apply {
116115
setMediaItem(MediaItem.fromUri(uri))
117116
prepare()
@@ -171,5 +170,5 @@ data class VideoMetadataCreationState(
171170
val selectedVideoUri: Uri? = sampleVideoList.first().uri,
172171
val metadataCreationState: MetadataCreationState = MetadataCreationState.Idle,
173172
val selectedMetadataType: MetadataType? = null,
174-
val player: Player? = null
173+
val player: Player? = null,
175174
)

0 commit comments

Comments
 (0)