Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Routine Operations #61

Open
MuntashirAkon opened this issue Aug 12, 2020 · 5 comments
Open

Routine Operations #61

MuntashirAkon opened this issue Aug 12, 2020 · 5 comments
Labels

Comments

@MuntashirAkon
Copy link
Owner

MuntashirAkon commented Aug 12, 2020

It's important to add a feature that lets users execute various operations in a definite moment or event. These events are:

  1. On startup (handled via boot receiver)
  2. Custom interval (handled via WorkManager)
  3. Custom time ( " " " ) [If you want to execute now, use batch ops, 1-click ops, profiles etc.]
  4. After a network connection is available ( " " " )
  5. Battery not low ( " " " )
  6. Battery is charging ( " " " )
  7. * Device idle ( " " " )
  8. Storage not low ( " " " )
  9. After installing or removing an application (Constant foreground service)
  10. After an app is went to foreground ( " " " )
  11. After an app is went to background ( " " " )
  12. After screen goes on ( " " " )
  13. After screen goes off ( " " " )

* May not be implemented

Routine operations can be performed on the following options:

  1. Profiles
  2. Newly added package
  3. Newly removed package
  4. Changed packages (force-stopped, disabled, etc. there's no way to detect each operations individually)
  5. Running user apps

2-5 also require a profile but the packages within the profile will be ignored. I may add an option for it in profiles later.

@MuntashirAkon MuntashirAkon added the Feature New feature or request label Aug 12, 2020
@MuntashirAkon
Copy link
Owner Author

MuntashirAkon commented Aug 12, 2020

Prerequisite: Profiles (#72)

Routine operations are best suited if they each have a separate profile. For instance, a user may want to disable a bunch of apps for a certain interval or immediately for that matter. Having profiles can help him achieving that easily. Features of a profile:

  • Each profile must have a unique name
  • Profile can contain all the features that AM supports including app/component disabling, app op blocking, permission revoking, force stopping and backups
  • Profile can be easily imported, exported and duplicated
  • Features that supports blocking/denying should have to states: on (blocking is in place) and off (blocking is disabled).

@MuntashirAkon
Copy link
Owner Author

How is profiles going to be merged with routine ops

All routines are considered separate events: some are built-in (such as on reboot, on install, on uninstall, etc.) and some are user-defined (such as custom interval), and each event can be assigned multiple profiles. So, when an event is called, the operations stated in the profile will be executed.

@MuntashirAkon
Copy link
Owner Author

MuntashirAkon commented Aug 30, 2020

Routine tasks profiles should also support shortcuts so that they can be triggered manually from the home screen.

@Cyberavater
Copy link

Cyberavater commented Jun 14, 2021

  1. After installing...

Prompt to restore data in the notification, if available.

@MuntashirAkon
Copy link
Owner Author

Prompt to restore data in the notification, if available.

This should go in the settings page related to backup/restore, I think.

@MuntashirAkon MuntashirAkon added the Status: WIP Work in progress label Mar 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants
@MuntashirAkon @Cyberavater and others