1  /*
2   * Copyright (C) 2022 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.flags
18  
19  import com.android.systemui.CoreStartable
20  import com.android.systemui.dump.DumpManager
21  import dagger.Binds
22  import dagger.Module
23  import dagger.multibindings.ClassKey
24  import dagger.multibindings.IntoMap
25  import javax.inject.Inject
26  
27  class FeatureFlagsReleaseStartable
28  @Inject
29  constructor(
30      dumpManager: DumpManager,
31      featureFlags: FeatureFlags,
32  ) : CoreStartable {
33  
34      init {
35          dumpManager.registerCriticalDumpable(FeatureFlagsRelease.TAG) { pw, args ->
36              featureFlags.dump(pw, args)
37          }
38      }
39  
40      override fun start() {}
41  }
42  
43  @Module
44  abstract class FeatureFlagsReleaseStartableModule {
45      @Binds
46      @IntoMap
47      @ClassKey(FeatureFlagsReleaseStartable::class)
48      abstract fun bind(impl: FeatureFlagsReleaseStartable): CoreStartable
49  }
50