1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.systemui.qs 18 19 import com.android.systemui.CoreStartable 20 import com.android.systemui.dagger.SysUISingleton 21 import com.android.systemui.fragments.FragmentService 22 import dagger.Binds 23 import dagger.Module 24 import dagger.multibindings.ClassKey 25 import dagger.multibindings.IntoMap 26 import javax.inject.Inject 27 import javax.inject.Provider 28 29 @SysUISingleton 30 class QSFragmentStartable 31 @Inject 32 constructor( 33 private val fragmentService: FragmentService, 34 private val qsFragmentLegacyProvider: Provider<QSFragmentLegacy> 35 ) : CoreStartable { startnull36 override fun start() { 37 fragmentService.addFragmentInstantiationProvider( 38 QSFragmentLegacy::class.java, 39 qsFragmentLegacyProvider 40 ) 41 } 42 } 43 44 @Module 45 interface QSFragmentStartableModule { 46 @Binds 47 @IntoMap 48 @ClassKey(QSFragmentStartable::class) bindsQSFragmentStartablenull49 fun bindsQSFragmentStartable(startable: QSFragmentStartable): CoreStartable 50 } 51