)]}'
{
  "log": [
    {
      "commit": "9e608c12186d308fb1711e8824901fdf931a3a96",
      "tree": "16fd48827a6d9b2885db3cb2e11ab7af12537b9e",
      "parents": [
        "17990395bc62f8ce1bae4f1880899f231a8e613b",
        "42e620caf0407f1b5e02935ac4323742c65459fd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 25 17:35:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 25 17:35:49 2012 -0700"
      },
      "message": "Merge \"Fix issue #6381224: Initial emulator boot fails and shows a blank black screen.\" into jb-dev"
    },
    {
      "commit": "42e620caf0407f1b5e02935ac4323742c65459fd",
      "tree": "950736ba92c530521a1a1f417db42be759a6a0b3",
      "parents": [
        "e9b4b3e94d396d176338c62f8c9f4c183b340f9b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jun 24 13:20:51 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 25 14:27:41 2012 -0700"
      },
      "message": "Fix issue #6381224: Initial emulator boot fails and shows a blank black screen.\n\nMake sure that all cases where we remove an activity from the history\nstack, we call resumeTopActivityLocked() to cause the home activity\nto be launched if the stack is now empty.\n\nAlso fixed a problem where some timeouts would not be removed when destroying\nan activity, and a race condition in boot that would cause the\nPhoneWindowManager to initially start out with the home key not working.\n\nBug: 6381224\nChange-Id: If046bb01aed624b0d9ee3bbaaba68ed6b98fd1d0\n"
    },
    {
      "commit": "357d99c61d1c97199ca421408b3e26566e879f2a",
      "tree": "d04d523390c979498bf73352a3fc1888907399fc",
      "parents": [
        "3cd4624448dcaddecc75461ef645da72e7e5c098"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 20 18:37:16 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 22 12:50:50 2012 -0700"
      },
      "message": "DO NOT MERGE Fix issue #6697105: App launching sometimes has random pauses\n\nIn the course of the window manager refactoring into a separate\nlayout state, we introduced a bad interaction between the two\nsides of the world.  This resulting in multiple hops needed between\nthe two sides after an application has said it is finished drawing\nits window, until the window/app transition is actually started.\nEspecially since these hops require going through the anim side\nwhich is vsynced (so will delay its operation until the next frame),\nthis could introduce a notable delay until the window is first shown.\n\nFix this by re-arranging the code to make one straight path from\nwhen a window reports it is shown to us starting the app transition\nthat is waiting for it.  This change also includes various improvements\nto debugging code that was done while working on it.\n\nChange-Id: I7883674052da1a58df89cd1d9b8d754843cdd3db\n"
    },
    {
      "commit": "4f5d1511b9123c342ba96fbd335f77749fde00de",
      "tree": "ec7c5b72503da58ba6d9a59be1d6f05158216111",
      "parents": [
        "d5353b475001f19e3cbc9c1a4165c9e6038a812f"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jun 21 13:03:41 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jun 21 13:03:41 2012 -0700"
      },
      "message": "Make sure onScreenTurnedOn is called at power on.\n\nKeyguardViewMediator.onScreenTurnedOn is not called if the device is\nbooted into the power-on state. In this case mScreenOn remains false\nand the lockscreen will always appear after outgoing calls. This fix\nensures that onScreenTurnedOn is called when the device is powered\nup in the on state.\n\nFixes bug 6709173.\n\nChange-Id: I7557d8f002307b9125bc53b13bc3cb4c5c9b2758\n"
    },
    {
      "commit": "0fa4d30b03c4307ca5d461aa4450b672b6850ea1",
      "tree": "9d95ba57363cd473b66fa77e525083d35fef8c91",
      "parents": [
        "b6ce1f311ce154af713ebc4f543fc2aaed446939",
        "6e2281d44c9b71a03a50ed24d654927111cd2b72"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 20 12:06:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 20 12:06:38 2012 -0700"
      },
      "message": "Merge \"Fix issue #6686339: 2 taps required to launch notification...\" into jb-dev"
    },
    {
      "commit": "6e2281d44c9b71a03a50ed24d654927111cd2b72",
      "tree": "a5e6da073ffdf3e695e1dfa0a33c258f49bf068e",
      "parents": [
        "0abe556d28f5f5d395559cc6567b05939d1b2640"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 19 17:48:32 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 19 17:54:24 2012 -0700"
      },
      "message": "Fix issue #6686339: 2 taps required to launch notification...\n\n...or settings from lock screen\n\nWhen a window is drawn, the code to determine whether it should now\nbe shown was calling WindowState.isReadyForDisplay().  Part of the\ncondition of this function is that it is not ready if a policy is\nforcing the window to be hidden -- which is the case when the lock\nscreen is shown.  As a result, we wouldn\u0027t show the window at that\npoint, so wouldn\u0027t tell the activity manager that the token\u0027s windows\nare visibible, and wouldn\u0027t tell the lock screen to go away.\n\nThis adds a new variation WindowState.isReadyForDisplayIgnoringKeyguard(),\nwhich is the same as the original method but ignores the policy visibility\nfor app windows.  This allows windows to be go through the complete\npath of handling when the window is finally drawn and telling the\nactivity manager about it, even if behind the lock screen.  By making it\na separate function, we don\u0027t impact any other code that is calling the\nold function and may be relying on its behavior.\n\nAlso cleaned up a little of the dumpsys output.  Most important, the\nnew ANR section is now moved to the top, since we want\n\"adb shell dumpsys window\" to still give a nice summary of what we\nnormally care about -- the window stack and important global state.\n\nChange-Id: Ica3ea85ce46f3f5f5cd2cc30fbd9de13d3885a57\n"
    },
    {
      "commit": "45308b1b3b1582d048845df2ee5301241e52a5cf",
      "tree": "42befbc7aa70ffd9eea09fe3ba29681b84b437a4",
      "parents": [
        "c2585467107995f3130872eb7b721f3dbbcdf505"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jun 18 19:23:39 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jun 19 15:00:13 2012 -0700"
      },
      "message": "Fix 6667238: allow market apps to support ACTION_ASSIST\n\nThis change allows market apps and 3rd parties to supply an activity\nthat responds to ACTION_ASSIST (e.g. market apps).\n\nIt also adds a test app to respond to the ASSIST intent and force\nthe intent disambiguation dialog to appear.\n\nChange-Id: I5a78863c6a9546d18c66275187d178f6a1c9ee17\n"
    },
    {
      "commit": "2f4423043ffeaf232ec984be03743326f08cdc8a",
      "tree": "e1ea822923119e84b19c67ff9ec057cee02f2b4d",
      "parents": [
        "5bb835a95942b0b313b2fa4e3f05941e630f9be7",
        "3114ce3861f20f9a5c2c59dd2629197a1f4874a8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 19 10:54:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 19 10:54:32 2012 -0700"
      },
      "message": "Merge \"Remote volume handling\" into jb-dev"
    },
    {
      "commit": "3114ce3861f20f9a5c2c59dd2629197a1f4874a8",
      "tree": "c23f8f5c493fecd904022333cac099451fb20d6b",
      "parents": [
        "4cb3b76caa004867bac43f0001072e24bfa8c120"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jun 11 15:03:52 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jun 18 18:37:17 2012 -0700"
      },
      "message": "Remote volume handling\n\nExtend RemoteControlClient class to enable an applicaton to\n specify more information about how it\u0027s playing media, now covering\n usecases where media playback happens \"remotely\". This playback\n information can be used to set the volume and maximum volume\n used remotely.\nDeclare a new intent and associated extras in Intent,\n ACTION_VOLUME_UPDATE, so an application can be notified that\n the volume it handles should be updated. It can then use\n the new RemoteControlClient.setPlaybackInformation() method\n to notify AudioService what the volume is.\nExtend AudioService to maintain playback information associated\n with the RemoteControlClient information in the stack of\n media button event receivers (mRCStack). The information\n about the active remote is cached so the stack doesn\u0027t have\n to be iterated over in order to retrieve remote playback info.\n Events to \"adjust\" the remote volume based on hardware key\n presses cause the client application to be notified of\n volume updates, and the volume panel to display the volume\n set by the app.\n Revise which stream type is controlled when none is specified\n according to latest guidelines for remote playback.\nUpdate VolumePanel class to support a new pseudo stream type,\n AudioService.STREAM_REMOTE_MUSIC, that corresponds to the\n remote playback volume, and uses the new \"media route\" icon.\n Enable it to receive asynchronously new volume values for\n the remote that will be displayed if the UI is still up,\n and ignored otherwise.\n Now supports hiding/showing sliders dynamically so remote\n volume only appears when AudioService has a remote control\n client handling remote volume.\nDefine new java symbols for the two media route icons.\nModify lockscreen behavior: don\u0027t automatically control music\n volume when music is active, consider also remote playback.\n\nStill to do:\n- playback information set by RemoteControlClient should post\n  a message for AudioService to update playback information\n  instead of updating it synchronously\n\nChange-Id: I557aa687239f9acfe33a609f05876c67fa7eb967\n"
    },
    {
      "commit": "12da2c5eeeadd6c23da5d3003d0da3b6b73d5052",
      "tree": "c154532a2dcb1490f9cc93ab61454d6bda0b1119",
      "parents": [
        "c4947277e821153fc01256a425e4cbbe34a06eda",
        "20039ad17b94873ee40fdd61c3d1d1aa590010df"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jun 18 13:29:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 18 13:29:49 2012 -0700"
      },
      "message": "Merge \"Fix 6665117: ACTION_ASSIST visual improvements\" into jb-dev"
    },
    {
      "commit": "d7a04de16798acc04ec0a89a0c7d9f1cf60d1521",
      "tree": "ad6fb448cd393aa827737680f46a891433215bf3",
      "parents": [
        "22aa51202652efbd55094217a046b8e5ecb7afe2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 17 14:17:52 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 17 15:55:46 2012 -0700"
      },
      "message": "Capture window manager\u0027s last ANR state in bug report.\n\nCurrently just grabbing the window state but we could grab\nother things as part of the last ANR report.\n\nBug: 6680398\nChange-Id: I23aa70907b1bdcb21c8acc556fde196ca790ef6a\n"
    },
    {
      "commit": "20039ad17b94873ee40fdd61c3d1d1aa590010df",
      "tree": "8f32124cf4b2df6139bcc5505e57b4ca230a8ece",
      "parents": [
        "d2ee4960c492259665adc2c6630e1a59642677b9"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jun 15 17:26:28 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jun 15 18:11:00 2012 -0700"
      },
      "message": "Fix 6665117: ACTION_ASSIST visual improvements\n\n- add generic icon for search providers that don\u0027t supply one\n- change alpha weighting factor for glow\n- don\u0027t show ring background\n\nChange-Id: I86c86dc2d623c25ec7b91e206fac8ad9cd60faac\n"
    },
    {
      "commit": "b06be57f0acf8bb7b8c1767604058c8f061a7b8b",
      "tree": "d7d00b67831a325d7e47f041064885a54016e382",
      "parents": [
        "531d5866d8e2529e2ae1c6ef12202119753bec03",
        "2de5ee84636739dc82a4c4dda76666bf38cf281c"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jun 15 15:19:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 15 15:19:16 2012 -0700"
      },
      "message": "Merge \"Fix 6507787: fix MMI PUK unlock procedure\" into jb-dev"
    },
    {
      "commit": "2de5ee84636739dc82a4c4dda76666bf38cf281c",
      "tree": "cacaf07f9023213147ecfba7bb0b2512ce7261d1",
      "parents": [
        "d2ee4960c492259665adc2c6630e1a59642677b9"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Jun 14 22:22:50 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Jun 14 22:22:50 2012 -0700"
      },
      "message": "Fix 6507787: fix MMI PUK unlock procedure\n\nThis fixes a bug where the user uses the MMI sequence (**05*PUK*PIN1*PIN1#)\nfrom the EmergencyDialer to unlock their phone instead of the provided interface.\n\nThe code now recognizes when UnlockMode becomes invalid because it was previously\nlocked because of SIM state. It then dismisses the PUK unlock screen and advances\nto the home screen.\n\nChange-Id: I8902350e6f640cd2fa0af3460c3ea1a39d926c8a\n"
    },
    {
      "commit": "f03e4c55fc5f8c50c58da03b7e8cfe29b4b0c644",
      "tree": "b01a3e2653daa908ebe36605e063a371b16d7646",
      "parents": [
        "97c11fe3255dca23dad241bf7025a88a7336f4a1"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jun 14 14:11:27 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jun 14 14:11:27 2012 -0700"
      },
      "message": "Expose apps when keyguard animating.\n\nContinuing in the trend of not hiding apps while the keyguard is\nanimating.\n\nFixes bug 6653600.\n\nChange-Id: I151315084a13dcec061d2d6edccd31e1133610f4\n"
    },
    {
      "commit": "9e197141f8249e36d3f19aeda332ae40dac7da05",
      "tree": "1eea0592d167de4ebc8da985482b48de8d5020a9",
      "parents": [
        "f9b7f9f5080100043df3c8868bca4df84becf5a1",
        "de7a8ead2467a4a152a5a9b2416c8048f1b48bbb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 14 11:28:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 11:28:52 2012 -0700"
      },
      "message": "Merge \"Add new ASSIST key and map it to the global assist intent.\" into jb-dev"
    },
    {
      "commit": "de7a8ead2467a4a152a5a9b2416c8048f1b48bbb",
      "tree": "5ab60322af4c99c1c24eb96f44883a77a867d843",
      "parents": [
        "82134f76936be049cc4b23a894ba7decc1d59952"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 13 18:28:57 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 14 04:16:26 2012 -0700"
      },
      "message": "Add new ASSIST key and map it to the global assist intent.\n\nMoved some duplicate code from SearchPanelView and LockScreen\nover to SearchManager to avoid creating yet another copy of it\nin PhoneWindowManager.\n\nBug: 6594275\nChange-Id: Ib4ebcd6817639d17548952ab2ce7cb876c05777c\n"
    },
    {
      "commit": "b44700f27dc0f0673c54e422c62a49d0891b67d7",
      "tree": "5fa30b8553aee93e4c99249cf29fd00b382b9a09",
      "parents": [
        "0a4cbc3267c12fb4f5831ea70286b0664f90891a",
        "47cd14d9bc5a448f8eb5c5acd111793e2332af70"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 14 02:45:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 02:45:35 2012 -0700"
      },
      "message": "Merge \"When SIM absent, keyguard should be considered non-secure.\" into jb-dev"
    },
    {
      "commit": "47cd14d9bc5a448f8eb5c5acd111793e2332af70",
      "tree": "e22b64e5d298131b9179cbf8514b5f42089be131",
      "parents": [
        "82134f76936be049cc4b23a894ba7decc1d59952"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 13 20:00:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jun 13 20:00:49 2012 -0700"
      },
      "message": "When SIM absent, keyguard should be considered non-secure.\n\nPreviously, it was observed that while a SIM is being initialized\nby the hardware the SIM may briefly be reported as being in an\nABSENT state before eventually transitioning into a READY,\nPIN_REQUIRED, PUK_REQUIRED, PERM_DISABLE state.\n\nWhile booting up, the phone might observe that the SIM is ABSENT and\ntherefore bypass the keyguard going straight to the home screen.\nLater when the SIM was fully initialized, the phone would revert back\nto the lock screen in order to ask for the PIN.  The user might\nturn on the phone, slide out the keyboard (bypassing the keyguard),\nthen a few moments later the keyguard would pop up prompting for a PIN.\n\nThe user experience could be somewhat jarring, so the keyguard was\nchanged to handle the transient case differently.  While the SIM\nwas ABSENT, the keyguard would not be automatically bypassed\nby opening the keyboard slider.  Thus the user would be forced to\nmanually swipe away the keyguard before interacting with the\ndevice.  This would help to cover the time it would take before\nthe SIM was fully initialized and the keyguard could determine\nwhether the user would need to be prompted for a SIM PIN or PUK.\n\nTo prevent the keyguard from being bypassed automatically, we\nhacked up the keyguard so that it would be considered to be in a\nsecure state while the SIM was ABSENT.  It\u0027s worth noting that\nconsidering the keyguard to be secure did not confer any\nadditional security properties to the system whatsoever.\nIf the user did not have a pattern lock, PIN or password set then\nall it would take to access the phone is to swipe away the keyguard.\n\nThis old hack was all about devices with slide-out keyboards,\nbut it had some side-effects.  Namely, it assumed that the SIM\nABSENT state was transient.  But what about phones that are\nbeing used without a SIM at all?\n\nConsidering the keyguard to be secure when the SIM is ABSENT\nbreaks stuff.  In fact, it turns out that making the keyguard\nsecure isn\u0027t really what we want at all.  What we want is a way\nto prevent the keyguard from being automatically bypassed on\nboot when the user opens up a sliding keyboard.  But we don\u0027t\nhave those anymore... and in the worst case it was just a little\njanky... and what\u0027s more, nowadays the keyguard provides useful\nfeatures so maybe we shouldn\u0027t bypass it anyhow... oh and actually,\nI deleted the code that used to bypass the keyguard when the\nkeyboard slider was opened... so this does nothing useful at all.\n\nRight...\n\nThis change removes the old hack thereby ensuring that non-secure\nkeyguard features like launching the Camera or Assistant or\napplication features like hands-free voice search will work\ncorrectly on phones without a SIM.\n\nBug: 6022658\nChange-Id: I019d1d8c65c55cbf4d10d4928e1d2b2b242162a6\n"
    },
    {
      "commit": "aa24906de299b392a3aa8576d3f0df77089f53c2",
      "tree": "83f2f1303fbcd9b123811a306293a382aea5a367",
      "parents": [
        "f8d05b4ea61bb0db32c1a7f93f27a13f67c9ef0c"
      ],
      "author": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Wed Jun 13 17:30:13 2012 -0400"
      },
      "committer": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Wed Jun 13 17:30:13 2012 -0400"
      },
      "message": "BUG 5457035: lowering max FUL failed attempts to 3\n\nAfter an unrecognized face occurs 3 times in a row, we disable FUL until the user unlocks via the\nbackup lock.  Lowering this values makes spoofing with liveliness enabled more difficult.  Since\nwe currently don\u0027t differentiate between the max number attempts with and without liveliness\nenabled, we had to lower it for all uses of FUL.\n\nChange-Id: I7a429f64cde2767ddd2ceb0885343acd0b802aac\n"
    },
    {
      "commit": "955a016922ea49f154d190b054a202559b41a4d3",
      "tree": "2031ecb839a21630269b8b93cd3b8ca9048aa469",
      "parents": [
        "1c9581023ced89a209fca9c4e40305f8e0859732"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Jun 11 21:06:13 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jun 12 19:16:08 2012 -0700"
      },
      "message": "Fix 6613962: Update keyguard to use new GlowPadView UX design.\n\nChange-Id: I4f1ef3107e5550f7df9dcb412943a84b66432b7d\n"
    },
    {
      "commit": "7019325e183ba1abf1869ccffc4b1ecd8c771a44",
      "tree": "202669afc3881438356c159db067077b1543ccf0",
      "parents": [
        "ce4eeadf814c3dfbda9e58359159f1b7058d9b83"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon Jun 04 16:16:46 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Fri Jun 08 11:50:53 2012 -0400"
      },
      "message": "Bug 6605167: Turning off FUL during error counts as attempt\n\nIf FUL was turned off while the error message was displayed it would\nnot count as a failed attempt.  This commit changes the\nreportFailedAttempt callback to just report the failure rather than\nreport the failure and close.  This allows the FUL service to send the\nreportFailedAttempt message earlier and then later close using the\nexisting cancel function, which closes without reporting a failed\nattempt.\n\nChange-Id: Ib3b76f477a98b149fcccc32ac39ecaeccd88a7e2\n"
    },
    {
      "commit": "6a5f9f6ddbfcb97a25436ad34be39fc7b3b45168",
      "tree": "7d53546b94408f7a16b7877f98d00405c6085fb9",
      "parents": [
        "906272b977f5bfd977ca69d0826bb95ba3fcda63",
        "c55b393efd462490cd5e27fc373bceafdd25662e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 07 15:28:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 15:28:51 2012 -0700"
      },
      "message": "Merge \"Configuration for lock and UI sound levels\" into jb-dev"
    },
    {
      "commit": "207673cdbb536b9bdd9ff7f9ce953c5485d11f5a",
      "tree": "bec4e2abf5c1e3a713bf80cf1d31c545be531a2c",
      "parents": [
        "433927c52f2758e3e69f69d7e03d571ee4f18a26"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jun 05 17:47:11 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jun 05 17:59:46 2012 -0700"
      },
      "message": "Implement new rotation policy.\n\nRotation lock does not override NOSENSOR mode anymore.\n\nCentralize the rotation policy settings into a new class shared by\nthe System UI and Settings applications.\n\nAdd a new setting to specify whether rotation-lock is being hidden\nbecause the \"auto-rotate screen\" option has been toggled in the\nAccessibility settings panel.\n\nBug: 6523269\nChange-Id: I15173280d25bc5d101e89a9c65913aefc53fc33a\n"
    },
    {
      "commit": "c55b393efd462490cd5e27fc373bceafdd25662e",
      "tree": "405c61d2a666fda4306a6d2f6e9d065e48fd1439",
      "parents": [
        "30384653d2fc4d497ab3124c998c7d516f1bd25f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 05 11:57:59 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 05 16:58:20 2012 -0700"
      },
      "message": "Configuration for lock and UI sound levels\n\nDefine two integers in the platform configuration to\n define the sound level for lock/unlock sounds, and\n UI sound effects.\nUse the corresponding value in KeyguardViewMediator for the lock sounds.\nUse the corresponding value in AudioService when playing sound effects.\n\nBug 6448481\n\nChange-Id: Ie238f5eb1645e395412864d93447ac4049f7e54b\n"
    },
    {
      "commit": "3294b6b09b2f52cb44005720051c32c9c851fc9f",
      "tree": "109bdb85becd0cc2c0b7b24a1e7a4abbfe8d1997",
      "parents": [
        "ef3a8021e412b33db817789a9c1869022b5c901b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 31 17:49:13 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jun 01 14:08:28 2012 -0700"
      },
      "message": "Fix 6592932: add means to replace assist icon from given package\n\nThis provides the means to replace the assist icon shown in keyguard and the\nnavigation gesture for assist.  It\u0027s done by adding metadata called\n\"com.android.systemui.action_assist_icon\" to the activity that handles\nandroid.intent.action.ASSIST.  It should point to a StateListDrawable\nin that package with the required states.  For example:\n\n\u003cmeta-data android:name\u003d\"com.android.systemui.action_assist_icon\"\n    android:resource\u003d\"@drawable/ic_android_systemui_action_assist\" /\u003e\n\nAnd then something like this in drawable/ic_android_systemui_action_assist.xml :\n\n\u003cselector xmlns:android\u003d\"http://schemas.android.com/apk/res/android\"\u003e\n    \u003citem android:state_enabled\u003d\"true\"\n        android:state_active\u003d\"false\"\n        android:state_focused\u003d\"false\"\n        android:drawable\u003d\"@drawable/ic_action_assist_normal\" /\u003e\n    \u003citem android:state_enabled\u003d\"true\"\n        android:state_active\u003d\"true\"\n        android:state_focused\u003d\"false\"\n        android:drawable\u003d\"@drawable/ic_action_assist_activated\" /\u003e\n    \u003citem android:state_enabled\u003d\"true\"\n        android:state_active\u003d\"false\"\n        android:state_focused\u003d\"true\"\n        android:drawable\u003d\"@drawable/ic_action_assist_focused\" /\u003e\n\u003c/selector\u003e\n\nChange-Id: Ibc29360e179fed68253ff06a07b1bb2b982d0dab\n"
    },
    {
      "commit": "fa716c7b9bfe0b15725dff63a63b188fe7bc6aca",
      "tree": "0e46f98249edee4294c48a1d88869401feccacab",
      "parents": [
        "a91047ff23e054869f921acb2b90eafc7a65ff26",
        "4fa995a932d876b98c393c909c4eb2e303783e59"
      ],
      "author": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Thu May 31 08:44:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 31 08:44:15 2012 -0700"
      },
      "message": "Merge \"BUG 5457035 : Anti-spoofing : DO NOT MERGE\" into jb-dev"
    },
    {
      "commit": "b30cd0a801aa1cdb0b1f6ae7e531b10eb466128a",
      "tree": "8fe153b00b4e4b6589f8ef6731d6d21d1a17cd4e",
      "parents": [
        "7b996d19afcc7030400b515a665d28523a44bb18"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu May 31 10:46:18 2012 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu May 31 10:48:53 2012 -0400"
      },
      "message": "NavBar: Don\u0027t resize in portrait docks when HDMI connected.\n\nThe computation moving the navbar up is too drastic when a device locked\nin a portrait dock is connected to a landscape external display (e.g. a TV).\nInstead, only do this if the aspect ratios of the device and external display\nare the same.\n\nBug: 6513219\nChange-Id: I7cfb1096b7d1a774032d22c4b0d7eb3177766c58\n"
    },
    {
      "commit": "4fa995a932d876b98c393c909c4eb2e303783e59",
      "tree": "ba18b77738ab3470dbf6bd655b997486ea5163ec",
      "parents": [
        "6713024727039004fa1f59a5ad4cad1f3c5f57f4"
      ],
      "author": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Wed May 30 20:01:38 2012 -0400"
      },
      "committer": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Wed May 30 20:01:38 2012 -0400"
      },
      "message": "BUG 5457035 : Anti-spoofing : DO NOT MERGE\n\nSquashed commit of the following:\n\ncommit c0969669a6bd55df805665c17e088456c1672da3\nAuthor: Danielle Millett \u003cdmillett@google.com\u003e\nDate:   Wed May 30 15:41:22 2012 -0400\n\n    Turning liveliness back on\n\n    As part of the change of putting in the new head turn option, it\u0027s\n    now passing in the correct value to Face Unlock instead of forcing it\n    to always be false.\n\n    Change-Id: I745da5431cbc2d447f3d07ec7215c5b1850f6d57\n\nChange-Id: I36a819b43e89a463bb3bb3ede0db36477fd45066\n"
    },
    {
      "commit": "a66c75a87e3485773430974b9bc314d010ba3542",
      "tree": "a8beba63e5d6022389ed035faa02c4ff11c54454",
      "parents": [
        "1ee0a7d44a577dd19b022ff9247495f660d1ade8",
        "4004033f87ab1978ceb832e8e8cc003987ba9097"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Tue May 29 12:26:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 12:26:35 2012 -0700"
      },
      "message": "Merge \"Fix bug where recents was getting preloaded unnecessarily\" into jb-dev"
    },
    {
      "commit": "3dac02265e42bf176e26b83da430ce15d6fd06df",
      "tree": "469308504dc04e44023a0cb66f77a910ccb49a41",
      "parents": [
        "48c22c84c089213dda6495fbdeb384e400c7c5c5",
        "7ee994d728acf2b3b3297a67001f2d21c9094109"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue May 29 11:22:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 11:22:32 2012 -0700"
      },
      "message": "Merge \"Show power menu on tablets.\" into jb-dev"
    },
    {
      "commit": "4004033f87ab1978ceb832e8e8cc003987ba9097",
      "tree": "57fb875c531a41c1d75a928a3ab81ab41144eddf",
      "parents": [
        "c3a5cf9aab3d409445accb2a93c09e6b4140d196"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Tue May 29 08:25:32 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Tue May 29 08:25:32 2012 -0700"
      },
      "message": "Fix bug where recents was getting preloaded unnecessarily\n\nChange-Id: I7d2254da009113f81fae0a785583b1c7fd6ad020\n"
    },
    {
      "commit": "45973d6d19eb9329d77e62004e80f63f111a27e5",
      "tree": "eb747f6df257b5c022cc681cbb4ebf0639534778",
      "parents": [
        "c3a5cf9aab3d409445accb2a93c09e6b4140d196",
        "cafd387d7a2d91a2c900b7744b0486818cd1aac2"
      ],
      "author": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Tue May 29 06:24:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 29 06:24:05 2012 -0700"
      },
      "message": "Merge \"Moved setting the flag to suppress face unlock during a phone call\" into jb-dev"
    },
    {
      "commit": "7ee994d728acf2b3b3297a67001f2d21c9094109",
      "tree": "6c21c250385e5cd7779d9d8afa5e6bf8423e4156",
      "parents": [
        "da87c7c1eea9a054fd6842995df115113228191d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu May 24 13:53:26 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri May 25 15:18:21 2012 -0700"
      },
      "message": "Show power menu on tablets.\n\nBug: 6524432\n\nShow power menu on all devices by default. Specific devices will be disabled in overlays.\n\nHandle airplane mode changes differently when the telephony states are not reliable.\nUse simple toggle for silent mode when there\u0027s no vibrator.\n\nChange-Id: Ic5ef521eee19cd300d909250203ff204f3a1ae1e\n"
    },
    {
      "commit": "3d7b7d59c82fdeac039382ed1724af9c9cb70107",
      "tree": "956cf0ffdf04dc26b5c60734c2c268c93ab8fe35",
      "parents": [
        "6385ff511dd998f1fbb189621270e2c19577f66e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 24 11:28:26 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 24 15:38:54 2012 -0700"
      },
      "message": "Redraw all windows earlier in power on sequence.\n\nSend a message to all windows to redraw before notifying\nPhoneWindowManager of screen on. This minimizes the delay in\nscreen update that causes the keyguard clock to display the old time\nbefore displaying the current time.\n\nFixes bug 6381021.\n\nChange-Id: Ida7071e7dac2284540f101c5d004511b52133b91\n"
    },
    {
      "commit": "8e4df6c1e261a5b41193b00b1c0ce0badaa84f1c",
      "tree": "63d2c6e011b3b1b8f98964ecebc100efb071f7e8",
      "parents": [
        "85aea3664992cd1e16ef4497c3450b26bdef06b0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 16:57:23 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 23 16:57:23 2012 -0700"
      },
      "message": "Fix jank when launching apps that show wallpaper.\n\nDo not create a StartingWindow for apps that show wallpaper.\nFix handling of obscure case where found wallpaper is hidden.\n\nFixes bug 6484034.\n\nChange-Id: I07181c4aea56fa9e530df0c95d886fe8ad61ec9d\n"
    },
    {
      "commit": "a6f0b0ad6966d64d833978cc150cc180b40f8bb3",
      "tree": "975514814b0ffedd53ee545597ff137ec2813942",
      "parents": [
        "4ce106f5cff5670bf1aae4190612dc8e972f5c28",
        "998bb765290066822ff8a3b378dadd71deb0ce73"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon May 21 16:37:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 21 16:37:32 2012 -0700"
      },
      "message": "Merge \"Fix6398209: reveal search when home button is long-pressed\" into jb-dev"
    },
    {
      "commit": "998bb765290066822ff8a3b378dadd71deb0ce73",
      "tree": "519f6516e74edd30ca6e939d62dcedf307b4d24b",
      "parents": [
        "af0a15c820c0cdffcaf198e599cb55098510ad0a"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon May 21 13:37:27 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon May 21 13:55:44 2012 -0700"
      },
      "message": "Fix6398209: reveal search when home button is long-pressed\n\nThis change add a feature to reveal the swipe to search interface\nwhen the home key is pressed for longer than 50ms.  It progressively\nreveals the interface.  It still requires a bit of tuning, but all\nthe basic parameters are in this CL.\n\nChange-Id: I1d3a5bb7b912265eb41da68bc9313eee1af2e415\n"
    },
    {
      "commit": "cafd387d7a2d91a2c900b7744b0486818cd1aac2",
      "tree": "f89094e034d3fec69efa6d5f82add7e4df1bf7b8",
      "parents": [
        "70334ac231c7b4bbb57d430377acec4d4c3b2561"
      ],
      "author": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Thu May 17 17:40:26 2012 -0400"
      },
      "committer": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Sun May 20 20:30:31 2012 -0400"
      },
      "message": "Moved setting the flag to suppress face unlock during a phone call\n\nMoved the check to suppress face unlock if a call is in progress from\nonScreenTurnedOff() to initializeBiometricUnlockView().  onScreenTurnedOff()\nis only called if the screen was turned off while on lockscreen and we\nactually want to be doing this every time the screen is turned off.  Put a\ncheck around it to only do it when the screen is off, so that for orientation\nchanges, or on first boot it doesn\u0027t override the current flag value.\n\nThis fixes the following 2 bugs:\n\nBug 6460309: When making a phone call, after the user hangs up and it goes\nto lockscreen we don\u0027t want face unlock to show.  In the case where a\nuser makes an outgoing call and the phone goes to sleep by itself during\nthe phone call, when the call is ended face unlock was popping up because\nit never went through onScreenTurnedOff().\n\nThere is a flag to make sure face unlock doesn\u0027t come up\nimmediately after booting the phone, which is done by not showing\nface unlock the first time lockscreen is constructed.  But there are\na few cases where lockscreen doesn\u0027t come up immediately after boot: 1. When\nthe device is factory reset, it goes through the wizard instead of\nlockscreen.  2. In userdebug if the lock type is set to none.\nIn both of these cases, if face unlock is set up, it doesn\u0027t show up on\nthe first time.  Setting the phone flag in initializeBiometricUnlockView\noverrides the initial setting, which is what we want because if the screen\nhas turned off, it isn\u0027t the initial lockscreen after boot.\n\nChange-Id: Iacafc515f2b594e12c853308c40cd48f3fb83e63\n"
    },
    {
      "commit": "cf39bdf3dff5e29447f6ce734b76dc3490385e58",
      "tree": "90900366888a32fbfa769f541b0bd8dbbcec748a",
      "parents": [
        "51f2430217a377bc2913862d98a97d0087914540"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 18 14:41:19 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun May 20 14:56:22 2012 -0700"
      },
      "message": "Add support for switching between multiple keyboard layouts.\n\nAlso show a notification when an external keyboard is connected\nand does not have a keyboard layout selected yet.\n\nBug: 6405203\nChange-Id: Id0ac6d83b3b381f8a236b2244a04c9acb203db3c\n"
    },
    {
      "commit": "fb5f1bc085d1c353b80690636ce44679501225d8",
      "tree": "7f7e7d39106158ffd9f253e203643d0a86ed2549",
      "parents": [
        "f82e7693ca4396435ef91c7be5348731d9e863c0"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu May 17 19:30:35 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu May 17 19:30:35 2012 -0700"
      },
      "message": "Log a warning when action bar view states cannot be restored.\n\nSome apps can get into a case where the saved view hierarchy states\nfor action bar views are missing. Log a warning instead of crashing.\n\nBug 6510800\n\nChange-Id: I95ede64ec584892e6e76ca9ab9d53e9d3689984f\n"
    },
    {
      "commit": "d51a68b3d2d347be989b53af1777454f97ad9b46",
      "tree": "9ed23d0c9d20766a187d3c0ad50e0e03627f6f00",
      "parents": [
        "9cb376e792567b5278e0eb418a3aeb848339a283",
        "bf08af3323117e15a65b74e66b7499d31537f9e1"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu May 17 13:11:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 13:11:50 2012 -0700"
      },
      "message": "Merge \"Eliminate deferred surface destruction.\" into jb-dev"
    },
    {
      "commit": "2b9eba553e136c5bb955df281bdafed2b9a4ce92",
      "tree": "b319efe2b1d1fe3198d70a35abdcf58bbcbf9e23",
      "parents": [
        "6a16098437665c3aab3e9980359e140b8a47858b",
        "c266070aec3d99c9a4d422325fbceae44c37a4d3"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Thu May 17 06:02:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 06:02:09 2012 -0700"
      },
      "message": "Merge \"Not calling startUi() if no longer bound\" into jb-dev"
    },
    {
      "commit": "40013655dea9427d0b3bc0250658c9923443963c",
      "tree": "8cf3745065eefccbaf07e988dbd2315344d83aeb",
      "parents": [
        "1b283b4e7f66d5cc3e1e2cc63cae9d3bc8a5ad5c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 16 21:22:36 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 16 21:39:05 2012 -0700"
      },
      "message": "Support long-press on media keys with screen off.\n\nBug: 3204066\nChange-Id: I3ea4b6ceb853483b9e103de62b2ef0cf48b3dff1\n"
    },
    {
      "commit": "bf08af3323117e15a65b74e66b7499d31537f9e1",
      "tree": "f985c43f504e7c101eeb1de2cdaee21150d104bf",
      "parents": [
        "ae14715284837aebe179f790e0456d2bdb367583"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 16 19:43:42 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed May 16 20:07:22 2012 -0700"
      },
      "message": "Eliminate deferred surface destruction.\n\nRemoving the code that delays a surface destruction when\nWindowManager.FLAG_KEEP_SURFACE_WHILE_ANIMATING is set. The lock\nscreen that continued to animate after destroySurfaceLocked is no\nlonger used and this code was causing problems.\n\nAlso mDrawState was being set to NO_SURFACE in destroySurfaceLocked\neven if the surface ended up not being destroyed. Later when it was\nreused the false value of mDrawState was messing things up.\n\nThe screen lock bug referenced below no longer levaes the user stuck\nwith a black lockscreen. However it occasionally powers back up in the\nlauncher screen rather than the lock screen.\n\nFixes bug 6485955.\n\nChange-Id: I684104c7e7c39c161a5118aa890889fbae92e635\n"
    },
    {
      "commit": "20c0cdbbf79cef18e59514e0f53dfbcac0bef600",
      "tree": "340905cf0b0912141a606ccb6a875ee0dfbe09a8",
      "parents": [
        "a4c1b0a7ca48c0b9fcc0a4af393faf64d0a16b91",
        "5b5cc4d5361c1817938d2db58ad40aab528b3ac3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 16 19:41:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 19:41:09 2012 -0700"
      },
      "message": "Merge \"Have the stable layout take into account the window\u0027s fullscreen flag.\" into jb-dev"
    },
    {
      "commit": "c266070aec3d99c9a4d422325fbceae44c37a4d3",
      "tree": "90403a0c0308a81acf08ee0c4b099918647e4501",
      "parents": [
        "ffc731d50ab530698186d94125a05d2a923504d7"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 16 22:11:30 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 16 22:11:30 2012 -0400"
      },
      "message": "Not calling startUi() if no longer bound\n\nAfter the bind to the FUL service is complete, an\nonServiceConnected() callback is received.  This callback is\nasynchronous - bindService() does not block while we are waiting for\nthe service to finish binding.  Therefore, when rapidly turning the\nscreen on and off, it is possible to call bindService() and then call\nunbindService() before the onServiceConnected() callback is received.\nWhen onServiceConnected() is received, startUi() is called.  If the\nservice is no longer bound, a runtime restart occurs when calling\nstartUi().\n\nNote that onServiceConnected() actually has its work done via a\nhandler.  The delay of calling the handler increases the possibility\nof unbindService() being called before trying to call startUi().  But\nsince this problem still happens without using the handler,\neliminating using the handler would not solve the problem and would\njust create the problems that come with performing operations on\ndifferent threads since onServiceConnected() is not called on the main\nthread.\n\nAlso note that a new instance of FaceUnlock is created in\nLockPatternKeyguardView with each iteration.  So, if we bind/stop/bind\nbefore getting onServiceConnected(), the second bind happens in a new\ninstance of FaceUnlock and therefore does not lead to a problem when\nonServiceConnected() returns as a result of the first bind.\n\nThis fixes some occurrences of bug 6409767.  However, this fixes the\nproblem when turned the device on and off rapidly.  It seems there\nare some reports of bug 6409767 where this is not the case, so I\ncan\u0027t be sure this has any affect on those cases.\n\nThis change also cleans up some debugging and modifies other\ndebugging to try to get just the information that is useful for\ntracking down the bug.\n\nChange-Id: Ifa59107b9974acaa8a18b74b5d47e4cf3a794b8e\n"
    },
    {
      "commit": "5b5cc4d5361c1817938d2db58ad40aab528b3ac3",
      "tree": "437650dd74484560d8d442b1de45de71bb154979",
      "parents": [
        "a0e0d5806c9aa12e291d9ceb60a35eb9b7fde5b0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 16 13:15:00 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 16 17:24:11 2012 -0700"
      },
      "message": "Have the stable layout take into account the window\u0027s fullscreen flag.\n\nWhen using stable layouts, you are typically expected to hide and\nshow the status bar through the system UI fullscreen flag.  This hides\nboth the status bar and the action bar.  The stable layout assumed\nthat when not hiding the status bar through the system UI flags, that\nthe status bar would be visible.\n\nThis change makes things a little smarter, also looking at the\nwindow\u0027s fullscreen flag (which only hides the status bar).  If this\nflag is set on the window, then the stable layout now assumes that\nthe status bar will never be shown.  This allows us to position the\naction bar correctly in the situation where the application has set\nthe window to fullscreen and requested a stable layout, instead of\nalways leaving room for the status bar above it.\n\nChange-Id: I757072ae99cd3741753af7210dbf51afe94d3db5\n"
    },
    {
      "commit": "28e7320116dc7e428e877e7165553046bbe7cd41",
      "tree": "44392dacd4fbebb1bc8b9ea76b42589f63d2077a",
      "parents": [
        "ee499fe68e7ea61741779f375056dbaf5a78d1d7",
        "fa1009638d6f45aa8659aa74d93e82dd968e380e"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Wed May 16 16:39:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 16:39:16 2012 -0700"
      },
      "message": "Merge \"Revert \"Add shortcut for voice search\"\" into jb-dev"
    },
    {
      "commit": "ee499fe68e7ea61741779f375056dbaf5a78d1d7",
      "tree": "cd9242e494fe824d007ff78c592c6b2326094aa6",
      "parents": [
        "00ee17718af8a229d0e6a14cd1f47b56a8b14b0f",
        "12e0c5ac1b837d85c78221108b0d70417199bbbb"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 16 16:36:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 16:36:26 2012 -0700"
      },
      "message": "Merge \"Fix 6504124: Disable assist when ACTION_ASSIST is not available\" into jb-dev"
    },
    {
      "commit": "00ee17718af8a229d0e6a14cd1f47b56a8b14b0f",
      "tree": "025f855d01ddb5e1840177439a1feaa978b8677c",
      "parents": [
        "f3ae4e178c8e5111f24927bbc43a7d73d03c8501",
        "602ab325ca03b8dd0b3c2d572614c85ce32e309a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 16 16:25:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 16 16:25:21 2012 -0700"
      },
      "message": "Merge \"Don\u0027t allow shortcuts while keyguard showing.\" into jb-dev"
    },
    {
      "commit": "12e0c5ac1b837d85c78221108b0d70417199bbbb",
      "tree": "a4243ebcd0d70ed04ab39970a088e408932ab573",
      "parents": [
        "c1c140657633cc5b0ff26da1f122fab305d21e01"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 16 16:24:32 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 16 16:24:32 2012 -0700"
      },
      "message": "Fix 6504124: Disable assist when ACTION_ASSIST is not available\n\nChange-Id: I2218afa7954961309d8cf2f2be0aff10826b9243\n"
    },
    {
      "commit": "fa1009638d6f45aa8659aa74d93e82dd968e380e",
      "tree": "564dd2d457770506a723c69e3a45d4a249eae7aa",
      "parents": [
        "4441a369abfaca15a6c4b258d36405890c93deec"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Wed May 16 16:22:35 2012 -0700"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Wed May 16 16:24:22 2012 -0700"
      },
      "message": "Revert \"Add shortcut for voice search\"\n\nThis reverts commit 7a3489552ca92776c5e2a57c80026216b44005eb.\n\nChange-Id: Iddfa86183ff0d189e8dbb5dc535344e064e0d103"
    },
    {
      "commit": "602ab325ca03b8dd0b3c2d572614c85ce32e309a",
      "tree": "e984847d6d863ab4c7e8e8c883d613b25b69cf4f",
      "parents": [
        "d232afa003689d87b637cb4525aae9a6af426700"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 16 13:33:47 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 16 13:39:46 2012 -0700"
      },
      "message": "Don\u0027t allow shortcuts while keyguard showing.\n\nBug: 6483916\nChange-Id: Ica7d6b1dc6a844650e6f3a2399ebb6aab20e780e\n"
    },
    {
      "commit": "3421c02956c3231dd2cc514402b5f96b9f288ef5",
      "tree": "615548aae935fab3a2578315da4963bfb85d5da5",
      "parents": [
        "a0e0d5806c9aa12e291d9ceb60a35eb9b7fde5b0"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed May 16 10:43:37 2012 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed May 16 10:44:10 2012 -0700"
      },
      "message": "Revert \"unlock screen: enable DEBUG and track pattern start/cell progress.\"\n\nThis reverts commit e94d763f69bdc80d1ec1d7c3dd258c4e10206a5b.\n\nGet rid of the debugging for the release.\n"
    },
    {
      "commit": "5ff7efa253486b2b482031ab9a3714fc5cc10f7f",
      "tree": "5e71ad9ccd4425f7f9235014443f6824411429f3",
      "parents": [
        "6387c8a9cb52e6b7bb1a0fb40ee3b66c00ad6697",
        "a60314c70762b99a7ebc40547480ce351c3b5c23"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue May 15 14:54:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 14:54:00 2012 -0700"
      },
      "message": "Merge \"Appease the simians\" into jb-dev"
    },
    {
      "commit": "a60314c70762b99a7ebc40547480ce351c3b5c23",
      "tree": "671c9ef748c0824d484e516b996c27e7d5290975",
      "parents": [
        "e48d12b78011ff5ddbb6838a038ea5384190ec92"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue May 15 14:33:13 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue May 15 14:33:13 2012 -0700"
      },
      "message": "Appease the simians\n\nEnsure that the shown panel view is not currently attached to a parent\nbefore adding it to the panel decor view.\n\nBug 6430928\n\nChange-Id: Ic64ec4222db4754e64afdf06d7d2b77fb5ef825a\n"
    },
    {
      "commit": "df7adb3a44f89578064975fa98324f0e9d84bdf3",
      "tree": "a38aa76eeac057b450104e2977bc862cc20bcbec",
      "parents": [
        "d9016b2c949309bccfdc2871e1dba36136969a3f",
        "3fb0af38a1de9258cc80b227361c9a8ded88cfef"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue May 15 13:16:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 13:16:45 2012 -0700"
      },
      "message": "Merge \"Enable haptic feedback from ILockSettings.\" into jb-dev"
    },
    {
      "commit": "3fb0af38a1de9258cc80b227361c9a8ded88cfef",
      "tree": "f54ea851ea4bb3899e13dcdb2a860d3d9b110b6e",
      "parents": [
        "2411c3361eb2c15b09a8bfadf5c7c4a3de092ea0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue May 15 12:37:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue May 15 12:37:51 2012 -0700"
      },
      "message": "Enable haptic feedback from ILockSettings.\n\nBug: 6438580\nChange-Id: I671ef3c7ac816596ab1944609bae672d1b0cb0ef\n"
    },
    {
      "commit": "05dde913f97b29751572ed8169f6ba20374c7036",
      "tree": "28ff720eb2da1008a78a1fb22ef963a4d2f1dfa9",
      "parents": [
        "108feca9a02e7b5da705161660b76d4f356f5900",
        "46bbdec799002a33c5890f70225bef9f23fdef93"
      ],
      "author": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Mon May 14 16:18:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 16:18:52 2012 -0700"
      },
      "message": "Merge \"Setting liveliness to off\" into jb-dev"
    },
    {
      "commit": "46bbdec799002a33c5890f70225bef9f23fdef93",
      "tree": "2978a2afbe6307a2f3ecb55f8daee323d19d894c",
      "parents": [
        "1d1a5273a9ae11e463f2ef9534eb66453fe74ba3"
      ],
      "author": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Mon May 14 17:17:32 2012 -0400"
      },
      "committer": {
        "name": "Danielle Millett",
        "email": "dmillett@google.com",
        "time": "Mon May 14 19:10:03 2012 -0400"
      },
      "message": "Setting liveliness to off\n\nThis is part of the change to remove the blink checkbox.  Since the\nblink checkbox won\u0027t be visible anymore, we want to set liveliness to\noff instead of checking the current value.\n\nChange-Id: Iaa68cea8ec0a6012eaaaac77cea0f50575b7e660\n"
    },
    {
      "commit": "5a1c0cf492b0b2a96f779479d9aec4f4c3009847",
      "tree": "225f001f152a10985feb6d0ca4daab956aa1a827",
      "parents": [
        "8e96d58146b3cde7aef9dbebaa2c7a6fec2b5571",
        "88240596fce58afe79a4d06752cd8f6c086e2600"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon May 14 15:16:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 15:16:14 2012 -0700"
      },
      "message": "Merge \"Fix 6437474: Fixed black box appearing on rotation\" into jb-dev"
    },
    {
      "commit": "a5cf93a84aefd19da2f80ebab4f6f898e1744037",
      "tree": "b9ab78800a11f3cb0c9f231be8088593e577e2d4",
      "parents": [
        "7ed1d6613e2f5aa05158a87888f5a6474eca5cc1",
        "ffefd0fdd1baa66665ed6195b2adeb0e1e3bb7e4"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon May 14 07:56:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 14 07:56:07 2012 -0700"
      },
      "message": "Merge \"Fix 6283709: set max FUL failed attempts to 5\" into jb-dev"
    },
    {
      "commit": "ffefd0fdd1baa66665ed6195b2adeb0e1e3bb7e4",
      "tree": "bca9a68ce86e7850efe7d0fa4882904c12cb5354",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon May 14 10:34:08 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon May 14 10:34:08 2012 -0400"
      },
      "message": "Fix 6283709: set max FUL failed attempts to 5\n\nAfter an unrecognized face occurs 5 times in a row, we disable FUL\nuntil the user unlocks via the backup lock.  This prevents attacks\nwhere someone tries a bunch of different photos, hoping for a good\nenough match to the device\u0027s owner.\n\nThis value was previously set to 15, which is much higher than\nnecessary.  This change sets it to 5.  We\u0027ve been holding off on\nthis change because it makes our testing more difficult, but we\nwant this in there for factory ROM this week.\n\nChange-Id: I4e1acc5b1dcc2c0629e0c0fe97a837d6edc44d5d\n"
    },
    {
      "commit": "88240596fce58afe79a4d06752cd8f6c086e2600",
      "tree": "f54ccef432ecefb3892136fe75d40dc2b8410095",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Fri May 04 17:42:15 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon May 14 10:06:05 2012 -0400"
      },
      "message": "Fix 6437474: Fixed black box appearing on rotation\n\nThe biometric unlock initializeView() function is called every time\nthe lockscreen is recreated.  Since this normally happens when the\ndevice turns off, initializeView() was covering the backup lock so the\nbackup lock is not exposed when the device turns back on.  However,\ninitializeView() is also called when lockscreen is recreated due to an\norientation change.\n\nWith this change, the show() call to cover the backup lock has been\nmoved out of initializeView(), and the backup lock is now only covered\nwhen the screen is turning off, preventing the backup lock from being\ncovered on an orientation change.\n\nThis also includes changes to prevent biometric unlock function calls\nfrom occurring when SIM or Account unlock is in use.  In fact, in any\nsituation where we know FUL won\u0027t be used, we don\u0027t even construct it.\nThis is not only more efficient, but it also cuts down on the\npossibility of errors where FUL is being used when it shouldn\u0027t be.\n\nChange-Id: Ie97761840df8de5701703d9b9b991726fb601064\n"
    },
    {
      "commit": "2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517",
      "tree": "3fbe473f3de97aa6e5fc6b5e837dea0b8e589e4c",
      "parents": [
        "0d607fbe546ac943de38dad33ae681b09efec6ea",
        "85afd1b6f871d471fdff1980134676a5f1690525"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 15:24:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun May 13 15:24:32 2012 -0700"
      },
      "message": "Merge \"Implement new window cropping.\" into jb-dev"
    },
    {
      "commit": "85afd1b6f871d471fdff1980134676a5f1690525",
      "tree": "94f1a2661418208e7969d659dc694353ff43d304",
      "parents": [
        "dca5fb9e7e193d6aed233e0650691675a56022a3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 13:31:06 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun May 13 13:31:06 2012 -0700"
      },
      "message": "Implement new window cropping.\n\nThe window manager now performs the crop internally, evaluating\nit every animation from, to be able to update it along with\nthe surface position.\n\nChange-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32\n"
    },
    {
      "commit": "01119de91d28d6e053ba2365ae6b1b03276446f0",
      "tree": "bb0208b55233ada2499e492e11d7a827bf5f4a89",
      "parents": [
        "2d97a70ff8bbac5ea807003d65b64e3b255e82bc",
        "8818edbe2f5bef9cf161ef57e9296ff302ad44f6"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Sat May 12 13:31:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 12 13:31:41 2012 -0700"
      },
      "message": "Merge \"Fix 6485058: remove OnTriggerListeners from Wave*Methods in cleanup\" into jb-dev"
    },
    {
      "commit": "58770232216cd735afdfd3dd53151070e06de5ce",
      "tree": "502d189420768053f373e17e3bb634d0dfd33c8b",
      "parents": [
        "dca5fb9e7e193d6aed233e0650691675a56022a3",
        "7304c343821309dd15f769b18f1de2fa43751573"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 19:32:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 19:32:56 2012 -0700"
      },
      "message": "Merge \"Move power HAL interactions to PowerManagerService.\" into jb-dev"
    },
    {
      "commit": "7304c343821309dd15f769b18f1de2fa43751573",
      "tree": "37a1b20d78ee47ed7356c39d00bd1529989cea22",
      "parents": [
        "888da152ece9a8cfe62fad9e7d1a43e792c41e2f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 18:42:42 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 11 18:42:42 2012 -0700"
      },
      "message": "Move power HAL interactions to PowerManagerService.\n\nThis refactoring sets the stage for a follow-on change that\nwill make use additional functions of the power HAL.\n\nMoved functionality from android.os.Power into PowerManagerService.\nNone of these functions make sense being called outside of the\nsystem server.  Moving them to the PowerManagerService makes it\neasier to ensure that the power HAL is initialized exactly once.\n\nSimilarly, moved ShutdownThread out of the policy package and into\nthe services package where it can tie into the PowerManagerService\nas needed.\n\nBug: 6435382\nChange-Id: I958241bb124fb4410d96f5d5eb00ed68d60b29e5\n"
    },
    {
      "commit": "8818edbe2f5bef9cf161ef57e9296ff302ad44f6",
      "tree": "a9cad99638f3363fa29fa2f3276f2e7e23ec39a8",
      "parents": [
        "ab1c5456b789205ef305b19e5a7682b6561aacac"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri May 11 16:11:17 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri May 11 16:11:17 2012 -0700"
      },
      "message": "Fix 6485058: remove OnTriggerListeners from Wave*Methods in cleanup\n\nThis fixes a rare crash that could happen when the device orientation\nchanges while the handle is held over a target.  LockScreen.cleanUp()\nwas being called which set mCallback to null which then causes it\nto crash in MultiWaveViewMethods.onTrigger().\n\nThe solution is to also remove OnTriggerListeners in LockScreen.cleanup().\n\nChange-Id: I487c7c9dbbe40417e685b39f2e79b1c43b30fa00\n"
    },
    {
      "commit": "4c351d62e7a09bcc29e7d0329bcdd947a302cf40",
      "tree": "a939e05b3b719a4f4e8342c80952c4164010f847",
      "parents": [
        "86f23aaa7c86f57a381f49147e5a4454b82fc169"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 10 21:28:24 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 10 21:36:56 2012 -0700"
      },
      "message": "Fix 6040870: Update MultiWaveView for new device\n\nThis change allows more flexibility in target placement in MultiWaveView.\nIt now supports a new way of specifying chevron drawables that allows\nthem to be moved in directions corresponding to more than the four basic\ndirections (right, up, left, down).\n\nChevron drawables can now be updated in an overlay.\n\nThis change also adds a place holder and makes a minor tweak to the layout\non 720dp devices where the navbar buttons weren\u0027t centered.\n\nChange-Id: Icd319ec5f276870380e27737c873e78f599ff751\n"
    },
    {
      "commit": "571d4cbeec4adad050b8e188770e7e7dedc558f1",
      "tree": "1e51786b265cfef9db6ee5024a543ffd2bf81a50",
      "parents": [
        "9e1b58a1234256aada06521cb445673ca4236a0c",
        "fd23e3ed976b22b9a92ddb2cb3a46f9d2a0ce23f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 17:35:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 09 17:35:07 2012 -0700"
      },
      "message": "Merge \"Fix bugs in fallback key handling.\" into jb-dev"
    },
    {
      "commit": "e2d47e63cf1c5c095eb54f7af2a4a02b46862ddd",
      "tree": "44033c82e15dcd884b89fba53e9bc3cba2a51d62",
      "parents": [
        "363b60527ce82b0f56434e70a8124e4d41e2b1e0",
        "cfeda767c87c2d9dd1966c7fbc1f77fa14f80920"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 09 16:16:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 09 16:16:45 2012 -0700"
      },
      "message": "Merge \"Added FUL client-side debug\" into jb-dev"
    },
    {
      "commit": "dff307697d7a7482efe4c10cb3b07b9249524a42",
      "tree": "fdd6a2a806534fc2634a09346bd004fea5e32a0a",
      "parents": [
        "01028b6fa4d56808f3cced408d9d55ae1a710fa8"
      ],
      "author": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Wed May 09 16:10:41 2012 -0400"
      },
      "committer": {
        "name": "Uriel Rodriguez",
        "email": "urodriguez@google.com",
        "time": "Wed May 09 19:08:22 2012 -0400"
      },
      "message": "changed pokeWakelock() callback to take time in milliseconds\n\nChanged the pokeWakelock() call back to take one argument - the duration to stay awake in ms.  This\nchange was needed in order to poke the wakelock for the duration of the watchdog timeout.  This\nmust be done in the service because the duration of the watchdog timeout is unknown at this point.\n\nMoved pokeWakelock() from start() to handleServiceConnected() to make sure that this poke happens\nbefore the poke in the service.  This poke is still needed to account for when devices are rotated.\n\nChange-Id: I19d62df1489514de0588ebb937678358e70ffc95\n"
    },
    {
      "commit": "fd23e3ed976b22b9a92ddb2cb3a46f9d2a0ce23f",
      "tree": "b3d9f4d12fe2d93ba9979e6d66b1d9f4de016178",
      "parents": [
        "af67fc65bf113b028ff33e71cd6a45810018c273"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 13:34:28 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 13:34:28 2012 -0700"
      },
      "message": "Fix bugs in fallback key handling.\n\nIf a fallback key is generated using a key plus a modifier,\nthen it\u0027s possible we might get a different fallback key\ngenerated if the modifier has changed.  PhoneWindowManager\nneeds to remember which fallback is last generated for a\ngiven key code so that it can apply the same fallback action.\n\nWhen generating cancellation events, it\u0027s important to have\npreserved the policyFlags of the original event.  Otherwise\nwe may not dispatch the cancellation properly.  For example,\nsome actions are not performed if the POLICY_FLAG_TRUSTED\nis not specified.\n\nRemember the metaState associated with a key event so we can\ninclude it when canceled.\n\nTell the policy when a fallback is being cancelled so that it\ncan clean up its state.\n\nAfter a SEARCH shortcut is invoked, clear the flag indicating\nthat a shortcut is pending.  This is to prevent SEARCH from\ngetting stuck down in the case where we might forget to send\nthe up.  (Shouldn\u0027t happen anymore after the prior fixes.)\n\nBug: 5616255\nChange-Id: I68f0a9679c7af464eaf31c099f2aa50b53fecf1f\n"
    },
    {
      "commit": "cfeda767c87c2d9dd1966c7fbc1f77fa14f80920",
      "tree": "40672a62fd0a5cff58e115f78f3fc6ebb36c999d",
      "parents": [
        "feecf9d7869c87dfe11d594640d0c7ad2045d1fb"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 09 14:35:20 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 09 15:35:18 2012 -0400"
      },
      "message": "Added FUL client-side debug\n\nThis is to help track down bug 6409767 and will be removed when that\nbug is fixed.\n\nChange-Id: I51df2fd7d14ecd8f311fdf2ae993ba4943764011\n"
    },
    {
      "commit": "2c21449357f8e53e578ec8835ddfeeee0368814b",
      "tree": "80e6b2113c89b70319b6cbbc6df5aecdcdd0448c",
      "parents": [
        "2f4b10e2d4320db490b03eb198ce034302ef00fc",
        "22001c1f96984655f7205ecbc93dd982c47b4e97"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 09 09:44:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 09 09:44:05 2012 -0700"
      },
      "message": "Merge \"Added checks to make sure FUL functions are on UI thread\" into jb-dev"
    },
    {
      "commit": "22001c1f96984655f7205ecbc93dd982c47b4e97",
      "tree": "b65f4d50267f3f0dfc01ba2d94b26e7a544eeb56",
      "parents": [
        "feecf9d7869c87dfe11d594640d0c7ad2045d1fb"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 09 11:16:04 2012 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Wed May 09 11:16:04 2012 -0400"
      },
      "message": "Added checks to make sure FUL functions are on UI thread\n\nThere are three functions in FaceUnlock.java that have the requirement\nthat they are to be called on the UI thread.  I added checks to log\nan error if they are ever called off of the UI thread.\n\nChange-Id: I581968e8138b7561b7ad75a1ac6945bf218e2bcf\n"
    },
    {
      "commit": "b8e056a8e83c0fc8a60ed2d09025b82689f0fdf2",
      "tree": "7008ff41ea5ac25a6a0b692be375b2a0feff537a",
      "parents": [
        "137407087b069b3418e49b260f64e48e7a6a3144"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue May 08 19:04:29 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue May 08 19:04:29 2012 -0700"
      },
      "message": "Fix measurement for dialog windows that do not have fixed width\n\nBug 6456773\n\nChange-Id: I9d058f78c4b1c1759aaea2f215efee82a3489faa\n"
    },
    {
      "commit": "bffc3d1bd33eb2d8e00a9f8b6261d815db503311",
      "tree": "a1479697fba70c0d8bbb608f4bb9a612781b9f3f",
      "parents": [
        "c2182c67d65619041956849c346d67e77010ab7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 07 17:43:49 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 08 15:10:37 2012 -0700"
      },
      "message": "Silent and Vibrate mode clean up\n\nClean up related to new Vibration policy.\nThe vibrate behavior is now only derived from:\n - presence of a vibrator on the device\n - current ringer mode selected: NORMAL, VIBRATE or SILENT\nIf no vibrator is present the ringer mode can only be NORMAL or SILENT.\n\nThe control of ringer mode via volume keys when volume keys control the \"master\"\nstream type (RING on phones, MUSIC on tablets) is as follows:\nIf a vibrator is present:\n VOL- and volume equals 1: NORMAL \u003d\u003e VIBRATE\n VOL- and volume equals 0 and not continuous press: VIBRATE \u003d\u003e SILENT\n VOL+ and in SILENT mode: SILENT \u003d\u003e VIBRATE\n VOL+ and in VIBRATE mode: VIBRATE \u003d\u003e NORMAL, volume \u003d 1\nIf no vibrator is present:\n VOL- and volume equals 0 and not continuous press: NORMAL \u003d\u003e SILENT\n VOL+ and in SILENT mode: SILENT \u003d\u003e NORMAL, volume \u003d 0\n\nVIBRATE_ON and VIBRATE_IN_SILENT settings are not stored/retreived any more.\n\nAudioService checks and corrects ringer mode and stream volumes if necessary when reading from\nDB at boot time.\n\nAlso:\n Added dump for stream volumes in AudioService.\n Added device names missing in AudioSystem for USB accessory and USB device.\n\nIssue: 6036529\nIssue: 6414950\nIssue: 6448163\n\nChange-Id: I77fb821ec63e4e566320cac2701b4ac466e86aef\n"
    },
    {
      "commit": "41a4704b09f98723f4ddec895c9f2e651a5c0c8e",
      "tree": "94203f470f7a64af7efb666199ede2396406e1d3",
      "parents": [
        "69de7e1a4ee9455ecd5a4aedfb6e5c395364dbbe",
        "daf5d894ef71c5674e83b11de8b408e3bdabe4c7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 07 18:55:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 07 18:55:20 2012 -0700"
      },
      "message": "Merge \"Small tweaks to orientation.\" into jb-dev"
    },
    {
      "commit": "daf5d894ef71c5674e83b11de8b408e3bdabe4c7",
      "tree": "37ab29946003c4d6b13d5f261c06f0737485241f",
      "parents": [
        "59bbef0cd781f4933fd8a0a85b6067f36e529e02"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 07 18:30:18 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 07 18:30:18 2012 -0700"
      },
      "message": "Small tweaks to orientation.\n\nImproved threshold for detecting external acceleration.\n\nBug: 5976859\nChange-Id: Iaf2298fba8eda72d1cacbb2f3aea72f460a9262f\n"
    },
    {
      "commit": "354619c1cc1b4668c81c5368b2256335cc9e8538",
      "tree": "ee4afffcfe5988d5ce3e5562e9712cd97b2c00e4",
      "parents": [
        "b709528407614642b2384063426d60ea12490607"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Apr 27 17:33:44 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Sun May 06 22:39:18 2012 -0700"
      },
      "message": "Fix 6397736: Swipe up to search layout fixes\n\nThis fixes several layout issues on phones and tablets with MultiWaveView.\n\nIt adds a new background scrim to be shown behind the MultiWaveView\non the navigation bar.\n\nMultiWaveView is updated to handle gravity constraints which makes layouts\nmuch more flexible across devices.\n\nChange-Id: I64068f4eaa81ef6c464247049117d53432fcacbd\n"
    },
    {
      "commit": "0799440ab3ce50ffa6acb762cb7677abdffb3f74",
      "tree": "f4ffb646f0fbd71cded3ca1f27a3a0a25e801806",
      "parents": [
        "e12c59491ea01417987216e2dc6a12e482982d60"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 02 14:22:27 2012 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri May 04 13:52:14 2012 -0700"
      },
      "message": "Fix 6414061: Add new ACTION_ASSIST intent.\n\nChange-Id: I3d334f67723ac89f6001267e0f06ad76190b929f\n"
    },
    {
      "commit": "1f2077c3a0ae20caa4343dc9f66db959a939a054",
      "tree": "e68df9e48710902ad23a3158be561c7f9aba68c2",
      "parents": [
        "c793d62613b8cee340ce6c20856f6db81575f034",
        "8877cc3e6ee48c0bd1e8f0984d000a106f6122bd"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu May 03 10:57:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 03 10:57:22 2012 -0700"
      },
      "message": "Merge \"Fix AlertDialog positioning for dialogs spawned from DialogWhenLarge activities\" into jb-dev"
    },
    {
      "commit": "8877cc3e6ee48c0bd1e8f0984d000a106f6122bd",
      "tree": "cad5dbc4753cae0320c0bfdbaa65090f9082021c",
      "parents": [
        "fbbdbc2d2326e96ce31950baccddd2f295fe594c"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed May 02 18:32:35 2012 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed May 02 18:35:23 2012 -0700"
      },
      "message": "Fix AlertDialog positioning for dialogs spawned from DialogWhenLarge\nactivities\n\nBug 6413342\n\nClear extra attributes in the base theme so that they properly overlay\na ContextThemeWrapper over a fixed-size dialog theme.\n\nChange-Id: Ia0d49f0746ca01516afa1eaea7091e5da60d14ae\n"
    },
    {
      "commit": "22930da77f7c2d0461474a162d0d25b9dca00875",
      "tree": "55f053542afcdeae974dccdf4d93306036ca509b",
      "parents": [
        "3421f9fd6847faa0bbf3f1d8e1c8424bce52a9a4",
        "82b2cd0fe9b8c6e353a9b3b0600aafc7b97eecc1"
      ],
      "author": {
        "name": "John Wang",
        "email": "johnwang@google.com",
        "time": "Wed May 02 17:37:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 17:37:44 2012 -0700"
      },
      "message": "Merge \"Add unusable SIM message.\" into jb-dev"
    },
    {
      "commit": "82b2cd0fe9b8c6e353a9b3b0600aafc7b97eecc1",
      "tree": "3036393a20003469ed2941109cae7128536a8227",
      "parents": [
        "459e459ef99f494238128aa4142fe2e97adae35b"
      ],
      "author": {
        "name": "John Wang",
        "email": "johnwang@google.com",
        "time": "Wed May 02 16:28:49 2012 -0700"
      },
      "committer": {
        "name": "John Wang",
        "email": "johnwang@google.com",
        "time": "Wed May 02 17:14:50 2012 -0700"
      },
      "message": "Add unusable SIM message.\n\nInform user \"Unusable SIM card.\" when SIM is permanently disabled\ndue to too many wrong PUK inputs.\n\nbug:5548405\n\nChange-Id: Id82c7681f58f09709c630b4bc455facb549938ed\n"
    },
    {
      "commit": "e849230f444653e692024b4321044cb9f6188919",
      "tree": "3020622d2ae2b33fd5c48bf43ae395d471ab8dca",
      "parents": [
        "39f412d8deed2ba46153c8a819bc8635979cec6b",
        "1bc0a49e3cade697201e454bb6e46ee789cef6e4"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed May 02 01:41:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 02 01:41:23 2012 -0700"
      },
      "message": "Merge \"DO NOT MERGE : Backport I5723f627ce323b0d12b Reduce window resizing during IME transition\" into jb-dev"
    },
    {
      "commit": "1bc0a49e3cade697201e454bb6e46ee789cef6e4",
      "tree": "ff76be305da27c2480fda3e219bf73b2f9aca9d8",
      "parents": [
        "6dbac3798128574accff64a9a2b00b2176058898"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed Apr 25 22:47:12 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Wed May 02 17:30:45 2012 +0900"
      },
      "message": "DO NOT MERGE : Backport I5723f627ce323b0d12b Reduce window resizing during IME transition\n\nBug: 5137498\nChange-Id: Ieb8fd700d193eddaa31b0c5ebd8c7f7885586372\n"
    },
    {
      "commit": "0632b35b6828cd4324b3d218c2e38f895e819aad",
      "tree": "671bc68d2d73cc08001ad1fda16795bd8bf6f3d4",
      "parents": [
        "5a00661bd6a1bfe82656c51d23a3ac6be99602a2",
        "daa3753a04699724d2cfe824ac1f5a266d643a05"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 18:39:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 18:39:00 2012 -0700"
      },
      "message": "Merge \"Improve handling of built-in keyboard.\" into jb-dev"
    },
    {
      "commit": "daa3753a04699724d2cfe824ac1f5a266d643a05",
      "tree": "ddc33d395dd0f3d01a95775397356983fb28a076",
      "parents": [
        "32c8113510b2774f865e8ac763976b90d9db2706"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 15:54:03 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 01 16:34:20 2012 -0700"
      },
      "message": "Improve handling of built-in keyboard.\n\nThe window manager policy made some incorrect assumptions about the\nmeaning of the Configuration.keyboard field.  We need to be more\ncareful about distinguishing between built-in and external keyboards.\n\nMost of this change is to move the determination of the parts of\nthe Configuration related to input devices into the WindowManagerService\nleveraging new features of the InputManagerService to good effect.\n\nThen we plumb through the flag that indicates whether a device\nis internal or external so that we can be more particular about\nhow the lid switch effects changes to the Configuration.\n\nBug: 6424373\nChange-Id: I36a1c22ade35e578955465a25940a33f227b9763\n"
    },
    {
      "commit": "f4197bf93532b333dbea13792c422b65b0ceebf3",
      "tree": "7c5cd3a53e1d9630df477175d346bbcc3d88ebc7",
      "parents": [
        "d9a00323126cb4abae9e93089cf0a27ec8c7122d",
        "257f2ecc97d294e95b069547466d2054926d960f"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Tue May 01 12:54:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 12:54:02 2012 -0700"
      },
      "message": "Merge \"Fix 6395288: Added lock to avoid unbind race condition\" into jb-dev"
    },
    {
      "commit": "d9a00323126cb4abae9e93089cf0a27ec8c7122d",
      "tree": "5be42873e49a8ee8acd67676849c29bd95b40ab9",
      "parents": [
        "8ed491b75b08df3944481a9509dea2606a265857",
        "78c629807c8fe914801ed17f7e16dc1f820e67cd"
      ],
      "author": {
        "name": "Steven Ross",
        "email": "stross@google.com",
        "time": "Tue May 01 12:49:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 12:49:28 2012 -0700"
      },
      "message": "Merge \"Don\u0027t show Face Unlock on initial boot fixes 6396685\" into jb-dev"
    },
    {
      "commit": "8ccfbdddabf3387a1ac9d46bd057bea64eb30ef3",
      "tree": "c533c8adedca1455b5627b4598a3532f4da3979d",
      "parents": [
        "6dbac3798128574accff64a9a2b00b2176058898",
        "c68022258ebd3dd97a5079ba99f4f3cd12b223b0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 01 08:57:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 08:57:18 2012 -0700"
      },
      "message": "Merge \"Optimize how AudioService receives media button events\" into jb-dev"
    },
    {
      "commit": "78c629807c8fe914801ed17f7e16dc1f820e67cd",
      "tree": "aae851da402708fdb33756d4420c8e9a91421ac3",
      "parents": [
        "6dbac3798128574accff64a9a2b00b2176058898"
      ],
      "author": {
        "name": "Steven Ross",
        "email": "stross@google.com",
        "time": "Fri Apr 27 14:26:17 2012 -0400"
      },
      "committer": {
        "name": "Steven Ross",
        "email": "stross@google.com",
        "time": "Tue May 01 09:12:22 2012 -0400"
      },
      "message": "Don\u0027t show Face Unlock on initial boot fixes 6396685\n\nUses a static to keep track whether this is the first pass through the lockscreen\nThis will be true from when the process is instantiated until the lockscreen\nis constructed for the first time, and then false afterwards.\nWhen it is true, we suppress the biometric unlock (Face Unlock).\nThis avoids the problem of unpredictable and slow startup behavior for Face Unlock\non the first unlock after boot.\n\nChange-Id: I70033af17ba3163d5fe07fc58096f01afaaaafd0\n"
    },
    {
      "commit": "c68022258ebd3dd97a5079ba99f4f3cd12b223b0",
      "tree": "231a215ad8b0f72a41cc78bda847a24150ef79a2",
      "parents": [
        "d6be37d4d9d8427ed0eccf2a333e5589b88b0cf8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 30 11:15:03 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 30 17:46:19 2012 -0700"
      },
      "message": "Optimize how AudioService receives media button events\n\nAudioService maintains a stack of registered media button event\n  receivers.\nThis change modifies the broadcasters of ACTION_MEDIA_BUTTON intents\n  let AudioService directly handle the corresponding key event instead\n  of trapping the intent sent by PhoneWindowManager, KeyguardViewBase\n  and PhoneFallbackEventHandler.\nBecause the key event may be sent through a PendingIntent,\n  AudioService now also implements the OnFinished interface to be\n  notified when the event was consumed so it can release the wake\n  lock held if it was held when the key event needed to be sent\n  (see where PassHeadsetKey was instanciated in PhoneWindowManager).\n\nChange-Id: I2e8614df94af9d54edbf714ef443cc372d21827a\n"
    },
    {
      "commit": "c5c33c363ec9609b83dfe87d58f0bdcf99ff57a0",
      "tree": "091632fce12eabaad30f5784e4229f898d7a72bb",
      "parents": [
        "6da9cf7782abefe0ba3f8c389136e06a265dfb74",
        "c458ce98ce42c00b98afe00670f822814f3da572"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 30 17:15:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 30 17:15:57 2012 -0700"
      },
      "message": "Merge \"Add support for using the lid switch to turn off the screen.\" into jb-dev"
    },
    {
      "commit": "c458ce98ce42c00b98afe00670f822814f3da572",
      "tree": "c993b6f8b3361f2ee1116f76709427e6106bd875",
      "parents": [
        "3ea8761974a530218a246dc73583c8820b12bf0b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 30 14:58:40 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 30 15:48:42 2012 -0700"
      },
      "message": "Add support for using the lid switch to turn off the screen.\n\nAdded a config option to allow the lid switch to turn off the\nscreen.  This is a closer match to what a lid switch should be\ndoing.\n\nRemoved an old feature to bypass keyguard when keyboard is visible\nbecause the way it was plumbed in made bad assumptions about\nthe meaning of the lid switch.  Also, the last product we shipped\nthat had a physical keyboard turned this config option off.\nSo away it goes.  We can bring it back someday if we really want it.\nIt\u0027s questionable how useful the feature is anyhow, since it only\nworks when the keyguard is unsecure and when the lid switch is\nunlikely to be jostled in the user\u0027s pocket.\n\nFixed a bug where we would tell the power manager that the keyboard\nwas visible even if the lid switch did not control the keyboard.\nThis used to cause the power manager to try to set the keyboard\nbrightness, which doesn\u0027t work.\n\nBug: 6377115\nBug: 6406726\nChange-Id: Ic84b71d09563d51c92cd1cf132fa8bdee6509103\n"
    }
  ],
  "next": "5c58de3a523a384c47b0b1e0f5dd9728a74cd9f7"
}
