There are some apps that Red Moon should not run during. This obviously includes apps that are secured against overlays, but some users also would like it to include camera/gallery apps, etc.
Background
It's not feasible to maintain such a list for all known secured applications, although we currently try to. Further, some apps are only secured in certain activities, the list of which is definitely not feasible to maintain, so we have to make compromises, like #165. And of course, no list will fit everyone's preferences.
A dynamic, user-generated whitelist is the only reasonable solution to both issues. By default, the whitelist would include a complete list of secured activities that are shipped with all android installations, like the package installer -- a list small enough to maintain -- and users can add to their own whitelists.
Other Solutions
The traditional way would be to have a screen that shows all apps/activities on the device and lets the user select which ones to whitelist. However, I don't think it is a good experience. It forces them to leave the current app (that they want the filter to pause in), open Red Moon, find that app, and add it to the whitelist. Additionally, it's a fair amount of work to implement, so it would be a while until I could get around to it.
Proposal
Rename Pause in secure apps to Pause in whitelisted apps
Replace the notification's pause action with Whitelist
I don't love this name, but it must stay short so it fits on the notification. Maybe Whitelist app, and we could show the current app in the notification description? Or Add to whitelist, but that's getting a little long.. If anyone has a clearer 1-2 word name, I'm interested.
Tapping this action adds the current package/activity to the whitelist (causing the filter to pause automatically)
Initially, we'll only care about the package name, for simplicity. We can extend to use activities later (#166).
Implementation: Create a new whitelist SharedPreference. Keys are package names, values are stringsets of activities. This implementation will be sufficient to add support for activities, so upgrading won't be a pain.
When the filter is (automatically) paused, instead show Un-whitelist
There's got to be a better name for this.
Tapping it will remove the app from the whitelist. For now, we'll delete the entire entry (thus, there can only be one activity saved per app for now).
Paused should now be considered the same as running, and the notification should not be dismiss-able.
For consistency, this should apply even when Pause in whitelisted apps is disabled
Add a new action, Stop, which will stop the service and dismiss the notification.
Motivation
There are some apps that Red Moon should not run during. This obviously includes apps that are secured against overlays, but some users also would like it to include camera/gallery apps, etc.
Background
It's not feasible to maintain such a list for all known secured applications, although we currently try to. Further, some apps are only secured in certain activities, the list of which is definitely not feasible to maintain, so we have to make compromises, like #165. And of course, no list will fit everyone's preferences.
A dynamic, user-generated whitelist is the only reasonable solution to both issues. By default, the whitelist would include a complete list of secured activities that are shipped with all android installations, like the package installer -- a list small enough to maintain -- and users can add to their own whitelists.
Other Solutions
The traditional way would be to have a screen that shows all apps/activities on the device and lets the user select which ones to whitelist. However, I don't think it is a good experience. It forces them to leave the current app (that they want the filter to pause in), open Red Moon, find that app, and add it to the whitelist. Additionally, it's a fair amount of work to implement, so it would be a while until I could get around to it.
Proposal
Pause in secure apps
toPause in whitelisted apps
pause
action withWhitelist
Whitelist app
, and we could show the current app in the notification description? OrAdd to whitelist
, but that's getting a little long.. If anyone has a clearer 1-2 word name, I'm interested.whitelist
SharedPreference. Keys are package names, values are stringsets of activities. This implementation will be sufficient to add support for activities, so upgrading won't be a pain.Un-whitelist
Paused
should now be considered the same as running, and the notification should not be dismiss-able.Pause in whitelisted apps
is disabledStop
, which will stop the service and dismiss the notification.