• 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.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