Loading packages/SystemUI/aconfig/systemui.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -2006,3 +2006,10 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "enable_desktop_growth" namespace: "systemui" description: "Enables the growth framework for desktop." bug: "383601076" } packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +2 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ import com.android.systemui.dreams.dagger.DreamModule; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FlagDependenciesModule; import com.android.systemui.flags.FlagsModule; import com.android.systemui.growth.dagger.GrowthModule; import com.android.systemui.haptics.msdl.dagger.MSDLModule; import com.android.systemui.inputmethod.InputMethodModule; import com.android.systemui.keyboard.KeyboardModule; Loading Loading @@ -246,6 +247,7 @@ import javax.inject.Named; FooterActionsModule.class, KairosCoreStartableModule.class, GestureModule.class, GrowthModule.class, InputMethodModule.class, KeyEventRepositoryModule.class, KeyboardModule.class, Loading packages/SystemUI/src/com/android/systemui/growth/OWNERS 0 → 100644 +9 −0 Original line number Diff line number Diff line # Bug component: 1419696 # System UI team nijamkin@google.com # Desktop growth team llin@google.com thv@google.com wutao@google.com No newline at end of file packages/SystemUI/src/com/android/systemui/growth/dagger/GrowthModule.kt 0 → 100644 +33 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.growth.dagger import com.android.systemui.CoreStartable import com.android.systemui.growth.domain.startable.GrowthCoreStartable import dagger.Binds import dagger.Module import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap /** Module for dagger injections related to the Android Desktop Growth. */ @Module interface GrowthModule { @Binds @IntoMap @ClassKey(GrowthCoreStartable::class) fun provideGrowthCoreStartable(startable: GrowthCoreStartable): CoreStartable } packages/SystemUI/src/com/android/systemui/growth/domain/interactor/GrowthInteractor.kt 0 → 100644 +39 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.growth.domain.interactor import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.lifecycle.ExclusiveActivatable import com.android.systemui.dagger.SysUISingleton import javax.inject.Inject import dagger.Lazy /** Interactor to communicate with the growth app. */ @SysUISingleton class GrowthInteractor @Inject constructor(private val deviceEntryInteractor: Lazy<DeviceEntryInteractor>) : ExclusiveActivatable() { override suspend fun onActivated(): Nothing { deviceEntryInteractor.get().isDeviceEnteredDirectly.collect { if (it) { // TODO: b/410857267 - Notify the growth app. } } } } Loading
packages/SystemUI/aconfig/systemui.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -2006,3 +2006,10 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "enable_desktop_growth" namespace: "systemui" description: "Enables the growth framework for desktop." bug: "383601076" }
packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +2 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ import com.android.systemui.dreams.dagger.DreamModule; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FlagDependenciesModule; import com.android.systemui.flags.FlagsModule; import com.android.systemui.growth.dagger.GrowthModule; import com.android.systemui.haptics.msdl.dagger.MSDLModule; import com.android.systemui.inputmethod.InputMethodModule; import com.android.systemui.keyboard.KeyboardModule; Loading Loading @@ -246,6 +247,7 @@ import javax.inject.Named; FooterActionsModule.class, KairosCoreStartableModule.class, GestureModule.class, GrowthModule.class, InputMethodModule.class, KeyEventRepositoryModule.class, KeyboardModule.class, Loading
packages/SystemUI/src/com/android/systemui/growth/OWNERS 0 → 100644 +9 −0 Original line number Diff line number Diff line # Bug component: 1419696 # System UI team nijamkin@google.com # Desktop growth team llin@google.com thv@google.com wutao@google.com No newline at end of file
packages/SystemUI/src/com/android/systemui/growth/dagger/GrowthModule.kt 0 → 100644 +33 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.growth.dagger import com.android.systemui.CoreStartable import com.android.systemui.growth.domain.startable.GrowthCoreStartable import dagger.Binds import dagger.Module import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap /** Module for dagger injections related to the Android Desktop Growth. */ @Module interface GrowthModule { @Binds @IntoMap @ClassKey(GrowthCoreStartable::class) fun provideGrowthCoreStartable(startable: GrowthCoreStartable): CoreStartable }
packages/SystemUI/src/com/android/systemui/growth/domain/interactor/GrowthInteractor.kt 0 → 100644 +39 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.growth.domain.interactor import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.lifecycle.ExclusiveActivatable import com.android.systemui.dagger.SysUISingleton import javax.inject.Inject import dagger.Lazy /** Interactor to communicate with the growth app. */ @SysUISingleton class GrowthInteractor @Inject constructor(private val deviceEntryInteractor: Lazy<DeviceEntryInteractor>) : ExclusiveActivatable() { override suspend fun onActivated(): Nothing { deviceEntryInteractor.get().isDeviceEnteredDirectly.collect { if (it) { // TODO: b/410857267 - Notify the growth app. } } } }