feat: block installation of third-party store apps when parental control is active
Description
Similar to 'not-working' and 'zero-privacy' apps, a list of third-party app stores, stored in the JSON at GitLab repo, are downloaded and saved into filesystem cache.
When trying to install such an app, App Lounge checks if the package is already in the blocklist.
If any such package is already installed on the device prior to activating parental control, the package is checked against the blocklist and the data is sent to the Parental Control app via the AgeRatingProvider. Thus, parental control blocks the app from running.
Screenrecord
third-party-app-parental-control-app-lounge.mp4
Tests
Installing new app from App Lounge
- Enable parental control.
- Install any of the apps listed here.
- Observe that the installation is blocked.
Blocking of existing app by the Parental Control
- Disable parental control.
- Install any of the apps listed here.
- Enable Parental Control.
- Observe that the apps are blocked by Parental Control.
Issues
https://gitlab.e.foundation/e/backlog/-/issues/8251
10 commandments of code reviews
Summary by CodeRabbit
-
New Features
- Introduced a new property for third-party store apps in the app warning information.
- Added functionality to check if an app is from a third-party store.
- Enhanced app validation logic to include checks for third-party store apps.
-
Bug Fixes
- Updated copyright notices to reflect the new ownership.
-
Documentation
- Updated method signatures and added new methods for better app management.
Summary by CodeRabbit
-
New Features
- Introduced a new property for third-party store apps in the app warning information.
- Added a method to check if an app is from a third-party store.
- Enhanced app validation logic to include checks for third-party store apps and known NSFW apps.
- Integrated a new dependency to access blocked app information.
-
Bug Fixes
- Updated copyright notices to reflect ownership changes.
-
Documentation
- Adjusted years in copyright notices to reflect the current range.