Frequently Asked Questions
If you have a question or a problem, please look over the titles of the questions here to see if it has already been addressed. If not, please email me or open an issue.
The functionality never belonged in a battery app to begin with. I originally added it because I wanted to automatically have my lock screen disabled while my device was plugged in and on my desk. I figured, "Hey my battery app already knows when the device is plugged in or out, and it already has a background Service running at all times; why don't I just add it to that?" (Note: A Lock Block only runs a background Service when actively blocking the lock screen.)
I regretted it many times over the years, since it doesn't fit in as part of a battery app. And I often wanted to improve the lock-blocking functionality in ways that would be very difficult as part of BatteryBot Pro. But what finally pushed me over the edge was wanting to use the space taken by the "Disable Lockscreen" button in BatteryBot Pro for other, actually battery-related things. I conducted a poll on the BatteryBot Google Plus community, and the vast majority of users either never used the lock-blocking functionality or didn't mind it being pulled out into another app.
For the same reason BatteryBot and Noteworthy Tuner are: I think open source is great for the world and should be the default decision: software should be open source unless there is a compelling reason to keep the source closed. All of my existing apps are open source, but I do have one forthcoming that will remain closed.
I'm certain that I lose sales over this decision, but I hope that this is at least partially offset by additional sales by people who appreciate the decision to share my code. I strongly believe in giving back to the community, and I'm confident that I offer my customers greater value with most of my apps being open source.
That's a very good question, one that I think every developer should explicitly address. One thing to keep in mind is that permissions are all-or-nothing and happen at install time: if some optional feature requires a permission in order to work, I need the app to request it at install time. By explaining here exactly why the app requests its permissions and how it uses them, and of course by sharing the source code publicly, I hope to make it an easy decision to grant the permissions and install the app.
WAKE_LOCK ("prevent phone from sleeping")
This is necessary for the lock screen functionality to work properly. It won't be used at all if you don't have the app set to automatically disable and reenable the lock screen. If you do have that turned on, then the wake lock is released immediately after acquisition. It's just a work-around to make sure the the lock screen is reenabled properly; when I say immediately, I mean immediately: https://github.com/darshan-/alockblock/blob/83b973f4c786116dc103abfadeb19c174cb51de4/src/com/darshancomputing/alockblock/PlugInOutReceiver.java#L63
DISABLE_KEYGUARD ("disable keylock")
This is for the disable lock screen functionality ("keyguard" means lock screen).
RECEIVE_BOOT_COMPLETED ("automatically start at boot")
This is so the app can update the lock screen status after rebooting.