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