Monday, June 7, 2010

Froyo update notes

Update 7/5/10--- Due to the changes in froyo that close security holes in the lockscreen that had allowed apps to toggle off security or close the lockscreen from a transparent window, there is no telling what more will be done that further destroys the capability of interacting with the lockscreen via SDK apps. There has been talk of deprecation of the pre-2.0 keyguard interaction API, among other details that have come down directly from the android developers.

Though with the release of eclair things seemed to be getting better and better for lockscreen apps, the android development team has continued to refuse to implement much-needed enhancements to the lockscreen interaction methods and instead with android 2.2 are reducing their usefulness and versatility for use within SDK just to fit internal (Google) app functionality needs.

myLock will not progress any further until the android team chooses to finish the missing componenents that will allow smooth lockscreen substitution and security/power mediation. They are deliberately avoiding doing so and treating what's been implemented as an internal tool to help the phone and alarm/dock apps have more features.

myLock for eclair, release 1.5, is the final official release. It will include idle lock (one of the main things we lost in the update to 2.2). In the market it will be available for $0.99. You'll still be able to download any older version built on 2.0 for free on the project page.

Until android team decides it is worth it to finish the unimplemented elements of lockscreen substitution, I am done trying to force it to work and troubleshooting the nuances that occur with the various cases of lockscreen control. I don't have any new features planned, having lost plenty of features that took a long time to stabilize.

What this means is that I will not be officially supporting myLock on Froyo. I will make the test build that I've been running on the leaked droid 2.2 available to my donators via the market donate package.

Please contact me if you manually donated prior to our launch in the market and I will send you the apk and keep you on the list for updates. I'd like to put the root-version alpha in your hands first as soon as it is available. I am not sure how soon I might begin work on this root version but it will likely be sooner than android decides to bring lockscreen substitution to the SDK properly.

Read about it at the official issue report we opened when the 2.2 sdk was first released- Android team has no plans to provide the tools yet needed to allow lockscreen superseding windows to return control to the lockscreen or unlock when needed

Saturday, May 1, 2010

Projects back on hold

Due to a change in schedule again there may not be updates for the app for a while.

I'm releasing the unfinished advanced mode 1.4 version into market. It functions for any key wake, and requires home or back key to exit the myLock non-secure lockscreen. Power instant unlocks as usual.

The next updates were to add full button customization and update the widget lockscreen to provide the advanced operating mode.

Everything else we wanted to achieve is live, more or less. The phone tools app will be released shortly with only the phone lock due to some inconsistencies we have discovered with the answer prompt workarounds. I may leave answer prompt in with warning that it experiences interference from music apps.

Update ----
Advanced mode is now more finished, allowing any key to unlock after wakeup.
Phone tools also updated with a new method thanks to fellow open source dev Tedd.
This is it for updates for awhile other than if any critical bugs turn up.

Wednesday, April 21, 2010

update 1.4 under construction

New features:

3 modes:
-Skip lockscreen: Simplest auto unlock
-Hide lockscreen: Wallpaper display during auto unlock
-Disable lockscreen: Every key unlocks

Widget status display - Try this out in the 1.4 test build

More streamlining and enhancement to setup process to make it less restrictive and more clear which options can be changed while myLock is running.

Separate to this the phone mod will be released as a standalone app. Setup answering calls via buttons of choice or onscreen touch button, and enable call touchscreen guard to prevent face dialing if the prox sensor doesn't agree with you.

Tuesday, April 13, 2010

All about addons

myLock will continue to be free and 100% open source. I take pride in maintaining code that others can learn from. I just code what people want, there is no reason not to share the knowledge of how we accomplished everything in the great android open source platform.

For most of the special features people have been requesting that go beyond skipping/replacing the lockscreen into more ways to customize and control this, I have decided to release addons. This is so the free, simple nature of the essential myLock functionality is preserved without bombarding the average user with extra settings.

Addons are great also because I can attach donation incentives to them. Most of the addons are very simple lightweight functionalities. Thus far we have created the toggle addon and the idle lock addon. Right now, Locale integration is only a part of the toggle but we intend for every addon to allow Locale conditions to start or stop any of the settings. These are available in the market for 99 cents.

