OSDN Git Service

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