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