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