Thanks for throwing me a bone, Bernhard Fuhry. Glad it worked. Revising very frequently now trying to complete an official alpha 3 with all the major feature improvements I've been working on and bug resolutions. Sorry the custom lock preview mode in that build is a little buggy. If interested try the more recent build revisions as I post them.
Thursday, January 21, 2010
Wednesday, January 13, 2010
Custom button unlock and wakeup proof of concept achieved
Thanks to a window feature called flag_dismiss_keyguard new in 2.0 I can put my own lockscreen in place every time the screen sleeps (cancelling the regular lockscreen). Then I can respond to keys however I want using regular key event handling. While I can't stop the cpu from waking up because android doesn't give apps permission to define wakeup rules, my lockscreen doesn't turn your screen on unless its a key event that we actually want to wake it up. It sends the cpu back to sleep in 5 seconds. Since it isn't doing anything it doesn't impact battery at all.
This pre-alpha test build lets camera key wake it up (once awake you see a clock, and you can use the notification panel, or press back to unlock) and keeps volume and focus camera key presses from waking the screen. Power still instant unlocks just like the rest of the myLock versions.
I am skipping alpha release for this as the first implementation of it is already in myLock complete (though non-functional as a lockscreen) and my test build APK is also up for download because I forgot to delete it.
The beta is pending completion of To-Dos:
This pre-alpha test build lets camera key wake it up (once awake you see a clock, and you can use the notification panel, or press back to unlock) and keeps volume and focus camera key presses from waking the screen. Power still instant unlocks just like the rest of the myLock versions.
I am skipping alpha release for this as the first implementation of it is already in myLock complete (though non-functional as a lockscreen) and my test build APK is also up for download because I forgot to delete it.
The beta is pending completion of To-Dos:
- Add phone listener that stops it from placing the custom lockscreen during calls -- done
- Handle opening the slider as a wakeup event (stays asleep currently) -- done
- Support customization for users to add widgets & app launchers -- proof of concept for widgets is done
- Get the home key exit consistently processing correctly --mostly done
- Get the phone call event handling rock solid --- mostly done
- Figure out how to let the power key still unlock after an accidental press of a locked key --got a working fix that inexplicably won't work for the volume keys but does for camera/cam focus
- figure out why random apps seem to interfere when lockscreen comes on over the top of them -- no idea. it seems to be odd lag and because it takes too long the lockscreen can't close itself since screen isn't waking up
- Implement the 5 second re-lock grace period and also a longer timeout for pattern lockdown
- Implement settings screen for configuring unlock/wakeup/locked down keys. I will ensure it supports double press and long press as well. Maybe you want all keys locked down except when double pressed. It will be able to do that.
- Possible implementation of a lockdown mode. This is an extra security level allowing the user to place phone into lockdown requiring they type in their password to get out of it. The lockdown mode works by intercepting attempts to leave the lockdown screen and forcing it to open again. If I can get it rock solid where it even overrides the call answering screen, then I may include this feature in the beta.
- Finish creating the 2.0 optimized lock-skip mode that actually uses a replacement lockscreen window with no customization -- 70% done
Saturday, January 9, 2010
Making progress- release first incarnation of myLock lite
myLock lite is an implementation of the lightest-weight lockscreen disable (short of the one that allows all buttons to wake up device - which does do by stopping lockscreen from ever being active) we've tested. This first release gives you a 1x1 widget that is used to turn myLock lite on or off. When it comes on or off a notification appears, which is a one time rather than a persistent mode like in myLock complete. It will also update the notification when a phone call happens as myLock functionality interferes with the phone app's control of the lockscreen while it turns screen on or off via the prox sensor.
The thing to know with this version is that it works like alpha 1. When you first wake up the device, the lockscreen is being paused. This means that the home long press and search keys are still locked out and using them will cause the pattern unlock to appear if you have one- if you do not, then pressing home once should cause a screen flicker at which point the home long press & search should be enabled.
I've also added pattern mode smart auto-toggle. what this does for you is pauses pattern security mode when you toggle myLock lite on. It will lock the device back down into pattern mode when you toggle it back off.
I've added the download link to myLock lite over on the left sidebar. This is the version I want to get out onto the market sometime soon.
The thing to know with this version is that it works like alpha 1. When you first wake up the device, the lockscreen is being paused. This means that the home long press and search keys are still locked out and using them will cause the pattern unlock to appear if you have one- if you do not, then pressing home once should cause a screen flicker at which point the home long press & search should be enabled.
I've also added pattern mode smart auto-toggle. what this does for you is pauses pattern security mode when you toggle myLock lite on. It will lock the device back down into pattern mode when you toggle it back off.
I've added the download link to myLock lite over on the left sidebar. This is the version I want to get out onto the market sometime soon.
Wednesday, January 6, 2010
version 2c - minor update
All I did was isolate and stop the cause of the force close upon receiving call. It has a slight optimization in how the stay awake is handled, and has a check box for the welcome homescreen to replace lockscreen. That doesn't work very well at the moment and is not functional at all for adding widgets so I don't recommend turning it on. If the screen is put to sleep with it up any key will wake screen back at that point.
At the moment I don't expect another update will be needed until we have some of our widgets done and the ability to place them on the welcome lockscreen.
This should give us time to turn up any other minor case bugs.
At the moment I don't expect another update will be needed until we have some of our widgets done and the ability to place them on the welcome lockscreen.
This should give us time to turn up any other minor case bugs.
Monday, January 4, 2010
Update - version alpha 2b
This version provides settings toggle for the foreground mode, and a new tool - stay awake mode which you can check and the screen will not auto-sleep.
The lockscreen skip itself must be toggled by the main button because the settings has no way of reading whether the service is running. first press will get status, turn it on if it was not, and then 2nd press confirms stop. When foreground mode is off, you won't know it's on until you try to wake the phone. But go ahead and use it if you don't like the persistent icon. I am not sure if there are bugs once you change settings but the functions being toggled have all been tested up to now in independent past versions as the features were built, so I am betting it is all pretty stable. I was able to toggle everything from various states of operation and have it all come out as expected. But alpha as always means try not to get too mad if something breaks or fails! ;]
Please send feedback to mylockandroid at gmail. Thanks!
Also check out the new faq before contacting us. Double thanks.
(Download link is posted on the sidebar at left)
The lockscreen skip itself must be toggled by the main button because the settings has no way of reading whether the service is running. first press will get status, turn it on if it was not, and then 2nd press confirms stop. When foreground mode is off, you won't know it's on until you try to wake the phone. But go ahead and use it if you don't like the persistent icon. I am not sure if there are bugs once you change settings but the functions being toggled have all been tested up to now in independent past versions as the features were built, so I am betting it is all pretty stable. I was able to toggle everything from various states of operation and have it all come out as expected. But alpha as always means try not to get too mad if something breaks or fails! ;]
Please send feedback to mylockandroid at gmail. Thanks!
Also check out the new faq before contacting us. Double thanks.
(Download link is posted on the sidebar at left)
Friday, January 1, 2010
alpha two is here
Made several breakthroughs today, earning total progress the title of alpha 2.
New functionality:
- Foreground service mode- This means you see a notification icon in the status bar. You can jump directly to the settings by opening the notification. This serves to ensure the service will work at all times. It does not impact memory usage, battery, or OS performance. It also makes it more convenient to open settings without having to hunt for the icon.
- Wakeup screen- The lockscreen bypass occasionally takes the CPU a short time. Normally not more than 1 second, and most often it appears to be instant. The wakeup screen displays a clock, & automatically clears itself when the lockscreen has been successfully bypassed. This is a great benefit because it takes the same amount of time as using the unlock slider, but you get it done with just one button press. This screen is a preview for the upcoming optional wakeup homescreen we are working on for the beta. It basically provides things that used to be on the lockscreen & other useful things we wished were on it- sound mode, brightness, clock, and other useful tools, or even any widget you have on the device can also be placed on it.
- Added our custom icon.
Bug Fixes:
- The phone will no longer incorrectly bring the lockscreen back while a call is in progress. If a call ends with the screen on, you may see the lockscreen come back. For now this is normal, but normal auto-unlock resumes correctly.
- The home button recent-apps shortcut and the search button now respond correctly after auto-unlock.
If you dislike the persistent icon & notification panel presence, the option is forthcoming to disable it (with a disclaimer that we do recommend running it in foreground mode for stability).
Bug fixing & feature experimentation
I turned up this thread while googling disablekeyguard to try and fix a bug happening in my app. Interesting thoughts going on there, they really don't want people creating a replacement for the secure lock that really stops user from doing other things till it is done. Good thing my app wants to add more freedom and not take it away!
How myLock works up to now is it disables the lockscreen automatically on wakeup. It works except for one thing. The home button causes an odd quirk. When I implement the code such that disable always happens at screen on and reenable at screen off, if you try to do home long press to call up the app switcher, it never happens. When you release home, the screen re-draws (see a black screen for an instant) then home screen appears (even if you were already at the home screen). After that, the long press works for the rest of the time the device is awake.
I was just trying to fix this bug to work toward a beta release, but at the same time experimenting with disabling the keyguard and not calling re-enable-- I noticed that in every other usage of disabling the keyguard, it gets forced back on when home is pressed then screen off happens. My code simply breaks after that, the disablekeyguard command doesn't work anymore at screen on. The only reason I would want to code it like that is to try to open the door to customized button wakeup. I think that feature will have to be postponed.
To try to learn how to fix the bug in the working implementation, I found myself looking for the code of what happens when the user is trying to do home button short or long presses to see if there was any way my app could be notified. And indeed it seems the only way would be to have the app be the default home.
I can't figure out how the other apps that skip the keyguard are getting around the bug (keyguard disabler by mikeDg or screenmodewidget), but I really don't want it to allow all buttons to wakeup uncustomizably. All I want to do is eliminate the bug. I am relatively ok with keeping wakeup limited to the power button or slide open actions. You can even program a shake to wake it up since that is done through the sensor. I'm talking with the developer of an app that wants to do that and has it working to wake to the lockscreen.
Our next goal is to launch a custom subclass of the launcher (regular home scren) at every wakeup, immediately after the keyguard disable, so that the end user has a welcome screen where their favorite widgets, app shortcuts, and tools will reside. I want the user to be able to press home to get to the real launcher, or escape to get to whatever was going on before the screen went off. Before I move on to that I will make the utilities widget to be included in a beta release. 2nd beta release will implement the wakeup home.
Subscribe to:
Posts (Atom)