1 /* 2 * Copyright (C) 2008 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; 18 19 import android.content.Context; 20 import android.content.Intent; 21 import android.os.Bundle; 22 import android.text.TextUtils; 23 import android.util.FeatureFlagUtils; 24 25 import com.android.internal.annotations.VisibleForTesting; 26 import com.android.settings.core.FeatureFlags; 27 import com.android.settings.enterprise.EnterprisePrivacySettings; 28 import com.android.settings.overlay.FeatureFactory; 29 import com.android.settings.security.SecuritySettingsFeatureProvider; 30 31 import com.google.android.setupdesign.util.ThemeHelper; 32 33 /** 34 * Top-level Settings activity 35 */ 36 public class Settings extends SettingsActivity { 37 38 /* 39 * Settings subclasses for launching independently. 40 */ 41 public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */} 42 public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ } 43 public static class CreateShortcutActivity extends SettingsActivity { /* empty */ } 44 public static class FaceSettingsActivity extends SettingsActivity { /* empty */ } 45 public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ } 46 public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ } 47 public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ } 48 public static class TetherSettingsActivity extends SettingsActivity { 49 // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently. 50 @Override getIntent()51 public Intent getIntent() { 52 return wrapIntentWithAllInOneTetherSettingsIfNeeded( 53 getApplicationContext(), super.getIntent()); 54 } 55 } 56 public static class WifiTetherSettingsActivity extends SettingsActivity { 57 // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently. 58 @Override getIntent()59 public Intent getIntent() { 60 return wrapIntentWithAllInOneTetherSettingsIfNeeded( 61 getApplicationContext(), super.getIntent()); 62 } 63 } 64 wrapIntentWithAllInOneTetherSettingsIfNeeded( Context context, Intent superIntent)65 private static Intent wrapIntentWithAllInOneTetherSettingsIfNeeded( 66 Context context, Intent superIntent) { 67 if (!FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE)) { 68 return superIntent; 69 } 70 71 final Intent modIntent = new Intent(superIntent); 72 modIntent.putExtra(EXTRA_SHOW_FRAGMENT, 73 AllInOneTetherSettings.class.getCanonicalName()); 74 Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS); 75 if (args != null) { 76 args = new Bundle(args); 77 } else { 78 args = new Bundle(); 79 } 80 args.putParcelable("intent", superIntent); 81 modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args); 82 return modIntent; 83 } 84 85 public static class VpnSettingsActivity extends SettingsActivity { /* empty */ } 86 /** Activity for Data saver settings. */ 87 public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ } 88 public static class DateTimeSettingsActivity extends SettingsActivity { /* empty */ } 89 public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ } 90 public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ } 91 public static class WifiSettingsActivity extends SettingsActivity { /* empty */ } 92 public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ } 93 public static class NetworkSelectActivity extends SettingsActivity { /* empty */ } 94 /** Activity for the Wi-Fi network details settings. */ 95 public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ } 96 public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ } 97 public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ } 98 public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ } 99 public static class PhysicalKeyboardActivity extends SettingsActivity { /* empty */ } 100 public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ } 101 public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ } 102 public static class LocalePickerActivity extends SettingsActivity { /* empty */ } 103 public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ } 104 public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ } 105 public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ } 106 public static class DisplaySettingsActivity extends SettingsActivity { /* empty */ } 107 public static class NightDisplaySettingsActivity extends SettingsActivity { /* empty */ } 108 public static class NightDisplaySuggestionActivity extends NightDisplaySettingsActivity { /* empty */ } 109 public static class SmartAutoRotateSettingsActivity extends SettingsActivity { /* empty */ } 110 public static class MyDeviceInfoActivity extends SettingsActivity { /* empty */ } 111 public static class ModuleLicensesActivity extends SettingsActivity { /* empty */ } 112 public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ } 113 public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ } 114 public static class ManageAssistActivity extends SettingsActivity { /* empty */ } 115 public static class HighPowerApplicationsActivity extends SettingsActivity { /* empty */ } 116 public static class BackgroundCheckSummaryActivity extends SettingsActivity { /* empty */ } 117 public static class StorageUseActivity extends SettingsActivity { /* empty */ } 118 public static class DevelopmentSettingsDashboardActivity extends SettingsActivity { /* empty */ } 119 public static class AccessibilitySettingsActivity extends SettingsActivity { /* empty */ } 120 public static class AccessibilityDetailsSettingsActivity extends SettingsActivity { /* empty */ } 121 public static class CaptioningSettingsActivity extends SettingsActivity { /* empty */ } 122 public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ } 123 public static class AccessibilityContrastSettingsActivity extends SettingsActivity { /* empty */ } 124 public static class AccessibilityDaltonizerSettingsActivity extends SettingsActivity { /* empty */ } 125 /** Activity for lockscreen settings. */ 126 public static class LockScreenSettingsActivity extends SettingsActivity { /* empty */ } 127 /** Activity for bluetooth pairing settings. */ 128 public static class BlueToothPairingActivity extends SettingsActivity { /* empty */ } 129 /** Activity for Reduce Bright Colors. */ 130 public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ } 131 /** Activity for the security dashboard. */ 132 public static class SecurityDashboardActivity extends SettingsActivity { 133 134 /** Whether the given fragment is allowed. */ 135 @VisibleForTesting 136 @Override isValidFragment(String fragmentName)137 public boolean isValidFragment(String fragmentName) { 138 return super.isValidFragment(fragmentName) 139 || (fragmentName != null 140 && TextUtils.equals(fragmentName, getAlternativeFragmentName())); 141 } 142 143 @Override getInitialFragmentName(Intent intent)144 public String getInitialFragmentName(Intent intent) { 145 final String alternativeFragmentName = getAlternativeFragmentName(); 146 if (alternativeFragmentName != null) { 147 return alternativeFragmentName; 148 } 149 150 return super.getInitialFragmentName(intent); 151 } 152 getAlternativeFragmentName()153 private String getAlternativeFragmentName() { 154 String alternativeFragmentClassname = null; 155 final SecuritySettingsFeatureProvider securitySettingsFeatureProvider = 156 FeatureFactory.getFactory(this).getSecuritySettingsFeatureProvider(); 157 if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) { 158 alternativeFragmentClassname = securitySettingsFeatureProvider 159 .getAlternativeSecuritySettingsFragmentClassname(); 160 } 161 return alternativeFragmentClassname; 162 } 163 } 164 public static class UsageAccessSettingsActivity extends SettingsActivity { /* empty */ } 165 public static class AppUsageAccessSettingsActivity extends SettingsActivity { /* empty */ } 166 public static class LocationSettingsActivity extends SettingsActivity { /* empty */ } 167 public static class ScanningSettingsActivity extends SettingsActivity { /* empty */ } 168 public static class WifiScanningSettingsActivity extends SettingsActivity { /* empty */ } 169 public static class PrivacyDashboardActivity extends SettingsActivity { /* empty */ } 170 public static class PrivacySettingsActivity extends SettingsActivity { /* empty */ } 171 public static class FactoryResetActivity extends SettingsActivity { 172 @Override onCreate(Bundle savedState)173 protected void onCreate(Bundle savedState) { 174 setTheme(SetupWizardUtils.getTheme(this, getIntent())); 175 ThemeHelper.trySetDynamicColor(this); 176 super.onCreate(savedState); 177 } 178 179 @Override isToolbarEnabled()180 protected boolean isToolbarEnabled() { 181 return false; 182 } 183 } 184 public static class FactoryResetConfirmActivity extends SettingsActivity { 185 @Override onCreate(Bundle savedState)186 protected void onCreate(Bundle savedState) { 187 setTheme(SetupWizardUtils.getTheme(this, getIntent())); 188 ThemeHelper.trySetDynamicColor(this); 189 super.onCreate(savedState); 190 } 191 192 @Override isToolbarEnabled()193 protected boolean isToolbarEnabled() { 194 return false; 195 } 196 } 197 public static class RunningServicesActivity extends SettingsActivity { /* empty */ } 198 public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ } 199 public static class BatterySaverScheduleSettingsActivity extends SettingsActivity { /* empty */ } 200 public static class AccountSyncSettingsActivity extends SettingsActivity { /* empty */ } 201 public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ } 202 public static class CryptKeeperSettingsActivity extends SettingsActivity { /* empty */ } 203 public static class DeviceAdminSettingsActivity extends SettingsActivity { /* empty */ } 204 public static class DataUsageSummaryActivity extends SettingsActivity { /* empty */ } 205 public static class MobileDataUsageListActivity extends SettingsActivity { /* empty */ } 206 public static class ConfigureWifiSettingsActivity extends SettingsActivity { /* empty */ } 207 public static class SavedAccessPointsSettingsActivity extends SettingsActivity { /* empty */ } 208 public static class TextToSpeechSettingsActivity extends SettingsActivity { /* empty */ } 209 public static class AndroidBeamSettingsActivity extends SettingsActivity { /* empty */ } 210 public static class WifiDisplaySettingsActivity extends SettingsActivity { /* empty */ } 211 public static class DreamSettingsActivity extends SettingsActivity { /* empty */ } 212 public static class NotificationStationActivity extends SettingsActivity { /* empty */ } 213 public static class UserSettingsActivity extends SettingsActivity { /* empty */ } 214 public static class NotificationAccessSettingsActivity extends SettingsActivity { /* empty */ } 215 public static class NotificationAccessDetailsActivity extends SettingsActivity { /* empty */ } 216 public static class VrListenersSettingsActivity extends SettingsActivity { /* empty */ } 217 public static class PremiumSmsAccessActivity extends SettingsActivity { /* empty */ } 218 public static class PictureInPictureSettingsActivity extends SettingsActivity { /* empty */ } 219 public static class AppPictureInPictureSettingsActivity extends SettingsActivity { /* empty */ } 220 public static class ZenAccessSettingsActivity extends SettingsActivity { /* empty */ } 221 public static class ZenAccessDetailSettingsActivity extends SettingsActivity {} 222 public static class ConditionProviderSettingsActivity extends SettingsActivity { /* empty */ } 223 public static class UsbSettingsActivity extends SettingsActivity { /* empty */ } 224 public static class UsbDetailsActivity extends SettingsActivity { /* empty */ } 225 public static class TrustedCredentialsSettingsActivity extends SettingsActivity { /* empty */ } 226 public static class PaymentSettingsActivity extends SettingsActivity { /* empty */ } 227 public static class PrintSettingsActivity extends SettingsActivity { /* empty */ } 228 public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ } 229 public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ } 230 public static class ZenModeBehaviorSettingsActivity extends SettingsActivity { /* empty */ } 231 public static class ZenModeBlockedEffectsSettingsActivity extends SettingsActivity { /* empty */ } 232 public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ } 233 public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ } 234 public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ } 235 public static class SoundSettingsActivity extends SettingsActivity { /* empty */ } 236 public static class ConfigureNotificationSettingsActivity extends SettingsActivity { /* empty */ } 237 public static class ConversationListSettingsActivity extends SettingsActivity { /* empty */ } 238 public static class AppBubbleNotificationSettingsActivity extends SettingsActivity { /* empty */ } 239 public static class NotificationAssistantSettingsActivity extends SettingsActivity{ /* empty */ } 240 public static class NotificationAppListActivity extends SettingsActivity { /* empty */ } 241 public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ } 242 public static class ChannelNotificationSettingsActivity extends SettingsActivity { /* empty */ } 243 public static class ChannelGroupNotificationSettingsActivity extends SettingsActivity { /* empty */ } 244 public static class ManageDomainUrlsActivity extends SettingsActivity { /* empty */ } 245 public static class AutomaticStorageManagerSettingsActivity extends SettingsActivity { /* empty */ } 246 public static class GamesStorageActivity extends SettingsActivity { /* empty */ } 247 public static class GestureNavigationSettingsActivity extends SettingsActivity { /* empty */ } 248 public static class InteractAcrossProfilesSettingsActivity extends SettingsActivity { 249 /* empty */ 250 } 251 public static class AppInteractAcrossProfilesSettingsActivity extends SettingsActivity { 252 /* empty */ 253 } 254 255 public static class ApnSettingsActivity extends SettingsActivity { /* empty */ } 256 public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ } 257 public static class MemorySettingsActivity extends SettingsActivity { /* empty */ } 258 public static class AppMemoryUsageActivity extends SettingsActivity { /* empty */ } 259 public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ } 260 public static class ManageExternalStorageActivity extends SettingsActivity { /* empty */ } 261 public static class AppManageExternalStorageActivity extends SettingsActivity { /* empty */ } 262 public static class MediaManagementAppsActivity extends SettingsActivity { /* empty */ } 263 public static class AppMediaManagementAppsActivity extends SettingsActivity { /* empty */ } 264 public static class WriteSettingsActivity extends SettingsActivity { /* empty */ } 265 public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ } 266 public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ } 267 public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ } 268 269 public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ } 270 public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ } 271 public static class WallpaperSettingsActivity extends SettingsActivity { /* empty */ } 272 public static class ManagedProfileSettingsActivity extends SettingsActivity { /* empty */ } 273 public static class DeletionHelperActivity extends SettingsActivity { /* empty */ } 274 275 /** Actviity to manage apps with {@link android.Manifest.permission#SCHEDULE_EXACT_ALARM} */ 276 public static class AlarmsAndRemindersActivity extends SettingsActivity {/* empty */ } 277 /** App specific version of {@link AlarmsAndRemindersActivity} */ 278 public static class AlarmsAndRemindersAppActivity extends SettingsActivity {/* empty */ } 279 280 public static class ApnEditorActivity extends SettingsActivity { /* empty */ } 281 public static class ChooseAccountActivity extends SettingsActivity { /* empty */ } 282 public static class IccLockSettingsActivity extends SettingsActivity { /* empty */ } 283 public static class TestingSettingsActivity extends SettingsActivity { /* empty */ } 284 public static class WifiAPITestActivity extends SettingsActivity { /* empty */ } 285 public static class WifiInfoActivity extends SettingsActivity { /* empty */ } 286 public static class EnterprisePrivacySettingsActivity extends SettingsActivity { 287 @Override onCreate(Bundle savedInstanceState)288 public void onCreate(Bundle savedInstanceState) { 289 super.onCreate(savedInstanceState); 290 if (FeatureFactory.getFactory(this) 291 .getEnterprisePrivacyFeatureProvider(this) 292 .showParentalControls()) { 293 finish(); 294 } else if (!EnterprisePrivacySettings.isPageEnabled(this)) { 295 finish(); 296 } 297 } 298 } 299 public static class WebViewAppPickerActivity extends SettingsActivity { /* empty */ } 300 public static class AdvancedConnectedDeviceActivity extends SettingsActivity { /* empty */ } 301 public static class BluetoothDeviceDetailActivity extends SettingsActivity { /* empty */ } 302 public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ } 303 public static class MobileNetworkListActivity extends SettingsActivity {} 304 public static class PowerMenuSettingsActivity extends SettingsActivity {} 305 /** 306 * Activity for BugReportHandlerPicker. 307 */ 308 public static class BugReportHandlerPickerActivity extends SettingsActivity { /* empty */ } 309 310 // Top level categories for new IA 311 public static class NetworkDashboardActivity extends SettingsActivity {} 312 public static class ConnectedDeviceDashboardActivity extends SettingsActivity {} 313 public static class PowerUsageSummaryActivity extends SettingsActivity { /* empty */ } 314 public static class StorageDashboardActivity extends SettingsActivity {} 315 public static class AccountDashboardActivity extends SettingsActivity {} 316 public static class SystemDashboardActivity extends SettingsActivity {} 317 318 /** 319 * Activity for MediaControlsSettings 320 */ 321 public static class MediaControlsSettingsActivity extends SettingsActivity {} 322 323 /** 324 * Activity for AppDashboard. 325 */ 326 public static class AppDashboardActivity extends SettingsActivity {} 327 } 328