blob: 8d04ab8daaea3bee2f34528ef215101099e90d8e [file] [log] [blame]
The Android Open Source Projectafc4ab22009-03-03 19:32:34 -08001/*
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
17package com.android.settings;
18
Zhen Zhangaaf5fe52020-02-18 15:10:32 -080019import android.content.Context;
20import android.content.Intent;
Bartosz Fabianowski92d25fb2017-03-24 18:04:31 +010021import android.os.Bundle;
Zoey Chen6978a902021-12-14 18:42:37 +080022import android.telephony.SubscriptionInfo;
23import android.telephony.SubscriptionManager;
24import android.telephony.ims.ImsRcsManager;
Jan Tomljanovic07bffff2021-04-27 20:58:12 +010025import android.text.TextUtils;
Zhen Zhangaaf5fe52020-02-18 15:10:32 -080026import android.util.FeatureFlagUtils;
Bartosz Fabianowski92d25fb2017-03-24 18:04:31 +010027
Jan Tomljanovic07bffff2021-04-27 20:58:12 +010028import com.android.internal.annotations.VisibleForTesting;
Zhen Zhangaaf5fe52020-02-18 15:10:32 -080029import com.android.settings.core.FeatureFlags;
Bartosz Fabianowski92d25fb2017-03-24 18:04:31 +010030import com.android.settings.enterprise.EnterprisePrivacySettings;
Zoey Chen6978a902021-12-14 18:42:37 +080031import com.android.settings.network.SubscriptionUtil;
32import com.android.settings.network.telephony.MobileNetworkUtils;
Jason Parks9f424cd2020-11-17 13:31:59 -060033import com.android.settings.overlay.FeatureFactory;
Jan Tomljanovic07bffff2021-04-27 20:58:12 +010034import com.android.settings.security.SecuritySettingsFeatureProvider;
Amith Yamasanid7993472010-08-18 13:59:28 -070035
Tsung-Mao Fangd3cd7512021-05-05 15:43:54 +080036import com.google.android.setupdesign.util.ThemeHelper;
37
Amith Yamasanid7993472010-08-18 13:59:28 -070038/**
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080039 * Top-level Settings activity
Amith Yamasanid7993472010-08-18 13:59:28 -070040 */
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080041public class Settings extends SettingsActivity {
Christopher Tatee0d934f2013-10-01 12:32:27 -070042
Amith Yamasani5203bdf2010-11-04 09:59:44 -070043 /*
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080044 * Settings subclasses for launching independently.
45 */
Kevin Chyn41acc692017-06-17 17:25:21 -070046 public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */}
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080047 public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
Fan Zhangf1f0f8b2018-06-22 10:40:07 -070048 public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
Kevin Chyn71899972018-07-10 17:20:29 -070049 public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }
Ilya Matyukhin8979f842019-04-28 15:10:02 -070050 public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ }
Mill Chen7edebee2021-04-09 23:14:27 +080051 public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ }
52 public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ }
Zhen Zhangaaf5fe52020-02-18 15:10:32 -080053 public static class TetherSettingsActivity extends SettingsActivity {
54 // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently.
55 @Override
56 public Intent getIntent() {
57 return wrapIntentWithAllInOneTetherSettingsIfNeeded(
58 getApplicationContext(), super.getIntent());
59 }
60 }
61 public static class WifiTetherSettingsActivity extends SettingsActivity {
62 // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently.
63 @Override
64 public Intent getIntent() {
65 return wrapIntentWithAllInOneTetherSettingsIfNeeded(
66 getApplicationContext(), super.getIntent());
67 }
68 }
69
70 private static Intent wrapIntentWithAllInOneTetherSettingsIfNeeded(
71 Context context, Intent superIntent) {
72 if (!FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE)) {
73 return superIntent;
74 }
75
76 final Intent modIntent = new Intent(superIntent);
77 modIntent.putExtra(EXTRA_SHOW_FRAGMENT,
78 AllInOneTetherSettings.class.getCanonicalName());
79 Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
80 if (args != null) {
81 args = new Bundle(args);
82 } else {
83 args = new Bundle();
84 }
85 args.putParcelable("intent", superIntent);
86 modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
87 return modIntent;
88 }
89
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080090 public static class VpnSettingsActivity extends SettingsActivity { /* empty */ }
Jason Chiu29a09e52021-10-12 17:24:34 +080091 /** Activity for Data saver settings. */
92 public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080093 public static class DateTimeSettingsActivity extends SettingsActivity { /* empty */ }
Jeff Sharkeya16257d2015-04-28 13:41:01 -070094 public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ }
Jeff Sharkeye77f0682015-04-29 11:24:57 -070095 public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -080096 public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
Arc Wang746176e2020-09-02 17:35:56 +080097 public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ }
SongFerng Wangfa6a3612021-12-08 14:25:41 +000098 public static class NetworkSelectActivity extends SettingsActivity { /* empty */ }
Weng Su29f4a352021-07-15 11:38:38 +080099 /** Activity for the Wi-Fi network details settings. */
100 public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800101 public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
Abodunrinwa Toki976bb3f2016-01-20 18:43:20 +0000102 public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800103 public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ }
Abodunrinwa Tokib28b2cc2016-03-22 16:29:38 +0000104 public static class PhysicalKeyboardActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800105 public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ }
106 public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ }
107 public static class LocalePickerActivity extends SettingsActivity { /* empty */ }
Doris Ling34cfd2e2017-02-03 16:16:42 -0800108 public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800109 public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ }
Jay Aliomer82a0ea02019-12-10 14:49:27 -0500110 public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800111 public static class DisplaySettingsActivity extends SettingsActivity { /* empty */ }
Justin Klaasseneae3d9f2016-07-21 19:25:17 -0700112 public static class NightDisplaySettingsActivity extends SettingsActivity { /* empty */ }
Sean Stout2bc94d62017-05-18 13:39:25 -0700113 public static class NightDisplaySuggestionActivity extends NightDisplaySettingsActivity { /* empty */ }
Abel Tesfaye029c0952021-03-04 21:55:47 +0000114 public static class SmartAutoRotateSettingsActivity extends SettingsActivity { /* empty */ }
Fan Zhang881d5792018-01-26 10:15:56 -0800115 public static class MyDeviceInfoActivity extends SettingsActivity { /* empty */ }
Andrew Sapperstein56a8c332019-06-18 09:44:18 -0700116 public static class ModuleLicensesActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800117 public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ }
118 public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ }
Xiyuan Xia86a55402015-06-02 14:55:32 -0700119 public static class ManageAssistActivity extends SettingsActivity { /* empty */ }
Jason Monk1eb54eb2015-04-29 12:46:42 -0400120 public static class HighPowerApplicationsActivity extends SettingsActivity { /* empty */ }
Dianne Hackbornf467c0a2015-12-07 16:36:09 -0800121 public static class BackgroundCheckSummaryActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800122 public static class StorageUseActivity extends SettingsActivity { /* empty */ }
jeffreyhuang142682c2017-10-17 11:05:15 -0700123 public static class DevelopmentSettingsDashboardActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800124 public static class AccessibilitySettingsActivity extends SettingsActivity { /* empty */ }
Jackal Guo29365512019-02-14 15:19:53 +0800125 public static class AccessibilityDetailsSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800126 public static class CaptioningSettingsActivity extends SettingsActivity { /* empty */ }
127 public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ }
128 public static class AccessibilityContrastSettingsActivity extends SettingsActivity { /* empty */ }
129 public static class AccessibilityDaltonizerSettingsActivity extends SettingsActivity { /* empty */ }
Jason Chiu29a09e52021-10-12 17:24:34 +0800130 /** Activity for lockscreen settings. */
Silin Huangc80b3ab2021-05-13 23:59:33 -0700131 public static class LockScreenSettingsActivity extends SettingsActivity { /* empty */ }
shaoweishen1b58ba52021-12-03 08:47:15 +0000132 /** Activity for bluetooth pairing settings. */
133 public static class BlueToothPairingActivity extends SettingsActivity { /* empty */ }
Jason Chiu29a09e52021-10-12 17:24:34 +0800134 /** Activity for Reduce Bright Colors. */
Sally9fe91b92020-10-16 22:45:27 +0000135 public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ }
Jan Tomljanovic07bffff2021-04-27 20:58:12 +0100136 /** Activity for the security dashboard. */
137 public static class SecurityDashboardActivity extends SettingsActivity {
138
139 /** Whether the given fragment is allowed. */
140 @VisibleForTesting
141 @Override
142 public boolean isValidFragment(String fragmentName) {
143 return super.isValidFragment(fragmentName)
144 || (fragmentName != null
145 && TextUtils.equals(fragmentName, getAlternativeFragmentName()));
146 }
147
148 @Override
149 public String getInitialFragmentName(Intent intent) {
150 final String alternativeFragmentName = getAlternativeFragmentName();
151 if (alternativeFragmentName != null) {
152 return alternativeFragmentName;
153 }
154
155 return super.getInitialFragmentName(intent);
156 }
157
158 private String getAlternativeFragmentName() {
159 String alternativeFragmentClassname = null;
160 final SecuritySettingsFeatureProvider securitySettingsFeatureProvider =
161 FeatureFactory.getFactory(this).getSecuritySettingsFeatureProvider();
162 if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) {
163 alternativeFragmentClassname = securitySettingsFeatureProvider
164 .getAlternativeSecuritySettingsFragmentClassname();
165 }
166 return alternativeFragmentClassname;
167 }
168 }
Dianne Hackbornb51253c2014-08-12 15:08:04 -0700169 public static class UsageAccessSettingsActivity extends SettingsActivity { /* empty */ }
Fan Zhang104ee2e2018-09-20 16:21:53 -0700170 public static class AppUsageAccessSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800171 public static class LocationSettingsActivity extends SettingsActivity { /* empty */ }
Lifu Tangf72f8302018-04-12 10:01:29 -0700172 public static class ScanningSettingsActivity extends SettingsActivity { /* empty */ }
Weng Su9e6966d2021-10-13 23:08:50 +0800173 public static class WifiScanningSettingsActivity extends SettingsActivity { /* empty */ }
Fan Zhang11482d22019-02-06 10:37:03 -0800174 public static class PrivacyDashboardActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800175 public static class PrivacySettingsActivity extends SettingsActivity { /* empty */ }
Mill Chen1e607902021-02-25 15:03:25 +0800176 public static class FactoryResetActivity extends SettingsActivity {
177 @Override
178 protected void onCreate(Bundle savedState) {
179 setTheme(SetupWizardUtils.getTheme(this, getIntent()));
Tsung-Mao Fangd3cd7512021-05-05 15:43:54 +0800180 ThemeHelper.trySetDynamicColor(this);
Mill Chen1e607902021-02-25 15:03:25 +0800181 super.onCreate(savedState);
182 }
183
184 @Override
185 protected boolean isToolbarEnabled() {
186 return false;
187 }
188 }
189 public static class FactoryResetConfirmActivity extends SettingsActivity {
190 @Override
191 protected void onCreate(Bundle savedState) {
192 setTheme(SetupWizardUtils.getTheme(this, getIntent()));
Tsung-Mao Fangd3cd7512021-05-05 15:43:54 +0800193 ThemeHelper.trySetDynamicColor(this);
Mill Chen1e607902021-02-25 15:03:25 +0800194 super.onCreate(savedState);
195 }
196
197 @Override
198 protected boolean isToolbarEnabled() {
199 return false;
200 }
201 }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800202 public static class RunningServicesActivity extends SettingsActivity { /* empty */ }
John Spurlockc7f8e8c2014-06-04 19:11:22 -0400203 public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ }
Salvador Martinez32917042019-03-20 15:23:19 -0700204 public static class BatterySaverScheduleSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800205 public static class AccountSyncSettingsActivity extends SettingsActivity { /* empty */ }
206 public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ }
207 public static class CryptKeeperSettingsActivity extends SettingsActivity { /* empty */ }
208 public static class DeviceAdminSettingsActivity extends SettingsActivity { /* empty */ }
209 public static class DataUsageSummaryActivity extends SettingsActivity { /* empty */ }
Malcolm Chen52584e92017-06-20 11:14:27 -0700210 public static class MobileDataUsageListActivity extends SettingsActivity { /* empty */ }
Amin Shaikh3aa547b2017-01-06 18:31:41 -0800211 public static class ConfigureWifiSettingsActivity extends SettingsActivity { /* empty */ }
PauloftheWest7837b992014-06-24 07:42:27 -0700212 public static class SavedAccessPointsSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800213 public static class TextToSpeechSettingsActivity extends SettingsActivity { /* empty */ }
214 public static class AndroidBeamSettingsActivity extends SettingsActivity { /* empty */ }
215 public static class WifiDisplaySettingsActivity extends SettingsActivity { /* empty */ }
216 public static class DreamSettingsActivity extends SettingsActivity { /* empty */ }
217 public static class NotificationStationActivity extends SettingsActivity { /* empty */ }
218 public static class UserSettingsActivity extends SettingsActivity { /* empty */ }
219 public static class NotificationAccessSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynolds31dc1fd2019-10-29 15:15:08 -0400220 public static class NotificationAccessDetailsActivity extends SettingsActivity { /* empty */ }
Ruben Brunkc461d5c2016-04-07 21:45:41 -0700221 public static class VrListenersSettingsActivity extends SettingsActivity { /* empty */ }
Amber Ogata9d5de292020-12-16 20:37:22 +0000222 public static class PremiumSmsAccessActivity extends SettingsActivity { /* empty */ }
Winson Chung0a0d95a2017-01-20 11:22:44 -0800223 public static class PictureInPictureSettingsActivity extends SettingsActivity { /* empty */ }
Winson Chung217d0e92017-03-17 15:48:38 -0700224 public static class AppPictureInPictureSettingsActivity extends SettingsActivity { /* empty */ }
John Spurlock08531a82015-05-07 17:45:43 -0400225 public static class ZenAccessSettingsActivity extends SettingsActivity { /* empty */ }
Fan Zhange366f022019-03-19 13:08:10 -0700226 public static class ZenAccessDetailSettingsActivity extends SettingsActivity {}
John Spurlockc9afadb2014-04-29 18:07:23 -0400227 public static class ConditionProviderSettingsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800228 public static class UsbSettingsActivity extends SettingsActivity { /* empty */ }
Jerry Zhangd18d6f12018-01-11 16:47:14 -0800229 public static class UsbDetailsActivity extends SettingsActivity { /* empty */ }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800230 public static class TrustedCredentialsSettingsActivity extends SettingsActivity { /* empty */ }
231 public static class PaymentSettingsActivity extends SettingsActivity { /* empty */ }
232 public static class PrintSettingsActivity extends SettingsActivity { /* empty */ }
233 public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ }
John Spurlock72438062014-02-27 18:01:20 -0500234 public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ }
Beverlyad898e62017-09-25 14:14:31 -0400235 public static class ZenModeBehaviorSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynoldsd640a972018-03-02 15:51:14 -0500236 public static class ZenModeBlockedEffectsSettingsActivity extends SettingsActivity { /* empty */ }
John Spurlockd8b36832015-04-03 15:11:33 -0400237 public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ }
John Spurlock45fa1402015-04-09 12:50:04 -0400238 public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ }
John Spurlockf57bad72015-04-30 09:26:15 -0400239 public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynolds8c0a4232015-11-24 10:08:14 -0500240 public static class SoundSettingsActivity extends SettingsActivity { /* empty */ }
241 public static class ConfigureNotificationSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynolds6a88e142020-06-02 11:20:13 -0400242 public static class ConversationListSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynolds4e48da92019-03-26 09:04:22 -0400243 public static class AppBubbleNotificationSettingsActivity extends SettingsActivity { /* empty */ }
Fabian Kozynski01b2a632019-02-20 12:55:10 -0500244 public static class NotificationAssistantSettingsActivity extends SettingsActivity{ /* empty */ }
Julia Reynoldsff9500d2018-03-21 15:23:13 -0400245 public static class NotificationAppListActivity extends SettingsActivity { /* empty */ }
John Spurlock81bef1d72014-05-16 15:50:13 -0400246 public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynolds69492882017-01-25 10:32:07 -0500247 public static class ChannelNotificationSettingsActivity extends SettingsActivity { /* empty */ }
Julia Reynolds0c3f4bc2017-08-25 09:40:24 -0400248 public static class ChannelGroupNotificationSettingsActivity extends SettingsActivity { /* empty */ }
Todd Kennedy2ef1aa52016-09-06 14:02:38 -0700249 public static class ManageDomainUrlsActivity extends SettingsActivity { /* empty */ }
Daniel Nishi39818892016-09-20 16:40:49 -0700250 public static class AutomaticStorageManagerSettingsActivity extends SettingsActivity { /* empty */ }
Daniel Nishic208eff2017-01-11 17:50:02 -0800251 public static class GamesStorageActivity extends SettingsActivity { /* empty */ }
Mehdi Alizadeh03555962019-12-13 15:31:53 -0800252 public static class GestureNavigationSettingsActivity extends SettingsActivity { /* empty */ }
Jernej Virag97ea2792021-08-09 18:11:28 +0000253 /** Activity to manage 2-/3-button navigation configuration. */
254 public static class ButtonNavigationSettingsActivity extends SettingsActivity { /* empty */ }
kholoud mohamed14a887f2020-01-29 17:38:31 +0000255 public static class InteractAcrossProfilesSettingsActivity extends SettingsActivity {
256 /* empty */
257 }
258 public static class AppInteractAcrossProfilesSettingsActivity extends SettingsActivity {
259 /* empty */
260 }
Fabrice Di Meglio263bcc82014-01-17 19:17:58 -0800261
Fabrice Di Meglio61a1fec2014-08-13 16:22:38 -0700262 public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
Pavel Zhamaitsiak4ab32562015-02-23 15:34:07 -0800263 public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ }
Jason Monk2acff552015-06-11 15:47:29 -0400264 public static class MemorySettingsActivity extends SettingsActivity { /* empty */ }
Muyuan Liba115af2016-03-25 15:46:12 -0700265 public static class AppMemoryUsageActivity extends SettingsActivity { /* empty */ }
Billy Lau7f70ba12015-07-03 17:01:18 +0100266 public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ }
shafik430b94b2020-01-06 13:50:10 +0000267 public static class ManageExternalStorageActivity extends SettingsActivity { /* empty */ }
shafika54d7a82020-01-08 18:03:22 +0000268 public static class AppManageExternalStorageActivity extends SettingsActivity { /* empty */ }
Ivan Chiangd01c81e2021-03-09 10:39:45 +0800269 public static class MediaManagementAppsActivity extends SettingsActivity { /* empty */ }
270 public static class AppMediaManagementAppsActivity extends SettingsActivity { /* empty */ }
Billy Lau7f70ba12015-07-03 17:01:18 +0100271 public static class WriteSettingsActivity extends SettingsActivity { /* empty */ }
xshu3f048972018-01-31 17:40:37 -0800272 public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ }
Bernardo Rufino88540312019-11-25 19:40:53 +0000273 public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ }
Billy Laufee78562015-07-27 12:57:07 +0100274 public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ }
Jason Monk4da79e02015-09-10 10:54:36 -0400275
Fan Zhang372789b2018-01-23 14:26:30 -0800276 public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ }
Suprabh Shuklaf59d2112017-03-06 17:51:05 -0800277 public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ }
Vladislav Kaznacheev6e93bdd2016-03-09 14:24:45 -0800278 public static class WallpaperSettingsActivity extends SettingsActivity { /* empty */ }
Tony Mak64f6d982016-05-03 18:55:41 +0100279 public static class ManagedProfileSettingsActivity extends SettingsActivity { /* empty */ }
Daniel Nishi287d9112016-05-03 18:00:49 -0700280 public static class DeletionHelperActivity extends SettingsActivity { /* empty */ }
Jason Monkb9e5d232016-01-26 17:43:57 -0500281
Suprabh Shuklac8b92402021-02-17 18:00:35 -0800282 /** Actviity to manage apps with {@link android.Manifest.permission#SCHEDULE_EXACT_ALARM} */
283 public static class AlarmsAndRemindersActivity extends SettingsActivity {/* empty */ }
284 /** App specific version of {@link AlarmsAndRemindersActivity} */
285 public static class AlarmsAndRemindersAppActivity extends SettingsActivity {/* empty */ }
kholoud mohamed14a887f2020-01-29 17:38:31 +0000286
Jason Monkb7e43802016-06-06 16:01:58 -0400287 public static class ApnEditorActivity extends SettingsActivity { /* empty */ }
288 public static class ChooseAccountActivity extends SettingsActivity { /* empty */ }
289 public static class IccLockSettingsActivity extends SettingsActivity { /* empty */ }
Jason Monkb7e43802016-06-06 16:01:58 -0400290 public static class TestingSettingsActivity extends SettingsActivity { /* empty */ }
291 public static class WifiAPITestActivity extends SettingsActivity { /* empty */ }
292 public static class WifiInfoActivity extends SettingsActivity { /* empty */ }
Bartosz Fabianowski92d25fb2017-03-24 18:04:31 +0100293 public static class EnterprisePrivacySettingsActivity extends SettingsActivity {
294 @Override
295 public void onCreate(Bundle savedInstanceState) {
296 super.onCreate(savedInstanceState);
Jason Parks9f424cd2020-11-17 13:31:59 -0600297 if (FeatureFactory.getFactory(this)
298 .getEnterprisePrivacyFeatureProvider(this)
299 .showParentalControls()) {
300 finish();
301 } else if (!EnterprisePrivacySettings.isPageEnabled(this)) {
Bartosz Fabianowski92d25fb2017-03-24 18:04:31 +0100302 finish();
303 }
304 }
305 }
Gustav Sennton5b596282017-02-03 16:19:02 +0000306 public static class WebViewAppPickerActivity extends SettingsActivity { /* empty */ }
hughchenbd3e5de2018-03-23 16:14:13 +0800307 public static class AdvancedConnectedDeviceActivity extends SettingsActivity { /* empty */ }
jackqdyulei715408e2019-02-07 15:47:52 -0800308 public static class BluetoothDeviceDetailActivity extends SettingsActivity { /* empty */ }
manabu, shimoda9fae7392017-11-08 11:32:31 +0900309 public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ }
Antony Sargent94d97902019-03-26 09:50:22 -0700310 public static class MobileNetworkListActivity extends SettingsActivity {}
Fabian Kozynski83df54b2020-03-24 16:37:57 -0400311 public static class PowerMenuSettingsActivity extends SettingsActivity {}
Zoey Chen6978a902021-12-14 18:42:37 +0800312 public static class MobileNetworkActivity extends SettingsActivity {
313
314 public static final String EXTRA_MMS_MESSAGE = "mms_message";
315 public static final String EXTRA_SHOW_CAPABILITY_DISCOVERY_OPT_IN =
316 "show_capability_discovery_opt_in";
317
318 @Override
319 public Intent getIntent() {
320 final Intent intent = new Intent(super.getIntent());
321 int subId = intent.getIntExtra(android.provider.Settings.EXTRA_SUB_ID,
322 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
323 SubscriptionInfo subInfo = SubscriptionUtil.getSubscriptionOrDefault(
324 getApplicationContext(), subId);
325 CharSequence title = SubscriptionUtil.getUniqueSubscriptionDisplayName(
326 subInfo, getApplicationContext());
327 intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, title);
328 intent.putExtra(android.provider.Settings.EXTRA_SUB_ID, subId);
329 if (android.provider.Settings.ACTION_MMS_MESSAGE_SETTING.equals(intent.getAction())) {
330 // highlight "mms_message" preference.
331 intent.putExtra(EXTRA_FRAGMENT_ARG_KEY, EXTRA_MMS_MESSAGE);
332 }
333
334 if (doesIntentContainOptInAction(intent)) {
335 intent.putExtra(EXTRA_SHOW_CAPABILITY_DISCOVERY_OPT_IN,
336 maybeShowContactDiscoveryDialog(subId));
337 }
338
339 return intent;
340 }
341
342 private boolean maybeShowContactDiscoveryDialog(int subId) {
343 // If this activity was launched using ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN, show the
344 // associated dialog only if the opt-in has not been granted yet.
345 return MobileNetworkUtils.isContactDiscoveryVisible(getApplicationContext(), subId)
346 // has the user already enabled this configuration?
347 && !MobileNetworkUtils.isContactDiscoveryEnabled(
348 getApplicationContext(), subId);
349 }
350
351 public static boolean doesIntentContainOptInAction(Intent intent) {
352 String intentAction = (intent != null ? intent.getAction() : null);
353 return TextUtils.equals(intentAction,
354 ImsRcsManager.ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN);
355 }
356 }
Zoey Chen989dd662021-11-19 21:22:21 +0800357
Paul Chang6ae4c4d2019-11-28 22:38:49 +0800358 /**
359 * Activity for BugReportHandlerPicker.
360 */
361 public static class BugReportHandlerPickerActivity extends SettingsActivity { /* empty */ }
Jason Monkb7e43802016-06-06 16:01:58 -0400362
Fan Zhanga96a2d82016-09-27 17:51:11 -0700363 // Top level categories for new IA
Fan Zhangbb93dc02016-10-11 16:27:45 -0700364 public static class NetworkDashboardActivity extends SettingsActivity {}
Jerry Zhang40bd5702018-02-23 14:43:58 -0800365 public static class ConnectedDeviceDashboardActivity extends SettingsActivity {}
jackqdyulei166102c2017-11-27 13:49:19 -0800366 public static class PowerUsageSummaryActivity extends SettingsActivity { /* empty */ }
Fan Zhangbb6d2602016-10-04 13:21:06 -0700367 public static class StorageDashboardActivity extends SettingsActivity {}
Fan Zhang881d5792018-01-26 10:15:56 -0800368 public static class AccountDashboardActivity extends SettingsActivity {}
Fan Zhangcc335d92016-09-29 14:37:14 -0700369 public static class SystemDashboardActivity extends SettingsActivity {}
Fan Zhanga96a2d82016-09-27 17:51:11 -0700370
Beth Thibodeau59cbd112020-06-09 23:38:41 -0400371 /**
372 * Activity for MediaControlsSettings
373 */
374 public static class MediaControlsSettingsActivity extends SettingsActivity {}
375
Yanting Yang92fce8e2020-12-17 23:26:49 +0800376 /**
377 * Activity for AppDashboard.
378 */
379 public static class AppDashboardActivity extends SettingsActivity {}
Jun Ono89c2c5e2019-05-30 12:56:43 +0900380
381 public static class AdaptiveBrightnessActivity extends SettingsActivity { /* empty */ }
Jason Changd1cf05c2021-10-21 16:12:15 +0800382
383 /**
384 * Activity for OneHandedSettings
385 */
386 public static class OneHandedSettingsActivity extends SettingsActivity { /* empty */ }
The Android Open Source Projectafc4ab22009-03-03 19:32:34 -0800387}