2 * Copyright (C) 2016 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package com.android.settings.core.gateway;
19 import com.android.settings.ApnEditor;
20 import com.android.settings.ApnSettings;
21 import com.android.settings.ChooseLockPassword;
22 import com.android.settings.ChooseLockPattern;
23 import com.android.settings.CryptKeeperSettings;
24 import com.android.settings.DateTimeSettings;
25 import com.android.settings.DeviceAdminSettings;
26 import com.android.settings.DeviceInfoSettings;
27 import com.android.settings.DisplaySettings;
28 import com.android.settings.DreamSettings;
29 import com.android.settings.IccLockSettings;
30 import com.android.settings.MasterClear;
31 import com.android.settings.PrivacySettings;
32 import com.android.settings.SecuritySettings;
33 import com.android.settings.Settings;
34 import com.android.settings.TestingSettings;
35 import com.android.settings.TetherSettings;
36 import com.android.settings.TrustedCredentialsSettings;
37 import com.android.settings.UserDictionarySettings;
38 import com.android.settings.WifiCallingSettings;
39 import com.android.settings.accessibility.AccessibilitySettings;
40 import com.android.settings.accessibility.AccessibilitySettingsForSetupWizard;
41 import com.android.settings.accessibility.CaptionPropertiesFragment;
42 import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
43 import com.android.settings.accounts.AccountSyncSettings;
44 import com.android.settings.accounts.ChooseAccountActivity;
45 import com.android.settings.accounts.ManagedProfileSettings;
46 import com.android.settings.accounts.UserAndAccountDashboardFragment;
47 import com.android.settings.applications.AdvancedAppSettings;
48 import com.android.settings.applications.AppAndNotificationDashboardFragment;
49 import com.android.settings.applications.DrawOverlayDetails;
50 import com.android.settings.applications.ExternalSourcesDetails;
51 import com.android.settings.applications.InstalledAppDetails;
52 import com.android.settings.applications.ManageApplications;
53 import com.android.settings.applications.ManageDomainUrls;
54 import com.android.settings.applications.NotificationApps;
55 import com.android.settings.applications.PictureInPictureDetails;
56 import com.android.settings.applications.PictureInPictureSettings;
57 import com.android.settings.applications.ProcessStatsSummary;
58 import com.android.settings.applications.ProcessStatsUi;
59 import com.android.settings.applications.UsageAccessDetails;
60 import com.android.settings.applications.VrListenerSettings;
61 import com.android.settings.applications.WriteSettingsDetails;
62 import com.android.settings.applications.assist.ManageAssist;
63 import com.android.settings.bluetooth.BluetoothSettings;
64 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
65 import com.android.settings.dashboard.SupportFragment;
66 import com.android.settings.datausage.DataUsageSummary;
67 import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
68 import com.android.settings.development.DevelopmentSettings;
69 import com.android.settings.deviceinfo.ImeiInformation;
70 import com.android.settings.deviceinfo.PrivateVolumeForget;
71 import com.android.settings.deviceinfo.PrivateVolumeSettings;
72 import com.android.settings.deviceinfo.PublicVolumeSettings;
73 import com.android.settings.deviceinfo.SimStatus;
74 import com.android.settings.deviceinfo.Status;
75 import com.android.settings.deviceinfo.StorageDashboardFragment;
76 import com.android.settings.deviceinfo.StorageSettings;
77 import com.android.settings.display.NightDisplaySettings;
78 import com.android.settings.enterprise.EnterprisePrivacySettings;
79 import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
80 import com.android.settings.fuelgauge.BatterySaverSettings;
81 import com.android.settings.fuelgauge.PowerUsageSummary;
82 import com.android.settings.gestures.AssistGestureSettings;
83 import com.android.settings.gestures.DoubleTapPowerSettings;
84 import com.android.settings.gestures.DoubleTapScreenSettings;
85 import com.android.settings.gestures.DoubleTwistGestureSettings;
86 import com.android.settings.gestures.PickupGestureSettings;
87 import com.android.settings.gestures.SwipeToNotificationSettings;
88 import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
89 import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
90 import com.android.settings.inputmethod.PhysicalKeyboardFragment;
91 import com.android.settings.inputmethod.SpellCheckersSettings;
92 import com.android.settings.inputmethod.UserDictionaryList;
93 import com.android.settings.language.LanguageAndInputSettings;
94 import com.android.settings.localepicker.LocaleListEditor;
95 import com.android.settings.location.LocationSettings;
96 import com.android.settings.network.NetworkDashboardFragment;
97 import com.android.settings.nfc.AndroidBeam;
98 import com.android.settings.nfc.PaymentSettings;
99 import com.android.settings.notification.AppNotificationSettings;
100 import com.android.settings.notification.ChannelNotificationSettings;
101 import com.android.settings.notification.ConfigureNotificationSettings;
102 import com.android.settings.notification.NotificationAccessSettings;
103 import com.android.settings.notification.NotificationStation;
104 import com.android.settings.notification.SoundSettings;
105 import com.android.settings.notification.ZenAccessSettings;
106 import com.android.settings.notification.ZenModeEventRuleSettings;
107 import com.android.settings.notification.ZenModePrioritySettings;
108 import com.android.settings.notification.ZenModeScheduleRuleSettings;
109 import com.android.settings.notification.ZenModeSettings;
110 import com.android.settings.notification.ZenModeVisualInterruptionSettings;
111 import com.android.settings.print.PrintJobSettingsFragment;
112 import com.android.settings.print.PrintSettingsFragment;
113 import com.android.settings.security.LockscreenDashboardFragment;
114 import com.android.settings.sim.SimSettings;
115 import com.android.settings.system.ResetDashboardFragment;
116 import com.android.settings.system.SystemDashboardFragment;
117 import com.android.settings.tts.TextToSpeechSettings;
118 import com.android.settings.users.UserSettings;
119 import com.android.settings.vpn2.VpnSettings;
120 import com.android.settings.wallpaper.WallpaperTypeSettings;
121 import com.android.settings.webview.WebViewAppPicker;
122 import com.android.settings.wfd.WifiDisplaySettings;
123 import com.android.settings.wifi.ConfigureWifiSettings;
124 import com.android.settings.wifi.SavedAccessPointsWifiSettings;
125 import com.android.settings.wifi.WifiAPITest;
126 import com.android.settings.wifi.WifiInfo;
127 import com.android.settings.wifi.WifiSettings;
128 import com.android.settings.wifi.p2p.WifiP2pSettings;
130 public class SettingsGateway {
133 * A list of fragment that can be hosted by SettingsActivity. SettingsActivity will throw a
134 * security exception if the fragment it needs to display is not in this list.
136 public static final String[] ENTRY_FRAGMENTS = {
137 WifiSettings.class.getName(),
138 ConfigureWifiSettings.class.getName(),
139 SavedAccessPointsWifiSettings.class.getName(),
140 BluetoothSettings.class.getName(),
141 SimSettings.class.getName(),
142 TetherSettings.class.getName(),
143 WifiP2pSettings.class.getName(),
144 VpnSettings.class.getName(),
145 DateTimeSettings.class.getName(),
146 LocaleListEditor.class.getName(),
147 AvailableVirtualKeyboardFragment.class.getName(),
148 LanguageAndInputSettings.class.getName(),
149 SpellCheckersSettings.class.getName(),
150 UserDictionaryList.class.getName(),
151 UserDictionarySettings.class.getName(),
152 DisplaySettings.class.getName(),
153 DeviceInfoSettings.class.getName(),
154 ManageApplications.class.getName(),
155 NotificationApps.class.getName(),
156 ManageAssist.class.getName(),
157 ProcessStatsUi.class.getName(),
158 NotificationStation.class.getName(),
159 LocationSettings.class.getName(),
160 SecuritySettings.class.getName(),
161 UsageAccessDetails.class.getName(),
162 PrivacySettings.class.getName(),
163 DeviceAdminSettings.class.getName(),
164 AccessibilitySettings.class.getName(),
165 AccessibilitySettingsForSetupWizard.class.getName(),
166 CaptionPropertiesFragment.class.getName(),
167 ToggleDaltonizerPreferenceFragment.class.getName(),
168 TextToSpeechSettings.class.getName(),
169 StorageSettings.class.getName(),
170 PrivateVolumeForget.class.getName(),
171 PrivateVolumeSettings.class.getName(),
172 PublicVolumeSettings.class.getName(),
173 DevelopmentSettings.class.getName(),
174 AndroidBeam.class.getName(),
175 WifiDisplaySettings.class.getName(),
176 PowerUsageSummary.class.getName(),
177 AccountSyncSettings.class.getName(),
178 AssistGestureSettings.class.getName(),
179 SwipeToNotificationSettings.class.getName(),
180 DoubleTapPowerSettings.class.getName(),
181 DoubleTapScreenSettings.class.getName(),
182 PickupGestureSettings.class.getName(),
183 DoubleTwistGestureSettings.class.getName(),
184 CryptKeeperSettings.class.getName(),
185 DataUsageSummary.class.getName(),
186 DreamSettings.class.getName(),
187 UserSettings.class.getName(),
188 NotificationAccessSettings.class.getName(),
189 ZenAccessSettings.class.getName(),
190 PrintSettingsFragment.class.getName(),
191 PrintJobSettingsFragment.class.getName(),
192 TrustedCredentialsSettings.class.getName(),
193 PaymentSettings.class.getName(),
194 KeyboardLayoutPickerFragment.class.getName(),
195 PhysicalKeyboardFragment.class.getName(),
196 ZenModeSettings.class.getName(),
197 SoundSettings.class.getName(),
198 ConfigureNotificationSettings.class.getName(),
199 ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
200 ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
201 InstalledAppDetails.class.getName(),
202 BatterySaverSettings.class.getName(),
203 AppNotificationSettings.class.getName(),
204 ChannelNotificationSettings.class.getName(),
205 ApnSettings.class.getName(),
206 ApnEditor.class.getName(),
207 WifiCallingSettings.class.getName(),
208 ZenModePrioritySettings.class.getName(),
209 ZenModeScheduleRuleSettings.class.getName(),
210 ZenModeEventRuleSettings.class.getName(),
211 ZenModeVisualInterruptionSettings.class.getName(),
212 ProcessStatsUi.class.getName(),
213 AdvancedPowerUsageDetail.class.getName(),
214 ProcessStatsSummary.class.getName(),
215 DrawOverlayDetails.class.getName(),
216 WriteSettingsDetails.class.getName(),
217 ExternalSourcesDetails.class.getName(),
218 AdvancedAppSettings.class.getName(),
219 WallpaperTypeSettings.class.getName(),
220 VrListenerSettings.class.getName(),
221 PictureInPictureSettings.class.getName(),
222 PictureInPictureDetails.class.getName(),
223 ManagedProfileSettings.class.getName(),
224 ChooseAccountActivity.class.getName(),
225 IccLockSettings.class.getName(),
226 ImeiInformation.class.getName(),
227 SimStatus.class.getName(),
228 Status.class.getName(),
229 TestingSettings.class.getName(),
230 WifiAPITest.class.getName(),
231 WifiInfo.class.getName(),
232 MasterClear.class.getName(),
233 ResetDashboardFragment.class.getName(),
234 NightDisplaySettings.class.getName(),
235 ManageDomainUrls.class.getName(),
236 AutomaticStorageManagerSettings.class.getName(),
237 SupportFragment.class.getName(),
238 StorageDashboardFragment.class.getName(),
239 SystemDashboardFragment.class.getName(),
240 NetworkDashboardFragment.class.getName(),
241 ConnectedDeviceDashboardFragment.class.getName(),
242 AppAndNotificationDashboardFragment.class.getName(),
243 UserAndAccountDashboardFragment.class.getName(),
244 EnterprisePrivacySettings.class.getName(),
245 WebViewAppPicker.class.getName(),
246 LockscreenDashboardFragment.class.getName(),
249 public static final String[] SETTINGS_FOR_RESTRICTED = {
252 Settings.NetworkDashboardActivity.class.getName(),
253 Settings.ConnectedDeviceDashboardActivity.class.getName(),
254 Settings.AppAndNotificationDashboardActivity.class.getName(),
255 Settings.DisplaySettingsActivity.class.getName(),
256 Settings.SoundSettingsActivity.class.getName(),
257 Settings.StorageDashboardActivity.class.getName(),
258 Settings.PowerUsageSummaryActivity.class.getName(),
259 Settings.UserAndAccountDashboardActivity.class.getName(),
260 Settings.SecuritySettingsActivity.class.getName(),
261 Settings.AccessibilitySettingsActivity.class.getName(),
262 Settings.SystemDashboardActivity.class.getName(),
263 Settings.SupportDashboardActivity.class.getName(),
264 // Home page > Network & Internet
265 Settings.WifiSettingsActivity.class.getName(),
266 Settings.DataUsageSummaryActivity.class.getName(),
267 Settings.SimSettingsActivity.class.getName(),
268 // Home page > Connected devices
269 Settings.BluetoothSettingsActivity.class.getName(),
270 Settings.WifiDisplaySettingsActivity.class.getName(),
271 Settings.PrintSettingsActivity.class.getName(),
272 // Home page > Apps & Notifications
273 Settings.UserSettingsActivity.class.getName(),
274 Settings.ConfigureNotificationSettingsActivity.class.getName(),
275 Settings.ManageApplicationsActivity.class.getName(),
276 Settings.PaymentSettingsActivity.class.getName(),
277 // Home page > Security & screen lock
278 Settings.LocationSettingsActivity.class.getName(),
279 // Home page > System
280 Settings.LanguageAndInputSettingsActivity.class.getName(),
281 Settings.DateTimeSettingsActivity.class.getName(),
282 Settings.DeviceInfoSettingsActivity.class.getName(),
283 Settings.EnterprisePrivacySettingsActivity.class.getName(),