OSDN Git Service

Add feature provider for face unlock
[android-x86/packages-apps-Settings.git] / src / com / android / settings / overlay / FeatureFactoryImpl.java
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
17 package com.android.settings.overlay;
18
19 import android.app.AppGlobals;
20 import android.app.admin.DevicePolicyManager;
21 import android.content.Context;
22 import android.net.ConnectivityManager;
23 import android.os.UserManager;
24
25 import androidx.annotation.Keep;
26
27 import com.android.settings.accounts.AccountFeatureProvider;
28 import com.android.settings.accounts.AccountFeatureProviderImpl;
29 import com.android.settings.applications.ApplicationFeatureProvider;
30 import com.android.settings.applications.ApplicationFeatureProviderImpl;
31 import com.android.settings.aware.AwareFeatureProvider;
32 import com.android.settings.aware.AwareFeatureProviderImpl;
33 import com.android.settings.biometrics.face.FaceFeatureProvider;
34 import com.android.settings.biometrics.face.FaceFeatureProviderImpl;
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.core.instrumentation.SettingsMetricsFeatureProvider;
39 import com.android.settings.dashboard.DashboardFeatureProvider;
40 import com.android.settings.dashboard.DashboardFeatureProviderImpl;
41 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
42 import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl;
43 import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
44 import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl;
45 import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
46 import com.android.settings.fuelgauge.PowerUsageFeatureProviderImpl;
47 import com.android.settings.gestures.AssistGestureFeatureProvider;
48 import com.android.settings.gestures.AssistGestureFeatureProviderImpl;
49 import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
50 import com.android.settings.homepage.contextualcards.ContextualCardFeatureProviderImpl;
51 import com.android.settings.localepicker.LocaleFeatureProvider;
52 import com.android.settings.localepicker.LocaleFeatureProviderImpl;
53 import com.android.settings.panel.PanelFeatureProvider;
54 import com.android.settings.panel.PanelFeatureProviderImpl;
55 import com.android.settings.search.SearchFeatureProvider;
56 import com.android.settings.search.SearchFeatureProviderImpl;
57 import com.android.settings.security.SecurityFeatureProvider;
58 import com.android.settings.security.SecurityFeatureProviderImpl;
59 import com.android.settings.slices.SlicesFeatureProvider;
60 import com.android.settings.slices.SlicesFeatureProviderImpl;
61 import com.android.settings.users.UserFeatureProvider;
62 import com.android.settings.users.UserFeatureProviderImpl;
63 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
64
65 /**
66  * {@link FeatureFactory} implementation for AOSP Settings.
67  */
68 @Keep
69 public class FeatureFactoryImpl extends FeatureFactory {
70
71     private ApplicationFeatureProvider mApplicationFeatureProvider;
72     private MetricsFeatureProvider mMetricsFeatureProvider;
73     private DashboardFeatureProviderImpl mDashboardFeatureProvider;
74     private DockUpdaterFeatureProvider mDockUpdaterFeatureProvider;
75     private LocaleFeatureProvider mLocaleFeatureProvider;
76     private EnterprisePrivacyFeatureProvider mEnterprisePrivacyFeatureProvider;
77     private SearchFeatureProvider mSearchFeatureProvider;
78     private SecurityFeatureProvider mSecurityFeatureProvider;
79     private SuggestionFeatureProvider mSuggestionFeatureProvider;
80     private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
81     private AssistGestureFeatureProvider mAssistGestureFeatureProvider;
82     private UserFeatureProvider mUserFeatureProvider;
83     private SlicesFeatureProvider mSlicesFeatureProvider;
84     private AccountFeatureProvider mAccountFeatureProvider;
85     private PanelFeatureProvider mPanelFeatureProvider;
86     private ContextualCardFeatureProvider mContextualCardFeatureProvider;
87     private BluetoothFeatureProvider mBluetoothFeatureProvider;
88     private AwareFeatureProvider mAwareFeatureProvider;
89     private FaceFeatureProvider mFaceFeatureProvider;
90
91     @Override
92     public SupportFeatureProvider getSupportFeatureProvider(Context context) {
93         return null;
94     }
95
96     @Override
97     public MetricsFeatureProvider getMetricsFeatureProvider() {
98         if (mMetricsFeatureProvider == null) {
99             mMetricsFeatureProvider = new SettingsMetricsFeatureProvider();
100         }
101         return mMetricsFeatureProvider;
102     }
103
104     @Override
105     public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) {
106         if (mPowerUsageFeatureProvider == null) {
107             mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(
108                     context.getApplicationContext());
109         }
110         return mPowerUsageFeatureProvider;
111     }
112
113     @Override
114     public DashboardFeatureProvider getDashboardFeatureProvider(Context context) {
115         if (mDashboardFeatureProvider == null) {
116             mDashboardFeatureProvider = new DashboardFeatureProviderImpl(
117                     context.getApplicationContext());
118         }
119         return mDashboardFeatureProvider;
120     }
121
122     @Override
123     public DockUpdaterFeatureProvider getDockUpdaterFeatureProvider() {
124         if (mDockUpdaterFeatureProvider == null) {
125             mDockUpdaterFeatureProvider = new DockUpdaterFeatureProviderImpl();
126         }
127         return mDockUpdaterFeatureProvider;
128     }
129
130     @Override
131     public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
132         if (mApplicationFeatureProvider == null) {
133             final Context appContext = context.getApplicationContext();
134             mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(appContext,
135                     appContext.getPackageManager(),
136                     AppGlobals.getPackageManager(),
137                     (DevicePolicyManager) appContext
138                             .getSystemService(Context.DEVICE_POLICY_SERVICE));
139         }
140         return mApplicationFeatureProvider;
141     }
142
143     @Override
144     public LocaleFeatureProvider getLocaleFeatureProvider() {
145         if (mLocaleFeatureProvider == null) {
146             mLocaleFeatureProvider = new LocaleFeatureProviderImpl();
147         }
148         return mLocaleFeatureProvider;
149     }
150
151     @Override
152     public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
153         if (mEnterprisePrivacyFeatureProvider == null) {
154             final Context appContext = context.getApplicationContext();
155             mEnterprisePrivacyFeatureProvider = new EnterprisePrivacyFeatureProviderImpl(appContext,
156                     (DevicePolicyManager) appContext.getSystemService(
157                             Context.DEVICE_POLICY_SERVICE),
158                     appContext.getPackageManager(),
159                     UserManager.get(appContext),
160                     (ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE),
161                     appContext.getResources());
162         }
163         return mEnterprisePrivacyFeatureProvider;
164     }
165
166     @Override
167     public SearchFeatureProvider getSearchFeatureProvider() {
168         if (mSearchFeatureProvider == null) {
169             mSearchFeatureProvider = new SearchFeatureProviderImpl();
170         }
171         return mSearchFeatureProvider;
172     }
173
174     @Override
175     public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
176         return null;
177     }
178
179     @Override
180     public SecurityFeatureProvider getSecurityFeatureProvider() {
181         if (mSecurityFeatureProvider == null) {
182             mSecurityFeatureProvider = new SecurityFeatureProviderImpl();
183         }
184         return mSecurityFeatureProvider;
185     }
186
187     @Override
188     public SuggestionFeatureProvider getSuggestionFeatureProvider(Context context) {
189         if (mSuggestionFeatureProvider == null) {
190             mSuggestionFeatureProvider = new SuggestionFeatureProviderImpl(
191                     context.getApplicationContext());
192         }
193         return mSuggestionFeatureProvider;
194     }
195
196     @Override
197     public UserFeatureProvider getUserFeatureProvider(Context context) {
198         if (mUserFeatureProvider == null) {
199             mUserFeatureProvider = new UserFeatureProviderImpl(context.getApplicationContext());
200         }
201         return mUserFeatureProvider;
202     }
203
204     @Override
205     public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
206         if (mAssistGestureFeatureProvider == null) {
207             mAssistGestureFeatureProvider = new AssistGestureFeatureProviderImpl();
208         }
209         return mAssistGestureFeatureProvider;
210     }
211
212     @Override
213     public SlicesFeatureProvider getSlicesFeatureProvider() {
214         if (mSlicesFeatureProvider == null) {
215             mSlicesFeatureProvider = new SlicesFeatureProviderImpl();
216         }
217         return mSlicesFeatureProvider;
218     }
219
220     @Override
221     public AccountFeatureProvider getAccountFeatureProvider() {
222         if (mAccountFeatureProvider == null) {
223             mAccountFeatureProvider = new AccountFeatureProviderImpl();
224         }
225         return mAccountFeatureProvider;
226     }
227
228     @Override
229     public PanelFeatureProvider getPanelFeatureProvider() {
230         if (mPanelFeatureProvider == null) {
231             mPanelFeatureProvider = new PanelFeatureProviderImpl();
232         }
233         return mPanelFeatureProvider;
234     }
235
236     @Override
237     public ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context) {
238         if (mContextualCardFeatureProvider == null) {
239             mContextualCardFeatureProvider = new ContextualCardFeatureProviderImpl(
240                     context.getApplicationContext());
241         }
242         return mContextualCardFeatureProvider;
243     }
244
245     @Override
246     public BluetoothFeatureProvider getBluetoothFeatureProvider(Context context) {
247         if (mBluetoothFeatureProvider == null) {
248             mBluetoothFeatureProvider = new BluetoothFeatureProviderImpl(
249                     context.getApplicationContext());
250         }
251         return mBluetoothFeatureProvider;
252     }
253
254     @Override
255     public AwareFeatureProvider getAwareFeatureProvider() {
256         if (mAwareFeatureProvider == null) {
257             mAwareFeatureProvider = new AwareFeatureProviderImpl();
258         }
259         return mAwareFeatureProvider;
260     }
261
262     @Override
263     public FaceFeatureProvider getFaceFeatureProvider() {
264         if (mFaceFeatureProvider == null) {
265             mFaceFeatureProvider = new FaceFeatureProviderImpl();
266         }
267         return mFaceFeatureProvider;
268     }
269 }