)]}'
{
  "log": [
    {
      "commit": "e20c9e0264190f94324197a8271cf03811a4ca58",
      "tree": "e482829d555d313e57ead50bc24102897dde9b36",
      "parents": [
        "182e5cf105aa71effbdee15628f020214b54774c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 11 14:20:19 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 11 17:54:12 2010 -0700"
      },
      "message": "Fix an event injection bug when the policy is bypassed.\n\nAdded the concept of a \"trusted\" event to distinguish between events from\nattached input devices or trusted injectors vs. other applications.\nThis change enables us to move certain policy decisions out of the\ndispatcher and into the policy itself where they can be handled more\nsystematically.\n\nCherry pick of b931a1b4 from gingerbread into master.\n\nChange-Id: I700a5f07b8b227878cea9437a289a45a245c0424\n"
    },
    {
      "commit": "481bbb9c11e640cc6b322bdb300f69f31ea011fe",
      "tree": "344bf01849d3086d0c5f2b40a25c834abc9f4381",
      "parents": [
        "c8cc6580ebec0a16c799a645e05a2b4e5cb066b2",
        "d208e709267f8af77690cb38dba2ae8e30ab5241"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 08 13:29:37 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 13:29:37 2010 -0700"
      },
      "message": "Merge \"Get rid of the global actions menu on tablets.\""
    },
    {
      "commit": "d208e709267f8af77690cb38dba2ae8e30ab5241",
      "tree": "822b9a50a30a8d28c2ab6f69abbb384326eedd2c",
      "parents": [
        "b8f69ab7c6628943dd04e32f9825f600453d7170"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 08 16:22:43 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 08 16:28:05 2010 -0400"
      },
      "message": "Get rid of the global actions menu on tablets.\n\nWe have the system tray for that stuff.  Make long press on power\ngo directly to the shut down confirmation dialog.  Make that dialog\nauto dismiss when the screen goes off.  Reword it when we\u0027re skipping\nthe global actions menu, because it feels too abrupt to say \"The\nphone will shut down\" when they haven\u0027t clearly pressed a button\nthat says shut down.\n\nChange-Id: I8c92a1362bd4ed242e6cd94c2dae6d9ff9c4c34d\n"
    },
    {
      "commit": "1657f43095bf455b9c9efdc5f9b9761e4b4cb189",
      "tree": "c3d9092c5416084c6450263181c75f5498e7b3e0",
      "parents": [
        "fe0ed4575e88d1786eb13eb942c5c0f0c4b43ac6",
        "4139b5505c1e07c56900aa72dd91a01e6b740f5f"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Oct 08 12:52:24 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 12:52:24 2010 -0700"
      },
      "message": "Merge \"Fix 3061025: Extend wave lockscreen timeout while grabbed.\""
    },
    {
      "commit": "4139b5505c1e07c56900aa72dd91a01e6b740f5f",
      "tree": "71b399aaa10c6e638d245dd1829386e4c542c81b",
      "parents": [
        "5ada6cb0591c1106e3591a3b7adcdc77a1322209"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Oct 07 18:01:32 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Oct 07 18:04:33 2010 -0700"
      },
      "message": "Fix 3061025: Extend wave lockscreen timeout while grabbed.\n\nThis fix extends the lockscreen timeout to 30s while the\nhandle is being held.  As a precaution, it will still timeout\nafter 30s of not completing the lock. Once the handle is\nreleased, the screen will go dark after 5s, which gives\nit enough time to finish pending animations.\n\nChange-Id: Ie89449b6b09de06ca8a88702cc85085b2556903c\n"
    },
    {
      "commit": "d37870af20dc4c1dd4b5a13889767d699a85e701",
      "tree": "fe6ff9544600944658a1f3b8165e1150f4cb0817",
      "parents": [
        "cf2bdd1fd88d7d10c6309fac5a44d5b44b9b12e4"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Oct 07 12:22:56 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Oct 07 12:22:56 2010 -0400"
      },
      "message": "Don\u0027t crash if there is no phone app and someone presses the phone button.\n\nThe phone button probably doesn\u0027t exist on products without phone apps,\nbut the monkeys still know how to find it.\n\nChange-Id: I36aca53506c8d7d7565df8674aff9d59745139e0\n"
    },
    {
      "commit": "38014763a2ceec005682066da01849adf95839bd",
      "tree": "85fa69bb159e80cb9ef23ba101bb9a47f656b955",
      "parents": [
        "54f9ac5880a33c8cd66ccb8930b175d1aca2a6f8",
        "89230e3b7b9ec455373e3f60b62ff65589a9c57d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 05 12:54:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 05 12:54:41 2010 -0700"
      },
      "message": "am 89230e3b: am 458fc5f5: Merge \"Fix issue #3041660: Camera image flips upside down when rotating device\" into gingerbread\n\nMerge commit \u002789230e3b7b9ec455373e3f60b62ff65589a9c57d\u0027\n\n* commit \u002789230e3b7b9ec455373e3f60b62ff65589a9c57d\u0027:\n  Fix issue #3041660: Camera image flips upside down when rotating device\n"
    },
    {
      "commit": "e5439f228f603f60febe058f633d91d5af2fff76",
      "tree": "54a692e6d57f5b93efb89aab2d102701876689f4",
      "parents": [
        "407f625a9b8e356e765a5ec587c443af1f3aadb5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Oct 02 16:53:50 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 04 14:01:39 2010 -0700"
      },
      "message": "Fix issue #3041660: Camera image flips upside down when rotating device\n\nApps now must explicitly opt in to having their rotation changed while\nforcing landscape mode.  Also add some new orientation constants for other\nthings apps may want to do.\n\nChange-Id: If64d84b5ef54793ee717ebda9b4c76408efc9bfd\n"
    },
    {
      "commit": "27dec99148c9d1cddb99269b131d8220098dc79f",
      "tree": "cd56b327e79f7f73800516e1992f9729ce436c90",
      "parents": [
        "6486196c303c525b041b380e853e1d2135180239",
        "4d28e8c5c69fe81849b1b450f9af38b053079d97"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 01 16:44:12 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 01 16:44:12 2010 -0700"
      },
      "message": "resolved conflicts for merge of 4d28e8c5 to master\n\nChange-Id: I2449488a84e44b3fb5f820b50951b2b2bfa3bcbf\n"
    },
    {
      "commit": "6493e64c2a3d5fa6adf0e6331a061d5bc67649fa",
      "tree": "999884329e9b71cf546147102f626ded35f12949",
      "parents": [
        "2942391801b79816c5eb77d7ac94c4a65f26af48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 01 13:06:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 01 13:06:30 2010 -0700"
      },
      "message": "Fix issue #3037083: Problem report for Pinball\n\nThe app was toggling between hiding and showing the status bar, because\nthe dialog was large enough to fill the screen but didn\u0027t set to hide\nthe status bar.\n\nIt turns out that the code to determine the top fullscreen window is\nintrinsically unstable, since it relies on comparing a window\u0027s frame\nwith the screen, yet the window frame can change as a result of changes\nsuch as hiding the status bar.\n\nInstead, we now simplify all of this to just say that the top fillxfill\nwindow gets to control the status bar.\n\nChange-Id: I22913adf7235fe0d52612f6738c7c94351274e38\n"
    },
    {
      "commit": "a53146c5569f8ff5f7eb55e9ad35d23ddacf2add",
      "tree": "2e29a19de07b5b6c721221b72a82392ff7452d8b",
      "parents": [
        "07b88ea0acd44ecd317ce37eb4338e5b0d2b52b0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Sep 07 11:57:52 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Sep 30 16:29:07 2010 -0700"
      },
      "message": "Drag/drop APIs and infrastructure\n\nA View initiates a drag-and-drop operation (hereafter just called a \"drag\")\nby calling its startDrag(ClipData) method.  Within the processing of that\ncall, two callbacks are made into the originating View.  The first is to\nonMeasureDragThumbnail().  Similarly to the core onMeasure() method, this\ncallback must respond by calling setDragThumbnailDimension(width, height) to\ndeclare the size of the drag thumbnail image that should be used.  Following\nthis, the View\u0027s onDrawDragThumbnail(canvas) method will be invoked to\nactually produce the bits of the thumbnail image.\n\nIf all goes well, startDrag() will return \u0027true\u0027, and the drag is off and\nrunning.  (The other arguments to startDrag() provide reconciliation between\nthe current finger position and where the thumbnail should be placed on\nthe screen relative to it.)\n\nPotential receipients of the ClipData behind the drag are notified by a\nnew dispatch mechanism, roughly parallel to motion event dispatch.  The core\nroutine is the View\u0027s onDragEvent(event) callback, with the mechanics of\ndispatch itself being routed through dispatchDragEvent(event) -- as in\nthe case of motion events, the dispatch logic is in ViewGroup, with leaf\nView objects not needing to consider the dispatch flow.\n\nSeveral different event \u0027actions\u0027 are delivered through this dispatch\nmechanism:\n\nACTION_DRAG_STARTED: this event is propagated to every View in every window\n(including windows created during the course of a drag).  It serves as a\nglobal notification that a drag has started with a payload whose matching\nClipDescription is supplied with the event.  A View that is prepared to\nconsume the data described in this event should return \u0027true\u0027 from their\nonDragEvent() method, and ideally will also make some visible on-screen\nindication that they are a potential target of the drop.\n\nACTION_DRAG_ENTERED: this event is sent once when the drag point\nenters the View\u0027s bounds.  It is an opportunity for the View to set up\nfeedback that they are the one who will see the drop if the finger goes\nup now.\n\nACTION_DRAG_LOCATION: when the drag point is over a given View, that\nView will receive a stream of DRAG_LOCATION events, providing an\nopportunity for the View to show visual feedback tied to the drag point.\n\nACTION_DRAG_EXITED: like DRAG_ENTERED, but called when the drag point\nleaves the View\u0027s bounds.  The View should undo any visuals meant to\nemphasize their being the hovered-over target.\n\nACTION_DROP: when the drag ends at a given point, the View under that\npoint is sent this event, with the full ClipData of the payload.\n\nACTION_DRAG_ENDED: paralleling the DRAG_STARTED action, this is the global\nbroadcast that the drag has ended and all Views should return to their\nnormal visual state.  This happens after the DROP event.\n\nChange-Id: Ia8d0fb1516bce8c735d87ffd101af0976d7e84b6\n"
    },
    {
      "commit": "04e79051dce4f7ea3b3c6ced2c03676083449267",
      "tree": "717d0e7556ecc679cb0e966f0ec0462aff3cd959",
      "parents": [
        "77cf6f29f97f9ef6213a0a9b8b6ec2215fff20ff",
        "56d6090380027efc7910537a2c2b99097ca36778"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Thu Sep 23 21:40:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 23 21:40:48 2010 -0700"
      },
      "message": "am 56d60903: am a7bfe6ad: Support \"seascape\" rotation for \"landscape-only\" apps\n\nMerge commit \u002756d6090380027efc7910537a2c2b99097ca36778\u0027\n\n* commit \u002756d6090380027efc7910537a2c2b99097ca36778\u0027:\n  Support \"seascape\" rotation for \"landscape-only\" apps\n"
    },
    {
      "commit": "a7bfe6ad763208942d74a15933e2de1a3e06eba0",
      "tree": "729df22afe8218f26e8351ca7d1d9be1c90681c2",
      "parents": [
        "cbb7b05e35368b104c27089f5f16640680f567c2"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Thu Sep 23 16:47:49 2010 -0700"
      },
      "committer": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Thu Sep 23 17:46:41 2010 -0700"
      },
      "message": "Support \"seascape\" rotation for \"landscape-only\" apps\n\nChange-Id: Ibbbd850dc2bfb741b39c04c982fbdd98f3fa4a67\n"
    },
    {
      "commit": "3060421045d4d9e411797f91bb509824b03e33fb",
      "tree": "652a88542fbec0617e8fd4039ba90881e97c47b8",
      "parents": [
        "4f5388df7f939b3d5854e8c59e82fa0f387a2a22"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Sep 22 19:56:23 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Sep 23 17:14:48 2010 -0700"
      },
      "message": "Add new WaveView widget to framework and integrate into LockScreen.\n\nThis adds a new \"Energy Wave\" widget to the internal widgets and\nintegrates it into LockScreen.\n\nValueAnimator needed a slight modification since it expects to\nbe run inside of Activities with a Looper. Additionally, this adds\nan API, removeAllUpdateListeners(), which is needed to properly\nrecycle ValueAnimator objects.\n\nSome minor code cleanup and UI tweaks after review.\n\nChanged delay timeout from 1.3s to 0.5s.\n\nChange-Id: Ibcf015e61fa8ba79d62f2019f1b29ace7caa00c8\n"
    },
    {
      "commit": "5bd069fe1e5208b9d41ea108a8c9ada504cae39c",
      "tree": "a52779a7b17789aa40e01e38403558571a81e2f5",
      "parents": [
        "43480d7b4d8a8cc4806627f91a53966b8c3c5442",
        "279179461edccaa4217fe752a9abf6fcc2efa5a1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 23 14:57:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 23 14:57:14 2010 -0700"
      },
      "message": "am 27917946: am de04fb0a: Merge \"Enforce serial ordering of MotionEvents.\" into gingerbread\n\nMerge commit \u0027279179461edccaa4217fe752a9abf6fcc2efa5a1\u0027\n\n* commit \u0027279179461edccaa4217fe752a9abf6fcc2efa5a1\u0027:\n  Enforce serial ordering of MotionEvents.\n"
    },
    {
      "commit": "93ed4e3052a773289c0570984801ea8f0f0849d2",
      "tree": "3a3aa1f29bb6ad6228cc71ac337ee68ca0fd7225",
      "parents": [
        "37cedce14bc0e68e8bf27c2cecb181728226e6ed"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 23 13:51:48 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 23 13:56:30 2010 -0700"
      },
      "message": "Enforce serial ordering of MotionEvents.\n\nThis change modifies ViewRoot to wait until the MotionEvent has been\ndelivered before telling the input dispatcher that it is finished.\nThe serial ordering guarantee will be required by new features that\nmay need to transfer touch focus from one window to another.\n\nChange-Id: I0a64d1f0c8bc3f08846f213d6e28ce48b1d48e58\n"
    },
    {
      "commit": "8d20f6b8cb5023318a4f422778d1d4f845ac7fe4",
      "tree": "a0ad594e98a9510df068c42c16ca8ef1db4304d9",
      "parents": [
        "5bfeeae35118720decd32043b1ecb4537645b527",
        "40e3af61dcbf7e49979a67410f37c4b4523a0bd6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 18:16:32 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 12 18:16:32 2010 -0700"
      },
      "message": "am 40e3af61: am 8abc9e9b: Merge \"Don\\\u0027t play a sound if a volume key press is canceled.\" into gingerbread\n\nMerge commit \u002740e3af61dcbf7e49979a67410f37c4b4523a0bd6\u0027\n\n* commit \u002740e3af61dcbf7e49979a67410f37c4b4523a0bd6\u0027:\n  Don\u0027t play a sound if a volume key press is canceled.\n"
    },
    {
      "commit": "8b7a982d290b368407e0c419c10105d5d4306b4b",
      "tree": "6ad648db5631a201cff980df8b4b1a91028d7382",
      "parents": [
        "692065128e66de77470de2c50ead2bef0452952a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 17:53:38 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 18:09:11 2010 -0700"
      },
      "message": "Don\u0027t play a sound if a volume key press is canceled.\n\nChange-Id: I8e45af20ec83a81565e10be3648b95686fa897af\n"
    },
    {
      "commit": "9305647eb61bb60a1f42481a0c0d208dc9bbe965",
      "tree": "e778597b64e7f72131ffcdcbdc18ac9311b4c525",
      "parents": [
        "5af8c63e487841db70314d7d512e6bafddcbb149"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Sep 10 10:30:46 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sun Sep 12 13:25:06 2010 -0400"
      },
      "message": "Plumb lights out mode through from the window manager to the status bar running in the system ui process.\n\nLights out mode itself isn\u0027t implemented.\n\nChange-Id: Ieeef0eb9ae5be23000f770e74e8ee66472f4c673\n"
    },
    {
      "commit": "bc4603b0b1f1242387655274e39649882ca391d1",
      "tree": "2fa809bcb70cae54ca0a5fae704bade74d728c64",
      "parents": [
        "5486dcb00a44f6367a880cf7ea7f699bfa1e15cb"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Aug 30 21:21:34 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Sep 01 21:00:30 2010 -0700"
      },
      "message": "Fix 2579224: Add a separate timeout for lockscreen vs display\n\nThis change adds a second timeout to the SecuritySettings page\nseparate from the standard display timeout.\n\nChange-Id: I41fe10e31688308f52695ad3ee30a4b0507112bd\n"
    },
    {
      "commit": "ee969aa850437c7c9b4e6e016b6ff43267c73d91",
      "tree": "e6e0b6fbb183986f363ca77d98c9595647f68a44",
      "parents": [
        "5c769a47aeb399324cca7f5d449331a3bba85b52"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Aug 26 20:17:43 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Aug 26 20:17:43 2010 -0700"
      },
      "message": "Fix 2797185: Show 3D Recents on xlarge device\n\nThis fixes a bug where some xlarge devices weren\u0027t showing 3D recent apps.\nThe cause was that the config wasn\u0027t guaranteed to be loaded by\nthe time we reach init() in PhoneWindowManager.\n\nThe fix looks at the property on-demand, which can\u0027t happen\nuntil after the user sees the home screen, which guarantees the\nconfiguration is loaded.\n\nChange-Id: Ic41196f7a15218033b831e6e9cf9d536e0712844\n"
    },
    {
      "commit": "e6ad1a8ba29bdd5d61ad1c91146def582c8c0334",
      "tree": "38f2fc4e2e1914d9e788022f44ec9e4cffa52e32",
      "parents": [
        "a0b436234d999a05b1ddb571dea3956ad5139a4c"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Aug 20 19:25:39 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Aug 25 20:43:00 2010 -0700"
      },
      "message": "Fix 2797185: Integrate 3D RecentApps View into system.\n\nThis adds 3D recents to the platform.  Enabling it is a\nmatter of setting \u0027config_enableRecentApps3D\u0027 on devices\ncapable of supporting it (those with OGLES2.0 at the moment).\n\nChange-Id: Ife7bfe8ca02e7657821b68f915e31b0dab50cd2c\n"
    },
    {
      "commit": "f4a6ec4e9398c1beb019e1c208272bf56401f925",
      "tree": "162fd050fa96d371f0adc3577e597c598d113d55",
      "parents": [
        "0a5699654f33fc41a9baed26abb9b867ba439399"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Aug 24 14:18:10 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Aug 24 14:18:10 2010 -0700"
      },
      "message": "Disable FEATURE_ACTION_BAR on windows with incompatible feature sets.\n\nChange-Id: I70c860c72eb9e1f1f123764202334ab714f4f830\n"
    },
    {
      "commit": "6c6f575423d6718c3ff322224c1520901ce881e1",
      "tree": "7432af19bf495397df8d398fc87a4b8786e6cdd8",
      "parents": [
        "d62847997be926991424e4fba30ff3f5ef71258b"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 20 18:34:46 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Aug 23 10:24:49 2010 -0700"
      },
      "message": "More ActionBar/config change tweaks. Preserve open overflow menus\n\nChange-Id: Ic8ad2b1e3909fbf84ff4d852ae046a9f9508477c\n"
    },
    {
      "commit": "dfc8cde5c865560458518dfcd178ec9f4ebede30",
      "tree": "c56ea953818d0eb785d07fe87ba50e87518ea445",
      "parents": [
        "b43ac2610b38562f07b7fbf31c96b5550e6974e3",
        "1f4421048206ca1745ddd6366588759c9c5c38f9"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Sat Aug 21 09:40:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:40:22 2010 -0700"
      },
      "message": "am 1f442104: am e0c8582e: Merge \"Improve orientation sensing when waking up while flat.\" into gingerbread\n\nMerge commit \u00271f4421048206ca1745ddd6366588759c9c5c38f9\u0027\n\n* commit \u00271f4421048206ca1745ddd6366588759c9c5c38f9\u0027:\n  Improve orientation sensing when waking up while flat.\n"
    },
    {
      "commit": "5eb49583e2f0b82d7a48182ffed5f409b4f85dc5",
      "tree": "2c91210ef2921794ac55e7488accb1cc2e6138c2",
      "parents": [
        "baf3869b88ab4e31f792dbe08f61725bc3619ea8"
      ],
      "author": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Mon Aug 16 11:41:58 2010 -0700"
      },
      "committer": {
        "name": "Steve Howard",
        "email": "showard@google.com",
        "time": "Wed Aug 18 14:22:19 2010 -0700"
      },
      "message": "Improve orientation sensing when waking up while flat.\n\nThis change makes the window manager pass the currently displayed\norientation to the WindowOrientationListener each time to calls to get\nthe currently sensed orientation.  Now, when the\nWindowOrientationListener doesn\u0027t know for sure what the orientation\nof the device should be (for example, if the sensed orientation is\nflat on a table), then it trusts the already-displayed orientation,\nrather than trusting whatever sensors reading it most recently\nreceived.\n\nThe main use case this addresses is:\n* user uses device in portrait\n* user turns off device, puts it in pocket\n* while in pocket, screen gets turned on, activating orientaiton\n  sensor, which senses landscape orientation\n* screen timed out\n* user takes device out, places it on a table (or looks down at it,\n  holding it flat), and unlocks it\n\nPreviously, when the device was unlocked, the\nWindowOrientationListener would return landscape orientation based on\nits previous sensor readings.  Now, it will override those previous\nreadings because it knows they never actually took effect and the\ndevice is presently flat.\n\nThis change also slightly modifies the way we handle flat orientation,\nnow completely ignoring data when the tilt distrust is nonzero (even\nif the current sensor reading shows non-tilted).\n\nChange-Id: Ia4950a41827f8c53a80487d0c2e83b556df781b9\n"
    },
    {
      "commit": "04253aa134c4795d98cdb219b952393be1914f8b",
      "tree": "fe4cf848126d6f4bb86a4020e8b19806d965e047",
      "parents": [
        "487300abe17417283e4339e044485cf262647d92"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 18 11:59:11 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 18 11:59:16 2010 -0700"
      },
      "message": "Back button closes ActionModes\n\nChange-Id: I763782706ce7aa65a5a11129450d97a2bcb3a625\n"
    },
    {
      "commit": "291905e34a7f0ae03c68fb2c1b8c34b92d447fbf",
      "tree": "83be3ec7a3702f79d2970771f6e4ac926527c532",
      "parents": [
        "4ae784f126e15ff3363bb8d3587ea60bf642d509"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 17 15:17:15 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 17 18:53:19 2010 -0700"
      },
      "message": "Maybe fix #2925641: calling onCreateOptionsMenu before attached activity\n\nAlso add some APIs to PreferenceActivity.\n\nChange-Id: I85894a3eb9cd3e5adb78b82e85454c0d74773178\n"
    },
    {
      "commit": "266b1008cfc570d95d10ce650343765fa6bac7e7",
      "tree": "7a19903f9352b37bbc79a6d57cf16b3e70b73cd1",
      "parents": [
        "93af2e48a7af71cee18781b64150abed7b057e2a"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Aug 16 15:02:07 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Aug 16 17:26:11 2010 -0700"
      },
      "message": "Fix some ActionBar bugs.\n\n* Fix a bug where the options panel would not open on non-xlarge\n  screens to show overflow menu items.\n\n* Fix a bug where ActionBarView would try to add a custom nav view\n  twice.\n\n* Fix a bug where ActionBarView would expand too far in wrap_content mode\n\nChange-Id: I433ea56524aad885d813ae8743fe2fcefa9649fa\n"
    },
    {
      "commit": "8171b5182f5f07d33c9dfdf2dd8f0f6ae9588039",
      "tree": "8c6c4b9de2a045809ce420a89edd76e6bf837f25",
      "parents": [
        "aece2d0ca012144007870db9bb2cf0e360cbb973"
      ],
      "author": {
        "name": "Jae Yong Sung",
        "email": "jysung@google.com",
        "time": "Thu Aug 05 10:44:27 2010 -0700"
      },
      "committer": {
        "name": "Jae Yong Sung",
        "email": "jysung@google.com",
        "time": "Fri Aug 13 15:08:05 2010 -0700"
      },
      "message": "lock screen for xlarge\n\nChange-Id: Iab9f53609bf24be774752a9960aaaa654d7a614f\n"
    },
    {
      "commit": "b047208b3b3391d5c9b0114b0906341240f48368",
      "tree": "49a394c29c4ed349150d740e78cb3f9d7732976b",
      "parents": [
        "5caaf378d845c8e0453e10f89d7f5d6b339e474d"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Aug 12 10:44:33 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Aug 12 10:44:33 2010 -0700"
      },
      "message": "Cleanup on CL 61012\n\nChange-Id: I394909c65a4978be26db063c9f69f1098ab028b3\n"
    },
    {
      "commit": "f6148c53f93978af678cc0559a4417b608a33ae1",
      "tree": "4a7d2fc5d01f02aa0ee1970f006a7d87249c9781",
      "parents": [
        "949dbf7629eacfa02f267ade4643c98aef8e42a9"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 11 21:10:16 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 11 21:56:27 2010 -0700"
      },
      "message": "Fix bug 2911311 and bug 2911700\n\nIntegrate the action bar overflow menu better with the options menu lifecycle.\n\nChange-Id: I1e3fdba04b01718c3ee3367f92e5dabe7bc84b5c\n"
    },
    {
      "commit": "943fbb4f4006273ae5983da42143d721ae05dfd4",
      "tree": "d51436252fab6758c38ac10c1ae2f52c35223df8",
      "parents": [
        "73b77af86131cd4dad16c32ba1898028ce08da36",
        "6b336f835d637853800b94689375a03f337139a4"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 11 17:26:10 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 11 17:26:10 2010 -0700"
      },
      "message": "Merge \"ActionBar overlay mode, height fetching, show/hide\""
    },
    {
      "commit": "b219a83ff6278eeef981e6908abf871876a68699",
      "tree": "c333390c0e758bb23601557a3d8c1477583a866b",
      "parents": [
        "da4c35b95157ed56dbf12c166173800c4c3740e2",
        "f66f8a58cc4412bd258e1d5b11cac17a617bdc58"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 16:22:47 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 11 16:22:47 2010 -0700"
      },
      "message": "am f66f8a58: am 95af0c14: Merge \"Add support for the PointerLocation overlay.\" into gingerbread\n\nMerge commit \u0027f66f8a58cc4412bd258e1d5b11cac17a617bdc58\u0027\n\n* commit \u0027f66f8a58cc4412bd258e1d5b11cac17a617bdc58\u0027:\n  Add support for the PointerLocation overlay.\n"
    },
    {
      "commit": "6b336f835d637853800b94689375a03f337139a4",
      "tree": "073bf584d8e0092137daf46d0d9c69a17faa551e",
      "parents": [
        "da4c35b95157ed56dbf12c166173800c4c3740e2"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Aug 10 20:13:01 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 11 16:17:57 2010 -0700"
      },
      "message": "ActionBar overlay mode, height fetching, show/hide\n\nChange-Id: Ie931ed26ec885d891d6733132b517a53d95f8491\n"
    },
    {
      "commit": "a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0",
      "tree": "65d87a9c55c869843540884f0fbced6a69841895",
      "parents": [
        "c3fc2d03d58a258c53c9265a70143d4af076b764"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 14:46:32 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 14:46:32 2010 -0700"
      },
      "message": "Add support for the PointerLocation overlay.\n\nThis change involves adding a new method to IWindowManager,\nmonitorInput() that returns an InputChannel to receive a copy of all\ninput that is dispatched to applications.  The caller must have\nthe READ_INPUT_STATE permission to make this request (similar to\nother window manager methods such as getKeycodeState).\n\nChange-Id: Icd14d810174a5b2928671ef16de73af88302aea0\n"
    },
    {
      "commit": "f75eeb28def26798682748aa5dedabebac86bb6a",
      "tree": "6f5be9ba47e90cf9bf775edc9ba024b58074fa7f",
      "parents": [
        "f0cfe3438aea77b5193d94fb9fa0c8d37972b194"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Aug 10 15:59:40 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Aug 10 15:59:40 2010 -0700"
      },
      "message": "Fix bug 2908822 - open/closePanel should do the right thing with ActionBars\n\nChange-Id: Ic77f9dee864d17046f69c78a1e6d96a49b5c6180\n"
    },
    {
      "commit": "6dd73b45a4b21eba4d1035346cc7870bb01ab621",
      "tree": "becc747c6e67f3f51fc3911bce4300f1558db112",
      "parents": [
        "22158e139a3d6c6a9787ca0de224e9368f643284"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 06 11:13:40 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 06 11:30:35 2010 -0700"
      },
      "message": "Fix some lifecycle issues with populating the action bar\u0027s menu\n\nChange-Id: I5f63df3260392b09fbb7120986702d01dac5906c\n"
    },
    {
      "commit": "8e552630e72a17d7340f1bebccbc6fd6faef82fb",
      "tree": "e09d78648831b4fbef5fb545650411811b3da176",
      "parents": [
        "2cd1dbe50dc2acbabb1cbd5b7e31563f63797106"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 04 15:26:22 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Aug 04 17:42:44 2010 -0700"
      },
      "message": "Let action modes overlay window content\n\nChange-Id: Ic0512c3e6338e1de15facec0a6650f9da9808a24\n"
    },
    {
      "commit": "5d27977f9da482627ceb19317a2cd70467aff046",
      "tree": "a96b2c2a9aeba5f2e3b92a256949677880063d35",
      "parents": [
        "85d8daa889db113b51c5d98929245e80f7277388"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Jul 27 16:34:07 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Jul 27 21:04:52 2010 -0700"
      },
      "message": "Action modes without action bar\n\nChange-Id: I0367ab35e598a17980bd373b30828175f6283acc\n"
    },
    {
      "commit": "ac670c0433d19397d4e36ced2110475b6f54fe26",
      "tree": "10722cd4e465fc053f9536cc312c1125a694108a",
      "parents": [
        "bb2b2a996b2c0bea7e434136e20340f4f1b398ab"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 27 17:39:27 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 27 19:52:29 2010 -0700"
      },
      "message": "Generate shaders to cover all possible cases.\n\nWith this change, all the vertex and fragment shaders used by the GL\nrenderer are now generated based on a program description supplied\nby the caller. This allows the renderer to generate a large number\nof shaders without having to write all the possible combinations by\nhand. The generated shaders are stored in a program cache.\n\nChange-Id: If54d286e77ae021c724d42090da476df12a18ebb\n"
    },
    {
      "commit": "6e34636749217654f43221885afb7a29bb5ca96a",
      "tree": "8300933178f1169bef65f9df3d11032eab738785",
      "parents": [
        "468737307854d1395e50c05cb5498334381c78c0"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Jul 23 10:18:23 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Jul 26 17:28:45 2010 -0700"
      },
      "message": "Moved context modes into view, renamed to action modes\n\nContextualMode renamed to ActionMode. Adds a reference to the action\nbar and reduces confusion around things named \"Context\".\n\nChange-Id: Ia5098b1d0799a0ece0810c34e6696eda039fb005\n"
    },
    {
      "commit": "4042744bf8e5630690b479a9447bc6aff8c279fe",
      "tree": "61f518d973f8c65e93437f56ec5e7532869183eb",
      "parents": [
        "0cc6f8f3a3f300a6c2ea0a086321b2d0174b7af0"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Jul 16 11:44:52 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Jul 21 14:44:52 2010 -0400"
      },
      "message": "Disable hiding of the system bar on xlarge devices.\n\nWe treat the system bar as \"outside\" the available screen,\nso activities will never be able to draw over (or under!)\nthat space.\n\nChange-Id: I287a0b1e837e415cf08fc94053c4cc14a7753848\n"
    },
    {
      "commit": "8028dd32a4a04154050220dd0693583d5b750330",
      "tree": "ce58b851e08bed78e35d19d088dd0d755ce2a891",
      "parents": [
        "eb857f12d605659b385d168ef1ea7d4ba5193585"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jul 15 10:16:33 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Jul 16 10:22:31 2010 -0700"
      },
      "message": "Overflow menu for action bars.\n\nThe overflow menu replaces the normal options menu panel for\nactivities with an action bar. It always appears as the rightmost\naction button and is displayed as a dropdown menu. The menu key\nsummons and dismisses the overflow menu instead of the options panel\nwhere applicable.\n\nChange-Id: I0b4fa7e36f35ab12e2f0c1d12bec79ccab8cc4b1\n"
    },
    {
      "commit": "e92ea3474de7998a016b48bab4e9a4bbafd5b549",
      "tree": "6daa82ec4981a21edba666f700bcb02f02489dfd",
      "parents": [
        "26dd7b3bb381ba06ce3a7eb17205e54fdd7becfc"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Jul 14 14:45:50 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Jul 14 14:46:37 2010 -0700"
      },
      "message": "Fix bug 2835056 - ActionBar doesn\u0027t update title properly when set in onCreate\n\nChange-Id: I593315db8df0190c2702a87ebef293e5f798823d\n"
    },
    {
      "commit": "2388ad9eef109fa7f63c196c819c83f0376f0645",
      "tree": "19c965b6d7efb893604fc448cebc9380ebb60fb6",
      "parents": [
        "fc6d300f408959b11f86623ea7a0ce547ded3563",
        "f8d9379bd834573feca085284970cf686993c330"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 19:50:36 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 13 19:50:36 2010 -0700"
      },
      "message": "am f8d9379b: am d76b67c3: IME events are now dispatched to native applications.\n\nMerge commit \u0027f8d9379bd834573feca085284970cf686993c330\u0027\n\n* commit \u0027f8d9379bd834573feca085284970cf686993c330\u0027:\n  IME events are now dispatched to native applications.\n"
    },
    {
      "commit": "d76b67c340d1564abf8d14d976fdaf83bf2b3320",
      "tree": "59c0fff396681a622480a84f4f9c74d188970a11",
      "parents": [
        "fd03582995e0fce963dd0fa0669e3211b74c0dd7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 17:48:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 13 18:36:46 2010 -0700"
      },
      "message": "IME events are now dispatched to native applications.\n\nAnd also:\n\n- APIs to show and hide the IME, and control its interaction with the app.\n- APIs to tell the app when its window resizes and needs to be redrawn.\n- API to tell the app the content rectangle of its window (to layout\n  around the IME or status bar).\n\nThere is still a problem with IME interaction -- we need a way for the\napp to deliver events to the IME before it handles them, so that for\nexample the back key will close the IME instead of finishing the app.\n\nChange-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd\n"
    },
    {
      "commit": "4267534d1c42af847ed0cefd1c88c99f66b36571",
      "tree": "86a49159ad830984d25b8f8184a692e09238c1b0",
      "parents": [
        "6ac7674e143f9716312f048da3f25ca83b646315"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Jul 09 18:02:59 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Jul 13 18:14:11 2010 -0700"
      },
      "message": "Action Bar now supports submenus as popups.\n\nChange-Id: I1691c16081b3474ed6d6e406f91f5f74a2dc8fcb\n"
    },
    {
      "commit": "1a33274d28a3174b9062ae0dcce77bf1d68cd463",
      "tree": "ad0409bd5168ca72c259f531047b9837907d54c6",
      "parents": [
        "6f10db885f82e6037bdcc4357026a0cb70da742c",
        "167449e5f810a49741133de375eea1006f7218c0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 08 19:01:13 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 08 19:01:13 2010 -0700"
      },
      "message": "resolved conflicts for merge of 167449e5 to master\n\nChange-Id: Ib448e69a726eb45b5c9099d2574e40b8345eee67\n"
    },
    {
      "commit": "34bcebca707187393263183aa4dab32728763f2f",
      "tree": "eee15dd0ba3a1c30d6241a3e294738c088f81fed",
      "parents": [
        "52c1dc2fd99eabed1914e390143d3d74799e6366"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 07 18:05:01 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 07 18:33:14 2010 -0400"
      },
      "message": "Let the window manager place the rest of the windows on screen when the status bar is at the bottom.\n\nChange-Id: I29c43beee047bb99695a34e6b202ff3f8400c8c2\n"
    },
    {
      "commit": "00fa7bdd69f0868fd17ea7c881c771d785b2fbbd",
      "tree": "6fff8ad404e57af316c6ce5a20020dc209eb3cc6",
      "parents": [
        "8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 02 15:37:36 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Jul 03 19:23:01 2010 -0700"
      },
      "message": "More native input dispatch work.\n\nRemoved old input dispatch code.\nRefactored the policy callbacks.\nPushed a tiny bit of the power manager state down to native.\nFixed long press on MENU.\nMade the virtual key detection and cancelation a bit more precise.\n\nChange-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e\n"
    },
    {
      "commit": "89e0645b4157961e8c465eb9c819f965fdb453d8",
      "tree": "eb174c070624026930067c8472f5425cfc4034ab",
      "parents": [
        "6443de56f3bb9609698b41fc5de04559de039f63"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Jun 23 20:24:52 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Jun 29 14:04:58 2010 -0700"
      },
      "message": "Added context modes to ActionBar API.\n\nChange-Id: I7c3e782cbf01be7bc671b377fb4d706040888833\n"
    },
    {
      "commit": "f92f8686f982c62a609a2087383a77a24d126992",
      "tree": "7e5bd21bd0956d8e4dff6fbec46e854a4561e6d1",
      "parents": [
        "da91bf5c13cc3c0f5f1d59e1a609bb15047f65c8",
        "98f7aed66b54c365f816fe990de978f61155cde1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 14:43:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 14:43:31 2010 -0700"
      },
      "message": "am 98f7aed6: am 1e4b9f39: Remove InputConsumer, replacing with InputQueue.\n\nMerge commit \u002798f7aed66b54c365f816fe990de978f61155cde1\u0027\n\n* commit \u002798f7aed66b54c365f816fe990de978f61155cde1\u0027:\n  Remove InputConsumer, replacing with InputQueue.\n"
    },
    {
      "commit": "1e4b9f3936d6f357e89360293e05a0e16d5fa440",
      "tree": "4fc65451804b3d2741969ecb7bfd3d415f54ec51",
      "parents": [
        "69a4817e3e1e368e758ff8c238deb5ee26963c04"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 14:10:57 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 14:37:30 2010 -0700"
      },
      "message": "Remove InputConsumer, replacing with InputQueue.\n\nChange-Id: Ib06907278457aaee842b123adc072840ca3602d8\n"
    },
    {
      "commit": "320742b15a710ede57862eee170945da26ef0172",
      "tree": "5c4b08874acac30f86b217af59938d0254688bc1",
      "parents": [
        "a58a7aecf44a5c818b9519240a2129e27ffdf294",
        "e3e2883f2232007174ead562610eb01201890d9b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 23 10:32:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 10:32:25 2010 -0700"
      },
      "message": "am e3e2883f: am e24a60aa: Merge \"First stab at attaching native event dispatching.\" into gingerbread\n\nMerge commit \u0027e3e2883f2232007174ead562610eb01201890d9b\u0027\n\n* commit \u0027e3e2883f2232007174ead562610eb01201890d9b\u0027:\n  First stab at attaching native event dispatching.\n"
    },
    {
      "commit": "a95e4cb62f3642cb190d032dbf7dc40d9ecc6973",
      "tree": "ae4437444a3d3ebeff48dabfd1e9c11fc14620ac",
      "parents": [
        "ef730e6ececa96a3e0576140eea707f7c48cd66c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 18 18:09:33 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 22 11:21:50 2010 -0700"
      },
      "message": "First stab at attaching native event dispatching.\n\nProvides the basic infrastructure for a\nNativeActivity\u0027s native code to get an object representing\nits event stream that can be used to read input events.\n\nStill work to do, probably some API changes, and reasonable\ndefault key handling (so that for example back will still\nwork).\n\nChange-Id: I6db891bc35dc9683181d7708eaed552b955a077e\n"
    },
    {
      "commit": "96675b1df3969f2d313b68f60ed9fa36805db8ce",
      "tree": "0bf8088a354d1e4f392a6adccda1911c0a0d890e",
      "parents": [
        "e6ac8b9aade9443ab8456c8f7a47cdfba3b70266"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 10 18:58:59 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Jun 17 11:35:43 2010 -0700"
      },
      "message": "Merging ActionBar menu with options menu.\n\nOptions menu items may now specify if they would like to appear in the\naction bar. Menu items defined in xml may set the showAsAction\nattribute to one of \"never\"(default), \"ifRoom\", or \"always\". Action\nbuttons are populated as follows:\n\n* All showAsAction\u003d\"always\" items become action buttons, even if it\n  would crowd the navigation area of the action bar.\n\n* If there is space remaining, showAsAction\u003d\"ifRoom\" items are added\n  until no more will fit comfortably.\n\nAction button click events are now handled by the\nonOptionsItemSelected method used by the standard options menu.\n\nThe construction of options menus now happens earlier in order to\nprovide data to the action bar. Activities with an action bar can now\nexpect to have onCreateOptionsMenu called when activity start-up is\ncomplete.\n\nActivity#invalidateOptionsMenu can be used to force a refresh of menu\nitems where the previous API would use ActionBar#updateActionMenu.\n\nChange-Id: If52ddf1cf9f6926206bcdeadf42072ea2c24fab9\n"
    },
    {
      "commit": "83ea9e395e86ca2d12d822609ca2a8b35b78cca9",
      "tree": "87a79d8ed244f02948877596ba511f3af4dd6e06",
      "parents": [
        "bd580127fca2797ba1a0f6653fe4cb2fd427ec83",
        "685fcf364b84d5ac911ae9cbbc4fec99f36cbd48"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jun 16 14:42:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 16 14:42:51 2010 -0700"
      },
      "message": "am 685fcf36: am c95812e6: Merge \"Move out all framework-tests classes.\" into gingerbread\n\nMerge commit \u0027685fcf364b84d5ac911ae9cbbc4fec99f36cbd48\u0027\n\n* commit \u0027685fcf364b84d5ac911ae9cbbc4fec99f36cbd48\u0027:\n  Move out all framework-tests classes.\n"
    },
    {
      "commit": "be81f4f15dad6d690efcab1973d1e174ce3b001b",
      "tree": "ac8168f1fbdf6aa169fde84d9d251f60e7d6544a",
      "parents": [
        "28a6c8e9b366ecfc3518e6b0fb1d1bc46cf823e8"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 14 17:06:34 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 14 17:23:08 2010 -0700"
      },
      "message": "Move out all framework-tests classes.\n\nPreviously tests/framework-tests contained a quarantined set of test classes\nthat needed access to package-private framework api. Running these tests\nnormally would cause the dalvik verifier to throw errors.\n\nruntest now has support for turning off the dalvik verifier for frameworks\ntests, so move this tests into their recommended location, close to the source\nbeing tested.\n\nAlso move policy source into a \u0027src\u0027 folder to accommodate the tests move.\n\nChange-Id: I62f839da185a55bc553b653bf583fd99da438512\n"
    },
    {
      "commit": "8e03b7566c42621fda01186b66b019142eb84fbf",
      "tree": "17c45ea04288d2d57053ea740ae1cf332a4308c8",
      "parents": [
        "5ddd127d5a38d80c0d8087d1770f41f61f84f048",
        "9e660c8201ab9aeead5d78a75c2bbfecc374858f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 19:16:55 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 19:16:55 2010 -0700"
      },
      "message": "resolved conflicts for merge of 9e660c82 to master\n\nChange-Id: Ic4bd85cbaa5b9a10dcb474a0dad46490bf967e43\n"
    },
    {
      "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
      "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
      "parents": [
        "f62c57d684b83df7d2817db976c0afdb500ae92a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 22 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:42:16 2010 -0700"
      },
      "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n"
    },
    {
      "commit": "8a5f10b30dae663eb01372490df3497e8a2ad56a",
      "tree": "f290abed00828b9b8c7f399805a2f2629e6fd262",
      "parents": [
        "1d46191d88ee9262ea05b868d2db5b44ad85fa43",
        "f7b79151923ccde24a3c5cb546d9f595f0891f59"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 15:07:16 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 15:07:16 2010 -0700"
      },
      "message": "resolved conflicts for merge of f7b79151 to master\n\nChange-Id: Ia4538f73d8bade9e6565835d484dcb650830feca\n"
    },
    {
      "commit": "8bc6c5141974dbc36a6fe416853f558921be9f24",
      "tree": "c9e511a5d065abb8f6d0c9f4965ef2d63965c7a5",
      "parents": [
        "005847b03b2ebe3eb1a974a8a04ad51bca6636cd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jun 04 16:21:12 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 09 14:33:23 2010 -0700"
      },
      "message": "Require the STATUS_BAR_SERVICE permission for something to be the status bar.\n\nChange-Id: I57b2d296e0d0cef0d256ae6697fffc47188d14df\n"
    },
    {
      "commit": "b31e84bc4513e46bac4be8f8d0513f78e360fb11",
      "tree": "b8e6fa94497e5ff4b89eedce4a2558f0a5e1437c",
      "parents": [
        "1fd54720b00bfcd48da3b178f1ab65fdbe8bf304"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 08 18:04:35 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 09 12:26:29 2010 -0700"
      },
      "message": "Add Fragment option menu APIs.\n\nAlso fix up how transactions are handled so that a series of transactions\ncan correctly be created and committed.\n\nChange-Id: I948ba47d49e9b2246a1958bd9eac9dd36dc5a855\n"
    },
    {
      "commit": "37166e6d7e41d309e834f114096d8c876ab1a45d",
      "tree": "ed24269e86c0377ffce45c9d2d631b1116f52546",
      "parents": [
        "60a83af0488b5ebaffbdf70d5709eed0834a91f8",
        "ff97998a73a846c0ded2604456dddd95f572ee3a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 22:38:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 02 22:38:20 2010 -0700"
      },
      "message": "am ff97998a: am 4762c2d7: Add expand and collapse.\n"
    },
    {
      "commit": "60a83af0488b5ebaffbdf70d5709eed0834a91f8",
      "tree": "494df89d4ce30b620ddbe9370239d33e4e0ccde5",
      "parents": [
        "66239ec47f7ec70024f839cffe2e9368e9dc42ae",
        "ee5d0cafc941c35875caf16e4f450585a9cead0c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 22:38:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 02 22:38:10 2010 -0700"
      },
      "message": "am ee5d0caf: am f3f0e053: Make disable() work.\n"
    },
    {
      "commit": "e635a6bcc12ddafdf921f564fd3ff374a6ad3ffd",
      "tree": "d70ed850c767d13e5713bb1c8091cec304be6504",
      "parents": [
        "4cd06e25286fc6a8749333e24c96c420aa2fd72f",
        "12cd606d70f30ab9bd0923255185135e06b4f84f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 22:37:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 02 22:37:04 2010 -0700"
      },
      "message": "am 12cd606d: am 0cbda99f: The status bar draws its icons now.\n"
    },
    {
      "commit": "51b3c2f25f420c994ef6b39e7c200522af5c7508",
      "tree": "7deff4249830d6af9fc317de93aafd995dacf826",
      "parents": [
        "eeb42c4ebdd1e2698b46d9c17c21b014ff4f08e4",
        "e0b2ae119103e23c7a7e4486ff6763793b27aed8"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 22:35:58 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 02 22:35:58 2010 -0700"
      },
      "message": "am e0b2ae11: am 25f95f92: Rename IStatusBar to IStatusBarService.\n"
    },
    {
      "commit": "4762c2d75a55e0854bbff2f996748116d4ab1a37",
      "tree": "7467da673f3e8e753a79ad044fc24e9ebb237a08",
      "parents": [
        "f3f0e053f0cc66249a11639eb67d0cdc2da26ded"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon May 17 15:42:59 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:42 2010 -0700"
      },
      "message": "Add expand and collapse.\n\nChange-Id: I58ad95c59b2c46d3f25349e137d5624aefc6c6cd\n"
    },
    {
      "commit": "f3f0e053f0cc66249a11639eb67d0cdc2da26ded",
      "tree": "4a2c42a832abe775b672c1b5d25277592a182699",
      "parents": [
        "5368017294ab5d4c37c48d4169da33acbf004e83"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 14 18:49:29 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:42 2010 -0700"
      },
      "message": "Make disable() work.\n\nChange-Id: I93fea37e777b3e04fe7f9171d5b84821587c24f5\n"
    },
    {
      "commit": "0cbda99f8721ad9b03ada04d2637fb75a2a0feca",
      "tree": "99b716653b139e560223dfc764bfc9a746df7bb5",
      "parents": [
        "503007dd023668b1e45de948d3673e594d7f5a82"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sun May 02 16:28:15 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:41 2010 -0700"
      },
      "message": "The status bar draws its icons now.\n"
    },
    {
      "commit": "25f95f92005594f2ef094001c54cb4c39eec3ade",
      "tree": "5d203a4356ec39d79fda29d96780b5c3d4d92bae",
      "parents": [
        "2314aab5064ce09f09270e52fa12a38d07464278"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Apr 08 18:37:10 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:40 2010 -0700"
      },
      "message": "Rename IStatusBar to IStatusBarService.\n\nChange-Id: Icfec2a830f037b21f6afaa796bf49da610567e7b\n"
    },
    {
      "commit": "f9a166ab8236b5824049f5103c4365e12b52b4ac",
      "tree": "053cba33954d628e58249278ff0b2bcea166e447",
      "parents": [
        "a393a85d2b2f319a29c52c354a8b5e44fc1621ed"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Tue Jun 01 16:47:05 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Tue Jun 01 17:00:47 2010 -0700"
      },
      "message": "Fix 2571872: Showing an error message on wrong password/pin entered.\n\nChange-Id: I78463112326ebd1ac7d43d083e22d506518e84fd\n"
    },
    {
      "commit": "a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97",
      "tree": "f58aeeaf40b2c9eec459fca00ee4fa2126629652",
      "parents": [
        "afd52a0b40e7986d0993217b3fe0cf44fea21274"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon May 24 17:10:56 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Thu May 27 15:27:06 2010 -0700"
      },
      "message": "Fix 2677197: Adding minimum complex character support.\n\nChange-Id: I520bc5f9aa924bf9b5585b2235a91cc96cb99c25\n"
    },
    {
      "commit": "9b081a809a7e39c6877a9606289ada4680f3d91f",
      "tree": "b903472e83d067042e21f1433607d0cbd70a539f",
      "parents": [
        "db3be83ac6932eae7d77ead7a80c1fc8a6493fd6",
        "8b625a952e441b0f09ef9d480c1d2e7aa3500f0f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 18:21:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 18:21:07 2010 -0700"
      },
      "message": "resolved conflicts for merge of 8b625a95 to master\n\nChange-Id: I03264c6aad2d87629f9154f5c390cb36ce08efba\n"
    },
    {
      "commit": "dc8a7f69d7df5f1ca29763995a0d55acf7936fc6",
      "tree": "8a136169f8ff4548bfabadf95e3305589ff21677",
      "parents": [
        "400907086ac1a304daa50a72013ac27a9c63b26b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 10 11:29:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 18 10:46:33 2010 -0700"
      },
      "message": "Add new API to take over a window\u0027s Surface.\n\nChange-Id: Iad6245faadc95f19ea63c8e229a1c02e9188f69e\n"
    },
    {
      "commit": "c15dcf7ea1421305a54f256777212373c28c53c0",
      "tree": "245242c3cabe7f0bd2abe68120539d8fbebbbf1c",
      "parents": [
        "0efa0c45a176a354d58260533d601abeb36be41b"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Fri May 14 11:50:09 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Fri May 14 15:43:03 2010 -0700"
      },
      "message": "Fix 2571606: Correct message after too many failed attempts for password and pin.\n\nChange-Id: Ib712c692804b067b95b261852afdd9fac40194c4\n"
    },
    {
      "commit": "33b974393b6fadcefc896ec4a0f9b66724f61e9f",
      "tree": "5c90001e5931a2cf09e9900c58d6d815d3dfa46b",
      "parents": [
        "5d8636dbada23bd40c80dbf43702d538b2997ac4"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Apr 20 10:01:14 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu May 13 01:27:59 2010 -0700"
      },
      "message": "ActionBar added to framework, integrated with Activity and styles.\nAdded onClick attribute support to menus in MenuInflater.\n\nChange-Id: I739771b4f249d87a0d8b15969f3d526b099067a1\n"
    },
    {
      "commit": "6707341b28709161b8b8744d86529b0c2663d547",
      "tree": "a7ec2e2f14a7c0aa47ef56475822737c68b10f82",
      "parents": [
        "24488bd0946f2342fcc725ce55c1347c0698b1e9"
      ],
      "author": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon May 10 17:25:11 2010 -0700"
      },
      "committer": {
        "name": "Konstantin Lopyrev",
        "email": "klopyrev@google.com",
        "time": "Mon May 10 18:02:31 2010 -0700"
      },
      "message": "Fixing bug 2660263, changed text for PIN unlock\n\nChange-Id: I904c7c4753b68195fbd547e97207aa3cceef3c6d\n"
    },
    {
      "commit": "2eebfe4117c4c2caa338ffa2b0382783aa6eaa52",
      "tree": "3e3941d0d2e475e286d6260412c9090ae7632304",
      "parents": [
        "ac18a05811174685fd633918960a7fb3956bebef",
        "faa1461df7a7d2383e38b125e78041ebc7a54804"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 06 17:10:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 17:10:35 2010 -0700"
      },
      "message": "am faa1461d: am ab4f3c60: Merge \"Manual integration of I32a7b5 from froyo\" into kraken\n"
    },
    {
      "commit": "1d587e3d5d91fab1cf3048bbeeafa86445cbd08c",
      "tree": "85fb56a18bd34550932a7bd260ea38f9d8f8617f",
      "parents": [
        "ebad36db56017000ce8b1eb813537d90248e3ad0"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 06 16:31:34 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu May 06 16:31:34 2010 -0700"
      },
      "message": "Manual integration of I32a7b5 from froyo\n\nFix 2662816: Move UI update from async callback to ui thread.\n\nThis fixes a bug where the view hierarchy in AccountUnlockScreen was being\nmodified by the async callback thread from AccountManager.\n\nChange-Id: I5f1b4e04a7e4af68a5705545765f294cdbd0f17b\n"
    },
    {
      "commit": "2de49557322de1d273132d4cd73fd2cfdf7aaf09",
      "tree": "5e967d5b777362efeab5349495e7a80c815da5f3",
      "parents": [
        "5b4628f71adc8b44f43ae402907fc5555469be8c",
        "867ab64714afd080dcd6113ef57acab66e11863f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 17:38:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 29 17:38:29 2010 -0700"
      },
      "message": "am 867ab647: Integrate a bunch of stuff from Froyo:\n"
    },
    {
      "commit": "867ab64714afd080dcd6113ef57acab66e11863f",
      "tree": "83a9422074d4ca06080d4b5c7b6642c2b38cbe38",
      "parents": [
        "8abcce1f7b29a4f759d85c72f3f9e5183a5fe902"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 13:28:56 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 29 16:50:14 2010 -0700"
      },
      "message": "Integrate a bunch of stuff from Froyo:\n\nFix issue #2574016: Preferred activity setting is not persistent 14/48014/1\nauthor\tDianne Hackborn \u003chackbod@google.com\u003e\nWed, 7 Apr 2010 03:24:15 +0000 (20:24 -0700)\ncommitter\tDianne Hackborn \u003chackbod@google.com\u003e\nWed, 7 Apr 2010 03:24:15 +0000 (20:24 -0700)\ncommit\t3cce600614c2a2643ae9a38c6ed87c06c7bab0b6\ntree\t394f330634ab83a97b244fbd214d5edbbd44fa52\ttree | snapshot\nparent\t7d8866f9ef026870d4735d6f2ede49525150e53e\tcommit | diff\nFix issue #2574016: Preferred activity setting is not persistent\n\nThe recent tasks UI was trying to retrieve the current home activity\nin the wrong way, causing it to be a different match of activities and\nthus clearing any preferred activity that was set.\n\nIn the future we should look at what the package manager is doing here\nand make it more robust in how it clears the list...  but for now,\nthis is the safest thing.\n\nChange-Id: Idc917dffa7d05d62671213414387e8bdb2e34bea\n\nFix issue #2555171: Switching to app immediately after unmounting SD card causes... 28/48128/1\nauthor\tDianne Hackborn \u003chackbod@google.com\u003e\nThu, 8 Apr 2010 01:15:32 +0000 (18:15 -0700)\ncommitter\tDianne Hackborn \u003chackbod@google.com\u003e\nThu, 8 Apr 2010 01:15:32 +0000 (18:15 -0700)\ncommit\t31abd7f677190edfa67cb96fb4ddb166e974cb3e\ntree\t7cc1059c3c6689ba3f2af5161585b3e7241e0580\ttree | snapshot\nparent\t3cce600614c2a2643ae9a38c6ed87c06c7bab0b6\tcommit | diff\nFix issue #2555171: Switching to app immediately after unmounting SD card causes reboot.\n\nChange-Id: I509162e136dd721fecfaabc45a046537b2d19077\n\nFix issue #2586349: Accelerometer is enabled when in car mode 61/48361/1\nauthor\tDianne Hackborn \u003chackbod@google.com\u003e\nFri, 9 Apr 2010 23:40:33 +0000 (16:40 -0700)\ncommitter\tDianne Hackborn \u003chackbod@google.com\u003e\nFri, 9 Apr 2010 23:40:33 +0000 (16:40 -0700)\ncommit\tb0d3a2371f92d19d01aa2ca8e4f382738273f2dd\ntree\te134d055ce8efb4ef48a74c45da0325ed55852ea\ttree | snapshot\nparent\teeb2497f92b8d1466918990d536e2d31b5a85c07\tcommit | diff\nFix issue #2586349: Accelerometer is enabled when in car mode\n\nChange-Id: Iab5ca4ea9f69bd54f815fc7463df808d81c61ffd\n\nFix issue #2555171: Switching to app immediately after unmounting... 65/48665/1 dalvik-dev froyo froyo-plus-aosp froyo-release stage-korg-froyo stage-korg-master\nauthor\tDianne Hackborn \u003chackbod@google.com\u003e\nTue, 13 Apr 2010 19:48:30 +0000 (12:48 -0700)\ncommitter\tDianne Hackborn \u003chackbod@google.com\u003e\nTue, 13 Apr 2010 19:52:10 +0000 (12:52 -0700)\ncommit\tcddfd77b45662d7316aaed3d0159d0f42d284cfc\ntree\tc52d612ada1f85d3d38b3e776bc520b7a0b22256\ttree | snapshot\nparent\t5fa04b55a94b5cd98f1e6e1197cc4e6ef26a7061\tcommit | diff\nFix issue #2555171: Switching to app immediately after unmounting...\n\n...SD card causes reboot.\n\nDeal with unavailable apps in recent tasks UI.\n\nChange-Id: Ib85b773c5c6df7afb12db551b6cef63edbc6df64\n"
    },
    {
      "commit": "5661490a57ac7b1ded20ca4433eae4c5ecf41747",
      "tree": "76f963d3b8a5d1e1630f297859c062f44c09a2b0",
      "parents": [
        "9771190e3aa577fba9660f6dd4881ed39bfa6f0a",
        "318249e46783c69d495c3a023b0de97757687050"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 18:01:32 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 15 18:01:32 2010 -0700"
      },
      "message": "am 318249e4: Merge \"Manual merge of Ida6a4cdd3abcbcab7e2fe8450a25c0dc36765f04\" into kraken\n"
    },
    {
      "commit": "318249e46783c69d495c3a023b0de97757687050",
      "tree": "0417f183d8512fff6ae1d140e9ba15f180b19b6e",
      "parents": [
        "43725d4d4465e914a8c5209f254e780acc7fabd4",
        "5169fc57e38cda45d6fda4b47b727167dd937cc8"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 17:55:18 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 15 17:55:18 2010 -0700"
      },
      "message": "Merge \"Manual merge of Ida6a4cdd3abcbcab7e2fe8450a25c0dc36765f04\" into kraken"
    },
    {
      "commit": "5169fc57e38cda45d6fda4b47b727167dd937cc8",
      "tree": "77231677f6dfad39f57a63d2831ccc4fd9dd4267",
      "parents": [
        "5c14f2d08fb01be02b4952904c0f07464882653d"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 17:50:03 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 17:53:23 2010 -0700"
      },
      "message": "Manual merge of Ida6a4cdd3abcbcab7e2fe8450a25c0dc36765f04\n\nFix 2572446: Also watch keyboard changes in PIN/Password unlock.\n\nThe PIN/Password unlock screen was monitoring orientation changes.\nHowever, while docked, this isn\u0027t useful since orientation remains\nfixed. This change makes PasswordUnlockScreen also looks for\nchanges to config.hardKeyboardHidden.\n\nTested:\nWVGA device while docked and opening/closing the keyboard.\n\nChange-Id: Iaadb277028f2dd1f85fd0f627a686a86ac51a2ed\n"
    },
    {
      "commit": "9771190e3aa577fba9660f6dd4881ed39bfa6f0a",
      "tree": "a3e33514e81b7ba6b7614289864e74d22abdd151",
      "parents": [
        "d29def562fed95253edd687c96a0044d6eaabdf2",
        "43725d4d4465e914a8c5209f254e780acc7fabd4"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 17:51:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 15 17:51:30 2010 -0700"
      },
      "message": "am 43725d4d: Merge \"Manual merge of Idf6bb25438336616e6453e7afe0e79f227af98d3\" into kraken\n"
    },
    {
      "commit": "ecaced9a788910b3517bdab08b382c9d45e34dfe",
      "tree": "77c9e1167738308a596efcf87eb12873620b1f4d",
      "parents": [
        "5c14f2d08fb01be02b4952904c0f07464882653d"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 17:33:43 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Thu Apr 15 17:39:17 2010 -0700"
      },
      "message": "Manual merge of Idf6bb25438336616e6453e7afe0e79f227af98d3\n\nFix 2575838: Update emergency button in AccountUnlockScreen DO NOT MERGE\n\nAccountUnlockScreen wasn\u0027t registered to receive updates from\nUpdateMonitor. It now correctly updates the Emergency call button\nto allow the user to return to the call in progress (InCallScreen).\n\nTested on WVGA device with keyboard:\n- hitting Home during call, observing state, and pressing button to return to call.\n- hitting Home while not in call to ensure it still invokes EmergencyDialer.\n- above in various keyboard states.\n\nChange-Id: Ic4480ff69ff4479557ddb7f76c751b005b1c60bf\n"
    },
    {
      "commit": "368de81b71af00628b60558a52c7df53e1cd1e96",
      "tree": "ce8989a7d99f0dbe0e47adac47c48aa0c7d17f66",
      "parents": [
        "36b763e95290b231f614ab2fd0cab5eaecf16daa"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 13 14:41:27 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Apr 15 11:37:05 2010 -0400"
      },
      "message": "Lockscreen improvements from froyo.\n\n(In kraken as Ide3ad839.)\n\n\tI6872c3ad135bc34348adafa76e08a3878f1b506f\n\t\"Add emergency call button to PUK\u0027d lockscreen.\"\n\tBug: 2568732\n\n\tI5ad8745443fc97225af9efb938e4640cfc29b5d7\n\t\"Restore text field used by sliding tab to give ringer\n\tmode feedback.\"\n\tBug: 2587358\n\nChange-Id: I631d8e73571ccd566dc0ad80941bd739e614b9f6\n"
    },
    {
      "commit": "e82ca2dec0469714650b9e3d23a554d4ba9dab9f",
      "tree": "1edafec6e70a939b0c18e7851dc1802d94b4db59",
      "parents": [
        "8dc634e82f065e5090b99660739ba26217765789"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 13 14:41:27 2010 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Tue Apr 13 14:47:25 2010 -0400"
      },
      "message": "Manually integrating froyo lockscreen fixes:\n\n\tI6872c3ad135bc34348adafa76e08a3878f1b506f\n\t\"Add emergency call button to PUK\u0027d lockscreen.\"\n\tBug: 2568732\n\n\tI5ad8745443fc97225af9efb938e4640cfc29b5d7\n\t\"Restore text field used by sliding tab to give ringer\n\tmode feedback.\"\n\tBug: 2587358\n\nChange-Id: Ide3ad839aaf029930c0bf7ba4b9f6587efbd811d\n"
    },
    {
      "commit": "62accbcbaf69b76d502944edfe0155cf89e9ac80",
      "tree": "51510c3e3989951a1498dd8a714b9ea52011a2f8",
      "parents": [
        "ff28490f5cb9b8d0ed0f6328b496c65d3209962f",
        "02d8d1e036fcb65ecf6b3deb8fe4b37214279bfc"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Apr 06 23:47:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 06 23:47:52 2010 -0700"
      },
      "message": "am 02d8d1e0: am a240ce20: Merge \"Finish moving the policies out of frameworks/policies/base and into frameworks/base.\" into kraken\n"
    },
    {
      "commit": "a5c51373d478ea33ffddab13ca8a722c297802ef",
      "tree": "0686b4e1c43bbbf38a2c21cbf36b6b30e87395a0",
      "parents": [
        "b1b28e26d771f5f0e10a52b8fd77c276c641e086"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Apr 06 20:21:30 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Apr 06 20:21:30 2010 -0500"
      },
      "message": "Finish moving the policies out of frameworks/policies/base and into frameworks/base.\n\nChange-Id: Id3a0c06202b0f6f2206acf490c8655d340ee0556\n"
    },
    {
      "commit": "6e251d7d669b04a1601134d1d00412891bd9c186",
      "tree": "7b6e8e484f7ee326bde24509bf648537cf658cfe",
      "parents": [
        "e6b6f42eff770cd7aaa0f6ecfc8d9182b308c90e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Apr 06 15:43:25 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Apr 06 15:43:25 2010 -0700"
      },
      "message": "de-activate makefile\n\nChange-Id: I6def51dea7aab002f7dbbe1e2573f52a2caa94fe\n"
    },
    {
      "commit": "f97c3434220cbb444c53cea113a150c15529d271",
      "tree": "f89702b9d878fa255a8caeda4be7766a12072845",
      "parents": [
        "663eefe32f8d3321954137dcabdedfd81bed931a"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Apr 06 15:43:25 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Apr 06 15:43:25 2010 -0700"
      },
      "message": "de-activate makefile\n\nChange-Id: Ib249f20abd24b8e8f113eb80667f1a8f91b9a7a0\n"
    },
    {
      "commit": "663eefe32f8d3321954137dcabdedfd81bed931a",
      "tree": "693dca29449d575e35cd6e58e5f57fb56ceb26f5",
      "parents": [
        "85cbee09dbfb05cb73b8d9f2d43b8715a362b981",
        "e6b6f42eff770cd7aaa0f6ecfc8d9182b308c90e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Apr 06 09:06:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 06 09:06:38 2010 -0700"
      },
      "message": "am 2994a0cb: am 7d8866f9: Redo the look of the recent apps switcher.\n"
    },
    {
      "commit": "e6b6f42eff770cd7aaa0f6ecfc8d9182b308c90e",
      "tree": "2609dd6fa53b18114f07694ff3ef13686ffd4437",
      "parents": [
        "fc8686b9ec61fe48cc678cc08979d91b5fd4d225",
        "e58d1c4e4a03a41c9b8eee6b79304fbf85998d7d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Apr 06 08:41:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 06 08:41:42 2010 -0700"
      },
      "message": "am 7d8866f9: Redo the look of the recent apps switcher.\n\nMerge commit \u00277d8866f9ef026870d4735d6f2ede49525150e53e\u0027 into kraken\n\n* commit \u00277d8866f9ef026870d4735d6f2ede49525150e53e\u0027:\n  Redo the look of the recent apps switcher.\n"
    },
    {
      "commit": "e58d1c4e4a03a41c9b8eee6b79304fbf85998d7d",
      "tree": "693dca29449d575e35cd6e58e5f57fb56ceb26f5",
      "parents": [
        "466d77617ace8380ab8c52ede20790755d8ff092"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Apr 05 16:15:37 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Apr 05 16:16:40 2010 -0500"
      },
      "message": "Redo the look of the recent apps switcher.\n\nChange-Id: Icb523e2f5949c2b502aa8003aa14b7ac98a616f2\n"
    },
    {
      "commit": "85cbee09dbfb05cb73b8d9f2d43b8715a362b981",
      "tree": "22fbc420b9abe97e8b1ff7727427ab9acf7a5815",
      "parents": [
        "e09826c6d3f0068393506c772666322a9bd9a493",
        "fc8686b9ec61fe48cc678cc08979d91b5fd4d225"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 30 18:26:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 30 18:26:22 2010 -0700"
      },
      "message": "am 9dda10c3: am 876b0644: Fix 2555028: Restore showing tab unlock before PIN \u0026 password entry.\n"
    },
    {
      "commit": "fc8686b9ec61fe48cc678cc08979d91b5fd4d225",
      "tree": "f11e1a1b9ae0c99cd6297f779a4fd44dde8a397c",
      "parents": [
        "7836b05105ab2c8cd945b63ccebb2373396ad5b2",
        "466d77617ace8380ab8c52ede20790755d8ff092"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Mar 30 18:20:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 30 18:20:03 2010 -0700"
      },
      "message": "am 876b0644: Fix 2555028: Restore showing tab unlock before PIN \u0026 password entry.\n\nMerge commit \u0027876b0644770d1790b21e4049bc7f40851045dc86\u0027 into kraken\n\n* commit \u0027876b0644770d1790b21e4049bc7f40851045dc86\u0027:\n  Fix 2555028: Restore showing tab unlock before PIN \u0026 password entry.\n"
    },
    {
      "commit": "466d77617ace8380ab8c52ede20790755d8ff092",
      "tree": "22fbc420b9abe97e8b1ff7727427ab9acf7a5815",
      "parents": [
        "8154cd3bbce98e2b3850d47a7d0826e93860506b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Mar 29 19:31:26 2010 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Mon Mar 29 19:31:26 2010 -0700"
      },
      "message": "Fix 2555028: Restore showing tab unlock before PIN \u0026 password entry.\n\nThis fixes a bug introduced in change 46594 that prevents showing\nthe tab unlock screen before PIN \u0026 password entry.\n\nChange-Id: Ibd603921f6a22b603652c4751fa0f2f7d9129bb2\n"
    }
  ],
  "next": "e09826c6d3f0068393506c772666322a9bd9a493"
}
