Loading packages/SystemUI/res/values/config.xml +5 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,11 @@ internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,custom(com.android.permissioncontroller/.permission.service.v33.SafetyCenterQsTileService) </string> <!-- The default tiles to display in QuickSettings with the new UI --> <string name="quick_settings_tiles_new_default" translatable="false"> internet,bt,dnd,cast,flashlight,airplane,rotation,wallet,alarm,controls,screenrecord,battery </string> <!-- The class path of the Safety Quick Settings Tile --> <string name="safety_quick_settings_tile_class" translatable="false"> com.android.permissioncontroller.permission.service.v33.SafetyCenterQsTileService Loading packages/SystemUI/src/com/android/systemui/qs/QSHost.java +5 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.provider.Settings; import androidx.annotation.NonNull; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.flags.QsInCompose; import com.android.systemui.res.R; import java.util.ArrayList; Loading @@ -41,7 +42,10 @@ public interface QSHost { static List<String> getDefaultSpecs(Resources res) { final ArrayList<String> tiles = new ArrayList(); final String defaultTileList = res.getString(R.string.quick_settings_tiles_default); int resource = QsInCompose.isEnabled() ? R.string.quick_settings_tiles_new_default : R.string.quick_settings_tiles_default; final String defaultTileList = res.getString(resource); tiles.addAll(Arrays.asList(defaultTileList.split(","))); return tiles; Loading packages/SystemUI/src/com/android/systemui/qs/dagger/QSModule.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,10 +16,12 @@ package com.android.systemui.qs.dagger; import com.android.systemui.qs.panels.dagger.PanelsModule; import dagger.Module; /** * Module for QS dependencies for AOSP inclusion */ @Module(includes = { QSModuleBase.class}) @Module(includes = { PanelsModule.class, QSModuleBase.class }) public interface QSModule { } packages/SystemUI/src/com/android/systemui/qs/dagger/QSModuleBase.kt +0 −2 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import com.android.systemui.qs.ReduceBrightColorsController import com.android.systemui.qs.ReduceBrightColorsControllerImpl import com.android.systemui.qs.composefragment.dagger.QSFragmentComposeModule import com.android.systemui.qs.external.QSExternalModule import com.android.systemui.qs.panels.dagger.PanelsModule import com.android.systemui.qs.pipeline.dagger.QSPipelineModule import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.qs.tiles.base.ui.model.QSTilesModule Loading @@ -40,7 +39,6 @@ import dagger.multibindings.Multibinds includes = [ MediaModule::class, PanelsModule::class, QSFragmentComposeModule::class, QSExternalModule::class, QSFlagsModule::class, Loading packages/SystemUI/src/com/android/systemui/qs/panels/dagger/PanelsModule.kt +2 −77 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * 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. Loading @@ -16,90 +16,15 @@ package com.android.systemui.qs.panels.dagger import com.android.systemui.CoreStartable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory import com.android.systemui.qs.panels.data.repository.DefaultLargeTilesRepository import com.android.systemui.qs.panels.data.repository.DefaultLargeTilesRepositoryImpl import com.android.systemui.qs.panels.domain.interactor.EditTilesResetInteractor import com.android.systemui.qs.panels.domain.interactor.SizedTilesResetInteractor import com.android.systemui.qs.panels.domain.startable.QSPanelsCoreStartable import com.android.systemui.qs.panels.shared.model.GridLayoutType import com.android.systemui.qs.panels.shared.model.InfiniteGridLayoutType import com.android.systemui.qs.panels.shared.model.PaginatedGridLayoutType import com.android.systemui.qs.panels.shared.model.PanelsLog import com.android.systemui.qs.panels.ui.compose.GridLayout import com.android.systemui.qs.panels.ui.compose.PaginatableGridLayout import com.android.systemui.qs.panels.ui.compose.PaginatedGridLayout import com.android.systemui.qs.panels.ui.compose.infinitegrid.InfiniteGridLayout import com.android.systemui.qs.panels.ui.viewmodel.IconTilesViewModel import com.android.systemui.qs.panels.ui.viewmodel.IconTilesViewModelImpl import dagger.Binds import dagger.Module import dagger.Provides import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap import dagger.multibindings.IntoSet import javax.inject.Named @Module @Module(includes = [PanelsModuleBase::class]) interface PanelsModule { @Binds fun bindDefaultLargeTilesSpecsRepository( impl: DefaultLargeTilesRepositoryImpl ): DefaultLargeTilesRepository @Binds fun bindEditTilesResetInteractor(impl: SizedTilesResetInteractor): EditTilesResetInteractor @Binds fun bindIconTilesViewModel(impl: IconTilesViewModelImpl): IconTilesViewModel @Binds @PaginatedBaseLayoutType fun bindPaginatedBaseGridLayout(impl: InfiniteGridLayout): PaginatableGridLayout @Binds @Named("Default") fun bindDefaultGridLayout(impl: PaginatedGridLayout): GridLayout @Binds @IntoMap @ClassKey(QSPanelsCoreStartable::class) fun bindQSPanelsCoreStartable(impl: QSPanelsCoreStartable): CoreStartable companion object { @Provides @SysUISingleton @PanelsLog fun providesPanelsLog(factory: LogBufferFactory): LogBuffer { return factory.create("PanelsLog", 50) } @Provides @IntoSet fun provideGridLayout(gridLayout: InfiniteGridLayout): Pair<GridLayoutType, GridLayout> { return Pair(InfiniteGridLayoutType, gridLayout) } @Provides @IntoSet fun providePaginatedGridLayout( gridLayout: PaginatedGridLayout ): Pair<GridLayoutType, GridLayout> { return Pair(PaginatedGridLayoutType, gridLayout) } @Provides fun provideGridLayoutMap( entries: Set<@JvmSuppressWildcards Pair<GridLayoutType, GridLayout>> ): Map<GridLayoutType, GridLayout> { return entries.toMap() } @Provides fun provideGridLayoutTypes( entries: Set<@JvmSuppressWildcards Pair<GridLayoutType, GridLayout>> ): Set<GridLayoutType> { return entries.map { it.first }.toSet() } } } Loading
packages/SystemUI/res/values/config.xml +5 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,11 @@ internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,custom(com.android.permissioncontroller/.permission.service.v33.SafetyCenterQsTileService) </string> <!-- The default tiles to display in QuickSettings with the new UI --> <string name="quick_settings_tiles_new_default" translatable="false"> internet,bt,dnd,cast,flashlight,airplane,rotation,wallet,alarm,controls,screenrecord,battery </string> <!-- The class path of the Safety Quick Settings Tile --> <string name="safety_quick_settings_tile_class" translatable="false"> com.android.permissioncontroller.permission.service.v33.SafetyCenterQsTileService Loading
packages/SystemUI/src/com/android/systemui/qs/QSHost.java +5 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.provider.Settings; import androidx.annotation.NonNull; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.flags.QsInCompose; import com.android.systemui.res.R; import java.util.ArrayList; Loading @@ -41,7 +42,10 @@ public interface QSHost { static List<String> getDefaultSpecs(Resources res) { final ArrayList<String> tiles = new ArrayList(); final String defaultTileList = res.getString(R.string.quick_settings_tiles_default); int resource = QsInCompose.isEnabled() ? R.string.quick_settings_tiles_new_default : R.string.quick_settings_tiles_default; final String defaultTileList = res.getString(resource); tiles.addAll(Arrays.asList(defaultTileList.split(","))); return tiles; Loading
packages/SystemUI/src/com/android/systemui/qs/dagger/QSModule.java +3 −1 Original line number Diff line number Diff line Loading @@ -16,10 +16,12 @@ package com.android.systemui.qs.dagger; import com.android.systemui.qs.panels.dagger.PanelsModule; import dagger.Module; /** * Module for QS dependencies for AOSP inclusion */ @Module(includes = { QSModuleBase.class}) @Module(includes = { PanelsModule.class, QSModuleBase.class }) public interface QSModule { }
packages/SystemUI/src/com/android/systemui/qs/dagger/QSModuleBase.kt +0 −2 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import com.android.systemui.qs.ReduceBrightColorsController import com.android.systemui.qs.ReduceBrightColorsControllerImpl import com.android.systemui.qs.composefragment.dagger.QSFragmentComposeModule import com.android.systemui.qs.external.QSExternalModule import com.android.systemui.qs.panels.dagger.PanelsModule import com.android.systemui.qs.pipeline.dagger.QSPipelineModule import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.qs.tiles.base.ui.model.QSTilesModule Loading @@ -40,7 +39,6 @@ import dagger.multibindings.Multibinds includes = [ MediaModule::class, PanelsModule::class, QSFragmentComposeModule::class, QSExternalModule::class, QSFlagsModule::class, Loading
packages/SystemUI/src/com/android/systemui/qs/panels/dagger/PanelsModule.kt +2 −77 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * 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. Loading @@ -16,90 +16,15 @@ package com.android.systemui.qs.panels.dagger import com.android.systemui.CoreStartable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory import com.android.systemui.qs.panels.data.repository.DefaultLargeTilesRepository import com.android.systemui.qs.panels.data.repository.DefaultLargeTilesRepositoryImpl import com.android.systemui.qs.panels.domain.interactor.EditTilesResetInteractor import com.android.systemui.qs.panels.domain.interactor.SizedTilesResetInteractor import com.android.systemui.qs.panels.domain.startable.QSPanelsCoreStartable import com.android.systemui.qs.panels.shared.model.GridLayoutType import com.android.systemui.qs.panels.shared.model.InfiniteGridLayoutType import com.android.systemui.qs.panels.shared.model.PaginatedGridLayoutType import com.android.systemui.qs.panels.shared.model.PanelsLog import com.android.systemui.qs.panels.ui.compose.GridLayout import com.android.systemui.qs.panels.ui.compose.PaginatableGridLayout import com.android.systemui.qs.panels.ui.compose.PaginatedGridLayout import com.android.systemui.qs.panels.ui.compose.infinitegrid.InfiniteGridLayout import com.android.systemui.qs.panels.ui.viewmodel.IconTilesViewModel import com.android.systemui.qs.panels.ui.viewmodel.IconTilesViewModelImpl import dagger.Binds import dagger.Module import dagger.Provides import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap import dagger.multibindings.IntoSet import javax.inject.Named @Module @Module(includes = [PanelsModuleBase::class]) interface PanelsModule { @Binds fun bindDefaultLargeTilesSpecsRepository( impl: DefaultLargeTilesRepositoryImpl ): DefaultLargeTilesRepository @Binds fun bindEditTilesResetInteractor(impl: SizedTilesResetInteractor): EditTilesResetInteractor @Binds fun bindIconTilesViewModel(impl: IconTilesViewModelImpl): IconTilesViewModel @Binds @PaginatedBaseLayoutType fun bindPaginatedBaseGridLayout(impl: InfiniteGridLayout): PaginatableGridLayout @Binds @Named("Default") fun bindDefaultGridLayout(impl: PaginatedGridLayout): GridLayout @Binds @IntoMap @ClassKey(QSPanelsCoreStartable::class) fun bindQSPanelsCoreStartable(impl: QSPanelsCoreStartable): CoreStartable companion object { @Provides @SysUISingleton @PanelsLog fun providesPanelsLog(factory: LogBufferFactory): LogBuffer { return factory.create("PanelsLog", 50) } @Provides @IntoSet fun provideGridLayout(gridLayout: InfiniteGridLayout): Pair<GridLayoutType, GridLayout> { return Pair(InfiniteGridLayoutType, gridLayout) } @Provides @IntoSet fun providePaginatedGridLayout( gridLayout: PaginatedGridLayout ): Pair<GridLayoutType, GridLayout> { return Pair(PaginatedGridLayoutType, gridLayout) } @Provides fun provideGridLayoutMap( entries: Set<@JvmSuppressWildcards Pair<GridLayoutType, GridLayout>> ): Map<GridLayoutType, GridLayout> { return entries.toMap() } @Provides fun provideGridLayoutTypes( entries: Set<@JvmSuppressWildcards Pair<GridLayoutType, GridLayout>> ): Set<GridLayoutType> { return entries.map { it.first }.toSet() } } }