Once I have completed the additional planned addons (the next one will be for Call customization - call answer prompt with on screen button or answering the call via side key of choice, and the option to have a lockscreen up during calls), there will also be a myLock plus for 5 dollars in the market. This is to allow donations right on the market. The plus version includes all addon functionality and free updates for life to all additional addon utilities. They will always be released as part of plus as well as individually.

Wednesday, March 31, 2010

Widget Lockscreen beta 1.1 (r2)

It's not perfect but it's pretty damn great.

See ----(setup accessed from app drawer, menu key is open)

See some more -- the original myLock vision, nearly accomplished - get Executive Assistant widget for converged event preview.

Widget Setup screen now a working alpha

With this setup screen, you choose the widgets you want. You undo if you don't like the most recently added one. You bask in the glory of widgets in their natural habitat.

fire it up and then launch customLock if you want glory.

I am merging this in to custom lockscreen 1.0 to replace the music button area in the custom lockscreen with your widgets per how they have been added in the setup screen. when you are in the setup screen you'll see the clock also, this setup screen is how it was during all pre-alpha code building

Saturday, March 27, 2010

Widget personalization coming soon -- myLock custom lockscreen apps

Here's what soon means at the moment: I have the code that let's you pick the widget, and it appears centered. What I need to do is finish the logic which makes a widget appear on the next row once the space is all used up. Then I just need to finish the process that stores the choices and the one that grabs all the choices and puts the widgets in when the replacement lockscreen activates.

I am assuming most people will want the clock display but I bet some will want to fill the whole screen with widgets. The positioning is the most complicated thing. The stock homescreen method is not simple to copy, & the process for implementing widgets is nearly undocumented in the sdk also.

I only have a few hours a week to work on this due to work. I've had most of my existing progress on widgets for a while now just trying to find the time to finish all the code.

I made major progress during the last round of updating in the myLock auto unlock version so I am looking forward to bringing those stability improvements to the advanced lockscreen version and also pushing out the guarded replacement lockscreen (which strictly replaces the lockscreen and keeps the default keys locked down) while finishing up the widget feature.

Saturday, March 20, 2010

myLock (basic) updated on the market

The update I've been slowly testing and revising for the basic lockscreen skip mode is now up in the market. Mainly, this update incorporates all the improvements I've learned from programming the custom lockscreen revisions.

  • Fixed handling for outside events like the alarm clock, or handcent. It integrates quite well with screebl pro, I've found.
  • Phone call error cases resolved.. I did quite a bit of testing of the fixes for the specific troubles in the first market release. If we discover any more they will now be easy to incorporate in to the phone event mediator.
  • New feature - guarding unlock from opening the slider.
  • Removed the toggle button-- it is now a checkbox that is more intuitive when the status icon isn't enabled. This allowed me to re-implement the 1x1 widget toggle, which will soon be improved to also display the enabled/disabled status
  • Added how-to text in the settings window, I refer to it affectionately as myLock for dummies.
V1.1 - Adjusted phone call reaction handling to be smoother. Will optimize with useful enhancements in 2.1 soon. Added toggle for the slider guard mode. Can't get slider guarded mode to perform well without the wallpaper background theme, but I bet the other mode should work great even when live wallpaper is on since I was able to get the actual lockscreen disabling window to be a transparent theme instead of wallpaper.

V1.2 - Updated slide guard mode so it is integrated with the rest of the stable revision, dropping the wallpaper lockscreen replacement mode due to major performance issues in certain circumstances. I will continue to research adding this mode back as an option, since some people like having the wallpaper during unlock. Now when slider guard is on, you will just do the regular slide to unlock screen if you are intentionally waking up the phone via slider.

If you have run into some critical problem and feel the other version worked better, feel free to revert:

The v1 and 1.1 are also available on the downloads history if you choose the project downloads link on the left main sidebar.

The next update is targetting to add guard during calls as a choice due to popular request, and also the idle lock time preference that restores security if the phone is left idle for too long. In addition I've learned how to put in button customization advanced mode, this would allow you to press camera to unlock it from sleep if you wanted to. Also looking in to adding shake and orientation sensing options to help further guard against pocket unlocks and make it easier to unlock when in trusted orientations.

Thursday, March 4, 2010

project temporarily on hold

Never fear, the purpose of this communication is simply to express my regret that I don't have more time to dedicate to finishing up these next updates. The big new features I have next are ones that can't easily be rolled out incrementally like I have been but I still plan to put each test build for opt-in download at the project page, allowing you to roll back to the market version if you find an intolerable issue.

