1 /* 2 * Copyright (C) 2022 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 package com.android.systemui.flags 17 18 import android.provider.DeviceConfig 19 import com.android.internal.annotations.Keep 20 import com.android.systemui.R 21 import com.android.systemui.flags.FlagsFactory.releasedFlag 22 import com.android.systemui.flags.FlagsFactory.resourceBooleanFlag 23 import com.android.systemui.flags.FlagsFactory.sysPropBooleanFlag 24 import com.android.systemui.flags.FlagsFactory.unreleasedFlag 25 26 /** 27 * List of [Flag] objects for use in SystemUI. 28 * 29 * Flag Ids are integers. Ids must be unique. This is enforced in a unit test. Ids need not be 30 * sequential. Flags can "claim" a chunk of ids for flags in related features with a comment. This 31 * is purely for organizational purposes. 32 * 33 * On public release builds, flags will always return their default value. There is no way to change 34 * their value on release builds. 35 * 36 * See [FeatureFlagsDebug] for instructions on flipping the flags via adb. 37 */ 38 object Flags { 39 @JvmField val TEAMFOOD = unreleasedFlag(1, "teamfood") 40 41 // 100 - notification 42 // TODO(b/254512751): Tracking Bug 43 val NOTIFICATION_PIPELINE_DEVELOPER_LOGGING = 44 unreleasedFlag(103, "notification_pipeline_developer_logging") 45 46 // TODO(b/254512732): Tracking Bug 47 @JvmField val NSSL_DEBUG_LINES = unreleasedFlag(105, "nssl_debug_lines") 48 49 // TODO(b/254512505): Tracking Bug 50 @JvmField val NSSL_DEBUG_REMOVE_ANIMATION = unreleasedFlag(106, "nssl_debug_remove_animation") 51 52 // TODO(b/254512624): Tracking Bug 53 @JvmField 54 val NOTIFICATION_DRAG_TO_CONTENTS = 55 resourceBooleanFlag( 56 108, 57 R.bool.config_notificationToContents, 58 "notification_drag_to_contents" 59 ) 60 61 // TODO(b/254512517): Tracking Bug 62 val FSI_REQUIRES_KEYGUARD = releasedFlag(110, "fsi_requires_keyguard") 63 64 // TODO(b/259130119): Tracking Bug 65 val FSI_ON_DND_UPDATE = releasedFlag(259130119, "fsi_on_dnd_update") 66 67 // TODO(b/265804648): Tracking Bug 68 @JvmField val DISABLE_FSI = unreleasedFlag(265804648, "disable_fsi") 69 70 // TODO(b/254512538): Tracking Bug 71 val INSTANT_VOICE_REPLY = unreleasedFlag(111, "instant_voice_reply") 72 73 // TODO(b/254512425): Tracking Bug 74 val NOTIFICATION_MEMORY_MONITOR_ENABLED = 75 releasedFlag(112, "notification_memory_monitor_enabled") 76 77 /** 78 * This flag is server-controlled and should stay as [unreleasedFlag] since we never want to 79 * enable it on release builds. 80 */ 81 val NOTIFICATION_MEMORY_LOGGING_ENABLED = 82 unreleasedFlag(119, "notification_memory_logging_enabled") 83 84 // TODO(b/254512731): Tracking Bug 85 @JvmField val NOTIFICATION_DISMISSAL_FADE = releasedFlag(113, "notification_dismissal_fade") 86 87 @JvmField val USE_ROUNDNESS_SOURCETYPES = releasedFlag(116, "use_roundness_sourcetype") 88 89 // TODO(b/259217907) 90 @JvmField 91 val NOTIFICATION_GROUP_DISMISSAL_ANIMATION = 92 releasedFlag(259217907, "notification_group_dismissal_animation") 93 94 // TODO(b/257506350): Tracking Bug 95 @JvmField val FSI_CHROME = unreleasedFlag(117, "fsi_chrome") 96 97 @JvmField 98 val SIMPLIFIED_APPEAR_FRACTION = 99 unreleasedFlag(259395680, "simplified_appear_fraction", teamfood = true) 100 101 // TODO(b/257315550): Tracking Bug 102 val NO_HUN_FOR_OLD_WHEN = unreleasedFlag(118, "no_hun_for_old_when", teamfood = true) 103 104 // TODO(b/260335638): Tracking Bug 105 @JvmField 106 val NOTIFICATION_INLINE_REPLY_ANIMATION = 107 unreleasedFlag(174148361, "notification_inline_reply_animation") 108 109 val FILTER_UNSEEN_NOTIFS_ON_KEYGUARD = 110 releasedFlag(254647461, "filter_unseen_notifs_on_keyguard", teamfood = true) 111 112 // TODO(b/263414400): Tracking Bug 113 @JvmField 114 val NOTIFICATION_ANIMATE_BIG_PICTURE = unreleasedFlag(120, "notification_animate_big_picture") 115 116 @JvmField 117 val ANIMATED_NOTIFICATION_SHADE_INSETS = 118 unreleasedFlag(270682168, "animated_notification_shade_insets", teamfood = true) 119 120 // TODO(b/268005230): Tracking Bug 121 @JvmField val SENSITIVE_REVEAL_ANIM = unreleasedFlag(268005230, "sensitive_reveal_anim") 122 123 // 200 - keyguard/lockscreen 124 // ** Flag retired ** 125 // public static final BooleanFlag KEYGUARD_LAYOUT = 126 // new BooleanFlag(200, true); 127 128 // TODO(b/254512750): Tracking Bug 129 val NEW_UNLOCK_SWIPE_ANIMATION = releasedFlag(202, "new_unlock_swipe_animation") 130 val CHARGING_RIPPLE = resourceBooleanFlag(203, R.bool.flag_charging_ripple, "charging_ripple") 131 132 // TODO(b/254512281): Tracking Bug 133 @JvmField 134 val BOUNCER_USER_SWITCHER = 135 resourceBooleanFlag(204, R.bool.config_enableBouncerUserSwitcher, "bouncer_user_switcher") 136 137 // TODO(b/254512676): Tracking Bug 138 @JvmField 139 val LOCKSCREEN_CUSTOM_CLOCKS = unreleasedFlag(207, "lockscreen_custom_clocks") 140 141 /** 142 * Whether the clock on a wide lock screen should use the new "stepping" animation for moving 143 * the digits when the clock moves. 144 */ 145 @JvmField 146 val STEP_CLOCK_ANIMATION = unreleasedFlag(212, "step_clock_animation", teamfood = true) 147 148 /** 149 * Migration from the legacy isDozing/dozeAmount paths to the new KeyguardTransitionRepository 150 * will occur in stages. This is one stage of many to come. 151 */ 152 // TODO(b/255607168): Tracking Bug 153 @JvmField val DOZING_MIGRATION_1 = unreleasedFlag(213, "dozing_migration_1") 154 155 // TODO(b/252897742): Tracking Bug 156 @JvmField val NEW_ELLIPSE_DETECTION = unreleasedFlag(214, "new_ellipse_detection") 157 158 // TODO(b/252897742): Tracking Bug 159 @JvmField val NEW_UDFPS_OVERLAY = unreleasedFlag(215, "new_udfps_overlay") 160 161 /** 162 * Whether to enable the code powering customizable lock screen quick affordances. 163 * 164 * This flag enables any new prebuilt quick affordances as well. 165 */ 166 // TODO(b/255618149): Tracking Bug 167 @JvmField 168 val CUSTOMIZABLE_LOCK_SCREEN_QUICK_AFFORDANCES = 169 unreleasedFlag(216, "customizable_lock_screen_quick_affordances", teamfood = true) 170 171 /** 172 * Migrates control of the LightRevealScrim's reveal effect and amount from legacy code to the 173 * new KeyguardTransitionRepository. 174 */ 175 @JvmField 176 val LIGHT_REVEAL_MIGRATION = unreleasedFlag(218, "light_reveal_migration", teamfood = false) 177 178 /** 179 * Whether to use the new alternate bouncer architecture, a refactor of and eventual replacement 180 * of the Alternate/Authentication Bouncer. No visual UI changes. 181 */ 182 // TODO(b/260619425): Tracking Bug 183 @JvmField val MODERN_ALTERNATE_BOUNCER = releasedFlag(219, "modern_alternate_bouncer") 184 185 /** Flag to control the migration of face auth to modern architecture. */ 186 // TODO(b/262838215): Tracking bug 187 @JvmField val FACE_AUTH_REFACTOR = unreleasedFlag(220, "face_auth_refactor") 188 189 /** Flag to control the revamp of keyguard biometrics progress animation */ 190 // TODO(b/244313043): Tracking bug 191 @JvmField val BIOMETRICS_ANIMATION_REVAMP = unreleasedFlag(221, "biometrics_animation_revamp") 192 193 // TODO(b/262780002): Tracking Bug 194 @JvmField 195 val REVAMPED_WALLPAPER_UI = unreleasedFlag(222, "revamped_wallpaper_ui", teamfood = true) 196 197 // flag for controlling auto pin confirmation and material u shapes in bouncer 198 @JvmField 199 val AUTO_PIN_CONFIRMATION = 200 unreleasedFlag(224, "auto_pin_confirmation", "auto_pin_confirmation") 201 202 // TODO(b/262859270): Tracking Bug 203 @JvmField val FALSING_OFF_FOR_UNFOLDED = releasedFlag(225, "falsing_off_for_unfolded") 204 205 /** Enables code to show contextual loyalty cards in wallet entrypoints */ 206 // TODO(b/247587924): Tracking Bug 207 @JvmField 208 val ENABLE_WALLET_CONTEXTUAL_LOYALTY_CARDS = 209 unreleasedFlag(226, "enable_wallet_contextual_loyalty_cards", teamfood = false) 210 211 // TODO(b/242908637): Tracking Bug 212 @JvmField val WALLPAPER_FULLSCREEN_PREVIEW = releasedFlag(227, "wallpaper_fullscreen_preview") 213 214 /** Whether the long-press gesture to open wallpaper picker is enabled. */ 215 // TODO(b/266242192): Tracking Bug 216 @JvmField 217 val LOCK_SCREEN_LONG_PRESS_ENABLED = 218 unreleasedFlag( 219 228, 220 "lock_screen_long_press_enabled", 221 teamfood = true, 222 ) 223 224 /** Enables UI updates for AI wallpapers in the wallpaper picker. */ 225 // TODO(b/267722622): Tracking Bug 226 @JvmField 227 val WALLPAPER_PICKER_UI_FOR_AIWP = 228 releasedFlag( 229 229, 230 "wallpaper_picker_ui_for_aiwp" 231 ) 232 233 /** Whether to inflate the bouncer view on a background thread. */ 234 // TODO(b/272091103): Tracking Bug 235 @JvmField 236 val ASYNC_INFLATE_BOUNCER = unreleasedFlag(229, "async_inflate_bouncer", teamfood = false) 237 238 /** Whether to inflate the bouncer view on a background thread. */ 239 // TODO(b/273341787): Tracking Bug 240 @JvmField 241 val PREVENT_BYPASS_KEYGUARD = unreleasedFlag(230, "prevent_bypass_keyguard") 242 243 // 300 - power menu 244 // TODO(b/254512600): Tracking Bug 245 @JvmField val POWER_MENU_LITE = releasedFlag(300, "power_menu_lite") 246 247 // 400 - smartspace 248 249 // TODO(b/254513100): Tracking Bug 250 val SMARTSPACE_SHARED_ELEMENT_TRANSITION_ENABLED = 251 releasedFlag(401, "smartspace_shared_element_transition_enabled") 252 253 // TODO(b/258517050): Clean up after the feature is launched. 254 @JvmField 255 val SMARTSPACE_DATE_WEATHER_DECOUPLED = 256 sysPropBooleanFlag(403, "persist.sysui.ss.dw_decoupled", default = false) 257 258 // TODO(b/270223352): Tracking Bug 259 @JvmField 260 val HIDE_SMARTSPACE_ON_DREAM_OVERLAY = 261 releasedFlag(404, "hide_smartspace_on_dream_overlay") 262 263 // TODO(b/271460958): Tracking Bug 264 @JvmField 265 val SHOW_WEATHER_COMPLICATION_ON_DREAM_OVERLAY = 266 releasedFlag(405, "show_weather_complication_on_dream_overlay") 267 268 // 500 - quick settings 269 270 val PEOPLE_TILE = resourceBooleanFlag(502, R.bool.flag_conversations, "people_tile") 271 272 @JvmField 273 val QS_USER_DETAIL_SHORTCUT = 274 resourceBooleanFlag( 275 503, 276 R.bool.flag_lockscreen_qs_user_detail_shortcut, 277 "qs_user_detail_shortcut" 278 ) 279 280 @JvmField 281 val QS_PIPELINE_NEW_HOST = unreleasedFlag(504, "qs_pipeline_new_host", teamfood = false) 282 283 // TODO(b/254512383): Tracking Bug 284 @JvmField 285 val FULL_SCREEN_USER_SWITCHER = 286 resourceBooleanFlag( 287 506, 288 R.bool.config_enableFullscreenUserSwitcher, 289 "full_screen_user_switcher" 290 ) 291 292 // TODO(b/244064524): Tracking Bug 293 @JvmField 294 val QS_SECONDARY_DATA_SUB_INFO = 295 unreleasedFlag(508, "qs_secondary_data_sub_info", teamfood = true) 296 297 /** Enables Font Scaling Quick Settings tile */ 298 // TODO(b/269341316): Tracking Bug 299 @JvmField 300 val ENABLE_FONT_SCALING_TILE = unreleasedFlag(509, "enable_font_scaling_tile", teamfood = false) 301 302 /** Enables new QS Edit Mode visual refresh */ 303 // TODO(b/269787742): Tracking Bug 304 @JvmField 305 val ENABLE_NEW_QS_EDIT_MODE = unreleasedFlag(510, "enable_new_qs_edit_mode", teamfood = false) 306 307 // 600- status bar 308 309 // TODO(b/256614753): Tracking Bug 310 val NEW_STATUS_BAR_MOBILE_ICONS = 311 unreleasedFlag(606, "new_status_bar_mobile_icons", teamfood = true) 312 313 // TODO(b/256614210): Tracking Bug 314 val NEW_STATUS_BAR_WIFI_ICON = unreleasedFlag(607, "new_status_bar_wifi_icon", teamfood = true) 315 316 // TODO(b/256614751): Tracking Bug 317 val NEW_STATUS_BAR_MOBILE_ICONS_BACKEND = 318 unreleasedFlag(608, "new_status_bar_mobile_icons_backend", teamfood = true) 319 320 // TODO(b/256613548): Tracking Bug 321 val NEW_STATUS_BAR_WIFI_ICON_BACKEND = 322 unreleasedFlag(609, "new_status_bar_wifi_icon_backend", teamfood = true) 323 324 // TODO(b/256623670): Tracking Bug 325 @JvmField 326 val BATTERY_SHIELD_ICON = 327 resourceBooleanFlag(610, R.bool.flag_battery_shield_icon, "battery_shield_icon") 328 329 // TODO(b/260881289): Tracking Bug 330 val NEW_STATUS_BAR_ICONS_DEBUG_COLORING = 331 unreleasedFlag(611, "new_status_bar_icons_debug_coloring") 332 333 // TODO(b/265892345): Tracking Bug 334 val PLUG_IN_STATUS_BAR_CHIP = 335 unreleasedFlag(265892345, "plug_in_status_bar_chip", teamfood = true) 336 337 // 700 - dialer/calls 338 // TODO(b/254512734): Tracking Bug 339 val ONGOING_CALL_STATUS_BAR_CHIP = releasedFlag(700, "ongoing_call_status_bar_chip") 340 341 // TODO(b/254512681): Tracking Bug 342 val ONGOING_CALL_IN_IMMERSIVE = releasedFlag(701, "ongoing_call_in_immersive") 343 344 // TODO(b/254512753): Tracking Bug 345 val ONGOING_CALL_IN_IMMERSIVE_CHIP_TAP = releasedFlag(702, "ongoing_call_in_immersive_chip_tap") 346 347 // 800 - general visual/theme 348 @JvmField val MONET = resourceBooleanFlag(800, R.bool.flag_monet, "monet") 349 350 // 801 - region sampling 351 // TODO(b/254512848): Tracking Bug 352 val REGION_SAMPLING = unreleasedFlag(801, "region_sampling") 353 354 // 803 - screen contents translation 355 // TODO(b/254513187): Tracking Bug 356 val SCREEN_CONTENTS_TRANSLATION = unreleasedFlag(803, "screen_contents_translation") 357 358 // 804 - monochromatic themes 359 @JvmField val MONOCHROMATIC_THEME = unreleasedFlag(804, "monochromatic", teamfood = true) 360 361 // 900 - media 362 // TODO(b/254512697): Tracking Bug 363 val MEDIA_TAP_TO_TRANSFER = releasedFlag(900, "media_tap_to_transfer") 364 365 // TODO(b/254512502): Tracking Bug 366 val MEDIA_SESSION_ACTIONS = unreleasedFlag(901, "media_session_actions") 367 368 // TODO(b/254512726): Tracking Bug 369 val MEDIA_NEARBY_DEVICES = releasedFlag(903, "media_nearby_devices") 370 371 // TODO(b/254512695): Tracking Bug 372 val MEDIA_MUTE_AWAIT = releasedFlag(904, "media_mute_await") 373 374 // TODO(b/254512654): Tracking Bug 375 @JvmField val DREAM_MEDIA_COMPLICATION = unreleasedFlag(905, "dream_media_complication") 376 377 // TODO(b/254512673): Tracking Bug 378 @JvmField val DREAM_MEDIA_TAP_TO_OPEN = unreleasedFlag(906, "dream_media_tap_to_open") 379 380 // TODO(b/254513168): Tracking Bug 381 @JvmField val UMO_SURFACE_RIPPLE = unreleasedFlag(907, "umo_surface_ripple") 382 383 @JvmField val MEDIA_FALSING_PENALTY = releasedFlag(908, "media_falsing_media") 384 385 // TODO(b/261734857): Tracking Bug 386 @JvmField val UMO_TURBULENCE_NOISE = unreleasedFlag(909, "umo_turbulence_noise") 387 388 // TODO(b/263272731): Tracking Bug 389 val MEDIA_TTT_RECEIVER_SUCCESS_RIPPLE = releasedFlag(910, "media_ttt_receiver_success_ripple") 390 391 // TODO(b/263512203): Tracking Bug 392 val MEDIA_EXPLICIT_INDICATOR = unreleasedFlag(911, "media_explicit_indicator") 393 394 // TODO(b/265813373): Tracking Bug 395 val MEDIA_TAP_TO_TRANSFER_DISMISS_GESTURE = releasedFlag(912, "media_ttt_dismiss_gesture") 396 397 // TODO(b/266157412): Tracking Bug 398 val MEDIA_RETAIN_SESSIONS = unreleasedFlag(913, "media_retain_sessions") 399 400 // TODO(b/266739309): Tracking Bug 401 @JvmField 402 val MEDIA_RECOMMENDATION_CARD_UPDATE = unreleasedFlag(914, "media_recommendation_card_update") 403 404 // TODO(b/267007629): Tracking Bug 405 val MEDIA_RESUME_PROGRESS = unreleasedFlag(915, "media_resume_progress") 406 407 // TODO(b/267166152) : Tracking Bug 408 val MEDIA_RETAIN_RECOMMENDATIONS = unreleasedFlag(916, "media_retain_recommendations") 409 410 // TODO(b/270437894): Tracking Bug 411 val MEDIA_REMOTE_RESUME = unreleasedFlag(917, "media_remote_resume") 412 413 // 1000 - dock 414 val SIMULATE_DOCK_THROUGH_CHARGING = releasedFlag(1000, "simulate_dock_through_charging") 415 416 // TODO(b/254512758): Tracking Bug 417 @JvmField val ROUNDED_BOX_RIPPLE = releasedFlag(1002, "rounded_box_ripple") 418 419 // TODO(b/270882464): Tracking Bug 420 val ENABLE_DOCK_SETUP_V2 = releasedFlag(1005, "enable_dock_setup_v2") 421 422 // TODO(b/265045965): Tracking Bug 423 val SHOW_LOWLIGHT_ON_DIRECT_BOOT = releasedFlag(1003, "show_lowlight_on_direct_boot") 424 425 @JvmField 426 // TODO(b/271428141): Tracking Bug 427 val ENABLE_LOW_LIGHT_CLOCK_UNDOCKED = unreleasedFlag( 428 1004, 429 "enable_low_light_clock_undocked", teamfood = true) 430 431 // TODO(b/273509374): Tracking Bug 432 @JvmField 433 val ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS = releasedFlag(1006, 434 "always_show_home_controls_on_dreams") 435 436 // 1100 - windowing 437 @Keep 438 @JvmField 439 val WM_ENABLE_SHELL_TRANSITIONS = 440 sysPropBooleanFlag(1100, "persist.wm.debug.shell_transit", default = false) 441 442 // TODO(b/254513207): Tracking Bug 443 @Keep 444 @JvmField 445 val WM_ENABLE_PARTIAL_SCREEN_SHARING = 446 unreleasedFlag( 447 1102, 448 name = "record_task_content", 449 namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER, 450 teamfood = true 451 ) 452 453 // TODO(b/254512674): Tracking Bug 454 @Keep 455 @JvmField 456 val HIDE_NAVBAR_WINDOW = 457 sysPropBooleanFlag(1103, "persist.wm.debug.hide_navbar_window", default = false) 458 459 @Keep 460 @JvmField 461 val WM_DESKTOP_WINDOWING = 462 sysPropBooleanFlag(1104, "persist.wm.debug.desktop_mode", default = false) 463 464 @Keep 465 @JvmField 466 val WM_CAPTION_ON_SHELL = 467 sysPropBooleanFlag(1105, "persist.wm.debug.caption_on_shell", default = false) 468 469 @Keep 470 @JvmField 471 val ENABLE_FLING_TO_DISMISS_BUBBLE = 472 sysPropBooleanFlag(1108, "persist.wm.debug.fling_to_dismiss_bubble", default = true) 473 474 @Keep 475 @JvmField 476 val ENABLE_FLING_TO_DISMISS_PIP = 477 sysPropBooleanFlag(1109, "persist.wm.debug.fling_to_dismiss_pip", default = true) 478 479 @Keep 480 @JvmField 481 val ENABLE_PIP_KEEP_CLEAR_ALGORITHM = 482 sysPropBooleanFlag( 483 1110, 484 "persist.wm.debug.enable_pip_keep_clear_algorithm", 485 default = true 486 ) 487 488 // TODO(b/256873975): Tracking Bug 489 @JvmField 490 @Keep 491 val WM_BUBBLE_BAR = sysPropBooleanFlag(1111, "persist.wm.debug.bubble_bar", default = false) 492 493 // TODO(b/260271148): Tracking bug 494 @Keep 495 @JvmField 496 val WM_DESKTOP_WINDOWING_2 = 497 sysPropBooleanFlag(1112, "persist.wm.debug.desktop_mode_2", default = false) 498 499 // TODO(b/254513207): Tracking Bug to delete 500 @Keep 501 @JvmField 502 val WM_ENABLE_PARTIAL_SCREEN_SHARING_ENTERPRISE_POLICIES = 503 unreleasedFlag( 504 1113, 505 name = "screen_record_enterprise_policies", 506 namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER, 507 teamfood = false 508 ) 509 510 // TODO(b/198643358): Tracking bug 511 @Keep 512 @JvmField 513 val ENABLE_PIP_SIZE_LARGE_SCREEN = 514 sysPropBooleanFlag(1114, "persist.wm.debug.enable_pip_size_large_screen", default = true) 515 516 // TODO(b/265998256): Tracking bug 517 @Keep 518 @JvmField 519 val ENABLE_PIP_APP_ICON_OVERLAY = 520 sysPropBooleanFlag(1115, "persist.wm.debug.enable_pip_app_icon_overlay", default = true) 521 522 // TODO(b/272110828): Tracking bug 523 @Keep 524 @JvmField 525 val ENABLE_MOVE_FLOATING_WINDOW_IN_TABLETOP = 526 sysPropBooleanFlag( 527 1116, "persist.wm.debug.enable_move_floating_window_in_tabletop", default = true) 528 529 // 1200 - predictive back 530 @Keep 531 @JvmField 532 val WM_ENABLE_PREDICTIVE_BACK = 533 sysPropBooleanFlag(1200, "persist.wm.debug.predictive_back", default = true) 534 535 @Keep 536 @JvmField 537 val WM_ENABLE_PREDICTIVE_BACK_ANIM = 538 sysPropBooleanFlag(1201, "persist.wm.debug.predictive_back_anim", default = true) 539 540 @Keep 541 @JvmField 542 val WM_ALWAYS_ENFORCE_PREDICTIVE_BACK = 543 sysPropBooleanFlag(1202, "persist.wm.debug.predictive_back_always_enforce", default = false) 544 545 // TODO(b/254512728): Tracking Bug 546 @JvmField val NEW_BACK_AFFORDANCE = unreleasedFlag(1203, "new_back_affordance", teamfood = true) 547 548 // TODO(b/255854141): Tracking Bug 549 @JvmField 550 val WM_ENABLE_PREDICTIVE_BACK_SYSUI = 551 unreleasedFlag(1204, "persist.wm.debug.predictive_back_sysui_enable", teamfood = true) 552 553 // TODO(b/255697805): Tracking Bug 554 @JvmField 555 val TRACKPAD_GESTURE_BACK = unreleasedFlag(1205, "trackpad_gesture_back", teamfood = false) 556 557 // TODO(b/263826204): Tracking Bug 558 @JvmField 559 val WM_ENABLE_PREDICTIVE_BACK_BOUNCER_ANIM = 560 unreleasedFlag(1206, "persist.wm.debug.predictive_back_bouncer_anim", teamfood = true) 561 562 // TODO(b/238475428): Tracking Bug 563 @JvmField 564 val WM_SHADE_ALLOW_BACK_GESTURE = 565 sysPropBooleanFlag(1207, "persist.wm.debug.shade_allow_back_gesture", default = false) 566 567 // TODO(b/238475428): Tracking Bug 568 @JvmField 569 val WM_SHADE_ANIMATE_BACK_GESTURE = 570 unreleasedFlag(1208, "persist.wm.debug.shade_animate_back_gesture", teamfood = false) 571 572 // TODO(b/265639042): Tracking Bug 573 @JvmField 574 val WM_ENABLE_PREDICTIVE_BACK_QS_DIALOG_ANIM = 575 unreleasedFlag(1209, "persist.wm.debug.predictive_back_qs_dialog_anim", teamfood = true) 576 577 // 1300 - screenshots 578 // TODO(b/254513155): Tracking Bug 579 @JvmField 580 val SCREENSHOT_WORK_PROFILE_POLICY = releasedFlag(1301, "screenshot_work_profile_policy") 581 582 // TODO(b/264916608): Tracking Bug 583 @JvmField val SCREENSHOT_METADATA = unreleasedFlag(1302, "screenshot_metadata", teamfood = true) 584 585 // TODO(b/266955521): Tracking bug 586 @JvmField 587 val SCREENSHOT_DETECTION = unreleasedFlag(1303, "screenshot_detection", teamfood = true) 588 589 // TODO(b/268484562): Tracking bug 590 @JvmField 591 val SCREENSHOT_METADATA_REFACTOR = 592 unreleasedFlag(1305, "screenshot_metadata_refactor", teamfood = true) 593 594 // 1400 - columbus 595 // TODO(b/254512756): Tracking Bug 596 val QUICK_TAP_IN_PCC = releasedFlag(1400, "quick_tap_in_pcc") 597 598 // TODO(b/261979569): Tracking Bug 599 val QUICK_TAP_FLOW_FRAMEWORK = 600 unreleasedFlag(1401, "quick_tap_flow_framework", teamfood = false) 601 602 // 1500 - chooser aka sharesheet 603 // TODO(b/254512507): Tracking Bug 604 val CHOOSER_UNBUNDLED = unreleasedFlag(1500, "chooser_unbundled") 605 606 // TODO(b/266983432) Tracking Bug 607 val SHARESHEET_CUSTOM_ACTIONS = 608 unreleasedFlag(1501, "sharesheet_custom_actions", teamfood = true) 609 610 // TODO(b/266982749) Tracking Bug 611 val SHARESHEET_RESELECTION_ACTION = 612 unreleasedFlag(1502, "sharesheet_reselection_action", teamfood = true) 613 614 // TODO(b/266983474) Tracking Bug 615 val SHARESHEET_IMAGE_AND_TEXT_PREVIEW = 616 unreleasedFlag(1503, "sharesheet_image_text_preview", teamfood = true) 617 618 // TODO(b/267355521) Tracking Bug 619 val SHARESHEET_SCROLLABLE_IMAGE_PREVIEW = 620 unreleasedFlag(1504, "sharesheet_scrollable_image_preview") 621 622 // 1600 - accessibility 623 @JvmField 624 val A11Y_FLOATING_MENU_FLING_SPRING_ANIMATIONS = 625 unreleasedFlag(1600, "a11y_floating_menu_fling_spring_animations") 626 627 // 1700 - clipboard 628 @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag(1701, "clipboard_remote_behavior") 629 // TODO(b/267162944): Tracking bug 630 @JvmField 631 val CLIPBOARD_MINIMIZED_LAYOUT = unreleasedFlag(1702, "clipboard_data_model", teamfood = true) 632 633 // 1800 - shade container 634 @JvmField 635 val LEAVE_SHADE_OPEN_FOR_BUGREPORT = releasedFlag(1800, "leave_shade_open_for_bugreport") 636 // TODO(b/265944639): Tracking Bug 637 @JvmField val DUAL_SHADE = unreleasedFlag(1801, "dual_shade") 638 639 // 1900 640 @JvmField val NOTE_TASKS = unreleasedFlag(1900, "keycode_flag") 641 642 // 2000 - device controls 643 @Keep @JvmField val USE_APP_PANELS = releasedFlag(2000, "use_app_panels", teamfood = true) 644 645 @JvmField 646 val APP_PANELS_ALL_APPS_ALLOWED = 647 unreleasedFlag(2001, "app_panels_all_apps_allowed", teamfood = true) 648 649 @JvmField 650 val CONTROLS_MANAGEMENT_NEW_FLOWS = 651 unreleasedFlag(2002, "controls_management_new_flows", teamfood = true) 652 653 // Enables removing app from Home control panel as a part of a new flow 654 // TODO(b/269132640): Tracking Bug 655 @JvmField 656 val APP_PANELS_REMOVE_APPS_ALLOWED = 657 unreleasedFlag(2003, "app_panels_remove_apps_allowed", teamfood = false) 658 659 // 2100 - Falsing Manager 660 @JvmField val FALSING_FOR_LONG_TAPS = releasedFlag(2100, "falsing_for_long_taps") 661 662 // 2200 - udfps 663 // TODO(b/259264861): Tracking Bug 664 @JvmField val UDFPS_NEW_TOUCH_DETECTION = unreleasedFlag(2200, "udfps_new_touch_detection") 665 @JvmField val UDFPS_ELLIPSE_DEBUG_UI = unreleasedFlag(2201, "udfps_ellipse_debug") 666 @JvmField val UDFPS_ELLIPSE_DETECTION = unreleasedFlag(2202, "udfps_ellipse_detection") 667 668 // 2300 - stylus 669 @JvmField 670 val TRACK_STYLUS_EVER_USED = releasedFlag(2300, "track_stylus_ever_used") 671 @JvmField val ENABLE_STYLUS_CHARGING_UI = unreleasedFlag(2301, "enable_stylus_charging_ui") 672 @JvmField 673 val ENABLE_USI_BATTERY_NOTIFICATIONS = unreleasedFlag(2302, "enable_usi_battery_notifications") 674 @JvmField val ENABLE_STYLUS_EDUCATION = unreleasedFlag(2303, "enable_stylus_education") 675 676 // 2400 - performance tools and debugging info 677 // TODO(b/238923086): Tracking Bug 678 @JvmField 679 val WARN_ON_BLOCKING_BINDER_TRANSACTIONS = 680 unreleasedFlag(2400, "warn_on_blocking_binder_transactions") 681 682 // 2500 - output switcher 683 // TODO(b/261538825): Tracking Bug 684 @JvmField 685 val OUTPUT_SWITCHER_ADVANCED_LAYOUT = unreleasedFlag(2500, "output_switcher_advanced_layout") 686 @JvmField 687 val OUTPUT_SWITCHER_ROUTES_PROCESSING = 688 unreleasedFlag(2501, "output_switcher_routes_processing") 689 @JvmField 690 val OUTPUT_SWITCHER_DEVICE_STATUS = unreleasedFlag(2502, "output_switcher_device_status") 691 692 // 2700 - unfold transitions 693 // TODO(b/265764985): Tracking Bug 694 @Keep 695 @JvmField 696 val ENABLE_DARK_VIGNETTE_WHEN_FOLDING = 697 unreleasedFlag(2700, "enable_dark_vignette_when_folding") 698 699 // TODO(b/265764985): Tracking Bug 700 @Keep 701 @JvmField 702 val ENABLE_UNFOLD_STATUS_BAR_ANIMATIONS = 703 unreleasedFlag(2701, "enable_unfold_status_bar_animations") 704 705 // TODO(b259590361): Tracking bug 706 val EXPERIMENTAL_FLAG = unreleasedFlag(2, "exp_flag_release") 707 708 // 2600 - keyboard 709 // TODO(b/259352579): Tracking Bug 710 @JvmField val SHORTCUT_LIST_SEARCH_LAYOUT = unreleasedFlag(2600, "shortcut_list_search_layout") 711 712 // TODO(b/259428678): Tracking Bug 713 @JvmField 714 val KEYBOARD_BACKLIGHT_INDICATOR = unreleasedFlag(2601, "keyboard_backlight_indicator") 715 716 // TODO(b/272036292): Tracking Bug 717 @JvmField 718 val LARGE_SHADE_GRANULAR_ALPHA_INTERPOLATION = 719 releasedFlag(2602, "large_shade_granular_alpha_interpolation") 720 721 // TODO(b/272805037): Tracking Bug 722 @JvmField 723 val ADVANCED_VPN_ENABLED = unreleasedFlag(2800, name = "AdvancedVpn__enable_feature", 724 namespace = "vpn", teamfood = false) 725 } 726