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 static android.provider.Settings.ACTION_PRIVACY_SETTINGS; 20 21 import android.content.ActivityNotFoundException; 22 import android.content.Context; 23 import android.content.Intent; 24 import android.os.Bundle; 25 import android.telephony.ims.ImsRcsManager; 26 import android.text.TextUtils; 27 import android.util.FeatureFlagUtils; 28 import android.util.Log; 29 30 import com.android.internal.annotations.VisibleForTesting; 31 import com.android.settings.biometrics.face.FaceSettings; 32 import com.android.settings.communal.CommunalPreferenceController; 33 import com.android.settings.core.FeatureFlags; 34 import com.android.settings.enterprise.EnterprisePrivacySettings; 35 import com.android.settings.network.MobileNetworkIntentConverter; 36 import com.android.settings.overlay.FeatureFactory; 37 import com.android.settings.safetycenter.SafetyCenterManagerWrapper; 38 import com.android.settings.security.SecuritySettingsFeatureProvider; 39 40 import com.google.android.setupdesign.util.ThemeHelper; 41 42 /** 43 * Top-level Settings activity 44 */ 45 public class Settings extends SettingsActivity { 46 47 /* 48 * Settings subclasses for launching independently. 49 */ 50 51 public static class MemtagPageActivity extends SettingsActivity { /* empty */} 52 public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */} 53 public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ } 54 public static class CreateShortcutActivity extends SettingsActivity { /* empty */ } 55 public static class FaceSettingsActivity extends SettingsActivity { /* empty */ } 56 /** Container for {@link FaceSettings} to use with a pre-defined task affinity. */ 57 public static class FaceSettingsInternalActivity extends SettingsActivity { /* empty */ } 58 public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ } 59 public static class FingerprintSettingsActivityV2 extends SettingsActivity { /* empty */ } 60 public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ } 61 public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ } 62 public static class TetherSettingsActivity extends SettingsActivity { 63 // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently. 64 @Override getIntent()65 public Intent getIntent() { 66 return wrapIntentWithAllInOneTetherSettingsIfNeeded( 67 getApplicationContext(), super.getIntent()); 68 } 69 } 70 public static class WifiTetherSettingsActivity extends SettingsActivity { 71 // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently. 72 @Override getIntent()73 public Intent getIntent() { 74 return wrapIntentWithAllInOneTetherSettingsIfNeeded( 75 getApplicationContext(), super.getIntent()); 76 } 77 } 78 wrapIntentWithAllInOneTetherSettingsIfNeeded( Context context, Intent superIntent)79 private static Intent wrapIntentWithAllInOneTetherSettingsIfNeeded( 80 Context context, Intent superIntent) { 81 if (!FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE)) { 82 return superIntent; 83 } 84 85 final Intent modIntent = new Intent(superIntent); 86 modIntent.putExtra(EXTRA_SHOW_FRAGMENT, 87 AllInOneTetherSettings.class.getCanonicalName()); 88 Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS); 89 if (args != null) { 90 args = new Bundle(args); 91 } else { 92 args = new Bundle(); 93 } 94 args.putParcelable("intent", superIntent); 95 modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args); 96 return modIntent; 97 } 98 99 public static class VpnSettingsActivity extends SettingsActivity { /* empty */ } 100 /** Activity for Data saver settings. */ 101 public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ } 102 public static class DateTimeSettingsActivity extends SettingsActivity { /* empty */ } 103 public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ } 104 public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ } 105 public static class WifiSettingsActivity extends SettingsActivity { /* empty */ } 106 public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ } 107 public static class NetworkSelectActivity extends SettingsActivity { /* empty */ } 108 /** Activity for the Wi-Fi network details settings. */ 109 public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ } 110 public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ } 111 public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ } 112 public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ } 113 public static class PhysicalKeyboardActivity extends SettingsActivity { /* empty */ } 114 public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ } 115 public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ } 116 public static class LocalePickerActivity extends SettingsActivity { /* empty */ } 117 public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ } 118 public static class LanguageSettingsActivity extends SettingsActivity { /* empty */ } 119 /** Activity for the regional preferences settings. */ 120 public static class RegionalPreferencesActivity extends SettingsActivity { /* empty */ } 121 public static class KeyboardSettingsActivity extends SettingsActivity { /* empty */ } 122 /** Activity for the navigation mode settings. */ 123 public static class NavigationModeSettingsActivity extends SettingsActivity { /* empty */ } 124 public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ } 125 public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ } 126 public static class DisplaySettingsActivity extends SettingsActivity { /* empty */ } 127 public static class NightDisplaySettingsActivity extends SettingsActivity { /* empty */ } 128 public static class NightDisplaySuggestionActivity extends NightDisplaySettingsActivity { /* empty */ } 129 public static class SmartAutoRotateSettingsActivity extends SettingsActivity { /* empty */ } 130 public static class MyDeviceInfoActivity extends SettingsActivity { /* empty */ } 131 public static class ModuleLicensesActivity extends SettingsActivity { /* empty */ } 132 public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ } 133 public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ } 134 public static class ManageAssistActivity extends SettingsActivity { /* empty */ } 135 public static class HighPowerApplicationsActivity extends SettingsActivity { /* empty */ } 136 public static class BackgroundCheckSummaryActivity extends SettingsActivity { /* empty */ } 137 public static class StorageUseActivity extends SettingsActivity { /* empty */ } 138 public static class DevelopmentSettingsDashboardActivity extends SettingsActivity { /* empty */ } 139 public static class AccessibilitySettingsActivity extends SettingsActivity { /* empty */ } 140 public static class AccessibilityDetailsSettingsActivity extends SettingsActivity { /* empty */ } 141 public static class CaptioningSettingsActivity extends SettingsActivity { /* empty */ } 142 public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ } 143 public static class AccessibilityContrastSettingsActivity extends SettingsActivity { /* empty */ } 144 public static class AccessibilityDaltonizerSettingsActivity extends SettingsActivity { /* empty */ } 145 /** Activity for lockscreen settings. */ 146 public static class LockScreenSettingsActivity extends SettingsActivity { /* empty */ } 147 /** Activity for bluetooth pairing settings. */ 148 public static class BlueToothPairingActivity extends SettingsActivity { /* empty */ } 149 /** Activity for Reduce Bright Colors. */ 150 public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ } 151 /** Activity for text reading settings. */ 152 public static class TextReadingSettingsActivity extends SettingsActivity { /* empty */ } 153 /** Activity for text color and motion settings. */ 154 public static class ColorAndMotionActivity extends SettingsActivity { /* empty */ } 155 /** Activity for the security dashboard. */ 156 public static class SecurityDashboardActivity extends SettingsActivity { 157 158 private static final String TAG = "SecurityDashboardActivity"; 159 160 @Override onCreate(Bundle savedState)161 protected void onCreate(Bundle savedState) { 162 super.onCreate(savedState); 163 handleSafetyCenterRedirection(); 164 } 165 166 /** Redirects to SafetyCenter if enabled. */ 167 @VisibleForTesting handleSafetyCenterRedirection()168 public void handleSafetyCenterRedirection() { 169 if (isFinishing()) { 170 // Don't trampoline if already exiting this activity. 171 return; 172 } 173 174 if (SafetyCenterManagerWrapper.get().isEnabled(this)) { 175 try { 176 startActivity(new Intent(Intent.ACTION_SAFETY_CENTER)); 177 finish(); 178 } catch (ActivityNotFoundException e) { 179 Log.e(TAG, "Unable to open safety center", e); 180 } 181 } 182 } 183 184 /** Whether the given fragment is allowed. */ 185 @VisibleForTesting 186 @Override isValidFragment(String fragmentName)187 public boolean isValidFragment(String fragmentName) { 188 return super.isValidFragment(fragmentName) 189 || (fragmentName != null 190 && TextUtils.equals(fragmentName, getAlternativeFragmentName())); 191 } 192 193 @Override getInitialFragmentName(Intent intent)194 public String getInitialFragmentName(Intent intent) { 195 final String alternativeFragmentName = getAlternativeFragmentName(); 196 if (alternativeFragmentName != null) { 197 return alternativeFragmentName; 198 } 199 200 return super.getInitialFragmentName(intent); 201 } 202 getAlternativeFragmentName()203 private String getAlternativeFragmentName() { 204 String alternativeFragmentClassname = null; 205 final SecuritySettingsFeatureProvider securitySettingsFeatureProvider = 206 FeatureFactory.getFactory(this).getSecuritySettingsFeatureProvider(); 207 if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) { 208 alternativeFragmentClassname = securitySettingsFeatureProvider 209 .getAlternativeSecuritySettingsFragmentClassname(); 210 } 211 return alternativeFragmentClassname; 212 } 213 } 214 /** Activity for the Advanced security settings. */ 215 public static class SecurityAdvancedSettings extends SettingsActivity { 216 private static final String TAG = "SecurityAdvancedActivity"; 217 @Override onCreate(Bundle savedState)218 protected void onCreate(Bundle savedState) { 219 super.onCreate(savedState); 220 handleMoreSettingsRedirection(); 221 } 222 223 /** Redirects to More Settings if Safety center is enabled. */ 224 @VisibleForTesting handleMoreSettingsRedirection()225 public void handleMoreSettingsRedirection() { 226 if (isFinishing()) { 227 // Don't trampoline if already exiting this activity. 228 return; 229 } 230 231 if (SafetyCenterManagerWrapper.get().isEnabled(this)) { 232 try { 233 startActivity( 234 new Intent("com.android.settings.MORE_SECURITY_PRIVACY_SETTINGS")); 235 finish(); 236 } catch (ActivityNotFoundException e) { 237 Log.e(TAG, "Unable to open More Settings", e); 238 } 239 } 240 } 241 } 242 /** Activity for the More settings page. */ 243 public static class MoreSecurityPrivacySettingsActivity extends SettingsActivity { /* empty */ } 244 public static class UsageAccessSettingsActivity extends SettingsActivity { /* empty */ } 245 public static class AppUsageAccessSettingsActivity extends SettingsActivity { /* empty */ } 246 public static class LocationSettingsActivity extends SettingsActivity { /* empty */ } 247 public static class ScanningSettingsActivity extends SettingsActivity { /* empty */ } 248 public static class WifiScanningSettingsActivity extends SettingsActivity { /* empty */ } 249 /** Activity for the privacy dashboard. */ 250 public static class PrivacyDashboardActivity extends SettingsActivity { 251 252 private static final String TAG = "PrivacyDashboardActivity"; 253 254 @Override onCreate(Bundle savedState)255 protected void onCreate(Bundle savedState) { 256 super.onCreate(savedState); 257 handleSafetyCenterRedirection(); 258 } 259 260 /** Redirects to SafetyCenter if enabled. */ 261 @VisibleForTesting handleSafetyCenterRedirection()262 public void handleSafetyCenterRedirection() { 263 if (isFinishing()) { 264 // Don't trampoline if already exiting this activity. 265 return; 266 } 267 268 if (ACTION_PRIVACY_SETTINGS.equals(getIntent().getAction()) 269 && SafetyCenterManagerWrapper.get().isEnabled(this)) { 270 try { 271 startActivity(new Intent(Intent.ACTION_SAFETY_CENTER)); 272 finish(); 273 } catch (ActivityNotFoundException e) { 274 Log.e(TAG, "Unable to open safety center", e); 275 } 276 } 277 } 278 } 279 public static class PrivacyControlsActivity extends SettingsActivity { /* empty */ } 280 public static class PrivacySettingsActivity extends SettingsActivity { /* empty */ } 281 public static class FactoryResetActivity extends SettingsActivity { 282 @Override onCreate(Bundle savedState)283 protected void onCreate(Bundle savedState) { 284 setTheme(SetupWizardUtils.getTheme(this, getIntent())); 285 ThemeHelper.trySetDynamicColor(this); 286 super.onCreate(savedState); 287 } 288 289 @Override isToolbarEnabled()290 protected boolean isToolbarEnabled() { 291 return false; 292 } 293 } 294 public static class FactoryResetConfirmActivity extends SettingsActivity { 295 @Override onCreate(Bundle savedState)296 protected void onCreate(Bundle savedState) { 297 setTheme(SetupWizardUtils.getTheme(this, getIntent())); 298 ThemeHelper.trySetDynamicColor(this); 299 super.onCreate(savedState); 300 } 301 302 @Override isToolbarEnabled()303 protected boolean isToolbarEnabled() { 304 return false; 305 } 306 } 307 public static class RunningServicesActivity extends SettingsActivity { /* empty */ } 308 public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ } 309 public static class BatterySaverScheduleSettingsActivity extends SettingsActivity { /* empty */ } 310 public static class AccountSyncSettingsActivity extends SettingsActivity { /* empty */ } 311 public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ } 312 public static class DeviceAdminSettingsActivity extends SettingsActivity { /* empty */ } 313 public static class DataUsageSummaryActivity extends SettingsActivity { /* empty */ } 314 public static class MobileDataUsageListActivity extends SettingsActivity { /* empty */ } 315 public static class ConfigureWifiSettingsActivity extends SettingsActivity { /* empty */ } 316 public static class SavedAccessPointsSettingsActivity extends SettingsActivity { /* empty */ } 317 public static class TextToSpeechSettingsActivity extends SettingsActivity { /* empty */ } 318 public static class AndroidBeamSettingsActivity extends SettingsActivity { /* empty */ } 319 public static class WifiDisplaySettingsActivity extends SettingsActivity { /* empty */ } 320 public static class DreamSettingsActivity extends SettingsActivity { /* empty */ } 321 /** Activity to manage communal settings */ 322 public static class CommunalSettingsActivity extends SettingsActivity { 323 @Override onCreate(Bundle savedInstanceState)324 public void onCreate(Bundle savedInstanceState) { 325 super.onCreate(savedInstanceState); 326 if (!CommunalPreferenceController.isAvailable(this)) { 327 finish(); 328 } 329 } 330 } 331 public static class NotificationStationActivity extends SettingsActivity { /* empty */ } 332 public static class UserSettingsActivity extends SettingsActivity { /* empty */ } 333 public static class NotificationAccessSettingsActivity extends SettingsActivity { /* empty */ } 334 public static class NotificationAccessDetailsActivity extends SettingsActivity { /* empty */ } 335 public static class VrListenersSettingsActivity extends SettingsActivity { /* empty */ } 336 public static class PremiumSmsAccessActivity extends SettingsActivity { /* empty */ } 337 public static class PictureInPictureSettingsActivity extends SettingsActivity { /* empty */ } 338 public static class TurnScreenOnSettingsActivity extends SettingsActivity { /* empty */ } 339 public static class AppTurnScreenOnSettingsActivity extends SettingsActivity { /* empty */ } 340 public static class AppPictureInPictureSettingsActivity extends SettingsActivity { /* empty */ } 341 public static class ZenAccessSettingsActivity extends SettingsActivity { /* empty */ } 342 public static class ZenAccessDetailSettingsActivity extends SettingsActivity {} 343 public static class ConditionProviderSettingsActivity extends SettingsActivity { /* empty */ } 344 public static class UsbSettingsActivity extends SettingsActivity { /* empty */ } 345 public static class UsbDetailsActivity extends SettingsActivity { /* empty */ } 346 public static class TrustedCredentialsSettingsActivity extends SettingsActivity { /* empty */ } 347 public static class PaymentSettingsActivity extends SettingsActivity { /* empty */ } 348 public static class PrintSettingsActivity extends SettingsActivity { /* empty */ } 349 public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ } 350 public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ } 351 public static class ZenModeBehaviorSettingsActivity extends SettingsActivity { /* empty */ } 352 public static class ZenModeBlockedEffectsSettingsActivity extends SettingsActivity { /* empty */ } 353 public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ } 354 public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ } 355 public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ } 356 public static class SoundSettingsActivity extends SettingsActivity { /* empty */ } 357 public static class ConfigureNotificationSettingsActivity extends SettingsActivity { /* empty */ } 358 public static class ConversationListSettingsActivity extends SettingsActivity { /* empty */ } 359 public static class AppBubbleNotificationSettingsActivity extends SettingsActivity { /* empty */ } 360 public static class NotificationAssistantSettingsActivity extends SettingsActivity{ /* empty */ } 361 public static class NotificationAppListActivity extends SettingsActivity { /* empty */ } 362 /** Activity to manage Cloned Apps page */ 363 public static class ClonedAppsListActivity extends SettingsActivity { /* empty */ } 364 /** Activity to manage Aspect Ratio app list page */ 365 public static class UserAspectRatioAppListActivity extends SettingsActivity { /* empty */ } 366 /** Activity to manage Aspect Ratio app page */ 367 public static class UserAspectRatioAppActivity extends SettingsActivity { /* empty */ } 368 public static class NotificationReviewPermissionsActivity extends SettingsActivity { /* empty */ } 369 public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ } 370 public static class ChannelNotificationSettingsActivity extends SettingsActivity { /* empty */ } 371 public static class ChannelGroupNotificationSettingsActivity extends SettingsActivity { /* empty */ } 372 public static class ManageDomainUrlsActivity extends SettingsActivity { /* empty */ } 373 public static class AutomaticStorageManagerSettingsActivity extends SettingsActivity { /* empty */ } 374 public static class GamesStorageActivity extends SettingsActivity { /* empty */ } 375 public static class GestureNavigationSettingsActivity extends SettingsActivity { /* empty */ } 376 /** Activity to manage 2-/3-button navigation configuration. */ 377 public static class ButtonNavigationSettingsActivity extends SettingsActivity { /* empty */ } 378 public static class InteractAcrossProfilesSettingsActivity extends SettingsActivity { 379 /* empty */ 380 } 381 public static class AppInteractAcrossProfilesSettingsActivity extends SettingsActivity { 382 /* empty */ 383 } 384 385 public static class ApnSettingsActivity extends SettingsActivity { /* empty */ } 386 public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ } 387 public static class MemorySettingsActivity extends SettingsActivity { /* empty */ } 388 public static class AppMemoryUsageActivity extends SettingsActivity { /* empty */ } 389 public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ } 390 public static class ManageExternalStorageActivity extends SettingsActivity { /* empty */ } 391 public static class AppManageExternalStorageActivity extends SettingsActivity { /* empty */ } 392 public static class MediaManagementAppsActivity extends SettingsActivity { /* empty */ } 393 public static class AppMediaManagementAppsActivity extends SettingsActivity { /* empty */ } 394 public static class WriteSettingsActivity extends SettingsActivity { /* empty */ } 395 public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ } 396 /** Activity to manage NFC Tag applications. */ 397 public static class ChangeNfcTagAppsActivity extends SettingsActivity { /* empty */ } 398 public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ } 399 public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ } 400 /** Activity to manage app battery usage details. */ 401 public static class AppBatteryUsageActivity extends SettingsActivity { /* empty */ } 402 403 public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ } 404 public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ } 405 public static class WallpaperSettingsActivity extends SettingsActivity { /* empty */ } 406 public static class ManagedProfileSettingsActivity extends SettingsActivity { /* empty */ } 407 public static class DeletionHelperActivity extends SettingsActivity { /* empty */ } 408 409 /** Actviity to manage apps with {@link android.Manifest.permission#SCHEDULE_EXACT_ALARM} */ 410 public static class AlarmsAndRemindersActivity extends SettingsActivity {/* empty */ } 411 /** App specific version of {@link AlarmsAndRemindersActivity} */ 412 public static class AlarmsAndRemindersAppActivity extends SettingsActivity {/* empty */ } 413 414 public static class ApnEditorActivity extends SettingsActivity { /* empty */ } 415 public static class ChooseAccountActivity extends SettingsActivity { /* empty */ } 416 public static class IccLockSettingsActivity extends SettingsActivity { /* empty */ } 417 public static class TestingSettingsActivity extends SettingsActivity { /* empty */ } 418 public static class WifiAPITestActivity extends SettingsActivity { /* empty */ } 419 public static class WifiInfoActivity extends SettingsActivity { /* empty */ } 420 public static class EnterprisePrivacySettingsActivity extends SettingsActivity { 421 @Override onCreate(Bundle savedInstanceState)422 public void onCreate(Bundle savedInstanceState) { 423 super.onCreate(savedInstanceState); 424 if (FeatureFactory.getFactory(this) 425 .getEnterprisePrivacyFeatureProvider(this) 426 .showParentalControls()) { 427 finish(); 428 } else if (!EnterprisePrivacySettings.isPageEnabled(this)) { 429 finish(); 430 } 431 } 432 } 433 public static class WebViewAppPickerActivity extends SettingsActivity { /* empty */ } 434 public static class AdvancedConnectedDeviceActivity extends SettingsActivity { /* empty */ } 435 public static class NfcSettingsActivity extends SettingsActivity { /* empty */ } 436 public static class BluetoothDeviceDetailActivity extends SettingsActivity { /* empty */ } 437 public static class StylusUsiDetailsActivity extends SettingsActivity { /* empty */ } 438 public static class BluetoothBroadcastActivity extends SettingsActivity { /* empty */ } 439 public static class BluetoothFindBroadcastsActivity extends SettingsActivity { /* empty */ } 440 public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ } 441 public static class MobileNetworkListActivity extends SettingsActivity {} 442 public static class PowerMenuSettingsActivity extends SettingsActivity {} 443 public static class MobileNetworkActivity extends SettingsActivity { 444 445 public static final String TAG = "MobileNetworkActivity"; 446 public static final String EXTRA_MMS_MESSAGE = "mms_message"; 447 public static final String EXTRA_SHOW_CAPABILITY_DISCOVERY_OPT_IN = 448 "show_capability_discovery_opt_in"; 449 450 private MobileNetworkIntentConverter mIntentConverter; 451 452 /** 453 * Override of #onNewIntent() requires Activity to have "singleTop" launch mode within 454 * AndroidManifest.xml 455 */ 456 @Override onNewIntent(Intent intent)457 protected void onNewIntent(Intent intent) { 458 super.onNewIntent(intent); 459 460 Log.d(TAG, "Starting onNewIntent"); 461 462 createUiFromIntent(null /* savedState */, convertIntent(intent)); 463 } 464 465 @Override getIntent()466 public Intent getIntent() { 467 return convertIntent(super.getIntent()); 468 } 469 convertIntent(Intent copyFrom)470 private Intent convertIntent(Intent copyFrom) { 471 if (mIntentConverter == null) { 472 mIntentConverter = new MobileNetworkIntentConverter(this); 473 } 474 Intent intent = mIntentConverter.apply(copyFrom); 475 return (intent == null) ? copyFrom : intent; 476 } 477 doesIntentContainOptInAction(Intent intent)478 public static boolean doesIntentContainOptInAction(Intent intent) { 479 String intentAction = (intent != null ? intent.getAction() : null); 480 return TextUtils.equals(intentAction, 481 ImsRcsManager.ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN); 482 } 483 } 484 485 /** Actviity to manage apps with {@link android.Manifest.permission#RUN_USER_INITIATED_JOBS} */ 486 public static class LongBackgroundTasksActivity extends SettingsActivity { /* empty */ } 487 /** App specific version of {@link LongBackgroundTasksActivity} */ 488 public static class LongBackgroundTasksAppActivity extends SettingsActivity { /* empty */ } 489 490 /** 491 * Activity for BugReportHandlerPicker. 492 */ 493 public static class BugReportHandlerPickerActivity extends SettingsActivity { /* empty */ } 494 495 // Top level categories for new IA 496 public static class NetworkDashboardActivity extends SettingsActivity {} 497 public static class ConnectedDeviceDashboardActivity extends SettingsActivity {} 498 public static class PowerUsageSummaryActivity extends SettingsActivity { /* empty */ } 499 public static class StorageDashboardActivity extends SettingsActivity {} 500 public static class AccountDashboardActivity extends SettingsActivity {} 501 public static class SystemDashboardActivity extends SettingsActivity {} 502 503 /** 504 * Activity for MediaControlsSettings 505 */ 506 public static class MediaControlsSettingsActivity extends SettingsActivity {} 507 508 /** 509 * Activity for AppDashboard. 510 */ 511 public static class AppDashboardActivity extends SettingsActivity {} 512 513 public static class AdaptiveBrightnessActivity extends SettingsActivity { /* empty */ } 514 515 /** 516 * Activity for OneHandedSettings 517 */ 518 public static class OneHandedSettingsActivity extends SettingsActivity { /* empty */ } 519 } 520