Skip to content

Main upstream#378

Merged
sameerasw merged 20 commits intodevelopfrom
main
Apr 30, 2026
Merged

Main upstream#378
sameerasw merged 20 commits intodevelopfrom
main

Conversation

@sameerasw
Copy link
Copy Markdown
Owner

No description provided.

sameerasw and others added 20 commits April 12, 2026 19:51
…c, qsmpanel security, new notification lighting animation, qs tile categories, what's new onboarding, reddit card and version update (#330)

This pull request introduces several enhancements and updates across the
project, focusing on improving the categorization of Quick Settings
tiles, updating dependencies, and minor code quality improvements. The
most significant changes are the addition of explicit tile categories in
the manifest for better organization in the Quick Settings panel,
dependency updates for Compose Material3, and the introduction of a new
foreground service.

**Manifest and Service Enhancements:**

* Added `<meta-data>` entries specifying `TILE_CATEGORY` for each Quick
Settings tile service in `AndroidManifest.xml`, ensuring tiles are
grouped and displayed appropriately in the system UI. Categories such as
`CATEGORY_UTILITIES`, `CATEGORY_DISPLAY`, `CATEGORY_PRIVACY`,
`CATEGORY_CONNECTIVITY`, and `CATEGORY_ACCESSIBILITY` are now used.
[[1]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR342-R343)
[[2]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR369-R370)
[[3]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR382-R383)
[[4]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR395-R396)
[[5]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR408-R409)
[[6]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR421-R422)
[[7]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR434-R435)
[[8]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR447-R450)
[[9]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR460-R461)
[[10]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR472-R473)
[[11]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR484-R487)
[[12]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR542-R543)
[[13]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR555-R556)
[[14]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR568-R569)
[[15]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR581-R582)
[[16]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR594-R595)
[[17]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR607-R608)
[[18]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdL575-R621)
[[19]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR633-R634)
[[20]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR646-R649)
[[21]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR659-R662)
[[22]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR672-R673)
[[23]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR695-R696)
[[24]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR708-R709)
[[25]](diffhunk://#diff-7fa6aef292187a049f7a4d6060d8df3ba212d838789c78940bd363344b1c38cdR722-R723)
* Added a new foreground service, `AppDetectionService`, to
`AndroidManifest.xml` with the `specialUse` foreground service type and
a custom description property.

**Dependency and Build Updates:**

* Updated `androidx.compose.material3:material3` dependency to version
`1.5.0-alpha17` for access to new MaterialShapes.
* Added `androidx.graphics.shapes` library to dependencies.
* Incremented `versionCode` and `versionName` in `build.gradle.kts` and
introduced a `WHATS_NEW_COUNTER` build config field.

**Code Quality and Functionality:**

* Improved intent naming and handling in `AppLockActivity.kt` for better
clarity and reliability when starting the
`ScreenOffAccessibilityService`.
* Added a broadcast for authentication failure in `AppLockActivity.kt`
to notify other components.

**Other:**

* Added a new asset file `adi-registration.properties` with registration
data.
Added a new Reddit banner and adjusted alignment for existing images.
…navigation, button remap haptics, tile service responsiveness, vol buttons in camera (#341)

This pull request introduces several improvements and fixes across the
Essentials app, with a focus on enhancing the Quick Settings tile
service architecture, improving IME model handling, optimizing
performance for camera apps, and updating versioning. The most
significant changes are the refactor and feature enhancements to the
Quick Settings tile services, new logic to bypass security scanning for
camera apps, and improvements to IME-related code for better ProGuard
compatibility.

**Quick Settings Tile Service Refactor and Enhancements:**

* Introduced a new abstract `BaseTileService` providing coroutine
support, processing state management, caching for secure settings, and
improved UI feedback; refactored `BatteryNotificationTileService` to
extend this base class and implement required abstract methods. This
improves code reuse, responsiveness, and maintainability.
[[1]](diffhunk://#diff-a42ec259a77d6dbfb8a3b01c5eea58ec4d55ee4f0f5bcb1ae38385236208597cR14-R30)
[[2]](diffhunk://#diff-a42ec259a77d6dbfb8a3b01c5eea58ec4d55ee4f0f5bcb1ae38385236208597cR47-R51)
[[3]](diffhunk://#diff-a42ec259a77d6dbfb8a3b01c5eea58ec4d55ee4f0f5bcb1ae38385236208597cR61)
[[4]](diffhunk://#diff-a42ec259a77d6dbfb8a3b01c5eea58ec4d55ee4f0f5bcb1ae38385236208597cR73-R113)
[[5]](diffhunk://#diff-a42ec259a77d6dbfb8a3b01c5eea58ec4d55ee4f0f5bcb1ae38385236208597cR126-R140)
[[6]](diffhunk://#diff-a42ec259a77d6dbfb8a3b01c5eea58ec4d55ee4f0f5bcb1ae38385236208597cR151)
[[7]](diffhunk://#diff-951e82124e88237349ac7bc459b9624fccf41b7add6f8bfd61fb859b61622067R4-R17)
[[8]](diffhunk://#diff-951e82124e88237349ac7bc459b9624fccf41b7add6f8bfd61fb859b61622067L39-R44)

**Performance and Usability Improvements for Camera Apps:**

* Added `isCameraApp` logic to `AppFlowHandler` to detect camera apps by
package name, and updated `ScreenOffAccessibilityService` to bypass
security scanning and key event interception for camera apps. This
prevents performance issues and conflicts with camera shutter/zoom
functions.
[[1]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R32-R33)
[[2]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R54-R55)
[[3]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R235-R256)
[[4]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08L176-R186)
[[5]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08L200-R213)

**IME and ProGuard Enhancements:**

* Added `@Keep` annotations to IME-related data classes and enums
(`SuggestionType`, `Suggestion`, `ActionType`, `HistoryAction`) and
expanded ProGuard rules to ensure these classes are preserved during
minification, preventing runtime issues.
[[1]](diffhunk://#diff-dc331ba90947f7a80538fbe04afdca8b92feeb64bf21c5232d2b8eeb9eee7d93R24-R31)
[[2]](diffhunk://#diff-7544bbdb370f04c6c87c5e89b25b49daebb1bd632682d92f049e60d5cbe75da5R6-R12)
[[3]](diffhunk://#diff-24fc40bbf6fe503c74604e0477ff8f55aeab48cb521e1a844b9efa6c3771c15eL49-R53)

**UI and Navigation Fixes:**

* Improved tab navigation in `MainActivity` by making the initial page
calculation reactive to `defaultTab` changes and updating the predictive
back handler to return to the correct initial tab instead of always the
first tab.
[[1]](diffhunk://#diff-ad4ba0c464c3da383256c4282daceee29c13d8de8e60416fef688e3a78f49effL298-R298)
[[2]](diffhunk://#diff-ad4ba0c464c3da383256c4282daceee29c13d8de8e60416fef688e3a78f49effL307-R312)

**Other Notable Updates:**

* Updated versioning in `build.gradle.kts` to versionCode 38 and
versionName 12.7.
* Improved haptic feedback logic in `FlashlightHandler` to respect user
preferences for haptic type.
* Simplified overlay fade-out logic in `NotificationLightingHandler`.
…ggle, glove mode, systemui restart, disable qs, statusbarManager, advanced statusbar customizations, system notification lighting, improve tile logic (#345)

This pull request introduces several new features and enhancements,
particularly around system customization options, and refines the
permissions and feature registry logic. Notably, it adds a "Scale
Animations" system, a new "Other customizations" feature, and improves
how certain features check for required permissions. It also bumps the
app version and includes various supporting code changes.

**New Features and System Customizations:**

* Added a "Scale Animations" system, including a new
`ScaleAnimationsProfile` data class, repository methods for
getting/setting profiles and related system settings (touch sensitivity,
auto-rotate, screen timeout), and new keys in `SettingsRepository`.
[[1]](diffhunk://#diff-321552953ed62555cb397536e3f376607dcf9185673fc06d061ee072b6ad47ecR1-R13)
[[2]](diffhunk://#diff-3034452163f09f9c5b913dccd6f93b4a3fefaf773460d401d8904f6f151eb1a7R202-R204)
[[3]](diffhunk://#diff-3034452163f09f9c5b913dccd6f93b4a3fefaf773460d401d8904f6f151eb1a7R966-R1050)
* Introduced a new "Other customizations" feature in the feature
registry, with UI integration in `FeatureSettingsActivity`.
[[1]](diffhunk://#diff-24845de72ed4d362c708778c76734f4c7ebe02be324274ede2d7bfcc2bbfd23dR689-R718)
[[2]](diffhunk://#diff-dd3d9f46d2b3a6d22fe1e3d6c01d0731ea48d3f11f5890898dde2d0e7f40ce60R70)
[[3]](diffhunk://#diff-dd3d9f46d2b3a6d22fe1e3d6c01d0731ea48d3f11f5890898dde2d0e7f40ce60R267)
[[4]](diffhunk://#diff-dd3d9f46d2b3a6d22fe1e3d6c01d0731ea48d3f11f5890898dde2d0e7f40ce60R638-R645)

**Feature and Permission Registry Refinements:**

* Updated the "Screen locked security" feature to check for root or
Shizuku permissions instead of accessibility and secure settings, and
adjusted permission registry accordingly.
[[1]](diffhunk://#diff-24845de72ed4d362c708778c76734f4c7ebe02be324274ede2d7bfcc2bbfd23dR689-R718)
[[2]](diffhunk://#diff-b1f1d547c9026cdc9d71b988988d5b536d7b0aad6cabde798889fb8abc00d6c6L23-R36)
* Removed legacy permission checks for "Screen locked security" and
moved its registration to the Shizuku permission group.

**Quick Settings and UI Enhancements:**

* Added a new Quick Settings tile service for "Scale Animations" in the
manifest.
* Added a "Restart SystemUI" feature card in `SettingsActivity`.

**Notification Lighting and Miscellaneous:**

* Added a new "SYSTEM" style to `NotificationLightingStyle` and support
for a system mode in notification lighting preferences.
[[1]](diffhunk://#diff-31dbb33a0ec1fa29f8670cf62e434a705f3ad03a18bd2236fee7eb6047f34829L7-R8)
[[2]](diffhunk://#diff-3034452163f09f9c5b913dccd6f93b4a3fefaf773460d401d8904f6f151eb1a7R74)
[[3]](diffhunk://#diff-3034452163f09f9c5b913dccd6f93b4a3fefaf773460d401d8904f6f151eb1a7R327-R329)
* Bumped app version to 13.0 (code 39).

These changes collectively expand the app's customization capabilities,
improve permission handling for advanced features, and provide a more
modular and maintainable codebase.
This pull request introduces a new "Circle to Search" gesture feature,
allowing users to trigger the Google "Circle to Search" action via a
long-press gesture overlay or as a remappable button action. The
implementation includes UI options, persistent settings, gesture
handling, and system integration.

**Feature: Circle to Search Gesture**

* Added a persistent setting key `circle_to_search_gesture_enabled` to
`SettingsRepository` to store user preference for enabling the gesture.
* Introduced UI toggle in `OtherCustomizationsSettingsUI` for
enabling/disabling the "Circle to Search" gesture, which is only active
if the gesture bar is hidden.
* Updated `MainViewModel` to manage the state of the new gesture setting
and keep it in sync with preferences.
[[1]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R136)
[[2]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R490-R493)
[[3]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R528)

**Gesture Overlay Implementation**

* Added `OmniGestureOverlayHandler`, a new class that displays an
overlay for the gesture, handles long-press detection, and provides
haptic feedback. The overlay is shown/hidden based on the relevant
settings and device state.
* Integrated the overlay handler into `ScreenOffAccessibilityService`,
including lifecycle management, configuration change handling, and
reacting to preference changes.
[[1]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08L21-R21)
[[2]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R42)
[[3]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R56-R62)
[[4]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R74)
[[5]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R88-R96)
[[6]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R132-R134)
[[7]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R163-R170)
[[8]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R184-R188)
[[9]](diffhunk://#diff-ab4ea5a51ba8ccf8cc20e4f0f32b59b50ba9aa425d69f6d4fb6215ddef315b08R222-R226)

**Remappable Action Support**

* Added "Circle to Search" as a remappable action in the button remap
UI, and updated `ButtonRemapHandler` to support triggering the gesture
(with haptic feedback) when this action is selected.
[[1]](diffhunk://#diff-1693a4833f938163e799bccd625f4706231fb893d85d02b25652bb7dbea7d76eR424-R429)
[[2]](diffhunk://#diff-2aae72ac57237bc7a4b107c2a3537ec0a2534457a42e1fb3f4622274c5b0bf25L200-R211)

**System Integration Utility**

* Implemented `OmniTriggerUtil`, a utility for triggering the Google
"Circle to Search" session using reflection and Shizuku, handling both
root and non-root scenarios.
This pull request introduces a new feature that allows users to hide the
gesture bar only when on the launcher (home screen), along with related
UI, logic, and permission handling updates. It also improves the
handling of permissions for gesture-related features and updates
translations for new and existing features.

**Feature: Hide Gesture Bar on Launcher**
- Added support to hide the gesture bar only when the launcher (home
screen) is active, including state management, settings storage, and
logic to detect launcher apps.
[[1]](diffhunk://#diff-3034452163f09f9c5b913dccd6f93b4a3fefaf773460d401d8904f6f151eb1a7R116)
[[2]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R66)
[[3]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R260-R289)
[[4]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R136)
[[5]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R495-R499)
[[6]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R535-R542)
[[7]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669R1284-R1294)
[[8]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669L1386-R1406)

**UI and Permissions Improvements**
- Updated the UI in `OtherCustomizationsSettingsUI` to add a toggle for
"Hide gesture bar on launcher" and improved permission request flows for
gesture bar and Circle to Search features, including accessibility and
usage stats permissions.
[[1]](diffhunk://#diff-b9938c14c28e14710560537238fa6ffc4a089c58360fec2e08a9f28b46b0cda7R28-R62)
[[2]](diffhunk://#diff-b9938c14c28e14710560537238fa6ffc4a089c58360fec2e08a9f28b46b0cda7R78-R112)
[[3]](diffhunk://#diff-b9938c14c28e14710560537238fa6ffc4a089c58360fec2e08a9f28b46b0cda7R131-R133)
[[4]](diffhunk://#diff-b9938c14c28e14710560537238fa6ffc4a089c58360fec2e08a9f28b46b0cda7L96-L116)
- Refactored permission sheet logic to be more modular and context-aware
for different features.
[[1]](diffhunk://#diff-b9938c14c28e14710560537238fa6ffc4a089c58360fec2e08a9f28b46b0cda7R28-R62)
[[2]](diffhunk://#diff-b9938c14c28e14710560537238fa6ffc4a089c58360fec2e08a9f28b46b0cda7R78-R112)

**Localization Updates**
- Added and updated string resources in multiple languages for the new
"Hide gesture bar on launcher" and "Circle to Search gesture" features.
[[1]](diffhunk://#diff-6348e200663bf76901952198da59acd66bea08e0d370904cef122fe8aeeb8879R57)
[[2]](diffhunk://#diff-6348e200663bf76901952198da59acd66bea08e0d370904cef122fe8aeeb8879R342-L343)
[[3]](diffhunk://#diff-c51c82991c84693343219a195f7469af9f0510ad421fcacb4ce0afbe02edd50eR57)
[[4]](diffhunk://#diff-c51c82991c84693343219a195f7469af9f0510ad421fcacb4ce0afbe02edd50eR342-L343)
[[5]](diffhunk://#diff-275e22e5424874865d61be0a790c48168da5998ec6dd530c83fb33005bfa4449R57)

**Internal Logic and Dependency Updates**
- Updated app detection logic to ensure the app detection service runs
when the new feature is enabled and improved launcher detection logic.
[[1]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R260-R289)
[[2]](diffhunk://#diff-7206d3db36c3aca0462993b0a3d76694ccfeb5c838f0545ec55dd0883e4d1669L1386-R1406)
- Added necessary imports and utility references for new functionality.
[[1]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R7)
[[2]](diffhunk://#diff-a5e6669ac2192c53743b62db83331037514deb5b8bad39a5fbf12da11f3593a3R17)

These changes collectively enhance user control over system navigation
elements and streamline the permissions experience for related features.
@sameerasw sameerasw self-assigned this Apr 30, 2026
@sameerasw sameerasw merged commit b9161e5 into develop Apr 30, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Essentials Progress Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant