• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 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 package com.android.settings.overlay
17 
18 import android.app.AppGlobals
19 import android.content.Context
20 import android.net.ConnectivityManager
21 import android.net.VpnManager
22 import android.os.UserManager
23 import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider
24 import com.android.settings.accessibility.AccessibilityMetricsFeatureProviderImpl
25 import com.android.settings.accessibility.AccessibilitySearchFeatureProvider
26 import com.android.settings.accessibility.AccessibilitySearchFeatureProviderImpl
27 import com.android.settings.accounts.AccountFeatureProvider
28 import com.android.settings.accounts.AccountFeatureProviderImpl
29 import com.android.settings.applications.ApplicationFeatureProviderImpl
30 import com.android.settings.biometrics.face.FaceFeatureProvider
31 import com.android.settings.biometrics.face.FaceFeatureProviderImpl
32 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
33 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProviderImpl
34 import com.android.settings.biometrics2.factory.BiometricsRepositoryProviderImpl
35 import com.android.settings.bluetooth.BluetoothFeatureProvider
36 import com.android.settings.bluetooth.BluetoothFeatureProviderImpl
37 import com.android.settings.connecteddevice.dock.DockUpdaterFeatureProviderImpl
38 import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
39 import com.android.settings.connecteddevice.fastpair.FastPairFeatureProviderImpl
40 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
41 import com.android.settings.connecteddevice.stylus.StylusFeatureProviderImpl
42 import com.android.settings.core.instrumentation.SettingsMetricsFeatureProvider
43 import com.android.settings.dashboard.DashboardFeatureProviderImpl
44 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider
45 import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl
46 import com.android.settings.display.DisplayFeatureProvider
47 import com.android.settings.display.DisplayFeatureProviderImpl
48 import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl
49 import com.android.settings.fuelgauge.BatterySettingsFeatureProviderImpl
50 import com.android.settings.fuelgauge.BatteryStatusFeatureProviderImpl
51 import com.android.settings.fuelgauge.PowerUsageFeatureProviderImpl
52 import com.android.settings.homepage.contextualcards.ContextualCardFeatureProviderImpl
53 import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider
54 import com.android.settings.inputmethod.KeyboardSettingsFeatureProviderImpl
55 import com.android.settings.localepicker.LocaleFeatureProviderImpl
56 import com.android.settings.notification.syncacrossdevices.SyncAcrossDevicesFeatureProvider
57 import com.android.settings.notification.syncacrossdevices.SyncAcrossDevicesFeatureProviderImpl
58 import com.android.settings.panel.PanelFeatureProviderImpl
59 import com.android.settings.search.SearchFeatureProvider
60 import com.android.settings.search.SearchFeatureProviderImpl
61 import com.android.settings.security.SecurityFeatureProviderImpl
62 import com.android.settings.security.SecuritySettingsFeatureProvider
63 import com.android.settings.security.SecuritySettingsFeatureProviderImpl
64 import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider
65 import com.android.settings.privatespace.PrivateSpaceLoginFeatureProviderImpl
66 import com.android.settings.slices.SlicesFeatureProviderImpl
67 import com.android.settings.users.UserFeatureProviderImpl
68 import com.android.settings.vpn2.AdvancedVpnFeatureProviderImpl
69 import com.android.settings.wifi.WifiTrackerLibProvider
70 import com.android.settings.wifi.WifiTrackerLibProviderImpl
71 import com.android.settings.wifi.factory.WifiFeatureProvider
72 import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
73 
74 /**
75  * [FeatureFactory] implementation for AOSP Settings.
76  */
77 open class FeatureFactoryImpl : FeatureFactory() {
<lambda>null78     private val contextualCardFeatureProvider by lazy {
79         ContextualCardFeatureProviderImpl(appContext)
80     }
81 
<lambda>null82     override val metricsFeatureProvider by lazy { SettingsMetricsFeatureProvider() }
83 
<lambda>null84     override val powerUsageFeatureProvider by lazy { PowerUsageFeatureProviderImpl(appContext) }
85 
<lambda>null86     override val batteryStatusFeatureProvider by lazy {
87         BatteryStatusFeatureProviderImpl(appContext)
88     }
89 
<lambda>null90     override val batterySettingsFeatureProvider by lazy { BatterySettingsFeatureProviderImpl() }
91 
<lambda>null92     override val dashboardFeatureProvider by lazy { DashboardFeatureProviderImpl(appContext) }
93 
<lambda>null94     override val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider by lazy {
95         DockUpdaterFeatureProviderImpl()
96     }
97 
<lambda>null98     override val applicationFeatureProvider by lazy {
99         ApplicationFeatureProviderImpl(
100             appContext,
101             appContext.packageManager,
102             AppGlobals.getPackageManager(),
103             appContext.devicePolicyManager,
104         )
105     }
106 
<lambda>null107     override val localeFeatureProvider by lazy { LocaleFeatureProviderImpl() }
108 
<lambda>null109     override val enterprisePrivacyFeatureProvider by lazy {
110         EnterprisePrivacyFeatureProviderImpl(
111             appContext,
112             appContext.devicePolicyManager,
113             appContext.packageManager,
114             UserManager.get(appContext),
115             appContext.getSystemService(ConnectivityManager::class.java),
116             appContext.getSystemService(VpnManager::class.java),
117             appContext.resources,
118         )
119     }
120 
<lambda>null121     override val searchFeatureProvider: SearchFeatureProvider by lazy {
122         SearchFeatureProviderImpl()
123     }
124 
getSurveyFeatureProvidernull125     override fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider? = null
126 
127     override val securityFeatureProvider by lazy { SecurityFeatureProviderImpl() }
128 
<lambda>null129     override val suggestionFeatureProvider: SuggestionFeatureProvider by lazy {
130         SuggestionFeatureProviderImpl()
131     }
132 
<lambda>null133     override val userFeatureProvider by lazy { UserFeatureProviderImpl(appContext) }
134 
<lambda>null135     override val slicesFeatureProvider by lazy { SlicesFeatureProviderImpl() }
136 
<lambda>null137     override val accountFeatureProvider: AccountFeatureProvider by lazy {
138         AccountFeatureProviderImpl()
139     }
140 
<lambda>null141     override val panelFeatureProvider by lazy { PanelFeatureProviderImpl() }
142 
getContextualCardFeatureProvidernull143     override fun getContextualCardFeatureProvider(context: Context) = contextualCardFeatureProvider
144 
145     override val bluetoothFeatureProvider: BluetoothFeatureProvider by lazy {
146         BluetoothFeatureProviderImpl()
147     }
148 
<lambda>null149     override val faceFeatureProvider: FaceFeatureProvider by lazy { FaceFeatureProviderImpl() }
150 
<lambda>null151     override val fingerprintFeatureProvider: FingerprintFeatureProvider by lazy {
152         FingerprintFeatureProviderImpl()
153     }
154 
<lambda>null155     override val biometricsRepositoryProvider by lazy { BiometricsRepositoryProviderImpl() }
156 
<lambda>null157     override val wifiTrackerLibProvider: WifiTrackerLibProvider by lazy {
158         WifiTrackerLibProviderImpl()
159     }
160 
<lambda>null161     override val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider by lazy {
162         SecuritySettingsFeatureProviderImpl()
163     }
164 
<lambda>null165     override val accessibilitySearchFeatureProvider: AccessibilitySearchFeatureProvider by lazy {
166         AccessibilitySearchFeatureProviderImpl()
167     }
168 
<lambda>null169     override val accessibilityMetricsFeatureProvider: AccessibilityMetricsFeatureProvider by lazy {
170         AccessibilityMetricsFeatureProviderImpl()
171     }
172 
<lambda>null173     override val advancedVpnFeatureProvider by lazy { AdvancedVpnFeatureProviderImpl() }
174 
<lambda>null175     override val wifiFeatureProvider by lazy { WifiFeatureProvider(appContext) }
176 
<lambda>null177     override val keyboardSettingsFeatureProvider: KeyboardSettingsFeatureProvider by lazy {
178         KeyboardSettingsFeatureProviderImpl()
179     }
180 
<lambda>null181     override val stylusFeatureProvider: StylusFeatureProvider by lazy {
182         StylusFeatureProviderImpl()
183     }
184 
<lambda>null185     override val fastPairFeatureProvider: FastPairFeatureProvider by lazy {
186         FastPairFeatureProviderImpl()
187     }
188 
<lambda>null189     override val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider by lazy {
190         PrivateSpaceLoginFeatureProviderImpl()
191     }
192 
<lambda>null193     override val displayFeatureProvider: DisplayFeatureProvider by lazy {
194         DisplayFeatureProviderImpl()
195     }
196 
<lambda>null197     override val syncAcrossDevicesFeatureProvider: SyncAcrossDevicesFeatureProvider by lazy {
198         SyncAcrossDevicesFeatureProviderImpl()
199     }
200 }
201