I have also passed on the source to another great dev who is planning to implement a lot of the same custom button unlock functionality we've been working on. I still plan to resume and finish the 3 different replacement lockscreen modes including widget support when I have more time. This should not be a long downtime but I did not want to leave anyone hanging wondering why no progress at the moment.

Monday, February 22, 2010

Yet more about next update

The options will be presented in terms of the level of guarding (less = greater convenience, more = greater encumberance + safety from pocket activity)

Most convenient/Least encumbered: Unguarded mode - Every key will do full unlock.

Mild to moderate guarding: advanced mode

Use this mode if you want to wake or unlock the device with your choice of buttons instead of just the power key.

  • Weak - all keys wakeup the lockscreen, home/back will unlock from the lockscreen. Choice of any side key for full unlock from sleep, optionally. (a3 build has power key doing this full unlock)
  • Stronger - enable slide to unlock instead of home/back unlocking
  • *Advanced power save- Two options to save power- toggle the prevention of screen wakeup with any of the side keys (a3 build behaves this way with the volume and the camera focus locked down), and the option to reduce the screen timeout while the lockscreen is visible instead of locking down any particular key.
Very strong guarding: guarded mode.

Use this mode if you want the custom lockscreen but want it secured to the power button. No side keys can wake/unlock, so wake occurs only with power key, slide keypad open, or any keypad button.
  • Weak - instant unlock on wake
  • Strong - custom lockscreen on wake. Choose home/back unlocking or the extra protection of slide to unlock
Pattern security - Secure mode lets you use the custom lockscreen on top of the pattern unlock screen. It will actually work even without the pattern, you would just slide the regular unlock slider to proceed.

Any weaker tier is allowed to have a full idle timeout (strictly into pattern lock) or timeout into secure mode where you still get lockscreen on top of pattern prompt. You can specify how many minutes of idle need to occur to trigger the timeout.

WIDGETS for the custom lockscreen-

A basic implementation of widget customization will be available below the clock display in the custom lockscreen. Add any widgets you want, in other words. To do this, open the myLock lockscreen setup from app drawer. Press menu, choose add widget, then pick the widget you want. It will be added at the first available position.

This release should be functional for adding widgets in order, with option to reset them all. Repositioning/manual positioning & selective deletion will be implemented in a later minor update.

Tuesday, February 16, 2010

Utility lockscreen first build progress

Just need to fix this to add the leading zero to the first 10 hours & minutes. This cap was taken while testing the secure mode first alpha code and it works perfectly as it is really very very uncomplicated compared to the lockscreen cancelling variant.

---Got it all fixed.. And yes visual enhancement isn't my forte, these are just plain Button elements that I've slapped the function labels on for now. And also added battery % to top left corner.

Saturday, February 13, 2010

Alpha 2c launched in market as myLock beta v1

I decided launching in market would be a good idea to reach more people & get more feedback, now that we've given the build a whole month to make sure it's solid enough and realize the most important improvements.

Please take a minute to leave positive reviews if you have been following us.

So far we've discovered a few new bugs.
The lockscreen appears to restore, possibly causing a conflict, when speaker or blutetooth is active and then you let the screen sleep during a call. when you then end the call lockscreen is restored, it appears to be an android bug

The cpu clock mods seem to cause a problem when set too low for sleep, also. This doesn't appear to impact the a3 revisions.

Thursday, February 11, 2010

More about the first release to contain our utility lockscreen

Today I made some decisions to revisit the simpler idea of the replacement lockscreen. While I still want to implement open widget usage for greater end user flexibility, this is the vision I want to achieve for the first beta release containing the custom lockscreen:
  • myLock utility lockscreen - featuring the utility widget with clock display, controls for vibrate/sound, brightness level, and also music player interface (album art will be able to display), and optional unlock slider interfaces, choose from the default horizontal slider or a vertical one you drag from the bottom of the screen. Available in secure mode or customized mode-
  • secure mode - display the utility lockscreen on top of the pattern lockscreen so you can control music & preview notifications in one wakeup even while locked down with your pattern. Exit this lockscreen by pressing the back key, then completing your pattern. No button customization is available in secure mode.
  • custom mode - customize Power, Camera, slider-open, keypad buttons, & volume keys to choose which will remain locked, wakeup the utility lockscreen, or skip it for instant unlock.
  • simple lockscreen disabled mode - no customization, just exits the lockscreen anytime it would normally be shown.
  • in the non-secure modes (custom & simple), pattern security will be disabled at the time myLock is started. You can choose an idle timeout if you would like pattern security to turn on again after a number of minutes idle, disabling myLock until the pattern is unlocked.
