Allow users to choose their preferred sleep method (Auto/Root/
Accessibility Service/Device Admin) for the double-tap-to-sleep
gesture, instead of relying on the fixed priority fallback chain.
This addresses the issue where OEM ROMs aggressively kill
accessibility services, making the sleep gesture unreliable on
non-rooted devices. Users can now explicitly select Device Admin
as an alternative that won't be killed by battery optimization.
Closes#6463
Add ApplyIconPackActivity that handles app.lawnchair.APPLY_ICONS intent,
allowing third-party icon pack apps to directly apply their icon pack
to Lawnchair without requiring users to navigate to settings.
- Register activity with intent-filter in AndroidManifest
- Validate icon pack before showing confirmation sheet
- Reuse iconPackIntents from PreferenceViewModel
Refactor, copyedit, and cleanup documentation to reflect new changes regarding Lawnchair's repository. Also slightly update issue templates to remove a few redundancies.
Adds Vivaldi browser as a QSB search provider option following the
established Chromium-based browser pattern (same as Brave).
- Add Vivaldi.kt provider using SearchWidgetProviderActivity
- Add ic_vivaldi.xml full-color icon (red background + white V logo)
- Add ic_vivaldi_tinted.xml monochrome icon for system theming
- Add search_provider_vivaldi string resource
- Register Vivaldi in QsbSearchProvider.values()
Package: com.vivaldi.browser
Add handling to fully clear press visuals when focus returns or a launch transition ends. BubbleTextView now overrides onWindowFocusChanged to call a new clearPressedIconState() method, which clears framework pressed/stay-pressed state and resets the icon tap scale. Launcher was updated to call the new method reference instead of only clearing stay-pressed, ensuring icons match neighbors and covering ordering gaps when resume callbacks run before window focus is restored.
Clear touch/pressed background and reset icon scale when recycling BubbleTextView instances to prevent inconsistent icon sizes (e.g. in All Apps) — references issue #6575. Replace setScaleY(1) with setReorderBounceScale(1f) to restore the bounce scale, and call FastBitmapDrawable.resetScale() when assigning an icon so drawable-specific scale is cleared before setting bounds.
- Closes: #6575
Ensure scrim alpha/color and workspace/hotseat scale are reset when a folder is dismissed without running the close animation (e.g. launching an app). Adds restoreLauncherAfterFolderDismissed() and calls it during folder close to restore the ScrimView alpha/colors and set SCALE_PROPERTY to 1 on the workspace and hotseat. Also imports SCALE_PROPERTY and ScrimView.
Compute folder height from occupied rows and ensure scrim is correctly restored after close. Added CellLayout.getDesiredHeightForOccupiedRows and updated FolderPagedView.getDesiredHeight to use per-page occupied-row heights so folders don't leave empty space above the footer. Set footer translationY to 0 in FolderOpenCloseAnimationListener. Refactored FolderScrimAnimationListener to restore scrim via setScrimColors using the Launcher state (avoids lingering black dim layer) and pass Launcher into the listener. Added an ALL_APPS guard in FolderSpringAnimatorSet to avoid replacing the drawer scrim (fixes disappearing list background)
- Closes: #6551