The Android Open Source Project | afc4ab2 | 2009-03-03 19:32:34 -0800 | [diff] [blame] | 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 | |
Jay Thomas Sullivan | ecc0a45 | 2022-05-05 20:56:43 +0000 | [diff] [blame] | 19 | import static android.provider.Settings.ACTION_PRIVACY_SETTINGS; |
| 20 | |
Jan Tomljanovic | 4436b7f | 2021-12-10 15:09:31 +0000 | [diff] [blame] | 21 | import android.content.ActivityNotFoundException; |
Zhen Zhang | aaf5fe5 | 2020-02-18 15:10:32 -0800 | [diff] [blame] | 22 | import android.content.Context; |
| 23 | import android.content.Intent; |
Bartosz Fabianowski | 92d25fb | 2017-03-24 18:04:31 +0100 | [diff] [blame] | 24 | import android.os.Bundle; |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 25 | import android.telephony.ims.ImsRcsManager; |
Jan Tomljanovic | 07bffff | 2021-04-27 20:58:12 +0100 | [diff] [blame] | 26 | import android.text.TextUtils; |
Zhen Zhang | aaf5fe5 | 2020-02-18 15:10:32 -0800 | [diff] [blame] | 27 | import android.util.FeatureFlagUtils; |
Jan Tomljanovic | 4436b7f | 2021-12-10 15:09:31 +0000 | [diff] [blame] | 28 | import android.util.Log; |
Bartosz Fabianowski | 92d25fb | 2017-03-24 18:04:31 +0100 | [diff] [blame] | 29 | |
Jan Tomljanovic | 07bffff | 2021-04-27 20:58:12 +0100 | [diff] [blame] | 30 | import com.android.internal.annotations.VisibleForTesting; |
Yuri Ufimtsev | be98245 | 2022-03-09 09:49:15 +0000 | [diff] [blame] | 31 | import com.android.settings.biometrics.face.FaceSettings; |
Zhen Zhang | aaf5fe5 | 2020-02-18 15:10:32 -0800 | [diff] [blame] | 32 | import com.android.settings.core.FeatureFlags; |
Bartosz Fabianowski | 92d25fb | 2017-03-24 18:04:31 +0100 | [diff] [blame] | 33 | import com.android.settings.enterprise.EnterprisePrivacySettings; |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 34 | import com.android.settings.network.MobileNetworkIntentConverter; |
Jason Parks | 9f424cd | 2020-11-17 13:31:59 -0600 | [diff] [blame] | 35 | import com.android.settings.overlay.FeatureFactory; |
Marie Matheson | ce321f0 | 2022-02-18 22:57:17 +0000 | [diff] [blame] | 36 | import com.android.settings.safetycenter.SafetyCenterManagerWrapper; |
Jan Tomljanovic | 07bffff | 2021-04-27 20:58:12 +0100 | [diff] [blame] | 37 | import com.android.settings.security.SecuritySettingsFeatureProvider; |
Amith Yamasani | d799347 | 2010-08-18 13:59:28 -0700 | [diff] [blame] | 38 | |
Tsung-Mao Fang | d3cd751 | 2021-05-05 15:43:54 +0800 | [diff] [blame] | 39 | import com.google.android.setupdesign.util.ThemeHelper; |
| 40 | |
Amith Yamasani | d799347 | 2010-08-18 13:59:28 -0700 | [diff] [blame] | 41 | /** |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 42 | * Top-level Settings activity |
Amith Yamasani | d799347 | 2010-08-18 13:59:28 -0700 | [diff] [blame] | 43 | */ |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 44 | public class Settings extends SettingsActivity { |
Christopher Tate | e0d934f | 2013-10-01 12:32:27 -0700 | [diff] [blame] | 45 | |
Amith Yamasani | 5203bdf | 2010-11-04 09:59:44 -0700 | [diff] [blame] | 46 | /* |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 47 | * Settings subclasses for launching independently. |
| 48 | */ |
Kevin Chyn | 41acc69 | 2017-06-17 17:25:21 -0700 | [diff] [blame] | 49 | public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */} |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 50 | public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ } |
Fan Zhang | f1f0f8b | 2018-06-22 10:40:07 -0700 | [diff] [blame] | 51 | public static class CreateShortcutActivity extends SettingsActivity { /* empty */ } |
Kevin Chyn | 7189997 | 2018-07-10 17:20:29 -0700 | [diff] [blame] | 52 | public static class FaceSettingsActivity extends SettingsActivity { /* empty */ } |
Yuri Ufimtsev | be98245 | 2022-03-09 09:49:15 +0000 | [diff] [blame] | 53 | /** Container for {@link FaceSettings} to use with a pre-defined task affinity. */ |
| 54 | public static class FaceSettingsInternalActivity extends SettingsActivity { /* empty */ } |
Ilya Matyukhin | 8979f84 | 2019-04-28 15:10:02 -0700 | [diff] [blame] | 55 | public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ } |
Mill Chen | 7edebee | 2021-04-09 23:14:27 +0800 | [diff] [blame] | 56 | public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ } |
| 57 | public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ } |
Zhen Zhang | aaf5fe5 | 2020-02-18 15:10:32 -0800 | [diff] [blame] | 58 | public static class TetherSettingsActivity extends SettingsActivity { |
| 59 | // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently. |
| 60 | @Override |
| 61 | public Intent getIntent() { |
| 62 | return wrapIntentWithAllInOneTetherSettingsIfNeeded( |
| 63 | getApplicationContext(), super.getIntent()); |
| 64 | } |
| 65 | } |
| 66 | public static class WifiTetherSettingsActivity extends SettingsActivity { |
| 67 | // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently. |
| 68 | @Override |
| 69 | public Intent getIntent() { |
| 70 | return wrapIntentWithAllInOneTetherSettingsIfNeeded( |
| 71 | getApplicationContext(), super.getIntent()); |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | private static Intent wrapIntentWithAllInOneTetherSettingsIfNeeded( |
| 76 | Context context, Intent superIntent) { |
| 77 | if (!FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE)) { |
| 78 | return superIntent; |
| 79 | } |
| 80 | |
| 81 | final Intent modIntent = new Intent(superIntent); |
| 82 | modIntent.putExtra(EXTRA_SHOW_FRAGMENT, |
| 83 | AllInOneTetherSettings.class.getCanonicalName()); |
| 84 | Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS); |
| 85 | if (args != null) { |
| 86 | args = new Bundle(args); |
| 87 | } else { |
| 88 | args = new Bundle(); |
| 89 | } |
| 90 | args.putParcelable("intent", superIntent); |
| 91 | modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args); |
| 92 | return modIntent; |
| 93 | } |
| 94 | |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 95 | public static class VpnSettingsActivity extends SettingsActivity { /* empty */ } |
Jason Chiu | 29a09e5 | 2021-10-12 17:24:34 +0800 | [diff] [blame] | 96 | /** Activity for Data saver settings. */ |
| 97 | public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 98 | public static class DateTimeSettingsActivity extends SettingsActivity { /* empty */ } |
Jeff Sharkey | a16257d | 2015-04-28 13:41:01 -0700 | [diff] [blame] | 99 | public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ } |
Jeff Sharkey | e77f068 | 2015-04-29 11:24:57 -0700 | [diff] [blame] | 100 | public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 101 | public static class WifiSettingsActivity extends SettingsActivity { /* empty */ } |
Arc Wang | 746176e | 2020-09-02 17:35:56 +0800 | [diff] [blame] | 102 | public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ } |
SongFerng Wang | fa6a361 | 2021-12-08 14:25:41 +0000 | [diff] [blame] | 103 | public static class NetworkSelectActivity extends SettingsActivity { /* empty */ } |
Weng Su | 29f4a35 | 2021-07-15 11:38:38 +0800 | [diff] [blame] | 104 | /** Activity for the Wi-Fi network details settings. */ |
| 105 | public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 106 | public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ } |
Abodunrinwa Toki | 976bb3f | 2016-01-20 18:43:20 +0000 | [diff] [blame] | 107 | public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 108 | public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ } |
Abodunrinwa Toki | b28b2cc | 2016-03-22 16:29:38 +0000 | [diff] [blame] | 109 | public static class PhysicalKeyboardActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 110 | public static class InputMethodAndSubtypeEnablerActivity extends SettingsActivity { /* empty */ } |
| 111 | public static class SpellCheckersSettingsActivity extends SettingsActivity { /* empty */ } |
| 112 | public static class LocalePickerActivity extends SettingsActivity { /* empty */ } |
Doris Ling | 34cfd2e | 2017-02-03 16:16:42 -0800 | [diff] [blame] | 113 | public static class LanguageAndInputSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 114 | public static class UserDictionarySettingsActivity extends SettingsActivity { /* empty */ } |
Jay Aliomer | 82a0ea0 | 2019-12-10 14:49:27 -0500 | [diff] [blame] | 115 | public static class DarkThemeSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 116 | public static class DisplaySettingsActivity extends SettingsActivity { /* empty */ } |
Justin Klaassen | eae3d9f | 2016-07-21 19:25:17 -0700 | [diff] [blame] | 117 | public static class NightDisplaySettingsActivity extends SettingsActivity { /* empty */ } |
Sean Stout | 2bc94d6 | 2017-05-18 13:39:25 -0700 | [diff] [blame] | 118 | public static class NightDisplaySuggestionActivity extends NightDisplaySettingsActivity { /* empty */ } |
Abel Tesfaye | 029c095 | 2021-03-04 21:55:47 +0000 | [diff] [blame] | 119 | public static class SmartAutoRotateSettingsActivity extends SettingsActivity { /* empty */ } |
Fan Zhang | 881d579 | 2018-01-26 10:15:56 -0800 | [diff] [blame] | 120 | public static class MyDeviceInfoActivity extends SettingsActivity { /* empty */ } |
Andrew Sapperstein | 56a8c33 | 2019-06-18 09:44:18 -0700 | [diff] [blame] | 121 | public static class ModuleLicensesActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 122 | public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ } |
| 123 | public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ } |
Xiyuan Xia | 86a5540 | 2015-06-02 14:55:32 -0700 | [diff] [blame] | 124 | public static class ManageAssistActivity extends SettingsActivity { /* empty */ } |
Jason Monk | 1eb54eb | 2015-04-29 12:46:42 -0400 | [diff] [blame] | 125 | public static class HighPowerApplicationsActivity extends SettingsActivity { /* empty */ } |
Dianne Hackborn | f467c0a | 2015-12-07 16:36:09 -0800 | [diff] [blame] | 126 | public static class BackgroundCheckSummaryActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 127 | public static class StorageUseActivity extends SettingsActivity { /* empty */ } |
jeffreyhuang | 142682c | 2017-10-17 11:05:15 -0700 | [diff] [blame] | 128 | public static class DevelopmentSettingsDashboardActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 129 | public static class AccessibilitySettingsActivity extends SettingsActivity { /* empty */ } |
Jackal Guo | 2936551 | 2019-02-14 15:19:53 +0800 | [diff] [blame] | 130 | public static class AccessibilityDetailsSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 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 */ } |
Jason Chiu | 29a09e5 | 2021-10-12 17:24:34 +0800 | [diff] [blame] | 135 | /** Activity for lockscreen settings. */ |
Silin Huang | c80b3ab | 2021-05-13 23:59:33 -0700 | [diff] [blame] | 136 | public static class LockScreenSettingsActivity extends SettingsActivity { /* empty */ } |
shaoweishen | 1b58ba5 | 2021-12-03 08:47:15 +0000 | [diff] [blame] | 137 | /** Activity for bluetooth pairing settings. */ |
| 138 | public static class BlueToothPairingActivity extends SettingsActivity { /* empty */ } |
Jason Chiu | 29a09e5 | 2021-10-12 17:24:34 +0800 | [diff] [blame] | 139 | /** Activity for Reduce Bright Colors. */ |
Sally | 9fe91b9 | 2020-10-16 22:45:27 +0000 | [diff] [blame] | 140 | public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ } |
Jan Tomljanovic | 07bffff | 2021-04-27 20:58:12 +0100 | [diff] [blame] | 141 | /** Activity for the security dashboard. */ |
| 142 | public static class SecurityDashboardActivity extends SettingsActivity { |
| 143 | |
Jan Tomljanovic | 4436b7f | 2021-12-10 15:09:31 +0000 | [diff] [blame] | 144 | private static final String TAG = "SecurityDashboardActivity"; |
| 145 | |
| 146 | @Override |
| 147 | protected void onCreate(Bundle savedState) { |
| 148 | super.onCreate(savedState); |
| 149 | handleSafetyCenterRedirection(); |
| 150 | } |
| 151 | |
| 152 | /** Redirects to SafetyCenter if enabled. */ |
| 153 | @VisibleForTesting |
| 154 | public void handleSafetyCenterRedirection() { |
Marie Matheson | ce321f0 | 2022-02-18 22:57:17 +0000 | [diff] [blame] | 155 | if (SafetyCenterManagerWrapper.get().isEnabled(this)) { |
Jan Tomljanovic | 4436b7f | 2021-12-10 15:09:31 +0000 | [diff] [blame] | 156 | try { |
| 157 | startActivity(new Intent(Intent.ACTION_SAFETY_CENTER)); |
| 158 | finish(); |
| 159 | } catch (ActivityNotFoundException e) { |
| 160 | Log.e(TAG, "Unable to open safety center", e); |
| 161 | } |
| 162 | } |
| 163 | } |
| 164 | |
Jan Tomljanovic | 07bffff | 2021-04-27 20:58:12 +0100 | [diff] [blame] | 165 | /** Whether the given fragment is allowed. */ |
| 166 | @VisibleForTesting |
| 167 | @Override |
| 168 | public boolean isValidFragment(String fragmentName) { |
| 169 | return super.isValidFragment(fragmentName) |
| 170 | || (fragmentName != null |
| 171 | && TextUtils.equals(fragmentName, getAlternativeFragmentName())); |
| 172 | } |
| 173 | |
| 174 | @Override |
| 175 | public String getInitialFragmentName(Intent intent) { |
| 176 | final String alternativeFragmentName = getAlternativeFragmentName(); |
| 177 | if (alternativeFragmentName != null) { |
| 178 | return alternativeFragmentName; |
| 179 | } |
| 180 | |
| 181 | return super.getInitialFragmentName(intent); |
| 182 | } |
| 183 | |
| 184 | private String getAlternativeFragmentName() { |
| 185 | String alternativeFragmentClassname = null; |
| 186 | final SecuritySettingsFeatureProvider securitySettingsFeatureProvider = |
| 187 | FeatureFactory.getFactory(this).getSecuritySettingsFeatureProvider(); |
| 188 | if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) { |
| 189 | alternativeFragmentClassname = securitySettingsFeatureProvider |
| 190 | .getAlternativeSecuritySettingsFragmentClassname(); |
| 191 | } |
| 192 | return alternativeFragmentClassname; |
| 193 | } |
| 194 | } |
Yuri Ufimtsev | 4eea126 | 2021-12-03 15:43:11 +0000 | [diff] [blame] | 195 | /** Activity for the Advanced security settings. */ |
| 196 | public static class SecurityAdvancedSettings extends SettingsActivity { /* empty */ } |
Dianne Hackborn | b51253c | 2014-08-12 15:08:04 -0700 | [diff] [blame] | 197 | public static class UsageAccessSettingsActivity extends SettingsActivity { /* empty */ } |
Fan Zhang | 104ee2e | 2018-09-20 16:21:53 -0700 | [diff] [blame] | 198 | public static class AppUsageAccessSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 199 | public static class LocationSettingsActivity extends SettingsActivity { /* empty */ } |
Lifu Tang | f72f830 | 2018-04-12 10:01:29 -0700 | [diff] [blame] | 200 | public static class ScanningSettingsActivity extends SettingsActivity { /* empty */ } |
Weng Su | 9e6966d | 2021-10-13 23:08:50 +0800 | [diff] [blame] | 201 | public static class WifiScanningSettingsActivity extends SettingsActivity { /* empty */ } |
Jan Tomljanovic | 4436b7f | 2021-12-10 15:09:31 +0000 | [diff] [blame] | 202 | /** Activity for the privacy dashboard. */ |
| 203 | public static class PrivacyDashboardActivity extends SettingsActivity { |
| 204 | |
| 205 | private static final String TAG = "PrivacyDashboardActivity"; |
| 206 | |
| 207 | @Override |
| 208 | protected void onCreate(Bundle savedState) { |
| 209 | super.onCreate(savedState); |
| 210 | handleSafetyCenterRedirection(); |
| 211 | } |
| 212 | |
| 213 | /** Redirects to SafetyCenter if enabled. */ |
| 214 | @VisibleForTesting |
| 215 | public void handleSafetyCenterRedirection() { |
Jay Thomas Sullivan | ecc0a45 | 2022-05-05 20:56:43 +0000 | [diff] [blame] | 216 | if (ACTION_PRIVACY_SETTINGS.equals(getIntent().getAction()) |
| 217 | && SafetyCenterManagerWrapper.get().isEnabled(this)) { |
Jan Tomljanovic | 4436b7f | 2021-12-10 15:09:31 +0000 | [diff] [blame] | 218 | try { |
| 219 | startActivity(new Intent(Intent.ACTION_SAFETY_CENTER)); |
| 220 | finish(); |
| 221 | } catch (ActivityNotFoundException e) { |
| 222 | Log.e(TAG, "Unable to open safety center", e); |
| 223 | } |
| 224 | } |
| 225 | } |
| 226 | } |
Nate Myren | d1749cf | 2022-04-22 13:58:50 -0700 | [diff] [blame] | 227 | public static class PrivacyControlsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 228 | public static class PrivacySettingsActivity extends SettingsActivity { /* empty */ } |
Mill Chen | 1e60790 | 2021-02-25 15:03:25 +0800 | [diff] [blame] | 229 | public static class FactoryResetActivity extends SettingsActivity { |
| 230 | @Override |
| 231 | protected void onCreate(Bundle savedState) { |
| 232 | setTheme(SetupWizardUtils.getTheme(this, getIntent())); |
Tsung-Mao Fang | d3cd751 | 2021-05-05 15:43:54 +0800 | [diff] [blame] | 233 | ThemeHelper.trySetDynamicColor(this); |
Mill Chen | 1e60790 | 2021-02-25 15:03:25 +0800 | [diff] [blame] | 234 | super.onCreate(savedState); |
| 235 | } |
| 236 | |
| 237 | @Override |
| 238 | protected boolean isToolbarEnabled() { |
| 239 | return false; |
| 240 | } |
| 241 | } |
| 242 | public static class FactoryResetConfirmActivity extends SettingsActivity { |
| 243 | @Override |
| 244 | protected void onCreate(Bundle savedState) { |
| 245 | setTheme(SetupWizardUtils.getTheme(this, getIntent())); |
Tsung-Mao Fang | d3cd751 | 2021-05-05 15:43:54 +0800 | [diff] [blame] | 246 | ThemeHelper.trySetDynamicColor(this); |
Mill Chen | 1e60790 | 2021-02-25 15:03:25 +0800 | [diff] [blame] | 247 | super.onCreate(savedState); |
| 248 | } |
| 249 | |
| 250 | @Override |
| 251 | protected boolean isToolbarEnabled() { |
| 252 | return false; |
| 253 | } |
| 254 | } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 255 | public static class RunningServicesActivity extends SettingsActivity { /* empty */ } |
John Spurlock | c7f8e8c | 2014-06-04 19:11:22 -0400 | [diff] [blame] | 256 | public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ } |
Salvador Martinez | 3291704 | 2019-03-20 15:23:19 -0700 | [diff] [blame] | 257 | public static class BatterySaverScheduleSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 258 | public static class AccountSyncSettingsActivity extends SettingsActivity { /* empty */ } |
| 259 | public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 260 | public static class DeviceAdminSettingsActivity extends SettingsActivity { /* empty */ } |
| 261 | public static class DataUsageSummaryActivity extends SettingsActivity { /* empty */ } |
Malcolm Chen | 52584e9 | 2017-06-20 11:14:27 -0700 | [diff] [blame] | 262 | public static class MobileDataUsageListActivity extends SettingsActivity { /* empty */ } |
Amin Shaikh | 3aa547b | 2017-01-06 18:31:41 -0800 | [diff] [blame] | 263 | public static class ConfigureWifiSettingsActivity extends SettingsActivity { /* empty */ } |
PauloftheWest | 7837b99 | 2014-06-24 07:42:27 -0700 | [diff] [blame] | 264 | public static class SavedAccessPointsSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 265 | public static class TextToSpeechSettingsActivity extends SettingsActivity { /* empty */ } |
| 266 | public static class AndroidBeamSettingsActivity extends SettingsActivity { /* empty */ } |
| 267 | public static class WifiDisplaySettingsActivity extends SettingsActivity { /* empty */ } |
| 268 | public static class DreamSettingsActivity extends SettingsActivity { /* empty */ } |
| 269 | public static class NotificationStationActivity extends SettingsActivity { /* empty */ } |
| 270 | public static class UserSettingsActivity extends SettingsActivity { /* empty */ } |
| 271 | public static class NotificationAccessSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | 31dc1fd | 2019-10-29 15:15:08 -0400 | [diff] [blame] | 272 | public static class NotificationAccessDetailsActivity extends SettingsActivity { /* empty */ } |
Ruben Brunk | c461d5c | 2016-04-07 21:45:41 -0700 | [diff] [blame] | 273 | public static class VrListenersSettingsActivity extends SettingsActivity { /* empty */ } |
Amber Ogata | 9d5de29 | 2020-12-16 20:37:22 +0000 | [diff] [blame] | 274 | public static class PremiumSmsAccessActivity extends SettingsActivity { /* empty */ } |
Winson Chung | 0a0d95a | 2017-01-20 11:22:44 -0800 | [diff] [blame] | 275 | public static class PictureInPictureSettingsActivity extends SettingsActivity { /* empty */ } |
Philip Junker | 8a97805 | 2022-03-14 18:08:46 +0000 | [diff] [blame] | 276 | public static class TurnScreenOnSettingsActivity extends SettingsActivity { /* empty */ } |
Winson Chung | 217d0e9 | 2017-03-17 15:48:38 -0700 | [diff] [blame] | 277 | public static class AppPictureInPictureSettingsActivity extends SettingsActivity { /* empty */ } |
John Spurlock | 08531a8 | 2015-05-07 17:45:43 -0400 | [diff] [blame] | 278 | public static class ZenAccessSettingsActivity extends SettingsActivity { /* empty */ } |
Fan Zhang | e366f02 | 2019-03-19 13:08:10 -0700 | [diff] [blame] | 279 | public static class ZenAccessDetailSettingsActivity extends SettingsActivity {} |
John Spurlock | c9afadb | 2014-04-29 18:07:23 -0400 | [diff] [blame] | 280 | public static class ConditionProviderSettingsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 281 | public static class UsbSettingsActivity extends SettingsActivity { /* empty */ } |
Jerry Zhang | d18d6f1 | 2018-01-11 16:47:14 -0800 | [diff] [blame] | 282 | public static class UsbDetailsActivity extends SettingsActivity { /* empty */ } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 283 | public static class TrustedCredentialsSettingsActivity extends SettingsActivity { /* empty */ } |
| 284 | public static class PaymentSettingsActivity extends SettingsActivity { /* empty */ } |
| 285 | public static class PrintSettingsActivity extends SettingsActivity { /* empty */ } |
| 286 | public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ } |
John Spurlock | 7243806 | 2014-02-27 18:01:20 -0500 | [diff] [blame] | 287 | public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ } |
Beverly | ad898e6 | 2017-09-25 14:14:31 -0400 | [diff] [blame] | 288 | public static class ZenModeBehaviorSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | d640a97 | 2018-03-02 15:51:14 -0500 | [diff] [blame] | 289 | public static class ZenModeBlockedEffectsSettingsActivity extends SettingsActivity { /* empty */ } |
John Spurlock | d8b3683 | 2015-04-03 15:11:33 -0400 | [diff] [blame] | 290 | public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ } |
John Spurlock | 45fa140 | 2015-04-09 12:50:04 -0400 | [diff] [blame] | 291 | public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ } |
John Spurlock | f57bad7 | 2015-04-30 09:26:15 -0400 | [diff] [blame] | 292 | public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | 8c0a423 | 2015-11-24 10:08:14 -0500 | [diff] [blame] | 293 | public static class SoundSettingsActivity extends SettingsActivity { /* empty */ } |
| 294 | public static class ConfigureNotificationSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | 6a88e14 | 2020-06-02 11:20:13 -0400 | [diff] [blame] | 295 | public static class ConversationListSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | 4e48da9 | 2019-03-26 09:04:22 -0400 | [diff] [blame] | 296 | public static class AppBubbleNotificationSettingsActivity extends SettingsActivity { /* empty */ } |
Fabian Kozynski | 01b2a63 | 2019-02-20 12:55:10 -0500 | [diff] [blame] | 297 | public static class NotificationAssistantSettingsActivity extends SettingsActivity{ /* empty */ } |
Julia Reynolds | ff9500d | 2018-03-21 15:23:13 -0400 | [diff] [blame] | 298 | public static class NotificationAppListActivity extends SettingsActivity { /* empty */ } |
Yuri Lin | 554ab1f | 2022-04-12 17:05:49 -0400 | [diff] [blame] | 299 | public static class NotificationReviewPermissionsActivity extends SettingsActivity { /* empty */ } |
John Spurlock | 81bef1d7 | 2014-05-16 15:50:13 -0400 | [diff] [blame] | 300 | public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | 6949288 | 2017-01-25 10:32:07 -0500 | [diff] [blame] | 301 | public static class ChannelNotificationSettingsActivity extends SettingsActivity { /* empty */ } |
Julia Reynolds | 0c3f4bc | 2017-08-25 09:40:24 -0400 | [diff] [blame] | 302 | public static class ChannelGroupNotificationSettingsActivity extends SettingsActivity { /* empty */ } |
Todd Kennedy | 2ef1aa5 | 2016-09-06 14:02:38 -0700 | [diff] [blame] | 303 | public static class ManageDomainUrlsActivity extends SettingsActivity { /* empty */ } |
Daniel Nishi | 3981889 | 2016-09-20 16:40:49 -0700 | [diff] [blame] | 304 | public static class AutomaticStorageManagerSettingsActivity extends SettingsActivity { /* empty */ } |
Daniel Nishi | c208eff | 2017-01-11 17:50:02 -0800 | [diff] [blame] | 305 | public static class GamesStorageActivity extends SettingsActivity { /* empty */ } |
Mehdi Alizadeh | 0355596 | 2019-12-13 15:31:53 -0800 | [diff] [blame] | 306 | public static class GestureNavigationSettingsActivity extends SettingsActivity { /* empty */ } |
Jernej Virag | 97ea279 | 2021-08-09 18:11:28 +0000 | [diff] [blame] | 307 | /** Activity to manage 2-/3-button navigation configuration. */ |
| 308 | public static class ButtonNavigationSettingsActivity extends SettingsActivity { /* empty */ } |
kholoud mohamed | 14a887f | 2020-01-29 17:38:31 +0000 | [diff] [blame] | 309 | public static class InteractAcrossProfilesSettingsActivity extends SettingsActivity { |
| 310 | /* empty */ |
| 311 | } |
| 312 | public static class AppInteractAcrossProfilesSettingsActivity extends SettingsActivity { |
| 313 | /* empty */ |
| 314 | } |
Fabrice Di Meglio | 263bcc8 | 2014-01-17 19:17:58 -0800 | [diff] [blame] | 315 | |
Fabrice Di Meglio | 61a1fec | 2014-08-13 16:22:38 -0700 | [diff] [blame] | 316 | public static class ApnSettingsActivity extends SettingsActivity { /* empty */ } |
Pavel Zhamaitsiak | 4ab3256 | 2015-02-23 15:34:07 -0800 | [diff] [blame] | 317 | public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ } |
Jason Monk | 2acff55 | 2015-06-11 15:47:29 -0400 | [diff] [blame] | 318 | public static class MemorySettingsActivity extends SettingsActivity { /* empty */ } |
Muyuan Li | ba115af | 2016-03-25 15:46:12 -0700 | [diff] [blame] | 319 | public static class AppMemoryUsageActivity extends SettingsActivity { /* empty */ } |
Billy Lau | 7f70ba1 | 2015-07-03 17:01:18 +0100 | [diff] [blame] | 320 | public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ } |
shafik | 430b94b | 2020-01-06 13:50:10 +0000 | [diff] [blame] | 321 | public static class ManageExternalStorageActivity extends SettingsActivity { /* empty */ } |
shafik | a54d7a8 | 2020-01-08 18:03:22 +0000 | [diff] [blame] | 322 | public static class AppManageExternalStorageActivity extends SettingsActivity { /* empty */ } |
Ivan Chiang | d01c81e | 2021-03-09 10:39:45 +0800 | [diff] [blame] | 323 | public static class MediaManagementAppsActivity extends SettingsActivity { /* empty */ } |
| 324 | public static class AppMediaManagementAppsActivity extends SettingsActivity { /* empty */ } |
Billy Lau | 7f70ba1 | 2015-07-03 17:01:18 +0100 | [diff] [blame] | 325 | public static class WriteSettingsActivity extends SettingsActivity { /* empty */ } |
xshu | 3f04897 | 2018-01-31 17:40:37 -0800 | [diff] [blame] | 326 | public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ } |
Bernardo Rufino | 8854031 | 2019-11-25 19:40:53 +0000 | [diff] [blame] | 327 | public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ } |
Billy Lau | fee7856 | 2015-07-27 12:57:07 +0100 | [diff] [blame] | 328 | public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ } |
Tiffany Nguyen | 3acd34f | 2022-08-02 17:26:10 +0000 | [diff] [blame] | 329 | /** Activity to manage app battery usage details. */ |
| 330 | public static class AppBatteryUsageActivity extends SettingsActivity { /* empty */ } |
Jason Monk | 4da79e0 | 2015-09-10 10:54:36 -0400 | [diff] [blame] | 331 | |
Fan Zhang | 372789b | 2018-01-23 14:26:30 -0800 | [diff] [blame] | 332 | public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ } |
Suprabh Shukla | f59d211 | 2017-03-06 17:51:05 -0800 | [diff] [blame] | 333 | public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ } |
Vladislav Kaznacheev | 6e93bdd | 2016-03-09 14:24:45 -0800 | [diff] [blame] | 334 | public static class WallpaperSettingsActivity extends SettingsActivity { /* empty */ } |
Tony Mak | 64f6d98 | 2016-05-03 18:55:41 +0100 | [diff] [blame] | 335 | public static class ManagedProfileSettingsActivity extends SettingsActivity { /* empty */ } |
Daniel Nishi | 287d911 | 2016-05-03 18:00:49 -0700 | [diff] [blame] | 336 | public static class DeletionHelperActivity extends SettingsActivity { /* empty */ } |
Jason Monk | b9e5d23 | 2016-01-26 17:43:57 -0500 | [diff] [blame] | 337 | |
Suprabh Shukla | c8b9240 | 2021-02-17 18:00:35 -0800 | [diff] [blame] | 338 | /** Actviity to manage apps with {@link android.Manifest.permission#SCHEDULE_EXACT_ALARM} */ |
| 339 | public static class AlarmsAndRemindersActivity extends SettingsActivity {/* empty */ } |
| 340 | /** App specific version of {@link AlarmsAndRemindersActivity} */ |
| 341 | public static class AlarmsAndRemindersAppActivity extends SettingsActivity {/* empty */ } |
kholoud mohamed | 14a887f | 2020-01-29 17:38:31 +0000 | [diff] [blame] | 342 | |
Jason Monk | b7e4380 | 2016-06-06 16:01:58 -0400 | [diff] [blame] | 343 | public static class ApnEditorActivity extends SettingsActivity { /* empty */ } |
| 344 | public static class ChooseAccountActivity extends SettingsActivity { /* empty */ } |
| 345 | public static class IccLockSettingsActivity extends SettingsActivity { /* empty */ } |
Jason Monk | b7e4380 | 2016-06-06 16:01:58 -0400 | [diff] [blame] | 346 | public static class TestingSettingsActivity extends SettingsActivity { /* empty */ } |
| 347 | public static class WifiAPITestActivity extends SettingsActivity { /* empty */ } |
| 348 | public static class WifiInfoActivity extends SettingsActivity { /* empty */ } |
Bartosz Fabianowski | 92d25fb | 2017-03-24 18:04:31 +0100 | [diff] [blame] | 349 | public static class EnterprisePrivacySettingsActivity extends SettingsActivity { |
| 350 | @Override |
| 351 | public void onCreate(Bundle savedInstanceState) { |
| 352 | super.onCreate(savedInstanceState); |
Jason Parks | 9f424cd | 2020-11-17 13:31:59 -0600 | [diff] [blame] | 353 | if (FeatureFactory.getFactory(this) |
| 354 | .getEnterprisePrivacyFeatureProvider(this) |
| 355 | .showParentalControls()) { |
| 356 | finish(); |
| 357 | } else if (!EnterprisePrivacySettings.isPageEnabled(this)) { |
Bartosz Fabianowski | 92d25fb | 2017-03-24 18:04:31 +0100 | [diff] [blame] | 358 | finish(); |
| 359 | } |
| 360 | } |
| 361 | } |
Gustav Sennton | 5b59628 | 2017-02-03 16:19:02 +0000 | [diff] [blame] | 362 | public static class WebViewAppPickerActivity extends SettingsActivity { /* empty */ } |
hughchen | bd3e5de | 2018-03-23 16:14:13 +0800 | [diff] [blame] | 363 | public static class AdvancedConnectedDeviceActivity extends SettingsActivity { /* empty */ } |
jackqdyulei | 715408e | 2019-02-07 15:47:52 -0800 | [diff] [blame] | 364 | public static class BluetoothDeviceDetailActivity extends SettingsActivity { /* empty */ } |
changbetty | a56e198 | 2022-03-29 01:14:05 +0000 | [diff] [blame] | 365 | public static class BluetoothBroadcastActivity extends SettingsActivity { /* empty */ } |
| 366 | public static class BluetoothFindBroadcastsActivity extends SettingsActivity { /* empty */ } |
manabu, shimoda | 9fae739 | 2017-11-08 11:32:31 +0900 | [diff] [blame] | 367 | public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ } |
Antony Sargent | 94d9790 | 2019-03-26 09:50:22 -0700 | [diff] [blame] | 368 | public static class MobileNetworkListActivity extends SettingsActivity {} |
Fabian Kozynski | 83df54b | 2020-03-24 16:37:57 -0400 | [diff] [blame] | 369 | public static class PowerMenuSettingsActivity extends SettingsActivity {} |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 370 | public static class MobileNetworkActivity extends SettingsActivity { |
| 371 | |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 372 | public static final String TAG = "MobileNetworkActivity"; |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 373 | public static final String EXTRA_MMS_MESSAGE = "mms_message"; |
| 374 | public static final String EXTRA_SHOW_CAPABILITY_DISCOVERY_OPT_IN = |
| 375 | "show_capability_discovery_opt_in"; |
| 376 | |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 377 | private MobileNetworkIntentConverter mIntentConverter; |
| 378 | |
| 379 | /** |
| 380 | * Override of #onNewIntent() requires Activity to have "singleTop" launch mode within |
| 381 | * AndroidManifest.xml |
| 382 | */ |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 383 | @Override |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 384 | protected void onNewIntent(Intent intent) { |
| 385 | super.onNewIntent(intent); |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 386 | |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 387 | Log.d(TAG, "Starting onNewIntent"); |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 388 | |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 389 | createUiFromIntent(null /* savedState */, convertIntent(intent)); |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 390 | } |
| 391 | |
Bonian Chen | d10618d | 2022-05-30 19:06:10 +0800 | [diff] [blame] | 392 | @Override |
| 393 | public Intent getIntent() { |
| 394 | return convertIntent(super.getIntent()); |
| 395 | } |
| 396 | |
| 397 | private Intent convertIntent(Intent copyFrom) { |
| 398 | if (mIntentConverter == null) { |
| 399 | mIntentConverter = new MobileNetworkIntentConverter(this); |
| 400 | } |
| 401 | Intent intent = mIntentConverter.apply(copyFrom); |
| 402 | return (intent == null) ? copyFrom : intent; |
Zoey Chen | 6978a90 | 2021-12-14 18:42:37 +0800 | [diff] [blame] | 403 | } |
| 404 | |
| 405 | public static boolean doesIntentContainOptInAction(Intent intent) { |
| 406 | String intentAction = (intent != null ? intent.getAction() : null); |
| 407 | return TextUtils.equals(intentAction, |
| 408 | ImsRcsManager.ACTION_SHOW_CAPABILITY_DISCOVERY_OPT_IN); |
| 409 | } |
| 410 | } |
Zoey Chen | 989dd66 | 2021-11-19 21:22:21 +0800 | [diff] [blame] | 411 | |
Paul Chang | 6ae4c4d | 2019-11-28 22:38:49 +0800 | [diff] [blame] | 412 | /** |
| 413 | * Activity for BugReportHandlerPicker. |
| 414 | */ |
| 415 | public static class BugReportHandlerPickerActivity extends SettingsActivity { /* empty */ } |
Jason Monk | b7e4380 | 2016-06-06 16:01:58 -0400 | [diff] [blame] | 416 | |
Fan Zhang | a96a2d8 | 2016-09-27 17:51:11 -0700 | [diff] [blame] | 417 | // Top level categories for new IA |
Fan Zhang | bb93dc0 | 2016-10-11 16:27:45 -0700 | [diff] [blame] | 418 | public static class NetworkDashboardActivity extends SettingsActivity {} |
Jerry Zhang | 40bd570 | 2018-02-23 14:43:58 -0800 | [diff] [blame] | 419 | public static class ConnectedDeviceDashboardActivity extends SettingsActivity {} |
jackqdyulei | 166102c | 2017-11-27 13:49:19 -0800 | [diff] [blame] | 420 | public static class PowerUsageSummaryActivity extends SettingsActivity { /* empty */ } |
Fan Zhang | bb6d260 | 2016-10-04 13:21:06 -0700 | [diff] [blame] | 421 | public static class StorageDashboardActivity extends SettingsActivity {} |
Fan Zhang | 881d579 | 2018-01-26 10:15:56 -0800 | [diff] [blame] | 422 | public static class AccountDashboardActivity extends SettingsActivity {} |
Fan Zhang | cc335d9 | 2016-09-29 14:37:14 -0700 | [diff] [blame] | 423 | public static class SystemDashboardActivity extends SettingsActivity {} |
Fan Zhang | a96a2d8 | 2016-09-27 17:51:11 -0700 | [diff] [blame] | 424 | |
Beth Thibodeau | 59cbd11 | 2020-06-09 23:38:41 -0400 | [diff] [blame] | 425 | /** |
| 426 | * Activity for MediaControlsSettings |
| 427 | */ |
| 428 | public static class MediaControlsSettingsActivity extends SettingsActivity {} |
| 429 | |
Yanting Yang | 92fce8e | 2020-12-17 23:26:49 +0800 | [diff] [blame] | 430 | /** |
| 431 | * Activity for AppDashboard. |
| 432 | */ |
| 433 | public static class AppDashboardActivity extends SettingsActivity {} |
Jun Ono | 89c2c5e | 2019-05-30 12:56:43 +0900 | [diff] [blame] | 434 | |
| 435 | public static class AdaptiveBrightnessActivity extends SettingsActivity { /* empty */ } |
Jason Chang | d1cf05c | 2021-10-21 16:12:15 +0800 | [diff] [blame] | 436 | |
| 437 | /** |
| 438 | * Activity for OneHandedSettings |
| 439 | */ |
| 440 | public static class OneHandedSettingsActivity extends SettingsActivity { /* empty */ } |
The Android Open Source Project | afc4ab2 | 2009-03-03 19:32:34 -0800 | [diff] [blame] | 441 | } |