The stay awake and shake options should also be integrated as global preferences available to any of the modes.

Tuesday, February 9, 2010

Requests for having the slide to unlock as an option in the custom lockscreen

I was using a palm pre the other day (co-worker got one) and I liked how their unlock slider works just like a design idea I had earlier while I was still only brainstorming features- the slider is radial so you grab it from the very middle of the screen at the bottom, and slide it up past a boundary. You can slide whatever direction is natural for your thumb, as long as you take it far enough from the start point and cross the boundary, you unlock. My idea for a shortcut launcher that worked exactly the same was one of the earliest ideas I had with myLock.

The idea was to touch the android starting at the bottom middle of the lockscreen (and keep your finger there) to display the shortcuts, and slide it to any one of them to unlock while launching the app. I shelved the idea after it occurred to me that we could just let app shortcut icons be placed onto the custom lockscreen or just let the homescreen exist with shortcuts, with no lockscreen at all.

So when I do the slider I want to make the myLock version to take advantage of that idea, minus shortcut launching, but also use the source code from the existing unlock slider to provide the default one also as an option. The a3 feature release probably won't have either, making it so the back & home touch keys do unlock when you have awakened the custom lockscreen.

Thursday, February 4, 2010

New alpha 3 (and beyond) to-do list

The 0204 revision illustrates where I am at with the solid Android 2.0 optimized lockscreen replacement. I have fixed every implementation bug I came across that at first made me think that it might not be feasible to create a replacement lockscreen.

This revision demonstrates the power key and slider open lockscreen skip. While it is capable of any button wakeup or unlock, and also shake wake or unlock, I don't have those options implemented yet. The custom lockscreen only displays a message at the moment and would allow the notification bar to be used when awake. If you ever see a delay, it is due to the load time of the app you are unlocking into. Example, I see the lockscreen for 1 second when I am unlocking into twidroid.

Here's what remains to be done to consider the alpha 3 feature version ready for market release. I plan to get it into the market and go one update at a time into beta. These are just the loose ends that I need to get done, not things I need to test/learn how to do-
  • Finish implementing the shake option and stay awake setting into the custom lockscreen.
  • Implement button customization settings screen, where you can specify a functionality for each side key (locked, wake lockscreen, or skip lockscreen), and choose whether you want the slider to cause unlock or remain locked, and whether keypad buttons should be kept locked or do unlock when the slider is open
Here's some next priorities that will bridge the gap to beta:
  • Add polished looking clock for the lockscreen itself. I really wanted to place small brightness and vibrate mode toggles somewhere on the clock display, one on each side seems feasible. This element will be a widget, but will be default in the lockscreen until full widget customization is implemented.
  • Slide to unlock interface- optional, it has been requested. Without it, home key and/or back key can be used to unlock the awake lockscreen.
  • Get the volume keys configured to let music be controlled while screen is asleep. A possible addition would be to allow camera key to pause or advance track, also.
  • Create the pattern mode idle timeout allowing myLock to disable itself if left asleep for a user-specified amount of time
I am very pleased with the response and interaction from users out there; this has kept me excited about polishing this project. Keep the ideas coming.

If you get a specific conflict with any app or notice a behavior that always happens in response to something you do on your phone, please email me the details to mylockandroid at gmail, this will really help us improve for the feature alpha 3 release.

Wednesday, January 27, 2010

Progress update for next alpha & beta

I am now one bug fix away from launching these The bug is that certain apps are stopping the correct operation of the 2.0 optimized method I am now using. When screen first sleeps, my process attempts to get started and ready to give you a lag-free, unlocked wakeup. Basically primes itself by taking over the lockscreen. But if browser was open, this fails, & instead it only starts when you wake the screen up. It's like the request gets paused and the OS puts it off till we wake the screen up again. The result is you have to sleep it again and wake up again to get unlocked, because the logic is to do nothing at start, and wait for the next wakeup. When google talk or the home screen launcher (or even the home replacement I use- slidescreen) no conflict happens, it works like it should. But then when you're trying to wake it up to resume where you were in browsing, it just doesn't get started correctly. Totally misses the boat. The point of the 2.0 method is that it is very smooth and fast, and never fails due to CPU load. It never has a flicker. You never see the stock lockscreen since we override it at sleep. So this next release will be really solid and a better experience, if there is any fix for this bug.

