Saturday, February 12, 2011

Froyo compatible wide release published to market

the final myLock release is now known as myLock utilities.

I compiled my final build of the froyo optimized basic functionality and the beta tested phone tools functionality to work together in the new utilities app package. it has updated against the 1.4 build we had in the market before froyo launched.

this means idle lock, toggle plugin, and advanced/hide lockscreen modes are fully defunct in all market builds except the pre-froyo donate package, still up for 99 cents. froyo donate build remains and includes the beta advanced mode as well for 1.99.

https://market.android.com/details?id=i4nc4mp.myLock

I've done this so that the froyo compatible skip lockscreen is now openly available rather than closed in the donate package beta. after months of experience with it on my own device and feedback to ensure no critical bugs or failures occurred besides occasional unlock lag, I'm satisfied that this is the best quick unlock possible in froyo and beyond and it is worth opening it up.

that said, development is now fully on hold indefinitely. look for a possible myLock for iOS in cydia.

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.

http://mylockforandroid.googlecode.com/files/customLock_.apk

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

MILESTONE PARSE ERROR RESOLVED--updated

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.