• 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 
17 package com.android.settings.core.gateway;
18 
19 import com.android.settings.AllInOneTetherSettings;
20 import com.android.settings.DisplaySettings;
21 import com.android.settings.IccLockSettings;
22 import com.android.settings.MainClear;
23 import com.android.settings.MainClearConfirm;
24 import com.android.settings.Settings;
25 import com.android.settings.TestingSettings;
26 import com.android.settings.TetherSettings;
27 import com.android.settings.TrustedCredentialsSettings;
28 import com.android.settings.accessibility.AccessibilityDetailsSettingsFragment;
29 import com.android.settings.accessibility.AccessibilitySettings;
30 import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
31 import com.android.settings.accessibility.CaptionPropertiesFragment;
32 import com.android.settings.accessibility.TextReadingPreferenceFragmentForSetupWizard;
33 import com.android.settings.accessibility.ToggleColorInversionPreferenceFragment;
34 import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
35 import com.android.settings.accessibility.ToggleReduceBrightColorsPreferenceFragment;
36 import com.android.settings.accounts.AccountDashboardFragment;
37 import com.android.settings.accounts.AccountSyncSettings;
38 import com.android.settings.accounts.ChooseAccountFragment;
39 import com.android.settings.accounts.ManagedProfileSettings;
40 import com.android.settings.applications.AppDashboardFragment;
41 import com.android.settings.applications.ProcessStatsSummary;
42 import com.android.settings.applications.ProcessStatsUi;
43 import com.android.settings.applications.UsageAccessDetails;
44 import com.android.settings.applications.appinfo.AlarmsAndRemindersDetails;
45 import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
46 import com.android.settings.applications.appinfo.AppLocaleDetails;
47 import com.android.settings.applications.appinfo.DrawOverlayDetails;
48 import com.android.settings.applications.appinfo.ExternalSourcesDetails;
49 import com.android.settings.applications.appinfo.ManageExternalStorageDetails;
50 import com.android.settings.applications.appinfo.MediaManagementAppsDetails;
51 import com.android.settings.applications.appinfo.WriteSettingsDetails;
52 import com.android.settings.applications.appops.BackgroundCheckSummary;
53 import com.android.settings.applications.assist.ManageAssist;
54 import com.android.settings.applications.manageapplications.ManageApplications;
55 import com.android.settings.applications.managedomainurls.ManageDomainUrls;
56 import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminSettings;
57 import com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesDetails;
58 import com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesSettings;
59 import com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessDetails;
60 import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails;
61 import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureSettings;
62 import com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess;
63 import com.android.settings.applications.specialaccess.turnscreenon.TurnScreenOnDetails;
64 import com.android.settings.applications.specialaccess.turnscreenon.TurnScreenOnSettings;
65 import com.android.settings.applications.specialaccess.vrlistener.VrListenerSettings;
66 import com.android.settings.applications.specialaccess.zenaccess.ZenAccessDetails;
67 import com.android.settings.backup.PrivacySettings;
68 import com.android.settings.backup.ToggleBackupSettingFragment;
69 import com.android.settings.backup.UserBackupSettingsActivity;
70 import com.android.settings.biometrics.combination.CombinedBiometricProfileSettings;
71 import com.android.settings.biometrics.combination.CombinedBiometricSettings;
72 import com.android.settings.biometrics.face.FaceSettings;
73 import com.android.settings.biometrics.fingerprint.FingerprintSettings;
74 import com.android.settings.bluetooth.BluetoothBroadcastDialog;
75 import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
76 import com.android.settings.bluetooth.BluetoothFindBroadcastsFragment;
77 import com.android.settings.bluetooth.BluetoothPairingDetail;
78 import com.android.settings.bugreporthandler.BugReportHandlerPicker;
79 import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;
80 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
81 import com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment;
82 import com.android.settings.connecteddevice.usb.UsbDetailsFragment;
83 import com.android.settings.datausage.DataSaverSummary;
84 import com.android.settings.datausage.DataUsageList;
85 import com.android.settings.datausage.DataUsageSummary;
86 import com.android.settings.datetime.DateTimeSettings;
87 import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
88 import com.android.settings.development.DevelopmentSettingsDashboardFragment;
89 import com.android.settings.deviceinfo.PrivateVolumeForget;
90 import com.android.settings.deviceinfo.PublicVolumeSettings;
91 import com.android.settings.deviceinfo.StorageDashboardFragment;
92 import com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment;
93 import com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings;
94 import com.android.settings.deviceinfo.legal.ModuleLicensesDashboard;
95 import com.android.settings.display.AutoBrightnessSettings;
96 import com.android.settings.display.NightDisplaySettings;
97 import com.android.settings.display.SmartAutoRotatePreferenceFragment;
98 import com.android.settings.display.darkmode.DarkModeSettingsFragment;
99 import com.android.settings.dream.DreamSettings;
100 import com.android.settings.enterprise.EnterprisePrivacySettings;
101 import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
102 import com.android.settings.fuelgauge.batterysaver.BatterySaverScheduleSettings;
103 import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
104 import com.android.settings.fuelgauge.batteryusage.PowerUsageSummary;
105 import com.android.settings.gestures.AssistGestureSettings;
106 import com.android.settings.gestures.ButtonNavigationSettingsFragment;
107 import com.android.settings.gestures.DoubleTapPowerSettings;
108 import com.android.settings.gestures.DoubleTapScreenSettings;
109 import com.android.settings.gestures.DoubleTwistGestureSettings;
110 import com.android.settings.gestures.GestureNavigationSettingsFragment;
111 import com.android.settings.gestures.OneHandedSettings;
112 import com.android.settings.gestures.PickupGestureSettings;
113 import com.android.settings.gestures.PowerMenuSettings;
114 import com.android.settings.gestures.SwipeToNotificationSettings;
115 import com.android.settings.gestures.SystemNavigationGestureSettings;
116 import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
117 import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
118 import com.android.settings.inputmethod.PhysicalKeyboardFragment;
119 import com.android.settings.inputmethod.SpellCheckersSettings;
120 import com.android.settings.inputmethod.UserDictionaryList;
121 import com.android.settings.inputmethod.UserDictionarySettings;
122 import com.android.settings.language.LanguageAndInputSettings;
123 import com.android.settings.localepicker.LocaleListEditor;
124 import com.android.settings.location.LocationServices;
125 import com.android.settings.location.LocationSettings;
126 import com.android.settings.location.WifiScanningFragment;
127 import com.android.settings.network.MobileNetworkListFragment;
128 import com.android.settings.network.NetworkDashboardFragment;
129 import com.android.settings.network.NetworkProviderSettings;
130 import com.android.settings.network.apn.ApnEditor;
131 import com.android.settings.network.apn.ApnSettings;
132 import com.android.settings.network.telephony.MobileNetworkSettings;
133 import com.android.settings.network.telephony.NetworkSelectSettings;
134 import com.android.settings.nfc.AndroidBeam;
135 import com.android.settings.nfc.PaymentSettings;
136 import com.android.settings.notification.ConfigureNotificationSettings;
137 import com.android.settings.notification.NotificationAccessSettings;
138 import com.android.settings.notification.NotificationAssistantPicker;
139 import com.android.settings.notification.SoundSettings;
140 import com.android.settings.notification.app.AppBubbleNotificationSettings;
141 import com.android.settings.notification.app.AppNotificationSettings;
142 import com.android.settings.notification.app.ChannelNotificationSettings;
143 import com.android.settings.notification.app.ConversationListSettings;
144 import com.android.settings.notification.history.NotificationStation;
145 import com.android.settings.notification.zen.ZenAccessSettings;
146 import com.android.settings.notification.zen.ZenModeAutomationSettings;
147 import com.android.settings.notification.zen.ZenModeBlockedEffectsSettings;
148 import com.android.settings.notification.zen.ZenModeEventRuleSettings;
149 import com.android.settings.notification.zen.ZenModeScheduleRuleSettings;
150 import com.android.settings.notification.zen.ZenModeSettings;
151 import com.android.settings.password.ChooseLockPassword;
152 import com.android.settings.password.ChooseLockPattern;
153 import com.android.settings.print.PrintJobSettingsFragment;
154 import com.android.settings.print.PrintSettingsFragment;
155 import com.android.settings.privacy.PrivacyControlsFragment;
156 import com.android.settings.privacy.PrivacyDashboardFragment;
157 import com.android.settings.security.LockscreenDashboardFragment;
158 import com.android.settings.security.SecurityAdvancedSettings;
159 import com.android.settings.security.SecuritySettings;
160 import com.android.settings.shortcut.CreateShortcut;
161 import com.android.settings.sound.MediaControlsSettings;
162 import com.android.settings.support.SupportDashboardActivity;
163 import com.android.settings.system.ResetDashboardFragment;
164 import com.android.settings.system.SystemDashboardFragment;
165 import com.android.settings.tts.TextToSpeechSettings;
166 import com.android.settings.users.UserSettings;
167 import com.android.settings.vpn2.VpnSettings;
168 import com.android.settings.wallpaper.WallpaperTypeSettings;
169 import com.android.settings.webview.WebViewAppPicker;
170 import com.android.settings.wfd.WifiDisplaySettings;
171 import com.android.settings.wifi.ConfigureWifiSettings;
172 import com.android.settings.wifi.WifiAPITest;
173 import com.android.settings.wifi.WifiInfo;
174 import com.android.settings.wifi.WifiSettings;
175 import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment;
176 import com.android.settings.wifi.calling.WifiCallingSettings;
177 import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
178 import com.android.settings.wifi.p2p.WifiP2pSettings;
179 import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
180 import com.android.settings.wifi.tether.WifiTetherSettings;
181 
182 public class SettingsGateway {
183 
184     /**
185      * A list of fragment that can be hosted by SettingsActivity. SettingsActivity will throw a
186      * security exception if the fragment it needs to display is not in this list.
187      */
188     public static final String[] ENTRY_FRAGMENTS = {
189             AdvancedConnectedDeviceDashboardFragment.class.getName(),
190             CreateShortcut.class.getName(),
191             BluetoothPairingDetail.class.getName(),
192             WifiSettings.class.getName(),
193             WifiNetworkDetailsFragment.class.getName(),
194             ConfigureWifiSettings.class.getName(),
195             SavedAccessPointsWifiSettings2.class.getName(),
196             AllInOneTetherSettings.class.getName(),
197             TetherSettings.class.getName(),
198             SmartAutoRotatePreferenceFragment.class.getName(),
199             WifiP2pSettings.class.getName(),
200             WifiTetherSettings.class.getName(),
201             BackgroundCheckSummary.class.getName(),
202             VpnSettings.class.getName(),
203             DataSaverSummary.class.getName(),
204             DateTimeSettings.class.getName(),
205             LocaleListEditor.class.getName(),
206             AvailableVirtualKeyboardFragment.class.getName(),
207             LanguageAndInputSettings.class.getName(),
208             SpellCheckersSettings.class.getName(),
209             UserDictionaryList.class.getName(),
210             UserDictionarySettings.class.getName(),
211             DisplaySettings.class.getName(),
212             MyDeviceInfoFragment.class.getName(),
213             ModuleLicensesDashboard.class.getName(),
214             ManageApplications.class.getName(),
215             FirmwareVersionSettings.class.getName(),
216             ManageAssist.class.getName(),
217             ProcessStatsUi.class.getName(),
218             NotificationStation.class.getName(),
219             LocationSettings.class.getName(),
220             WifiScanningFragment.class.getName(),
221             PrivacyDashboardFragment.class.getName(),
222             PrivacyControlsFragment.class.getName(),
223             LocationServices.class.getName(),
224             SecuritySettings.class.getName(),
225             SecurityAdvancedSettings.class.getName(),
226             UsageAccessDetails.class.getName(),
227             PrivacySettings.class.getName(),
228             DeviceAdminSettings.class.getName(),
229             AccessibilityDetailsSettingsFragment.class.getName(),
230             AccessibilitySettings.class.getName(),
231             AccessibilitySettingsForSetupWizard.class.getName(),
232             TextReadingPreferenceFragmentForSetupWizard.class.getName(),
233             CaptionPropertiesFragment.class.getName(),
234             ToggleDaltonizerPreferenceFragment.class.getName(),
235             ToggleColorInversionPreferenceFragment.class.getName(),
236             ToggleReduceBrightColorsPreferenceFragment.class.getName(),
237             TextToSpeechSettings.class.getName(),
238             PrivateVolumeForget.class.getName(),
239             PublicVolumeSettings.class.getName(),
240             DevelopmentSettingsDashboardFragment.class.getName(),
241             AndroidBeam.class.getName(),
242             WifiDisplaySettings.class.getName(),
243             PowerUsageSummary.class.getName(),
244             AccountSyncSettings.class.getName(),
245             AssistGestureSettings.class.getName(),
246             FaceSettings.class.getName(),
247             FingerprintSettings.FingerprintSettingsFragment.class.getName(),
248             CombinedBiometricSettings.class.getName(),
249             CombinedBiometricProfileSettings.class.getName(),
250             SwipeToNotificationSettings.class.getName(),
251             DoubleTapPowerSettings.class.getName(),
252             DoubleTapScreenSettings.class.getName(),
253             PickupGestureSettings.class.getName(),
254             DoubleTwistGestureSettings.class.getName(),
255             SystemNavigationGestureSettings.class.getName(),
256             DataUsageSummary.class.getName(),
257             DreamSettings.class.getName(),
258             UserSettings.class.getName(),
259             NotificationAccessSettings.class.getName(),
260             NotificationAccessDetails.class.getName(),
261             AppBubbleNotificationSettings.class.getName(),
262             ZenAccessSettings.class.getName(),
263             ZenAccessDetails.class.getName(),
264             ZenModeAutomationSettings.class.getName(),
265             PrintSettingsFragment.class.getName(),
266             PrintJobSettingsFragment.class.getName(),
267             TrustedCredentialsSettings.class.getName(),
268             PaymentSettings.class.getName(),
269             KeyboardLayoutPickerFragment.class.getName(),
270             PhysicalKeyboardFragment.class.getName(),
271             ZenModeSettings.class.getName(),
272             SoundSettings.class.getName(),
273             ConversationListSettings.class.getName(),
274             ConfigureNotificationSettings.class.getName(),
275             ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
276             ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
277             AppInfoDashboardFragment.class.getName(),
278             BatterySaverSettings.class.getName(),
279             AppNotificationSettings.class.getName(),
280             NotificationAssistantPicker.class.getName(),
281             ChannelNotificationSettings.class.getName(),
282             ApnSettings.class.getName(),
283             ApnEditor.class.getName(),
284             WifiCallingSettings.class.getName(),
285             ZenModeScheduleRuleSettings.class.getName(),
286             ZenModeEventRuleSettings.class.getName(),
287             ZenModeBlockedEffectsSettings.class.getName(),
288             ProcessStatsUi.class.getName(),
289             AdvancedPowerUsageDetail.class.getName(),
290             ProcessStatsSummary.class.getName(),
291             DrawOverlayDetails.class.getName(),
292             WriteSettingsDetails.class.getName(),
293             ExternalSourcesDetails.class.getName(),
294             ManageExternalStorageDetails.class.getName(),
295             WallpaperTypeSettings.class.getName(),
296             VrListenerSettings.class.getName(),
297             PictureInPictureSettings.class.getName(),
298             PictureInPictureDetails.class.getName(),
299             PremiumSmsAccess.class.getName(),
300             ManagedProfileSettings.class.getName(),
301             ChooseAccountFragment.class.getName(),
302             IccLockSettings.class.getName(),
303             TestingSettings.class.getName(),
304             WifiAPITest.class.getName(),
305             WifiInfo.class.getName(),
306             MainClear.class.getName(),
307             MainClearConfirm.class.getName(),
308             ResetDashboardFragment.class.getName(),
309             NightDisplaySettings.class.getName(),
310             ManageDomainUrls.class.getName(),
311             AutomaticStorageManagerSettings.class.getName(),
312             StorageDashboardFragment.class.getName(),
313             SystemDashboardFragment.class.getName(),
314             NetworkDashboardFragment.class.getName(),
315             ConnectedDeviceDashboardFragment.class.getName(),
316             UsbDetailsFragment.class.getName(),
317             AppDashboardFragment.class.getName(),
318             WifiCallingDisclaimerFragment.class.getName(),
319             AccountDashboardFragment.class.getName(),
320             EnterprisePrivacySettings.class.getName(),
321             WebViewAppPicker.class.getName(),
322             LockscreenDashboardFragment.class.getName(),
323             BluetoothDeviceDetailsFragment.class.getName(),
324             BluetoothBroadcastDialog.class.getName(),
325             BluetoothFindBroadcastsFragment.class.getName(),
326             DataUsageList.class.getName(),
327             ToggleBackupSettingFragment.class.getName(),
328             PreviouslyConnectedDeviceDashboardFragment.class.getName(),
329             BatterySaverScheduleSettings.class.getName(),
330             MobileNetworkListFragment.class.getName(),
331             PowerMenuSettings.class.getName(),
332             DarkModeSettingsFragment.class.getName(),
333             BugReportHandlerPicker.class.getName(),
334             GestureNavigationSettingsFragment.class.getName(),
335             ButtonNavigationSettingsFragment.class.getName(),
336             InteractAcrossProfilesSettings.class.getName(),
337             InteractAcrossProfilesDetails.class.getName(),
338             MediaControlsSettings.class.getName(),
339             NetworkProviderSettings.class.getName(),
340             NetworkSelectSettings.class.getName(),
341             AlarmsAndRemindersDetails.class.getName(),
342             MediaManagementAppsDetails.class.getName(),
343             AutoBrightnessSettings.class.getName(),
344             OneHandedSettings.class.getName(),
345             MobileNetworkSettings.class.getName(),
346             AppLocaleDetails.class.getName(),
347             TurnScreenOnSettings.class.getName(),
348             TurnScreenOnDetails.class.getName()
349     };
350 
351     public static final String[] SETTINGS_FOR_RESTRICTED = {
352             // Home page
353             Settings.NetworkDashboardActivity.class.getName(),
354             Settings.ConnectedDeviceDashboardActivity.class.getName(),
355             Settings.AppDashboardActivity.class.getName(),
356             Settings.DisplaySettingsActivity.class.getName(),
357             Settings.SoundSettingsActivity.class.getName(),
358             Settings.StorageDashboardActivity.class.getName(),
359             Settings.PowerUsageSummaryActivity.class.getName(),
360             Settings.AccountDashboardActivity.class.getName(),
361             Settings.PrivacySettingsActivity.class.getName(),
362             Settings.SecurityDashboardActivity.class.getName(),
363             Settings.AccessibilitySettingsActivity.class.getName(),
364             Settings.SystemDashboardActivity.class.getName(),
365             SupportDashboardActivity.class.getName(),
366             // Home page > Network & Internet
367             Settings.WifiSettingsActivity.class.getName(),
368             Settings.DataUsageSummaryActivity.class.getName(),
369             Settings.NetworkProviderSettingsActivity.class.getName(),
370             Settings.NetworkSelectActivity.class.getName(),
371             // Home page > Connected devices
372             Settings.BluetoothSettingsActivity.class.getName(),
373             Settings.WifiDisplaySettingsActivity.class.getName(),
374             Settings.PrintSettingsActivity.class.getName(),
375             // Home page > Apps & Notifications
376             Settings.UserSettingsActivity.class.getName(),
377             Settings.ConfigureNotificationSettingsActivity.class.getName(),
378             Settings.ManageApplicationsActivity.class.getName(),
379             Settings.PaymentSettingsActivity.class.getName(),
380             // Home page > Display
381             Settings.AdaptiveBrightnessActivity.class.getName(),
382             // Home page > Security & screen lock
383             Settings.LocationSettingsActivity.class.getName(),
384             // Home page > System
385             Settings.LanguageAndInputSettingsActivity.class.getName(),
386             Settings.DateTimeSettingsActivity.class.getName(),
387             Settings.EnterprisePrivacySettingsActivity.class.getName(),
388             Settings.MyDeviceInfoActivity.class.getName(),
389             Settings.ModuleLicensesActivity.class.getName(),
390             UserBackupSettingsActivity.class.getName(),
391     };
392 }
393