You can download a totally functional test build that shows where we are at with this, it just will have a large issue trying to work on the first try when browsing or a few other apps. For the actual alpha 3 it will have no widget lockscreen option as that method won't be finished till we have launcher functions & key customization working within it (for the beta). Other than that it should include a preference whether sliding open should cause the unlock, to help protect against accidental pocket slider bumps, have had some requests for that.

Update: Still trying to resolve some more bugs. Going crazy over the failure to wakeup that seems to happen with a lot of attempts following the power key re-sleep. My current fix seems to resolve it when timeout sleeps happen. the bug doesn't want to happen when i'm plugged in to USB monitoring the program log. something in the timing is the only root cause I can think of.
I have a fix so it very reliably yields to any screen popup and runs very smoothly, plus allows exit via home key and use of notification bar. If i can get this bug killed then I will add the option if users want an Unlock slider and roll out alpha 3 with some cool new options and the custom lockscreen....

Tuesday, January 26, 2010

Android issue 6298: Unexpected KeyEvent results during sleep with activities using show when locked or dismiss keyguard flags

Submitted to the official issue log. This problem is responsible for the difficulties we are currently trying to work around to get things into beta-quality consistency.

- Steps to reproduce the problem:  I start up an activity upon receipt of screen off broadcast. The activity  adds the FLAG_SHOW_WHEN_LOCKED before inflating layout. I then call  TakeKeyEvents(true). This is supposed to allow the activity the chance to  handle key events even if it doesn't have focus. My activity does have  focus at time of creation, while the screen is off, but can lose it by  other things I do with the app. I ultimately want it to always handle key  events even if it has been pushed to the background.  - What Happened: I don't get key events. It seems I can only get events that are "wake keys"  as defined by the KeyguardViewMediator: {{{ private boolean isWakeKeyWhenKeyguardShowing(int keyCode) {         switch (keyCode) {             case KeyEvent.KEYCODE_VOLUME_UP:             case KeyEvent.KEYCODE_VOLUME_DOWN:             case KeyEvent.KEYCODE_MUTE:             case KeyEvent.KEYCODE_HEADSETHOOK:              case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:              case KeyEvent.KEYCODE_MEDIA_STOP:              case KeyEvent.KEYCODE_MEDIA_NEXT:              case KeyEvent.KEYCODE_MEDIA_PREVIOUS:              case KeyEvent.KEYCODE_MEDIA_REWIND:              case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:             case KeyEvent.KEYCODE_CAMERA:                 return false;         }         return true;     } }}}  - What you think the correct behavior should be. The window isn't able to take precedence over any key guard. Though the  display gets precedence, one does not expect that key events will still be  bound by the lockscreen. It effectively prevents your activity from  responding at all to the keys above. A related detail is the fact that the  opposite seems to happen when you use the FLAG_DISMISS_KEYGUARD. At that  point any key will cause wakeup if sleep happens while your activity is  still in progress. This behavior also seemed unexpected, as when sleep  occurs we are generally expecting the keyguard to be re-instated, but the  flag seems to be preventing that while the activity is alive.  I believe this problem affecting both flags should be considered a bug. A  fix would be appreciated, allowing these flags to be used in conjunction  with key event handling without unexpected lockscreen override of the  events. An example of what I expect to happen with either of these flags  would be if I return true on an event, that means I wanted to handle it, if  I return false then the event could next pass to the KeyguardViewMediator  to see if a wakeup should happen, etc. As it stands the event won't get  passed on in cases of sleeping while activity is alive, causing either the  unexpected unguarded wakeup, or failure to process keys that would normally  not be wakeup keys.   This happened within 2.0.1 SDK, this flag was added in API 5 and could be  extremely useful to app developers whilst there is no specific intent  support for replacing the lockscreen.

Thursday, January 21, 2010


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.

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:
  • 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.

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.

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)

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.