Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.