mirror of
https://github.com/google-ai-edge/gallery.git
synced 2025-07-04 21:50:36 -04:00
[gallery] add firebase integration
Some checks failed
Build Android APK / Build Android APK (push) Has been cancelled
Some checks failed
Build Android APK / Build Android APK (push) Has been cancelled
PiperOrigin-RevId: 778082730
This commit is contained in:
parent
323124a628
commit
d97e115993
6 changed files with 50 additions and 1 deletions
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.android.application)
|
alias(libs.plugins.android.application)
|
||||||
|
// Note: set apply to true to enable google-services (requires google-services.json).
|
||||||
|
alias(libs.plugins.google.services) apply false
|
||||||
alias(libs.plugins.kotlin.android)
|
alias(libs.plugins.kotlin.android)
|
||||||
alias(libs.plugins.kotlin.compose)
|
alias(libs.plugins.kotlin.compose)
|
||||||
alias(libs.plugins.kotlin.serialization)
|
alias(libs.plugins.kotlin.serialization)
|
||||||
|
@ -95,6 +97,8 @@ dependencies {
|
||||||
implementation(libs.protobuf.javalite)
|
implementation(libs.protobuf.javalite)
|
||||||
implementation(libs.hilt.android)
|
implementation(libs.hilt.android)
|
||||||
implementation(libs.hilt.navigation.compose)
|
implementation(libs.hilt.navigation.compose)
|
||||||
|
implementation(platform(libs.firebase.bom))
|
||||||
|
implementation(libs.firebase.analytics)
|
||||||
kapt(libs.hilt.android.compiler)
|
kapt(libs.hilt.android.compiler)
|
||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
androidTestImplementation(libs.androidx.junit)
|
androidTestImplementation(libs.androidx.junit)
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
|
||||||
<uses-feature
|
<uses-feature
|
||||||
android:name="android.hardware.camera"
|
android:name="android.hardware.camera"
|
||||||
|
@ -87,6 +88,20 @@
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
tools:node="merge">
|
tools:node="merge">
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<!-- For Firebase Analytics. -->
|
||||||
|
<receiver
|
||||||
|
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false" />
|
||||||
|
<service android:name="com.google.android.gms.measurement.AppMeasurementService"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false" />
|
||||||
|
<service
|
||||||
|
android:name="com.google.android.gms.measurement.AppMeasurementJobService"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false"
|
||||||
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -20,6 +20,7 @@ import android.app.Application
|
||||||
import com.google.ai.edge.gallery.common.writeLaunchInfo
|
import com.google.ai.edge.gallery.common.writeLaunchInfo
|
||||||
import com.google.ai.edge.gallery.data.DataStoreRepository
|
import com.google.ai.edge.gallery.data.DataStoreRepository
|
||||||
import com.google.ai.edge.gallery.ui.theme.ThemeSettings
|
import com.google.ai.edge.gallery.ui.theme.ThemeSettings
|
||||||
|
import com.google.firebase.FirebaseApp
|
||||||
import dagger.hilt.android.HiltAndroidApp
|
import dagger.hilt.android.HiltAndroidApp
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -35,5 +36,7 @@ class GalleryApplication : Application() {
|
||||||
|
|
||||||
// Load saved theme.
|
// Load saved theme.
|
||||||
ThemeSettings.themeOverride.value = dataStoreRepository.readTheme()
|
ThemeSettings.themeOverride.value = dataStoreRepository.readTheme()
|
||||||
|
|
||||||
|
FirebaseApp.initializeApp(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.google.ai.edge.gallery
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
|
@ -27,12 +28,26 @@ import androidx.compose.material3.Surface
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||||
import com.google.ai.edge.gallery.ui.theme.GalleryTheme
|
import com.google.ai.edge.gallery.ui.theme.GalleryTheme
|
||||||
|
import com.google.firebase.analytics.FirebaseAnalytics
|
||||||
|
import com.google.firebase.analytics.ktx.analytics
|
||||||
|
import com.google.firebase.ktx.Firebase
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class MainActivity : ComponentActivity() {
|
class MainActivity : ComponentActivity() {
|
||||||
|
|
||||||
|
private var firebaseAnalytics: FirebaseAnalytics? = null
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
firebaseAnalytics =
|
||||||
|
runCatching { Firebase.analytics }
|
||||||
|
.onFailure { exception ->
|
||||||
|
// Firebase.analytics can throw an exception if goolgle-services is not set up, e.g.,
|
||||||
|
// missing google-services.json.
|
||||||
|
Log.w(TAG, "Firebase Analytics is not available", exception)
|
||||||
|
}
|
||||||
|
.getOrNull()
|
||||||
|
|
||||||
installSplashScreen()
|
installSplashScreen()
|
||||||
|
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -46,4 +61,8 @@ class MainActivity : ComponentActivity() {
|
||||||
// Keep the screen on while the app is running for better demo experience.
|
// Keep the screen on while the app is running for better demo experience.
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val TAG = "AGMainActivity"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.android.application) apply false
|
alias(libs.plugins.android.application) apply false
|
||||||
|
alias(libs.plugins.google.services) apply false
|
||||||
alias(libs.plugins.kotlin.android) apply false
|
alias(libs.plugins.kotlin.android) apply false
|
||||||
alias(libs.plugins.kotlin.compose) apply false
|
alias(libs.plugins.kotlin.compose) apply false
|
||||||
alias(libs.plugins.hilt.application) apply false
|
alias(libs.plugins.hilt.application) apply false
|
||||||
|
|
|
@ -31,6 +31,8 @@ netOpenidAppauth = "0.11.1"
|
||||||
splashscreen = "1.2.0-beta01"
|
splashscreen = "1.2.0-beta01"
|
||||||
hilt = "2.56.2"
|
hilt = "2.56.2"
|
||||||
hiltNavigation = "1.2.0"
|
hiltNavigation = "1.2.0"
|
||||||
|
googleService = "4.4.3"
|
||||||
|
firebaseBom = "33.16.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
||||||
|
@ -73,6 +75,10 @@ hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt"
|
||||||
hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigation" }
|
hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigation" }
|
||||||
hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" }
|
hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" }
|
||||||
hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }
|
hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }
|
||||||
|
firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" }
|
||||||
|
# When using the Firebase BoM, you don't specify versions in Firebase
|
||||||
|
# library dependencies.
|
||||||
|
firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" }
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
android-application = { id = "com.android.application", version.ref = "agp" }
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
||||||
|
@ -81,3 +87,4 @@ kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "ko
|
||||||
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "serializationPlugin" }
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "serializationPlugin" }
|
||||||
protobuf = {id = "com.google.protobuf", version.ref = "protobuf"}
|
protobuf = {id = "com.google.protobuf", version.ref = "protobuf"}
|
||||||
hilt-application = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
|
hilt-application = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
|
||||||
|
google-services = { id = "com.google.gms.google-services", version.ref = "googleService" }
|
Loading…
Add table
Add a link
Reference in a new issue