)]}'
{
  "log": [
    {
      "commit": "eabfb3a36e9469c5e219f92b39b7200104319185",
      "tree": "ef38c351e0d5f6b1a60b514c78a4396e3a2c20a6",
      "parents": [
        "455b7bb83ce4a12a72f5b8341eda19754d582293"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 16 16:28:22 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 16 17:32:50 2012 -0700"
      },
      "message": "Add new scale-up window manager animation.\n\nLike zoom thumbnail, but without the thumbnail.\n\nChange-Id: I9486dd204398b87c9e70ff0d05d03f4a22449cd6\n"
    },
    {
      "commit": "ac14351e16e1258f1cb54e2bf772b8be004eb2b8",
      "tree": "55c22fe8e19d35764f00a6ffad899e4fd2c4ccd0",
      "parents": [
        "030711c39b6093024d784c1c3d7566bd5a3e3489"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 18:57:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 19:33:11 2012 -0700"
      },
      "message": "Move some APIs from window manager to input manager.\n\nSimplified input injection API down to just one call.\n\nRemoved all input state reading API.  It was only used by the\nwindow manager policy and required a permission that applications\ncould not obtain.  READ_INPUT_STATE is now unused and deprecated.\n\nChange-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00\n"
    },
    {
      "commit": "5459c43b83c3a9d0406f01deffaadd2ef458518c",
      "tree": "9193ba676d54cf522aec320b089692c9fcecbbd8",
      "parents": [
        "5b4a57973c85afb2f5ec833dc2c202111399b871",
        "f87d19621dc2a30232bba1f51862a0b671eb9729"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 05 11:47:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 11:47:02 2012 -0700"
      },
      "message": "Merge \"Clean up status bar, system bar, navigation bar management.\""
    },
    {
      "commit": "f87d19621dc2a30232bba1f51862a0b671eb9729",
      "tree": "8bf53cb17770100b6fd1c1f31f1b27eb7121ce3e",
      "parents": [
        "5b86de1e6b8f597ab2444de0f2274546321f1810"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 04 12:48:24 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 04 16:00:45 2012 -0700"
      },
      "message": "Clean up status bar, system bar, navigation bar management.\n\nThe status bar and navigation bar are two completely separate\nelements, with their own semantics.  The system bar now classifies\nitself as a navigation bar, since that is really how it behaves.\n\nThis required rewriting the HDMI resizing code, so that it is\nall done by PhoneWindowManager since that is what is responsible\nfor the size of the navigation bar (and thus now system bar).  This\nactually gets rid of a fair amount of code, and means we can also\ndo the same thing for a pure navigation bar.\n\nLikewise the system bar now has the navigation bar ability to be\nhidden when requested by system UI flags.  To get the behavior\nwe want on Xoom, we only allow the nav bar to be hidden when it\nwill help provide a better aspect ratio for showing widescreen\nvideos.\n\nFinally the nav/system bar now animates when hidden and shown.\n\nChange-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a\n"
    },
    {
      "commit": "ec4a50428d5f26a22df3edaf7e5b08f41d5cb54b",
      "tree": "cd47b15082ff35879cf6e22a86f44108f45920aa",
      "parents": [
        "58a40a3e92f8a53ac1068f0839dec4a1707fa6fb"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 04 10:27:15 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 04 12:05:59 2012 -0700"
      },
      "message": "Embed layout padding in nine patch images\n\n- Added a new custom PNG chunk that carries the layout padding ints.\n- Extract the padding ticks from .9.png images and store in the chunk.\n- Load the padding information at runtime into Bitmap and NinePatchDrawable.\n\n- The new chunk is ordered first so that it doesn\u0027t cause a problem in older\n  versions of the platform.\n\nBug: 6087201\n\nChange-Id: I5de46167a1d44b3ec21065b0c165e594b1dc8399\n"
    },
    {
      "commit": "fbd0509f4746ae1ebca4ab91fc55ebd234ba9d3d",
      "tree": "c7ce19b712ec537ddd8757605b4e068df2e18686",
      "parents": [
        "d5f2374e13a7bcefbc7252b814d128794f22af93",
        "22f700a1b8fb9d2ac7b261e30a46a040928c23bc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 23 16:29:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 16:29:50 2012 -0700"
      },
      "message": "Merge \"Add Delegate for ViewRootImpl#isInTouchMode to prevent IPC call in Eclipse.\""
    },
    {
      "commit": "22f700a1b8fb9d2ac7b261e30a46a040928c23bc",
      "tree": "8c56dc423da3c3ec1e443f090c8426243265de48",
      "parents": [
        "0aa4713e47a53377720a043cf1b043ce31cb73da"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 23 16:07:23 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 23 16:07:23 2012 -0700"
      },
      "message": "Add Delegate for ViewRootImpl#isInTouchMode to prevent IPC call in Eclipse.\n\nAlso fix some new/removed method from BitmapFactory.\n\nChange-Id: I606bd8bee6ff1e2c6c9472b4672175bfdaff45de\n"
    },
    {
      "commit": "8078d8c8a282ca81344febe7256f63b1e805e3aa",
      "tree": "6bfb8ab0a389c2ae344088017bd0ceee1e913660",
      "parents": [
        "3c4da3cad04ca878a4a37fcca3f3e2ff51d03fcb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 20 11:11:26 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 23 14:13:13 2012 -0700"
      },
      "message": "Add new thumbnail animation.\n\nUse it for recent tasks switching.\n\nNot perfect yet by far, but something.\n\nAlso fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D\n\nChange-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2\n"
    },
    {
      "commit": "5d701eddcf7f4abd5867ec3bf2091916d5ebbdf1",
      "tree": "20ef99ad3536036c82e74b616b998e960f7c107c",
      "parents": [
        "55ba267c097b5aadc265bbb9abc7ec5323c33194"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 16 14:58:47 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Mar 16 15:14:02 2012 -0700"
      },
      "message": "LayoutLib: Properly support attr ns when used in styles.\n\nChange-Id: I885864588928589d7c9a34b94339917c5be47fa5\n"
    },
    {
      "commit": "a421f6c0ba8c354e2a81830e6402654bbf732780",
      "tree": "42a9806e866f8366fba62edb91d8f066513193cc",
      "parents": [
        "a1d2bd829d4804b7841d7c39c8d2ae438b634efb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 22 10:21:02 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 15 16:23:51 2012 -0700"
      },
      "message": "Fix sdk layout rendering in JB.\n\nSince JB, com.android.internal.R does not contain all the resources,\ninstead only the ones that are accessed through Java.\nThis means we need to dynamically generate IDs for resources that are\nprivate and only accessed from other XML resources. This is done\nthrough the DynamicIdMap class.\n\nAlso add a PolicyManager and a PowerManager since those are now\nneeded by ViewRootImpl?!?\n\nChange-Id: If2ae8ad79502fa084d852664a44aefd46e01aec6\n"
    },
    {
      "commit": "a4972e951bf2bdb7afdafee95b3ab0c15b8bacae",
      "tree": "9800a9dcd62d945a8ad71549ebcef70393ef5442",
      "parents": [
        "89ea4ca9c26f3c7e365525a0b83500e85517a457"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 14 10:38:05 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 14 12:57:14 2012 -0700"
      },
      "message": "Add new \"options\" argument to all startActivity APIs.\n\nThis will be used to allow new features to be requested...  such as,\nsay, a special kind of animation.  Right now there are no options\ndefined.\n\nChange-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7\n"
    },
    {
      "commit": "bb9908b828a8cfd5965553be66faa6af89973697",
      "tree": "33ab74a9cb8ad69058cece5ae83d4b82f7b51633",
      "parents": [
        "3bef5e9f3aa90465ee3ab66ef33d7a88d1b0c5c1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 11:14:07 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 15:05:12 2012 -0800"
      },
      "message": "Dispatch screen state change events to Views\nBug #6120957\n\nUsing this new callback, views can interrupt and resume their\nanimations or other periodic tasks based on the current state\nof the display.\n\nChange-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa\n"
    },
    {
      "commit": "e0cf12fc4d5c9de464f899522a9e2ca77dbb865a",
      "tree": "5b8af20f2926aeee0ca63a82f1dd3d6ccd9e23e2",
      "parents": [
        "7e4e561bc717a6eea4e0d06ec4173ad27420425f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 11:08:31 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 08 11:08:31 2012 -0800"
      },
      "message": "Fix the build\n\nChange-Id: Ia86ba9b1c432ab3f8107557e95b12c9eedc4d9f7\n"
    },
    {
      "commit": "aeb17f17ffd8d3384dfed223e40010b4abac4cc5",
      "tree": "411156d560e7bf4ec626d9e91d5290229ca6c199",
      "parents": [
        "0a66900ee5093afa12a5786c4b9dc0e58991f426",
        "77fdcbff8b458dd3430b38e60aee1a28ca92a738"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 27 07:51:05 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 27 07:51:05 2012 -0800"
      },
      "message": "am 77fdcbff: am f038868d: am 44e63a21: Support rendering layout that use the new res-auto namespace.\n\n* commit \u002777fdcbff8b458dd3430b38e60aee1a28ca92a738\u0027:\n  Support rendering layout that use the new res-auto namespace.\n"
    },
    {
      "commit": "77fdcbff8b458dd3430b38e60aee1a28ca92a738",
      "tree": "ef25b6f7891b9a6a7daa77c6abc2dcf8a887e2c9",
      "parents": [
        "44b1a43d823ec3cb93e02df4834b27a75bb30ba5",
        "f038868d74af534effceaa8f1d932f9576f4f647"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 24 19:35:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 24 19:35:25 2012 -0800"
      },
      "message": "am f038868d: am 44e63a21: Support rendering layout that use the new res-auto namespace.\n\n* commit \u0027f038868d74af534effceaa8f1d932f9576f4f647\u0027:\n  Support rendering layout that use the new res-auto namespace.\n"
    },
    {
      "commit": "44e63a218cf8fcab9b4418246a512bd0b0c9157b",
      "tree": "a298468377df3f6d26a257a4997fe37fbb33b170",
      "parents": [
        "5786f5cf1b248b79f938b3fa3c5d534159261f09"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 24 19:02:18 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 24 19:29:31 2012 -0800"
      },
      "message": "Support rendering layout that use the new res-auto namespace.\n\nChange-Id: I9b89c965dc8c9458e74c15ab8ff765e16e1b32c2\n"
    },
    {
      "commit": "cb581bbe2e1fd2a55b70a516fbaac53da0108c28",
      "tree": "d22a8f97d563432cdf66a157141348acee85c076",
      "parents": [
        "2521a0197065e5ff0335199becc5a84de295fd09",
        "34706a4c81b82319a79a1b5ffa9084ed92a6e284"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 16:37:35 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 16:37:35 2012 -0800"
      },
      "message": "resolved conflicts for merge of 34706a4c to master\n\nChange-Id: I4dd24f3b917aa7e3d2c4b0fae51e951dfcf88ba8\n"
    },
    {
      "commit": "34706a4c81b82319a79a1b5ffa9084ed92a6e284",
      "tree": "7db04d1c5c352025b3c80df03dec0d4fa11f1625",
      "parents": [
        "92ce6314c15bd6d59a94a247ae63f1da9b4ccab2",
        "e65a9ab1ea42d1f6190bee844ee666b7910d71ef"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 16:26:57 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 24 16:26:57 2012 -0800"
      },
      "message": "am e65a9ab1: am 5786f5cf: Merge \"Fix build.\" into ics-mr1\n\n* commit \u0027e65a9ab1ea42d1f6190bee844ee666b7910d71ef\u0027:\n  Fix build.\n"
    },
    {
      "commit": "b69b2c01b4de8a161d6c39e7428ffd25c36eb8cc",
      "tree": "7463eb6300e658e103706bda5f9c2e2c6092b1d6",
      "parents": [
        "7663d80f6b6fd6ca7a736c3802013a09c0abdeb9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 16:10:26 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 16:10:26 2012 -0800"
      },
      "message": "Fix build.\n\nChange-Id: Id3262bff0df598ecc81a4346dee9febd3aaa60c9\n"
    },
    {
      "commit": "5e6c2194774eb5449889f3a9f984897bf0f06b1c",
      "tree": "f149d093320afc1a93ea55b780094165c440e560",
      "parents": [
        "6822c97898ef6c73528d17beb161059e5032f34a",
        "f8e737cb61ab86b90ec318591fbcfec40fac63cf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 23 12:22:40 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 23 12:22:40 2012 -0800"
      },
      "message": "am f8e737cb: am 22701ec5: am 503247f2: Merge \"Make sure resource references are resolved.\" into ics-mr1\n\n* commit \u0027f8e737cb61ab86b90ec318591fbcfec40fac63cf\u0027:\n  Make sure resource references are resolved.\n"
    },
    {
      "commit": "f8e737cb61ab86b90ec318591fbcfec40fac63cf",
      "tree": "d527a1ea9d78e12ef73f80cd310ec9614303a924",
      "parents": [
        "32916f7a22f2abf5c1e7021f44c2337ca172f2e5",
        "22701ec5b11f6138e6298814fff5f09da82df144"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 22 10:52:16 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 22 10:52:16 2012 -0800"
      },
      "message": "am 22701ec5: am 503247f2: Merge \"Make sure resource references are resolved.\" into ics-mr1\n\n* commit \u002722701ec5b11f6138e6298814fff5f09da82df144\u0027:\n  Make sure resource references are resolved.\n"
    },
    {
      "commit": "c3f979f6fecb8b46e9315fddb2a1f344bf1f1447",
      "tree": "2558c8a34c9bf516a3c669629c378c2516a20074",
      "parents": [
        "2d559b5311be1cd909e5a445afe75a840688b822"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 21 14:26:32 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 21 14:33:37 2012 -0800"
      },
      "message": "Make sure resource references are resolved.\n\nXmlPullAttribute can query for attributes and return them in a given\nformat. We need to make sure they are first resolved before\ntrying to convert them to int/float/boolean/...\n\nChange-Id: I2aaced022a0382e501978c396e49d6191d53bdc8\n"
    },
    {
      "commit": "a175a5b7ea3682cb58cca7f9726d0b8171cd549d",
      "tree": "a0747492e739adc22a9415fe37a19a71a4a1e010",
      "parents": [
        "1654d0b8d9ba477a0134338838b6e5921f1aabb8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 15 19:18:31 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 15 19:32:16 2012 -0800"
      },
      "message": "Encapsulate the ViewRootImpl\u0027s handler.\n\nThis change makes it much easier to make sense of the messages that\nget posted to the ViewRootImpl\u0027s handler by encapsulating their point\nof dispatch within the ViewRootImpl itself.\n\nAs part of this change, the View.AttachInfo now carries a reference\nto the ViewRootImpl itself, which simplifies some code that used\nto try to find the ViewRootImpl by getting the root view\u0027s parent.\n\nIn principle, it might have been nice to hide the ViewRootImpl from\nthe View hierarchy but in practice the two were coupled in many ways.\n\nChange-Id: I51ebccdf5f8c8c505cd6f17cdf594174d041dc54\n"
    },
    {
      "commit": "688bd47fccf1a1373e6287bc49b5b33fad12b7f3",
      "tree": "8b394c364fc55aad2d87188156a058ef52d43fd5",
      "parents": [
        "ed219c117d449304bd720fc7d7da1f361015dc58"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Feb 09 20:09:17 2012 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Feb 10 16:44:12 2012 +0900"
      },
      "message": "Add an api to switch to the next IME and subtype\n\nBug: 5975302\n\nChange-Id: I48aa4220159c65f456d61a324efcdf0a1ceec91c\n"
    },
    {
      "commit": "c8a0b8e6bccc604d3670d72cab0691ab6b8302c1",
      "tree": "1694852a78b981679479120bd1b0cb2eaa47d96a",
      "parents": [
        "c10cd4a6e3021010786c1dbd69ab4e03ecb689e6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 06 17:29:19 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 06 17:29:19 2012 -0800"
      },
      "message": "Fix a setBackgroundDrawable in layoutlib.\n\nChange-Id: Id5f3ec8cc6863fa5929743ef4014c331633efce9\n"
    },
    {
      "commit": "331bb0c393d5e2ea2485102dcddbb8c2d42654d2",
      "tree": "ae190ea4bed14fbe12870f685b7c59f74219eede",
      "parents": [
        "a9d9fa723a10ae41c047a4e8eba330112d344dc8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 06 14:57:22 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 06 16:40:03 2012 -0800"
      },
      "message": "Setup ActionBars in layoutlib the same way the platform does it. do not merge.\n\nInstead of using a simple ImageView for the icon, this uses the platform\nlayout/action_bar_home which uses a custom class to position and resize\nthe icon (and also supports the Up icon that we don\u0027t yet support).\n\nThis ensures that the icon is properly positionned and sized like\non devices.\n\n(cherry picked from commit 7396348dfcfb45b7ad055f4c18cabbe5e8270d26)\n\nChange-Id: Ifd3bc318089b70ba843519523e366e59d434e919\n"
    },
    {
      "commit": "7396348dfcfb45b7ad055f4c18cabbe5e8270d26",
      "tree": "66b6607b253b5197e19194bd423f2e4cedd2836b",
      "parents": [
        "0afa7e2d95a1ae047ceddf2ca67f05c67ac30770"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 06 14:57:22 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 06 15:11:12 2012 -0800"
      },
      "message": "Setup ActionBars in layoutlib the same way the platform does it.\n\nInstead of using a simple ImageView for the icon, this uses the platform\nlayout/action_bar_home which uses a custom class to position and resize\nthe icon (and also supports the Up icon that we don\u0027t yet support).\n\nThis ensures that the icon is properly positionned and sized like\non devices.\n\nChange-Id: I57432afa82d257bb043247001320b368045d7f55\n"
    },
    {
      "commit": "ec99f609cc2db862db307f7ba56a2400c58403a0",
      "tree": "6fe7103e5cf1e34819149e92d0699c299dec854e",
      "parents": [
        "c445ed701ade87e5a15f161483fb0200ff5e3e4a",
        "4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 18:50:55 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 18:50:55 2012 -0800"
      },
      "message": "Merge \"Rename CancellationSignal using preferred spelling.\""
    },
    {
      "commit": "4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e",
      "tree": "36df1bce8fe7295d0ab778ca519232a291a3294f",
      "parents": [
        "8ca8a69d5801ad4b809e7b9dbf53bd728820924b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 17:05:00 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 18:02:16 2012 -0800"
      },
      "message": "Rename CancellationSignal using preferred spelling.\n\nBug: 5943637\nChange-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265\n"
    },
    {
      "commit": "46d43ccfd8cef75b4315828073c094cf1efb05ff",
      "tree": "572565d2d3cfc8db8423cfc9aac3386837d8ab46",
      "parents": [
        "c69acaef0b31af922931461c11f075e436642fef"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 02 15:44:50 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 02 17:45:45 2012 -0800"
      },
      "message": "Make Layoutlib compile on Java 6.\n\nChange-Id: Ic8f0e321c6c218de83664fc01f253a07fa80852c\n"
    },
    {
      "commit": "75ea64fc54f328d37b115cfb1ded1e45c30380ed",
      "tree": "4254a5d2d0662de8b606b38fea6987da17c130e3",
      "parents": [
        "ebc016c01ea9d5707287cfc19ccc59b21a486c00"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jan 25 19:37:13 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jan 27 17:33:21 2012 -0800"
      },
      "message": "Implement a cancelation mechanism for queries.\n\nAdded new API to enable cancelation of SQLite and content provider\nqueries by means of a CancelationSignal object.  The application\ncreates a CancelationSignal object and passes it as an argument\nto the query.  The cancelation signal can then be used to cancel\nthe query while it is executing.\n\nIf the cancelation signal is raised before the query is executed,\nthen it is immediately terminated.\n\nChange-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61\n"
    },
    {
      "commit": "d3fe9abfb9a6a21a18abde6a98dceb423c04ebef",
      "tree": "35cadfcae72edfa6d0bff057bfd84a2e60857edd",
      "parents": [
        "865534a0e30982b0e669006509b9590fad129295",
        "ab9601cdbb95ae94088750eff9a926a572c1a4d6"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jan 20 15:48:21 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 15:48:21 2012 -0800"
      },
      "message": "am ab9601cd: am 230a7092: Merge \"Fix 5863053: Add method to lock screen immediately.\" into ics-mr1\n\n* commit \u0027ab9601cdbb95ae94088750eff9a926a572c1a4d6\u0027:\n  Fix 5863053: Add method to lock screen immediately.\n"
    },
    {
      "commit": "d2f0dcd182fbc0423d206919e81f3845fb9b8155",
      "tree": "1c2e12890b625fc29a26b7bb67cd485b04f45a8c",
      "parents": [
        "bad12166190a7e8087eb5db0ae8df9a4e5843fde",
        "68fc1dfce050f1406f751e71cadd1b9fdb0f825c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 17:42:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 17:42:10 2012 -0800"
      },
      "message": "Merge \"Remove unused code\""
    },
    {
      "commit": "68fc1dfce050f1406f751e71cadd1b9fdb0f825c",
      "tree": "b77dabe0c0ded8067cafb5278fe4cfc5a4ed002a",
      "parents": [
        "f9d9c065ed75f1196316a9a31f92309f602cef76"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 17:41:39 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 17:41:39 2012 -0800"
      },
      "message": "Remove unused code\n\nChange-Id: Ife0a43f3cfe64a1e74401b10bf74d37cbeefb5af\n"
    },
    {
      "commit": "5bf2802ad9de237ccc014489dd36ff4baadadfaa",
      "tree": "b1a7d91193d66de13924be8d0b58d9637ed2a76e",
      "parents": [
        "170bfe32ab8971805d56f8870758cbc46060d1ef"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 18 17:08:53 2012 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 18 17:08:53 2012 -0800"
      },
      "message": "Fix broken drawCircle LayoutLib.\n\nChange-Id: I5e23bbe0119e385fa2f77854a8f88128351d3759\n"
    },
    {
      "commit": "93c518e4f8abd98f87cda1712b30a5a86cfa60dd",
      "tree": "fd9e7459bf5a228aef50826097a2cc714b8a6013",
      "parents": [
        "ff321d496a6a07fc667112ecfe4d9a107d44147b"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 15:55:31 2012 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 18:11:05 2012 -0800"
      },
      "message": "Fix 5863053: Add method to lock screen immediately.\n\nThis fixes a bug where the device fails to lock when DevicePolicyManagerService\nrequests the device to be locked and the screen was off because the user hit\nthe power button.\n\nThe change allows DPMS to directly invoke screen lock, bypasssing the screen state.\n\nChange-Id: Iecdda6fc61e9c519119de495be23c69c3b983921\n"
    },
    {
      "commit": "e98ae0a050d6ce4b3e2aec7c070a87922086c256",
      "tree": "1f2b043f9f7ee1425499fddf5c50d5125f5760c3",
      "parents": [
        "7f2e21b6f4de96c8be986b5ec02200fac464f814",
        "f7270ba9083e5b0069f73fc88aec439ab439275b"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Dec 06 13:31:04 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 06 13:31:04 2011 -0800"
      },
      "message": "Merge \"Upgrade layoutlib generation code to use ASM 4.0\""
    },
    {
      "commit": "96e942dabeeaaa9ab6df3a870668c6fe53d930da",
      "tree": "c2bee431f14b90422586d0dc1e7d77256474fadb",
      "parents": [
        "0a0a1248cfc03940174cbd9af677bafd7280a3bc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Nov 30 19:55:01 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Dec 05 16:39:59 2011 -0800"
      },
      "message": "Use a Choreographer to schedule animation and drawing.\n\nBoth animations and drawing need to march to the beat of\nthe same drum, but the animation system doesn\u0027t know\nabgout the view system and vice-versa so neither one\ncan drive the other.\n\nWe introduce the Choreographer as a drummer to keep\neveryone in time and ensure a magnificent performance.\n\nThis patch enabled VSync based animations and drawing by\ndefault.  Two system properties are provided for testing\npurposes to control the behavior.\n\n\"debug.choreographer.vsync\": Enables vsync based animation\ntiming.  Defaults to true.  When false, animations are\ntimed by posting delayed messages to a message queue in\nthe same way they used to be before this patch.\n\n\"debug.choreographer.animdraw\": Enables the use of the animation\ntimer to drive drawing such that drawing is synchronized with\nanimations (in other words, with vsync or the timing loop).\nDefaults to true.  When false, layout traversals and drawing\nare posted to the message queue for execution without any delay or\nsynchronization in the same way they used to be before this patch.\n\nStubbed out part of the layoutlib animation code because it\ndepends on the old timing loop (opened bug 5712395)\n\nChange-Id: I186d9518648e89bc3e809e393e9a9148bbbecc4d\n"
    },
    {
      "commit": "f7270ba9083e5b0069f73fc88aec439ab439275b",
      "tree": "23d213439821ac7ecbb377d1c0e4dbb9d332063c",
      "parents": [
        "58915ce9222b18064b4de0be7c23c488b52eaee5"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Dec 05 14:26:04 2011 -0800"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Mon Dec 05 14:26:04 2011 -0800"
      },
      "message": "Upgrade layoutlib generation code to use ASM 4.0\n\nChange-Id: I46b3854a05677dc7cadd217efb001dbb25631fbd\n"
    },
    {
      "commit": "c0b7f65ae0594e19d1272e5caf2d83638041d19c",
      "tree": "cc78ccc95a642e060a8a3d96218f1e312ad957e9",
      "parents": [
        "cb52d6760078197cd6d0c16349348dd2ad16a88c",
        "496f6e2ad656c5bb8a277e191554d16abd290b58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 28 16:57:17 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 28 16:57:17 2011 -0800"
      },
      "message": "am 496f6e2a: am b54980d1: Merge \"Fix issue #5588689: Black camera preview after coming back from gmail\" into ics-mr1\n\n* commit \u0027496f6e2ad656c5bb8a277e191554d16abd290b58\u0027:\n  Fix issue #5588689: Black camera preview after coming back from gmail\n"
    },
    {
      "commit": "6d05fd3c795088ac60f86382df5a66d631e8a0cb",
      "tree": "c6363c2b687619f594e95b4b67b83c3d015dab58",
      "parents": [
        "e35581ad5ad635f9dcfe4ab6a432c48b46b782cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Nov 19 14:36:15 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 28 14:45:50 2011 -0800"
      },
      "message": "Fix issue #5588689: Black camera preview after coming back from gmail\n\nMake surface management between SurfaceView and the window manager\nmuch more controlled, to ensure that SurfaceView always gets to report\nthe current surface is destroyed before the window manager actually\ndestroys it.\n\nAlso a small tweak to allow windows that have a wallpaper background\nto still have a preview window.  This makes launching home after it\nhas been killed feel much more responsive.\n\nChange-Id: I0d22cf178a499601a770cb1dbadef7487e392d85\n"
    },
    {
      "commit": "8836c55818937ba00f186075eb7efb6462191113",
      "tree": "baab13b80a6e58f4648a612840ecf2adff662791",
      "parents": [
        "688ff9a7d6c42d4b26f1a72f963d09203f774c3f"
      ],
      "author": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Nov 01 11:51:20 2011 -0700"
      },
      "committer": {
        "name": "Tor Norbye",
        "email": "tnorbye@google.com",
        "time": "Tue Nov 01 11:51:20 2011 -0700"
      },
      "message": "Set theme-tag in render log when failing to find style\n\nChange-Id: I20461a7113eb25469deca13dca870936bdb33a29\n"
    },
    {
      "commit": "0c4ccff36930ff4f0292b94ad51e164c9fa060a3",
      "tree": "062b194978f180d67b352cc64b552a485bdead62",
      "parents": [
        "70ac412b2fe7be2507189a9fdfb30c43b36d56ac"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 19 16:39:14 2011 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Oct 19 16:39:14 2011 -0400"
      },
      "message": "Add hasNavigationBar() to the window manager.\n\nIt is no longer sufficient to check the value of\ninternal.R.bool.config_showNavigationBar to determine if a\nnavigation bar (separate from the status bar) is shown on a\ndevice, because the emulator needs to be able to override\nthis value (now possible by setting qemu.hw.mainkeys to \"1\"\nor \"0\", for navbar or no navbar, respectively).\n\nThis logic is now contained in PhoneWindowManager, and any\nclients wishing to know whether the system has a software\nnav bar should consult the new hasNavigationBar() method.\n\nBug: 5404945\nChange-Id: I119d32a8c84b88b2ef46f63244e7f11dc5de0359\n"
    },
    {
      "commit": "d2183654e03d589b120467f4e98da1b178ceeadb",
      "tree": "c52368d929521fd0d7182dc3cf53f8e4b37ed25f",
      "parents": [
        "1d8e7d640ad5ed6fe82bca017293dd89169f1c2e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 09 12:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 09 22:10:36 2011 -0700"
      },
      "message": "Fix ownership of CursorWindows across processes.\nBug: 5332296\n\nEnsure that there is always an owner for each CursorWindow\nand that references to each window are acquired/released\nappropriately at all times.\n\nAdded synchronization to CursorToBulkCursorAdaptor to\nprevent the underlying Cursor and CursorWindow from being\nremotely accessed in ways that might violate invariants,\nresulting in leaks or other problems.\n\nEnsured that CursorToBulkCursorAdaptor promptly releases\nits references to the Cursor and CursorWindow when closed\nso they don\u0027t stick around longer than they should, even\nif the remote end hangs onto the IBulkCursor for some reason.\n\nCursorWindow respects Parcelable.FLAG_WRITE_RETURN_VALUE\nas an indication that one reference to the CursorWindow is\nbeing released.  Correspondingly, CursorToBulkCursorAdaptor\nacquires a reference to the CursorWindow before returning\nit to the caller.  This change also prevents races from\nresulting in the transfer of an invalid CursorWindow over\nthe wire.\n\nEnsured that BulkCursorToCursorAdaptor promptly releases\nits reference to the IBulkCursor when closed and throws\non attempts to access the cursor while closed.\n\nModified ContentProviderNative to handle both parts of\nthe wrapping and unwrapping of Cursors into IBulkCursors.\nThis makes it a lot easier to ensure that the right\nthings happen on both ends.  Also, it turns out that\nthe only caller of IContentProvider.bulkQuery was\nContentProviderNative itself so there was no need\nto support bulkQuery on ContentProviderProxy and it was\njust getting in the way.\n\nImplement CloseGuard on CursorWindow.\n\nChange-Id: Ib3c8305d3cc62322f38a06698d404a2989bb6ef9\n"
    },
    {
      "commit": "85b9edf2da0534bc53d139bb88cda8866d265afe",
      "tree": "a0a50380b9f263103fbc99c6622f40e7541d95f8",
      "parents": [
        "7853c579fa52e4365c6e44ba38aeb3299d776f44",
        "9a230e01a1237749a8a19a5de8d46531b0c8ca6a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 06 15:15:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 06 15:15:32 2011 -0700"
      },
      "message": "Merge \"Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately\""
    },
    {
      "commit": "9a230e01a1237749a8a19a5de8d46531b0c8ca6a",
      "tree": "c62734c0dcd00cc9add7c70bd60e8946e0915735",
      "parents": [
        "fe7fcd23d5b306db7b1fb31c901cbcbb6b66db1d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 06 11:51:27 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 06 14:57:37 2011 -0700"
      },
      "message": "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately\n\nThis cleans up how ui flags are managed between the client and window manager.\nIt still reports the global UI mode state to the callback, but we now only clear\ncertain flags when the system goes out of a state (currently this just means the\nhide nav bar mode), and don\u0027t corrupt other flags in the application when the\nglobal state changes.\n\nAlso introduces a sequence number between the app and window manager, to avoid\nusing bad old data coming from the app during these transitions.\n\nChange-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23\n"
    },
    {
      "commit": "2447871b99e6b10a68985f037420eb77cabe4d29",
      "tree": "34138acbfb7fff8d2362bf348cb97a048279326b",
      "parents": [
        "4dfce20cac7492882d366d053006795aefad59da"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 05 18:01:23 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 05 18:04:48 2011 -0700"
      },
      "message": "Fix build.\n\nChange-Id: I7bb00b8ee0da952f3697b23dccf32dde55733b7a\n"
    },
    {
      "commit": "d410bfb2001e7960a27fe6adb9d56f229e70fe5c",
      "tree": "5c44ddfed050a89911e907fdc61e0aa7ed48bbde",
      "parents": [
        "e5493f31152ebb2e9c9818699ba6f853a9a59894"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 19:39:18 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 19:39:18 2011 -0700"
      },
      "message": "LayoutLib: fix support for textScaleX.\n\nChange-Id: I821191a40012e9727b4a3573d580483c3ae1de48\n"
    },
    {
      "commit": "14094097329b3bdcbf26392141111d74c8b89718",
      "tree": "9a41ea4a27d5bb311916b66c0f756055f97c78cf",
      "parents": [
        "178006a0e05b41b4c4de93aec30368a9102ca140"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 03 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 18:24:30 2011 -0700"
      },
      "message": "Layoutlib: Typeface support for loading fonts manually.\n\nIf the font being loaded is a system font, then we can find the font\nfile and manually load it.\n\nChange-Id: I95473b1f1b88df64316b77c41ed05d4d09ab61ed\n"
    },
    {
      "commit": "178006a0e05b41b4c4de93aec30368a9102ca140",
      "tree": "5261679b7d2ae70313d6896a54b6301c69a13179",
      "parents": [
        "3c1951c442e40f7f46775acfc8a22c24f04d8cfc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 18:01:07 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 04 18:02:10 2011 -0700"
      },
      "message": "Layoutlib now parses system_fonts.xml instead of its own.\n\nAlso parse fallback_fonts.\nThis lets layoutlib automatically use the same fonts as the base\nplatforms, for instance it now uses the new ICS fonts.\n\nChange-Id: Id6e778dc0e3f2a9112601e0eaf8499a9713ec433\n"
    },
    {
      "commit": "f1dee199a009fec5e3a5d1469f654098261f8b06",
      "tree": "d7dd38d33c0b8d99566731240c6e556b236e991f",
      "parents": [
        "c8f68e5c7ffef3bc6775edf39a251baf79b81f6b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Sep 30 18:08:05 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 03 09:06:07 2011 -0700"
      },
      "message": "Layoutlib: add support for ITextServicesManager.\n\nThis include a fix in layoutlib_create to properly handle\ndelegating a static method of an inner class (was broken and\nonly worked on non static method).\n\nAdded a few comments here and there to *_Accessor classes so\nthat it\u0027s a bit more obvious what they are for and how they are\nused.\n\nChange-Id: Ifc31dd1a006393bb0c08e22b6a17f500dd62e090\n"
    },
    {
      "commit": "387d078e64f3bcc8284732287bc3f26fce856a88",
      "tree": "3c430fa19acfd740b0e6ec376e5a48649f051a16",
      "parents": [
        "ee1d541ec89e1d2724a382c90276586e2c28b278"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Sep 29 18:33:50 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Sep 29 18:33:50 2011 -0700"
      },
      "message": "LayoutLib: Fix native delegate for Display.\n\nChange-Id: If097cae2309d340162b3bac1d0f6a2289635adca\n"
    },
    {
      "commit": "90c52de28691ca0bbbf7c039ef20f85ce46882cc",
      "tree": "3a6dcf93f186f44561a312927d7fe2e97e45f6d4",
      "parents": [
        "67c5b1251178532726964c2e0f4229d079ff0a3e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 23 12:57:44 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 23 13:39:33 2011 -0700"
      },
      "message": "Fix issue #5173952: Opening a Notification From Lock Screen...\n\n...Should Skip Unsecure Lockscreen (ICS)\n\nAlso while I am in there, clean up logging of intent objects to include\neven less sensitive information, while showing the true Intent in dump\noutput (since apps can\u0027t get to that).\n\nChange-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e\n"
    },
    {
      "commit": "01a98ddbdfbaf1f0d2bc602537e6e314364902a3",
      "tree": "ce904db3ee0772e0e2a35882a6cf86c7b9fcd84e",
      "parents": [
        "04ef5b8dd7262ee90b56df9c992f103695d0a21c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 20 15:08:29 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 21 19:26:15 2011 -0700"
      },
      "message": "Handle orientation changes more systematically.\nBug: 4981385\n\nSimplify the orientation changing code path in the\nWindowManager.  Instead of the policy calling setRotation()\nwhen the sensor determined orientation changes, it calls\nupdateRotation(), which figures everything out.  For the most\npart, the rotation actually passed to setRotation() was\nmore or less ignored and just added confusion, particularly\nwhen handling deferred orientation changes.\n\nEnsure that 180 degree rotations are disallowed even when\nthe application specifies SCREEN_ORIENTATION_SENSOR_*.\nThese rotations are only enabled when docked upside-down for\nsome reason or when the application specifies\nSCREEN_ORIENTATION_FULL_SENSOR.\n\nEnsure that special modes like HDMI connected, lid switch,\ndock and rotation lock all cause the sensor to be ignored\neven when the application asks for sensor-based orientation\nchanges.  The sensor is not relevant in these modes because\nsome external factor (or the user) is determining the\npreferred rotation.\n\nCurrently, applications can still override the preferred\nrotation even when there are special modes in play that\nmight say otherwise.  We could tweak this so that some\nspecial modes trump application choices completely\n(resulting in a letter-boxed application, perhaps).\nI tested this sort of tweak (not included in the patch)\nand it seems to work fine, including transitions between\napplications with varying orientation.\n\nDelete dead code related to animFlags.\n\nHandle pausing/resuming orientation changes more precisely.\nEnsure that a deferred orientation change is performed when\na drag completes, even if endDragLw() is not called because the\ndrag was aborted before the drop happened.  We pause\nthe orientation change in register() and resume in unregister()\nbecause those methods appear to always be called as needed.\n\nChange-Id: If0a31de3d057251e581fdee64819f2b19e676e9a\n"
    },
    {
      "commit": "ce801c4a1b1137ca2fd51ede6818722793c79ea4",
      "tree": "1d0c0063c2f5a83f00cee71b9c3a0cde5d4f8d79",
      "parents": [
        "2f7d7c9bdbda2956266492f98b5f95a428225a7d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 18 15:22:24 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 18 15:22:24 2011 -0700"
      },
      "message": "Fix build.\n\nChange-Id: Ife2b4b207270f8017d3acd80c76eaf1c7a50986d\n"
    },
    {
      "commit": "ee5e77cafec2eae70890abdcc1646ed39b06eddd",
      "tree": "761b1fccabd3d49f58470e8694032f552060f9dd",
      "parents": [
        "117999d1f44ec3423369385495ae207898b7b73e"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Sep 02 18:50:15 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri Sep 02 19:22:50 2011 +0900"
      },
      "message": "Make setAdditionalInputMethodSubtypes async\n\nBug: 5120261\nChange-Id: Ic7869cfaa5361531e08d58d7dfa5ba0feab0613e\n"
    },
    {
      "commit": "29aae6f36e565b8f2a99f2193597b964bb800ee8",
      "tree": "72d0d0798fe9549ebc82e1766464d1fe3ea5233f",
      "parents": [
        "5b56f7d6f662a543d0432a46047a55f1ee900994"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 18 18:30:09 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 23 17:44:52 2011 -0700"
      },
      "message": "Fix issue #4279860: previous UI flashes before showing lock screen...\n\n...(when turning display on after recently turning it off)\n\nAlso clean up when we decide to turn the screen on to improve that\ntransition.  There are still problems here with turning it on\nbefore the wallpaper gets dispayed.\n\nChange-Id: I2bc56c12e5ad75a1ce5a0546f43a845bf0823e66\n"
    },
    {
      "commit": "8433c36a98c9f45c37d2c60afc8a6a27514ddf2b",
      "tree": "7f34f034dd8e6e354a97d9970fc4415fa697e164",
      "parents": [
        "110be0f1d9e66e0a40a0084db5ebc4285194a8d7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 22 13:13:16 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 22 13:13:16 2011 -0700"
      },
      "message": "LayoutLib: add native delegate for set/getHinting in Paint.\n\nChange-Id: I1758f8ce861240d72113aa23dcbef5a52abade56\n"
    },
    {
      "commit": "7f9f99ea11051614a7727dfb9f9578b518e76e3c",
      "tree": "d39b916bb092a717e028345813b53f6bcfa12f61",
      "parents": [
        "7277f3b9b26f0011475b39da1298484a510aca29"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 11 10:16:17 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 11 12:57:51 2011 -0700"
      },
      "message": "Make some methods/fields package private so that layoutlib can access them.\n\nChange-Id: I4aeadfbaf8a4f6a459fa19937c21ac23d9e5fb64\n"
    },
    {
      "commit": "ea670054d6c5b59b8481cbf796e6a1cd9f38b672",
      "tree": "9e9a732c3a9034074ea755782650185b01d418d0",
      "parents": [
        "95b0292fb4e27a9dc273884be60dad8523b8bd7a"
      ],
      "author": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Aug 09 11:22:59 2011 -0700"
      },
      "committer": {
        "name": "Philip Milne",
        "email": "pmilne@google.com",
        "time": "Tue Aug 09 11:25:25 2011 -0700"
      },
      "message": "Implement native println_native in android.util.Log for LayoutLib\n\nChange-Id: I2ab83a131468490cf789bf17f9c12b6360e953a4\n"
    },
    {
      "commit": "dfee59afb3e4cdcde38f6338f9360655de76da92",
      "tree": "9581ba1b0c6d7c0034e7ff69fcf85071a9244a1c",
      "parents": [
        "5d4967884132647a75d05bcc2ca1f9ce490b372f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Aug 05 20:48:30 2011 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Sun Aug 07 14:17:30 2011 -0700"
      },
      "message": "Fix bug 5011824 - New Holo overflow menu for physical menu key devices\n\nThe new Holo-style overflow menu now appears from the edge of the screen\nwhere the device\u0027s physical menu key can be found. The policy determining\nthis lives in getPreferredOptionsPanelGravity() in WindowManagerService.\n\nChange-Id: I8851a2265547156591e82044e50b5cfc58d3eefa\n"
    },
    {
      "commit": "162c1dcd5e635d17d8425936d7729d0ae5ed1a62",
      "tree": "99ee7975eaa6671bdd10b0055eb7f3348c997b91",
      "parents": [
        "b389bdfba291382f9b306dd0e1bf7ba42fd94a4a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 03 17:20:58 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 03 17:23:12 2011 -0700"
      },
      "message": "Layoutlib: implement Resources.getBoolean(int).\n\nChange-Id: I44cee203bb9a8fabaebfd689fc20ec2f2a9b3561\n"
    },
    {
      "commit": "569ed054042f0350e898b4352694b792b0fdef9b",
      "tree": "430d7f0e59b61567513bea1cff1359a59bd96427",
      "parents": [
        "78a29c9fde5debc4abe3b0f093d35ddfcae60565"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 02 10:44:53 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 02 10:55:18 2011 -0700"
      },
      "message": "Layoutlib: simple comment fix.\n\nChange-Id: I402f6b465706e8edd14e512a973d087a14abbfe3\n"
    },
    {
      "commit": "d2f664d42cc29507b01a98622298b69131463825",
      "tree": "21379de5fe0625ffcfb9e776dafef6d1e2614f6f",
      "parents": [
        "f7be31ee1062722855602c6b0227f01bdb7c0b80"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jul 29 17:41:39 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 01 15:08:26 2011 -0700"
      },
      "message": "Misc layoutlib fix in preparation of the access change in framework code.\n\nChange-Id: I873adb7345514be6daa5c4fea4ebabb515f203e2\n"
    },
    {
      "commit": "bc68a59c024bdb745dac8e2ec7408a9f30595f1a",
      "tree": "9b3cfa4dc30eb787cbd828e97f7d816d5a91e68d",
      "parents": [
        "49754db5a304d995c1cc108ff6f19e4ba4265572"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 12:58:12 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 20:10:12 2011 -0700"
      },
      "message": "Report the external display size to the input reader.\n\nThe input reader needs this information so that it knows how to\ninterpolate touches on an external touch screen.\n\nChanged Display so that it asks the WindowManager what the real\ndisplay size is (as opposed to the raw display size).  This means\nit now takes into the forced display size set by\nadb shell am display-size.\n\nReplaced all calls to getRealWidth() / getRealHeight() /\ngetRealMetrics() in the WindowManager and replaced them with direct\nusages of the mCurDisplayWidth / mCurDisplayHeight so that the WM\ndoesn\u0027t end up making a reentrant Binder call into itself.\n\nFixed the table status bar HeightReceiver so that it updates the\nheight on all configuration changes since it is possible that the\ndisplay size changed independently of an external HDMI display\nbeing plugged / unplugged.\n\nImproved the Display class documentation to make the distinctions\nbetweeen the various sizes clearer.\n\nChange-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b\n"
    },
    {
      "commit": "4f727fbdc302946b9b677e2518350dd3574d198a",
      "tree": "66cab48f2a59ec8de46001b97024133ba77d4332",
      "parents": [
        "fa93052d91ab6e6da3195ce3872c4543beb6d5c9",
        "ed07215e482cae1ffedbba707284821b3afc310f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 25 17:24:56 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 25 17:24:56 2011 -0700"
      },
      "message": "am ed07215e: am 55775e5f: am e70b2b8f: am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u0027ed07215e482cae1ffedbba707284821b3afc310f\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "ed07215e482cae1ffedbba707284821b3afc310f",
      "tree": "0a4b4a868ae68249e5ee9f26a7cc9dea5e66201b",
      "parents": [
        "64ed105957098a900d58e7c2598e060cb37755ce",
        "55775e5f34af8d7c22ab3212c253b3a7d34a6f8a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 25 12:21:17 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 25 12:21:17 2011 -0700"
      },
      "message": "am 55775e5f: am e70b2b8f: am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u002755775e5f34af8d7c22ab3212c253b3a7d34a6f8a\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "55775e5f34af8d7c22ab3212c253b3a7d34a6f8a",
      "tree": "87b37b98bfbe1201ed236aef1f563fb914539c04",
      "parents": [
        "e612c881ecf74770098aa9c07d4f0611ac982038",
        "e70b2b8fe0c265171f3a367a66c99b36c62567c7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 21 16:25:50 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 21 16:25:50 2011 -0700"
      },
      "message": "am e70b2b8f: am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u0027e70b2b8fe0c265171f3a367a66c99b36c62567c7\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "e70b2b8fe0c265171f3a367a66c99b36c62567c7",
      "tree": "7bc6330ca5ecd1f2993bb1c0f30ac6e633d77b42",
      "parents": [
        "4f3a8db64d75cd3e88213d3b105dc50fc5bd6262",
        "9bcf26ea7aa108ce4bf4e973b4774d3e60eebafe"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 21 16:23:18 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 21 16:23:18 2011 -0700"
      },
      "message": "am 9bcf26ea: Merge \"Layoutlib_create flag -p: don\\\u0027t change all accesses to public.\"\n\n* commit \u00279bcf26ea7aa108ce4bf4e973b4774d3e60eebafe\u0027:\n  Layoutlib_create flag -p: don\u0027t change all accesses to public.\n"
    },
    {
      "commit": "caed59d90db8626462baaec351e66b2a3280dc34",
      "tree": "321f7c680bb71591cb2b95fa0afb0449e0c720f3",
      "parents": [
        "d40c93f61ca5b3f2351b8db716f67b58f1625e85"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Tue Jul 19 22:36:13 2011 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Tue Jul 19 22:36:13 2011 -0700"
      },
      "message": "Layoutlib_create flag -p: don\u0027t change all accesses to public.\n\nChange-Id: Icb1709ed0cb275a5a51ca34030695a5e94091499\n"
    },
    {
      "commit": "af64556de0064eeb5a4d4e6d634c3f074f5f40ce",
      "tree": "aaeb6dba4b713c2d7a21621d00555d823104316c",
      "parents": [
        "f2cc48fe8bea26bd07cb943b8308a19336536867"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 19 15:10:23 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 19 15:10:23 2011 -0700"
      },
      "message": "Layoutlib: misc fix + start of AndroidBidi support.\n\nChange-Id: If2ce0b683da8cce01679322d503eed8dd474e521\n"
    },
    {
      "commit": "91e88122cf28a48fd2e2260da7d3d87dd437227a",
      "tree": "b448f50dfd296574e5dabc6a9393624ad4a39868",
      "parents": [
        "bd029f64f2c695d49ea169f4c5c107e8172a1de5"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Jul 18 11:11:42 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Tue Jul 19 04:59:48 2011 +0900"
      },
      "message": "Enable IMEs to set additional subtypes in background\n\nBug: 4591792\n\nChange-Id: I7e61a576c56d1a3a56001bdf2fd51ad3801add01\n"
    },
    {
      "commit": "37b3cc3bbe33df61f227bcf253aa67a4be441233",
      "tree": "a8886da36bc5f28705379761e7912f62d2ae5b58",
      "parents": [
        "fd909a774cb384b139c5e360cadb2681c3f48c29",
        "9163a4a686fc25fefc77d5b41c24a4538486a48e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 13 14:53:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 13 14:53:54 2011 -0700"
      },
      "message": "am 9163a4a6: am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1.\n\n* commit \u00279163a4a686fc25fefc77d5b41c24a4538486a48e\u0027:\n  Merge 36a3a392 from mr1.\n"
    },
    {
      "commit": "96131eef3869f2be1300e1620f5c3874b41bb534",
      "tree": "8c378e7302477213510655ec5b9bae290de9f744",
      "parents": [
        "0a49635b171f3ba366b1a7ebf28791c4661829bd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 12:35:50 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 12:35:50 2011 -0700"
      },
      "message": "LayoutLib: updated fake accessbility manager and ensure there\u0027s an InputMethodManager\n\nWe had replaced the accessibility Manager but it lacked some new API. Obvisouly\nthis is fragile and should be fixed, but this works for now.\n\nAfter fixing this there was another issue with the lack of InputMethodManager.\nTo fix this I had to create an implementation of IInputMethodManager which\nnormally comes from a binder object.\n\nI may want to do a similar trick with the accessibility manager later.\n\nChange-Id: I28c6494e333f39072f348d0199124efac93256a5\n"
    },
    {
      "commit": "0a49635b171f3ba366b1a7ebf28791c4661829bd",
      "tree": "5130ff1f492eb1b37beac8a72b1075099738cec4",
      "parents": [
        "77eaa10949dd47532e262f8e74ad5a1536a4952e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 11:39:27 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jul 12 11:49:22 2011 -0700"
      },
      "message": "LayoutLib: Delegate for Display and IWindowManager implementation.\n\nThis allows ViewConfiguration to be properly implemented which is now\nrequired for the rendering to happen.\n\nChange-Id: I55629689fa8f5f874b43fcac2aa0789ce02d58f4\n"
    },
    {
      "commit": "77eaa10949dd47532e262f8e74ad5a1536a4952e",
      "tree": "217612fa0ac7d51f66e235974287976be8e0a11a",
      "parents": [
        "5623b074977d55a61f29099f44670916c6282e51"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 14:32:26 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 14:40:48 2011 -0700"
      },
      "message": "new button graphics for layoutlib.\n\nChange-Id: I12a6bf9df87552321452ca3344449814cd3102bb\n"
    },
    {
      "commit": "9163a4a686fc25fefc77d5b41c24a4538486a48e",
      "tree": "5ceb5620392bb3ffa4072e5899cb8a95a2a318d0",
      "parents": [
        "3b219a51a9d692807d3fb0f516df81609ca6e4fc",
        "aa4b1d8ba9d5e317b67638b764d92d17fb810aa0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 12:46:07 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 11 12:46:07 2011 -0700"
      },
      "message": "am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1.\n\n* commit \u0027aa4b1d8ba9d5e317b67638b764d92d17fb810aa0\u0027:\n  Merge 36a3a392 from mr1.\n"
    },
    {
      "commit": "d292d2a03134eaca8b51b6313610b4b78de53c83",
      "tree": "a9ab3c83b1b5b5ff11d3d5a8d65aac5b922fb288",
      "parents": [
        "3f3b8cbfa775f2ebff985c069300f8daaeb7a84c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jul 08 11:55:00 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 11 12:02:51 2011 -0700"
      },
      "message": "Merge 36a3a392 from mr1.\n\nProtect against OOB index in BridgeTypedArray.\n\nChange-Id: I40be1e039f9eb36c182b6522bd50d6ed98e15b5c\n"
    },
    {
      "commit": "842725fc642b7ba2c087cc81796973b838c23c76",
      "tree": "7153de69f4f965e51c0eb8eebc774cfda796dd7a",
      "parents": [
        "9bce27a9ce916bdf363667ee67fc0ce50c533aa3",
        "4d825e1f3bb6b52ecbea6f0c4aa2081b7f1edc89"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 28 18:55:46 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 28 18:55:46 2011 -0700"
      },
      "message": "am 4d825e1f: Merge \"Bring in more layout lib changes from hc-mr1.\" into gingerbread\n\n* commit \u00274d825e1f3bb6b52ecbea6f0c4aa2081b7f1edc89\u0027:\n  Bring in more layout lib changes from hc-mr1.\n"
    },
    {
      "commit": "9bce27a9ce916bdf363667ee67fc0ce50c533aa3",
      "tree": "1946628579b2bd45a0ba2b48440151a2ba68d7df",
      "parents": [
        "155cf6c1e191bb03fe24db8663715862d8e6a43d",
        "4753498d5c1ac3cf93b0730e77946a95b6913a82"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 28 18:55:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 28 18:55:42 2011 -0700"
      },
      "message": "am 4753498d: Merge \"CherryPick 06942bc4 from hc-mr1. do not merge.\" into gingerbread\n\n* commit \u00274753498d5c1ac3cf93b0730e77946a95b6913a82\u0027:\n  CherryPick 06942bc4 from hc-mr1. do not merge.\n"
    },
    {
      "commit": "155cf6c1e191bb03fe24db8663715862d8e6a43d",
      "tree": "9dfacc0c137a1b6e7b8909778a1c7b14679c46b2",
      "parents": [
        "e0947693c9984727dfa775a747dd32aaaeb90284",
        "9918ffb07f47430e22f6e53576d59b599f5a3534"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 28 18:53:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 28 18:53:54 2011 -0700"
      },
      "message": "am 9918ffb0: Merge \"CherryPick 988eeeb5 from hc-mr1. do not merge.\" into gingerbread\n\n* commit \u00279918ffb07f47430e22f6e53576d59b599f5a3534\u0027:\n  CherryPick 988eeeb5 from hc-mr1. do not merge.\n"
    },
    {
      "commit": "b02367778d451e38509ca1fc3fbc1d01dce6af1e",
      "tree": "f12ac14175b927f9bf93b6bd95822c908f5aba97",
      "parents": [
        "996bdbaaf0b532c77c10a1efea3b17eb50f416db",
        "f9705ef6d3f1502991dd312bfdbfb93cb07fe672"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Thu Jun 23 14:30:25 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 23 14:30:25 2011 -0700"
      },
      "message": "am f9705ef6: am 2b5f2d01: am e2b41b0d: Merge \"Laoutlib_creator: keep original of delegate methods.\"\n\n* commit \u0027f9705ef6d3f1502991dd312bfdbfb93cb07fe672\u0027:\n  Laoutlib_creator: keep original of delegate methods.\n"
    },
    {
      "commit": "f9705ef6d3f1502991dd312bfdbfb93cb07fe672",
      "tree": "d140e69c031dc236ed383df4b4fb091b79ba4fe9",
      "parents": [
        "4333de2a8e878b319c0e779942b87c042804d352",
        "2b5f2d01558ba338042f486c754f63873c4061fe"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed Jun 22 18:05:22 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 22 18:05:22 2011 -0700"
      },
      "message": "am 2b5f2d01: am e2b41b0d: Merge \"Laoutlib_creator: keep original of delegate methods.\"\n\n* commit \u00272b5f2d01558ba338042f486c754f63873c4061fe\u0027:\n  Laoutlib_creator: keep original of delegate methods.\n"
    },
    {
      "commit": "2b5f2d01558ba338042f486c754f63873c4061fe",
      "tree": "17b56eb49a6383f0ca1d1f626a31bc85f1db0129",
      "parents": [
        "9e5d0de9a333683533a021e9733e824cac666d18",
        "e2b41b0d5c8db85a60cd190c7094052db61114b2"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Wed Jun 22 17:44:29 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 22 17:44:29 2011 -0700"
      },
      "message": "am e2b41b0d: Merge \"Laoutlib_creator: keep original of delegate methods.\"\n\n* commit \u0027e2b41b0d5c8db85a60cd190c7094052db61114b2\u0027:\n  Laoutlib_creator: keep original of delegate methods.\n"
    },
    {
      "commit": "98e1e18c1cc1ec98a20dbdf0e6497614aacf3d0a",
      "tree": "25d41dabda547c9e2a1a060d8720e8d3ee4de2be",
      "parents": [
        "8969d9924c662ab4cdacc342bbdc33756db730be"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 22 11:35:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 22 11:35:11 2011 -0700"
      },
      "message": "Fix build.\n\ngit cherry-pick --no-commit  22a614142aacce13fc46a0e524dbfb6ca56bf237\n\nChange-Id: I1409bc3dd1f1b3027c12355e8b6aeffa2d857c83\n"
    },
    {
      "commit": "e86c5b2e9fe79f2a6f4187b6a4f2769c0b64168b",
      "tree": "607c8bedafd3f300962d776b97ee84a209917690",
      "parents": [
        "157c74e7ace77ae026cb59f48e400fb4ffe3c529",
        "fc511683b6647295cb645a0118d1b0afd575b3c3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 21 12:19:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 21 12:19:07 2011 -0700"
      },
      "message": "Merge \"Add missing delegate to the layoutlib.\""
    },
    {
      "commit": "3523325159c083140ba51d36f46270f6adddad77",
      "tree": "59e5bd628f656bd4adbc4d96b26cc517fd0c7836",
      "parents": [
        "31e92e4f19367bd791c1d962a2627f59eab2ab86",
        "01f0fd84d085f90ca73e9091618ab3d98b5e1c4a"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Jun 21 11:27:29 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 21 11:27:29 2011 -0700"
      },
      "message": "Merge \"Include testdata in layoutlib-tests.\""
    },
    {
      "commit": "fc511683b6647295cb645a0118d1b0afd575b3c3",
      "tree": "14d0c9916008cf406dc45c64ffd10f6e0c319de6",
      "parents": [
        "e2b801e5a437d75151d70a90e73f5f110d8732dd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 21 11:03:29 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 21 11:03:29 2011 -0700"
      },
      "message": "Add missing delegate to the layoutlib.\n\nChange-Id: I8de5c1093052c40c0cd327a4d02b01651d3b76b5\n"
    },
    {
      "commit": "865c3bef54228a353fd449a093b0c8d155618296",
      "tree": "c93e90facdad4fbabb288960427874bd6e7dd2bf",
      "parents": [
        "94062517ae5573f9a1a877a83fe7d8e6d1a2c350"
      ],
      "author": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri Jun 17 17:12:52 2011 -0700"
      },
      "committer": {
        "name": "Raphael Moll",
        "email": "ralf@android.com",
        "time": "Fri Jun 17 19:07:13 2011 -0700"
      },
      "message": "Laoutlib_creator: keep original of delegate methods.\n\nFor specific methods, Layoublib_create can rewrite the implementation\nof a method to invoke a delegate instead of the original code. This\nallows layoutlib to implement native code or override existing behavior.\n\nThis patch also \u0027saves\u0027 the original implementation of a rewritten\nmethod so that the delegate can access the original implementation\nas needed. Obviously this is only done for non-native methods.\n\nGiven a non-native SomeClass.MethodName, we generate 2 methods:\n- A copy of the original method named \"SomeClass.MethodName_original\".\n  The content is the original method as-is from the reader.\n- A brand new implementation of SomeClass.MethodName which calls to a\n  non-existing method named \"SomeClass_delegate.MethodName\".\n  The implementation of this \u0027delegate\u0027 method is done in layoutlib_brigde.\n\nChange-Id: I5ca2cd3ac55991a8e8a51c417e75ee447bf9e9e6\n"
    },
    {
      "commit": "01f0fd84d085f90ca73e9091618ab3d98b5e1c4a",
      "tree": "c87cda4143344bc8aa8dd7efab63432c9910611c",
      "parents": [
        "576715c75987b64eff120f8800862815753b0c8a"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Jun 17 17:03:20 2011 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Jun 17 17:03:20 2011 -0700"
      },
      "message": "Include testdata in layoutlib-tests.\n\nChange-Id: I79fff895a13d171079b59db54d4b9d2bec555b3c\n"
    },
    {
      "commit": "ea5f0d0543a2ea78ecb0aa3d080098942ba3a4df",
      "tree": "29029f0d4b315b537ba876369efb629750a19c0d",
      "parents": [
        "d6465e10c27140647e02be8160d900d6e7e78441"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 09 19:14:06 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 18:26:25 2011 -0700"
      },
      "message": "Bring in more layout lib changes from hc-mr1.\n\nfe051bb2 : Change the way the layoutlib instantiate its XmlPullParser.\n\nA lot of the init code was duplicated so I made a ParserFactory class.\n\nAlso created an extension of the KXmlPullParser to override toString().\nThis allows easier debugging when dealing with multiple parsers (which\nis always the case).\n\nAlso added some (disabled) debugging printf to deal with parser stack\nas it can be tricky figuring out which parsers are in the stack at\nwhich point.\n\n8969147c : Fix case where the int[] attrs doesn\u0027t directly match a styleable.\n\nIn the case of the FastScroller the int[] is a custom mix of attr\ninstead of a int[] that exists as R.styleable.foo.\n\nThis makes our reflection based mechanism used to find the styleable\nfail, so instead we search for each attribute separately (like\nwe probably should have done from the beginning).\n\n0c264b35: Fix various cases of getDimension to report error if unit is missing.\n\nif getDimention###() is called for a string that has no unit,\nthen an error is output through LayoutLog, but the rendering keeps\ngoing by using dp as a default.\n\n0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt()\n\nOnly getInt() resolved attribute flags/enum and I\u0027m not sure why\nthere\u0027s two to begin with.\n\nChange-Id: I015111263d2a2bee76834978ae71eef79defdae3\n"
    },
    {
      "commit": "d6465e10c27140647e02be8160d900d6e7e78441",
      "tree": "9d1d07ec308956d7329535b57d89fb7c46117567",
      "parents": [
        "6b62c82848b9823a26fc107deef8227d9cd516a6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:48:35 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 18:26:25 2011 -0700"
      },
      "message": "CherryPick 06942bc4 from hc-mr1. do not merge.\n\nLayoutlib - use the new getParser callback when possible.\n\nChange-Id: I72b867aa573fcc07d610f139da3c90b1b654633c\n"
    },
    {
      "commit": "6b62c82848b9823a26fc107deef8227d9cd516a6",
      "tree": "a55d9486ce41b9e1be56551d4e0c0dd082a16f05",
      "parents": [
        "ec15afca08fcc342d6f22cf02a21975af13091cf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:03:10 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 18:26:24 2011 -0700"
      },
      "message": "CherryPick 988eeeb5 from hc-mr1. do not merge.\n\nSupport for custom declare-styleable attr with enum/flag in layoutlib.\n\nChange-Id: I8a5b7cc629d61996ffade9aabd9d4d10961eb411\n"
    },
    {
      "commit": "9340ab4a213093bd59c79159011d131c9cd6996f",
      "tree": "69475f53306882ab8fcafba7dcb94cbade1c6cc2",
      "parents": [
        "da672372253002f06085ec6eace38b2fafe0f256",
        "0be8522b430aca8d90023d7c7e5ef510aa48adc7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 14:04:18 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 16 14:04:18 2011 -0700"
      },
      "message": "am 0be8522b: am d1abd94f: am 04ce8111: Bring in more layout lib changes from hc-mr1.\n\n* commit \u00270be8522b430aca8d90023d7c7e5ef510aa48adc7\u0027:\n  Bring in more layout lib changes from hc-mr1.\n"
    },
    {
      "commit": "04ce81113107d2bfa0b8248b13145b4cf24cb943",
      "tree": "a9715c622a2b04360a8f47fb3a166fd5047b193f",
      "parents": [
        "8e18668d14adf601cbe5973030c310ec23d88461"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 09 19:14:06 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 16 13:23:53 2011 -0700"
      },
      "message": "Bring in more layout lib changes from hc-mr1.\n\nfe051bb2 : Change the way the layoutlib instantiate its XmlPullParser.\n\nA lot of the init code was duplicated so I made a ParserFactory class.\n\nAlso created an extension of the KXmlPullParser to override toString().\nThis allows easier debugging when dealing with multiple parsers (which\nis always the case).\n\nAlso added some (disabled) debugging printf to deal with parser stack\nas it can be tricky figuring out which parsers are in the stack at\nwhich point.\n\n8969147c : Fix case where the int[] attrs doesn\u0027t directly match a styleable.\n\nIn the case of the FastScroller the int[] is a custom mix of attr\ninstead of a int[] that exists as R.styleable.foo.\n\nThis makes our reflection based mechanism used to find the styleable\nfail, so instead we search for each attribute separately (like\nwe probably should have done from the beginning).\n\n0c264b35: Fix various cases of getDimension to report error if unit is missing.\n\nif getDimention###() is called for a string that has no unit,\nthen an error is output through LayoutLog, but the rendering keeps\ngoing by using dp as a default.\n\n0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt()\n\nOnly getInt() resolved attribute flags/enum and I\u0027m not sure why\nthere\u0027s two to begin with.\n"
    },
    {
      "commit": "66743a1ec0dddadec7cd8f026f9b6a2239f515be",
      "tree": "58668aa8482b43977d7eb5f36d3c3d2c5ea2eee1",
      "parents": [
        "f71e5469441286c6f466043e64a7f6492557cbd9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 15 14:43:42 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 15 14:43:42 2011 -0700"
      },
      "message": "Fix changed native method delegates in layoutlib for ICS.\n\nChange-Id: I49306868cd8a41b6b7d919c3e8b108d5c014530e\n"
    },
    {
      "commit": "2dcb6e80b999d93409e66bbd01b94a419c22013c",
      "tree": "445f90a614ca22ef16487caa717226ddb7387885",
      "parents": [
        "8c6d777da0e96b9ed5f0e2c1e643e767b17cb9e1",
        "48305f327ff3839ddbfa5a6fb42a57150a69480c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 10 10:31:52 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 10 10:31:52 2011 -0700"
      },
      "message": "am 48305f32: am 2e0f7118: am 8ee28811: Merge changes Idbb70f53,I10426a3f into honeycomb-mr2\n\n* commit \u002748305f327ff3839ddbfa5a6fb42a57150a69480c\u0027:\n  Merge 06942bc4 from hc-mr1.\n  Merge 988eeeb5 from hc-mr1.\n"
    },
    {
      "commit": "45b662e1bcff23dc59fb3a47bc32c99e63b2ac35",
      "tree": "43cf38fd15a568b875a029c83a4c15f9a6280abe",
      "parents": [
        "beb5fb622b71693c21b6fab562a98e7000c64273"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:48:35 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 08 17:11:40 2011 -0700"
      },
      "message": "Merge 06942bc4 from hc-mr1.\n\nLayoutlib - use the new getParser callback when possible.\n\nChange-Id: Idbb70f5391addd539afa5c2f5b55c70beefed223\n"
    },
    {
      "commit": "beb5fb622b71693c21b6fab562a98e7000c64273",
      "tree": "2363646dabecde6e300f2483625e5b0d401f4e0a",
      "parents": [
        "cea03df201dc6659654234bc5fbfebf1b6a06e42"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:03:10 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 08 17:10:11 2011 -0700"
      },
      "message": "Merge 988eeeb5 from hc-mr1.\n\nSupport for custom declare-styleable attr with enum/flag in layoutlib.\n\nChange-Id: I10426a3f2c76bed207c03fab7885b4269337a70f\n"
    },
    {
      "commit": "f18e311ee5d35db0cae96f0b216a88e5b42604dc",
      "tree": "60ddaf1c2c9936d4711c93a82705cdd325e1fa53",
      "parents": [
        "c8307c885f8462f2baf9f06c9916d1521f7fdcfb",
        "abc838716816107754ab0479242d03807ce79fc2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jun 07 17:17:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 07 17:17:11 2011 -0700"
      },
      "message": "am abc83871: am f6e47999: am 2a6dc7f1: Merge \"Import the Layoutlib from hc-mr1.\" into honeycomb-mr2\n\n* commit \u0027abc838716816107754ab0479242d03807ce79fc2\u0027:\n  Import the Layoutlib from hc-mr1.\n"
    }
  ],
  "next": "fb93ce9684120a36862b5b5e67b1865a652907e9"
}
