Just uploaded the newest update for Void Lock.
This new update focuses on fixing up ICS support.
Turns out the FC error I had before was because I set the targetsdkversion to be ICS, but the code I used to block the home button has been changed. After removing that line of code, the FC errors disappeared.
I also noticed that there was a problem with the status bar sometimes appearing. I discovered that this was because something was preventing Void Lock from becoming fullscreen after onStart is called. This is also related to the piece of code that was changed in ICS.
After a few days of planning, I decided that the best option is to just create a home launcher for Void Lock. The approach I took is just to create some kind of switch as the home launcher. When home is pressed, it will check if Void Lock is currently locked. If Void Lock is active on the screen or if it is active in the background then pressing home will lead it straight back to Void Lock. As long as Void Lock is not currently locking the screen, pressing Home will just call any launcher that the user preselects.
After some thinking, I noticed that there was definitely a couple of advantages to this approach. Main advantage is that it will definitely prevent the home button to be pressed while Void Lock is locked. This should hold true for every device unlike the previous piece of code that might break depending on this device or that device. But the biggest advantage that I saw was the increase of security. Now, even if someone was able to launch out an app through an app gesture that was created, it wouldn’t help them much. Previously, if an app was launched or any kind of popup popped up, pressing home will bring people straight to the home launcher. Thus enabling them to get in. With Void Lock set as the default launcher, that’s just simply not possible. Pressing home when any app is launched or any popup is shown will simply bring users back to Void Lock instead of the home launcher. Due to this, as long as users do not put in a gesture for Settings, uninstall apps, Void Lock Settings or etc, then it should be impossible for anyone to be able to turn off or uninstall Void Lock without a factory reset.
One other benefit I could think of off the top of my head is that if Void Lock is the default home launcher, then that means that the device can be locked immediately from a reboot. Previously, the default launcher is launched and then a few minutes would occur before Void Lock became active and locked the phone. This isn’t an issue with the new approach.
If there’s one bad thing about this approach, its the fact that the selected launcher is technically no longer a home launcher. Well, its still a home launcher, just now its treated as a regular app and at risk to being killed by the system. What this means is that when the homescreen is shown, it will redraw its widgets more frequently than if it was the default launcher. This isn’t much of an issue for users who has little to none widgets on their homescreens, but for the users who has a major amount, they will definitely notice the redrawing.
Since I said that the status bar problem was caused by the code that was used to block the home button, I have made modifications where if Void Lock is set as the default launcher, then it will disable that piece of code. This will also fix up the status bar issues so it should be considered by even nonICS users.
One last issue I fixed up was the problem that some users had with their device not detecting gestures or key combinations anymore. Truthfully, it looks like Void Lock stopped working, but actually its still working. The problem came from having a popup notification of some kind popping up and blocking the screen. That type of popup notification could be SMS messages and related messages, Low Battery Dialog, or any other type of popup boxes. These would pop up while Void Lock was locked and because Void Lock turns the brightness below the minimum amount, it will be too dark to see that the boxes had popped up. Because of this, most users didn’t notice anything and only noticed that Void Lock stopped responding to anything. Though obviously, only LCD users suffered from this issue. AMOLED users are all able to see the popups that appear so this was a non-existant issue to them.
I took a new approach to fixing this problem. The approach I’m taking now is for the screen to brighten up a bit to display the popup when it is received. At least this way, users can be sure that Void Lock isn’t not responding.
Pretty big update here, hoping to get a lot of new ICS users and more and more users.