diff --git a/ai-logic/firebase-ai-ondevice/src/main/kotlin/com/google/firebase/ai/ondevice/Converters.kt b/ai-logic/firebase-ai-ondevice/src/main/kotlin/com/google/firebase/ai/ondevice/Converters.kt index ef615423857..fb5c885ca28 100644 --- a/ai-logic/firebase-ai-ondevice/src/main/kotlin/com/google/firebase/ai/ondevice/Converters.kt +++ b/ai-logic/firebase-ai-ondevice/src/main/kotlin/com/google/firebase/ai/ondevice/Converters.kt @@ -16,7 +16,6 @@ package com.google.firebase.ai.ondevice -import android.graphics.Bitmap import com.google.firebase.ai.ondevice.interop.Candidate import com.google.firebase.ai.ondevice.interop.CountTokensResponse import com.google.firebase.ai.ondevice.interop.FinishReason @@ -25,7 +24,6 @@ import com.google.firebase.ai.ondevice.interop.GenerateContentResponse import com.google.mlkit.genai.prompt.GenerateContentRequest import com.google.mlkit.genai.prompt.ImagePart import com.google.mlkit.genai.prompt.TextPart -import kotlin.math.min // ==================================== // `Part` converter extension functions @@ -33,7 +31,7 @@ import kotlin.math.min internal fun com.google.firebase.ai.ondevice.interop.TextPart.toMlKit(): TextPart = TextPart(text) internal fun com.google.firebase.ai.ondevice.interop.ImagePart.toMlKit(): ImagePart = - ImagePart(downsizeBitmapIfNeeded(bitmap)) + ImagePart(bitmap) // ============================================ // `CountTokens*` converter extension functions @@ -89,24 +87,3 @@ private fun generateContentRequest( builder.init() return builder.build() } - -private fun downsizeBitmapIfNeeded(bitmap: Bitmap): Bitmap { - val IMAGE_SHORTER_DIMENSION_MAX_VALUE: Int = 768 - val width = bitmap.width - val height = bitmap.height - val shorterDimension: Int = min(width, height) - if (shorterDimension <= IMAGE_SHORTER_DIMENSION_MAX_VALUE) { - return bitmap - } - - val scaleFactor = (IMAGE_SHORTER_DIMENSION_MAX_VALUE.toDouble()) / shorterDimension - - val newWidth = (width * scaleFactor).toInt() - val newHeight = (height * scaleFactor).toInt() - - val resizedBitmap = Bitmap.createScaledBitmap(bitmap, newWidth, newHeight, /* filter= */ false) - if (resizedBitmap != bitmap) { - bitmap.recycle() - } - return resizedBitmap -} diff --git a/build.gradle.kts b/build.gradle.kts index 3dccea32af8..6ff7b3d66d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -22,6 +22,7 @@ plugins { alias(libs.plugins.protobuf) apply false alias(libs.plugins.errorprone) alias(libs.plugins.crashlytics) apply false + id("org.jetbrains.kotlin.android") version "2.1.21" apply false id("PublishingPlugin") id("test-report") id("firebase-ci") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a3ebcfabb78..5d4845cd5f3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ firebaseAnnotations = "17.0.0" firebaseCommon = "22.0.1" firebaseComponents = "19.0.0" firebaseCrashlyticsGradle = "3.0.4" -genaiPrompt = "1.0.0-alpha1" +genaiPrompt = "1.0.0-beta1" glide = "5.0.5" googleApiClient = "2.8.1" googleServices = "4.3.15" diff --git a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseAndroidLibraryPlugin.kt b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseAndroidLibraryPlugin.kt index f2f898e9331..5060538a4f9 100644 --- a/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseAndroidLibraryPlugin.kt +++ b/plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseAndroidLibraryPlugin.kt @@ -30,6 +30,9 @@ import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion +import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile /** @@ -58,6 +61,14 @@ class FirebaseAndroidLibraryPlugin : BaseFirebaseLibraryPlugin() { project.tasks.withType { kotlinOptions.freeCompilerArgs = listOf("-module-name", kotlinModuleName(project)) kotlinOptions.jvmTarget = "1.8" + kotlinOptions.languageVersion = KotlinVersion.KOTLIN_2_0.version + } + + project.afterEvaluate { + val kotlinExtension = project.extensions.findByType(KotlinProjectExtension::class.java) + if (kotlinExtension != null) { + kotlinExtension.coreLibrariesVersion = "2.0.21" + } } project.apply()