)]}'
{
  "log": [
    {
      "commit": "12a7f76c8687053d139d670631e7cef7031f8c48",
      "tree": "1054d4eb1af2912cb483596a417f6d9ddefd46bc",
      "parents": [
        "0935f258dc2fd1eeadf9d502abbd1e409f68ac67",
        "128f27632343ed8ad8bba2d96f4ec69c0e369de7"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Fri Apr 19 20:26:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 20:26:02 2013 +0000"
      },
      "message": "Merge \"Fix system server crash when uninstalling paid LS widget that has been added (issue 8647398)\" into jb-mr2-dev"
    },
    {
      "commit": "f535c820c428d4eefffcb224f2572a9c5b9965ea",
      "tree": "40dc448aac6ee7204ecf24a02752109f9469e862",
      "parents": [
        "b08aa2354ff3b1bd1c7d705b82a7c1e62674ee50",
        "6396c7205a7c5b16dae5b2e0ba11079005ad7762"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Apr 19 18:00:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 18:00:17 2013 +0000"
      },
      "message": "Merge \"Restore dock home support for car docks.\" into jb-mr2-dev"
    },
    {
      "commit": "128f27632343ed8ad8bba2d96f4ec69c0e369de7",
      "tree": "5f3a5905c52f941c482fa8b8a8a775334bbb9da3",
      "parents": [
        "7fa9667f63fe84a2d17ce899121f32bfcec98864"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Thu Apr 18 13:37:05 2013 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Thu Apr 18 13:55:25 2013 -0700"
      },
      "message": "Fix system server crash when uninstalling paid LS widget that has been added (issue 8647398)\n\nChange-Id: I4acf02dad6bd8347727ca4322d19e15b130a6621\n"
    },
    {
      "commit": "6396c7205a7c5b16dae5b2e0ba11079005ad7762",
      "tree": "052994396a501b0a5cfaabb5613fdb0529b8e909",
      "parents": [
        "37f58dccecd778f5af1f1f1db492c75ec5fcabd6"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 16 20:19:09 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Apr 18 08:21:49 2013 -0400"
      },
      "message": "Restore dock home support for car docks.\n\nWhile it\u0027s still not generally appropriate for the home key\nto do anything other than take you home, a car is a somewhat\ndifferent context: because of the user\u0027s reduced ability to\ninteract with the device, it\u0027s especially useful to\ntemporarily replace the launcher with a car-optimized\nvariant. While it would be ideal for the entire system\n(particularly the user\u0027s everyday Launcher) to dynamically\nreconfigure their UIs upon entering car mode, it\u0027s not the\ncase today, and car home apps are a useful compromise.\n\nQuick test:\n\n\t$ adb shell am broadcast \\\n\t\t-a android.intent.action.DOCK_EVENT \\\n\t\t--ei android.intent.extra.DOCK_STATE 2\n\nThis reverts commit 7c135205f2f4c192299ad0215276e9e481bccaa5.\n\nBug: 8234767\nChange-Id: I17588fff46e7f5e3773d3ad202601a5642943444\n"
    },
    {
      "commit": "ab15e6ab37cb29e6f3653cc5fa1872523946c50e",
      "tree": "7f11b09bfff37915d39aba436748760f8521937b",
      "parents": [
        "bb7b315cdd48fdcffc07d0e98557cb88b9f58006",
        "c82c89edc76667d2d39f5327bffd3c9b7cf04d9f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 18 01:42:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 18 01:42:01 2013 +0000"
      },
      "message": "Merge \"Add a config resource to force HDMI rotation on some devices.\" into jb-mr2-dev"
    },
    {
      "commit": "c82c89edc76667d2d39f5327bffd3c9b7cf04d9f",
      "tree": "e4a81b4468ae8ad275aad4493e85481f44ac4dfd",
      "parents": [
        "37f58dccecd778f5af1f1f1db492c75ec5fcabd6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 17 17:18:15 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 17 17:18:15 2013 -0700"
      },
      "message": "Add a config resource to force HDMI rotation on some devices.\n\nIf the hardware composer HAL does not provide full support for\nmultiple displays, it may be necessary to force the HDMI rotation\nwhen not docked.  (When docked, we can use the dock\u0027s orientation.)\n\nThis configuration is not expected to be used on newer devices\nwith the requisite HAL support and may be removed in the future.\n\nBug: 8511721\nChange-Id: I1ff50f00ee7fe621aceff94bd938ecf6385c3f38\n"
    },
    {
      "commit": "b1e5137a807d19a9cbc241c0ba84c3c49b32fceb",
      "tree": "6544a5609fc6bec109f9bb4f956134fbad2772f0",
      "parents": [
        "a0042742c8941519718cc8872a84cfec10294386",
        "187ec581c66fec49a5ee7db8edec6d9eb0e209fc"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Apr 17 20:39:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 20:39:58 2013 +0000"
      },
      "message": "Merge \"Move owner info from Settings.Secure to LockSettings\" into jb-mr2-dev"
    },
    {
      "commit": "187ec581c66fec49a5ee7db8edec6d9eb0e209fc",
      "tree": "50a321921b625de2f75fdba1568ad5f250e90e95",
      "parents": [
        "bffe377bca3cb8240bfc614c12fd1091ae3f69b9"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Apr 15 18:27:54 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Apr 16 18:33:43 2013 -0700"
      },
      "message": "Move owner info from Settings.Secure to LockSettings\n\nFixes bug 8512972\n\nChange-Id: Ic046aff0332b78489dda08b1e9e71f4c16154f10\n"
    },
    {
      "commit": "5584737fff6350ab09fb53e6a73bbff770930727",
      "tree": "a3f1eefce34749a626f43e34bb7878ade63f4e0b",
      "parents": [
        "83d90b200babe43d5e91cef1bbcf0b224f48e16d",
        "3733c4c2fec9f69d48a13a82d5bade3926248efa"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Apr 16 13:23:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 13:23:47 2013 +0000"
      },
      "message": "Merge \"FLAG_DISMISS_KEYGUARD should not hide status bar if secure.\" into jb-mr2-dev"
    },
    {
      "commit": "a5239891dc324db21beb87535f90ea76fba803b9",
      "tree": "a396fd65a90625cbca4602bdf733b44a22335f62",
      "parents": [
        "330a9fe323cfb2f492665b73822f056c2c6689c2"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon Apr 15 11:45:40 2013 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Mon Apr 15 11:45:40 2013 -0400"
      },
      "message": "Enabling Face Unlock for user switching (bug 8495282)\n\nWe had been intentionally disabling FUL when switching to a new user.\nThe reason was that we were only getting a signal when the user switch\nstarted, not when it completed.  If we started FUL at the beginning of\nthe user switch, it could be completed by the time the user switch\ncompleted.  We now have a signal to tell us that the switch completed.\n\nPrior to this change, FUL would start whenever keyguard is created.\nFor a user switch, keyguard is recreated when we get\nonUserSwitching(), but we don\u0027t want FUL to start until we get\nonUserSwitchComplete().  So with this change, if onResume() happens\nbecause of a user switch it doesn\u0027t start FUL until we get\nonUserSwitchComplete().\n\nChange-Id: I1d3da0a32b9b4cf0cfa5c577f1697d2a41ee4fda\n"
    },
    {
      "commit": "3733c4c2fec9f69d48a13a82d5bade3926248efa",
      "tree": "7a31db8a3b44f4f9481ec55ea679ff53cde2b5af",
      "parents": [
        "869d273503adbccfae3bac7425649f2e1d2aefad"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 11 16:55:12 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 12 11:43:49 2013 -0400"
      },
      "message": "FLAG_DISMISS_KEYGUARD should not hide status bar if secure.\n\nOtherwise, setting both FLAG_DISMISS_KEYGUARD + FLAG_FULLSCREEN\nwill hide the status bar (by not forcing it) when the secure\nkeyguard is showing.\n\nBug:8567697\nChange-Id: I441d9c1bc0e106672b6d29427d291f41eaf1e697\n"
    },
    {
      "commit": "77216642884d5131290803776b0fce4d68128e97",
      "tree": "11c8e971e1ad79d88b4e3c72db1596dfd9384d4a",
      "parents": [
        "b7e6a4433bda6c59540ffc51061aff5cc3d10166",
        "b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 12 00:08:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 12 00:08:13 2013 +0000"
      },
      "message": "Merge \"Implement #7341342 API request: way to determine current orientation...\" into jb-mr2-dev"
    },
    {
      "commit": "b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3",
      "tree": "a069e6fa12fc1808e3d396385958e36960e8d85e",
      "parents": [
        "064fab54d743c6b00319ec08669e8b0872625317"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 10 17:34:25 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 11 17:07:40 2013 -0700"
      },
      "message": "Implement #7341342 API request: way to determine current orientation...\n\n...to allow for orientation locking\n\nThis doesn\u0027t add an API to get the current orientation, since that is\ninherantly racy.  Instead there is a new \"locked\" orientation mode that\nlocks the screen into whatever the current rotation is.\n\nWhile at it, added a few other useful orientation modes.\n\nChange-Id: I5c369e6511cb72294e9e922ea8acffd770df9440\n"
    },
    {
      "commit": "22626107841e928d472e8258c0d2cefccf9c9b81",
      "tree": "a681d7619fa6328d90bd904980762f6e4b369306",
      "parents": [
        "6f0a36e691fd4c434a80631e4dda212d35745d83",
        "4894a016f41f7ccbaf3b2d03395ff6838bb0828c"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 11 22:37:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 11 22:37:34 2013 +0000"
      },
      "message": "Merge \"Fix bug where transport shows all the time in keyguard\" into jb-mr2-dev"
    },
    {
      "commit": "e5fb5e4c4d1193a925744e6a081f2419d0754585",
      "tree": "63a2d1745072310157c8a8ee0e218193f4ec5185",
      "parents": [
        "dbf500aaafd0889aa3ac9bf0fb2b2be4e0c3ebbf"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Apr 10 16:10:06 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Apr 10 16:10:06 2013 -0700"
      },
      "message": "Fix missing clock in keyguard\n\nThis fixes a bug where the clock sometimes doesn\u0027t show due to the\nalpha values not being reset when the widget page order changes\ndue to removing a widget.\n\nFixes bug 8545025.\n\nChange-Id: I17c531af4c844647b3262fcf56faa84fff8bafc5\n"
    },
    {
      "commit": "4894a016f41f7ccbaf3b2d03395ff6838bb0828c",
      "tree": "7632dee3564511969c892365f30619fb44ed2a4e",
      "parents": [
        "dbf500aaafd0889aa3ac9bf0fb2b2be4e0c3ebbf"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Apr 03 15:23:55 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Apr 09 18:15:53 2013 -0700"
      },
      "message": "Fix bug where transport shows all the time in keyguard\n\nThis fixes a bug caused by not keeping track of previous play\nstate properly in keyguard as well as showing the transport\neven when in STATE_INVISIBLE.\n\nFixes bug 8473575\n\nChange-Id: I28bd382c53645a7c44541b3139c0a60569865219\n"
    },
    {
      "commit": "c8b46ca5754a9ac9e0afea2f9c0b5d9984c5c128",
      "tree": "379652fc66bcbdf5e71ec287b631c395c9b1db44",
      "parents": [
        "a56b78dcd1292a4291d85113bdeeda8496c1a0c0"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Apr 08 12:59:26 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Apr 08 19:18:59 2013 +0000"
      },
      "message": "Awaken dreams on home + recents.\n\nFixes the KEYCODE_HOME case, awakes when home is\nstarted for any reason.\n\nAlso awaken when toggling recents (and not locked).\n\nBug:8557212\nChange-Id: I6578ae3971740a03c27596b838d27a5ab9b03752\n"
    },
    {
      "commit": "8c16aa9fa225c277c3ead605b16dc697709bda27",
      "tree": "1e9309a7f5bda446db789bf20e08fa52cb58bdf5",
      "parents": [
        "bbcf0852f786ea1c9cf6dca85f45487b7739bfab"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 04 10:47:52 2013 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Apr 04 10:51:09 2013 -0700"
      },
      "message": "Uphold common ordering expectations around action bar Home/Up dispatch\n\nSome apps aren\u0027t particularly happy if a stray key event is dispatched\nto a newly created window before its menu is prepared, causing the\naction bar\u0027s Home/Up event to be dispatched. Ignore these clicks on\nthe Home/Up button before the menu goes through its initial prepare\nstep.\n\nNote that it is still possible (and valid!) for Home/Up to be\ndispatched even if the app chose to return false from\nonCreateOptionsMenu or similar.\n\nBug 7085070\n\nChange-Id: If4b7d5f8c5a08ce8a094f1919347604d78ddedfb\n"
    },
    {
      "commit": "6a5702041f48f868863a0454d7df6cd64eab235d",
      "tree": "6b2748489f483465e7ff0ca859db3068418d4063",
      "parents": [
        "4d88259f625266400cd6116973d1bc152ae83f26",
        "3261b537c5fdec824575a1f6ad6d8942715e82e2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 03 21:11:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 21:11:12 2013 +0000"
      },
      "message": "Merge \"RemoteControlClient receives playback position change requests\" into jb-mr2-dev"
    },
    {
      "commit": "ddd168d65f0bc9644434d18dd82fe6c994670dba",
      "tree": "cb7c60b83072ab9618042e90a7b544d5f3c5d2ed",
      "parents": [
        "dbd9c337eddadccc04d4b4311261710ee38c23da",
        "d378ad74c61b9bd3fdaa32951c4c470fcd579ade"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Wed Apr 03 01:11:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 01:11:53 2013 +0000"
      },
      "message": "Merge \"Add global key configuration file\" into jb-mr2-dev"
    },
    {
      "commit": "d378ad74c61b9bd3fdaa32951c4c470fcd579ade",
      "tree": "f44a8cbf05cf8216936f1dcd805d2d913ebd9e01",
      "parents": [
        "5c0ce512c5782eb79c7b907e2dd20aa3896dd068"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Mon Apr 01 12:18:26 2013 -0700"
      },
      "committer": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Tue Apr 02 18:09:27 2013 -0700"
      },
      "message": "Add global key configuration file\n\nAdd global key configuration file. A global key is one that is handled by\nPhoneWindowManager before dispatching and sent to a given component via\nbroadcast instead of going to the foreground app.\nBug: 8510681\n\nChange-Id: Ic6a8e559680d005613ed22874b27eb78bbfc4499\n"
    },
    {
      "commit": "c801b21b425804bcd1430bd014ee0094183f056b",
      "tree": "c22ecd6e6cff38307110f48d13974796f41ae46c",
      "parents": [
        "75e181ddfec2166026a0ce553eca2a339e21b968"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Apr 02 16:03:02 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Apr 02 16:03:02 2013 -0700"
      },
      "message": "Change time format for default clock in keyguard\n\nThis changes the default clock format from \"kk:mm\" to \"HH:mm\"\n\nFixes bug 8447801\n\nChange-Id: I25f0c406dbecba8288773c9d13d0092485274af5\n"
    },
    {
      "commit": "3261b537c5fdec824575a1f6ad6d8942715e82e2",
      "tree": "93553978dcb21f3347194d98ee85eaf9885df247",
      "parents": [
        "73882cf489b44cfd393701c0629bb2d3613857d1"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 01 14:59:39 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 01 18:14:30 2013 -0700"
      },
      "message": "RemoteControlClient receives playback position change requests\n\nRemoteControlClient defines two listener interfaces for playback\n  position, one to let the framework query the current playback\n  position, the other to request playback to seek to a given\n  position.\n\nUpdated IRemoteControlDisplay interface to support passing info\n  about whether the user of RemoteControlClient can provide a\n  playback position, and receive a new one.\nUpdated implementations of IRemoteControlDisplay to new\n  interface.\n\nBug 8120740\n\nChange-Id: I1a5a969da4d0f8c9ad27f691919dd08f8653982b\n"
    },
    {
      "commit": "b1b9a8ac07ea7d438eda613f4c798dd8b10a66ce",
      "tree": "842924f02503946c4cde9d1cc21817b2a4d3af48",
      "parents": [
        "da160ec313d844b09818a91463631440a1b8a09c"
      ],
      "author": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Fri Mar 29 11:52:42 2013 -0400"
      },
      "committer": {
        "name": "Brian Colonna",
        "email": "bcolonna@google.com",
        "time": "Fri Mar 29 18:35:43 2013 -0400"
      },
      "message": "FUL now restarts when flipping tablet 180 (bug 7484464)\n\nWhen a tablet rotates, FUL must be stopped and restarted in a new\nposition.  90 degree rotations cause a configuration change, causing\nFUL to be automatically reconstructed in the new location.  However,\na 180 degree rotation is not a configuration change, so FUL was not\nrestarting.  A 180 degree rotation happens more often than one might\nthink.  If you set the tablet down and later picked it up in the\nopposite orientation, FUL would not work prior to this fix.\n\nThis change adds a rotation watcher to KeyguardFaceUnlockView.  It\nwatches for 180 degree rotations and stops and restarts FUL\naccordingly.\n\nThe rotation watcher callback must be unregistered when\nKeyguardFaceUnlockView is recreated (as during 90 degree rotation\nchanges), otherwise the number of rotation watcher callbacks will keep\ngrowing and they will never go away.  This is a problem not just\nbecause there are many callbacks hanging around, but also because the\nold callbacks end up trying to access biometric unlock views that no\nlonger exist, resulting in crashes.  So, a simple function was added\nto the window manager to unregister a rotation watcher.\n\nChange-Id: Ie1ef20a9a22b8f4e39918987dff2b8ad444fcfd1\n"
    },
    {
      "commit": "bc43b4c2f24fd03c0d0546895c97918c1736d9fb",
      "tree": "4b89014791d7e01d444c962a27e8c63bb3694990",
      "parents": [
        "a4b68908bdfefdf6c79a8b2c3d7bda00c543532f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 22 09:30:50 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 29 09:47:48 2013 -0700"
      },
      "message": "RemoteControlClient can report current position, speed\n\nExtend RemoteControlClient class to support reporting the\n current playback position, and the playback speed.\nDefine listener for an application to receive new playback\n position to seek to (use of listener to be implemented).\nUpdate IRemoteControlDisplay implementations to new interface.\n\nbug 8120740\n\nChange-Id: I2654daeca1ac49713d325df8226dceb85943c020\n"
    },
    {
      "commit": "94eaab4a5ddd6db4bcbc8a1e65a4d8e60d1d1274",
      "tree": "76f55bd1ca1fcc4f307918e13faff9c471625017",
      "parents": [
        "5c3bd37ab7b18bd5c3ea4bfcb86cc0a30c10d534",
        "3ae30483777708ff3a4f59a4fa75c6a76213cc30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 28 14:29:21 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 28 14:29:21 2013 -0700"
      },
      "message": "am 3ae30483: am a19647d3: Merge \"Correct executable bit for source files [Take 2]\"\n\n* commit \u00273ae30483777708ff3a4f59a4fa75c6a76213cc30\u0027:\n  Correct executable bit for source files [Take 2]\n"
    },
    {
      "commit": "5c8f9b50bedd0209301af2ffdca659217bd97371",
      "tree": "78de24bc38f541cb08018916a125386c0000691d",
      "parents": [
        "2e73f5b8b7c941e68fec2d763d9455a8d6190e25"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 27 12:22:27 2013 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 27 12:24:58 2013 -0700"
      },
      "message": "Fix an action bar menu order of operations bug\n\nAs options menu invalidations in PhoneWindow are deferred, it was\npossible for a call to open the overflow menu (which involves an extra\nchance to prepare the menu) to happen before the pending menu\ninvalidation was handled. Process any pending menu invalidations\nbefore attempting to show the overflow menu in response to one of\nthese events.\n\nBug 7209308\n\nChange-Id: Id50f7f6ad5d3a631745207fa0bad8c356690e16c\n"
    },
    {
      "commit": "3e4a3ea2ff03a6a1f1f7a2bebac9a86fe6555754",
      "tree": "b46b983ad05f3d7b5389f569dd39ca63506a51ac",
      "parents": [
        "519ba7b10c4e0da3586aeeaa9696349f28313898"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Wed Mar 27 16:52:35 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Wed Mar 27 16:52:35 2013 +0530"
      },
      "message": "Correct executable bit for source files [Take 2]\n\nChange Ieb51bafb46c895a21d2e83696f5a901ba752b2c5 left out some\nfiles, this fixes them.\n\nChange-Id: Ia949a8581668836ea0251602e048f09c852f5169\n"
    },
    {
      "commit": "83a017b6b7c099d1a0293e5839be6477325aef06",
      "tree": "7ecdcd95f23900c35f2dc551bbb1690a6bf748db",
      "parents": [
        "e37478c4ebbe6e95ef3904b9f2fa0e93e1b258ac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 19 18:15:31 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 21 18:43:00 2013 -0700"
      },
      "message": "audio service: add config option for fixed volume\n\nAdd a boolean configuration option config_useFixedVolume indicating if\nstream volumes or master volume can be modified.\nIf the option is true, the AudioManager volume and mute APIs will be no ops and the\nvolumes will be maxed out.\nTo be consistent:\n- the ringer mode is forced to normal and cannot be modified\n- volume panel is never displayed\n- volume settings are not available\n- ringer mode global action is not displayed.\n\nThe default for this option if false.\n\nThis is useful for a class of devices intended for connection to a digital\naudio output only, where the volume is directly controlled on the audio sink.\n\nBug 8161458\n\nChange-Id: I2571d5ee79952ef0914d8fd1985816467a80adcd\n"
    },
    {
      "commit": "62a4858b7915d6d190bb0cdb806a733b02049f5a",
      "tree": "6d8b3aca5dedc26a922d5a923581632e4b94eeec",
      "parents": [
        "1eab5f26939748dea5e94bf019804a68d2a2b161",
        "95a6fdfe96dd43ba81fff7c9af82a512bfd4428d"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Mar 21 10:52:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 10:52:25 2013 +0000"
      },
      "message": "Merge \"Hide carrier string when emergency call button pressed.\" into jb-mr2-dev"
    },
    {
      "commit": "c81a5d632172721f71267f521f0d3e6dc3ae7e43",
      "tree": "2661c504c80c4ec96219c478b7febdee4099a43b",
      "parents": [
        "3be79f328a9b8817859679d6c39a509e897db845"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Feb 27 21:35:18 2013 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Mar 20 17:26:53 2013 -0700"
      },
      "message": "Fix bad merge in KeyguardHostView\n\nThis restores the fix detailed in Change-Id: I866d4b42493df3a6449d8eabc3ea140dc39dac57\n\nChange-Id: Ibe75afd7a612cf96a56e5815a198c2047c7ff5bd\n"
    },
    {
      "commit": "95a6fdfe96dd43ba81fff7c9af82a512bfd4428d",
      "tree": "796535f8a18d4c6af9ded0e88ca5114ef16809d6",
      "parents": [
        "ec3928bf0993e13fb82c65ac26a4d70f5bc6c5e4"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Mar 20 15:38:18 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Wed Mar 20 15:38:18 2013 -0400"
      },
      "message": "Hide carrier string when emergency call button pressed.\n\nThe emergency call button area overlaps the carrier text area,\nwhich is only noticeable when pressed/highlighted.\n\nSmoothly hide the carrier text when the emergency call button is\npressed.\n\nBug:8424348\nChange-Id: I78ba97739d58cc7f974e36dca81cfcd42703d3fe\n"
    },
    {
      "commit": "8f09fd2e3123c7713d50886dc3745d330a1879c5",
      "tree": "cefd3a7b6536a26195f091865843b57421f4f408",
      "parents": [
        "a35d380bac61804551d4927df9595980373d2eff"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Mar 14 19:04:28 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 19 16:59:29 2013 -0700"
      },
      "message": "Use persistent IRCD in KeyguardUpdateMonitor to show/hide music\n\nNow that we can have multiple IRemoteControlDisplays, create a\npersistent one in KeyguardUpdateMonitor so we can more efficiently\nshow and hide the music controls in keyguard.\n\nUpdate after review: get the current state from KeyguardUpdateMonitor\n*before* the first call to showApprpriateWidgetPage().  This fixes\na flash that was sometimes seen when transitioning between orientations.\n\nFixes bug 7517659\n\nChange-Id: I1b7b6f4222a99891ec06d6b6fd779dd0b86cc367\n"
    },
    {
      "commit": "03eca859067ac0d4e419305de8ab0fdc03b4210f",
      "tree": "d53d78ad97430b38b98849305b45a2c9c8b5899f",
      "parents": [
        "7534707b34ad7f2c8d3954d0fe8d2e6e7fcb2fc6"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Mar 14 14:21:04 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Mar 14 15:23:35 2013 -0400"
      },
      "message": "Enable back button in keyguard security account mode.\n\nOtherwise hitting \"Forgot Pattern\" traps you in account mode.\nAvoid the known case where account is not backup (if permanently\nlocked).\n\nBug: 8381295\nChange-Id: Ifda28eec6d0609e822b210831ff0ea0ec6cb22b1\n"
    },
    {
      "commit": "6d4dac74235972035a3a9109a4224e04a88039cd",
      "tree": "23629bc556f7c63ae4344af8056416a555200984",
      "parents": [
        "ad7a1d564dcaa560f59d3f44ff32aef6fbaabba3",
        "450a3a1697db810364cf7c5e7ea0f4d8c3000732"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Mar 14 00:00:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 14 00:00:15 2013 +0000"
      },
      "message": "Merge \"Fix bug where Keyguard\u0027s emergencydialer wasn\u0027t being launched with a userid.\" into jb-mr2-dev"
    },
    {
      "commit": "450a3a1697db810364cf7c5e7ea0f4d8c3000732",
      "tree": "612c9a90a17df9a2e13bd327ec28048b85a622b7",
      "parents": [
        "ae19d2cac826e6b3ac17bc7849e2095c3c2ff27e"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 12 18:54:44 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 12 18:54:44 2013 -0700"
      },
      "message": "Fix bug where Keyguard\u0027s emergencydialer wasn\u0027t being launched with a userid.\n\nFixes bug 8374423\n\nChange-Id: Iafbcefa431105202b68b3444cb1b42271fe0ccda\n"
    },
    {
      "commit": "8e26cd868756ab4c937fc8734630339dd64a269a",
      "tree": "933bf8d8540775bbff36cba3557496ec7a70daee",
      "parents": [
        "ae19d2cac826e6b3ac17bc7849e2095c3c2ff27e"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 12 18:45:28 2013 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 12 18:45:28 2013 -0700"
      },
      "message": "Prevent momentary switch of keyguard to landscape\n\nThis fixes a bug where keyguard was created without setting\nthe preferred orientation.  The result is it would temporarily\nassume the orientation of the device after being hidden.\n\nThe fix sets the flag when the keyguard view hierarchy is created\nrather than when visibility changes.\n\nFixes bug 8124979\n\nChange-Id: Ic54a185e4f51f79f2bb7fbc5ffc6992641e89132\n"
    },
    {
      "commit": "9e589b941b16413ecc8286d05f33637d0b5d1dbb",
      "tree": "3ccc7e4d637bf9576fc970f188efbbbf8a4c7fe4",
      "parents": [
        "4a5700556191c835116ec2a6997a4f16f464ac9d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 08 14:30:10 2013 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 08 14:30:10 2013 -0800"
      },
      "message": "Keyguard remote control display artwork size\n\nUpdate the album art bitmap size to the sent to the IRemoteControlDisplay of\n Keyguard on layout size changes.\n\nChange-Id: I178eba8cbff3d4ffb5232318469c43d95da2f11f\n"
    },
    {
      "commit": "d6a3e485b58e23808b44b8f2374e67e891cfae05",
      "tree": "08c78b090ce8f16969d205dae182a5e3622a54e7",
      "parents": [
        "0af1c59762d0cad2ef9755b15217a253cbb32005",
        "df7221ced3b7cd807f14e84c302fc09fd659fd68"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 28 22:14:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 28 22:14:48 2013 +0000"
      },
      "message": "Merge \"Unify normal and overlay action bar layouts.\" into jb-mr2-dev"
    },
    {
      "commit": "df7221ced3b7cd807f14e84c302fc09fd659fd68",
      "tree": "2e5cdc00c406f577492a7168580fa6c127b0a1f4",
      "parents": [
        "d0d209ed4d6280b6e1203eebe823f04f9db766c0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 26 14:53:55 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 27 18:27:42 2013 -0800"
      },
      "message": "Unify normal and overlay action bar layouts.\n\nSwitch the action bar to always use the overlay layout, and\nmake it smarter to do the right thing depending on whether the\naction bar is in overlay mode or not.\n\nThis allows apps to use the system UI magic flags without\nhaving to worry about whether the action bar is configured\nin overlay mode or note -- just select a stable layout and it\nwill automatically go into overlay mode.\n\nIn the future this should also allow us to simplify the action\nbar code, since it is all sitting on one common implementation.\nFor example, much of the logic in ActionBarImpl can be moved\nto the root action bar layout, and that layout can be optimized\nto do custom layout with all of the known elements it has.\n\nAlso fixed a little bug in the performance tests.\n\nChange-Id: Iec0c0c0699754f0d1ce37402d786b4966e052a56\n"
    },
    {
      "commit": "c7288579c788c9c8863ec63561282a3e11006b65",
      "tree": "833b7472216997968a6391425ca1ef7332c40469",
      "parents": [
        "7e112d51c4d203e4e3b2b875dc7c8457e1d9e056",
        "7f3a53a447d40db36f8f0c2b4c8c7305c5dd4429"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@android.com",
        "time": "Wed Feb 27 20:09:27 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 27 20:09:27 2013 +0000"
      },
      "message": "am 7f3a53a4: am 7b69e401: Merge \"Fix starting window memory leak\"\n\n* commit \u00277f3a53a447d40db36f8f0c2b4c8c7305c5dd4429\u0027:\n  Fix starting window memory leak\n"
    },
    {
      "commit": "c4aad01cbbb69c916ef323693e1fd0560b0eccba",
      "tree": "20f636eb690f976e9f83ec0a23e6ac991776b08b",
      "parents": [
        "fb6806570911851fb8cbaaf5bdf275a89f3c3ef4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 22 15:05:25 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 22 19:14:37 2013 -0800"
      },
      "message": "Formalize overscan metrics.\n\nThe window manager now maintains and reports a new formal\n\"overscan insets\" for each window, much like the existing\ncontent and visible insets.  This is used to correctly\nposition the various UI elements in the various combination\nof layout options.  In particular, this allows us to have\nan activity that is using fitSystemWindows to have the content\nof its UI extend out to the visible content part of the screen\nwhile still positioning its fixed UI elements inside the\nstandard content rect (and the entire window extending all\nthe way into the overscan area to fill the screen as desired).\n\nOkay, maybe that is not written so clearly.  Well, it made\nmy head hurt too, so suffer!\n\nThe key thing is that windows now need to know about three\nrectangles: the overall rectangle of the window, the rectangle\ninside of the overscan area, and the rectangle inside of the\ncontent area.  The FLAG_LAYOUT_IN_OVERSCAN option controls\nwhether the second rectangle is pushed out to fill the entire\noverscan area.\n\nAlso did some improvements to debug dumping in the window\nmanager.\n\nChange-Id: Ib2368c4aff5709d00662c799507c37b6826929fd\n"
    },
    {
      "commit": "3c1743705c4df816089e07a17753c6043b4d8e66",
      "tree": "dd68b3b869a0b24bac79d713af19eeba57f3e668",
      "parents": [
        "7a7360ad528576d560aa13fbb4e81740b2c425b2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Feb 21 17:54:37 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Feb 22 10:44:52 2013 -0800"
      },
      "message": "Create rotation animation modes.\n\nAllow fullscreen windows to specify crossfade or jumpcut animations\nthat override the default rotation animation. Only if the incoming\nand outgoing topmost windows are fullscreen and both specify the\nsame animation to use.\n\nFixes bug 8182773.\n\nChange-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf\n"
    },
    {
      "commit": "a75a883fe9ea1790803148f0a561473073e3f264",
      "tree": "a76a69d684a9643db3e22b72155aeb849c85a7f5",
      "parents": [
        "7a60c43d874bd047ea4b93b94c9b8771ea5739cc"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Feb 07 16:53:32 2013 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Feb 20 15:41:14 2013 -0800"
      },
      "message": "Add explicit userId to AppWidget binder calls\n\nKeyguard currently relies on being in the system process to grab the\ngiven user\u0027s widgets.  When we split keyguard into a new process,\nit will need to have access to user-specific info to instantiate a\nspecific user\u0027s widgets.  In order to accomplish this, we add an\nexplicit userid to each binder call as well as new permission\ncheck to allow keyguard access.\n\nThis also fixes a potential race condition of having an incorrect user id\ndue to an async call to change the user.  Every binder call now has a specific\nuser id. The user id is either the calling process user\u0027s id or an explicit\none passed by applications like keyguard. It is created once when an\nAppWidgetManager is instantiated and remains for the lifetime of the object.\n\nFixed bug where widgets sometimes didn\u0027t show up for secondary users.\n\nMoved permission check in AppWidgetService into getImplForUser()\n\nRefactored to use userid from context associated AppWidgetManager instance.\n\nClean up AppWidgetHost to use userId from Context.\n\nRemove redundant userId check in checkPermission since it\u0027s handled by\nActivityManager.handleIncomingUser()\n\nRemoved redundant userid check.\n\nUpload after rebase...\n\nChange-Id: Iae3e20f2b342c323bb58768b3d22051510f8268b\n"
    },
    {
      "commit": "313440842b2ba07afb35c2ea76fa1da2bf023764",
      "tree": "92b1b43a9cef3eb3bf7442060aff8f3abde5cf75",
      "parents": [
        "9943155b4db517deb72bd433d1cc9916bd84ae70"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 19 19:22:59 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 19 19:28:11 2013 -0800"
      },
      "message": "Overscan improvement: all apps extend to overscan area.\n\nIntroduce another new rectangle in window layout, the\nrestricted overscan region.  This is for windows that can\nbe in the restricted region (that is, full screen but with\nhard restrictions like the nav bar) but whose content can\nbe adjusted for the overscan constraints.\n\nIn other words, normal application windows now always extend\ninto the overscan region, and we push their content inside\nof it.\n\nChange-Id: Ibccf3d7f144912d49de3fc497c1ec2e8e0b7f714\n"
    },
    {
      "commit": "f9b9ead5d4f7bee34ec8a6b083065b624a7f6809",
      "tree": "d8d57fc1368958ecfc7c2cb12991aa9ec231b1f1",
      "parents": [
        "32a4fd8e144e50166a543b006c6dc5c74558b70d",
        "fc2dbb2f3a148ee90727c4319adf56c04002f3fa"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Tue Feb 19 22:10:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 19 22:10:48 2013 +0000"
      },
      "message": "Merge \"Fix bug with clock when keyguard widgets disabled\""
    },
    {
      "commit": "c652de8141f5b8e3c6bcf8916842b6e106413b1a",
      "tree": "d3be73e9b665365bdacd01cfc66faa24054f5a9c",
      "parents": [
        "736ef1e9dedbdd0c24e27f170034f2f869fd083f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 15 16:32:56 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 19 12:08:58 2013 -0800"
      },
      "message": "Implement display overscan support.\n\nThe window manager now keeps track of the overscan of\neach display, with an API to set it.  The overscan impacts\nhow it positions windows in the display.  There is a new set\nof APIs for windows to say they would like to go into the\noverscan region.  There is a call into the window manager to\nset the overscan region for a display, and it now has a\nconcept of display settings that it stores presistently.\n\nAlso added a new \"wm\" command, moving the window manager\nspecific commands from the \"am\" command to there and adding\na new now to set the overscan region.\n\nChange-Id: Id2c8092db64fd0a982274fedac7658d82f30f9ff\n"
    },
    {
      "commit": "fc2dbb2f3a148ee90727c4319adf56c04002f3fa",
      "tree": "e34cff504114cf860fc19593f9d897bc4af6eee6",
      "parents": [
        "00e592272ee44cba41832e3cf0a0ffb2de56585d"
      ],
      "author": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Feb 15 14:17:29 2013 +0100"
      },
      "committer": {
        "name": "Michael Jurka",
        "email": "mikejurka@google.com",
        "time": "Fri Feb 15 14:20:05 2013 +0100"
      },
      "message": "Fix bug with clock when keyguard widgets disabled\n\nClock widget no longer alternates between\nbold and non-bold versions\n\nBug: 7662061\n\nChange-Id: I866d4b42493df3a6449d8eabc3ea140dc39dac57"
    },
    {
      "commit": "d1443e9944cb344bd4b023dee173e6ea76269c87",
      "tree": "0f8e6dae4eaa30588291da53c3067013ae88e01d",
      "parents": [
        "c5748148c56e129e7b5cec7fac0921ce7967d054"
      ],
      "author": {
        "name": "Mathias Jeppsson",
        "email": "mathias.jeppsson@sonymobile.com",
        "time": "Fri Aug 24 15:25:32 2012 +0200"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Wed Feb 13 11:14:23 2013 +0100"
      },
      "message": "Fix starting window memory leak\n\nIf starting window is added to arrays like mViews in\nWindowManagerImpl.java, but not accepted by WindowManagerService,\nwe leak starting windows. To avoid leaking, remove the view\nfrom WindowManager.\n\nChange-Id: I4d98b883e9dfaf5e71bdece385643ba1b59b2633\n"
    },
    {
      "commit": "005f6f6077f34e0157598882fdc7ddb794cad84e",
      "tree": "8cbab69a3b4d255620b974a8cf019ddb58dc93b4",
      "parents": [
        "ea2f802928297c199c7b94dbbba867a8544e14ac",
        "eee29c445c38217e83bf421faf0f4075322079a6"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Feb 11 17:47:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 11 17:47:14 2013 +0000"
      },
      "message": "Merge \"Reset SensorEventListener when listener reenabled.\""
    },
    {
      "commit": "eee29c445c38217e83bf421faf0f4075322079a6",
      "tree": "b754dc2691831222d8417faff03ae0952f22adbe",
      "parents": [
        "2ceb08150512ca121acc474d94f84357f0bf0bbf"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jan 17 14:44:34 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Feb 11 09:46:08 2013 -0800"
      },
      "message": "Reset SensorEventListener when listener reenabled.\n\n- Following disable and reenable of the WindowOrientationListener\nthe state was the same as before. State should be reset to default.\n\n- Provide a Handler to the sensor task to deliver events on the\nsame Thread that WindowManagerPolicy operates on.\n\n- Expand lock protection to all of WindowOrientationListener.\n\n- Move WindowOrientationListener to policy package.\n\n- Make SensorEventListenerImpl non-static.\n\nFixes bug 7964531.\n\nChange-Id: I17cecf3d0b6d125cb3e4d7350c3adb3f62b684bd\n"
    },
    {
      "commit": "b428b0fc5b7cae2659fb9d414587865650389bce",
      "tree": "5dc4f7a67be701d91a79eb93b3d3e82959eaba86",
      "parents": [
        "64d41d7391e57886978e94e86cf01a167226dbfe"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Feb 07 12:19:15 2013 -0800"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Feb 07 12:19:15 2013 -0800"
      },
      "message": "Delay accessibility announcements in the keyguard.\n\nPrevents interruption of announcements when magnification is enabled.\n\nBug: 7895569\nChange-Id: I87ae1ee41ade2b59a0f1da8046c5bd23d0637da2\n"
    },
    {
      "commit": "c2293025a25e04b26bf53713d71f85fd9ca5e8e9",
      "tree": "0a29790db261fd32404ea9aecfba5bc53e81fe57",
      "parents": [
        "0984780bc7aed76018b9f88c0d9c3ce300bde39a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 06 23:14:49 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 06 23:59:56 2013 -0800"
      },
      "message": "App ops: track system windows, monitoring changes.\n\nChange-Id: I273e82bdad66ada3bf0f7ec9176bc304b9ee1ee8\n"
    },
    {
      "commit": "15a4620b18412d81c1f9102cfc85777dece41a8b",
      "tree": "98407c5448978630a940f3a72f5749ab28923a40",
      "parents": [
        "b377853123ff53974bb06ffc30e09db41a767c3a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 04 18:49:38 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 04 18:49:38 2013 -0800"
      },
      "message": "Fix graphics corruption in WiFi password dialogs\n\nThe ActionBarContextView popup window was set to use the \"layout in screen\"\nand \"inset decor\" flags even though it\u0027s not a fullscreen window. This was\ncausing the popup window to be created by taking up all the available space.\nBecause the views inside the popup window are wrap_content, this would cause\npart of the window to not be drawn and since the window is, correctly,\nmarked opaque, we would get random graphics corruption on screen (the user\nwould see the content of the tiles on a tiled renderer such as QCOM\u0027s.)\n\nThis change simply removes the two unnecessary flags from the popup window,\nforcing it to be created and laid out at the exact size it needs. It will\nbe properly positioned by the window manager underneath the status bar.\nAn interesting side effect is that the window is now smaller than before\n(since it doesn\u0027t extend underneath the status bar) which saves a bit of\nmemory.\n\nThe popup window also contains an unncessary black background behind the\naction bar context view. This helps in a way because it allows us to\ncreate an opaque window but it increases the required bandwidth to draw\nthat window. Given the benefits for SF it\u0027s probably best we keep the\nwindow the way it is for now.\n\nChange-Id: I4aeeb42a6232ff6b71811e766846d45635eb3365\n"
    },
    {
      "commit": "f265ea9d8307282ff1da3915978625a94fc2859e",
      "tree": "4e92b5de30239c1808a395cb49c9b17fe28ccffb",
      "parents": [
        "7a4ecc957d437ad4914988edc7593570f1e43f79"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 31 15:00:51 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 01 15:14:29 2013 -0800"
      },
      "message": "App ops: vibration, neighboring cells, dialing, etc.\n\nImprove handling of vibration op, so that apps are\nbetter blamed (there is now a hidden vibrator API that\nsupplies the app to blame, and the system now uses this\nwhen vibrating on behalf of an app).\n\nAdd operation for retrieving neighboring cell information.\n\nAdd a new op for calling a phone number.  This required\nplumbing information about the launching package name through\nthe activity manager, which required changing the internal\nstartActivity class, which required hitting a ton of code that\nuses those internal APIs.\n\nChange-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07\n"
    },
    {
      "commit": "d0fd54648ca6249f56cf469c57181b5a7bbb71d0",
      "tree": "4c710f5a98e913d87290a312b89a46370847ed60",
      "parents": [
        "5924dc4d7a42d04011d2e67aa3f9e28b7d940681",
        "80943d8daa6ab31ab5c486d57aea406aa0730d58"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "message": "Merge \"Adding UI test automation APIs.\""
    },
    {
      "commit": "a1deeba3251620706ed19d18e0dc1dc6afb08736",
      "tree": "ac6ab107439d6351b5e1a69c2c3d2c64ca9abe22",
      "parents": [
        "29e4aa7abe6b0c62f31fb23b8572cd5b91f08f5c",
        "c9ebea79b425fb0550a553afff2e54a33c431326"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Jan 28 22:32:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 28 22:32:45 2013 +0000"
      },
      "message": "Merge \"Add plumbing for Recent Apps keycode\""
    },
    {
      "commit": "f9c5e0fe837a3090820da502ecaabc5accc00ace",
      "tree": "bbc72079c958f69d9906f4a4ae803dd88fcf8083",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "message": "Add new API to propagate contextual data to the assist action\n\nWhen launching an assist, we have a new API allowing the\ncurrent foreground activity/application to provide additional\narbitrary contextual information that is stuffed in the\nassist intent before it is launched.\n\nChange-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4\n"
    },
    {
      "commit": "c9ebea79b425fb0550a553afff2e54a33c431326",
      "tree": "1bc4dc6d5a2533e503dbe1064a16c1aa35c3d792",
      "parents": [
        "f35a55769ad81fb138e23f829b40feabc2ec7fc0"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Jan 16 19:25:02 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jan 22 21:26:18 2013 -0800"
      },
      "message": "Add plumbing for Recent Apps keycode\n\nChange-Id: Id1bd8deced1be924cf9b3bbbf19e689b6b759061\n"
    },
    {
      "commit": "80943d8daa6ab31ab5c486d57aea406aa0730d58",
      "tree": "cb7738eff465941484aac3eb6ba15ba365aea576",
      "parents": [
        "64cae1a608c196c2bd1d9e7cfd2a1632fd0e5b83"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 02 10:25:37 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 22 17:56:53 2013 -0800"
      },
      "message": "Adding UI test automation APIs.\n\nThis change adds APIs support for implementing UI tests. Such tests do\nnot rely on internal application structure and can span across application\nboundaries. UI automation APIs are encapsulated in the UiAutomation object\nthat is provided by an Instrumentation object. It is initialized by the\nsystem and can be used for both introspecting the screen and performing\ninteractions simulating a user. UI test are normal instrumentation tests\nand are executed on the device.\n\nUiAutomation uses the accessibility APIs to introspect the screen and\na special delegate object to perform privileged operations such as\ninjecting input events. Since instrumentation tests are invoked by a shell\ncommand, the shell program launching the tests creates a delegate object and\npasses it as an argument to started instrumentation. This delegate\nallows the APK that runs the tests to access some privileged operations\nprotected by a signature level permissions which are explicitly granted\nto the shell user.\n\nThe UiAutomation object also supports running tests in the legacy way\nwhere the tests are run as a Java shell program. This enables existing\nUiAutomator tests to keep working while the new ones should be implemented\nusing the new APIs. The UiAutomation object exposes lower level APIs which\nallow simulation of arbitrary user interactions and writing complete UI test\ncases. Clients, such as UiAutomator, are encouraged to implement higher-\nlevel APIs which minimize development effort and can be used as a helper\nlibrary by the test developer.\n\nThe benefit of this change is decoupling UiAutomator from the system\nsince the former was calling hidden APIs which required that it is\nbundled in the system image. This prevented UiAutomator from being\nevolved separately from the system. Also UiAutomator was creating\nadditional API surface in the system image. Another benefit of the new\ndesign is that now test cases have access to a context and can use\npublic platform APIs in addition to the UiAutomator ones. Further,\nthird-parties can develop their own higher level test APIs on top\nof the lower level ones exposes by UiAutomation.\n\nbug:8028258\n\nAlso this change adds the fully qualified resource name of the view\u0027s\nid in the emitted AccessibilityNodeInfo if a special flag is set while\nconfiguring the accessibility service. Also added is API for looking\nup node infos by this id. The id resource name is relatively more stable\ncompared to the generaed id number which may change from one build to\nanother. This API facilitate reuing the already defined ids for UI\nautomation.\n\nbug:7678973\n\nChange-Id: I589ad14790320dec8a33095953926c2a2dd0228b\n"
    },
    {
      "commit": "d4fe37bee7c7433f32c23cee100c6e05ba0f3b2b",
      "tree": "76ea7e540dfa63062ae6fa6e4920dccb40c0aa14",
      "parents": [
        "d05efe727b61e321a6c2720166988d52629c050c",
        "27b89e6658a0d233a53f5d7ca20dc57fec82d955"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 16 23:26:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 16 23:26:30 2013 +0000"
      },
      "message": "Merge \"Rename bindService to bindServiceAsUser to follow convention.\""
    },
    {
      "commit": "27b89e6658a0d233a53f5d7ca20dc57fec82d955",
      "tree": "3bc24a15905546e7ea38fb37994d67414349b3db",
      "parents": [
        "57b59e025bc10056daf42cd741b626843ff344f5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 16 12:30:11 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 16 12:30:11 2013 -0800"
      },
      "message": "Rename bindService to bindServiceAsUser to follow convention.\n\nThis is for the multi-user version of bindService, not the original.\n\nChange-Id: Ib2de35941196accf387b1a276a77e6f9af805ec0\n"
    },
    {
      "commit": "56018e577edada2721f4772bcec9274d043a06e7",
      "tree": "c9e1927dc205d02ade16ade86e8707ea58372a4c",
      "parents": [
        "8e303cc5dd4860b6050d5725ce60ca7e6fb00c7b"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jan 15 10:59:43 2013 -0500"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jan 15 17:14:48 2013 -0500"
      },
      "message": "port system ui over to new ICU date formatting API.\n\nBug: 7288134\nChange-Id: Icea2ff96fd91c6db66b3aad6f6653b21203351b1\n"
    },
    {
      "commit": "58f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91",
      "tree": "54218ed770e35a0daf94e7ea00a0491d5cbcad89",
      "parents": [
        "26bf4d9020dcb16327e91044cda78b3baef723b5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 11 15:40:36 2013 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 11 15:40:36 2013 -0800"
      },
      "message": "Migrate BUGREPORT_IN_POWER_MENU from Secure to Global settings\n\nBug 7273591\n\nChange-Id: I5790f9d18ddf22282144be1c2d96dd4d706caa14\n"
    },
    {
      "commit": "ab82e35a59fc8ebb771c4e69343d1041542a4b83",
      "tree": "ee52bb2b02f01b552ed2c66ab86c682fb36b403c",
      "parents": [
        "3fef446a149408378a4cb93a4773bec778f6161d",
        "06c5f8a768bcd4f7b6441f7525bd5c639399fc76"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jan 11 10:55:32 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 11 10:56:40 2013 -0800"
      },
      "message": "Merge \"Examine widget hierarchy to find clocks.\""
    },
    {
      "commit": "06c5f8a768bcd4f7b6441f7525bd5c639399fc76",
      "tree": "9a8efbbc6f0e4a8c711d9d4d6d24a8cd5369e28c",
      "parents": [
        "ee49a3a007b9eb63bcb27eac492060b50ff75ce7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Dec 04 09:53:44 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jan 11 10:49:19 2013 -0800"
      },
      "message": "Examine widget hierarchy to find clocks.\n\nWhen switching to a widget, examine its hierarchy to determine if it\ncontains TextClocks that show hour and minute for the local timezone.\nIf so, hide the status bar clock.  Doesn\u0027t fix closing walls.\n\nBug: 7667638\nChange-Id: I1e2c40345c9e5eb0193efd70838c7ca9f779190b\n"
    },
    {
      "commit": "9e6575bc52f421484fe262aff224db247e70d830",
      "tree": "71536052f31d3020f54557ca794cc3c55455889c",
      "parents": [
        "79cc4a2ab0130acca83de5945a43adf9925beac1",
        "854458f4d52937f9a1385559d759bd8019eb3294"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 19:01:26 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 09 19:01:26 2013 -0800"
      },
      "message": "am 854458f4: am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n\n* commit \u0027854458f4d52937f9a1385559d759bd8019eb3294\u0027:\n  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n"
    },
    {
      "commit": "e62fa825794967c2067be86e8b57b83f4b82ee1c",
      "tree": "e61d6cd3995b98d28fb26c24becd34a267176f85",
      "parents": [
        "d29f2d263af9a3017799d3098ed208a49c5ecc69"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 18:31:37 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 18:51:51 2013 -0800"
      },
      "message": "Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n\nThe volume panel now forces us out of the UI modes while it\nis up.\n\nChange-Id: If39fa33b1c52579bf5d376ce4722408cee3ca951\n"
    },
    {
      "commit": "891d3fbb15683e72432af16e571f41f566d5fdf0",
      "tree": "6165d3ec67c0f7d4f82c79e1ac937ada7c44034f",
      "parents": [
        "82e60952f2cbd89b8d050dd17bb6bc9652570368"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 18:31:37 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 18:31:37 2013 -0800"
      },
      "message": "Fix issue #7966357: Super lights out mode vs. volume dialog\n\nThe volume panel now forces us out of the UI modes while it\nis up.\n\nChange-Id: I25f29af5b6518aba695b64a75977ae240b742118\n"
    },
    {
      "commit": "995c25bbcb0116eaa4010fb2635ea8ad00c0441c",
      "tree": "e4f3ef756893accd206eb56c356037557d64e6ee",
      "parents": [
        "4cef9969f5455def9c902457558193679ead9764",
        "f41c61bc1551c98c681fe3e6ae197fefed2bc856"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 08 14:44:41 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 08 14:45:11 2013 -0800"
      },
      "message": "Merge \"split active user animation across switch.\""
    },
    {
      "commit": "f41c61bc1551c98c681fe3e6ae197fefed2bc856",
      "tree": "cdf0a1c9535b853b65b0c38ac76e05ea7a57dc9d",
      "parents": [
        "0ada5d656de4c1ac76bc06221a1f5e561e50e258"
      ],
      "author": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Thu Nov 29 15:19:54 2012 -0500"
      },
      "committer": {
        "name": "Chris Wren",
        "email": "cwren@android.com",
        "time": "Tue Jan 08 16:35:13 2013 -0500"
      },
      "message": "split active user animation across switch.\n\nBug: 7626087\nChange-Id: If743a4be498c624d2c4ec91989648e8be754ee4b\n"
    },
    {
      "commit": "4b71aa1f8a1a3b7189fd29241ea7c594ce01623c",
      "tree": "2df032d5fff2a76836cb210c2e29c8f1259563a0",
      "parents": [
        "ecba50e528b99b581a9d1016bb8790709363699d"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Dec 27 17:20:01 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jan 07 23:38:57 2013 -0800"
      },
      "message": "Move app transition constants\n\nMove app transition constants from WindowManagerPolicy to\nAppTransition.\n\nChange-Id: I8ae6c4d0da1db826c44eb4ea0c6b85016b50b1a3\n"
    },
    {
      "commit": "8ca2fc10ceac645a04c8223947df03f359441115",
      "tree": "e9a31e536381e5e1dd0eaa486fb535b959754e07",
      "parents": [
        "cac9bbd7f56904f95ecd4805b135dc23c9979e99"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Dec 11 17:37:53 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 02 17:07:56 2013 -0800"
      },
      "message": "Remove unused keyguard code\n\nThis change removes the old keyguard code because it\u0027s obsolete and doesn\u0027t run\nanymore.\n\nChange-Id: I8ed93f507378a17cf834d2ee9284c098eb8efffe\n"
    },
    {
      "commit": "a2303750fb03839e9c7584a5f573f166465be214",
      "tree": "47885ebd0c146b88c0fdcf2c3fd8819c346bf580",
      "parents": [
        "1d25430c9552175d694df289fdc32964772e3769",
        "0bf6ec9e377f9fafb67a36f7fb54d3f6676634fc"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 19 16:39:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 19 16:40:18 2012 -0800"
      },
      "message": "Merge changes I1dfe21e5,Ia0218bf8\n\n* changes:\n  Clean up warnings.\n  Minor refactorings.\n"
    },
    {
      "commit": "0bf6ec9e377f9fafb67a36f7fb54d3f6676634fc",
      "tree": "b0eb5cc9b7ff7dd8c0bbc585f31c2d94a7737d5c",
      "parents": [
        "2268e7ee5c450c45121ebd5796221592c087ed73"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Dec 18 08:33:27 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Dec 18 10:03:21 2012 -0800"
      },
      "message": "Clean up warnings.\n\nChange-Id: I1dfe21e5f64364c90565b594e28074cabe7daa64\n"
    },
    {
      "commit": "5d8961e75685674f46ca376ea8ea13ce02dd292b",
      "tree": "0708f29a4d65549846ff60fb913d26daac0a654d",
      "parents": [
        "7a3d56e1214bb36dee7ef85678c893d01587216f",
        "507ea24b8f881f8af42393a0512c88cf7397edb9"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Dec 15 15:10:30 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 15 15:10:30 2012 -0800"
      },
      "message": "am 507ea24b: am ffdc7aed: Merge \"avoid crashing system serer process\"\n\n* commit \u0027507ea24b8f881f8af42393a0512c88cf7397edb9\u0027:\n  avoid crashing system serer process\n"
    },
    {
      "commit": "507ea24b8f881f8af42393a0512c88cf7397edb9",
      "tree": "9f56421e7fcf452d9ca31816db700fd7fecb7d0f",
      "parents": [
        "17a890729e430503c7a906073dbde570da34c377",
        "ffdc7aed5ec8f38706ddfad02d3df05493351083"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat Dec 15 14:57:40 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 15 14:57:40 2012 -0800"
      },
      "message": "am ffdc7aed: Merge \"avoid crashing system serer process\"\n\n* commit \u0027ffdc7aed5ec8f38706ddfad02d3df05493351083\u0027:\n  avoid crashing system serer process\n"
    },
    {
      "commit": "545252f4fde6fbb70b07e97a120c7d1405758017",
      "tree": "e3238e5262e77cd91751c2302c30d828c539c55c",
      "parents": [
        "224333c03f1a9e14fce09207dc15d06365bf917b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Dec 10 18:29:24 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Dec 14 16:27:27 2012 -0800"
      },
      "message": "Refactoring of the screen magnification feature.\n\n1. This patch takes care of the case where a magnified window is covering an unmagnigied\n   one. One example is a dialog that covers the IME window.\n\nbug:7634430\n\n2. Ensuring that the UI automator tool can connect and correctly dump the screen.\n\nbug:7694696\n\n3. Removed the partial implementation for multi display magnification. It adds\n   unnecessary complexity since it cannot be implemented without support for\n   input from multiple screens. We will revisit when necessary.\n\n4. Moved the magnified border window as a surface in the window manager.\n\n5. Moved the mediator APIs on the window manager and the policy methods on the\n   WindowManagerPolicy.\n\n6. Implemented batch event processing for the accessibility input filter.\n\nChange-Id: I4ebf68b94fb07201e124794f69611ece388ec116\n"
    },
    {
      "commit": "ffdc7aed5ec8f38706ddfad02d3df05493351083",
      "tree": "c3c779b6e7b3742ccddb8e6032bcbd02a827757d",
      "parents": [
        "bf8de6a349e19b32a1577080a9d8bb7f92b2301f",
        "7d4adea7b4c5c27c53de9592a14193ea296873a1"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Dec 14 09:04:30 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 09:04:30 2012 -0800"
      },
      "message": "Merge \"avoid crashing system serer process\""
    },
    {
      "commit": "ae44659f30ddaba67581fbdf9c9255ac982d45ab",
      "tree": "b0c94e079857a96ea1d6961f27bb9d2ba3a8c65c",
      "parents": [
        "28db1975802374985f2cb8bf4aedc7f5a9e81a22"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Dec 06 19:05:05 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 12 10:09:19 2012 -0800"
      },
      "message": "Call adjustWallpaperWindowsLocked once per pass.\n\nAlso refactor a few methods and improve logging.\n\nChange-Id: Ic54a1ff99f6de732b31cda5c06d36e8de01a269c\n"
    },
    {
      "commit": "0386410ead3d0a816310685796c8f2c2a7d46f93",
      "tree": "1080d4389f5223f189373ec5b6ee0c312880fedc",
      "parents": [
        "f90b03771d72279c3194ac80bbff156a1a4a8c1a",
        "5b09fcc71664383ba73eb2074e52141d5e6abf9e"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Dec 06 23:22:27 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 06 23:22:27 2012 -0800"
      },
      "message": "am 5b09fcc7: am 946f6ab4: am 9819a617: Merge \"Fix password field focus in keyguard\" into jb-mr1.1-dev\n\n* commit \u00275b09fcc71664383ba73eb2074e52141d5e6abf9e\u0027:\n  Fix password field focus in keyguard\n"
    },
    {
      "commit": "f90b03771d72279c3194ac80bbff156a1a4a8c1a",
      "tree": "42ede522bd16a1c596c88ed328126c7c7571af61",
      "parents": [
        "fc46484aa17d5647abe044e69f0353635b0f2b58",
        "f882bc336794909b4c145462cfedc8e28a8494ec"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu Dec 06 23:22:23 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 06 23:22:23 2012 -0800"
      },
      "message": "am f882bc33: am a1bc0979: am 0db59a85: Revert \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\"\n\n* commit \u0027f882bc336794909b4c145462cfedc8e28a8494ec\u0027:\n  Revert \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\"\n"
    },
    {
      "commit": "5b09fcc71664383ba73eb2074e52141d5e6abf9e",
      "tree": "02b39d2bc5c34bcaa9d0e432f76b67ca9c501cb0",
      "parents": [
        "f882bc336794909b4c145462cfedc8e28a8494ec",
        "946f6ab44048138c03f9bcf93451322b4397f8f9"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Dec 06 18:59:24 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 06 18:59:24 2012 -0800"
      },
      "message": "am 946f6ab4: am 9819a617: Merge \"Fix password field focus in keyguard\" into jb-mr1.1-dev\n\n* commit \u0027946f6ab44048138c03f9bcf93451322b4397f8f9\u0027:\n  Fix password field focus in keyguard\n"
    },
    {
      "commit": "f882bc336794909b4c145462cfedc8e28a8494ec",
      "tree": "4aa6ccc45b3e66d3246963e24ca83b7246877171",
      "parents": [
        "1527cc19ed4934d0c60a275f8a3c8617baf791fe",
        "a1bc0979a8cd7389ef4f7f4800fc58cd987ffee2"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Thu Dec 06 18:59:19 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 06 18:59:19 2012 -0800"
      },
      "message": "am a1bc0979: am 0db59a85: Revert \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\"\n\n* commit \u0027a1bc0979a8cd7389ef4f7f4800fc58cd987ffee2\u0027:\n  Revert \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\"\n"
    },
    {
      "commit": "4bef5ac8c7ee231678e679aba6ed80715590580c",
      "tree": "bee07491f6ba5549b9171833f5dd067561599014",
      "parents": [
        "f94942f1b947c0d56bac0ffcc7ccfe95c443ebe7",
        "2991fa35a55d4ff9971b9f9c1bac484efa561421"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Dec 06 09:35:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 06 09:35:40 2012 -0800"
      },
      "message": "Merge \"Wire KEYCODE_SYSRQ up to take screenshot.\""
    },
    {
      "commit": "2991fa35a55d4ff9971b9f9c1bac484efa561421",
      "tree": "192832a9009d5fa783161942a6c37492caeec8e0",
      "parents": [
        "e81f55bae83559a39778fdd6a3e0b031c65dc8f9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Dec 05 18:06:43 2012 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Dec 05 18:07:05 2012 -0800"
      },
      "message": "Wire KEYCODE_SYSRQ up to take screenshot.\n\nChange-Id: If7eee811d43ac88c7d206c61f264c3e5f63aa5b3\n"
    },
    {
      "commit": "9819a61745b8eea3b3b7fa3af2c1ba017192cc36",
      "tree": "b92c38e3eb3e77f593bf08694cbd4af5c64eddf1",
      "parents": [
        "0db59a856f9b4a6ae53854a88fea3a3675d572fd",
        "42df15e93d3eb70846270b26c024f1575e82fa06"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Dec 05 16:37:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 16:37:52 2012 -0800"
      },
      "message": "Merge \"Fix password field focus in keyguard\" into jb-mr1.1-dev"
    },
    {
      "commit": "0db59a856f9b4a6ae53854a88fea3a3675d572fd",
      "tree": "93aca63083c3747e9d8e3eb8ae0e695943f2e90e",
      "parents": [
        "0f3af41fbc2845c61676d3dac2c73a10b434be33"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Dec 05 15:58:43 2012 -0800"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Dec 05 16:04:23 2012 -0800"
      },
      "message": "Revert \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\"\n\nThis reverts commit 6cbc2e81742039969e081a9eed02060fb8789e25.\n"
    },
    {
      "commit": "42df15e93d3eb70846270b26c024f1575e82fa06",
      "tree": "6b7e78684ef06bc3578bacd73e6ddba5c8f3dd2e",
      "parents": [
        "7b0855715bc6cb14e3ca67d815915d2172f0bc12"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Dec 05 15:15:00 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Dec 05 15:15:00 2012 -0800"
      },
      "message": "Fix password field focus in keyguard\n\nThis fixes a bug introduced in Change-Id: I34b7db402401a824f463d35d7546c05dc2979243 where\nthe top-most view was allowed to capture focus in order to ensure the device handled volume\nkey events.\n\nThis resolves the issue by restoring previous behavior and ensures we still handle media keys,\nregardless of focus.\n\nFixes bug 7676996\n\nChange-Id: Id2d1200be81640e4b4b7b5e3a0af099d6fc2d259\n"
    },
    {
      "commit": "c1493e1a01c45b491071142eefb485c90f08d823",
      "tree": "984fa0e156d4f644d5192469e605831e56ba3869",
      "parents": [
        "8435d0e8ffe75d3fe49d3c730907ff571c59024d",
        "368ee53f25cdff7ea89293d2cc81e95816919369"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Dec 05 13:00:41 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 05 13:00:41 2012 -0800"
      },
      "message": "am 368ee53f: am f663cad2: am 6c58b155: Merge \"Make 3rd party lockscreen widgets work on secondary users\" into jb-mr1.1-dev\n\n* commit \u0027368ee53f25cdff7ea89293d2cc81e95816919369\u0027:\n  Make 3rd party lockscreen widgets work on secondary users\n"
    },
    {
      "commit": "a5c40b774cc83cdd7ad86200ada97b8648a8687e",
      "tree": "32664ef92d34faf1241e9c288067a29a26b0ffab",
      "parents": [
        "5fa2cad1620546cf6e7144c197c083d7e3bca7e6",
        "46a1a4b2febc504a1ceb5429ac329264b158929c"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Dec 05 12:23:27 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 05 12:23:27 2012 -0800"
      },
      "message": "am 46a1a4b2: am 8f90249d: am ca83e1d5: Merge \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\" into jb-mr1.1-dev\n\n* commit \u002746a1a4b2febc504a1ceb5429ac329264b158929c\u0027:\n  Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\n"
    },
    {
      "commit": "368ee53f25cdff7ea89293d2cc81e95816919369",
      "tree": "af3fa58df3ab0124681e54f3c6bef26e13f56bc4",
      "parents": [
        "6350cfb529b30af88a2bff42962ab111a0cf137b",
        "f663cad2248d5d38957f8e1408cd794c0de90202"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Dec 05 06:06:02 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 05 06:06:02 2012 -0800"
      },
      "message": "am f663cad2: am 6c58b155: Merge \"Make 3rd party lockscreen widgets work on secondary users\" into jb-mr1.1-dev\n\n* commit \u0027f663cad2248d5d38957f8e1408cd794c0de90202\u0027:\n  Make 3rd party lockscreen widgets work on secondary users\n"
    },
    {
      "commit": "6c58b155c3bdde355adb03b191e43d8eec089fb2",
      "tree": "031fb41e26417d7e3cd4f0c668aafebe40ae7f98",
      "parents": [
        "1cb5ad47a1137ffab0d935f186c5ea6645dd59e5",
        "94022e8997084be458a1faf46e72efab1d59e973"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Dec 05 05:44:55 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 05:45:00 2012 -0800"
      },
      "message": "Merge \"Make 3rd party lockscreen widgets work on secondary users\" into jb-mr1.1-dev"
    },
    {
      "commit": "e81f55bae83559a39778fdd6a3e0b031c65dc8f9",
      "tree": "6f7e5b673d3ca9bfa6454d37a00d3d7ea43e51a4",
      "parents": [
        "ac2b02386aafecf9a0877c6a9c457200c3f8faa7",
        "eac4be7ef28a9dfba9e6cc6d0501b4bd2146041a"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Dec 04 21:53:44 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 04 21:53:44 2012 -0800"
      },
      "message": "am eac4be7e: am 4fa27f31: am 80a90efc: Merge \"Fix ring volume issue by addressing focus regression in keyguard.\" into jb-mr1.1-dev\n\n* commit \u0027eac4be7ef28a9dfba9e6cc6d0501b4bd2146041a\u0027:\n  Fix ring volume issue by addressing focus regression in keyguard.\n"
    },
    {
      "commit": "46a1a4b2febc504a1ceb5429ac329264b158929c",
      "tree": "4fdea626290480723dfd4ce294e46aadccf66127",
      "parents": [
        "4cd6cef3af43d688d75b33c646fc158e837debd0",
        "8f90249de422b10f5661ac437dd57fc034ee6933"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Dec 04 16:35:02 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 04 16:35:02 2012 -0800"
      },
      "message": "am 8f90249d: am ca83e1d5: Merge \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\" into jb-mr1.1-dev\n\n* commit \u00278f90249de422b10f5661ac437dd57fc034ee6933\u0027:\n  Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\n"
    },
    {
      "commit": "94022e8997084be458a1faf46e72efab1d59e973",
      "tree": "ae057bc155e917bd490aecd545a4acba0cf7e4e9",
      "parents": [
        "b6b4f171ff38ccac833edb2a1ad7f725ed068d46"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Dec 04 11:05:39 2012 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Dec 04 16:25:38 2012 -0800"
      },
      "message": "Make 3rd party lockscreen widgets work on secondary users\n\nIf you install a lockscreen widget app on a secondary user, lockscreen fails to find it.\nThere were several places where the correct context and userId were required under the\ncovers - AppWidgetHost, AppWidgetHostView and RemoteViewsAdapter.\n\nSet the user id in the required places and use it to query the package information.\n\nBug: 7662835\nChange-Id: Ife482c8ab2a2e601650b7cfe2660e88d3b8f2050\n"
    },
    {
      "commit": "ca83e1d5410d12220d48b8c52ed06cfb52fb9868",
      "tree": "9709d599b4400127603620bf5a8f60df9fd0a3d9",
      "parents": [
        "49ed5da31d4f2d7c9f94bdace9f46c8514bcfad7",
        "06598bede5dd2d35ab625bdac6a403e6755dd2b4"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Dec 04 14:38:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 04 14:38:54 2012 -0800"
      },
      "message": "Merge \"Saving and restoring current page when rotating in lockscreen. (Bug 7568412)\" into jb-mr1.1-dev"
    },
    {
      "commit": "eac4be7ef28a9dfba9e6cc6d0501b4bd2146041a",
      "tree": "af23daeb50de8b8f685b932302eb13bf51ec152c",
      "parents": [
        "5cb09b7dc5b2a3bfa895bca5402af9edc8ec9d9a",
        "4fa27f314038620fd3c50170d2f8caebeb6005bb"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Dec 04 12:33:49 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 04 12:33:49 2012 -0800"
      },
      "message": "am 4fa27f31: am 80a90efc: Merge \"Fix ring volume issue by addressing focus regression in keyguard.\" into jb-mr1.1-dev\n\n* commit \u00274fa27f314038620fd3c50170d2f8caebeb6005bb\u0027:\n  Fix ring volume issue by addressing focus regression in keyguard.\n"
    },
    {
      "commit": "80a90efcbf32b30b886380c67585ddfb41c35437",
      "tree": "39ab2a166abeddeb3307501ee5b9cba2d2e75293",
      "parents": [
        "b6b4f171ff38ccac833edb2a1ad7f725ed068d46",
        "147f9568afe645d9bfb91f3037f5336d8a2482cc"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Dec 04 12:29:15 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 04 12:29:16 2012 -0800"
      },
      "message": "Merge \"Fix ring volume issue by addressing focus regression in keyguard.\" into jb-mr1.1-dev"
    },
    {
      "commit": "147f9568afe645d9bfb91f3037f5336d8a2482cc",
      "tree": "9777001561de5e90fca88e151cab25c9928c95ef",
      "parents": [
        "e431e6a352125f2c51507130cc64e3405625a7ec"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Dec 03 17:55:16 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Dec 03 18:48:52 2012 -0800"
      },
      "message": "Fix ring volume issue by addressing focus regression in keyguard.\n\nThis fixes a regression where ring volume can be changed in keyguard.\nBecause KeyguardHostView is now being re-created in onScreenTurnedOff(),\nit loses focus and the volume keys get handled by the fallback handler.\n\nThe fix is to ensure at least one child under KeyguardHostView has focus\nwhenever we re-create it.\n\nFixes bug 7546960\n\nChange-Id: I34b7db402401a824f463d35d7546c05dc2979243\n"
    }
  ],
  "next": "152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891"
}
