OSDN Git Service

DO NOT MERGE. ActivityPicker shouldn't grant permissions. am: f32a4fad5d am: 7c41707e...
[android-x86/packages-apps-Settings.git] / src / com / android / settings / core / gateway / SettingsGateway.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.core.gateway;
18
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;
129
130 public class SettingsGateway {
131
132     /**
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.
135      */
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(),
247     };
248
249     public static final String[] SETTINGS_FOR_RESTRICTED = {
250             // New IA
251             // Home page
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(),
284     };
285 }