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("teamfood") 40 41 // 100 - notification 42 // TODO(b/297792660): Tracking Bug 43 val ADD_TRANSIENT_HUN_IN_STACK_STATE_ANIMATOR = 44 unreleasedFlag("add_transient_hun_in_stack_state_animator", teamfood = false) 45 46 // TODO(b/254512751): Tracking Bug 47 val NOTIFICATION_PIPELINE_DEVELOPER_LOGGING = 48 unreleasedFlag("notification_pipeline_developer_logging") 49 50 // TODO(b/254512732): Tracking Bug 51 @JvmField val NSSL_DEBUG_LINES = unreleasedFlag("nssl_debug_lines") 52 53 // TODO(b/254512505): Tracking Bug 54 @JvmField val NSSL_DEBUG_REMOVE_ANIMATION = unreleasedFlag("nssl_debug_remove_animation") 55 56 // TODO(b/254512624): Tracking Bug 57 @JvmField 58 val NOTIFICATION_DRAG_TO_CONTENTS = 59 resourceBooleanFlag( 60 R.bool.config_notificationToContents, 61 "notification_drag_to_contents" 62 ) 63 64 // TODO(b/254512538): Tracking Bug 65 val INSTANT_VOICE_REPLY = unreleasedFlag("instant_voice_reply") 66 67 /** 68 * This flag controls whether we register a listener for StatsD notification memory reports. 69 * For statsd to actually call the listener however, a server-side toggle needs to be 70 * enabled as well. 71 */ 72 val NOTIFICATION_MEMORY_LOGGING_ENABLED = 73 releasedFlag("notification_memory_logging_enabled") 74 75 // TODO(b/260335638): Tracking Bug 76 @JvmField 77 val NOTIFICATION_INLINE_REPLY_ANIMATION = 78 unreleasedFlag("notification_inline_reply_animation") 79 80 /** Makes sure notification panel is updated before the user switch is complete. */ 81 // TODO(b/278873737): Tracking Bug 82 @JvmField 83 val LOAD_NOTIFICATIONS_BEFORE_THE_USER_SWITCH_IS_COMPLETE = 84 releasedFlag("load_notifications_before_the_user_switch_is_complete") 85 86 // TODO(b/277338665): Tracking Bug 87 @JvmField 88 val NOTIFICATION_SHELF_REFACTOR = 89 unreleasedFlag("notification_shelf_refactor", teamfood = true) 90 91 // TODO(b/290787599): Tracking Bug 92 @JvmField 93 val NOTIFICATION_ICON_CONTAINER_REFACTOR = 94 unreleasedFlag("notification_icon_container_refactor") 95 96 // TODO(b/288326013): Tracking Bug 97 @JvmField 98 val NOTIFICATION_ASYNC_HYBRID_VIEW_INFLATION = 99 unreleasedFlag("notification_async_hybrid_view_inflation", teamfood = false) 100 101 @JvmField 102 val ANIMATED_NOTIFICATION_SHADE_INSETS = 103 releasedFlag("animated_notification_shade_insets") 104 105 // TODO(b/268005230): Tracking Bug 106 @JvmField 107 val SENSITIVE_REVEAL_ANIM = unreleasedFlag("sensitive_reveal_anim", teamfood = true) 108 109 // TODO(b/280783617): Tracking Bug 110 @Keep 111 @JvmField 112 val BUILDER_EXTRAS_OVERRIDE = 113 sysPropBooleanFlag( 114 "persist.sysui.notification.builder_extras_override", 115 default = false 116 ) 117 118 /** Only notify group expansion listeners when a change happens. */ 119 // TODO(b/292213543): Tracking Bug 120 @JvmField 121 val NOTIFICATION_GROUP_EXPANSION_CHANGE = 122 unreleasedFlag("notification_group_expansion_change") 123 124 // 200 - keyguard/lockscreen 125 // ** Flag retired ** 126 // public static final BooleanFlag KEYGUARD_LAYOUT = 127 // new BooleanFlag(true); 128 129 // TODO(b/254512750): Tracking Bug 130 val NEW_UNLOCK_SWIPE_ANIMATION = releasedFlag("new_unlock_swipe_animation") 131 val CHARGING_RIPPLE = resourceBooleanFlag(R.bool.flag_charging_ripple, "charging_ripple") 132 133 // TODO(b/254512281): Tracking Bug 134 @JvmField 135 val BOUNCER_USER_SWITCHER = 136 resourceBooleanFlag(R.bool.config_enableBouncerUserSwitcher, "bouncer_user_switcher") 137 138 // TODO(b/254512676): Tracking Bug 139 @JvmField 140 val LOCKSCREEN_CUSTOM_CLOCKS = 141 resourceBooleanFlag( 142 R.bool.config_enableLockScreenCustomClocks, 143 "lockscreen_custom_clocks" 144 ) 145 146 // TODO(b/275694445): Tracking Bug 147 @JvmField 148 val LOCKSCREEN_WITHOUT_SECURE_LOCK_WHEN_DREAMING = 149 releasedFlag("lockscreen_without_secure_lock_when_dreaming") 150 151 // TODO(b/286092087): Tracking Bug 152 @JvmField 153 val ENABLE_SYSTEM_UI_DREAM_CONTROLLER = unreleasedFlag("enable_system_ui_dream_controller") 154 155 // TODO(b/288287730): Tracking Bug 156 @JvmField 157 val ENABLE_SYSTEM_UI_DREAM_HOSTING = unreleasedFlag("enable_system_ui_dream_hosting") 158 159 /** 160 * Whether the clock on a wide lock screen should use the new "stepping" animation for moving 161 * the digits when the clock moves. 162 */ 163 @JvmField val STEP_CLOCK_ANIMATION = releasedFlag("step_clock_animation") 164 165 /** 166 * Migration from the legacy isDozing/dozeAmount paths to the new KeyguardTransitionRepository 167 * will occur in stages. This is one stage of many to come. 168 */ 169 // TODO(b/255607168): Tracking Bug 170 @JvmField val DOZING_MIGRATION_1 = unreleasedFlag("dozing_migration_1") 171 172 /** 173 * Migrates control of the LightRevealScrim's reveal effect and amount from legacy code to the 174 * new KeyguardTransitionRepository. 175 */ 176 // TODO(b/281655028): Tracking bug 177 @JvmField 178 val LIGHT_REVEAL_MIGRATION = unreleasedFlag("light_reveal_migration", teamfood = false) 179 180 /** Flag to control the migration of face auth to modern architecture. */ 181 // TODO(b/262838215): Tracking bug 182 @JvmField val FACE_AUTH_REFACTOR = unreleasedFlag("face_auth_refactor") 183 184 /** Flag to control the revamp of keyguard biometrics progress animation */ 185 // TODO(b/244313043): Tracking bug 186 @JvmField val BIOMETRICS_ANIMATION_REVAMP = unreleasedFlag("biometrics_animation_revamp") 187 188 // TODO(b/262780002): Tracking Bug 189 @JvmField val REVAMPED_WALLPAPER_UI = releasedFlag("revamped_wallpaper_ui") 190 191 // flag for controlling auto pin confirmation and material u shapes in bouncer 192 @JvmField 193 val AUTO_PIN_CONFIRMATION = releasedFlag("auto_pin_confirmation", "auto_pin_confirmation") 194 195 // TODO(b/262859270): Tracking Bug 196 @JvmField val FALSING_OFF_FOR_UNFOLDED = releasedFlag("falsing_off_for_unfolded") 197 198 /** Enables code to show contextual loyalty cards in wallet entrypoints */ 199 // TODO(b/294110497): Tracking Bug 200 @JvmField 201 val ENABLE_WALLET_CONTEXTUAL_LOYALTY_CARDS = 202 releasedFlag("enable_wallet_contextual_loyalty_cards") 203 204 // TODO(b/242908637): Tracking Bug 205 @JvmField val WALLPAPER_FULLSCREEN_PREVIEW = releasedFlag("wallpaper_fullscreen_preview") 206 207 /** Whether the long-press gesture to open wallpaper picker is enabled. */ 208 // TODO(b/266242192): Tracking Bug 209 @JvmField 210 val LOCK_SCREEN_LONG_PRESS_ENABLED = releasedFlag("lock_screen_long_press_enabled") 211 212 /** Enables UI updates for AI wallpapers in the wallpaper picker. */ 213 // TODO(b/267722622): Tracking Bug 214 @JvmField val WALLPAPER_PICKER_UI_FOR_AIWP = releasedFlag("wallpaper_picker_ui_for_aiwp") 215 216 /** Whether to use a new data source for intents to run on keyguard dismissal. */ 217 // TODO(b/275069969): Tracking bug. 218 @JvmField 219 val REFACTOR_KEYGUARD_DISMISS_INTENT = unreleasedFlag("refactor_keyguard_dismiss_intent") 220 221 /** Whether to allow long-press on the lock screen to directly open wallpaper picker. */ 222 // TODO(b/277220285): Tracking bug. 223 @JvmField 224 val LOCK_SCREEN_LONG_PRESS_DIRECT_TO_WPP = 225 unreleasedFlag("lock_screen_long_press_directly_opens_wallpaper_picker") 226 227 /** Whether page transition animations in the wallpaper picker are enabled */ 228 // TODO(b/291710220): Tracking bug. 229 @JvmField 230 val WALLPAPER_PICKER_PAGE_TRANSITIONS = 231 unreleasedFlag("wallpaper_picker_page_transitions") 232 233 /** Add "Apply" button to wall paper picker's grid preview page. */ 234 // TODO(b/294866904): Tracking bug. 235 @JvmField 236 val WALLPAPER_PICKER_GRID_APPLY_BUTTON = 237 unreleasedFlag("wallpaper_picker_grid_apply_button") 238 239 /** Whether to run the new udfps keyguard refactor code. */ 240 // TODO(b/279440316): Tracking bug. 241 @JvmField 242 val REFACTOR_UDFPS_KEYGUARD_VIEWS = unreleasedFlag("refactor_udfps_keyguard_views") 243 244 /** Provide new auth messages on the bouncer. */ 245 // TODO(b/277961132): Tracking bug. 246 @JvmField val REVAMPED_BOUNCER_MESSAGES = unreleasedFlag("revamped_bouncer_messages") 247 248 /** Whether to delay showing bouncer UI when face auth or active unlock are enrolled. */ 249 // TODO(b/279794160): Tracking bug. 250 @JvmField val DELAY_BOUNCER = releasedFlag("delay_bouncer") 251 252 /** Keyguard Migration */ 253 254 /** 255 * Migrate the bottom area to the new keyguard root view. Because there is no such thing as a 256 * "bottom area" after this, this also breaks it up into many smaller, modular pieces. 257 */ 258 // TODO(b/290652751): Tracking bug. 259 @JvmField 260 val MIGRATE_SPLIT_KEYGUARD_BOTTOM_AREA = 261 unreleasedFlag("migrate_split_keyguard_bottom_area") 262 263 /** Whether to listen for fingerprint authentication over keyguard occluding activities. */ 264 // TODO(b/283260512): Tracking bug. 265 @JvmField val FP_LISTEN_OCCLUDING_APPS = releasedFlag("fp_listen_occluding_apps") 266 267 /** Flag meant to guard the talkback fix for the KeyguardIndicationTextView */ 268 // TODO(b/286563884): Tracking bug 269 @JvmField val KEYGUARD_TALKBACK_FIX = releasedFlag("keyguard_talkback_fix") 270 271 // TODO(b/287268101): Tracking bug. 272 @JvmField val TRANSIT_CLOCK = releasedFlag("lockscreen_custom_transit_clock") 273 274 /** Migrate the lock icon view to the new keyguard root view. */ 275 // TODO(b/286552209): Tracking bug. 276 @JvmField val MIGRATE_LOCK_ICON = unreleasedFlag("migrate_lock_icon") 277 278 // TODO(b/288276738): Tracking bug. 279 @JvmField val WIDGET_ON_KEYGUARD = unreleasedFlag("widget_on_keyguard") 280 281 /** Migrate the NSSL to the a sibling to both the panel and keyguard root view. */ 282 // TODO(b/288074305): Tracking bug. 283 @JvmField val MIGRATE_NSSL = unreleasedFlag("migrate_nssl") 284 285 /** Migrate the status view from the notification panel to keyguard root view. */ 286 // TODO(b/291767565): Tracking bug. 287 @JvmField val MIGRATE_KEYGUARD_STATUS_VIEW = unreleasedFlag("migrate_keyguard_status_view") 288 289 /** Enables preview loading animation in the wallpaper picker. */ 290 // TODO(b/274443705): Tracking Bug 291 @JvmField 292 val WALLPAPER_PICKER_PREVIEW_ANIMATION = releasedFlag("wallpaper_picker_preview_animation") 293 294 /** Stop running face auth when the display state changes to OFF. */ 295 // TODO(b/294221702): Tracking bug. 296 @JvmField val STOP_FACE_AUTH_ON_DISPLAY_OFF = resourceBooleanFlag( 297 R.bool.flag_stop_face_auth_on_display_off, "stop_face_auth_on_display_off") 298 299 /** Flag to disable the face scanning animation pulsing. */ 300 // TODO(b/295245791): Tracking bug. 301 @JvmField val STOP_PULSING_FACE_SCANNING_ANIMATION = resourceBooleanFlag( 302 R.bool.flag_stop_pulsing_face_scanning_animation, 303 "stop_pulsing_face_scanning_animation") 304 305 /** 306 * TODO(b/278086361): Tracking bug 307 * Complete rewrite of the interactions between System UI and Window Manager involving keyguard 308 * state. When enabled, calls to ActivityTaskManagerService from System UI will exclusively 309 * occur from [WmLockscreenVisibilityManager] rather than the legacy KeyguardViewMediator. 310 * 311 * This flag is under development; some types of unlock may not animate properly if you enable 312 * it. 313 */ 314 @JvmField 315 val KEYGUARD_WM_STATE_REFACTOR: UnreleasedFlag = 316 unreleasedFlag("keyguard_wm_state_refactor") 317 318 // 300 - power menu 319 // TODO(b/254512600): Tracking Bug 320 @JvmField val POWER_MENU_LITE = releasedFlag("power_menu_lite") 321 322 // 400 - smartspace 323 324 // TODO(b/254513100): Tracking Bug 325 val SMARTSPACE_SHARED_ELEMENT_TRANSITION_ENABLED = 326 releasedFlag("smartspace_shared_element_transition_enabled") 327 328 // TODO(b/258517050): Clean up after the feature is launched. 329 @JvmField 330 val SMARTSPACE_DATE_WEATHER_DECOUPLED = 331 sysPropBooleanFlag("persist.sysui.ss.dw_decoupled", default = true) 332 333 // TODO(b/270223352): Tracking Bug 334 @JvmField 335 val HIDE_SMARTSPACE_ON_DREAM_OVERLAY = releasedFlag("hide_smartspace_on_dream_overlay") 336 337 // TODO(b/271460958): Tracking Bug 338 @JvmField 339 val SHOW_WEATHER_COMPLICATION_ON_DREAM_OVERLAY = 340 releasedFlag("show_weather_complication_on_dream_overlay") 341 342 // 500 - quick settings 343 344 val PEOPLE_TILE = resourceBooleanFlag(R.bool.flag_conversations, "people_tile") 345 346 @JvmField 347 val QS_USER_DETAIL_SHORTCUT = 348 resourceBooleanFlag( 349 R.bool.flag_lockscreen_qs_user_detail_shortcut, 350 "qs_user_detail_shortcut" 351 ) 352 353 @JvmField 354 val QS_PIPELINE_NEW_HOST = unreleasedFlag("qs_pipeline_new_host", teamfood = true) 355 356 // TODO(b/278068252): Tracking Bug 357 @JvmField 358 val QS_PIPELINE_AUTO_ADD = unreleasedFlag("qs_pipeline_auto_add", teamfood = false) 359 360 // TODO(b/254512383): Tracking Bug 361 @JvmField 362 val FULL_SCREEN_USER_SWITCHER = 363 resourceBooleanFlag( 364 R.bool.config_enableFullscreenUserSwitcher, 365 "full_screen_user_switcher" 366 ) 367 368 // TODO(b/244064524): Tracking Bug 369 @JvmField val QS_SECONDARY_DATA_SUB_INFO = releasedFlag("qs_secondary_data_sub_info") 370 371 /** Enables Font Scaling Quick Settings tile */ 372 // TODO(b/269341316): Tracking Bug 373 @JvmField val ENABLE_FONT_SCALING_TILE = releasedFlag("enable_font_scaling_tile") 374 375 /** Enables new QS Edit Mode visual refresh */ 376 // TODO(b/269787742): Tracking Bug 377 @JvmField 378 val ENABLE_NEW_QS_EDIT_MODE = unreleasedFlag("enable_new_qs_edit_mode", teamfood = false) 379 380 // 600- status bar 381 382 // TODO(b/291315866): Tracking Bug 383 @JvmField val SIGNAL_CALLBACK_DEPRECATION = unreleasedFlag("signal_callback_deprecation") 384 385 // TODO(b/265892345): Tracking Bug 386 val PLUG_IN_STATUS_BAR_CHIP = releasedFlag("plug_in_status_bar_chip") 387 388 // TODO(b/280426085): Tracking Bug 389 @JvmField val NEW_BLUETOOTH_REPOSITORY = releasedFlag("new_bluetooth_repository") 390 391 // TODO(b/311222557): Tracking bug 392 val ROAMING_INDICATOR_VIA_DISPLAY_INFO = 393 releasedFlag("roaming_indicator_via_display_info") 394 395 // TODO(b/292533677): Tracking Bug 396 val WIFI_TRACKER_LIB_FOR_WIFI_ICON = 397 unreleasedFlag("wifi_tracker_lib_for_wifi_icon", teamfood = true) 398 399 // TODO(b/293863612): Tracking Bug 400 @JvmField val INCOMPATIBLE_CHARGING_BATTERY_ICON = 401 releasedFlag("incompatible_charging_battery_icon") 402 403 // TODO(b/293585143): Tracking Bug 404 val INSTANT_TETHER = unreleasedFlag("instant_tether") 405 406 // TODO(b/294588085): Tracking Bug 407 val WIFI_SECONDARY_NETWORKS = releasedFlag("wifi_secondary_networks") 408 409 // TODO(b/290676905): Tracking Bug 410 val NEW_SHADE_CARRIER_GROUP_MOBILE_ICONS = 411 unreleasedFlag("new_shade_carrier_group_mobile_icons") 412 413 // 700 - dialer/calls 414 // TODO(b/254512734): Tracking Bug 415 val ONGOING_CALL_STATUS_BAR_CHIP = releasedFlag("ongoing_call_status_bar_chip") 416 417 // TODO(b/254512681): Tracking Bug 418 val ONGOING_CALL_IN_IMMERSIVE = releasedFlag("ongoing_call_in_immersive") 419 420 // TODO(b/254512753): Tracking Bug 421 val ONGOING_CALL_IN_IMMERSIVE_CHIP_TAP = releasedFlag("ongoing_call_in_immersive_chip_tap") 422 423 // 800 - general visual/theme 424 @JvmField val MONET = resourceBooleanFlag(R.bool.flag_monet, "monet") 425 426 // 801 - region sampling 427 // TODO(b/254512848): Tracking Bug 428 val REGION_SAMPLING = unreleasedFlag("region_sampling") 429 430 // 803 - screen contents translation 431 // TODO(b/254513187): Tracking Bug 432 val SCREEN_CONTENTS_TRANSLATION = unreleasedFlag("screen_contents_translation") 433 434 // 804 - monochromatic themes 435 @JvmField val MONOCHROMATIC_THEME = releasedFlag("monochromatic") 436 437 // TODO(b/293380347): Tracking Bug 438 @JvmField val COLOR_FIDELITY = unreleasedFlag("color_fidelity") 439 440 // 900 - media 441 // TODO(b/254512697): Tracking Bug 442 val MEDIA_TAP_TO_TRANSFER = releasedFlag("media_tap_to_transfer") 443 444 // TODO(b/254512502): Tracking Bug 445 val MEDIA_SESSION_ACTIONS = unreleasedFlag("media_session_actions") 446 447 // TODO(b/254512654): Tracking Bug 448 @JvmField val DREAM_MEDIA_COMPLICATION = unreleasedFlag("dream_media_complication") 449 450 // TODO(b/254512673): Tracking Bug 451 @JvmField val DREAM_MEDIA_TAP_TO_OPEN = unreleasedFlag("dream_media_tap_to_open") 452 453 // TODO(b/254513168): Tracking Bug 454 @JvmField val UMO_SURFACE_RIPPLE = releasedFlag("umo_surface_ripple") 455 456 // TODO(b/261734857): Tracking Bug 457 @JvmField val UMO_TURBULENCE_NOISE = releasedFlag("umo_turbulence_noise") 458 459 // TODO(b/263272731): Tracking Bug 460 val MEDIA_TTT_RECEIVER_SUCCESS_RIPPLE = releasedFlag("media_ttt_receiver_success_ripple") 461 462 // TODO(b/266157412): Tracking Bug 463 val MEDIA_RETAIN_SESSIONS = unreleasedFlag("media_retain_sessions") 464 465 // TODO(b/267007629): Tracking Bug 466 val MEDIA_RESUME_PROGRESS = releasedFlag("media_resume_progress") 467 468 // TODO(b/267166152) : Tracking Bug 469 val MEDIA_RETAIN_RECOMMENDATIONS = unreleasedFlag("media_retain_recommendations") 470 471 // TODO(b/270437894): Tracking Bug 472 val MEDIA_REMOTE_RESUME = unreleasedFlag("media_remote_resume") 473 474 // 1000 - dock 475 val SIMULATE_DOCK_THROUGH_CHARGING = releasedFlag("simulate_dock_through_charging") 476 477 // TODO(b/254512758): Tracking Bug 478 @JvmField val ROUNDED_BOX_RIPPLE = releasedFlag("rounded_box_ripple") 479 480 // TODO(b/273509374): Tracking Bug 481 @JvmField 482 val ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS = 483 releasedFlag("always_show_home_controls_on_dreams") 484 485 // 1100 - windowing 486 @Keep 487 @JvmField 488 val WM_ENABLE_SHELL_TRANSITIONS = 489 sysPropBooleanFlag("persist.wm.debug.shell_transit", default = true) 490 491 // TODO(b/254513207): Tracking Bug 492 @Keep 493 @JvmField 494 val WM_ENABLE_PARTIAL_SCREEN_SHARING = 495 unreleasedFlag( 496 name = "record_task_content", 497 namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER, 498 teamfood = true 499 ) 500 501 // TODO(b/254512674): Tracking Bug 502 @Keep 503 @JvmField 504 val HIDE_NAVBAR_WINDOW = 505 sysPropBooleanFlag("persist.wm.debug.hide_navbar_window", default = false) 506 507 @Keep 508 @JvmField 509 val WM_DESKTOP_WINDOWING = 510 sysPropBooleanFlag("persist.wm.debug.desktop_mode", default = false) 511 512 @Keep 513 @JvmField 514 val WM_CAPTION_ON_SHELL = 515 sysPropBooleanFlag("persist.wm.debug.caption_on_shell", default = true) 516 517 // TODO(b/256873975): Tracking Bug 518 @JvmField 519 @Keep 520 val WM_BUBBLE_BAR = sysPropBooleanFlag("persist.wm.debug.bubble_bar", default = false) 521 522 // TODO(b/260271148): Tracking bug 523 @Keep 524 @JvmField 525 val WM_DESKTOP_WINDOWING_2 = 526 sysPropBooleanFlag("persist.wm.debug.desktop_mode_2", default = false) 527 528 // TODO(b/254513207): Tracking Bug to delete 529 @Keep 530 @JvmField 531 val WM_ENABLE_PARTIAL_SCREEN_SHARING_ENTERPRISE_POLICIES = 532 unreleasedFlag( 533 name = "screen_record_enterprise_policies", 534 namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER, 535 teamfood = false 536 ) 537 538 // TODO(b/293252410) : Tracking Bug 539 @JvmField 540 val LOCKSCREEN_ENABLE_LANDSCAPE = 541 unreleasedFlag("lockscreen.enable_landscape") 542 543 // TODO(b/273443374): Tracking Bug 544 @Keep 545 @JvmField 546 val LOCKSCREEN_LIVE_WALLPAPER = 547 sysPropBooleanFlag("persist.wm.debug.lockscreen_live_wallpaper", default = true) 548 549 // TODO(b/281648899): Tracking bug 550 @Keep 551 @JvmField 552 val WALLPAPER_MULTI_CROP = 553 sysPropBooleanFlag("persist.wm.debug.wallpaper_multi_crop", default = false) 554 555 // TODO(b/290220798): Tracking Bug 556 @Keep 557 @JvmField 558 val ENABLE_PIP2_IMPLEMENTATION = 559 sysPropBooleanFlag("persist.wm.debug.enable_pip2_implementation", default = false) 560 561 // 1200 - predictive back 562 @Keep 563 @JvmField 564 val WM_ENABLE_PREDICTIVE_BACK = 565 sysPropBooleanFlag("persist.wm.debug.predictive_back", default = true) 566 567 @Keep 568 @JvmField 569 val WM_ENABLE_PREDICTIVE_BACK_ANIM = 570 sysPropBooleanFlag("persist.wm.debug.predictive_back_anim", default = true) 571 572 @Keep 573 @JvmField 574 val WM_ALWAYS_ENFORCE_PREDICTIVE_BACK = 575 sysPropBooleanFlag("persist.wm.debug.predictive_back_always_enforce", default = false) 576 577 // TODO(b/254512728): Tracking Bug 578 @JvmField val NEW_BACK_AFFORDANCE = releasedFlag("new_back_affordance") 579 580 // TODO(b/255854141): Tracking Bug 581 @JvmField 582 val WM_ENABLE_PREDICTIVE_BACK_SYSUI = 583 unreleasedFlag("persist.wm.debug.predictive_back_sysui_enable", teamfood = true) 584 585 // TODO(b/270987164): Tracking Bug 586 @JvmField val TRACKPAD_GESTURE_FEATURES = releasedFlag("trackpad_gesture_features") 587 588 // TODO(b/263826204): Tracking Bug 589 @JvmField 590 val WM_ENABLE_PREDICTIVE_BACK_BOUNCER_ANIM = 591 unreleasedFlag("persist.wm.debug.predictive_back_bouncer_anim", teamfood = true) 592 593 // TODO(b/238475428): Tracking Bug 594 @JvmField 595 val WM_SHADE_ALLOW_BACK_GESTURE = 596 sysPropBooleanFlag("persist.wm.debug.shade_allow_back_gesture", default = false) 597 598 // TODO(b/238475428): Tracking Bug 599 @JvmField 600 val WM_SHADE_ANIMATE_BACK_GESTURE = 601 unreleasedFlag("persist.wm.debug.shade_animate_back_gesture", teamfood = false) 602 603 // TODO(b/265639042): Tracking Bug 604 @JvmField 605 val WM_ENABLE_PREDICTIVE_BACK_QS_DIALOG_ANIM = 606 unreleasedFlag("persist.wm.debug.predictive_back_qs_dialog_anim", teamfood = true) 607 608 // TODO(b/273800936): Tracking Bug 609 @JvmField val TRACKPAD_GESTURE_COMMON = releasedFlag("trackpad_gesture_common") 610 611 // 1300 - screenshots 612 // TODO(b/264916608): Tracking Bug 613 @JvmField val SCREENSHOT_METADATA = unreleasedFlag("screenshot_metadata") 614 615 // TODO(b/266955521): Tracking bug 616 @JvmField val SCREENSHOT_DETECTION = releasedFlag("screenshot_detection") 617 618 // TODO(b/251205791): Tracking Bug 619 @JvmField val SCREENSHOT_APP_CLIPS = releasedFlag("screenshot_app_clips") 620 621 /** TODO(b/295143676): Tracking bug. When enable, captures a screenshot for each display. */ 622 @JvmField 623 val MULTI_DISPLAY_SCREENSHOT = unreleasedFlag("multi_display_screenshot") 624 625 // 1400 - columbus 626 // TODO(b/254512756): Tracking Bug 627 val QUICK_TAP_IN_PCC = releasedFlag("quick_tap_in_pcc") 628 629 // TODO(b/261979569): Tracking Bug 630 val QUICK_TAP_FLOW_FRAMEWORK = 631 unreleasedFlag("quick_tap_flow_framework", teamfood = false) 632 633 // 1500 - chooser aka sharesheet 634 635 // 1700 - clipboard 636 @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag("clipboard_remote_behavior") 637 // TODO(b/278714186) Tracking Bug 638 @JvmField 639 val CLIPBOARD_IMAGE_TIMEOUT = unreleasedFlag("clipboard_image_timeout", teamfood = true) 640 // TODO(b/279405451): Tracking Bug 641 @JvmField 642 val CLIPBOARD_SHARED_TRANSITIONS = 643 unreleasedFlag("clipboard_shared_transitions", teamfood = true) 644 645 // TODO(b/283300105): Tracking Bug 646 @JvmField val SCENE_CONTAINER = unreleasedFlag("scene_container") 647 648 // 1900 649 @JvmField val NOTE_TASKS = releasedFlag("keycode_flag") 650 651 // 2000 - device controls 652 @JvmField val APP_PANELS_ALL_APPS_ALLOWED = releasedFlag("app_panels_all_apps_allowed") 653 654 // 2200 - biometrics (udfps, sfps, BiometricPrompt, etc.) 655 // TODO(b/259264861): Tracking Bug 656 @JvmField val UDFPS_NEW_TOUCH_DETECTION = releasedFlag("udfps_new_touch_detection") 657 @JvmField val UDFPS_ELLIPSE_DETECTION = releasedFlag("udfps_ellipse_detection") 658 // TODO(b/278622168): Tracking Bug 659 @JvmField val BIOMETRIC_BP_STRONG = releasedFlag("biometric_bp_strong") 660 661 // 2300 - stylus 662 @JvmField val TRACK_STYLUS_EVER_USED = releasedFlag("track_stylus_ever_used") 663 @JvmField val ENABLE_STYLUS_CHARGING_UI = releasedFlag("enable_stylus_charging_ui") 664 @JvmField 665 val ENABLE_USI_BATTERY_NOTIFICATIONS = releasedFlag("enable_usi_battery_notifications") 666 @JvmField val ENABLE_STYLUS_EDUCATION = releasedFlag("enable_stylus_education") 667 668 // 2400 - performance tools and debugging info 669 // TODO(b/238923086): Tracking Bug 670 @JvmField 671 val WARN_ON_BLOCKING_BINDER_TRANSACTIONS = 672 unreleasedFlag("warn_on_blocking_binder_transactions") 673 674 @JvmField 675 val COROUTINE_TRACING = 676 unreleasedFlag("coroutine_tracing") 677 678 // TODO(b/283071711): Tracking bug 679 @JvmField 680 val TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK = 681 unreleasedFlag("trim_resources_with_background_trim_on_lock") 682 683 // TODO:(b/283203305): Tracking bug 684 @JvmField val TRIM_FONT_CACHES_AT_UNLOCK = unreleasedFlag("trim_font_caches_on_unlock") 685 686 // 2700 - unfold transitions 687 // TODO(b/265764985): Tracking Bug 688 @Keep 689 @JvmField 690 val ENABLE_DARK_VIGNETTE_WHEN_FOLDING = 691 unreleasedFlag("enable_dark_vignette_when_folding") 692 693 // TODO(b/265764985): Tracking Bug 694 @Keep 695 @JvmField 696 val ENABLE_UNFOLD_STATUS_BAR_ANIMATIONS = 697 unreleasedFlag("enable_unfold_status_bar_animations") 698 699 // TODO(b259590361): Tracking bug 700 val EXPERIMENTAL_FLAG = unreleasedFlag("exp_flag_release") 701 702 // 2600 - keyboard 703 // TODO(b/259352579): Tracking Bug 704 @JvmField val SHORTCUT_LIST_SEARCH_LAYOUT = releasedFlag("shortcut_list_search_layout") 705 706 // TODO(b/259428678): Tracking Bug 707 @JvmField val KEYBOARD_BACKLIGHT_INDICATOR = releasedFlag("keyboard_backlight_indicator") 708 709 // TODO(b/277192623): Tracking Bug 710 @JvmField val KEYBOARD_EDUCATION = unreleasedFlag("keyboard_education", teamfood = false) 711 712 // TODO(b/277201412): Tracking Bug 713 @JvmField 714 val SPLIT_SHADE_SUBPIXEL_OPTIMIZATION = releasedFlag("split_shade_subpixel_optimization") 715 716 // TODO(b/288868056): Tracking Bug 717 @JvmField 718 val PARTIAL_SCREEN_SHARING_TASK_SWITCHER = unreleasedFlag("pss_task_switcher") 719 720 // TODO(b/278761837): Tracking Bug 721 @JvmField val USE_NEW_ACTIVITY_STARTER = releasedFlag(name = "use_new_activity_starter") 722 723 // 2900 - Zero Jank fixes. Naming convention is: zj_<bug number>_<cuj name> 724 725 // TODO:(b/285623104): Tracking bug 726 @JvmField 727 val ZJ_285570694_LOCKSCREEN_TRANSITION_FROM_AOD = 728 releasedFlag("zj_285570694_lockscreen_transition_from_aod") 729 730 // 3000 - dream 731 // TODO(b/285059790) : Tracking Bug 732 @JvmField 733 val LOCKSCREEN_WALLPAPER_DREAM_ENABLED = 734 unreleasedFlag(name = "enable_lockscreen_wallpaper_dream") 735 736 // TODO(b/283084712): Tracking Bug 737 @JvmField val IMPROVED_HUN_ANIMATIONS = unreleasedFlag("improved_hun_animations") 738 739 // TODO(b/283447257): Tracking bug 740 @JvmField 741 val BIGPICTURE_NOTIFICATION_LAZY_LOADING = 742 unreleasedFlag("bigpicture_notification_lazy_loading") 743 744 // TODO(b/292062937): Tracking bug 745 @JvmField 746 val NOTIFICATION_CLEARABLE_REFACTOR = 747 unreleasedFlag("notification_clearable_refactor") 748 749 // TODO(b/283740863): Tracking Bug 750 @JvmField 751 val ENABLE_NEW_PRIVACY_DIALOG = 752 unreleasedFlag("enable_new_privacy_dialog", teamfood = true) 753 754 // TODO(b/289573946): Tracking Bug 755 @JvmField val PRECOMPUTED_TEXT = unreleasedFlag("precomputed_text") 756 757 // 2900 - CentralSurfaces-related flags 758 759 // TODO(b/285174336): Tracking Bug 760 @JvmField 761 val USE_REPOS_FOR_BOUNCER_SHOWING = 762 unreleasedFlag("use_repos_for_bouncer_showing", teamfood = true) 763 764 // 3100 - Haptic interactions 765 766 // TODO(b/290213663): Tracking Bug 767 @JvmField 768 val ONE_WAY_HAPTICS_API_MIGRATION = unreleasedFlag("oneway_haptics_api_migration") 769 770 /** TODO(b/296223317): Enables the new keyguard presentation containing a clock. */ 771 @JvmField 772 val ENABLE_CLOCK_KEYGUARD_PRESENTATION = unreleasedFlag("enable_clock_keyguard_presentation") 773 774 /** Enable the Compose implementation of the PeopleSpaceActivity. */ 775 @JvmField 776 val COMPOSE_PEOPLE_SPACE = unreleasedFlag("compose_people_space") 777 778 /** Enable the Compose implementation of the Quick Settings footer actions. */ 779 @JvmField 780 val COMPOSE_QS_FOOTER_ACTIONS = unreleasedFlag("compose_qs_footer_actions") 781 782 /** Enable the share wifi button in Quick Settings internet dialog. */ 783 @JvmField 784 val SHARE_WIFI_QS_BUTTON = unreleasedFlag("share_wifi_qs_button") 785 786 /** Enable haptic slider component in the brightness slider */ 787 @JvmField 788 val HAPTIC_BRIGHTNESS_SLIDER = unreleasedFlag("haptic_brightness_slider") 789 } 790