)]}'
{
  "log": [
    {
      "commit": "e2c7715c772d5121397591b532d04a31b3ffcc99",
      "tree": "a528b89349ba2b367aeae8b442b5c696a7c8c99e",
      "parents": [
        "6895c4994350bc10a06481ecf42c4ba8abb3eedb",
        "bbca81334e3603c7328dc526bd63032b23d5261d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 24 11:27:11 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 24 11:27:11 2011 -0700"
      },
      "message": "resolved conflicts for merge of bbca8133 to master\n\nChange-Id: I81493674dceab848e41d380a77a37e5a9be06db6\n"
    },
    {
      "commit": "bbca81334e3603c7328dc526bd63032b23d5261d",
      "tree": "c29dd1ed7c2119cd50bbc4e56be9ee36d89891c7",
      "parents": [
        "98a8231e838d7d624c5862d81d1975ef4f8d0d57",
        "4bb78889d04594c01a6af7f6d38c1764e9f575f9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 23 16:16:54 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 23 16:16:54 2011 -0700"
      },
      "message": "am 4bb78889: am 40277df7: Merge \"Add \"television\" mode.\" into honeycomb-mr2\n\n* commit \u00274bb78889d04594c01a6af7f6d38c1764e9f575f9\u0027:\n  Add \"television\" mode.\n"
    },
    {
      "commit": "e360bb6bd8ea84b8d37604fc11dfc744b18fb0de",
      "tree": "7e833a630e8108be1345d8595438eea5a30e7173",
      "parents": [
        "1b144e625fb0d34cd680c44cbcfb2deb8a76d4c6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 20 16:11:04 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 23 15:11:08 2011 -0700"
      },
      "message": "Add \"television\" mode.\n\nChange-Id: Ida1fdb61b036a8b489dbeda196fb4bc82e651b2b\n"
    },
    {
      "commit": "161e67ff3ba26408eea09221734ad2e29a1eed11",
      "tree": "6e98ff836fb5f134e01a7e9ef420ec35a78ad5d2",
      "parents": [
        "9e735541beed238d3b99d4bd284af1fc953c3775",
        "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "message": "resolved conflicts for merge of 06a8ceac to master\n\nChange-Id: Id51574c825affddfac14ad7214c5496d6a3d6e69\n"
    },
    {
      "commit": "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68",
      "tree": "14cda7bbbdc5e6cabb492d7af1977a2f5548062b",
      "parents": [
        "90177e59e5211dd9ab33761ce800e8a86a49d1e2",
        "c851ea5672f6e042c2e89b2a2ce4a2467e1fcd2a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 19:34:21 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 19:34:21 2011 -0700"
      },
      "message": "am c851ea56: am 69cb8757: Add new \"-swNNNdp\" resource qualifier.\n\n* commit \u0027c851ea5672f6e042c2e89b2a2ce4a2467e1fcd2a\u0027:\n  Add new \"-swNNNdp\" resource qualifier.\n"
    },
    {
      "commit": "69cb87576ba163b61bb0e6477a3b7c57a9b11d40",
      "tree": "a44be0af3d008409403be133358bdcd628741c01",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:13:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:23:29 2011 -0700"
      },
      "message": "Add new \"-swNNNdp\" resource qualifier.\n\nChange-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce\n"
    },
    {
      "commit": "9f23e60b20f0419e6ca5ff55db9d6282596e7fe8",
      "tree": "23a6eb48e40b80341dcc2b13b9556b770c88d2ec",
      "parents": [
        "ba43d4282c82e55b5a5c01771f028e6266dbc781",
        "a13462a947e634a6893119146a7271369e509586"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu May 19 08:58:18 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 08:58:18 2011 -0700"
      },
      "message": "am a13462a9: am 582841e7: am b18e700c: am aa0834e3: Merge \"LayoutLib: support the new baseline/margin query API.\" into honeycomb-mr1\n\n* commit \u0027a13462a947e634a6893119146a7271369e509586\u0027:\n  LayoutLib: support the new baseline/margin query API.\n"
    },
    {
      "commit": "a13462a947e634a6893119146a7271369e509586",
      "tree": "691fdc829584f2f229c5a497e0ea909ba8afaf8d",
      "parents": [
        "a8939e0d48c9bdda2e3dcb1b8c55aa23e8b78b40",
        "582841e734bc85b247df64ac85b6ee09f7375f44"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed May 18 17:51:31 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 18 17:51:31 2011 -0700"
      },
      "message": "am 582841e7: am b18e700c: am aa0834e3: Merge \"LayoutLib: support the new baseline/margin query API.\" into honeycomb-mr1\n\n* commit \u0027582841e734bc85b247df64ac85b6ee09f7375f44\u0027:\n  LayoutLib: support the new baseline/margin query API.\n"
    },
    {
      "commit": "b18e700cb9c1d7090904449fc6878b8eae1d4693",
      "tree": "31bc717aa584a1b3650110c48bed3969e3f8ed92",
      "parents": [
        "d148a499c27145e0473f89ece0500ebed38f875f",
        "aa0834e3e6c3ceef6f78e3e03d1d27046e5237a0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed May 18 17:40:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 18 17:40:08 2011 -0700"
      },
      "message": "am aa0834e3: Merge \"LayoutLib: support the new baseline/margin query API.\" into honeycomb-mr1\n\n* commit \u0027aa0834e3e6c3ceef6f78e3e03d1d27046e5237a0\u0027:\n  LayoutLib: support the new baseline/margin query API.\n"
    },
    {
      "commit": "05b7b69c6c5d418e18db644feed1ec2ca83291cc",
      "tree": "08a87ebb428cff4cc15ee9ebb10cfbc9621068be",
      "parents": [
        "2fae858db55fc6984ef923a6226b9408c37c72cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 16 16:29:03 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon May 16 16:29:03 2011 -0700"
      },
      "message": "LayoutLib: support the new baseline/margin query API.\n\nChange-Id: I856489df655960820b8eaa4c6179515a5c069b00\n"
    },
    {
      "commit": "8c2f85d94145a96f53e9041c609e283be7412a0f",
      "tree": "c86bfd0b8703eeb6e6bafd98d76b2dd0e129b179",
      "parents": [
        "ba4990c77cbc643809f1d0e74fabe5a1d1d1c3dc",
        "d00541603fbbb4e38264e75a2b6abf8705efeb49"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 13 16:43:37 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 13 16:43:37 2011 -0700"
      },
      "message": "am d0054160: am 6d040a7f: am 738c5e60: am 2fae858d: LayoutLib: implement data binding for most AdapterView\n\n* commit \u0027d00541603fbbb4e38264e75a2b6abf8705efeb49\u0027:\n  LayoutLib: implement data binding for most AdapterView\n"
    },
    {
      "commit": "d00541603fbbb4e38264e75a2b6abf8705efeb49",
      "tree": "1cf40315482edfaccf99d3a09d283ea426591238",
      "parents": [
        "71da32074ce729fe170de2d6c348b110fb6625cc",
        "6d040a7f20de29a9667dd81bd4de40a9e56fd341"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 13 16:36:16 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 13 16:36:16 2011 -0700"
      },
      "message": "am 6d040a7f: am 738c5e60: am 2fae858d: LayoutLib: implement data binding for most AdapterView\n\n* commit \u00276d040a7f20de29a9667dd81bd4de40a9e56fd341\u0027:\n  LayoutLib: implement data binding for most AdapterView\n"
    },
    {
      "commit": "738c5e6072459c772064c96233cf59639bbfe2fd",
      "tree": "bd4e27994cf0feb9f0266ebb525f3650f4721d7e",
      "parents": [
        "6121f06ed5847d1edd22b23c3b28bf3b3e3af602",
        "2fae858db55fc6984ef923a6226b9408c37c72cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 13 16:30:44 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 13 16:30:44 2011 -0700"
      },
      "message": "am 2fae858d: LayoutLib: implement data binding for most AdapterView\n\n* commit \u00272fae858db55fc6984ef923a6226b9408c37c72cb\u0027:\n  LayoutLib: implement data binding for most AdapterView\n"
    },
    {
      "commit": "2fae858db55fc6984ef923a6226b9408c37c72cb",
      "tree": "b408f9da8f855228b8b865189e672abe3bcf0700",
      "parents": [
        "edab852fe11f12ad5a0a66f79462ed7474ba9e5a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 29 11:58:02 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri May 13 15:55:49 2011 -0700"
      },
      "message": "LayoutLib: implement data binding for most AdapterView\n\nChange-Id: I27be96ed2c37573eb22cfbb391d96b6137b3df8c\n"
    },
    {
      "commit": "2e4a3236a7634d17f89288e9739a438ecbea0471",
      "tree": "45e1c4c61f4eb9775572d94a55dd91b071b84916",
      "parents": [
        "15f8a6a726658bfb195924bd5d7bb86684a22de0",
        "46a282f323bc05606e4fe1eba795bd9ac7c99819"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 13 11:21:26 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 13 11:21:26 2011 -0700"
      },
      "message": "am 46a282f3: am 0ed2e845: Merge \"DO NOT MERGE.  Integrate add new screen width/height in \"dp\" configs.\" into honeycomb-mr2\n\n* commit \u002746a282f323bc05606e4fe1eba795bd9ac7c99819\u0027:\n  DO NOT MERGE.  Integrate add new screen width/height in \"dp\" configs.\n"
    },
    {
      "commit": "ebff8f92f13513ce37bd74759eb1db63f2220590",
      "tree": "909da02ab7ff47483e227f032828dbdbe7f959af",
      "parents": [
        "a8138732a01b92f0a40f72050b74a3bd4cf6d215"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 18:07:47 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 18:39:51 2011 -0700"
      },
      "message": "DO NOT MERGE.  Integrate add new screen width/height in \"dp\" configs.\n\nYou can now specify resource configuration variants \"wNNNdp\"\nand \"hNNNdp\".  These are the minimum screen width/height in \"dp\"\nunits.  This allows you to do things like have your app adjust\nits layout based only on the about of horizontal space available.\n\nThis introduces a new configuration change flag for screen size.\nNote that this configuration change happens each time the orientation\nchanges.  Applications often say they handle the orientation change\nto avoid being restarted at a screen rotation, and this will now\ncause them to be restarted.  To address this, we assume the app can\nhandle this new config change if its target SDK version is \u003c ICS.\n\nChange-Id: I4acb73d82677b74092c1da9e4046a4951921f9f4\n"
    },
    {
      "commit": "461fa8b05dfb4fd334980365e27002a7520e866e",
      "tree": "19238dece6998ee2121503d18b4548163e9e2704",
      "parents": [
        "d3a6956a6d69d7399931c403cd31cb0236278fc6",
        "18490fb93e206fd899c3258096cc32f293373c92"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 12:51:08 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 12:51:08 2011 -0700"
      },
      "message": "resolved conflicts for merge of 18490fb9 to master\n\nChange-Id: I6c68e6fb0f9c1182a955689bbffc161a8f30bd37\n"
    },
    {
      "commit": "18490fb93e206fd899c3258096cc32f293373c92",
      "tree": "e45db3abacf59a0cba4604cde390c310e38e4153",
      "parents": [
        "0b9b8711a1a2107dc913cc751b7d981fce4f3082",
        "87b3c0dcc45223ff9d5ab2e39d7b9a6953e03f50"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 10:27:15 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 10:27:15 2011 -0700"
      },
      "message": "resolved conflicts for merge of 87b3c0dc to honeycomb-plus-aosp\n\nChange-Id: Ia1a0024aabf531438203eb9fea3a10dd15eabe53\n"
    },
    {
      "commit": "87b3c0dcc45223ff9d5ab2e39d7b9a6953e03f50",
      "tree": "8c64414e6f079c9511163657f200d2ee132309f4",
      "parents": [
        "4430670f48f75661293371dab8db55865f5f56e0",
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Mon Apr 11 15:33:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 15:33:19 2011 -0700"
      },
      "message": "am 08d9d9a4: Merge \"Runtime resource overlay, iteration 1.\"\n\n* commit \u002708d9d9a46250c4fad66e9b637e8898a3524c4286\u0027:\n  Runtime resource overlay, iteration 1.\n"
    },
    {
      "commit": "515a08b01851a1ab9386f85dee6d9fd7b65ee7ad",
      "tree": "549fcb535c70f46ac97e0a369ef507c05323aa68",
      "parents": [
        "b25181aaccb00fee405251bf3575ce1d40badf46"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 17:03:31 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Apr 07 12:02:31 2011 -0700"
      },
      "message": "Merge 59aad78e from master. do not merge.\n\nLayoutLib: don\u0027t render when shader\u0027s local matrix is set to 0 scale.\n\nChange-Id: I02c0ddd856026357f468dcc8b81e0520470118de\n"
    },
    {
      "commit": "4754c79a77dc09259dee7e018710a96fe167bb8e",
      "tree": "f26fcd18d855e08a3af0e42231d45d0e727b4c44",
      "parents": [
        "efa98a29e01dbb4c700fd6af3353413afcb344d9",
        "59aad78eae14939c169876b2f632d005f382cf7d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 19:08:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 06 19:08:11 2011 -0700"
      },
      "message": "am 59aad78e: LayoutLib: don\\\u0027t render when shader\\\u0027s local matrix is set to 0 scale.\n\n* commit \u002759aad78eae14939c169876b2f632d005f382cf7d\u0027:\n  LayoutLib: don\u0027t render when shader\u0027s local matrix is set to 0 scale.\n"
    },
    {
      "commit": "efa98a29e01dbb4c700fd6af3353413afcb344d9",
      "tree": "4c36104f201a9b447fef24553c9aab1f9fa122fb",
      "parents": [
        "9645081cc7f31e1151fedbcd5932a100719e91e4",
        "8a18dba48c354fc47056b07ddec8a32fda266b6a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 19:08:02 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 06 19:08:02 2011 -0700"
      },
      "message": "am 8a18dba4: Merge c5aeac7f from honeycomb.\n\n* commit \u00278a18dba48c354fc47056b07ddec8a32fda266b6a\u0027:\n  Merge c5aeac7f from honeycomb.\n"
    },
    {
      "commit": "59aad78eae14939c169876b2f632d005f382cf7d",
      "tree": "1c1637f9315d503a67119818379c15f9e9e2be1c",
      "parents": [
        "8a18dba48c354fc47056b07ddec8a32fda266b6a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 17:03:31 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 17:03:31 2011 -0700"
      },
      "message": "LayoutLib: don\u0027t render when shader\u0027s local matrix is set to 0 scale.\n\nChange-Id: I7726d87f3dd0475ac662f535a08c6435b8b9ed1f\n"
    },
    {
      "commit": "8a18dba48c354fc47056b07ddec8a32fda266b6a",
      "tree": "8dd9444bbe6c1c812d54e336f9fd2d5dcc738c63",
      "parents": [
        "43707a83ec12957fb84a406276a38fbaf4e23fd3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Apr 05 20:19:17 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 14:24:59 2011 -0700"
      },
      "message": "Merge c5aeac7f from honeycomb.\n\nLayoutLib: Fix issue with rendering mode.\n\nWhen the layout content is embedded inside a decor layout\nto emulate system bar (top or bottom) and title bar (or action bar)\nthen the code computing the full required size based on the RenderingMode\nwould fail because the decor layout would prevents the content layout to\ntake as much room as possible.\nThere is also an issue with the way we know render dialogs as the\ndialogs usually as a frame with some padding and the previous measurements\nwould not take into account the dialog padding when increasing the\nscreen size.\n\nThis fix makes the code measure the size of the content layout in the\nnormal rendering, and then separately from the root layout with the proper\nMeasureSpec to let the content grown. The difference in size is then added\nto the screen size.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d15892\n\nChange-Id: Ie9a6c5e254b16785f817dcb9fae755d4936880aa\n"
    },
    {
      "commit": "b4af69605410efb51a3669e7fcd47891d0695ec0",
      "tree": "bf7b84dece0da70ebc6af773883f016f443fb069",
      "parents": [
        "85b65f2008e7eb8ef492a63cba80555f58915769",
        "d7765e353cdc6f0bb4156841a8436ea28eb20eea"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Apr 06 13:19:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 06 13:19:57 2011 -0700"
      },
      "message": "am d7765e35: am 73dc2602: am c5aeac7f: LayoutLib: Fix issue with rendering mode.\n\n* commit \u0027d7765e353cdc6f0bb4156841a8436ea28eb20eea\u0027:\n  LayoutLib: Fix issue with rendering mode.\n"
    },
    {
      "commit": "3fc982f41fda1f254bfbc35490d81cd82a0ed90a",
      "tree": "6f9ba92dc2c9001a156f298c37dcdef9c9552600",
      "parents": [
        "fb84ce0df6b2db84981e4efa4530397a85240d4a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 30 16:20:26 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 06 11:00:37 2011 -0700"
      },
      "message": "Add new resource configurations for screen width/height in \"dp\".\n\nYou can now specify resource configuration variants \"wNNNdp\"\nand \"hNNNdp\".  These are the minimum screen width/height in \"dp\"\nunits.  This allows you to do things like have your app adjust\nits layout based only on the about of horizontal space available.\n\nThis introduces a new configuration change flag for screen size.\nNote that this configuration change happens each time the orientation\nchanges.  Applications often say they handle the orientation change\nto avoid being restarted at a screen rotation, and this will now\ncause them to be restarted.  To address this, we assume the app can\nhandle this new config change if its target SDK version is \u003c ICS.\n\nChange-Id: I22f8afa136b4f274423978c570fa7c9855040496\n"
    },
    {
      "commit": "c5aeac7f157e3cb9e29ab8c126f74e26493501f5",
      "tree": "7767282c829748563f5dbb1026972395ec0a2052",
      "parents": [
        "e4cafabbcc4b69479217d1a167926b79c37e5ded"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Apr 05 20:19:17 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Apr 05 20:45:48 2011 -0700"
      },
      "message": "LayoutLib: Fix issue with rendering mode.\n\nWhen the layout content is embedded inside a decor layout\nto emulate system bar (top or bottom) and title bar (or action bar)\nthen the code computing the full required size based on the RenderingMode\nwould fail because the decor layout would prevents the content layout to\ntake as much room as possible.\nThere is also an issue with the way we know render dialogs as the\ndialogs usually as a frame with some padding and the previous measurements\nwould not take into account the dialog padding when increasing the\nscreen size.\n\nThis fix makes the code measure the size of the content layout in the\nnormal rendering, and then separately from the root layout with the proper\nMeasureSpec to let the content grown. The difference in size is then added\nto the screen size.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d15892\n\nChange-Id: Ibb9ca2a67c6c450d10d9f9a8050536e094650f8b\n"
    },
    {
      "commit": "57f4b77c89bafedf9468f9a636561c0c193405c9",
      "tree": "9e73065411411858c9c6ae350c5ee8ffe14598c3",
      "parents": [
        "c6b22e2727bd3730edd5ad72831a9bb4670d00f3"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonyericsson.com",
        "time": "Thu Mar 17 14:13:41 2011 +0100"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonyericsson.com",
        "time": "Fri Apr 01 14:12:10 2011 +0200"
      },
      "message": "Runtime resource overlay, iteration 1.\n\nRuntime resource overlay allows unmodified applications to appear\nas if they had been compiled with additional resources defined. See\nlibs/utils/README for more information.\n\nThis commit is the first iteration of runtime resource overlay. It\nprovides the actual overlay modifications and loading of trusted overlay\npackages (ie residing in /vendor) targeting framework-res.apk.\n\nThis commit loads exactly one overlay package. The overlay,\nif present, must target framework-res.apk and be located at\n/vendor/overlay/framework/framework-res.apk.\n\nChange-Id: If26ee7754813004a96c043dba37fbe99fa3919db\n"
    },
    {
      "commit": "3a90ec4e6b4973f56dae825c967bbee69e6239cf",
      "tree": "e09c157bed5ecc30564298b084ea5871948eef0c",
      "parents": [
        "a5b68f39e2936a83eac0b995992724cd5de6905d",
        "c7c8c599a636a105db0d2eac3b8b332532a7a40f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 16:21:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 16:21:20 2011 -0700"
      },
      "message": "am c7c8c599: Merge 67450db0 from honeycomb. Do not merge.\n\n* commit \u0027c7c8c599a636a105db0d2eac3b8b332532a7a40f\u0027:\n  Merge 67450db0 from honeycomb. Do not merge.\n"
    },
    {
      "commit": "c7c8c599a636a105db0d2eac3b8b332532a7a40f",
      "tree": "f2ba035079a3faaa7d2c34f70f37551856577fe5",
      "parents": [
        "5982bf66d4fdea38105d91ff0f9d38660ac87581"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:11:23 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:24:50 2011 -0700"
      },
      "message": "Merge 67450db0 from honeycomb. Do not merge.\n\nChange-Id: I0ca140dd6d9279ff313f930739ad40fbbed4f335\nLayoutLib: TypedArray.getDimensionPixelSize can actually return \u003c0\n"
    },
    {
      "commit": "f0da151e78d5a48bb5170e41e5919e4bf5ecb055",
      "tree": "13cd5412a02febaeacd1089944ee83c02f7fc752",
      "parents": [
        "8dc09ed5f1122d52f4cb470b5465dac590bf96c4",
        "47b42991203b7f8e337b1612d601ed120596ef71"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:20:38 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 14:20:38 2011 -0700"
      },
      "message": "am 47b42991: am a0215953: am 026d6be2: Merge \"LayoutLib: TypedArray.getDimensionPixelSize can actually return \u003c0\" into honeycomb-mr1\n\n* commit \u002747b42991203b7f8e337b1612d601ed120596ef71\u0027:\n  LayoutLib: TypedArray.getDimensionPixelSize can actually return \u003c0\n"
    },
    {
      "commit": "67450db03eac59c93b2b46c7872ce4d7dca47265",
      "tree": "d4d45746a203a2d34b13e4645013880cb796d68e",
      "parents": [
        "2f1f2248c8439adbd686810e306c55f9e6a5abc3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:11:23 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Mar 17 14:11:23 2011 -0700"
      },
      "message": "LayoutLib: TypedArray.getDimensionPixelSize can actually return \u003c0\n\nChange-Id: I17853dc242e28f0c59916cad1b2a57beed480a57\n"
    },
    {
      "commit": "843e29d3751017267b96565c543df0301c31a9f7",
      "tree": "80277ab21b62650bb613dc6b7df062c4c7cc9963",
      "parents": [
        "437c2c1620d0a485a4f81fdb0aaf706d89b865e7",
        "2ed2462aa29c564f5231f317c27b3188da875e52"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 15 20:01:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 20:01:16 2011 -0700"
      },
      "message": "Merge \"Improve VelocityTracker numerical stability.\""
    },
    {
      "commit": "2ed2462aa29c564f5231f317c27b3188da875e52",
      "tree": "63209b0ae028c1353e79d79b5e4000e7c4402ecc",
      "parents": [
        "ace13b17866dc9136aeecf6dfaf7077f37434469"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 14 19:39:54 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 15 19:59:47 2011 -0700"
      },
      "message": "Improve VelocityTracker numerical stability.\n\nReplaced VelocityTracker with a faster and more accurate\nnative implementation.  This avoids the duplicate maintenance\noverhead of having two implementations.\n\nThe new algorithm requires that the sample duration be at least\n10ms in order to contribute to the velocity calculation.  This\nensures that the velocity is not severely overestimated when\nsamples arrive in bursts.\n\nThe new algorithm computes the exponentially weighted moving\naverage using weights based on the relative duration of successive\nsample periods.\n\nThe new algorithm is also more careful about how it handles\nindividual pointers going down or up and their effects on the\ncollected movement traces.  The intent is to preserve the last\nknown velocity of pointers as they go up while also ensuring\nthat other motion samples do not count twice in that case.\n\nBug: 4086785\nChange-Id: I2632321232c64d6b8faacdb929e33f60e64dcdd3\n"
    },
    {
      "commit": "b7b877a45f469336703844a928482e6438442567",
      "tree": "ab098f1672291e28c947b5ca6bf3984b72ba7d57",
      "parents": [
        "a82a219a7aaee82d790810f6660924604b7a7e81",
        "0a98226e3c8cda46786558147a0eb6a56c3370c0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:41:13 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 11:41:13 2011 -0700"
      },
      "message": "am 0a98226e: Merge 9d76581f from honeycomb. do not merge.\n\n* commit \u00270a98226e3c8cda46786558147a0eb6a56c3370c0\u0027:\n  Merge 9d76581f from honeycomb. do not merge.\n"
    },
    {
      "commit": "a82a219a7aaee82d790810f6660924604b7a7e81",
      "tree": "bdb1ac8ccea9973ed0bfc6f63141af4d700371a7",
      "parents": [
        "403da3a79af78920b33448bbc8d91c4b8aebf4a4",
        "b243aabdaf1ba6fdfc0579c9f949e00d562456ed"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:41:10 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 11:41:10 2011 -0700"
      },
      "message": "am b243aabd: Merge adaa12cd from honeycomb. do not merge.\n\n* commit \u0027b243aabdaf1ba6fdfc0579c9f949e00d562456ed\u0027:\n  Merge adaa12cd from honeycomb. do not merge.\n"
    },
    {
      "commit": "f89c37295db5df34c014e0791c976cfa94509068",
      "tree": "cf510bb67a998133391fc2f469329e494e76924d",
      "parents": [
        "405cb57019e0b0b9c2049c2b06537c0f4981fc37",
        "48a2a5ad1b7c4979b1d7baf6add4bc32148a75ae"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:37:01 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 11:37:01 2011 -0700"
      },
      "message": "am 48a2a5ad: Merge \"Merge 6f2fb570 from honeycomb. do not merge.\" into gingerbread\n\n* commit \u002748a2a5ad1b7c4979b1d7baf6add4bc32148a75ae\u0027:\n  Merge 6f2fb570 from honeycomb. do not merge.\n"
    },
    {
      "commit": "405cb57019e0b0b9c2049c2b06537c0f4981fc37",
      "tree": "79779e79315b3bd83c522f7e3f7ce16fa1c2a339",
      "parents": [
        "ceae99835ed909346f23cc604d20a488ac63c6ce",
        "14e1f523c673315cbc3167448ce9252b455d252c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:36:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 11:36:57 2011 -0700"
      },
      "message": "am 14e1f523: Merge \"Merge c12b4093 from honeycomb. do not merge.\" into gingerbread\n\n* commit \u002714e1f523c673315cbc3167448ce9252b455d252c\u0027:\n  Merge c12b4093 from honeycomb. do not merge.\n"
    },
    {
      "commit": "0a98226e3c8cda46786558147a0eb6a56c3370c0",
      "tree": "87eef19a8e06439d2cb4d9f81812003c383d7080",
      "parents": [
        "b243aabdaf1ba6fdfc0579c9f949e00d562456ed"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:12:21 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:34:19 2011 -0700"
      },
      "message": "Merge 9d76581f from honeycomb. do not merge.\n\nLayoutLib: Fix Arc rendering.\n\nLooks like Java2D and Skia go in different directions for angles.\n\nChange-Id: I4d72db56455afe25b4f51f23a9b29d6c438119ba\n"
    },
    {
      "commit": "b243aabdaf1ba6fdfc0579c9f949e00d562456ed",
      "tree": "1468da68a2c7bf06a2db1d821bd203cb6e857a50",
      "parents": [
        "48a2a5ad1b7c4979b1d7baf6add4bc32148a75ae"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 08 11:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 15 11:34:18 2011 -0700"
      },
      "message": "Merge adaa12cd from honeycomb. do not merge.\n\nLayoutLib: fix Capabilities and getDimensionPixelSize\n\nCommented out a Capability that is not in ADT 10.\n\nBridgeTypedArray.getDimensionPixelSize shouldn\u0027t call\ngetDimension since most of the code is duplicated, and\nit prevents use from properly detecting malformed attribute\nvalues.\n\nChange-Id: I008334af605a89f240247a13c0024009247ec5af\n"
    },
    {
      "commit": "a738a7d9816248ceafafe3404cd41ba6a4abd09f",
      "tree": "a6ca6d3ed14ffe69311d928f5b4b9bcf51b17220",
      "parents": [
        "75a1ef8d14de25850a171ee80fc7f9a5b70611b5",
        "4a223cdde591b5f3000a3de071d41c833a387578"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Mar 14 19:20:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 14 19:20:00 2011 -0700"
      },
      "message": "Merge \"Add screen layout size as one of the resource filtering axes.\""
    },
    {
      "commit": "4a223cdde591b5f3000a3de071d41c833a387578",
      "tree": "5fa0b13bd0218f9250b4901cc7e1ccc28f856e61",
      "parents": [
        "6f3a75e13b86a3f40fe34e3ebd17b118791a73a4"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Mar 14 15:53:23 2011 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Mar 14 15:53:23 2011 -0700"
      },
      "message": "Add screen layout size as one of the resource filtering axes.\n\nSo that we can add screen layout size such as\n\"small/normal/large/xlarge\" to PRODUCT_LOCALES to filter unwanted\nresources. We already handle screen density this way.\nBug: 4086309\n\nChange-Id: I0867e22a825faea0e100d8a0075f0f5cb7c0c964\n"
    },
    {
      "commit": "2652b618a86c28fe1914c52dd6a91139c3d9b1e7",
      "tree": "3de7d6475a0144999be2e0e8cfa0455f8e937112",
      "parents": [
        "f354ad108c794bd4c9d1aa9a4f2a526d9c27e224"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:28:50 2011 -0700"
      },
      "message": "Merge 6f2fb570 from honeycomb. do not merge.\n\nLayoutLib: Fix dimension parsing to handle negative value.\n\nAlso make TypedArray.getDimensionPixelSize properly\nhandle negative values (which are not allowed).\n\nChange-Id: I03ffcef5ab7ec7ef95419566776dcc798845fd88\n"
    },
    {
      "commit": "f354ad108c794bd4c9d1aa9a4f2a526d9c27e224",
      "tree": "410e6b7090c84b97e12f4bb83366d8b98468f311",
      "parents": [
        "bf079216c607b660a0ad219df6c4752906a7fc61"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:19:38 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:28:50 2011 -0700"
      },
      "message": "Merge c12b4093 from honeycomb. do not merge.\n\nChange-Id: Icfbb70c097d87bf92415c6f0534346adde4c02fe\nLayoutLib: Implement some missing add###() method in Path.\n"
    },
    {
      "commit": "9d76581faf9eb5f47eff922c14807e51702f363b",
      "tree": "ad0daf93af5ea501cdd86ede8ab1934ff03a4512",
      "parents": [
        "e21110f8b1e4aa884f7a4e2164ae90dab8d5f3fa"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:12:21 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 14 15:12:21 2011 -0700"
      },
      "message": "LayoutLib: Fix Arc rendering.\n\nLooks like Java2D and Skia go in different directions for angles.\n\nChange-Id: Ia0c9c70cd66c9a0941fa9921fecf8e4e83538af3\n"
    },
    {
      "commit": "adaa12cd9e421edf34e36de8cfacc3e3c334bb64",
      "tree": "8a52c39f4e27d9ad86beda0197908b3e7ac55ced",
      "parents": [
        "6f2fb570642189ec2b6068632c25f02391007bb5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 08 11:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Mar 08 15:00:35 2011 -0800"
      },
      "message": "LayoutLib: fix Capabilities and getDimensionPixelSize\n\nCommented out a Capability that is not in ADT 10.\n\nBridgeTypedArray.getDimensionPixelSize shouldn\u0027t call\ngetDimension since most of the code is duplicated, and\nit prevents use from properly detecting malformed attribute\nvalues.\n\nChange-Id: I005b17061590dc0668729af16e896fad815f1973\n"
    },
    {
      "commit": "6f2fb570642189ec2b6068632c25f02391007bb5",
      "tree": "ad791a365ba343daf8646d74af7f4331fed0904e",
      "parents": [
        "c12b4093517ac99cabd91a1bb4bdb3bacfe4bcfd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:50:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:50:21 2011 -0800"
      },
      "message": "LayoutLib: Fix dimension parsing to handle negative value.\n\nAlso make TypedArray.getDimensionPixelSize properly\nhandle negative values (which are not allowed).\n\nChange-Id: I960fc1c9e8ad97852d4a14e4f0f71a2c2034b4e7\n"
    },
    {
      "commit": "c12b4093517ac99cabd91a1bb4bdb3bacfe4bcfd",
      "tree": "702bd62cc2811641a05c286a9b620dc0df2ef40b",
      "parents": [
        "a46c1df226f2aea54d3bb068b0537c9b1d28590c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:19:38 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Mar 07 20:19:38 2011 -0800"
      },
      "message": "LayoutLib: Implement some missing add###() method in Path.\n\nChange-Id: Ib62b5df0361ba81846483b1e5f8d7cbdbcb57d40\n"
    },
    {
      "commit": "648251710162cdaf7371012a1cbb79b9bc5bc0e4",
      "tree": "a98c62fcd2391c1dfa2623f899346de0a7619fe9",
      "parents": [
        "cbf9cb35bb7064f303c6dd9da4485cd5344b6779"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 02 21:32:58 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 02 22:38:58 2011 -0800"
      },
      "message": "Fix issue #3485923: Gmail crash\n\nAllow application to try to recover if a surface OOM error\nhappens on the client side.\n\nChange-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6\n"
    },
    {
      "commit": "defdae61b1771823ffd42201241846b771e772ea",
      "tree": "1c556e3136cbb19196732529703416dfe5e8d74f",
      "parents": [
        "6a7dc33ca5da86d08192994219b5e46d92353e70"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 18:36:18 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 18:36:41 2011 -0800"
      },
      "message": "Add notice files for aapt and aidl.\n\nChange-Id: I51da138475618287760043059790aba87f4c3f35\n"
    },
    {
      "commit": "7b9727558b42aecacd0ea63cf3b3c89e9bfd9e9b",
      "tree": "9e6f93c54c002ef9f4847f8621ae8a87eef01fc9",
      "parents": [
        "79b66725b7755e403e10a9d073121789f09b1a9e",
        "edbd6139b9d699879db2f14fb03b7b6a38bab9ea"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 12:29:08 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 12:29:08 2011 -0800"
      },
      "message": "am edbd6139: Merge \"Merge 1911a6f7 into gingerbread. do not merge.\" into gingerbread\n\n* commit \u0027edbd6139b9d699879db2f14fb03b7b6a38bab9ea\u0027:\n  Merge 1911a6f7 into gingerbread. do not merge.\n"
    },
    {
      "commit": "7719436342611a106df5d379fedf180a5dd0809e",
      "tree": "c18c321d33a27b777765ce9133899d7b6d30d8f4",
      "parents": [
        "65260be5d4e9793b466d84ca5f59b20a8605126c",
        "b732b7b5e8192501360edc15fb8c6399d11fb97d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 10:15:48 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 10:15:48 2011 -0800"
      },
      "message": "am b732b7b5: am ce57a7f3: am 6504490c: am dff6b8e7: Merge \"Add --non-constant-id to aapt.\"\n\n* commit \u0027b732b7b5e8192501360edc15fb8c6399d11fb97d\u0027:\n  GpsLocationProvider: Clean up HAL initialization/cleanup sequence\n  Fixed GSM encoded network initiated position request\n  Ensuring thread-safe usage of DateFormat.\n  Fixing infinite loop for zero duration.\n  Fix for an infinite loop while scrolling lists.\n  WAPPushManager, WAP Push over SMS message handler\n  Add --non-constant-id to aapt.\n"
    },
    {
      "commit": "b732b7b5e8192501360edc15fb8c6399d11fb97d",
      "tree": "a2fab9c785f055c9962e565896d5e4a1bdadc769",
      "parents": [
        "1649d91f781445a78ce09ed5500503fd96eb9113",
        "ce57a7f35344e76689d30f45964d1e37b78280cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 10:10:38 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 10:10:38 2011 -0800"
      },
      "message": "am ce57a7f3: am 6504490c: am dff6b8e7: Merge \"Add --non-constant-id to aapt.\"\n\n* commit \u0027ce57a7f35344e76689d30f45964d1e37b78280cb\u0027:\n  GpsLocationProvider: Clean up HAL initialization/cleanup sequence\n  Fixed GSM encoded network initiated position request\n  Ensuring thread-safe usage of DateFormat.\n  Fixing infinite loop for zero duration.\n  Fix for an infinite loop while scrolling lists.\n  WAPPushManager, WAP Push over SMS message handler\n  Add --non-constant-id to aapt.\n"
    },
    {
      "commit": "ce57a7f35344e76689d30f45964d1e37b78280cb",
      "tree": "880399208681c04fb55a240b9317b65fc135c91b",
      "parents": [
        "e630e5f49ba15005172dceeda7299569b2d2351f",
        "6504490cde3ec5d48321d539e654d1f2072b33f9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 09:51:38 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 09:51:38 2011 -0800"
      },
      "message": "am 6504490c: am dff6b8e7: Merge \"Add --non-constant-id to aapt.\"\n\n* commit \u00276504490cde3ec5d48321d539e654d1f2072b33f9\u0027:\n  GpsLocationProvider: Clean up HAL initialization/cleanup sequence\n  Fixed GSM encoded network initiated position request\n  Ensuring thread-safe usage of DateFormat.\n  Fixing infinite loop for zero duration.\n  Fix for an infinite loop while scrolling lists.\n  WAPPushManager, WAP Push over SMS message handler\n  Add --non-constant-id to aapt.\n"
    },
    {
      "commit": "6504490cde3ec5d48321d539e654d1f2072b33f9",
      "tree": "d149151c9f41af11830023ee8b9dd783d13e9383",
      "parents": [
        "a2090bea4824cf153c4d9c735ee779613cf2e3d7",
        "dff6b8e71dda9f5d841fa26408714aec2aef1505"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 28 09:16:38 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 09:16:38 2011 -0800"
      },
      "message": "am dff6b8e7: Merge \"Add --non-constant-id to aapt.\"\n\n* commit \u0027dff6b8e71dda9f5d841fa26408714aec2aef1505\u0027:\n  GpsLocationProvider: Clean up HAL initialization/cleanup sequence\n  Fixed GSM encoded network initiated position request\n  Ensuring thread-safe usage of DateFormat.\n  Fixing infinite loop for zero duration.\n  Fix for an infinite loop while scrolling lists.\n  WAPPushManager, WAP Push over SMS message handler\n  Add --non-constant-id to aapt.\n"
    },
    {
      "commit": "efe18b5e3f02a51a3900d5a0a3687d2b5e315b4c",
      "tree": "c8e99e1a56e77075aaf2dc3d7b7adf051e9a3018",
      "parents": [
        "092238916fd5d10090c0bcad33644778a1f366e7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 13:51:26 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 25 14:53:32 2011 -0800"
      },
      "message": "Merge 1911a6f7 into gingerbread. do not merge.\n\nChange-Id: I6d56644c4ab1a70eb4a6d0d2e5d84ea4aa674041\nLayoutLib: move tests to their own project.\n"
    },
    {
      "commit": "a4510a75757b82207f677609b970010f59c774ba",
      "tree": "3ef4d90e0d1368cb72f7175522f9dab0441985f9",
      "parents": [
        "7f4a537af5ec1c935b9d139b722da05e9fe8130f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 18:56:34 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 18:58:27 2011 -0800"
      },
      "message": "LayoutLib: fix incorrect indices in one of the 2 native_drawTextRun methods.\n\nFixes http://b.android.com/15007\n\nChange-Id: Iff06180def92c5fa25e82520b76192c089edd8cc\n"
    },
    {
      "commit": "b052ecaa7e6ce40cec43efe5353b4bb12079aa55",
      "tree": "a02d60c928a7fa72d10346cd23d60589224a097f",
      "parents": [
        "86409c8cb789cd7f672ee6de43e6bf1a337847db",
        "86e43034a6834a274efefaabefc0dbdd1bbc8d35"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 17:19:38 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 17:19:38 2011 -0800"
      },
      "message": "resolved conflicts for merge of 86e43034 to honeycomb-plus-aosp\n\nChange-Id: Ia9ad4c3b79821fef6ab8493f4c93ca58f877f9ce\n"
    },
    {
      "commit": "db1acf52bb6e4b949bcef09f903d662aed9b8a3a",
      "tree": "9a408e09e72f0c36f19fdd4d150790c5719e5ea9",
      "parents": [
        "86e43034a6834a274efefaabefc0dbdd1bbc8d35",
        "1175ef7e2e4f68532d8ade672d7f5502d9946ce4"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 16:21:41 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 24 16:21:41 2011 -0800"
      },
      "message": "am 1175ef7e: Merge \"LayoutLib: Adapt the HC layoutlib to GB. do not merge.\" into gingerbread\n\n* commit \u00271175ef7e2e4f68532d8ade672d7f5502d9946ce4\u0027:\n  LayoutLib: Adapt the HC layoutlib to GB. do not merge.\n"
    },
    {
      "commit": "86e43034a6834a274efefaabefc0dbdd1bbc8d35",
      "tree": "3d66724cf46c80ed1e022ec2c7cbe88ebbf61b62",
      "parents": [
        "be2ed6d6e366d3639aecd7ef615c95f0ccf17b9d",
        "a4350fc0f3e3a4d4f1893aa000be145287519d99"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 16:15:11 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 16:15:11 2011 -0800"
      },
      "message": "resolved conflicts for merge of a4350fc0 to gingerbread-plus-aosp\n\nChange-Id: I065af5d555fa2197847ad47c84003dcd11fe26c7\n"
    },
    {
      "commit": "1911a6f7812e3f7dcb83fd4741a297d043a80e46",
      "tree": "a71550d666ab1cc98a7f76a8bf4580920f3af7a5",
      "parents": [
        "81904fa40b501d3907c086e7d4fdc4a3e25cd922"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 13:51:26 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 24 13:51:26 2011 -0800"
      },
      "message": "LayoutLib: move tests to their own project.\n\nChange-Id: I8a9e128e4a17ab57ec7b126a378035d9ce5bc168\n"
    },
    {
      "commit": "031d2f8b6db5bf7b249ae1c9a72915bf2d3a8d7b",
      "tree": "1d1a79124aeadc198088be178a3dea7d8d804e5e",
      "parents": [
        "4b52ec49fee79b0488d6a9eaaa4ea5d74ce90905"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 21:30:53 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 19:47:18 2011 -0800"
      },
      "message": "LayoutLib: Adapt the HC layoutlib to GB. do not merge.\n\nChange-Id: I0b2016987a65fabbc0ce7011514543349e9fb929\n"
    },
    {
      "commit": "4b52ec49fee79b0488d6a9eaaa4ea5d74ce90905",
      "tree": "5b37f5bc58ed3bacbc8536aabcc7e08a57776801",
      "parents": [
        "2050de5b9a5c097e30545ab822211d49031bd9dc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 21:08:10 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 19:47:02 2011 -0800"
      },
      "message": "LayoutLib: Original import of Honeycomb\u0027s layoutlib. do not merge.\n\nframeworks/base.git @ f0a53435f14d23d9555fc46014352ee6a7baa647\n\nChange-Id: Ibc215751693dc7650683b61bb458f7c8beaf8060\n"
    },
    {
      "commit": "f0a53435f14d23d9555fc46014352ee6a7baa647",
      "tree": "883fcc18814b84c5e8eea5f6b94663a2e845b15c",
      "parents": [
        "b2c7dd5986344369f02dfe2965b309153b121127"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 16:51:08 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 18:12:49 2011 -0800"
      },
      "message": "LayoutLib: Add debug mode.\n\nChange-Id: If4263c7dba63a063f84e0c6988c270eb6d291ac3\n"
    },
    {
      "commit": "b2c7dd5986344369f02dfe2965b309153b121127",
      "tree": "9a54b0903d2ae5f16f16dcade25c885860bd5ab8",
      "parents": [
        "c6083f2c9eadb1f8a502ea9806868f5b0148667e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 15:02:58 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 15:02:58 2011 -0800"
      },
      "message": "LayoutLib: downsize the SparseArray when possible.\n\nChange-Id: I570b93ab161414b7729f8d2dce8ddadb706f186b\n"
    },
    {
      "commit": "c6083f2c9eadb1f8a502ea9806868f5b0148667e",
      "tree": "db6d0159444f1900142fe543dc34832bf7084e67",
      "parents": [
        "cc4977d0fdaf657907912fd6cc2f9426dc8d2e36"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 09:53:56 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 12:00:42 2011 -0800"
      },
      "message": "LayoutLib: misc fixes.\n\n- implement some Paint methods that are needed for 2.x\n- fix the phone system bar to display the icons on the right.\n\nChange-Id: I3a938b14ec9a449dbc23a33303a3c8405a5369a8\n"
    },
    {
      "commit": "cc4977d0fdaf657907912fd6cc2f9426dc8d2e36",
      "tree": "a49b4d71fa36d705dd6659f872bb8339fc357825",
      "parents": [
        "8cb6fc184dcb9cc6ab0871de5cf430277d15c8c8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 22 11:54:37 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 12:00:41 2011 -0800"
      },
      "message": "LayoutLib: Hold onto delegate references.\n\nWhen an object is given a delegate to hold onto, keep\nthe reference to the delegate instead of its native integer.\n\nAlso change the way the finalizer works by not explicitely deleting\nthe delegate. Instead we want the delegate to be deleted when\nnothing holds a reference to it. To do this, instead of using\na regular SparseArray, we use a SparseArray of WeakReferences.\nBecause the main Java object that \"owns\" the delegate does not\nactually holds a reference to the delegate, we fake this by\nhaving the delegate manager hold a reference to delegates for\nthe main object. This is added/removed as the object is created\nand the native finalized is called.\n\nThis makes layoutlib behave more like the JNI code where the native\nobjects are reference counted, and where the Java object can be\ndeleted but the delegate it owns is kept around (usually because\nanother type of delegates hold a reference on it.)\n\nTo properly handle the WeakReferences, we need to be able to\nregularly clear the SparseArray of WeakReference that were\nreferencing objects that have been GC\u0027ed.\nSince the SparseArray is regularly being compacted (actually only\nwhen items are removed), we use a custom SparseWeakArray (started\nas a straight copy of SparseArray) that handles the WeakReference\nand takes care of compacting the array by removing deleted indices\nand WeakReference that returns null. Since our specific use case\ndoesn\u0027t call actually delete() or remove(), the compacting\nonly happens when the array needs to be resized.\n\nChange-Id: Iacc5c1ff5b21732b8816fda87eb090da12d034e0\n"
    },
    {
      "commit": "8cb6fc184dcb9cc6ab0871de5cf430277d15c8c8",
      "tree": "59dbf35999d868ecb3e2b31ede27b56ff21ba34f",
      "parents": [
        "e86c12c9e489e7f04c49a7733fc4014668e012e2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 22 16:50:11 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 23 12:00:41 2011 -0800"
      },
      "message": "LayoutLib: Import of SparseArray as SparseWeakArray.\n\nThis is a straight copy for easy review of the customization.\n\nChange-Id: I351ec570c3e7a025561939ab05c1ae7eded30b38\n"
    },
    {
      "commit": "6f2fba428ca5e77a26d991ad728e346cc47609ee",
      "tree": "5dd07c24bd9b474ccfbcba4f63e078598fbd2b50",
      "parents": [
        "b1bdb64d641ac63097619e5ef08d5a25bfdc61bb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Feb 19 01:08:02 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Feb 19 05:23:10 2011 -0800"
      },
      "message": "Add new axes for joysticks and mouse wheels.\n\nAdded API on InputDevice to query the set of axes available.\nAdded API on KeyEvent and MotionEvent to convert keycodes and axes\nto symbolic name strings for diagnostic purposes.\nAdded API on KeyEvent to query if a given key code is a gamepad button.\nAdded a new \"axis\" element to key layout files to specify the\nmapping between raw absolute axis values and motion axis ids.\nExpanded the axis bitfield to 64bits to allow for future growth.\nModified the Makefile for keyboard prebuilts to run the keymap\nvalidation tool during the build.\nAdded layouts for two game controllers.\nAdded default actions for game pad button keys.\nAdded more tests.\nFixed a bunch of bugs.\n\nChange-Id: I73f9166c3b3c5bcf4970845b58088ad467525525\n"
    },
    {
      "commit": "1ca584a2bb5c0f0e747c98f2e930cce8b53421a5",
      "tree": "70bd2fb29071d83d96201b761e7b4cf8afc68dcf",
      "parents": [
        "82314c013fbd94fdbad6a8f9687a6204c7966e12"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 18 18:48:08 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 18 18:48:08 2011 -0800"
      },
      "message": "LayoutLib: remove assert in resource resolution.\n\nThese code paths were valid in case there\u0027s a mismatch\nbetween the style/theme/version of Android\n\nChange-Id: I8cb3b2a3f3a1ef5c37ccec0c8ddbb7add69bfbe0\n"
    },
    {
      "commit": "3e87bfa1911de10c3d0692b34eba27f5965710f7",
      "tree": "bc2785d949948e55fc0da3b74fe3414f47da1c6a",
      "parents": [
        "f20999965b94bdcc2b1f2c05b587ff405924bc96"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 18 17:50:38 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 18 17:50:38 2011 -0800"
      },
      "message": "LayoutLib: support defStyleRes in obtainStyledAttributes.\n\nThis fix the Spinner rendering.\n\nChange-Id: I20a71d9e07f6c86652a74fba3fc05a027a057ff8\n"
    },
    {
      "commit": "f20999965b94bdcc2b1f2c05b587ff405924bc96",
      "tree": "ee89cca1f3556d0272758638a6de64a06f8407db",
      "parents": [
        "754537cf9fc49ff741f3bd6953a262984aaa99d6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 18 17:19:08 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 18 17:19:08 2011 -0800"
      },
      "message": "LayoutLib: properly handle @null references in more places.\n\nChange-Id: I240298ab79c19ab0e49cb6da19d6b0187493d3b5\n"
    },
    {
      "commit": "10df650f0d4bdf086dae9ac29fafd8a1ded06c23",
      "tree": "ca0272f6f0d143877b2bfdadd5b9905ba0eda724",
      "parents": [
        "016d37e6c557a760c6508f5c06c8e65d2492772d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 17 10:24:46 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 17 10:24:46 2011 -0800"
      },
      "message": "LayoutLib: add support for layout_only render.\n\nChange-Id: I1cd791cf9560156c1ac488f8e454240c84e29cc6\n"
    },
    {
      "commit": "d06c1afbb920111d6bb77381560faa1fac5f2d69",
      "tree": "edb82445efe4b01dcf4e88f61d71ff649b84baba",
      "parents": [
        "93552de8e305027fb003401e347b9493c64c981f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 14 16:58:00 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 14 17:06:19 2011 -0800"
      },
      "message": "Add --non-constant-id to aapt.\n\nThis option enbables creating resource constant in the R class\nthat are not actual constant, but simply static fields.\n\nThe goal is to build library projects with these types of\nIDs so that the constant does not get inlined in the library\ncode, since the ID for the library resources only are not\nthe final values.\n\nThe final resource IDs, generated from the main project and\nits library(ies), will have proper constant with the final\nvalues.\n\nThis allows us to generate binary library bundle (a jar file\nand associated resources) that can be distributed. Additionally,\nthis will let us make the library project support in Eclipse\nmuch more robust and a better user experience overall.\n\nChange-Id: Ibe2f08d68493fde658fc3f7606abf7446f312ad2\n"
    },
    {
      "commit": "559358fdf65b1b551312526940cb02ec23bf6d9d",
      "tree": "1490b1a15963a4a689667e688d1c423dc4585fe0",
      "parents": [
        "c60aadc442262efb08fcbf0823e6101199bd50f2",
        "1858c95e99f81ac46eea93288cb8866260b3d5d8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 14 09:59:58 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 14 09:59:58 2011 -0800"
      },
      "message": "am 1858c95e: am 02d2b5a4: LayoutLib: When possible ensure parsers are popped from the stack.\n\n* commit \u00271858c95e99f81ac46eea93288cb8866260b3d5d8\u0027:\n  LayoutLib: When possible ensure parsers are popped from the stack.\n"
    },
    {
      "commit": "1858c95e99f81ac46eea93288cb8866260b3d5d8",
      "tree": "0de8ac9e98e052e5fc5c39ad96d01e5e7490f6a8",
      "parents": [
        "a7276805bfad4b3170f7887f8358b5f8e5bef943",
        "02d2b5a4031c80bfe1012ce2f4f7b3695762abd9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 14 09:57:17 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 14 09:57:17 2011 -0800"
      },
      "message": "am 02d2b5a4: LayoutLib: When possible ensure parsers are popped from the stack.\n\n* commit \u002702d2b5a4031c80bfe1012ce2f4f7b3695762abd9\u0027:\n  LayoutLib: When possible ensure parsers are popped from the stack.\n"
    },
    {
      "commit": "02d2b5a4031c80bfe1012ce2f4f7b3695762abd9",
      "tree": "f4d74330dbd29a475c7464c18fd32e8e76d2c2c1",
      "parents": [
        "bbcf2079e9978ad6f75732070ce1dcc0dea3ea3f"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 13 20:15:50 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 14 09:42:19 2011 -0800"
      },
      "message": "LayoutLib: When possible ensure parsers are popped from the stack.\n\nSome parser consumers (seems to be mostly resource inflation)\ndon\u0027t use the pull parser up to the END_DOCUMENT tag, making\nthe parser not pop itself from the parser stack automatically.\n\nThis is likely due to the XML resources being very shallow (1-2 levels\nmax), and the inflater just reading the content that it expects instead\nof parsing till the document is done.\n\nThis ensures that *some* parsers are pop\u0027ed from the stack when\nused. Some other parsers we don\u0027t really control and hope the\nuser will parse till END_DOCUMENT.\n\nChange-Id: Ie1f5762983fed2b2ae97b896218ae12b493e7ad9\n"
    },
    {
      "commit": "8a80a8555238cc564f445f902aff5231993a8f96",
      "tree": "27ef0db5a801c005c0c48b94bcea8b22715a1c29",
      "parents": [
        "9a4fe29c8d92014d2d9a848e9116b8cc9d0842f9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 09 19:39:52 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 09 19:39:52 2011 -0800"
      },
      "message": "LayoutLib: remove some exceptions.\n\nWe need to move away from throwing anything and instead\nlog errors/warnings.\n\nChange-Id: Ib1af71a90c06e8565fbd0c061ba56f4d19baa3df\n"
    },
    {
      "commit": "9a4fe29c8d92014d2d9a848e9116b8cc9d0842f9",
      "tree": "97d83ce52c0a5cffaa82be0bae9919f112acd7c9",
      "parents": [
        "e18457fbef2ef8b74fb6d7a023b5a6fe4a707bed"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 09 17:17:49 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 09 17:29:29 2011 -0800"
      },
      "message": "LayoutLib: Annotate the custom delegate methods.\n\nEvery method implementing a delegate needed by the\nlayoutlib_create bytecode modification must now be\nannotated with LayoutlibDelegate.\n\nThe methods in the original source code that are delegated\nare already automatically annotated. Now with the implementations\nbeing annotated we can do bi-directional tests and find not\nonly missing implementations but also dead obsolete code.\n\nThis will be useful when backporting to earlier versions of\nAndroid, or when native (non public) method disappear. In fact,\nthe new test detected one such method in Shader.\n\nChange-Id: I491708b68ac2736ca5669aa86cd5e930a00f9db3\n"
    },
    {
      "commit": "f3f608452c080f050e2b5088d421ffe22641531f",
      "tree": "98b5e66bea88a1b828960389f5de3d06f63e21aa",
      "parents": [
        "fb4ff3d60988c92388346220eb5516012ff2477b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 09 16:19:43 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Feb 09 16:19:43 2011 -0800"
      },
      "message": "LayoutLib: now depends on tools-common-prebuilt.\n\nChange-Id: I11196c2363da378027fb8ca001e7dce0f58f657f\n"
    },
    {
      "commit": "024bbea2155dc37df87b337007a887029f9d1cab",
      "tree": "d0331d894acbe1fbc348d4c685ebf1b896241441",
      "parents": [
        "1e09ca2a1f3e9ce2dbe538c0fbedb687c3f5738c",
        "dc3fc3dc2717461113a2963c224cb190457599d8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 08 14:57:19 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 08 14:57:19 2011 -0800"
      },
      "message": "am dc3fc3dc: Merge \"LayoutLib: fix the background of title/action bars.\" into honeycomb\n\n* commit \u0027dc3fc3dc2717461113a2963c224cb190457599d8\u0027:\n  LayoutLib: fix the background of title/action bars.\n"
    },
    {
      "commit": "abc33e014d4490dc993d1453e2589f538dbd7bbe",
      "tree": "6461035cd92b2254805dd6e2a153f78f74273595",
      "parents": [
        "8635908da1a9f0b3e7ba9bd11ce7104b38f76756"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 20:33:44 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 20:33:44 2011 -0800"
      },
      "message": "LayoutLib: fix the background of title/action bars.\n\nThe bars are supposed to sit on top of the window so\nthat if they are transparent (which is the default case\nfor the action bar), the window background shows through.\n\nFix this using a layout to represent the window content\n(all but the system bar) in which the title/action bars\nand the layout content sits. This layout receives the\nwindowBackground drawable.\n\nChange-Id: I8072c5ff52f585fa32acb589d8526e1c13cbcd94\n"
    },
    {
      "commit": "5ac5388359652f45fd401dc269ac3e37b52216af",
      "tree": "ab594720489d83a9a6759250a1cd24f3920139c9",
      "parents": [
        "80656fb71e98aa5aa2f9d7f010f2db4dfc0c9ff5",
        "4dd2299d5766bf14479578772a0946c5399a0158"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 13:23:20 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 07 13:23:20 2011 -0800"
      },
      "message": "am 4dd2299d: LayoutLib: Update to latest API fix.\n\n* commit \u00274dd2299d5766bf14479578772a0946c5399a0158\u0027:\n  LayoutLib: Update to latest API fix.\n"
    },
    {
      "commit": "4dd2299d5766bf14479578772a0946c5399a0158",
      "tree": "1f454e5dea9f0e613c95b9b8065a0d8cab742bb0",
      "parents": [
        "62a99c0b3bca70262ab205a5688ff69cbbbaee78"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 13:05:40 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 13:05:40 2011 -0800"
      },
      "message": "LayoutLib: Update to latest API fix.\n\nChange-Id: I5147010e4f16a5c2ea0b98709c42f7ecd9412ff6\n"
    },
    {
      "commit": "80656fb71e98aa5aa2f9d7f010f2db4dfc0c9ff5",
      "tree": "1b9b34730084bcee5aa88d4cce0accc442e99fd1",
      "parents": [
        "bb756a90902ade5cf619f5fa65ec5505dcdf431a",
        "62a99c0b3bca70262ab205a5688ff69cbbbaee78"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 10:22:32 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 07 10:22:32 2011 -0800"
      },
      "message": "am 62a99c0b: Merge \"LayoutLib: Handle color state list in methods returning an int.\" into honeycomb\n\n* commit \u002762a99c0b3bca70262ab205a5688ff69cbbbaee78\u0027:\n  LayoutLib: Handle color state list in methods returning an int.\n"
    },
    {
      "commit": "62a99c0b3bca70262ab205a5688ff69cbbbaee78",
      "tree": "d9884233cdfcd815560f23652bceca1fac42f54a",
      "parents": [
        "b0f1cfffd9b201335560c15ffbdcfe12225bac8c",
        "d96a7403cda1a873e640b6e6395ddab4c2f9b9f9"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Feb 07 10:18:48 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 07 10:18:48 2011 -0800"
      },
      "message": "Merge \"LayoutLib: Handle color state list in methods returning an int.\" into honeycomb"
    },
    {
      "commit": "d96a7403cda1a873e640b6e6395ddab4c2f9b9f9",
      "tree": "10fadb724cabbed4c9b36c02412d1cd85c4be4a3",
      "parents": [
        "b0d34f9c99cbd43e8238c5952b19d032f02dd168"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 21:05:21 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 21:05:21 2011 -0800"
      },
      "message": "LayoutLib: Handle color state list in methods returning an int.\n\nChange-Id: Ia35ea09b992a239873026c7ef1629a01dd2e6cec\n"
    },
    {
      "commit": "181e3212625374e7954b0313e3a2782e15d09599",
      "tree": "c36ff16a95deaef884009cc725dc65a017168c09",
      "parents": [
        "18f5c7e6919a8d66b1b7c818d55b92504961b379",
        "83d72da7f69f71fd20bd11fc4f98166532136248"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 15:15:51 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Feb 06 15:15:51 2011 -0800"
      },
      "message": "am 83d72da7: Merge \"LayoutLib: improved rendering for system/title/action bars.\" into honeycomb\n\n* commit \u002783d72da7f69f71fd20bd11fc4f98166532136248\u0027:\n  LayoutLib: improved rendering for system/title/action bars.\n"
    },
    {
      "commit": "13bdc3355c781dc2614f2810a42d3a9e73f5bed9",
      "tree": "b40424e57a6011ff0b0febf0fa39a13f6bfb0269",
      "parents": [
        "fd18f573280bbbcc549b35b548580a562bd960e2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 10:58:16 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Feb 06 10:58:16 2011 -0800"
      },
      "message": "LayoutLib: improved rendering for system/title/action bars.\n\nChange-Id: I926531e9ad4a7b98e04e23cac3837794f7c89449\n"
    },
    {
      "commit": "1d009fbd17c52a0f3cdd26582e55abe03b125890",
      "tree": "4d351aedacce892121714352f0b0b9bafcbd9b7c",
      "parents": [
        "9a5bda875f86b188b501ce7cf73810dd92288251",
        "35064e5e3a04bda6211166630ccd49d522a8bd92"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 19:33:27 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 04 19:33:27 2011 -0800"
      },
      "message": "am 35064e5e: Merge \"LayoutLib: add implementation of Bridge.renderDrawable()\" into honeycomb\n\n* commit \u002735064e5e3a04bda6211166630ccd49d522a8bd92\u0027:\n  LayoutLib: add implementation of Bridge.renderDrawable()\n"
    },
    {
      "commit": "fd18f573280bbbcc549b35b548580a562bd960e2",
      "tree": "6b953264c673b81b00ff17d11239ffcd8fa75dae",
      "parents": [
        "b0d34f9c99cbd43e8238c5952b19d032f02dd168"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 19:02:17 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 19:30:35 2011 -0800"
      },
      "message": "LayoutLib: add implementation of Bridge.renderDrawable()\n\nChange-Id: Ic4d96488fd1a2e5b7d24353bebc8fdb24262c1d1\n"
    },
    {
      "commit": "b627f78359ef3b1883f27e6fdf73a882bc3832b0",
      "tree": "e1fcff5e45b5e65f6383b3628cb61261f11a8cf6",
      "parents": [
        "1480942d970ce0503fc99125dbf64e5dae0fd706",
        "b0d34f9c99cbd43e8238c5952b19d032f02dd168"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 18:27:30 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 04 18:27:30 2011 -0800"
      },
      "message": "am b0d34f9c: LayoutLib: split RenderSession\\\u0027s base method into RenderAction.\n\n* commit \u0027b0d34f9c99cbd43e8238c5952b19d032f02dd168\u0027:\n  LayoutLib: split RenderSession\u0027s base method into RenderAction.\n"
    },
    {
      "commit": "b0d34f9c99cbd43e8238c5952b19d032f02dd168",
      "tree": "fe8790e596c2326031e1c55c9d120ae12912211d",
      "parents": [
        "1126422ee1f532d8582a4e3b56dbfe505c15e775"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 18:11:09 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 18:11:09 2011 -0800"
      },
      "message": "LayoutLib: split RenderSession\u0027s base method into RenderAction.\n\nThis will allow us to create RenderDrawable that extends RenderAction.\n\nChange-Id: If9cd350453ceffae4859a925a7b436502b311f9c\n"
    },
    {
      "commit": "1480942d970ce0503fc99125dbf64e5dae0fd706",
      "tree": "f099ab3ca89cd9ddd0d811eb4d6b7ad19fb19f55",
      "parents": [
        "73edcfe8f4678c4d5e91c8018e00a72ea325da71",
        "1126422ee1f532d8582a4e3b56dbfe505c15e775"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 18:05:55 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 04 18:05:55 2011 -0800"
      },
      "message": "am 1126422e: LayoutLib: update to the new API.\n\n* commit \u00271126422ee1f532d8582a4e3b56dbfe505c15e775\u0027:\n  LayoutLib: update to the new API.\n"
    },
    {
      "commit": "1126422ee1f532d8582a4e3b56dbfe505c15e775",
      "tree": "a957b31a38ded193be5787be0c23ab24f3070a82",
      "parents": [
        "b894f8959c6be2de5a0c89fedb9824012783dd14"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 17:41:43 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 17:41:43 2011 -0800"
      },
      "message": "LayoutLib: update to the new API.\n\nChange-Id: Ice028933cd2270c81c3d17f7bef7c5a9d14bd802\n"
    },
    {
      "commit": "57bb7faf9793329babe04493d89d891ef482ac4f",
      "tree": "ad077523d88a575c9be0c2025bb0615474f8fd98",
      "parents": [
        "7d913d4350230afba8dea55718d887cf967d1ab2",
        "3944b784e980b5e2cad69b2c8eb5dbc7c1fafc4a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 17:03:43 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 04 17:03:43 2011 -0800"
      },
      "message": "am 3944b784: Merge \"LayoutLib: Replace custom BitmapFactory by a simpler delegate\" into honeycomb\n\n* commit \u00273944b784e980b5e2cad69b2c8eb5dbc7c1fafc4a\u0027:\n  LayoutLib: Replace custom BitmapFactory by a simpler delegate\n"
    },
    {
      "commit": "779c906592b67867fee83a6527d474c333a701ff",
      "tree": "67e2e74f018aec24b986a2bea45f3ebc6214fa66",
      "parents": [
        "b85787411085bbea0ac725135cae02a4167b7aa7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 16:40:49 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 16:40:49 2011 -0800"
      },
      "message": "LayoutLib: Replace custom BitmapFactory by a simpler delegate\n\nChange-Id: Ie61a0a5b4426e64bb71a22d76d05efa4c0865e5e\n"
    },
    {
      "commit": "487742ea06ecde2120c86da4dff95a94eed93555",
      "tree": "625700ab308942e88d812cf0daa04bd4a856f095",
      "parents": [
        "01b7a98c31f3d4587fb6739c8c6b35530177c20c",
        "331e93e5a20227665d2db8a46778b9544b91879a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 11:45:36 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 04 11:45:36 2011 -0800"
      },
      "message": "am 331e93e5: Merge \"LayoutLib: render system/title/action bars.\" into honeycomb\n\n* commit \u0027331e93e5a20227665d2db8a46778b9544b91879a\u0027:\n  LayoutLib: render system/title/action bars.\n"
    },
    {
      "commit": "bbbb8326020368958a3f1d248878329e9d6b10c0",
      "tree": "74ec16b151a74dec647b657a68f83f1a178b4183",
      "parents": [
        "e8d2b98526e7666b175b4df58b646ed56a572bb0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 27 16:58:52 2011 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Feb 04 10:46:21 2011 -0800"
      },
      "message": "LayoutLib: render system/title/action bars.\n\nAlso a few generic fixes in the layoutlib itself to support\nthis.\n\nChange-Id: Ie3f24c9056bd3cc72f39f8a4f2c0861be15bff55\n"
    },
    {
      "commit": "1ea9930e74a3b10186b7691060b6e6cf09f73b07",
      "tree": "c6a17043573552f8651dd90d4cddff5374ee8870",
      "parents": [
        "da75a28304a026634e6583735e525c13a2040239",
        "5e76e0aea28042287553ffa21826f59f601a3d2b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 03 11:23:39 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 03 11:23:39 2011 -0800"
      },
      "message": "am 5e76e0ae: Merge \"LayoutLib: Fix some rendering issues\" into honeycomb\n\n* commit \u00275e76e0aea28042287553ffa21826f59f601a3d2b\u0027:\n  LayoutLib: Fix some rendering issues\n"
    }
  ],
  "next": "33758ef8c98efb669c65eb9404b99ee5df09c6b5"
}
